Государственный университетВысшая школа экономики Факультет бизнес-информатики Программа дисциплины «Разработка предметно-ориентированных экспертных систем» для магистерской программы «Бизнес-информатика» направления 080700.68 «Бизнес-информатика» Авторы: Перминов Г.И., Гоменюк К.С. Рекомендовано секцией УМС Секция «Бизнес-информатика» Одобрено на заседании кафедры бизнес-аналитики Председатель ________________ Ю.В.Таратухина Зав. кафедрой ______________Т.К.Кравченко “___” ________________ 2009 г. “___” ____________ 2009г. Утверждено Ученым Советом факультета Бизнес - информатики Ученый секретарь __________________ Фомичев В.А. “___” _________________ 2009 г. Москва – 2009 Ι. Тематический план учебной дисциплины № Наименования тем п/п Всего часов Аудиторные часы Самостоятельная работа 6 1 Введение. Функциональные возможности экспертных систем 12 ЛПракт Всего е ическ к ие ц занят и ия и 4 2 6 2 Представление и использование знаний Разработка экспертных систем 20 4 4 8 12 32 4 6 10 22 4 Неопределенность в экспертных системах 16 4 2 6 10 5 Реализация экспертных систем на основе CLIPS/COOL 28 4 6 10 18 108 2 20 0 40 68 3 Итого ΙΙ. Формы рубежного контроля Итоговая оценка по учебной дисциплине выставляется во втором модуле. Итоговая оценка складывается из оценок: за реферат; домашнее задание; за работу на практических занятиях; за ответ на зачёте. Итоговая оценка О формируется следующим образом: 2 О = 0,1 О1 + 0,3 О2 + 0,3 О3 + 0,3 О4, где О1 О2 – оценка за работу на практических занятиях; – оценка за реферат; О3 – оценка за домашнее задание; О4 – оценка за ответ на зачёте. ΙΙΙ. Базовые учебники 1. Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 2. Частиков А. П., Гаврилова Т. А., Белов Д. Л.. Разработка экспертных систем. Среда CLIPS. -:Санкт-Петербург, «БХВ-Петербург», 2003 ΙV. Содержание программы Тема 1. Введение в экспертные системы Введение. История развития направления экспертных систем. Понятие искусственного интеллекта. Области искусственного интеллекта. Эволюция искусственного интеллекта. Понятие экспертной системы. Характеристики экспертной системы. Преимущества экспертной системы. Области применения экспертных систем. Инструментальные средства экспертных систем. Языковые и командные средства. Абстракция данных и знаний. Архитектура экспертных систем. Элементы экспертных систем. Продукционная память. Факты. Продукционные правила. Машина логического вывода. Программирование экспертных систем. Процедурный и непроцедурный подходы. Практические занятия 3 Решение задачи коммивояжера с помощью нейронной сети, моделирующий принцип отжига. (http://www.pmsi.fr/home-gb.htm) Составление правил IF-THEN. Математическая задача, основанная на правилах. Задача о девяти точках: поиск решения, выявление правил для решения. Знакомство с экспертными системами. Экспертная система OSHA Emergency Action Plan. http://www.xpertrule.com/eservice/index.html?link=demos; Экспертные системы компании Exsys. exsys.com/case2.htm. http://exsys.com/demomain.html. Основная литература: Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 Дополнительная литература 1. Частиков А. П., Гаврилова Т. А., Белов Д. Л.. Разработка экспертных систем. Среда CLIPS. -:Санкт-Петербург, «БХВ-Петербург», 2003 2. http://www.xpertrule.com/eservice/index.html?link=demos 3. http://exsys.com/demomain.html 4. http://www.pmsi.fr/home-gb.htm Тема 2. Представление знаний Смысл знаний. Типы знаний. Поле знаний. Онтологии. Пирамида знаний. Модели представления знаний. Правила, продукции. Семантические сети: Типы семантических сетей, построение, особенности, назначение, примеры использования. Проблемы семантических сетей. Объект-атрибут-значение. Схемы. Фреймы: назначение, виды. Сети фреймов. Системы, основанные на знаниях. База знаний. Обзор положений логики. Резолюции. Интерпретация правил. Вывод, основанный на правилах. 4 Архитектура машины логического вывода. Компонент вывода. Управляющий механизм. Конфликтное множество. Прямой и обратный логический вывод. Извлечение, приобретение и формирование знаний. Процесс получения нового знания. Обобщение фактов. Установление связей. Построение модели. Объяснение и предсказание явлений. Структурирование и формализация поиска знаний. Нисходящее проектирование. Методы проектирования сложных систем. Разработка базы знаний. Выбор между базой данных и базой знаний. Построение приложений, основанных на системе Protégé. Практические занятия Язык OWL. Среда разработки семантических сетей Protégé 4. Создание онтологии. Свойства/отношения, множества, элементы множеств. Принципы построения онтологий. Иерархии множеств. Виды связей. Создание множеств/классов. Наложение ограничений. Виды ограничений. Расщепление множеств/классов. Применение блока рассуждений. Создание условий. Типы условий. Необходимые и достаточные условия. Вложенные классы. Выполнение классификации. Автоматическая классификация. Универсальные ограничения. Генерирование подклассов. Шаблоны классификации. Аксиомы завершения классификации. Покрытие классов. Аксиома покрытия. Организация взаимодействия с базой знаний. Настройка метода ввода. Формы. Создание запросов к базе знаний. Основная литература: 5 Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 Дополнительная литература 1. Муромцев Д.И. Методическое пособие по онтологической инженерии знаний в системе Protégé. -:М, Сп-б, ГосУниверситет ТМО, 2007. 2. http://www.protege/manual.htm 3. http://www.protege/tutorial.htm 4. A Practical Guide To Building OWL Ontologies Using Prot´eg´e 4 and COODE Tools Edition 1.2 5. Абдикеев Н.М. Проектирование интеллектуальных систем а экономике.-:М, Экзамен, 2004. Тема 3. Разработка экспертных систем Методологические особенности разработки экспертных систем. Функции инженера по знаниям, эксперта и пользователя в процессе создания и эксплуатации экспертной системы. Этапы создания экспертной системы: идентификация, концептуализация, формализация, реализация, тестирование. Выбор предметной области. Этапы разработки ЭС. Особенности процесса развития прототипа. Состав группы разработки. Требования к участникам проекта (пользователь, эксперт, программист, инженер по знаниям). Жизненный цикл экспертной системы. Обзор существующих средств разработки экспертных систем. Пример проекта по созданию экспертной системы. Практические занятия Введение в системы, основанные на фактах. Язык CLIPS. Описание фактов, правил. Манипуляции над фактами и правилами. Обработка 6 появления фактов. Отслеживание активации правил. Способы согласования с шаблонами. Использование нескольких правил. Методы согласования с шаблонами. Ограничения полей. Функции и выражения. Применение правил и предикатов. Условные элементы языка. Проектирование экспертной системы. Работа с атрибутами. Использование управляющих фактов. Применение критерия значимости правил. Модульное управление выполнением программы. Простые и сложные правила. Rete-алгоритм. Повышение эффективности применения правил. Практикум по решению задач на языке CLIPS. Практикум по решению задач на языке CLIPS. Язык COOL. Объектно ориентированный подход к созданию экспертной системы. Интеграция Protege и CLIPS/COOL. Создание объектной модели из базы знаний. Анализ проекта по разработке экспертной системы. Основная литература: 1. Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 Дополнительная литература 1. Частиков А. П., Гаврилова Т. А., Белов Д. Л.. Разработка экспертных систем. Среда CLIPS. -:Санкт-Петербург, «БХВ-Петербург», 2003 2. CLIPS.Reference Manual. Volume 1. Basic Programming Guide 7 Тема 4. Принятие решений с помощью нечетких рассуждений Понятие неопределенности. Использование вероятностных методов принятия решений. Временные рассуждения и марковские цепи. Роль неопределенности в формировании цепей логического вывода. Сети логического вывода. Решение задач на формирование цепей вывода. Системы, основанные на правилах и проблема конфликтующих правил. Нестрогие рассуждения с использованием коэффициентов достоверности. Теория Демпстера-Шефера. Степень доверия. Неопределенность в экспертных системах. Способы ведения нечетких рассуждений. Нечеткие множества. Нечеткая логика. Возможность и вероятность. Применение нечетких рассуждений в приложениях. Области, пригодные для работы с нечеткой логикой. Практические занятия Решение задачи в системе FuzzyCLIPS Основная литература: 1. Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 Дополнительная литература 1. Частиков А. П., Гаврилова Т. А., Белов Д. Л.. Разработка экспертных систем. Среда CLIPS. -:Санкт-Петербург, «БХВ-Петербург», 2003 2. Reference Manual. Volume III.Interfaces Guide Тема 5. Реализация экспертных систем на основе CLIPS/COOL 8 Основные функции CLIPS: (Логические функции. Математические функции. Функции работы со строками. Функции работы с составными величинами. Функции ввода/вывода. Процедурные функции. Работа с родовыми функциями. Объектно-ориентированные функции. Вспомогательные функции). Основные команды CLIPS (Управление интерактивной средой. Работа с конструкторами deftemplate. Работа с фактами. Работа с конструкторами deffacts. Работа с правилами. Работа с планом решения задачи. Работа с глобальными переменными. Работа с конструкторами deffunction. Работа с родовыми функциями. Работа с классами и объектами. Работа с конструкторами defmodule. Профилирование и отладка. Управление памятью). Постановка задачи. Алгоритм решения задачи. Представление логических элементов. Связь логических элементов. Дополнительные функции и переменные. Реализация правил экспертной системы. Листинг программы. Тестирование системы. Работа программы. Практические занятия Решение задачи в системе CLIPS/COOL Основная литература: 1. Джерратано Д. Экспертные системы. Принципы разработки и программирование. 4-изд. -:М, Вильямс, 2007 Дополнительная литература 1. Частиков А. П., Гаврилова Т. А., Белов Д. Л.. Разработка экспертных систем. Среда CLIPS. -:Санкт-Петербург, «БХВ-Петербург», 2003 2. Reference Manual. Volume II. Advanced Programming Guide 9 V. Тематика заданий по различным формам текущего контроля Тематика рефератов 1. Примеры применения экспертных систем в различных предметных областях 2. Базовые функции экспертных систем. 3. Языки представления (representation languages) в экспертных системах. Основные критерии доступа к представлению знаний. 4. Текущее состояние проблемы применения экспертных систем в конкретных предметных областях. 5. Проблема управление процессом поиска решения. 6. Принятие решения о последовательности использования имеющихся знаний. 7. Инструментарий и структура программного обеспечения экспертных систем. 8. Обзоры ранних исследований в области экспертных систем. Применение технологии экспертных систем в разных предметных областях. 9. Обзор оболочек экспертных систем. 10. Обзор методов приобретения знаний. 11. Обзор методов представления знаний. 12. Обзор формирования пояснений. 13. Обзор инструментальных средств разработки экспертных систем. Состав домашнего задания Домашнее задание направлено на постановку и решение конкретной задачи с помощью экспертной системы. В нем должны быть рассмотрены вопросы извлечения и структурирования знаний и разработки систем, основанных на знаниях. Разработка ЭС должна включать описание следующих этапов: 10 1. выделения основных сущностей, имеющих значение при решении конкретной задачи и законов (правил), скорее всего, эмпирических, действующих над этими сущностями; 2. из найденных правил выделить сущности, имеющие значение для построения ЭС; 3. ввести факты, описывающие проявление работы объектов; 4. реализовать правила на языке CLIPS; 5. составить полный листинг программы с подробными комментариями; 6. сохранить набранный файл и запустить CLIPS; 7. убедиться, что все правила присутствуют в списке правил CLIPS, а функции — в списке функций; 8. протестируйте экспертную систему, по-разному отвечая на ее вопросы; 9. все этапы в виде скриншотов и пояснений к ним разместить в отчете. Отчет о решении задачи должен быть сдан в бумажном виде. VI. Вопросы для оценки качества освоения дисциплины 1. Чем экспертные системы отличаются от обычных программных приложений и типовых программ искусственного интеллекта? Может ли программа, не использующая методы искусственного интеллекта, обладать такими же свойствами? 2. В чем разница между экспертной системой и системой, основанной на знаниях? 3. Является ли система поиска в сети World Wide Web экспертной? Если нет, то каких свойств ей не хватает для того, чтобы квалифицировать ее как экспертную систему поиска нужной Web-страницы? 4. Почему задача приобретения знаний является узким местом в проектировании экспертных систем? Какие решения предлагаются для устранения такой ситуации? 11 5. Объясните замечание о логической и эвристической адекватности, которое относится к языку представления знаний. 6. Почему пакет программ статистического анализа нельзя считать программой искусственного интеллекта? 7. Как вы понимаете термин "пространство поиска"? Что представляет собой пространство поиска в игре в шахматы? 8. Опишите методики эвристического поиска 9. Поясните концепцию поиска в пространстве состояний и подхода, опирающегося на базы знаний 10. Представление знаний: принципы и методы 11. Оцените и сравните характеристики экспертных систем 12. Расскажите о комбинации гипотез в случаях, когда для суждения об определенном параметре подойдет не одно правило, а несколько 13. Расскажите о концепциях программирования и структурах, существенно влияющих на конструирование экспертных систем 14. Реализация символических структур на языке СLISP 15. Структуры данных в языке СLISP 16. Структура СLISP-программы 17. Функции, их вычисление и проблема цитирования в CLIPS 18. Обработка списков в CLIPS 19. Охарактеризуйте подходы, базирующихся на правилах, и с объектно-ориентированным подходом к программированию ЭС 20. Для чего используются правилами "условие — действие" или "ситуация — действие 21. Поясните правилами переписывания (rewrite rules) в ЭС 22. Поясните порождающие правила в ЭС 23. Перечислите шаги цикла распознавание-действие 24. Что называют конфликтующим множеством (conflict set) - в терминологии языка CLIPS (agenda — список заявок)? 25. Какова цель процедуры разрешения конфликтов 12 26. Поясните стратегии разрешения конфликтов, которые используются в исполнительной системе языка CLIPS 27. Что такое прямая и обратная цепочки рассуждений? 28. Что такое метаправила (в языке CLIPS - salience (выпуклость))? 29. Что такое cемантические сети? 30. Поясните разделение видов узлов в cемантической сети и когнитивную экономию 31. Что такое схема наследования свойств? 32. Как проводится анализ адекватности ассоциативных сетей? 33. Перечислите недостатки формализмов ассоциативных сетей 34. Расскажите об основных понятиях концепции фреймов 35. Что такое демоны во фреймах? 36. Как происходит реализация фреймов и наследования в языке CLIPS? 37. Произведите сравнение сетей и фреймов в построении базы знаний 38. Поясните механизм множественного наследования в языке CLIPS 39. Как производится объявление классов на языке CLIPS? 40. Поясните реализацию идей технологий объектно-ориентированного программирования в построении ЭС 41. В чем состоит отличие между конкретными и абстрактными классами? 42. В чем состоит проблема наложения методов при множественном наследовании? 43. Что такое метакласс и в чем польза применения такой конструкции? 44. Перечислите источники неопределенности в ЭС 45. К чему приводит неопределенность знаний? 46. Почему эксперты в ЭС пользуются неточными методами? 47. Почему во многих экспертных системах для вычисления степени уверенности в сделанном заключении не используется правило Байеса? 13 48. Предположим, что понятие "необычная оценка из десяти" определено как нечеткое множество: fНЕОБЫЧНО = {(0, 1.0), (1, 0.9), (2, 0.7), (3, 0.5), (4, 0.3), (5, 0.1), (6, 0.1), (7, 0.3), (8, 0.5), (9, 0.9), (10, 0.9)}, а понятие "высокая оценка из десяти" определено как нечеткое множество f ВЫСОКАЯ= {(0, 0), (1, 0), (2, 0), (3, 0.1), (4, 0.2), (5, 0.3), (6, 0.4), (7, 0.6), (8, 0.7), (9, 0.8), (10, 1.0)}. Постройте составную функцию "необыкновенно высокая оценка из десяти". 49. Поясните способ организации приобретения знаний, когда весь процесс разбивается на несколько этапов или уровней анализа. 50. Перечислите и поясните стадии приобретения знаний 51. Поясните уровни анализа знаний 52. Расскажите об онтологическом анализе 53. Расскажите об оболочках экспертных систем 54. Расскажите о методах приобретения знаний 55. Перечислите циклы приобретения знаний при использовании опроса экспертов для извлечения знаний 56. Опишите процесс приобретения знаний с использованием модели предметной области 57. Расскажите о приобретении новых знаний на основе существующих 58. В состав документации, которая прилагается к большинству приборов и технических изделий, как правило, входят и руководства по поиску неисправностей. При отсутствии эксперта такие руководства можно с успехом использовать в качестве учебного материала для выполнения упражнений по извлечению знаний. Например, руководство к пистолету "Кольт .45" включает шесть страниц советов, большинство из которых представлено в форме подобных таблиц. Где? Что? Проверить Примечание 14 Боек Зажимается Прямизну При необходимости заменить Эжектор Неустойчивое Зажимается Установить выбрасывание ли длинную возвратная направляющую пружина Экстрактор Неправильно Угол При направляет установки необходимости гильзу дна выровнять Для того чтобы разобраться в такой таблице, требуется обладать некоторыми знаниями о принципах работы описываемого устройства. В частности, нужно иметь представление о том, что: искривленный боек часто застревает в направляющей канавке, что приводит к осечке; такой боек нужно заменить; возвратная пружина, которая зажимается внутри канавки, вероятнее всего, погнута; предотвратить такую поломку поможет замена стандартного короткого направляющего стержня полноразмерным; неправильный угол установки экстрактора приводит к тому, что он выбрасывает гильзы обратно на стреляющего, а не вправо; эту неисправность можно устранить подгонкой и шлифовкой дна экстрактора. Применение онтологического анализа позволяет систематизировать такое ознакомление. Самый верный путь к неудаче — приступить к записи диагностических правил до того, как будет понятен принцип работы устройства. Выберите ту предметную область, которая вам более всего знакома, и разработайте для нее примерную онтологию в терминах: 15 ключевые сущности и отношения, такие как компоненты и отношения часть-целое; предикаты предметной области, такие как неустойчивые, прямые, связывающие; операции в предметной области, такие как замена, очистка, установка и т.п. II) Продолжите анализ предметной области и рассмотрите следующие вопросы: насколько детальным должен быть анализ отношений часть-целое; какие предикаты предметной области должны быть использованы для разбиения на части пространства признаков неисправностей; какие логические отношения существуют между операциями в предметной области, например подобие между заменой и установкой (одна операция включает другую в качестве составляющей). 59. Рассмотрите ситуацию, которая возникает при планировании покупки какой-нибудь дорогостоящей вещи. Пусть, например, у вас появилась идея приобрести новый автомобиль. Эту проблему можно будет считать хорошо определенной только после того, как вы решите, какую сумму можно потратить на эту покупку, для каких поездок будет в основном использоваться новый автомобиль, какой изготовитель и какая модель для вас предпочтительны, и т.п. Для подобных упражнений можно использовать не только пример с автомобилем, но и с другими видами дорогостоящих покупок, — загородный дом, высококачественная электронная аппаратура и т.д. Далее уточните спецификацию покупки следующим образом. I) Составьте список ключевых концепций и отношений между ними, которые нужно учитывать при решении проблемы. В случае с автомобилем такой список, очевидно, будет включать атрибуты фирмы-изготовителя и модели автомобиля, разнообразные эксплуатационные характеристики (мощность 16 двигателя, расход топлива), связи между этими атрибутами и параметрами, определяющими ваш "стиль жизни", — частота и продолжительность поездок, предполагаете ли вы брать в поездку каких-либо экзотических попутчиков (лошадь или собаку) или необычный груз (например, лодку, домик на колесах) и т.п. II) Попробуйте найти способ формального представления перечисленных концепций и отношений между ними. Например, изготовитель автомобиля и его модель могли бы быть выбраны из существующего набора классов — седан, спортивное авто, микроавтобус и т.д. Проанализируйте, не нужно ли при этом использовать многомерную классификацию концепций, при которой придется использовать множественное наследование. III) Обратите внимание на важность учета приоритета разных свойств рассматриваемого объекта и необходимость использования средств разрешения конфликтов между ними. Если, например, хочется купить автомобиль, который, с одной стороны, имеет мощный двигатель, а с другой стороны, потребляет мало бензина, то нужно подумать над тем, как найти компромисс между этими противоречивыми требованиями. 60. До какого уровня детализации, по вашему мнению, можно спроектировать экспертную систему, не зная, как она будет внедряться? Какие опасности, по-вашему, подстерегают разработчика, который слишком рано принимает решение о способе внедрения экспертной системы? 61. Поясните формирование пояснений на основе знаний 62. Как осуществляется формирование пояснений на основе фреймов? 63. Как сделать формирование пояснений с помощью автоматического программирования? 17 64. Почему в качестве пояснения процесса логического вывода пользователю недостаточно представить только результаты трассировки активизируемых правил? 65. Почему формирование пояснений в системах, основанных на порождающих правилах, упрощается, если разделить используемые правила на группы по назначению? 66. Дайте характеристику инструментальных средств для построения экспертных систем. 67. Как сделать выбор подходящего инструментария для разработки экспертной системы? 68. Проведите сравнительный анализ возможностей инструментальных средств разных классов — оболочек, языков программирования высокого уровня и многофункциональных сред— применительно к проектированию экспертных систем для задач классификации и проектирования. 69. Критически проанализируйте характеристики той инструментальной среды разработки экспертных систем, с которой вы лучше всего знакомы. Анализ должен включать следующие моменты: I) детальное рассмотрение функциональных возможностей среды, наиболее привлекательных с вашей точки зрения; каким образом эти возможности облегчают проектирование? II) детальное рассмотрение тех характеристик среды, которые вы считаете неудачными; почему, на ваш взгляд, эти характеристики затрудняют работу? III) перечень дополнительных возможностей, которые, по-вашему, имеет смысл реализовать в этой среде разработки. В последнем разделе анализа выделите те дополнительные функции, которые довольно легко встроить в имеющийся вариант, и те, которые потребуют его значительной переделки или приведут к снижению производительности существующего варианта. 18 70. Как построить концептуальную модель знаний? 71. Что включает в себя этап «Идентификация проблемной области»? 72. Поясните приемы извлечения знаний. 73. Какие этапы создания экспертной системы Вы знаете? 74. Расскажите о структуре для организации баз знаний в виде таксономий 75. Расскажите об языках описания онтологий 76. Что такое онтология и какие составные части онтологии? 77. Расскажите о классификации онтологии. 78. Расскажите о редакторе онтологии Protege. 79. Расскажите об инструментальном средстве разработки экспертных систем CLIPS. 80. Перечислите и поясните основные элементы программирования CLIPS. Авторы: Перминов Г.И., Гоменюк К.С. 19