Лекция 14. Правила выбора подцелей. Деревья вычислений логических программ. Стратегии вычисления логических программ (1161906), страница 3
Текст из файла (страница 3)
Результат вычисления запроса может существенноизмениться при перестановке программных утверждений.ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММЕще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;..t?P(X Y )ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )(1), {Y /nil}?R(X ) tДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )(1), {Y /nil}?R(X ) t(3), {X /a}t?ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )(1), {Y /nil}?R(X ) t(3), {X /a}t?ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )(1), {Y /nil}?R(X ) t(3), {X /a}t?(4), {X /c}t??ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }?t?P(Y ), R(X )(1), {Y /nil}?R(X ) t6(4), {X /c}tt?(3), {X /a}??ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }??P(Y ), R(X )t*(1), {Y /nil}?R(X ) t6(3), {X /a}t?(4), {X /c}t??ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }??P(Y ), R(X )t* (2), {Y /X2 L2 }t??P(L2 ), R(X2 ), R(X )(1), {Y /nil}?R(X ) t6(3), {X /a}t?(4), {X /c}t??.ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }??P(Y ), R(X )t* (2), {Y /X2 L2 }t??P(L2 ), R(X2 ), R(X )(1), {Y /nil}(1), {L2 /nil} ?R(X2 ), R(X ) t?R(X ) t6(3), {X /a}t?(4), {X /c}t??.ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }??P(Y ), R(X )t* (2), {Y /X2 L2 }t??P(L2 ), R(X2 ), R(X )(1), {Y /nil}(1), {L2 /nil} ?R(X2 ), R(X ) t?R(X ) t(3), {X2 /a}6?R(X ) t(3), {X /a}t?(4), {X /c}t??.ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.t?P(X Y )(2), {X1 /X , L1 /Y }??P(Y ), R(X )t* (2), {Y /X2 L2 }t??P(L2 ), R(X2 ), R(X )(1), {Y /nil}(1), {L2 /nil} ?R(X2 ), R(X ) t?R(X ) t(3), {X2 /a}6?R(X ) t(3), {X /a}t?(4), {X /c}t?(3), {X /a}?t?.ДЕРЕВЬЯ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММ.Еще раз пример 2.t?P(X Y )P : P(nil) ←;P(X L) ← P(L), R(X );R(a) ←;R(c) ←;.(2), {X1 /X , L1 /Y }??P(Y ), R(X )t* (2), {Y /X2 L2 }t??P(L2 ), R(X2 ), R(X )(1), {Y /nil}(1), {L2 /nil} ?R(X2 ), R(X ) t?R(X ) t(3), {X2 /a}6?R(X ) t(3), {X /a}t?.И Т.
Д.(4), {X /c}t?(3), {X /a}?t?СТРАТЕГИИ ВЫЧИСЛЕНИЙ ЛОГИЧЕСКИХПРОГРАММПоскольку соображения эффективности превалируют надтребованиями вычислительной полноты, в качествестандартной стратегии вычисления логических программбыла выбрана стратегия обхода в глубину с возвратом.Программист должен сам позаботиться о надлежащем порядкерасположения программных утверждений, чтобы стандартнаястратегия вычисления позволяла отыскать все вычисленныеответы.КОНЕЦ ЛЕКЦИИ 14..