Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kontr_ZPA_Int.doc
Скачиваний:
113
Добавлен:
10.11.2018
Размер:
668.67 Кб
Скачать

1.2.4. Продукционные модели представления знаний

Наибольшее распространение в системах искусственного интеллекта получили продукционные модели представления знаний в виде правил продукций или продукционных правил (далеепродукций) в виде:

«Если (условие) то (действие)».

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

Наряду с указанными продукциями применяются следующие продукции:

«Если (предшествующий) то (последующий)»;

«Если (основание) то (гипотеза)».

В продукционных моделях, так же как и в логических моделях, используются соединители "и", "или" и "не", например:

«Если Вова является сыном Кости

и Костя является сыном Олега

то Вова является внуком Олега».

Если заключение одной продукции является посылкой другой продукции, то можно установить третью продукцию с посылкой из первой продукции и заключением из второй, т.е.: «Если X то Y» и «Если Y то Z» «Если X то Z».

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

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

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

Продукционная модель базы знаний "Транспортные средства":

Если ( самолет и вертолет и катер и танкер и грузовик и такси )

то ( транспортные средства ).

Если ((имеет колеса) и (имеет винт) и (имеет крылья) и (возит грузы) )

то ( самолет ).

Если ((имеет колеса) и (имеет винт) и не (имеет крылья) и (возит грузы) )

то ( вертолет).

Если (не (имеет колеса) и (имеет винт) и не (имеет крылья) и не (возит грузы))

то ( катер).

Если ((имеет колеса) и не (имеет винт) и не (имеет крылья) и (возит грузы) )

то ( грузовик).

Если ((имеет колеса) и не (имеет винт) и не (имеет крылья) и не (возит грузы))

то ( такси).

2.2. Порядок выполнения работы

2.1. Для своего варианта предметной области (см. "Лабораторную работу №1") разработать логическую, семантическую, фреймовую и продукционную модели представления знаний в базе знаний создаваемой экспертной системы.

2.2. Используя любую традиционную систему создания баз данных ("Dbase", "Paradox", текстовый массив и др.), создать в компьютере 4 базы знаний экспертной системы с использованием логической, семантической, фреймовой и продукционной моделей представления знаний соответственно.

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

2.3. Отчет о работе

Отчет о лабораторной работе должен иметь следующую структуру и содержать разделы:

Титульный лист (см.выше)

Содержание работы

Название и цель работы (см.выше)

Реферат (теоретические сведения и общая характеристика работы – см.выше)

2.3.1. Расчетно-графическая часть

Вариант задания (взять из "Лабораторной работы №1")

Состав базы знаний (взять из "Лабораторной работы №1")

Логическая модель базы знаний

Семантическая модель базы знаний

Фреймовая модель базы знаний

Продукционная модель базы знаний

2.3.2. Лабораторная часть

База данных логической базы знаний (здесь и далее – привести листинг (распечатку) и указать используемый тип системной базы данных)

База данных семантической базы знаний

База данных фреймовой базы знаний

База данных продукционной базы знаний

Анализ разработанных моделей баз знаний и выводы.

3. Лабораторная работа №3 "Программное обеспечение экспертной системы"

Цель работы – получение практических навыков использования языка программирования Prolog в среде "Turbo-Prolog" при создании программного обеспечения экспертной системы.

3.1. Основные теоретические сведения

3.1.1. Структура „Prolog”- программы

Базовым языком программирования в системах искусственного интеллекта является язык логического программирования „Prolog, в основу которого положен метод автоматического доказательства теорем в исчислении предикатов первого порядка (см. "Лабораторную работу №2").

В данной лабораторной работе необходимо разработать Prolog”-программы моделей представления знаний (см. "Лабораторную работу №2") и Prolog”-программу работы (решения задачи) экспертной системы (ЭС) в среде программирования "Turbo-Prolog" (версии 2.0), которая служит для организации диалога пользователя с ЭС.

Prolog”-программа включает следующие разделы:

1) constans – объявление констант (раздел не обязательный);

2) domains – объявление типов данных для аргументов предикатов;

3) global domains - объявление глобальных типов данных (раздел не обязательный);

4) database - объявление предикатов динамической базы знаний;

5) global database объявление предикатов глобальной динамической базы знаний (раздел не обязательный);

6) predicates - объявление предикатов;

7) global predicates - объявление глобальных предикатов (раздел не обязательный);

8) goal определение компилятором цели запроса (целевого утверждения); при отсутствии в программе этого раздела пользователь вводит запрос самостоятельно;

9) clausesопределение правил (текст программы).

Утверждения (правила), представленные в виде предикатов и объявленные в разделе database, составляют внутреннюю базу данных (ВБД) Prolog- программы. Основными стандартными предикатами для работы с ВБД являются:

а) consult (Имя_файла) – дополнить ВБД другой базой данных, находящейся в файле с именем Имя_файла;

б) save (Имя_файла) –сохранить ВБД в файле с именем Имя_файла;

в) assert (Факт) дополнить ВБД новым фактом Факт;

г) retract (Факт) – исключить факт Факт из ВБД.

Правила, представленные в разделе clauses, являются конструкциями вида:

вывод :- условие 1, условие 2, … условие n.

и интерпретируются компилятором Prolog-программы следующим образом: "Утверждение вывод является истинным при одновременной истинности утверждений условие 1, условие 2, … условие n".

Для ввода и вывода данных в процессе работы Prolog-программы используются следующие стандартные предикаты ввода-вывода:

  • readint (X), readreal (X), readln (X) ввод с текущего устройства ввода соответственно целых, действительных чисел и символов;

  • write ( Зн1, Зн2, Зн3, …) вывод значений констант или переменных Зн1, Зн2, Зн3,на текущее устройство вывода;

  • nl – перевод выходного потока на следующий рядок текущего устройства вывода.

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