Студопедия — Интерпретатор Пролога
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Интерпретатор Пролога






 

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

domains

имя=symbol

predikates

отец(имя, имя)

дед(имя, имя)

clauses

10 отец(алексей, владимир).

20 отец(андрей, алексей).

30 дед(X, Y): -

отец(X, Z),

отец(Z, Y).

Пусть задан вопрос: дед(X, Y). Он помещается в стек вопросов (целей) с состоянием

40 дед(X, Y).

В первом цикле интерпретатор просматривает сверху вниз пункты программы 10-30. Он пытается унифицировать первый литерал из стека (в данном примере литерал всего один) с первыми литералами предложений 10-30. Только правило 30 в нашем примере может быть унифицировано с предложением 40. Перед унификацией интерпретатор переименовывает переменные в пункте 30: X ® X1, Y ® Y1, Z ® Z1. Унификация предложений 40 и 30 требует замену: X вместо X1, Y вместо Y1. После унификации литерала из стека вопросов 40 и правила 30 содержимое стека замещаетсяусловной частью правила 30:

40a отец(X, Z1), отец(Z1, Y).

 
Во втором цикле первый литерал в 40a унифицируется с фактом 10: “ алексей ” заменяется X, а “ владимир ” - Z1. Таким образом, рассматриваемый литерал отец(X, Z1)=отец(алексей, владимир)

 
II-2. Пр1: если есть , то есть

Пр2: есть очень

Сл: есть .

 

III. Пр1: если есть , то есть

Пр2: есть более или менее

Сл: есть более или менее .

 

IV-1. Пр1: если есть , то есть

Пр2: есть не

Сл: неизвестно.

 

IV-2. Пр1: если есть , то есть

Пр2: есть не

Сл: есть не ,

где “Пр” – предпосылка, “Сл” – следствие, = ()/ , = ()/ , ”очень ” = , “более или менее ” = ( - любое нечеткое множество).

Условие-неравенство: ()Ù ( () ())£ (), где “ ” – импликация, зависящая от вида нечеткой логики .

Пример: = ,

= =0+1+2+3+4+5+6+7+8+9+10,

=мало=1/0+0.8/1+0.6/2+0.4/3+0.2/4,

=средне=0.2/2+0.4/3+0.8/4+1/5+0.8/6+0.4/7+0.2/8.

Проверим правило-критерий I. Для этого сначала найдем бинарное отношение ( (), ()) между и в предпосылке Пр1 ( (), () – множества, определяемые атрибутами , , принимающими значения из , соответственно). Предпосылка Пр1 - “если есть , то есть ” - содержит два унарных отношения: ( ())= и ( ())= . Из всех возможных отношений ( (), ()) выберем отношение вида ( (), ()) = = = () () ) /(, ), где () ()= (, ). Тогда с учетом табл.1.3, где = (), = (), можно рассчитать ( (), ()) следующим образом:

 
2.3.2. Описание фактов

 

При описании предложений типа фактов на языке Пролог необходимо соблюдать правила:

- имена объектов (сущностей) и отношений состоят из латинских букв, цифр, знаков подчеркивания и начинаются со строчной буквы;

- первым в предложении указывается имя отношения, за которым в скобках указываются имена объектов, разделяемых запятыми;

- факт заканчивается точкой, порядок перечисления объектов в скобках произволен, но постоянен.

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

Аргументы могут быть представлены константами или переменными. Пример (для удобства чтения наряду с латинскими будем использовать русские буквы): вопрос “ отец(виктор, X) ” переводится как “отцом каких детей является Виктор? ”. Для нахождения ответа просматриваются имена всех имеющихся в наличии объектов, отец которых – Виктор. Ответов может быть несколько, например: 1) X =таня, 2) X=оля.

Подвопросы в предложениях отделяются запятыми (союз “и”). Примеры:

1. нравится(виктор, анна), нравится (анна, виктор) – нравятся ли Виктор и Анна друг другу?.

2. нравится(виктор, X), нравится(анна, X) – что нравится обоим – Виктору и Анне?.

Факты в программе на языке Пролог записываются в разделе clauses. Пример программы на языке Пролог, содержащей факты:

domains

имя=symbol

predikates

отец(имя, имя)

муж(имя, имя)

clauses

отец(виктор, таня).

отец(виктор, оля).

отец(виктор, даша).

отец(владимир, виктор).

отец(владимир, сергей).

муж(виктор, анна).

муж(владимир, люда).

Здесь domains - определение аргументов, predikates - формат предикатов, clauses – факты и правила. На запрос отец(X, Y) Пролог отвечает в соответствии с принципом поиска всех решений:

X=виктор, Y=таня

X=виктор, Y=оля

 
10. = =1, = =0; ()=0.8, (, )=0; =0.8Ù 0=0 и т. д.

 
 


50. = =5, = =0; ()=0, (, )=1; =0Ù 1=0 и т. д.

Очевидно, что ()= [ ( (, )]=0. Аналогично находим ()=0. Далее:

02. = =0, = =2; ()=1, (, )=0.2; ( (, )=1Ù 0.2=0.2= .

12. = =1, = =2; ()=0.8, ( , )=0.2; =0.8Ù 0.2=0.2;

 
 


42. = =4, = =2; ()=0.2, (, )=1; =0.2Ù 1=0.2.

52. = =5, = =2; ()=0, (, )=1; =0Ù 1=0 и т. д. до =0. Для этих пунктов ()= [ ( (, )]=0.2. После нахождения всех значений () имеем:

 

( ())=0.2/2+0.4/3+0.8/4+1/5+0.8/6+0.4/7+0.2/8 = = средне.

 







Дата добавления: 2014-11-10; просмотров: 497. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

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

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия