Теормин 2014 (avasite), страница 4
Описание файла
Документ из архива "Теормин 2014 (avasite)", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Теормин 2014 (avasite)"
Текст 4 страницы из документа "Теормин 2014 (avasite)"
(Доказывается индукцией по длине вычисления)
Теорема полноты.
Пусть
-
P = {D1, D2, …, DN} — хорновская логическая программа,
-
G0 =?C1, C2, …, Cm — запрос с множеством целевых переменных Y1, Y2, …, Yk,
-
θ — правильный ответ на запрос G0 к хорновской логической программе P.
Тогда существует такой вычисленный ответ η на запрос G0 к программе P, что θ = ηρ для некоторой подстановки ρ.
(Теорема полноты гласит, что каждый правильный ответ — это пример (частный случай) некоторого вычисленного ответа).
(Рассмотрим любой частный случай нашего правильного ответа (запомним эту подстановку), для него примерим лемму об основных вычислениях, которая даст нам успешное SLD-резолютивное вычисление из множества основных примеров программных утверждений, а потом воспользуемся леммой о подъёме для хорновских дизъюнктов, которая даст нам вычисленный ответ, для которого правильный ответ и запомненная подстановка являются лишь частным случаем, а уже отсюда выведем нужную нам подстановку, являющуюся некоторым вычисленным ответом, применив трюк с подменой всех констант вставленных в используемой подстановке на символы переменных вместо которых они подставлялись)
Лемма об основных вычислениях.
Пусть
-
P = {D1, D2, …, DN} — хорновская логическая программа,
-
G0’ = ?C1’, C2’, …, Cn’ — основной запрос,
и при этом верно P |= G0’.
Тогда существует успешное SLD-резолютивное вычисление запроса G0’, обращенного к множеству [P] основных примеров программных утверждений программы P.
(Множество дизъюнктов из утверждений программы и дизъюнкта, порождённого основным запросом – противоречиво, а значит можно выделить конечное противоречивое множество, а значит по теореме полноты резолюций выводим пустой дизъюнкт. Дальше докажем, что этот вывод является SLD-выводом. Разобьём все дизъюнкты на смешанные и негативные, тогда есть резольвенты 2-х типов - которые попадают в первое множество, или во второе, всегда в выводе найдётся хотя бы одна sld-резольвента (ибо таков пустой дизъюнкт), а потом нужно просто применить трюк, перегруппировав все резольвенты и заменив их на sld ((1+2)+3) == ((1+3)+2) )
Лемма о подъеме (для логических программ)
Пусть G0’ = G0θ’ — основной пример запроса G0 с множеством целевых переменных Y1, …, Ym, обращенный к хорновской логической программе P. Если запрос G0’, обращенный к множеству основных примеров программных утверждений [P], имеет успешное вычисление, то исходный запрос G0, обращенный к самой программе P, также имеет успешное вычисление с ответом η, который удовлетворяет равенству θ'=ηρ’ для некоторой подстановки ρ'.
(Доказательство на основе обычной леммы о подъёме, которую применяют много раз подряд)
Лекция 14. Правила выбора подцелей. Деревья вычислений логических программ. Стратегии вычисления логических программ.
Определение.
Отображение R, которое сопоставляет каждому непустому запросу G: ?C1, C2, …, Cm одну из подцелей Ci=R(G) в этом запросе, называется правилом выбора подцелей.
Для заданного правила выбора подцелей R вычисление запроса G к логической программе P называется R-вычислением, если на каждом шаге вычисления очередная подцель в запросе выбирается по правилу R.
Ответ, полученный в результате успешного R-вычисления, называется R-вычисленным.
Переключательная лемма
Предположим, что запрос G0 : ?C1, …, Ci, …, Cj, …, Cm к хорновской логической программе P имеет вычисление G0 : ?C1, …, Ci, …, Cj, …, Cm
{ D1: θ1 ∈ НОУ(Ci, D+1) }
G1’ : ?(C1, …, D−1, … Cj, …, Cm)θ1
{ D2: θ2 ∈ НОУ(Cjθ1, D+2) }
G2’ : ?(C1θ1, …, D−1θ1, . . . , D−2, . . . , Cmθ1)θ2
Тогда запрос G0 к программе P также имеет вычисление
(тут вычисление, как и выше, но в другом порядке)
и при этом запросы G2' и G2’’ являются вариантами друг друга, т. е. θ1θ2ρ’ = η1η2 и η1η2ρ''= θ1θ2 для некоторых ρ', ρ'' ∈ Subst.
(лемма говорит, что при изменении порядка выбора подцелей результат вычисления сохраняется (с точностью до переименования переменных))
(Доказательство в лоб – рассмотрением порядка одного и второго)
Теорема сильной полноты
Каково бы ни было правило выбора подцелей R, если θ — правильный ответ на запрос G0 к хорновской логической программе P, то существует такой R-вычисленный ответ η, что равенство θ = ηρ выполняется для некоторой подстановки ρ.
(По теореме полноты – существует соответствующий вычисленный ответ, дальше итерационно – на первом шаге мы R-правило дало нам некоторую подцель, мы находим её в нашем вычислении и основываясь на переключательной теореме сдвигаем нужное вычисление вперёд. Остаётся проделать этот трюк лишь нужное число раз)
Деревом SLD-резолютивных вычислений запроса G0 к логической программе P называется помеченное корневое дерево TG0,P, удовлетворяющее следующим требованиям:
-
Корнем дерева является исходный запрос G0
-
Потомками каждой вершины G являются всевозможные SLD-резольвенты запроса G (при фиксированном стандартном правиле выбора подцелей)
-
Листовыми вершинами являются пустые запросы (завершающие успешные вычисления) и запросы, не имеющие SLD-резольвент (завершающие тупиковые вычисления).
Стратегией вычисления запросов к логическим программам называется алгоритм построения (обхода) дерева SLD-резолютивных вычислений TG0,P всякого запроса G0 к произвольной логической программе P.
Стратегия вычислений называется вычислительно полной, если для любого запроса G0 и любой логической программы P эта стратегия строит (обнаруживает) все успешные вычисления запроса G0 к программе P.
(Фактически, стратегия вычисления — это одна стратегий обхода корневого дерева. Как известно, таких стратегий существует много, но среди них выделяются две наиболее характерные: стратегия обхода в ширину и стратегия обхода в глубину с возвратом)
Стратегия обхода в ширину является вычислительно полной.
Стратегия обхода в глубину является вычислительно не полной.
Поскольку соображения эффективности превалируют над требованиями вычислительной полноты, в качестве стандартной стратегии вычисления логических программ была выбрана стратегия обхода в глубину с возвратом. (Программист должен сам позаботиться о надлежащем порядке расположения программных утверждений, чтобы стандартная стратегия вычисления позволяла отыскать все вычисленные ответы.)
Лекция 15. Алгоритмическая полнота логических программ. Моделирование машин Тьюринга логическими программами. Теорема Черча.
Тезис Черча
Класс эффективно (алгоритмически) вычислимых арифметических функций в точности совпадает с классом арифметических функций, вычислимых в каждой из перечисленных ниже моделей вычислений
-
машины Тьюринга—Поста,
-
λ-исчисление Черча—Клини,
-
системы равенств Эрбрана—Геделя,
-
алгорифмы Маркова,
-
системы Колмогорова—Шенхаге,
-
машины Минского,
-
...
Модели вычислений такого вида называются алгоритмически полными.
Машина Тьюринга
Задан ленточный алфавит A = {a0, a1, a2, …, an}, в котором особо выделена одна из букв a0 (пустой символ).
Ленточным словом называется всякое слово в алфавите A. Множество всех ленточных слов обозначим A*.
Для каждого слова w = z1z2 … zn−1zn будем использовать запись w−1 для обозначения обратного слова znzn−1…z2z1. Задан алфавит состояний Q = {q0, q1, q2, …, qm}, в котором особо выделено одно из состояний q0 (начальное состояние).
Ленточной конфигурацией называется всякое слово вида w'q x w’’, где
-
q — состояние, q ∈ Q,
-
x — ленточная буква, x ∈ A,
-
w', w’’ — ленточные слова, w’, w’’ ∈ A*.
-
q — это то состояние, в котором находится МТ,
-
x — это буква, которая записана в той ячейке ленты, которую обозревает считывающая головка МТ,
-
w’ — это ленточное слово, составленное из символов, записанных слева от обозреваемой ячейки,
-
w’’ — это ленточное слово, составленное из символов, записанных справа от обозреваемой ячейки.
По умолчанию считается, что во всех остальных ячейках ленты записаны пустые символы.
Ленточная конфигурация вида uq0xv называется начальной конфигурацией.
Множество всех конфигураций обозначим ConfA,Q.
Множество всех начальных конфигураций обозначим Conf0A,Q.
Командой называется всякая пятерка вида q x y q’ D, где
-
q, q’ — состояния, q, q’ ∈ Q,
-
x , y — ленточные буквы, x , y ∈ A,
-
D — направление сдвига головки, D ∈ {L, R}.
Эту команду нужно понимать так: если МТ находится в состоянии q и обозревает символ x, то записать в обозреваемую ячейку символ y, перейти в состояние q’ и сдвинуть считывающую головку на одну ячейку в направлении D.
Каждая команда K задает отношение перехода →K на множестве ленточных конфигураций α →K β
Оно определяется так:
-
если α = uzqxv и K = qxyq’L, то β = uq'zyv ,
-
если α = qxv и K = qxyq’L, то β = q’a0yv ,
-
если α = uqxzv и K = qxyq’R , то β = uyq’zv ,
-
если α = uqx и K = qxyq’R , то β = uyq’a0.
Программа машины Тьюринга — это произвольное множество команд π = {K1, K2, …, KN}. Программа π называется детерминированной, если для любых двух команд этой программы
Ki = qi xyqi’Di , Kj = qj ztqj’Dj, выполняется хотя бы одно из двух условий qi ≠ qj, x ≠ z.
Программа π задает отношение переходов на множестве ленточных конфигураций →π = . Конфигурация α называется заключительной для программы π, если не существует никакой конфигурации β, для которых выполняется α →π β. Это означает, что α = uqxv, и в программе π нет ни одной команды K = qx…
Вычислением машины Тьюринга с программой π на начальной конфигурации α0, α0 ∈ Conf0 называется последовательность конфигураций π(α0) = α0, α1, α2, …, αi, αi+1, … удовлетворяющая следующим условиям:
-
для любого i, i ≥ 0, верно αi →π αi+1;
-
последовательность π(α0) либо является бесконечной, либо заканчивается заключительной конфигурацией αN.
В последнем случае αN называется результатом вычисления. Результат бесконечного вычисления считается неопределенным. Ясно, что вычисление π(α0) детерминированной машины Тьюринга однозначно определяется начальной конфигурацией α0 и программой π.
Лемма 1
Для любой пары ленточных конфигураций α, β ∈ Conf и команды K отношение перехода α →K β выполняется тогда и только тогда, когда запрос Gα: ?P (left (α), right (α), X, Y) и одно из программных утверждений D1 (K), D2 (K) имеют SLD-резольвенту Gβ: ?P (left (β), right (β), X, Y).
(типо очевидно – если есть резольвента – т.е. есть соответствующий НОУ, который описывает лево и право и дальше по построению следует, что выполняется отношение перехода в машине Тьюринга, и наоборот – если выполняется отношение перехода, то мы можем выписать НОУ совершить SLD-резолютивный переход)
Лемма 2
Ленточная конфигурация α ∈ Conf является заключительной для машины Тьюринга π тогда и только тогда, когда запрос Gα: ?P (left (α), right (α), X, Y) и одно из программных утверждений множества имеют пустой дизъюнкт □ в качестве SLD-резольвенты.
(типо так же очевидно как и в предыдущей лемме)
Теорема (о моделировании МТ логическими программами)
Каковы бы ни были машина Тьюринга π и начальная конфигурация α0, вычисление α0 →π α1 →π α2 →π … →π αN завершается заключительной конфигурацией αN тогда и только тогда, когда запрос Gα0: ?R (left (α0), right (α0), X, Y) к хорновской логической программе Pπ имеет успешное вычисление с вычисленным ответом θ = {X/left (αN), Y/right (αN)}.