Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Предварительно определенные переменные
Существует два типа предварительно определенных переменных: среды и утилиты. Среда «GURU» определяется переменными среды. Они определяют различные функциональные характеристики среды «GURU». Имя этой переменной всегда начинается с буквы Е. Например: E.LSTR=250 Максимальная длина символьной строки равна 250. Переменные типа утилиты служат для различных вспомогательных целей. Они начинаются со знака #. Например: #GOAL=HOWREST #GOAL определяет цель экспертной системы. Синтаксис правил «GURU» ACCESS: a GOAL: HOWREST INITIAL: CLEAR E.LSTR=250 HOWREST=UNKNOWN finance=UNKNOWN acount=UNKNOWN zarabot=UNKNOWN skolko=UNKNOWN OUTPUT" Kak vi mozhete provesti otpusk..."
DO: CLEAR OUTPUT" Vot chto priemlemo v dannoi situacii: " OUTPUT HOWREST RULE: R1 IF: (finance/acount)> =5000 and (finance/acount)< =10000 THEN: howrest=" Vi mozhete neploho otdohnut na materike." howrest= howrest+" Poezhaite k rodstvennikam." RULE: R2 IF: (finance/acount)> 10000 and (finance/acount)< 70000 THEN: howrest=" Vi mozhete neploho otdohnut za granicei." howrest= howrest+" Nu, razumeetsja po putevke." RULE: R3 IF: (finance/acount)> =70000 THEN: howrest=" Vi mozhete chast sredstv vlozhit v SKV ili" howrest= howrest+" akcii, a otpusk provesti kak pozhelaete." RULE: R4 IF: (finance/acount) < 5000 and (finance/acount)> 3000 THEN: howrest=" Vam stoit podumat ob otdihe v lesu." howrest= howrest+" U nas takaja krasivaja priroda. Vam ponravitsja." RULE: R5 IF: (finance/acount)< =3000 THEN: input zarabot using " u" with " U vas est vozmozhnost podarabotat (y/n)? " RULE: R6 IF: zarabot=" Y" THEN: input skolko num with " Skolko? " RULE: R7 IF: skolko > =5000 THEN: howrest=" Vi mozhete otdohnut neploho." howrest= howrest+" Orientiruites na summu, " howrest= howrest+" nakoplennyu v otpusknom periode." RULE: R8 IF: skolko < 5000 THEN: howrest=" Etogo budet nedostatochno." howrest= howrest+" Pridetsja otpusk otlozhit." RULE: R9 IF: zarabot< > " Y" THEN: howrest=" Ochen zhal, no Vam pridetsja podozhdat." howrest= howrest+" Vashi finansovie vozmoznosti ne" howrest= howrest+" pozvoljaut Vam poehat v otpusk" howrest= howrest+" v etom godu. Viezhaite na prirodu." VAR: HOWREST LABEL: Varianti ishodov pri zadannih parametrah. VAR: FINANCE FIND: input finance num with " Kakoi summoi Vi raspolagaete? " LABEL: Denezhnie sredstva. VAR: ACOUNT FIND: input acount num with " Skolko chelovek budet otdihat za Vash schet? " LABEL: Kolichstvo izhdivencev. END:
INITIAL: - это раздел инициализации, содержащий команды, которые должны выполниться до консультации с набором правил. CLEAR - команда для очистки экрана. E.LSTR = 250 - эта переменная устанавливает максимальную длину символьных строк. HOWREST=UNKNOWN, finance=UNKNOWN, acount=UNKNOWN, zarabot=UNKNOWN, skolko=UNKNOWN - инициализация переменных, при которой им присваивается значение UNKNOWN. OUTPUT " Kak vi mozhete provesti otpusk..." - выводит на экран символьную строку. VARIABLE: HOWREST, FINANCE, ACOUNT - определяются переменные, используемые в наборе правил. Все переменные должны быть определены. LABEL: - объяснение на естественном языке, зачем нужна данная переменная. FIND: - если в посылке встречается переменная с неопределенным значением (UNKNOWN), которая не присутствует в заключении какого-либо правила, то выводятся те команды, которые находятся после FIND. Например, здесь находится команда ввода: input zarabot using " u" with " U vas est vozmozhnost podarabotat (y/n)? " Эта команда ждет ввода с экрана в переменную zarabot символов " Y" или " N". В этой команде ввода: using " u" - шаблон ввода; with " …" - выводятся на экран в виде запроса для подсказки; RULE: R1, …, R9 - имена правил; IF - посылка правила; THEN - заключение правила; DO - раздел завершения. Выполняются команды, которые необходимы для выполнения консультации с экспертной системой. OUTPUT " Vot chto priemlemo v dannoi situacii: " OUTPUT HOWREST - выводится строка " Vot chto priemlemo v dannoi situacii: " и вслед за ней переменная HOWREST. Перейдем непосредственно к выполнению лабораторной работы. 1. Запустите GURU.EXE. Система выводит на экран: ИМЯ НОВОГО СЕАНСА…. (New session name) (его ввод необязателен, достаточно нажатия клавиши < ENTER>). Введите имя вашего сеанса работы. Это имя будет в последующей использоваться для загрузки сеанса вашей работы с «GURU» (рис. 1).
Рис. 1. GURU.EXE
Нажмите Enter. 2. Выберите в основном меню строку «Экспертные системы» (Expert Systems). В новом появившемся меню выберите строку «Создание экспертной системы» (Build an Expert System). Если вы будете вводить весь набор правил, описание переменных, разделы инициализации и завершения заново, выберите строку «Новая база знаний» (New Rule Set) (рис. 2).
Рис. 2. Создание новой базы знаний
Появляется подсказка и запрашивает имя нового набора правил - базы знаний (его ввод необязателен, достаточно нажатия клавиши < ENTER>) (рис. 3).
Рис. 3. Создание набора правил
Нажмите Enter. Далее появляется меню текущего набора правил «Построитель базы знаний» (Build an Expert System). Если вы будете редактировать имеющийся набор правил, выберите строку «Существующая база знаний» (Existing Rule Set) (рис. 4).
Рис. 4. Редактирование имеющегося набора правил
Ниже описанные действия, ориентированные на новую базу знаний. 3. Выберите строку меню «Определение» (Definition). Выберите строку меню «Цель» (Goal). В строке подсказки вводите цель и нажмите «ОК» (рис. 5).
Рис. 5. Создание цели
Выберите строку меню «Предыдущее меню» (Previous menu) (рис. 6).
Рис. 6. Выбор предыдущего меню
4. Выберите строку меню «Правила» (Rules). Выберите строку меню «Создание» (Create). Введите имя правила и нажмите «Enter». Вы попадаете в среду создания правил. Переход от одного к другому окну - с помощью клавиш PgDn и PgUp (рис. 7).
Рис. 7. Создание правила
В поле IF введите посылку. В поле THEN введите заключение. С помощью клавиши < ESC> выйдите из среды создания правил (рис. 8).
Рис. 8. Просмотр правила
5. Выберите строку меню «Редактирование» (Lookup/Edit). Просмотрите введенное правило. Исправьте, если есть ошибки. 6. Аналогично введите все правила. Выберите «Просмотр» (Browse). Просмотрите все введенные правила. Выберите «Предыдущее меню» (Previous Menu) и еще раз «Предыдущее меню» (Previous Menu). 7. Выберите строку меню «Переменные» (Variables). Выберите строку «Создание» (Create). Вы попадете в среду для создания переменных. Переход между окнами - с помощью клавиш PgDn и PgUp (рис. 9) . Рис. 9. Создание переменной
Введите в окно «LABEL» объяснение. Введите в окно «FIND» информацию (если необходимо) (рис. 10).
Рис. 10. Просмотр переменной
Нажмите < ESC>. 8. Выберите строку меню «Редактирование» (Lookup/Edit). Просмотрите созданную переменную. Введите, если нужно, исправления. 9. Аналогично создайте все необходимые переменные. Выберите строку меню «Просмотр» (Browse). Просмотрите все созданные переменные. 10. Выберите дважды строку «Предыдущее меню» (Previous Menu). 11. Выберите «Инициализация» (Initialization). На экране появится текстовый редактор построителя базы знаний. Здесь вводятся команды, которые отрабатываются до того, как будет запущена экспертная система (рис. 11).
Рис. 11. Режим инициализации
Нажмите < ESC>. 12. Выберите строку меню «Завершение» (Completion). На экране появляется текстовый редактор базы знаний. Здесь вводятся команды, которые выполняются после того, как выполнен сеанс работы с экспертной системой (рис. 12).
Рис. 12. Режим завершения
Нажмите < ESC>. 13. Выберите строку меню «Выход» (Exit). 14. Выберите строку меню «Сохранение» (Save) (рис. 13).
Рис. 13. Сохранение базы знаний
Ваш набор правил сохраняется в файле с расширением *.rss в папку с программой. Открыть и посмотреть этот файл можно с помощью Блокнота. 15. Выберите «Компилирование» (Compile). Откомпилируйте ваш набор правил (рис. 14).
Рис. 14. Компилирование набора правил
Просмотрите результаты компиляции. Исправьте базу знаний в соответствии с этими результатами и снова откомпилируйте (если это потребуется). Для этого вернитесь в предыдущее меню и повторите все операции по пунктам 4-15, исключая те, которые вам не потребуются. Выберите строку меню «Конец» (Quit). 16. Выберите строку меню «Предыдущее меню» (Previous Menu). Выберите строку «Консультация с экспертной системой» (Consult an Expert System) (рис. 15).
Рис. 15. Прохождение консультации
Проверьте работоспособность вашей экспертной системы. Если она не работает, то исправьте ее. Контрольное задание:
Разработайте свою экспертную систему, используя оболочку «GURU» по выбранному варианту: 1. Покупка квартиры. 2. Покупка компьютера. 3. Покупка автомобиля. 4. Выполнение неравенства треугольника. 5. Кредитование. 6. Поездка за границу. 7. Возврат долга. 8. Определение направления ветвей параболы. 9. Определение вида (прямоугольного, тупоугольного, остроугольного, равнобедренного, равностороннего). 10. Покупка сотового телефона. 11. Начисление квартплаты. 12. Распределение стипендии на месяц. 13. Определение, при какой температуре вырастут саженцы. 14. Начисление стипендии по итогам сессии (в зависимости от оценок). 15. Начисление зарплаты (по количеству отработанных часов). 16. Аренда помещения. 17. Покупка билета на самолет. 18. Определение, имеет ли квадратное уравнение решение (в зависимости от дискриминанта). 19. Проведение досуга. 20. Поступление в высшее учебное заведение (в зависимости от проходного балла). 21. Получение диплома с отличием или без в зависимости от оценок. 22. Определение существования корня n-ой степени (в зависимости от подкоренного выражения). 23. Определение вида логарифма (в зависимости от основания). Контрольные вопросы: 1. Сформулируйте понятие интерфейса пользователя. 2. Дайте определение машины логического вывода. 3. Для чего используются хранимые процедуры? 4. Какие стратегии управления вам известны? 5. Каково назначение программной оболочки GURU? 6. На какой модели представления знаний основана программная оболочка GURU?
|