Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLTA_shpory2.doc
Скачиваний:
102
Добавлен:
23.12.2018
Размер:
2.34 Mб
Скачать

44. Метод резолюций в логике предикатов. Теорема Черча.

Не существует алгоритма, позволяющего распознать общезначимость, нейтральность или невыполнимость произвольной формулы исчисления предикатов. Такая теорема была доказана Алонзо Черчем в 1936г., это связано с существованием бесконечного числа возможных интерпретаций для формул исчисления предикатов.

Для того чтобы, было возможно применить метод резолюций для определения выполнимости множества предикатов необходимо произвести операцию УНИФИКАЦИИ, то есть конкретизировать как область определения предиката, так и объекты всех предикатов заданного множества. Механизм унификации является основным механизмом при выполнении инструкций в логическом программировании. Алгоритм, описанный набором хорновских дизъюнктов и базирующийся на принципе резолюций реализован в языках логического программирования.

Резольвента 2 предложений:

1) переменные одного предложения переименовываются таким образом, чтобы они отличались от переменных другого предложения

2) находится подстановка, при которой какой-либо литерал одного предложения становится дополнительным к какому-либо литералу другого предложения, и эта подстановка производится в оба предложения;

3) литералы, дополнительные друг к другу вычеркиваются;

4) если имеются одинаковые литералы, то все они, кроме одного в каком-либо предложении, вычеркиваются;

5) дизъюнкция литералов, оставшихся в обоих предложениях, и есть резольвента.

Фактором какого-либо предложения называется следствие этого предложения

1) находится подстановка, при которой какие-либо литералы одинаковы

2) после выполнения этой подстановки все одинаковые литералы, кроме одного, вычеркиваются

3) дизъюнкция оставшихся литералов и есть фактор

Процесс нахождения факторов и есть факторизация

45. Принцип логического программирования.

Логическое программирование основывается на следующих трех моментах:

• На способности ЭВМ доказывать теоремы

• На понимании, что вычисление — это частный случай логического вывода.

• На осознании того, что алгоритм — формальное задание функции.

Иначе говоря, задачу, решение которой ищется, надо представить в виде высказывания, доказательство которого следует предоставить ЭВМ.

Логическая программа представляет собой конечный набор формул логики предикатов одного из следующих видов:

P(t1,...,tn).,

Q(s1,...,sk): – Q1(s1,...,sk), …,Qm(s1,...,sk).,

-де P, Q, Q1, ...,Qmпредикаты, a t1,...,tn, s1,...,sk термы.

-формулы первого вида называются фактами, а второго — правилами.

Правило второе читается как «Q(s1,...,sk) истинно, если истинны Q1(s1,...,sk), …,Qm(s1,...,sk. Формула Q(s1,...,sk) называется заголовком правила. Правило позволяет выводить новые факты из уже имеющихся.

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

Для выполнения программы требуется обратиться с целевым запросом (целью), который представляет собой последовательность формул вида

R1(u1,...,um),...,Rp(u1,...,um).,

-где Rj(u1,...,um) —- атомарные формулы логики первого порядка, буквы uiтермы.

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

Описанные конструкции логического программирования семантически интерпретируются в логике предикатов. Процедура интерпретации состоит в сопоставлении формулам логической программы формул логики предикатов.

факты: формулы вида

F = "x1... "xsP(t1,...,tn),

Правилам ставится в соответствие формула вида

G = "y1... "yr(Q1(s1,..., sl)&...& Qm(s1,..., sl) ® Q(s1,..., sl)

Запрос получит в соответствие формулу

Hz ="z1... "zd(R1(u1,...,um),...,Rp(u1,...,um)),

Пусть F1,..., Faформулы, соответствующие всем фактам, G1, …, Gbвсем правилам. Тогда значение пары <программа, запрос> есть утверждение о том, что формула Hz есть логическое следствие формул F1,..., Fa, G1, …, Gb. Для того чтобы выяснить, так ли это, применяется метод резолюций.

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

Пример:

R(a,b).

Q(b,g(c)).

P(x,f(y)):—R(x,z),Q(z,f(y)).

P(x,f(y)):—R(x,z),Q(z,g(y)).

R(x,z):—Q(f(x),G(z)).

Здесь a, b,c,dконстанты, x,y,zпеременные.

Предположим, что целевой запрос есть формула

P(u,f(v)).

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