Теормин 2014 (avasite), страница 3
Описание файла
Документ из архива "Теормин 2014 (avasite)", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Теормин 2014 (avasite)"
Текст 3 страницы из документа "Теормин 2014 (avasite)"
Пусть D1 = D1’ ∨ L1 и D2 = D2’ ∨ ¬L2 — два дизъюнкта. Пусть θ ∈ НОУ(L1, L2). Тогда дизъюнкт D0 = (D1’∨D2’)θ называется резольвентой дизъюнктов D1 и D2.
Пара литер L1 и ¬L2 называется контрарной парой.
Правило резолюции , θ ∈ НОУ(L1, L2)
Правило склейки.
Пусть D1 = D1’ ∨ L1 ∨ L2 — дизъюнкт. Пусть η ∈ НОУ(L1, L2).
Тогда дизъюнкт D0= (D1’ ∨ L1)η называется склейкой дизъюнкта D1. Пара литер L1 и L2 называется склеиваемой парой.
Правило склейки , η ∈ НОУ(L1, L2)
Определение резолютивного вывода.
Пусть S = {D1, D2, …, DN} — система дизъюнктов. Резолютивным выводом из системы дизъюнктов S называется конечная последовательность дизъюнктов D1’, D2’, …, Di’, Di+1’, …, Dn’, в которой для любого i, 1 ≤ i ≤ n, выполняется одно из трехусловий:
-
либо Di’ — вариант некоторого дизъюнкта из S
-
либо Di’ — резольвента дизъюнктов Dj’ и Dk’, где j , k < i
-
либо Di’ — склейка дизъюнкта Dj’, где j < i.
Дизъюнкты D1’, D2’, …, Dn’ считаются резолютивно выводимыми из системы S.
Резолютивный вывод называется успешным (или, подругому, резолютивным опровержением), если этот вывод оканчивается пустым дизъюнктом □.
Теорема корректности резолютивного вывода
Если из системы дизъюнктов S резолютивно выводим пустой дизъюнкт □, то S — противоречивая система дизъюнктов.
(следует из лемм, доказывающих, что склейка и резольвента являются логическими следствиями)
Лемма 1.
Если D0— резольвента дизъюнктов D1 и D2, то D1, D2|= D0
Лемма 2.
Если D0 — склейка дизъюнкта D, то D |= D0.
Лекция 10. Полнота резолютивного вывода.
Теорема о полноте резолютивного вывода.
Если S – противоречивая система дизъюнктов, то из S резолютивно выводим пустой дизъюнкт □.
(По теореме Эрбрана можно свести противоречивую систему дизъюнктов к конечности, потом воспольземся леммой об основных примерах дизъюнктов, а потом перейдём от неё к самим дизъюнктам через лемму о подъёме)
Лемма об основных примерах дизъюнктов.
Если S’ – конечная противоречивая система основных примеров дизъюнктов, то из S’ резолютивно выводим пустой дизъюнкт □.
(По индукции по количеству различных основных атомов в системе. Базис – если нету атомов, а система противоречива, значит она – уже пустой дизъюнкт. Индуктивный переход – возьмём некоторый основной атом, разобьём все дизъюнкты на 3 множества, где этот атом встречается, встречается с отрицанием, и не встречается. Построим все возможные резольвенты и объединим это множество с 3-м упомянутым ранее, - докажем, что оно противоречиво. Возьмём любую интерпретацию, для определённости – наш атом в ней выполнен. Но система дизъюнктов не выполняется, а дальше разбираем варианты, что именно не выполняется в нашей интерпретации. В одном случае – ясно как делать, а во втором случае нужно построить вспомогательную интерпретацию, которая отличается от начальной лишь тем, что выбранный основной атом в ней не выполняется, и рассмотрим теперь все эти множества для новой интерпретации)
Лемма о подъёме.
Пусть D1 и D2 – два дизъюнкта, и при этом Var D1 ∩ Var D2 = ∅
Пусть D1’=D1θ и D2’ =D2θ – два основных примера этих дизъюнктов D1 и D2.
Пусть D0’ – резольвента дизъюнктов D1’ и D2’.
Тогда из дизъюнктов D1 и D2 резолютивно выводим дизъюнкт D0, основным примером которого является D0’.
(Т.к. дизъюнкты не пересекаются, то подстановку можно разделить отдельно для каждого дизъюнкта, литера из контрарной пары имеет свои прообразы (могут быть разные и несколько), которые породили её в качестве части основного примера. Все указанные литеры (отдельно для каждого дизъюнкта) унифицируемы и у них есть НОУ – который является склейкой этих литер. Так же мы запомним тот унификатор, который приводит найденный НОУ к первоначальному, которые при объединении от обоих дизъюнктов дадут унификатор, а значит есть НОУ необходимый для применения резольвентного правила, причём для полученного резольвента основных примеров будет тоже являться примером)
Лекция 11. Стратегии резолютивного вывода. Вычислительные возможности метода резолюций.
Стратегия резолютивного вывода – вывод с дополнительными ограничениями на выбор подходящих пар дизъюнктов для получения резольвент.
Стратегия резолютивного вывода называется полной, если она позволяет вывести пустой дизъюнкт □ из любого противоречивого множества дизъюнктов.
Семантическая резолюция – резолюция с правилом I-резолюции – т.е. при построении резольвенты, оба дизъюнкта-предпосылки должны принадлежать разным множествам S1’ и S2’.
Теорема полноты I–резолюции
Если система дизъюнктов S противоречива, то для любой интерпретации I существует успешный I-резолютивный вывод пустого дизъюнкта □ из S .
Входная резолюция
Предположим, что в системе дизъюнктов S выделен некоторый дизъюнкт D0.
Тогда резолютивный вывод пустого дизъюнкта □ из системы дизъюнктов S можно строить, руководствуясь следующими соглашениями:
-
Для построения первой резольвенты D1 выбирается дизъюнкт D0 и некоторый дизъюнкт D ∈ S\{D0};
-
Для построения i-ой резольвенты Di Выбирается резольвента Di−1, построенная на предыдущем шаге вывода, и дизъюнкт D∈S.
Резолютивный вывод такого вида будем называть входным резолютивным выводом, инициированным дизъюнктом D0.
Хорновские дизъюнкты – класс формул, для которых резолютивное опровержение всегда имеет линейную структуру.
Литера L называется положительной, если L — это атом.
Литера L называется отрицательной, если L = ¬A, где A — это атом.
Дизъюнкт D = L1 ∨ L2 ∨ … ∨Ln называется хорновским дизъюнктом (horn clause), если среди литер L1, L2, …, Ln имеется не более одной положительной литеры.
Логические программы. Резолютивное опровержение систем хорновских дизъюнктов — это вычисление ответов на простые запросы, обращенные к базе позитивных знаний. Базы позитивных знаний (хорновские дизъюнкты) становятся, таким образом, логическими программами.
КОЛЛОКВИУМ КОЛЛОКВИУМ КОЛЛОКВИУМ КОЛЛОКВИУМ КОЛЛОКВИУМ КОЛЛОКВИУМ КОЛЛОКВИУМ
Лекция 12. Хорновские логические программы синтаксис. Декларативная семантика логических программ.
Императивное программирование: программа — это автомат, описывающий последовательности операторов (команд).
Функциональное программирование: программа — это система уравнений, описывающая вычисляемую функцию.
Логическое программирование: программа — это множество формул, описывающих условия решаемой задачи.
Синтаксис логических программ:
«заголовок» ::= «атом»
«тело» ::= «атом» | «тело», «атом»
«правило» ::= «заголовок» ← «тело»;
«факт» ::= «заголовок»;
«утверждение» ::= «правило» | «факт»
«программа» ::= «пусто» | «утверждение» «программа»
«запрос» ::= □ | ? «тело»
Главная особенность логического программирования — полисемантичность: одна и та же логическая программа имеет две равноправные семантики, два смысла.
Программисту важно понимать, ЧТО вычисляет программа. Такое понимание программы называется декларативной семантикой программы.
Компьютеру важно «знать», КАК проводить вычисление программы. Такое понимание программы называется операционной семантикой программы.
Пусть P — логическая программа, D — программное утверждение, а θ — подстановка. Тогда
-
Dθ — пример программного утверждения D,
-
если θ — переименование, то Dθ — вариант программного утверждения D,
-
если VarDθ = ∅, то Dθ — основной пример программного утверждения D,
-
[D] — множество всех основных примеров программного утверждения D,
-
[P] — множество всех основных примеров всех утверждений программы P .
Пусть G =?C1, C2, …, Cm — запрос. Тогда
-
атомы C1, C2, …, Cm называются подцелями запроса G,
-
переменные множества называются целевыми переменными,
-
запрос □ называется пустым запросом,
-
запросы будем также называть целевыми утверждениями.
Логические программы и логические формулы
Каждому утверждению логической программы сопоставим логическую формулу:
-
Правило: D’ = A0 ← A1, A2, …, An
D’ = ∀X1…∀Xk (A1&A2& … &An → A0), где {X1, …, Xk} =
-
Факт: D’’ = A;
D’’ = ∀X1…∀Xk A, где {X1, …, Xk} = VarA
-
Запрос: G = ?C1, C2, …, Cm
G = C1&C2& . . . &Cm
Определение (правильного ответа)
Пусть P — логическая программа, G — запрос к P с множеством целевых переменных Y1, …, Yk.
Тогда всякая подстановка θ = {Y1/t1, …, Yk/tk} называется ответом на запрос G к программе P.
Ответ θ = {Y1/t1, …, Yk/tk} называется правильным ответом на запрос G к программе P, если P |= ∀Z1. . . ∀ZN Gθ, где {Z1, . . . , ZN} = .
Под операционной семантикой понимают правила построения вычислений программы. (Операционная семантика описывает, КАК достигается результат работы программы)
Определение SLD-резолюции (Linear resolution with Selection function for Definite clauses (Р. Ковальски))
Пусть
-
G = ? C1, …, Ci, …, Cm — целевое утверждение, в котором выделена подцель Ci,
-
D’= A0’← A1’, A2’, …, An’ — вариант некоторого программного утверждения, в котором VarG ∩ VarD’ = ∅,
-
θ ∈ НОУ(Ci, A0’) — наиб. общ. унификатор подцели Ci и заголовка программного утверждения A0’.
Тогда запрос G’ = ?(C1, …, Ci−1, A1’, A2’, …, An’, Ci+1, …, Cm)θ
называется SLD-резольвентой программного утверждения D’ и запроса G с выделенной подцелью Ci и унификатором θ.
Определение SLD-резолютивного вычисления
Пусть
-
G0 = ?C1, C2, …, Cm — целевое утверждение,
-
P = {D1, D2, …, DN} — хорновская логическая программа.
Тогда (частичным) SLD-резолютивным вычислением, порожденным запросом G0 к логической программе P называется последовательность троек (конечная или бесконечная) (Dj1, θ1, G1), (Dj2, θ2, G2), …, (Djn, θn, Gn), …, в которой для любого i, i ≥ 1,
-
Dji ∈ P, θi ∈ Subst, Gi— целевое утверждение (запрос);
-
запрос Gi является SLD-резольвентой программного утверждения Dji и запроса Gi−1 с унификатором θi
Частичное SLD-резолютивное вычисление
comp = (Dj1, θ1, G1), (Dj2, θ2, G2), …, (Djk, θn, Gn) называется
-
успешным вычислением (SLD – резолютивным опровержением), если Gn = □;
-
бесконечным вычислением, если comp — это бесконечная последовательность;
-
тупиковым вычислением, если comp — это конечная последовательность, и при этом для выделенной подцели запроса Gn невозможно построить ни одной SLD-резольвенты.
Определение (SLD-резолютивного вычисления)
Пусть
-
G0 = ? C1, C2, …, Cm — целевое утверждение с целевыми переменными Y1, Y2, . . . , Yk,
-
P = {D1, D2, …, DN} — хорновская логическая программа,
-
comp = (Dj1, θ1, G1), (Dj2, θ2, G2), …, (Djn, θn, □) — успешное SLD-резолютивное вычисление, порожденное запросом G к программе P.
Тогда подстановка θ = (θ1 θ2 … θn)|Y1,Y2,...,Yk, представляющая собой композицию всех вычисленных унификаторов θ1, θ2, …, θn, ограниченную целевыми переменными Y1, Y2, …, Yk, называется вычисленным ответом на запрос G0 к программе P.
Лекция 13. Корректность операционной семантики. Полнота операционной семантики.
Определение правильного ответа
Пусть P — логическая программа, G — запрос к P с множеством целевых переменных Y1, …, Yk. Тогда всякая подстановка θ = {Y1/t1, …., Yk/tk} называется ответом на запрос G к программе P. Ответ θ = {Y1/t1, …, Yk/tk} называется правильным ответом на запрос G к программе P, если P |= ∀Z1 …∀Z NGθ, где {Z1, …, ZN} =
Определение вычисленного ответа
Пусть
-
G0 = ? C1, C2, …, Cm — целевое утверждение с целевыми переменными Y1, Y2, …, Yk,
-
P = {D1, D2, …, DN} — хорновская логическая программа,
-
comp = (Dj1, θ1, G1), (Dj2, θ2, G2), …, (Djn, θn, □) — успешное SLD-резолютивное вычисление, порожденное запросом G к программе P.
Тогда подстановка θ = (θ1 θ2 … θn)| Y1,Y2,...,Yk, представляющая собой композицию всех вычисленных унификаторов θ1, θ2, …, θn, ограниченную целевыми переменными Y1, Y2, …, Yk, называется вычисленным ответом на запрос G0 к программе P.
Теорема (корректности операционной семантики)
Пусть
-
G0= ? C1, C2, …, Cm — целевое утверждение,
-
P = {D1, D2, …, DN} — хорновская логическая программа,
-
θ — вычисленный ответ на запрос G0 к программе P.
Тогда θ — правильный ответ на запрос G0 к программе P.