Информатика -продвинутый курс



         

. МОДЕЛИРОВАНИЕ РАССУЖДЕНИЙ - часть 5


означает, что «Y получает Z». Пусть знания об этих отношениях выражаются предложениями

1) получает(вы,

сила):- дает (логика, сила, вы);

2) дает

(логика, сила, вы).

Задача, которую нужно решить, состоит в том, чтобы ответить на вопрос: получаете ли вы силу ?

Представим этот вопрос в виде отрицания -получает(вы, сила). Резолюция предложения 1 и отрицания приводит к ~дает

(логика, сила, вы), что вместе с фактом 2 приводит к противоречию. Следовательно, ответом исходной задачи является «да».

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

Рассмотрим это на примере.

Пример.

Рассмотрим следующие родительские предложения:

1) ~получает

(вы. У);

2) получает (X,

сила) :- дает (Z, сила, X).

Они содержат три переменные X,Y и Z, которые неявно находятся под действием квантора общности. Так, предложение 1 утверждает, что «для всех Y вы не получаете Y», а 2 - «для всех Z любой Х получает силу, если Z дает силу X».

Правило резолюции требует совпадения предиката из отрицания 1 и головы правила 2. Это означает, что переменные получают значения (конкретизируются) соответственно их месту в предложениях 1 и 2 следующим образом: Х = вы, Y = сила. Предикат получает (вы, сила) называется общим примером для предикатов получает(вы

Y) и получает (Х, сила).

Изложенные положения логики предикатов находят реализацию и дальнейшее развитие в языке программирования Пролог.




Содержание  Назад  Вперед