Лабораторная работа 1

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

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

Краткое теоретическое введение

Основные понятия экспертных систем

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

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

Определим понятия, связанные со структурой ЭС.

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

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

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

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

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

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

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

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

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

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

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

В ходе тестирования производится оценка выбранного способа представления знаний в ЭС в целом. Для этого инженер по знаниям подбирает примеры, обеспечивающие проверку всех возможностей разработанной ЭС.

На этапе опытной эксплуатации проверяется пригодность ЭС для конечного пользователя.

При создании ЭС используют различные модели представления знаний: логические, продукционные, сетевые. Наибольшее распространение получили ЭС, основанные на продукционных правилах. База знаний ЭС продукционного типа состоит из множества правил вида:

ЕСЛИ С ТО Х,

где С – последовательность выражений, определяющих условия активации правила; Х – последовательность действий, которые могут модифицировать состояние рабочей памяти.

В качестве инструментальных для создания ЭС могут выступать как языки программирования, так и специализированные инструментальные пакеты для разработки ЭС.

Варианты заданий:

1.  Рассмотреть примеры экспертных систем, предложенных преподавателем.

2.  В произвольной предметной области разработать экспертную систему с помощью продукционной модели. База знаний должна обязательно включать несколько уровней рассуждений (т. е. окончательные выводы не должны напрямую следовать из комбинаций входных данных, обязательно присутствие промежуточных выводов) и демонстрировать некоторую интеллектуальность в принятии решений. Ориентировочное количество правил если-то – около 50.

3.  Для разработанного набора правил построить диаграмму зависимостей в виде дерева.

4.  Оформить отчет по работе:

a.  Титульный лист,

b.  Краткое описание предметной области и решаемой задачи (каков результат работы системы, что является входными данными),

c.  Разработанный набор правил экспертной системы,

d.  Подробные выводы.

Варианты предметных областей для построения экспертной системы.

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

  1. Локализация неисправности персонального компьютера по внешним симптомам

  2. Определение конфигурации персонального компьютера в зависимости от потребностей пользователя

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

  4. Выбор комплекта программного обеспечения для компьютера в соответствии с задачами, которые необходимо решать пользователю

  5. Выбор оптимального языка программирования в зависимости от поставленной задачи

  8. Определение «пробелов» в знаниях учащегося по конкретному курсу

  9. Подбор учебных курсов, которые необходимо изучить для получения определенных навыков (веб-программист, windows-программист, unix-программист, тестировщик, архитектор ПО и т. д.)

  10. Определение места отдыха для предстоящего отпуска

  11. Выбор высшего учебного заведения абитуриентом

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

  13. Выбор операционной системы персонального компьютера или рабочей станции (DOS, Windows, Linux, FreeBSD, MacOS 9, MacOS X, Digital UNIX и др.)

  14. Выбор оптимального способа подключения к интернет (модем, локальная сеть, ADSL, GPRS, спутниковый канал)

  15. Подбор охотничего снаряжения

  16. Формирование набора документов для совершения нотариального действия (купля-продажа квартиры, оформление наследства, завещания и т. д.)

  17. Выбор родильного дома

  18. Профориентация школьника

  19. Формирование набора документов для оформления Шенгенской / Американской / Японской визы

  20. Прогнозирование пенсии с учетом текущего законодательства

  21. Выбор оптимального способа вложения денег в соответствии с потребностями инвестора

  22. Выбор кафедры для обучения в ХАИ (с учетом нескольких факультетов и множества возможных ситуаций и осложнений)

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

  24. Выбор сорта вина для заданного набора блюд

  25. Диагностика неисправности телевизора (телефона, пылесоса, …)

  26. Выбор книги в соответствии с пожеланиями читателя

  27. Выбор оптимального способа путешествия (самолет, поезд, пароход, автостопом, на машине, автобусом)