Лекции В.А. Захарова (1157993), страница 22
Текст из файла (страница 22)
. . , (Dn , ηn , )для которого выполняется система равенствθ0 = (η1 ρ1 )|Y1 ,...,Ymρ1 = (η2 ρ2 )|VarG1ρ2 = (η3 ρ3 )|VarG2...ρn = (ηn ρn )|VarGnИз этой системы следует равенство θ0 = (η1 η2 . . . ηn )|Y1 ,...,Ym ρ0для некоторой подстановки ρ0 .ПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИДоказательство теоремы полноты (завершение).Итак, у нас естьIправильный ответ θ0 на запрос G0 к хорновскойлогической программе P;Iподстановка λ = {Z1 /c1 , Z2 /c2 , .
. . , Zr /cr } «свежих»констант на место всех переменных Z1 , . . . , Zr из термовподстановки θ0 .Iосновной пример θ00 = θ0 λ правильного ответа θ.ПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИДоказательство теоремы полноты (завершение).θ0 — правильный ответ на запрос G0 к хорновской логическойпрограмме P;⇓P |= G0 θ0 λ;⇓(по лемме об основных вычислениях )основной запрос G0 θ0 λ к множеству основных примеровпрограммных утверждений [P] имеет успешное вычисление;⇓(по лемме о подъеме для логических программ )запрос G0 к программе P имеет успешное вычисление свычисленным ответом η, для которого верно равенствоθ0 λ = ηρ0для некоторой подстановки ρ0 .ПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИДоказательство теоремы полноты (завершение).А теперь заменим в левой и правой частях равенстваθ0 λ = ηρ0все константы c1 , .
. . , cr на символы переменных Z1 , . . . , Zr .Поскольку константы c1 , . . . , cr не входят в состав запроса G0 ипрограммы P, эти константы не входят в состав термоввычисленного ответа η, и, значит, могут содержаться только вподстановке ρ0 .В левой части равенства подстановка λ = {Z1 /c1 , . . .
, Zr /cr }превращается в пустую подстановку ε.В правой части равенства подстановка ρ0 превращается внекоторую новую подстановку ρ.В итоге равенство θ0 λ = ηρ0 превращается в равенствоθ0 = ηρПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИПоясняющий пример.Рассмотрим запрос ?P(U, V ) к логической программеP : P(f (X ), X ) ← R(X ); (1)R(Y ) ←;(2)Q(c) ←;(3)Легко видеть, что θ = {U/f (c), V /c} — это правильный ответна запрос к программе.Вместе с тем, единственный вычисленный ответ — этоη = {U/f (Y ), V /Y }.Все дело в том, что θ — это частный случай η: θ = η{Y /c}.ПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИИтак, любой правильный ответ на запрос к хорновскойлогической программе можно вычислить (возможно, собобщением) по правилу SLD-резолюции, и любойвычисленный ответ будет правильным.А как организовать вычисления логических программ, чтобывычислить ВСЕ ответы?КОНЕЦ ЛЕКЦИИ 13.Основыматематическойлогики и логическогопрограммированияЛЕКТОР: В.А.
ЗахаровЛекция 14.Правила выбора подцелей.Деревья вычислений логическихпрограмм.Стратегии вычисления логическихпрограмм.ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙSLD-резолютивное вычисление запроса ?G к логическойпрограмме P определяется неоднозначно.Рассмотрим запрос ?P(U, V ), R(U) к логической программеP : P(X , Y ) ← R(X ), Q(Y );P(X , X ) ← Q(X );R(b) ←;Q(c) ←;(1)(2)(3)(4)Уже на первом шаге вычисления возникают вопросы выбора:I Какую подцель выделить??P(U, V ), R(U)I?P(U, V ), R(U)Если выделена, например, первая подцель ?P(U, V ), R(U),то какое программное утверждение выбрать?P(X , Y ) ← R(X ), Q(Y ); (1)P(X , X ) ← Q(X );(2)P(X , Y ) ← R(X ), Q(Y ); (1)P(X , X ) ← Q(X );(2)ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙРассмотрим два вычисления запроса ?P(U, V ), R(U)?P(U, V ), R(U)?P(U, V ), R(U)P(X1 , Y1 ) ← R(X1 ), Q(Y1 )R(b) ←θ1 = {U/X1 , V /Y1 }??R(X1 ), Q(Y1 ), R(X1 )η1 = {U/b}??P(b, V )R(b) ←θ2 = {X1 /b}P(X1 , Y1 ) ← R(X1 ), Q(Y1 )??Q(Y1 ), R(b)Q(c) ←η2 = {X1 /b, V /Y1 }??R(b), Q(Y1 )Q(c) ←θ3 = {Y1 /c}??R(b)R(b) ←η3 = {Y1 /c}??R(b)R(b) ←θ4 = ε??η4 = ε??θ = θ1 θ2 θ3 θ4 |{U,V } = {U/b, V /c}η = η1 η2 η3 η4 |{U,V } = {U/b, V /c}ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙКак видите, мы получаем одинаковые вычисленные ответы вобоих вычислениях независимо от порядка выбора подцелей вцелевых утверждениях.Это случайность или так бывает всегда?С точки зрения операционной семантики программ, запрос —это список задач, которые нужно решить.IДля решения запроса нужно решить все подцели запроса.Значит, результат вычисления не зависит от того порядка,в котором решаются задачи (выбираются подцели).IРешение одной задачи может помочь решить другую.Значит, правильно выбранный порядок решения задачсущественно влияет на эффективность вычислениязапроса.Покажем, что верно первое предположение.ПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИОпределение.Отображение R, которое сопоставляет каждому непустомузапросу G : ?C1 , C2 , .
. . , Cm одну из подцелей Ci = R(G ) в этомзапросе, называется правилом выбора подцелей .Для заданного правила выбора подцелей R вычислениезапроса G к логической программе P называетсяR-вычислением , если на каждом шаге вычисления очереднаяподцель в запросе выбирается по правилу R.Ответ, полученный в результате успешного R-вычисления,называется R-вычисленным .Возникает вопрос:При каком правиле выбора подцелей R каждый вычисленныйответ оказывется R-вычисленным?ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДля каждого программного утвержденияD : A0 ← A1 , A2 , . .
. , An условимся использовать запись D +для обозначения атома A0 , а запись D − — для обозначениясписка атомов A1 , A2 , . . . , An . В частности, если D — это фактA0 ←, то D − — это пустой список.Выбор обозначений обусловлен тем, что утверждениеD : A0 ← A1 , A2 , . . . , An соответствует дизъюнктуположительная литераz}|{A0∨ ¬A1 ∨ ¬A2 ∨ · · · ∨ ¬An{z}|отрицательные литерыПОЛНОТА ОПЕРАЦИОННОЙ СЕМАНТИКИПереключательная лемма.Предположим, что запрос G0 :?C1 , .
. . , Ci , . . . , Cj , . . . , Cm кхорновской логической программе P имеет вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD1θ1 ∈ НОУ(Ci , D1+ )9?G10 :?(C1 , . . . , D1− , . . . , Cj , . . . , Cm )θ1D2 θ2 ∈ НОУ(Cj θ1 , D2+ )9?G20 :?(C1 θ1 , . . . , D1− θ1 , . . .
, D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙПереключательная лемма.Тогда запрос G0 к программе P также имеет вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD2η1 ∈ НОУ(Cj , D2+ )9?G100 :?(C1 , . . . , Ci , . . . , D2− , . . . , Cm )η1D1 η2 ∈ НОУ(Ci η1 , D1+ )9?G200 :?(C1 η1 , . . . , D1− , . . . , D2− η1 . . . , Cm η1 )η2и при этом запросы G20 и G200 являются вариантами друг друга,т. е. θ1 θ2 ρ0 = η1 η2 и η1 η2 ρ00 = θ1 θ2 для некоторых ρ0 , ρ00 ∈ Subst.ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙПереключательная лемма говорит о том, что при изменениипорядка выбора подцелей результат вычисления сохраняется (сточностью до переименования переменных).ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . .
. , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )19?i1G10 :?(C1 , . . . , D1− , . . . , Cj , . . . , Cm )θ1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )19?iСогласно определениюSLD-резолютивного вычисленияDomθ1 ∩ VarD2 = ∅.1G10 :?(C1 , . . . , D1− , . . . , Cj , . . .
, Cm )θ1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )19?i1Согласно определениюSLD-резолютивного вычисленияDomθ1 ∩ VarD2 = ∅.Поэтому D2+ θ2 = D2+ θ1 θ2 .G10 :?(C1 , .
. . , D1− , . . . , Cj , . . . , Cm )θ1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )9?1i1Согласно определениюSLD-резолютивного вычисленияDomθ1 ∩ VarD2 = ∅.Поэтому D2+ θ2 = D2+ θ1 θ2 .G10 :?(C1 , .
. . , D1− , . . . , Cj , . . . , Cm )θ1D29?θ ∈ НОУ(C θ2+j 1 , D2 )Следовательно,Cj θ1 θ2 = D2+ θ2 = D2+ θ1 θ2 ,т. е. Cj и D2+ унифицируемы.G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )19?iА раз Cj и D2+ унифицируемы,существует η1 ∈ НОУ(Cj , D2+ ),и при этом θ1 θ2 = η1 λ.1G10 :?(C1 , .
. . , D1− , . . . , Cj , . . . , Cm )θ1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . .
, Cj , . . . , CmD1 θ ∈ НОУ(C , D + )19?iДалее, заметим,что Ci θ1 θ2 = D1+ θ1 θ2 ,и поэтому Ci η1 λ = D1+ η1 λ.1G10 :?(C1 , . . . , D1− , . . . , Cj , . . . , Cm )θ1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . .
. , Ci , . . . , Cj , . . . , CmD1 θ ∈ НОУ(C , D + )Далее, заметим,что Ci θ1 θ2 = D1+ θ1 θ2 ,и поэтому Ci η1 λ = D1+ η1 λ.Т. к. Domη1 ∩ VarD1 = ∅,верноD1+ η1 = D1+ .G10 :?(C1 , . . . , D1− , . . . , Cj , . . . , Cm )θ119?i1D2 θ ∈ НОУ(C θ9?2+j 1 , D2 )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . .