14. Правила выбора подцелей. Деревья вычислений логических программ. Стратегии вычисления логических программ (В.А. Захаров - Лекции)
Описание файла
Файл "14. Правила выбора подцелей. Деревья вычислений логических программ. Стратегии вычисления логических программ" внутри архива находится в папке "В.А. Захаров - Лекции". PDF-файл из архива "В.А. Захаров - Лекции", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Основыматематическойлогики и логическогопрограммированияЛЕКТОР: В.А. ЗахаровЛекция 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 , . . . , 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 )θ1Значит, Ci η1 λ = D1+ λ,D2т. е. Ci η1 и D1+ унифицируемы.9?9?1θ2i1∈ НОУ(Cj θ1 , D2+ )G20 :?(C1 θ1 , . . . , D1− θ1 , . . . , D2− , . . . , Cm θ1 )θ2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).Рассмотрим первое вычислениеG0 :?C1 , . . . , Ci , . . . , Cj , . . .
, CmD1 θ ∈ НОУ(C , D + )19?iА раз Ci η1 и D1+ унифицируемы,существует η2 ∈ НОУ(Ci η1 , D1+ ),и при этом λ = η2 ρ0 .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Итак, получаемη1 ∈ НОУ(Cj , D2+ ),η2 ∈ НОУ(Ci η1 , D1+ ),θ1 θ2 = η1 λ = η1 η2 ρ0 .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 , . . . , CmD2 η ∈ НОУ(C , D + )9?1j2Итак, получаемη1 ∈ НОУ(Cj , D2+ ),η2 ∈ НОУ(Ci η1 , D1+ ),θ1 θ2 = η1 λ = η1 η2 ρ0 .G100 :?(C1 , . . . , Ci , . . . , D2− , . . . , Cm )η1D19?η ∈ НОУ(C η2Значит, запрос G0 имеети другое вычисление.+i 1 , D1 )G200 :?(C1 η1 , . . .
, D1− , . . . , D2− η1 . . . , Cm η1 )η2ПРАВИЛА ВЫБОРА ПОДЦЕЛЕЙДоказательство (переключательной леммы).G0 :?C1 , . . . , Ci , . . . , Cj , . . . , CmD2η1 ∈ НОУ(Cj , D2+ )9?Применяя те же рассужденияк построенному вычислениюполучим η1 η2 = θ1 θ2 ρ00 .G100 :?(C1 , . . . , Ci , . .