50197 (Создание пробной экспертной системы)

2016-07-28СтудИзба

Описание файла

Документ из архива "Создание пробной экспертной системы", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "50197"

Текст из документа "50197"

Министерство образования и науки Украины

Черниговский государственный технологический университет

Кафедра информационных и компьютерных систем

Лабораторная работа №3

по дисциплине:

“Компьютерные системы искусственного интеллекта”

Создание пробной экспертной системы

Выполнил студент гр. МК-061

И.С. Чадюк

Руководитель к. ф.-м. н., доцент

В.А. Бычко

Чернигов – 2010

Цель работы

Самостоятельное программирование в полном объеме простейшей экспертной системы.

Краткие теоретические сведенья

Во время консультации может создаться впечатление, что действия, выполняемые машиной логических выводов, не имеют отношения к проблеме. Это возможно потому, что пользователь не знает, как происходит внутренний процесс аргументации. Если пользователь действительно не понимает, почему от него требуют той или иной информации, он может отреагировать, используя Y(CTRL-Y). В этом случае он увидит на экране дисплея текущее обрабатываемое правило. После нажатия ENTER это объяснение исчезает, и он может ввести ответ.

После консультации с набором правил, пользователь может попросить систему объяснить, какие правила и переменные использовались. Для этого применяются две команды:

HOW - выдает переменные, которые использовались;

WHY - объясняет правила, которые использовались.

Объясним, какую информацию дает их использование.

HOW - выдает значение переменкой цели, правило или правила, с помощью которых была определена цель.

HOW "имя переменной" - выдает значение или значения с указанной переменной.

HOW "число" - выдает значение или значения переменной с порядковым номером, заданными этой переменной в наборе правил.

WHY - воспроизводит на экране дисплея объяснение (REASON) и переменные, которые требовались для правила, выполняющегося последним. Переменные отображаются с порядковый номером, который можно потом использовать в команде HOW (см. выше).

WHY "имя правила" - воспроизводит на экране дисплея объяснение (REASON) и переменные, необходимые для данного правила.

WHY "число" - воспроизводит на экране дисплея объяснение и переменные, необходимые для REASON правила с указанным порядковым номером в наборе правил.

Для того чтобы объяснить процесс аргументации, необходимо использовать HOW и WHY совместно.

Опишем подробно работу набора правил. Он предназначен для иллюстрация обратной аргументации.

В INITIAL идет инициализация переменных. Рассмотрим ее отдельные строки.

e.tryp = 'e' - задает стратегию оценки посылки (части “if” правила), содержащего неизвестные переменные. Истинность посылки оценивается сразу же после того, как очередная неизвестная переменная становится известной. Тестирование посылки прекращается (несмотря на то, что все переменные в ней еще не определены), если только удается определенно установить ее истинность или ложность.

e.lstr = 80 - максимальная длина символьной строки, которая может выводиться на экран.

е.lnum = максимальная длина числа.

В VAR описываются пользовательские переменные (см. списание лабораторной работы 1).

Часть DO - окончание работы экспертной системы. Конструкция test ... case ... endtest проверяет переменную advice и в зависимости от ее значения выполняет те или иные действия.

Ход работы

Описание ЭС на естественном языке.

Вы хотите прогнозировать на бирже уровень цен. Если валютный курс доллара падает, то процентные ставки растут. Если валютный курс доллара растет, то процентные ставки падают. Если процентные ставки растут, то уровень цен на бирже падает. Если процентные ставки падают, то уровень цен на бирже растет.

Полученное дерево ЭС приведено ниже.

PROGNOZ*

╟───────R3

║ ╟───────YTD

║ ╟───────TD

║ ╟───────PROCSTV

║ ║ ╟───────R1

║ ║ ║ ╟───────YTD

║ ║ ║ ╙───────TD

║ ║ ╙───────R8

║ ║ ╟───────YTD

║ ║ ╙───────TD

║ ╙───────URCEN

║ ╟───────R2

║ ║ ╟───────YTD

║ ║ ╟───────TD

║ ║ ╙───────(PROCSTV)

║ ╟───────R5

║ ║ ╟───────YTD

║ ║ ╟───────TD

║ ║ ╙───────(PROCSTV)

║ ╟───────R9

║ ║ ╟───────YTD

║ ║ ╟───────TD

║ ║ ╙───────(PROCSTV)

║ ╙───────R12

║ ╟───────YTD

║ ╟───────TD

║ ╙───────(PROCSTV)

╟───────R4

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╟───────R6

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╟───────R7

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╟───────R10

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╟───────R11

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╟───────R13

║ ╟───────YTD

║ ╟───────TD

║ ╟───────(PROCSTV)

║ ╙───────(URCEN)

╙───────R14

╟───────YTD

╟───────TD

╟───────(PROCSTV)

╙───────(URCEN)

Листинг экспертной системы

GOAL: prognoz

INITIAL:

clear

release variable /* УБИРАЕМ НЕНУЖНЫЕ НАМ ПЕРЕМЕННЫЕ */

e.lstr = 500 /* МАКСИМАЛЬНАЯ ДЛИНА СТРОКИ */

E.DECI = 2 /* кол-во знаков после точки */

output " ДЕНЬ ДОБРЫЙ, МИСТЕР (МИССИС)."

output " Вы хотите совершить прогноз цен на бирже? "

output " Тогда вы обратились по адресу. :) "

output " Данная ЭС поможет вам в этом... "

output " ИТАК, НАЧНЕМ ..."

ytd = "0"

td = 0

output " Введите вчерашний курс доллара"

input ytd num using "dddd"

output "Введите нынешний курс долара"

input td num using "dddd"

DO:

clear

output "НА ОСНОВЕ ДАННОЙ ИНФОРМАЦИИ:"

output

test prognoz

case "a"

output dol

break

case "b"

output dol

output prcs

break

case "c"

output dol

output urc

break

case "d"

output dol

output prcs

output urc

break

endtest

RULE: R1

IF: ytd > td

THEN: output "Хотите ли вы узнать прогноз о процентных ставках?"

input procstv str using "a" with "(y/n)"

RULE: R2

IF: ytd > td & (procstv = "y" or procstv = "Y")

THEN: dol = "Курс доллара падает."

prcs = " Процентные ставки растут. "

output "Хотите ли вы узнать прогноз об уровне цен на бирже?"

input urcen str using "a" with "(y/n)"

RULE: R3

IF: ytd > td & (procstv = "y" or procstv = "Y") & (urcen = "y" or urcen = "Y")

THEN: urc = "Уровень цен на бирже падает."

prognoz = "d"

RULE: R4

IF: ytd > td & (procstv = "y" or procstv = "Y") & (urcen = "n" or urcen = "N")

THEN: prognoz = "b"

RULE: R5

IF: ytd > td & (procstv = "n" or procstv = "N")

THEN: dol = "Курс доллара падает."

output "Хотите ли вы узнать прогноз об уровне цен на бирже?"

input urcen str using "a" with "(y/n)"

RULE: R6

IF: ytd > td & (procstv = "n" or procstv = "N") & (urcen = "n" or urcen = "N")

THEN: prognoz = "a"

RULE: R7

IF: ytd > td & (procstv = "n" or procstv = "N") & (urcen = "y" or urcen = "Y")

THEN: urc = "Уровень цен на бирже падает."

prognoz = "c"

RULE: R8

IF: ytd < td

THEN: output "Хотите ли вы узнать прогноз о процентных ставках?"

input procstv str using "a" with "(y/n)"

RULE: R9

IF: ytd < td & (procstv = "y" or procstv = "Y")

THEN: dol = "Курс доллара растёт."

prcs = " Процентные ставки падают. "

output "Хотите ли вы узнать прогноз об уровне цен на бирже?"

input urcen str using "a" with "(y/n)"

RULE: R10

IF: ytd < td & (procstv = "y" or procstv = "Y") & (urcen = "y" or urcen = "Y")

THEN: urc = "Уровень цен на бирже растёт."

prognoz = "d"

RULE: R11

IF: ytd < td & (procstv = "y" or procstv = "Y") & (urcen = "n" or urcen = "N")

THEN: prognoz = "b"

RULE: R12

IF: ytd < td & (procstv = "n" or procstv = "N")

THEN: dol = "Курс доллара растёт."

output "Хотите ли вы узнать прогноз об уровне цен на бирже?"

input urcen str using "a" with "(y/n)"

RULE: R13

IF: ytd < td & (procstv = "n" or procstv = "N") & (urcen = "n" or urcen = "N")

THEN: prognoz = "a"

RULE: R14

IF: ytd < td & (procstv = "n" or procstv = "N") & (urcen = "y" or urcen = "Y")

THEN: urc = "Уровень цен на бирже растёт."

prognoz = "c"

VARIABLE: prognoz

FIND: prognoz = "error"

LABEL: прогнозируем курс долара

var: prcs

FIND: prcs = "error"

LABEL: прогноз проц ставки

var: urc

FIND: urc = "error"

LABEL: прогноз уровня цен

VAR: dol

FIND: dol = "error"

LABEL: прогноз доллара

var: ytd

LABEL: вчерашний курс доллара

VAR: td

LABEL: текущий курс доллара

VAR: procstv

LABEL: процентная ставка

VAR: urcen

LABEL: уровень цен на бирже

END:

Выводы

В результате выполнения данной лабораторной работы закрепили знания по разработке ЭС путем самостоятельного программирования в полном объеме простейшей ЭС в “GURU”. Как видно по результат, данная оболочка позволяет значительно упростить процесс создания таких систем, позволив их разработчику акцентировать свое внимание исключительно на аспектах самой системы (ее правил и выводов), и не тратить лишнее время на построение графического или командного интерфейса на языках программирования высокого уровня.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее