Задачу сделать через 2 аргумента (минимум или максимум). Ввести дополнительный предикат 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задачу сделать через 2 аргумента (минимум или максимум). Ввести дополнительный предикат



Пример вычисления минимального элемента списка

domains list=integer* predicates min(list,integer,integer)   clauses min([], S,S. min([H|T],S,X):- H>=X, min(T,S,X). min([H | T], X):- H < S, min(T,H,S).   goal min([3,5,-2,18],3,X), write(X)

 

Здесь последовательно отрываем голову от списка и сравниваем ее с первым элементом списка. Если первый элемент меньше головы, то он становится текущим и предикат min рекурсивно вызываем с ним. Если оторванная голова меньше первого элемента, то вызываем предикат min, с головой в качестве текущего элемента. Эти действия повторяем до тех пор, пока список не опустеет, и тогда промежуточное значение становится окончательным.


 

Функторы

Функторы представляют собой составные типы данных на прологе. Они позволяют структурировать данные для удобства их структурирования и обработки. Функторы соответствуют структурам в языках типа С или записям в Паскале, объявляется в domains следующим образом:

Domains Тип=имя_функтора(тип_аргументов) Есть факт, что у джона есть книга война и мир, написанная Толстым. Owns(Jhonm book(“WandP”,”L.Tolstoy”)

 

 

Приведенная программа отыскивает название книги X написанной Дюма, и ценной Z.

Функтор Kniga=book(author,title): kniga – тип, book – название. Authr, title – переопределенные типы данных. Аргументами функтора является author и title, однако могут быть и другие функторы в том числе.

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

 

Если затем указать альтернативный домен в качестве типа аргумента при объявлении предиката (в разделе Predicates), то в качестве аргумента предиката можно будет указывать любой из функторов.

Пример

 

Здесь объявлен альтернативный домен operator и функтор expression, в котором в качестве одного из аргументов указан альтернативный домен.

Предикат readterm(тип, имя переменной): тип – альтернативный домен, указанный в разделе domains: имя переменной- переменная с которой связывается функтор.

Функтор вводится в точности с его объявлением.

Функторы и списки удобно применять для работы с семантическими сетями.


 

Экспертные системы. Основные механизмы

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

1. База знаний

2. Машина вывода

Соответствует двум составляющим: языку описания задач и алгоритму решения задач. В настоящее время экспертные системы нашли научное применение включает психологию, САПР, промышленное планирование. Задачи, которые решают экспертные системы относится к разделу интеллектуальные. Впервые этот термин ввели Мизец и Фигенбаум. [EB6] Они предложили работать со знаниями как с базой данных, т.е. рассматривать задания как вид данных. Примеры экспертных систем: MYCIN, EMYCIN, Dendrol.

Структура экспертной системы представлена на рисунке:

Рис.1 – Структура экспертной системы

 

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

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

2. Решатель пользуясь базой знаний генерирует и выдает пользователю подходящую информацию, объясняя ход своих рассуждений пользуясь системой объяснений.

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

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

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

База знаний (БЗ) – ядро экспертной системы (ЭС), совокупность знаний предметной области, записанная на машинный носитель (на некотором языке, приближенном к естественному).

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

Подсистема объяснений – программа, позволяющая получить пользователю ответы на вопросы: «как была получена та или иная рекомендация», «почему система приняла то или иное решение» и т.д.

Интеллектуальный редактор базы знаний – программа, предоставляющая инженеру по знаниям возможность создавать базу знаний в диалоговом режиме. Здесь могут быть системы ложных меню, подсказок (help) и другие сервисные средства для работы с базой знаний.

Прародители экспертных систем – жрецы, гадалки, дельфийский оракул.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 99; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.28.197 (0.006 с.)