Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Краткие теоретические сведения. Кафедра Информационных систем и прикладной математики





Кафедра Информационных систем и прикладной математики

 

 

Методические указания

К лабораторным работам

 

 

по дисциплине Интеллектуальные информационные системы  
название дисциплины  
для направления подготовки (специальности) 080801.65 (351400)  
код направления подготовки  
«Прикладная информатика (в экономике)»  
наименование направления подготовки  
080801.65 (351400) «Прикладная информатика (в экономике)»  
код и наименование специальности    
   
   
   
Составитель Плотников Сергей Иванович
  доцент кафедры Информационных систем и прикладной математики
         

 

Мурманск 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: 436; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию