Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1414-Лекции.doc
Скачиваний:
51
Добавлен:
25.12.2018
Размер:
419.84 Кб
Скачать

/* Программа 12 */

domains

spisok = name

name=symbol*

predicates

poisk_elem(name, spisok).

clauses

poisk_elem(Name, [Name | _ ]).

poisk_elem(Name,[ _ | Tail]) :- poisk_elem(Name, Tail).

Предикат poisk_elem имеет в качестве доменов терм name, определяющий объект поиска и терм spisok, в котором осуществляется поиск.

Первое предложение раздела clauses утверждает, что если объект поиска является головой списка, то на этом выполнение рекурсивного правила (описанного ниже) заканчивается.

Если же объект поиска не является головой списка, то рекурсивное правило определяет принадлежит ли он хвосту списка. Заголовок рекурсивного правила содержит в качестве аргументов объект поиска Name и список [ _ | Tail ], в котором голова отделена от хвоста списка. При этом голова списка обозначена анонимной переменной, поскольку предыдущее сопоставление показало, что голова текущего списка не совпадает с объектом поиска и поэтому на данный момент она нас не интересует.

Входящий в рекурсивное правило предикат poisk_elem(Name, Tail) определяет хвост текущего списка (Tail) как новый список и возвращает управление первому предложению раздела clauses, которое обеспечивает сравнение объекта поиска с головой нового списка, т.е. со следующим элементом исходного списка. Если сравнение не успешно, то процесс продолжается до выявления искомого элемента или полного исчерпания списка.

Например для запроса, представленного ниже, схема поиска будет выглядеть следующим образом:

Goal: poisk_elem(d, [a, b, d, e])

Голова списка

Хвост списка

Объект поиска

a

[b, d, e]

d

b

[d, e]

d

d

[e]

d

Поиск успешен и система отвечает: YES.

Соответственно, для другого запроса схема поиска будет такая:

Goal: poisk_elem(d, [a, b, c, e])

Голова списка

Хвост списка

Объект поиска

a

[b, c, e]

d

d

[c, e]

d

c

[e]

d

e

[ ]

d

Поиск неуспешен и система отвечает: NO.

16 Лекция №15. Экспертные системы

Время: 2 часа (90 мин.)

16.1 Основные вопросы

- экспертная диагностика.

16.2 Текст лекции

Э кспертные системы – это программы, которые в некоторой области знаний сопоставимы по своему "интеллекту" с человеком-экспертом. Обычно такая область знаний чётко определена и строго ограничена. Для этой области знаний экспертная система способна выдавать свои экспертные заключения на основе запрашиваемой от него информации.

Ниже рассматривается программа экспертной системы, обеспечивающей определение вируса для ПЭВМ путём ответов "ДА" или "НЕТ" на задаваемые системой вопросы. Схема поиска вируса может быть представлена следующим образом:

Дадим краткие пояснения для используемых в программе предикатов:

clean_slate – очистка ДБД;

recognize – идентификация вируса;

characts – описание признаков вирусов;

check – обработка списка признаков вирусов.

ask_about – опрос пользователя относительно наличия или отсутствия признаков вируса.

Текст программы экспертной системы приводится ниже:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]