Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_gosam (1).doc
Скачиваний:
9
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать

8. Выводимость в логике предикатов первого порядка, унифицирующие подстановки, метод резолюций для логики предикатов первого порядка. Метод резолюций для логики предикатов первого порядка

В отличие от логики высказываний в логике предикатов первого порядка имеется очень большое число интерпретаций формулы, поэтому общезначимость или противоречивость этой формулы невозможно доказать проверкой ее истинности при всех возможных интерпретациях.

    В логике предикатов первого порядка не существует никаких алгоритмов, проверяющих общезначимость формулы, но существуют алгоритмы, которые могут ее подтвердить.

  Нахождение в двух дизъюнктах контрарных литер выполняется довольно просто, если дизъюнкты не содержат переменных. Дизъюнкты, содержащие переменные, необходимо унифицировать, то есть найти такую подстановку, в результате которой исходные дизъюнкты будут содержать контрарные литеры.

    Рассмотрим несколько примеров.

  1. Пусть формулы A(x) и A(b) не тождественны. В формуле A(x) встречается переменная x, а в A(b) – константа b. Чтобы отождествить A(x) и A(b), заменим переменную x на константу b, то есть присвоим переменной x значение b. В результате получаем A(x)=A(b).

  2. Рассмотрим дизъюнкты: D1: A(x) B(x), D2: ~A(f(y)) C(y), которые не содержат контрарных литер. Если в D1 подставить f(a) вместо x, а в D2 – значение a вместо y, то дизъюнкты преобразуются к следующему виду:

    D1: A(f(a)) B(f(a)),     D2: ~A(f(a)) C(a).

    Так как A(f(a)) и ~A(f(a)) контрарны, то получим резольвенту дизъюнктов D1 и D2 в виде:

    R: B(f(a)) C(a).

    Дизъюнкты имеют одну или несколько резольвент, так как возможны разные подстановки. Любую подстановку можно представить с помощью множества упорядоченных пар ti/xi:

    S={t1/x1, t2/x2 , ..., tn/xn},

где ti – терм, xi – переменная, i=1, ..., n.

    Пара ti/xi означает, что переменная xi повсюду заменяется на терм ti. Переменная не может быть заменена на терм, содержащий ту же самую переменную, например переменную xi нельзя заменить на терм ti=f(xi).

    Если подстановка S применяется к каждому члену некоторого множества {Ei}, то множество подстановочных выражений обозначается {Ei}S. Множество выражений {Ei} унифицируемо, если существует подстановка S такая, что E1S= E2S= E3S=... . В таком случае S называется унификатором для множества выражений {Ei}.

    Например, подстановка S={A/x,B/y} унифицирует выражения P(x,f(y),B) и P(x,f(B),B). После замены переменной x на терм A и переменной у на терм В выражение P(x,f(y),B) преобразуется в P(A,f(B),B), a P(x,f(B),B) в P(A,f(B),B). Полученные выражения унифицируемы.

    Обычно унификацию используют для того, чтобы показать, можно ли литеры привести в соответствие между собой. Для этого в литерах вместо переменных надо подставить термы.

    Процесс сопоставления некоторого выражения с эталонным называется сопоставлением с образцом. Он играет важную роль в системах искусственного интеллекта.

    Одна и та же задача с помощью формул логики предикатов первого порядка может быть записана в различной форме. Представляется целесообразным, особенно для выполнения формальных преобразований, использование стандартной формы записи выражений.

 Рассматривается способ представления термов в логике предикатов первого порядка и предлагается алгоритм унификации, использующий данное представление.

 Унификация двух термов логики предикатов первого порядка является важной составляющей многих процедур логического вывода (например, процедур основанных на методе резолюций Робинсона). Так как унификация является одной из наиболее трудоемких операций, её реализации при разработке автоматического доказателя теорем следует уделить особое внимание. Эффективность процедуры унификации тесно связана с используемым способом представления термов [1]. Классический алгоритм унификации, не применяющий специальные структуры для представления термов, не может быть использован при решении задач практической сложности, поэтому возникла необходимость в разработке алгоритмов и способов представления термов, позволяющих решать подобные задачи. В настоящее время существует целый ряд алгоритмов унификации, использующих различные представления термов. Наиболее известными являются алгоритмы, представленные в [2] и [3], использующие для хранения термов, графовые структуры.

Предлагается новый способ представления термов, одним из достоинств которого является простота реализации и распараллеливания процедуры унификации. Терм представляется в виде множества строк специального вида. Подобное представление называется расширенным P-представлением терма.  В качестве примера P-представления терма,  рассмотрим терм  t=f(a,x,g(h(x,y))). P-представление терма t равно {f1.a.1.const, f2.x.1.var, f3.g1.h1.x.3.var, f3.g1.h2.y.3.var}. Первый элемент этого множества f1.a.1.const обозначает, что первым аргументом функционального терма f является константа a, причем уровень вложенности константы равен 1. Нетрудно показать, что алгоритм преобразования терма в его представление имеет сложность O(n), где n – число символов, входящих в терм. Для решения задачи унификации множества пар термов S={t1=s1, t2=s2, …,tn=sn} необходимо создать P-представления для термов t1, ..., tn, s1, …,sn. Далее производится установка связей между представлениями термов, входящими в одно уравнение. Полученное множество S назовем P-представлением задачи унификации термов {t1s1, t2s2, …,tnsn}.К множеству S последовательно применяются правила преобразования множества до получения НОУ (или сообщения об отсутствии НОУ).

Правило 1: если существует связь между двумя элементами p1 и p2 множества S и длина одного из элементов меньше длины другого элемента, то, если тип элемента с меньшей длиной – константа, унифицирующей подстановки не существует. Если же тип элемента с меньшей длиной - переменная, то создается унифицирующая подстановка. Все элементы, связанные с p1,  и элемент p1 удаляются из множества.

Правило 2: если существует связь между двумя элементами p1 и p2 множества S и длины элементов равны, то, если типы элементов – константы и они не равны, то унифицирующей подстановки не существует. Если же константы одинаковы, то элементы p1 и p2 можно удалить из множества. Если тип одного из элементов (допустим - p1) – переменная, то создается подстановка p1/p2,  все вхождения переменной из p1 заменяются на константу из p2, элементы p1 и p2 удаляются из множества.

Алгоритм унификации можно описать следующим образом:

1.        Создание P-представления задачи S (множество S).

2.        Применение правила 2 к множеству S.

Если множество S не пусто – применение правила 1, иначе переход к пункту 5.Если множество S не пусто – переход к пункту 2, иначе переход к пункту 2.Перемножение полученных подстановок. Получение унифицирующей подстановки . Завершение работы.

Использование алгоритма позволяет упростить реализацию процедуры унификации множества пар термов, а представление задачи в виде множества несвязанных между собой графов облегчает распараллеливание процедуры унификации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]