![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Краткие теоретические сведения. Кафедра Информационных систем и прикладной математикиСтр 1 из 20Следующая ⇒
Кафедра Информационных систем и прикладной математики
Методические указания К лабораторным работам
Мурманск 2010 ОГЛАВЛЕНИЕ
ЛАБОРАТОРНАЯ РАБОТА 1. 3 Знакомство с инструментальными средствами для создания экспертных систем. 3 ЛАБОРАТОРНАЯ РАБОТА 2. 46 Создание пробной экспертной системы. 46 ЛАБОРАТОРНАЯ РАБОТА 3. 55 Учет факторов уверенности при создании экспертной системы.. 55 ЛАБОРАТОРНАЯ РАБОТА 4. 68 Командный режим "GURU". 68 ЛАБОРАТОРНАЯ РАБОТА 5. 75 Электронные таблицы "GURU". 75 ЛАБОРАТОРНАЯ РАБОТА 6. 83 Графические средства "GURU". 83 СИСТЕМА GURU.. 87 Общие характеристики системы.. 87 Функциональные возможности. 89 Построение экспертной системы.. 91 Тестирование экспертной системы.. 96 Запуск системы и работа в режиме меню.. 97 Запуск системы.. 97 Некоторые сведения о работе в режиме меню.. 98 Использование режима меню.. 98 Описание команд меню Expert Systems. 98 Режим редактирования набора правил (GURU Rule Set Manager) 98 Режим редактирования правил. 99 Режим редактирования переменных. 99 Описание команд меню Information Manager 100 Примеры использования системы.. 101 ПРИЛОЖЕНИЕ 1. 102
ЛАБОРАТОРНАЯ РАБОТА 1 Знакомство с инструментальными средствами для создания экспертных систем.
Цель - знакомство с оболочкой "GURU" для создания экспертных систем с использованием диалогового режима работы и корректировка базы знаний существующей экспертной системы.
Краткие теоретические сведения Под экспертной системой понимается система, объединяющая возможности компьютера со знаниями и опытом эксперта так, что система может предложить разумный совет или осуществить разумное решение поставленной задачи. Дополнительной возможностью системы является способность пояснить ход своих рассуждений в понятной для спрашивающего форме. При создании своих пользовательских экспертных систем на каком-нибудь языке высокого уровня программист сталкивается с тем, что разработка интерфейса программы, реализация ее системных Функций требуют больших затрат времени, чем создание самого набора правил экспертной системы (ЭС). Для того чтобы разгрузить разработчика ЭС от такой работы, существуют специальные инструментальные средства (оболочки) экспертных систем. Такие инструментальные средства есть в ЭС MYCIN, GURU, LEONARDO, DENDRAL и др. Настоящий лабораторный практикум связан с освоением оболочки "GURU".
1. Режимы работы
"GURU" имеет три режима работы: – диалоговый: в ходе диалога типа "запрос-ответ" с помощью развитой системы меню, не прибегая к написанию собственных программ, пользователь создает экспертную систему; – естественный язык: пользователь на запрос системы вводит фразы на естественном языке и получает результаты. Например, система спрашивает "Ваш запрос?". Написав в командной строке фразу "Найти всех работающих 1967 года рождения", пользователь получает от системы разумный ответ; – командный: как в языках высокого уровня (ЯВУ), пишется программа, компилируется и работает в соответствии с вашими требованиями. Обычно применяются смешанные режимы.
2. Характеристики ЭС
Основными характеристиками являются: интерфейс пользователя, машина логических выводов и хранимые экспертизы. Интерфейс пользователя описывает отношения между пользователем и системой. Пользователь ставит задачу, а машина должка ее выполнить или объяснить, почему нельзя ее выполнить. Машина логических выводов - это программное обеспечение (ПО), которое можно использовать в решении задач путей аргументации. Хранимые экспертизы - это набор правил, отображающих знания. В каждом правиле есть посылка (IF) и заключение (THEN). Если машина логических выводов признает посылку верной, tо и заключение будет верным.
3. Оперативная помощь
Находясь в любом меню, можно получить подсказку по действиям, допустимым в этом меню. Для этого вызывается помощь одновременным нажатием <Ctrl-L>.
4. Правила "GURU"
Система "GURU" базируется на правилах. Правило состоит из посылки (IF) и заключения (THEN). Посылка может включать: - различные типы и виды переменных, поддерживаемых "GURU"; - -логические операторы (EQ, NE, GT, GE, LT, LE, IN, AND, OR, XOR, NOT); - числовые операторы (+, -, /, *, **); - числовые функции (SIN, COS и т.д.); - символьные функции. Заключение может включать команды: - присвоения значения различным переменным; - позволяющие проконсультироваться с другим набором правил; - различные команды "GURU" и т.д. Правила хранятся в обычном текстовом файле.
Пример: RULESET: EASYCALC GOAL: INTRATE RULE: R1 IF: MONTHPAY < 50 THEN: PERIOD = 120 RULE: R2 IF: PERIOD > 90 THEN: INTRATE =12.5
Здесь EASYCALC - имя набора правил (RULESET указывать не обязательно); INTRATE - имя переменной цели; R1, R2 - имена правил; PERIOD, INTRATE, MONTHPAY - переменные.
5. Стратегии управления
Один из важных вопросов для ЭС - какое правило рассматривать следующим. Этим процессом управляет машина логических выводов. При выборе правила нужно пользоваться двумя основными стратегиями управления: прямым и обратным выводами.
5.1. Прямой вывод
Данный метод действует от посылки до действия до тех пор, пока переменной не будет присвоено значение. Машина логических выводов (МЛВ) начинает просматривать набор правил сначала и проводит просмотр его до тех пор, пока переменной не будет присвоено значение. Сначала ищется первое правило, в котором определено и истинно значение посылки. Это правило будет выполнено и полученный результат можно будет использовать для тестирования других правил. Далее система ищет следующее правило с определенным и истинным значением посылки. Это продолжается до тех пор, пока не будет выполнено правило для переменной цели.
Пример: RULESET: EASYCALC GOAL: INTRATE RULE: R1 IF: RERIOD > 90 THEN: INTRATE = 12.5 RULE: R2 IF: MOMTHPAY < 50 THEN: PERIOD = 120 RULE: R3 IF: MOHTHPAY > 50 THEN: PERIOD = 60 RULE: R4 IF: PERIOD < 90 THEN: INTRATE = 11.0
Пусть первоначально переменной MONTHPAY присвоено значение 42. МЛВ ищет в наборе правил то правило, где определено и истинно значение посылки (это R2). Тогда переменной PERIOD присваивается значение 120. Вслед за тем, начиная вновь с первого правила, ищется правило, в котором определено и истинно значение посылки (это R1). Переменной цели присваивается значение 12.5. Цель достигнута, система закончила работу. Попробуйте объяснить, что получится, если MONTHPAY = 70.
5.2.Обратный вывод
Этот вывод - наиболее часто используемый метод управления. При этом МЛВ начинает с цели и, просматривая набор правил, находит первое правило, с помощью которого можно достичь цели. Если посылка этого правила определима и верна, то система выполняет соответствующие действия. Если посылка неопределима, то МЛВ временно меняет цель - устанавливает в качестве цели переменную, которая позволит определить истинность первой найденной посылки и ищет первое правило, определимое и верное для новой поставленной цели. Воспользуемся примером из 5.1. В этой ЭС цель (GOAL) -найти INTRATE. Ищем первое правило, в котором вычислялась бы переменная цели (это R1). Но его нельзя выполнить, пока неизвестна PERIOD. Ищем правило, где находится PERIOD (это R2). Допустим, что MONTHPAY задано и равно 42. Тогда выполняется R2 и затем R1. Цель достигнута. Но теперь предположим, что MONTHPAY = 70. Тогда цепочка R2 -R1 не приводит к нахождению цели (PERIOD не определима И, следовательно, не определима в этой цепочке и INTRATE). Начинаем сначала и ищем следующее правило, где находится цель INTRATE (это R4). Теперь необходимо определить PERIOD (новую переменную цели). PERIOD находится в правиле R3. Т.к. MONTHPAY = 70, то РЗ - верно, тогда PERIOD = 60. Далее проверяется R4. Онo верно. Следовательно, INTRATE = 11.0.
6. Переменные
6.1. Рабочие переменные
Рабочая переменная (РП) – это обычная переменная, аналогичная переменным в ЯВУ. Первоначально все РП имеют значение UNKNOWN. Им можно присвоить значения любого типа. А = 12.5 - пример числовой переменной; В = "это строковая переменная" - пример строковой переменной; С = TRUE, D - FALSE - логические переменные.
6.2. Предварительно определенные переменные
Существует два типа предварительно определенных переменных (ПОП): среды и утилиты. Среда "GURU" определяется переменными среды. Они определяют различные Функциональные характеристики среды "GURU". Имя этой переменной всегда начинается с буквы Е. Например: E.HELP = TRUE Задание ПОП заставляет "GURU" автоматически реагировать на ошибку в команде. E.LSTR = 80 Максимальная длина символьной строки равна 80. Переменные типа утилиты служат для различных вспомогательных целей. Они начинаются со знака #. Например: #GOAL = INTRATE #СОАL определяет цель ЭС.
6.3. Выражения с переменными
Числовые: 2 + 4 DEPTH=5 6 + DEPTH 2**2 SQRT (4) 60/5 5.67 * PI Строчные: NAME = "Иванов" + "Иван" - сцепление NAME становится равной "Иванов Иван". Логические: А = B А<>В А <= В А >= В IN - вводится для обозначения равносильности одного элемента другому (проверки того, соответствуют ли друг другу правая и левая части выражения); допустим надо найти служащего, чья фамилия Минев или Манев или Монев, тогда вводим логическое выражение:
NAME IN [M$HEB]. Составные логические выражения, например: 15 > 9 AND 20 < 100 - истинное выражение; 9 > 15 AND 20 < 100 - ложное выражение.
7. Объяснение аргументации
Важной характеристикой "GURU" является возможность объяснить весь ход действий при консультации с набором правил. Это делается с помощью команд HOW и WHY. Как это делать, будет объяснено в дальнейшем.
8. Синтаксис правил "GURU"
Запишем пример согласно синтаксическим правилам "GURU" и подробно объясним. Предположим, мы проводим технический осмотр автомобиля и хотим знать, поедет он или нет. Мы проверяем аккумулятор и стартер и на основе результатов осмотра принимаем решение. Вот наши правила в этой экспертной системе: Правило 1. Если аккумулятор сел или неисправен стартер, то двигатель не заведется. Правило 2. Если аккумулятор заряжен, исправен стартер, то двигатель заведется. Правило 3. Если двигатель заведется, то автомобиль поедет. Правило 4. Если двигатель не заведется, то автомобиль не поедет. А вот как запишутся эти правила экспертной системы с учетом синтаксиса "GURU".
RULESET: CAR GOAL: MOVE
INITIAL: CLEAR E.LSTR = 80 MOVE = UNKNOWN AKKUM = UNKNOWN STARTER = UNKNOWN MOTOR = UNKNOWN OUTPUT "Система диагностики автомобиля"
VARIABLE: MOVE LABEL: Будет ли двигаться автомобиль? VARIABLE: AKKUM LABEL: Заряжен ли аккумулятор? FIND: input akkum using "u" with "Заряжен у Вас аккумулятор (Y/N)?" VARIABLE: STARTER LABEL: Исправен ли стартер? FIND: input starter using "u" with "Исправен у Вас стартер (Y/N)?" VARIABLE: MOTOR LABEL: Работает ли мотор?
DO: CLEAR OUTPUT "Автомобиль", MOVE RULE: R1 IF: AKKUM <> "Y" OR STARTER <> "Y" THEN: MOTOR = 0 REASON: Если аккумулятор сел или стартер не работает, то мотор не заведется. RULE: R2 IF: AKKUM = "Y" AND STARTER = "Y" THEN: MOTOR = 1 REASOH: Если аккумулятор заряжен и стартер работает, то мотор заведется RULE: R3 IF: МОТОР = 1 THEN: MOVE = "ПОЕДЕТ" REASON: Если мотор работает, то автомобиль поедет RULE: R4 IF: MOTOR = 0 THEM: MOVE = "НЕ ПОЕДЕТ"
Объясняя все более подробно. RULESET: CAR - это имя набора правил (необязательно указывать); INITIAL: - это раздел инициализации. Сюда входят те команды, которые должны выполниться до консультации с наборов правил. CLEAR - команда для очистки экрана. E.LSTR = 80 - эта переменная устанавливает максимальную длину символьных строк. MOVE = UNKNOWN, MOTOR = UNKNOWN - инициализация переменных, при которой им присваивается значение UNKNOWN. ODTPUT "Система диагностики автомобиля" - выводит на экран символьную строку. VARIABLE: МОVЕ - определяется переменная, используемая в наборе правил. Все переменные должны быть oпpeделены. LABEL: - Объяснение на "естественном языке, зачем нужна данная переменная. FIND: - если в посылке встречается переменная с неопределённым значением (UNKNOWN), которая не присутствует в заключении какого-либо правила, то выводятся те команды, которые находятся после FIND. Здесь находится команда ввода: input akkum using "u" with "Заряжен у Вас аккумулятор?" Эта команда ждет ввода с экрана в переменную akkum символов "Y" или "N". В этой команде ввода: using "u" - шаблон ввода; with "..." - выводятся на экран в виде запроса для подсказки. RULE: R1 - имя правила; IF: - посылка правила; ТНЕN: - заключение правила; REASOH -объяснение на естественной языке, что делает правило. DO - раздел завершения. Выполняются команды, которые необходимы для выполнения консультации с ЭС. OUTPUT "Автомобиль", MOVE - выводится строка "Автомобиль" и вслед за ней переменная MOVE. Примечание: описание всех команд дано в приложении 1 к описанию настоящей лабораторной работы. Система работает следующим образом: последовательным перебором правил, начиная с первого, находится правило R3, содержащее в заключении переменную цели - MOVE. MЛВ определяет, что она UNKNOWN, следовательно необходимо найти условие для ее нахождения. В правиле R3 это условие задается переменной MOTOR. MOTOR - переменная с неизвестным значением, содержащаяся в посылке правила R3, которая становится новой переменной цели. Эта переменная при последовательном переборе правил, начиная с первого, впервые встречается в заключении правила R1. В посылке этого правила - две переменных. Они тоже неизвестны, причем их нельзя обнаружить в заключении какого-либо правила, но они описаны в FIND. Следовательно, вводится запрос на ввод этих переменных. Когда AKKUM и STARTER введены, то определяется MOTOR. Потом проверяем MOTOR и определяем MOVE. Цель достигнута.
9. Отладка ЗС
9.1. Запрос во время консультации
Во время консультации может создаться впечатление, что действия, выполняемые машиной логических выводов, не имеют отношения к проблеме. Это возможно потому, что пользователь не знает, как происходит внутренний процесс аргументации. Если пользователь действительно не понимает, почему от него требуют той или иной информации, он может отреагировать, используя Y(CTRL-Y). В этом случае он увидит на экране дисплея текущее обрабатываемое правило. После нажатия ENTER это объяснение исчезает, и он может ввести ответ.
9.2. Запрос после консультации
После консультации с набором правил, пользователь может попросить систему объяснить, какие правила и переменные использовались. Для этого применяются две команды: HOW - выдает переменные, которые использовались; WHY - объясняет правила, которые использовались. Объясним, какую информацию дает их использование. HOW - выдает значение переменкой цели, правило или правила, с помощью которых была определена цель. HOW "имя переменной" - выдает значение или значения с указанной переменной. HOW "число" - выдает значение или значения переменной с порядковым номером, заданными этой переменной в наборе правил. WHY - воспроизводит на экране дисплея объяснение (REASON) и переменные, которые требовались для правила, выполняющегося последним. Переменные отображаются с порядковый номером, который можно потом использовать в команде HOW (см. выше). WHY "имя правила" - воспроизводит на экране дисплея объяснение (REASON) и переменные, необходимые для данного правила. WHY "число" - воспроизводит на экране дисплея объяснение и переменные, необходимые для REASON правила с указанным порядковым номером в наборе правил. Для того чтобы объяснить процесс аргументации, необходимо использовать HOW и WHY совместно. Как это сделать, объясняется в разделе "Порядок выполнения работы 1".
Date: 2015-12-12; view: 506; Нарушение авторских прав |