Скачиваний:
24
Добавлен:
01.05.2014
Размер:
356.35 Кб
Скачать

Пролог как вычислительный формализм

Дескриптивный язык Пролога — это логика предикатов, представленная в форме фраз Хорна. Обрабатывающая структура Пролога -состоит из интерпретатора, к которому добавлен ряд встроенных предикатов (таких как "is/2") и, возможно, некоторых процедур общего назначения (таких как "findall/3"). При помощи Пролог - программы можно представить знания о системе почти таким же образом, как при помощи аксиоматической теории логики предикатов можно описать область знаний. (В явном виде это можно выразить так: каждая фраза Пролог - программы эквивалентна аксиоме, а вся программа эквивалентна теории). Формальный смысл Пролог - программы - это множество истинных конкретных реализации отношений, которые могут быть выведены интерпретатором на основании фраз программы.

Процесс представления знаний с помощью Пролог - программы может состоять из следующих этапов:

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

2. Программист выбирает символические обозначения для представления каждой сущности и каждого отношения.

3. Специалист по системе определяет каждое отношение семантически, при этом отмечается, какие конкретные реализации отношения будут истинными, а какие —ложными.

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

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

Пример представления знаний

В качестве примера рассмотрим систему, образованную межличностными отношениями работников завода. Начальник цеха, хорошо разбирающийся в этой системе, проводит ее анализ и разбивает систему на следующие компоненты. Каждый служащий (Мери Кравиц, Боб Джонс, Сэм Финкл и Патриция Хендрикс) — это значимая сущность. Каждая рабочая смена (дневная и вечерняя) это также значимая сущность. Отношение между служащим и сменой, в которую он работает, является важным. Отношение между служащими, которые знают друг друга, также является важным.

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

«мери», «боб», « сэм» и «патриция» - это служащие;

«дневная» и «вечерняя» —это смены;

« раб_смена » - это отношение между служащим и сменой, в которой он работает;

« знает » — это отношение между служащими, которые знают друг друга.

Начальник цеха семантически определяет отношение "раб_смена", устанавливая, что истинны следующие конкретные реализации этого отношения:

раб_ смена (мери, дневная)

раб_ смена (сэм, вечерняя)

раб_ смена (боб, вечерняя)

раб_ смена (патриция, вечерняя)

а все остальные конкретные реализации — ложны. Начальник цеха определяет отношение "знает", утверждая, что любые два яйца, работающие в одну и ту же смену, знают друг друга. Из этого следует, что истинными будут такие конкретные реализации отношения "знает":

знает (сэм, боб)

знает (боб, сэм)

знает (сэм, патриция)

знает (патриция, сэм)

знает (боб, патриция)

знает (патриция, боб)

Все остальные конкретные реализации этого отношения будут ложны-Программист, "вооружившись" этими семантическими Определения-1, определяет отношение "раб_смена" аксиоматически, при этом каждая истинная конкретная реализация данного отношения записывается в гиде факта:

% Служащий Смена

раб_смена(мери, дневная).

раб_смена(сэм, вечерняя).

раб_смена (боб, вечерняя).

раб_смена (патриция, вечерняя).

Отношение "знает" можно определить посредством правила (а не как совокупность фактов), обращающегося к отношению "раб_смена":

знает (А, Б) :-

раб_смена (А, Смена),

раб_смена (Б, Смена),

А\= =Б.

Проверка корректности данных аксиоматических определений состоит в необходимости продемонстрировать то, что интерпретатор языка Пролог сможет вывести из них все истинные конкретные реализации каждого отношения (см. разд. 1.4).

Соседние файлы в папке Гл.6,7,Прилож.,Допол