
- •3. Порядок выполнения работы
- •5. Контрольные вопросы
- •Лабораторная работа №2 Экспертная система на основе байесовского подхода
- •1. Цель работы
- •2. Теоретическая часть
- •2.1 Вероятности, события, гипотезы
- •2.3. Экспертная диагностическая система
- •3. Порядок выполнения работы
- •3.1 Получить у преподавателя вариант задания.
- •3.2 Ознакомившись с теоретическим разделом и пояснениями к программам, реализовать базу знаний в выбранной проблемной области.
- •3.3 При выполнении работы следует руководствоваться основными меню подготовительной (база знаний, Рисунок 10) и исполнительной (Рисунок 17) программ.
- •3.4 Основное меню исполнительной программы
- •4. Содержание отчета
- •Цель работы.
- •5. Контрольные вопросы
- •Литература
Лабораторная работа №1
Экспертная система « Дерево решений»
Цель работы:
Изучение возможностей и особенностей построения экспертной системы на основе метода дерева решений. Получение практических навыков в создании баз знаний (БЗ) с использованием проблемно-независимой инструментальной оболочки.
Теоретическая часть
При построении экспертных систем (вопросно-ответных советующих систем), обобщающих опыт людей-экспертов в данной проблемной области, многие задачи решаются более эффективно, когда исходная задача Q разбивается на некоторое число подзадач Q1, Q2.. Qк и делаются попытки решить каждую из них. Данный подход весьма актуален, в частности, при конструировании БИС и СБИС, содержащих сотни тысяч элементов, а также при использовании в задачах классификации, содержащих значительное число признаков. Под решением задачи понимаются:
нахождение оптимального решения;
доказательство, что подзадача неразрешима;
доказательство, что значение полученного решения хуже, чем предыдущее.
Такое разбиение обычно описывают деревом, где исходная задача моделируется корневой вершиной. Деревом называется связный граф без циклов и обозначается Т=(Х, U). |Х|=n. где X - множество вершин, а U- множество ребер. Любое дерево Т имеет n-1 ребро. Начальная вершина, т.е. вершина с наименьшим номером, называется корнем, из которого выходят ребра, называемые ветвями дерева. Очевидно, что в дереве любые две вершины Хi , Хjсвязаны единственной цепью и в любом связном графе G можно выделить некоторое дерево Т. Для задач конструирования значительный интерес представляют деревья, у которых число вершин равно числу вершин графа, из которого выделено это дерево. Такие деревья называются покрывающими. Для одного и того же связного графа можно выделить некоторое множество покрывающих деревьев.
Смысл разбиения задачи состоит в том, что после разбиения подзадачи легче решать, они имеют значительно меньший размер или имеют новую структуру. Очевидно, что если разбиение окончено, то множество подзадач, на которые разбита задача, должно представлять всю задачу. После окончания каждая подзадача представляется вершиной дерева, которая называется висячей. Важной проблемой является нахождение оптимального решения на основе перебора путей на дереве решений. Задачи такого типа называют поисковыми. А сам поиск связан с исследованием графовых структур. Существуют три основных типа поиска в зависимости от того, как выбираются вершины дерева для прохождения ветвления. Это поиск с возвращением, поиск в глубину и поиск в ширину.
Поиск с возвращением заключается в попытках расширить частное решение. На каждом шаге поиска, если расширение текущего частичного решения невозможно, происходит возврат к предыдущему частичному решению и предпринимается попытка снова его продолжить. Другими словами, поиск с возвращением - это продолжение расширения исследуемого решения до тех пор, пока это возможно. Когда решение нельзя расширить, производится возврат назад и попытка сделать другой выбор на ближайшем шаге, где имеется такая возможность. Поиск с возвращением относится к классу экспоненциальных алгоритмов.
Поиск в глубину на дереве решений неформально как бы соответствует "нырянию" в глубь дерева. Идея метода состоит в том, чтобы в каждой исследуемой вершине дерева выбирать один из возможных путей и исследовать его до конца, причем другие, существующие пути решений при этом не рассматриваются, пока сохраняется возможность получить конечный результат, исследуя выбранное направление. При поиске в глубину выбирается определенный путь по дереву и производится его продолжение до получения решения или до тех пор, пока дальнейшее продвижение окажется невозможным. Тогда процесс поиска возобновляется от ближайшей вершины дерева, имеющей смежные неисследованные вершины. Из сказанного следует, что при поиске в глубину перебор сначала выполняется вдоль одного пути, пока не будет достигнута максимально возможная глубина. Далее рассматриваются другие пути такой же или меньшей глубины, которые отличаются от первого последним шагом, затем исследуются пути, отличающиеся последними двумя шагами и т.д. Процесс повторяется до получения требуемого результата. Основное достоинство методов поиска в глубину то, что большинство из них относится к классу полиномиальных алгоритмов и может быть в основном реализовано за время 0(n).
Основной недостаток поиска в глубину заключается в том, что при исследовании дерева решений с большой вероятностью можно пройти мимо той ветви, на которой раньше всего появляется окончательное решение.
Поиск в ширину. При использовании этого метода ветвления поиск происходит от уровня к уровню, причем если на уровне 1 начальная задача 0, разбивается на подзадачи Q1, Q2.. Qк, то каждая из них исследуется раньше, чем задачи уровня 2. Задачи в уровне, которые трудны для разрешения, разбиваются на подзадачи уровня 2 и процесс продолжается аналогично.
Поиск в ширину эффективно используется при установлении изоморфизма и изоморфного вложения графов при разбиении и размещении схем. Алгоритмы поиска в ширину в основном реализуются за время 0(n2)-0(n4).
Существует много процедур повышения эффективности поисковых методов. Основные из них - это упорядочивание ветвей, отходящих от каждой вершины так, что в первую очередь рассматриваются наиболее перспективные ветви, и движение вперед до поиска наилучшей из всех найденных, независимо от того, где она расположена в дереве.
Многие задачи сводятся к значительному перебору вариантов, приближающемуся к полному. В некоторых случаях полный перебор удается заменить перебором с отсечениями. Наиболее употребительным в этой связи является метод ветвей и границ. Метод основан на переборе определенных вариантов решений задачи при условии, что число этих вариантов конечно. При этом в общем случае полный перебор заменяется частичным, так как используются априорные оценки вариантов, позволяющие отбрасывать "неперспективные" решения. Метод ветвей и границ состоит из операций ветвления и отсечения. Операцию ветвления можно осуществить на основе методов поиска как в глубину, так и в ширину.
Отсечение вариантов решения задачи выполняется с помощью оценочной функции, которая задается на вершинах дерева перебора и дает верхнюю или нижнюю границу значений функции для вариантов решений, входящих в множество Q. Оценочная функция. Дающая нижнюю границу в процессе разбиения множества, не убывает, а оценочная функция с верхней границей не возрастает. Точность оценки зависит от способа разбиения множества Q. Существует три основных способа отсечения ветвей:
по результатам сравнения текущего значения с уже найденным;
по результатам сравнения двух оценок;
прекращение ветвления в вершине, не содержащей оптимального решения.
Порядок продолжения ветвления выбирается на основе последовательного построения ветвей или по минимальной нижней (максимальной верхней) границе или на основе их комбинаций. Процедура ветвления и отсечения повторяется до получения оптимального или квазиоптимального (с заданной точностью) решения. Учитывая специфику рассматриваемой задачи, вычислить границы целевой функции нужно как можно ближе к оптимальному значению. Это определит число ветвящихся вершин и соответственно степень сокращения перебора при решении задачи.
В данной лабораторной работе реализован один из методов поиска по дереву решений (модифицированный поиск в глубину), который используется при проектировании экспертной системы и создании базы знаний. Практическая реализация экспертной системы (подготовка базы знаний и ее использование) не требует знания какого-либо алгоритмического языка программирования, поскольку так называемая проблемно-независимая программная оболочка уже реализована на языке С++ в среде Borland для IВМ РС.
Экспертная система состоит из двух программ: подготовительной и исполнительной. При работе с каждой из них на экране появляется основное меню, с помощью которого производится выбор необходимой процедуры. Подготовительная программа позволяет эксперту сформировать базу знаний, а исполнительная программа дает возможность пользователю, используя уже готовую базу знаний, реализовать возможности экспертной системы в определенной проблемной области. В результате реализации первой программы создается файл базы знаний, модификация которого в процессе реализации второй программы невозможна. Таким образом, процессы создания и использования экспертной системы программно изолированы. Связующим элементом между ними является хранящийся на диске файл базы знаний.
В нашем случае база знаний имеет вид ветвящегося дерева, по которому можно двигаться вниз, каждый раз выбирая новое условие. Движение всегда заканчивается каким-либо логическим выводом.
Такая экспертная система работает следующим образом. Например, человек приходит в отдел кадров, садится за персональный компьютер и отвечает на вопросы, последовательно возникающие на экране:
Код пути
1 - Есть диплом о высшем образовании
1-2 Нет изобретений
1-2-1 Средний балл в ведомости, прилагаемой диплому, более 4
1-2-1-1 Экспертная система делает вывод: "Принять на работу инженером".
Можно сказать, что отвечая на вопросы, мы прошли три уровня ветвей от корневой вершины (главную ветвь, вторую и третью). В данном варианте реализации базы знаний возможно наличие до 5 главных ветвей, отходящих от корневой вершины, а исходящих ветвей от остальных вершин - до 4. Здесь предусмотрены 5 уровней ветвей в глубину и 6-й уровень выводов. Нумерация исходящих ветвей в вершинах осуществляется слева направо для каждой родительской вершины. В качестве примера приведен фрагмент базы знаний E1, содержащей 2 главные ветви и по 2 исходящих ветви в вершинах. Если набрать код пути 1-2-2-1-1. то на экране увидим:
Код пути
Главная ветвь - 1 - Есть диплом о высшем образовании
2-я ветвь - 1-2- Нет изобретений
3-я ветвь - 1-2-2 - Средний балл диплома <4
4-я ветвь - 1-2-2-1- Стаж менее 2-х лет
5-я ветвь - 1-2-2-1-1 -
Вывод:- 1-2-2-1-1 - В приеме на работу отказать
Код пути для каждой ветви состоит из номеров последовательно пройденных ветвей (вершин), начиная от корневой вершины. Для предыдущего примера в левом столбце также указан код пути до получения логического вывода, который (за исключением 2-й ветви) пролег по крайнему левому маршруту дерева.
3. Порядок выполнения работы
Получить у преподавателя вариант задания.
Ознакомившись с теоретическим разделом и пояснениями к программам, реализовать базу знаний в выбранной проблемной области.
При выполнении работы следует руководствоваться основным меню подготовительной программы (п.3.1, п.3.2), изображенном на рисунке 1.
Рисунок 1. Основное меню подготовительной программы
3.1. Основное меню подготовительной программы:
- пояснения;
- задание количества главных и количества исходящих ветвей;
- просмотр правил;
- ввод и редактирование правил;
- вызов правил с диска;
- запись правил на диск;
- вывод правил на принтер;
- задание названия базы знаний;
- выход.
Выбор необходимой процедуры осуществляется путем нажатия соответствующей цифры на клавиатуре.
1 - При создании новой базы знаний необходимо задать пределы ветвления (Рисунок 2). На экране появляются запросы:
"Сейчас количество главных ветвей 0.
Введите количество главных ветвей (1-5) ".
"Сейчас количество исходящих ветвей в вершинах 0.
Введите количество исходящих ветвей (2-4)".
Рисунок 2. Задание количества главных и исходящих ветвей
После выбора нужного количества главных и исходящих ветвей необходимо нажать клавишу «Принять».
2 - Правила из нужной базы знаний можно просмотреть (Рисунок 3).
Рисунок 3. Просмотр правил
На экране появляется запрос: "Введите код пути". При этом цифры кода пути задаются в соответствии с пожеланиями пользователя, в диапазоне от 1 до n, где n -заданное количество главных и исходящих ветвей дерева решений. После задания кода пути и фиксации данного пути на экране появляются соответствующие выбранному коду правила. Например:
1-есть диплом
1-1 - есть изобретения
1-1-1- стаж >2 лет
1-1-1-1 - член профсоюза
5-я ветвь - вывод: "Принять МНС".
Рисунок 4. Ввод и редактирование правил
Для возврата в основное меню нажать клавишу «Закрыть».
3 - При создании новой базы знаний, либо при редактировании уже имеющейся, существует возможность изменения и создания правил. На экране появится запрос: "Введите код пути".
После задания необходимого кода на экране появится набор строк, каждая из которых соответствует правилу для выбранного пути. 6-я строка заключает в себе вывод, который должна сделать ЭС в этом случае. Фиксация данного пути и возврат в основное меню производится нажатием клавиши «Закрыть».
4 - В случае, если уже имеется готовая база знаний, ее можно вызвать для работы с программой. На экране высвечиваются все имена файлов, находящихся в данной директории.
Рисунок 5. Окно для открытия имеющейся базы
При этом необходимо выбрать (выделить) нyжную базу знаний (из числа указанных на экране) и нажать клавишу «Открыть». После чего можно продолжать работу с конкретной базой знаний.
5 - После создания либо изменения базы знаний необходимо записать ее для дальнейшего использования с исполнительной программой. На экране появляется запрос (см. Рисунок 6): «Сохранить как»
Введите имя файла, его расширение (.bz) и нажмите клавишу «Сохранить».
Рисунок 6. Сохранение созданной базы
6 - После создания или редактирования БЗ необходимо присвоить ей имя. На экране появляется запрос: «Введите название базы знаний».
Рисунок 7. Задание названия базы знаний
Введите название и нажмите клавишу «Принять». В дальнейшем при работе с этой БЗ на экране будет появляться заданное название.
7 - Выход из подготовительной программы.
3.2. Основное меню исполнительной программы
Рисунок 8. Исполнительная программа
- пояснения;
- вызов правил с диска;
- реализация экспертной системы;
- выход.
1 – Необходимо вызвать правила с диска.
При нажатии на этот пункт открывается директория, в которой ранее сохранялась подготовительная база.
Нужно выбрать необходимую базу и нажать клавишу «Открыть».
В случае, если нужная БЗ находится в другой директории, необходимо скопировать ее.
2 - На экране высвечиваются возможные варианты ответов. Путем установки курсора на нужную строку и нажатием клавиши «Выбрать» фиксируются нужные ответы.
3 - Запустить на решение исполнительную программу.
Убедиться в работоспособности экспертной системы и объяснить полученные результаты.
4. Содержание отчета
Цель работы.
Краткая теоретическая часть.
Вариант задания.
Графическое изображение дерева решений.
Распечатки результатов работы.
Выводы.