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

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

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






 

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

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; просмотров: 494. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Тактические действия нарядов полиции по предупреждению и пресечению групповых нарушений общественного порядка и массовых беспорядков В целях предупреждения разрастания групповых нарушений общественного порядка (далееГНОП) в массовые беспорядки подразделения (наряды) полиции осуществляют следующие мероприятия...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

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