Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛБ-ИИС-2012.doc
Скачиваний:
11
Добавлен:
29.05.2015
Размер:
253.44 Кб
Скачать

Работы с использованием оболочки exsys - 6 час.

Лабораторная работа № 4б. Знакомство с пакетом. Изучение примеров ЭС.

Работа с имеющимися базами знаний. В меню кнопки "Пуск" найдите опцию Exsys Pro 16 с двумя приложениями: Pro Demo и ExDesign. Запустите приложение Pro Demo. Откройте меню File, выберите опцию Open и в открывшемся перечне баз знаний выберите cars.rul, помогающую американцам выбрать подходящий автомобиль. Откройте меню Options, выберите в нем опцию Run и отвечайте на вопросы экспертной системы согласно своим желаниям. Не удивляйтесь, если они не будут удовлетворены, так как база знаний располагает лишь двенадцатью моделями машин. Попытайтесь найти вариант пожеланий, который был бы удовлетворен.

Закончив последний сеанс общения с системой, откройте меню Rule, выберите в нем опцию Edit Rule, в открывшемся окне Rule to select выделите правило Number 1 и нажмите OK. В открывшемся окне вы сможете рассмотреть структуру первого правила, а действуя с помощью кнопок Next и Prev - получить доступ ко всем остальным. Внимательно изучите возможности этого окна, так как через него осуществляется не только просмотр, но также создание и редактирование правил. С помощью кнопки Cancel закройте окно редактирования правил. Далее, действуя через меню Rule, выберите опцию Qualifier List и откройте окно редактирования квалификаторов. Выделите последовательно каждый из квалификаторов и в режиме Edit внимально изучите их описание. Проделайте аналогичную работу со списком переменных (Variable List) и со списком выбора (Choice List). Ознакомьтесь описанным выше образом с остальными примерами баз знаний.

Задание: в соответствии с нашей действительностью (цены, состояние дорог) и вашим пониманием, как все должно быть, отредактируйте Initialize-значения переменных в системе cars.rul и проверьте, как изменится ее работа. Лучше ли она соответствует вашим представлениям? Внимание: не сохраняйте произведенные вами изменения при выходе из измененной вами базы знаний.

Инсталляция пакета. В лаборатории пакет инсталлирован. Вообще же пакет инсталлируется из папки Exsys на диске С:, содержащей саморазворачивающийся архив Wprodemo.exe (объем архива позволяет размещать его на одной дискете). Для инсталляции необходимо развернуть архив в папке Exsys, запустить появившуюся в ней программу Setup.exe и выполнять запросы программы установки. После завершения установки в меню "Пуск" появится опция Exsys Pro 16 с двумя приложениями: Pro Demo и ExDesign. Все файлы установленного пакета размещаются в папке C: \ Exsys 16 \ Pro.

Возврат

Лабораторная работа № 5а.Использование квалификаторов для построения ЭС.

Квалификатор - это переменная, принимающая вербальные значения, выражающие суждения качественного характера. Предположим, речь идет о выборе партнера в службе знакомств. Предположим также, что клиенты высказывают свои пожелания в отношении умственных возможностей, роста и дохода потенциального партнера. Введем тогда три квалификатора: "наличие ума" со значениями "важно", "желательно", "несущественно"; "желаемый рост" со значениями "большой", "средний", "малый" "любой"; "наличие дохода" со значениями "важно", "желательно", "несущественно". Следовательно, база данных службы знакомств должна содержать сведения такого характера о потенциальных партнерах, список которых в Exsysсоставляет содержаниеChoiceList. Правила базы знаний (Rule) должны связать пожелания клиента (набор значений квалификаторов) с рекомендуемыми кандидатами (из спискаChoiceList), которые не всегда в полной мере соответствуют пожеланиям и потому не всегда рекомендуются с полной уверенностью (Confidence).

Создание ЭС в Exsysначинается с запуска приложениеProDemoи выбора в менюFileопцииNew, в результате чего открывается окно параметров, в котором по умолчанию заданы приемлемые для нашего случая все параметры и требуется лишь указать имя будущей системы (назовем ееchoice0), предмет экспертизы (назовем егоchoiceofpartner) и автора системы (пусть это будетabc). В итоге основные параметры создаваемой нами системы будут таковы:

Subject: choice of partner

Author: abc

Confidence Mode: 0 - 10

DISPLAY THRESHOLD: 1

После подтверждения данных параметров нажатием кнопки ОК откроется окно с предложением сформировать список претендентов (ChoiceList). Проблема здесь в том, чтоExsysне отображает кириллицу и приходится либо писать на английском, либо на русском с помощью латинских букв. Выберем для экономии времени последний вариант. ВChoiceListможно внести весь список выбора, либо его часть (минимум - один), а затем пополнить в режиме редактирования. Предположим, что мы ввели в этот список следующий состав потенциальных партнеров:

petr mal umen bogat

stepan nemal neglup nebeden

fedor velik glup beden

Подтвердив введенный список нажатием кнопки ОК, мы получаем возможность приступить к описанию квалификаторов. Откроем меню Ruleи выберем опциюQualifierList. Откроется окно для создания и редактирования квалификаторов. Обозначим квалификатор "наличие ума" со значениями "важно", "желательно", "несущественно" в латинском варианте сокращенно какumсо значениямиv,g,n. Последовательность действий при описании каждого квалификатора такова:NewQual.=> Qualifier: um => Value: v => Add => g => Add => n => Add => OK. Эту последовательность действий повторим для квалификатора "желаемый рост" со значениями "большой", "средний", "малый", "любой", заменив его латинским вариантомrostсо значениямиb,s,m,l, и для квалификатора "наличие дохода" со значениями "важно", "желательно", "несущественно" в его латинском вариантеdochodсо значениямиv,g,n. После завершения ввода последнего квалификатора подтвердим нажатием кнопки ОК весь список квалификаторов. В итоге в этом списке будем иметь квалификаторы: 1.um со значениями v, g,n; 2.rost со значенямиb,s,m; 3.dochod со значениями v, g,n.

Располагая квалификаторами и списком выбора, мы можем приступить к созданию правил. Все, что здесь нужно, - это определиться для каждой совокупности требований, кого и с какой уверенностью (10 из 10, 9 из 10, 8 из 10 и т.д.) рекомендовать. Можно, при одних и тех же требованиях рекомендовать несколько кандидатур с разной степенью уверенности.

Предположим, что рассматривается совокупность требований: um=v("наличие ума"="важно"),dochod=v("наличие дохода"="важно"),rost=l("желаемый рост"="любой"). Этим условиям в нашем спискеChoiceв разной степени соответствуютpetr(10/10) иstepan(предположим, 8/10). Создадим соответствующее этим рассуждениям правило. В менюRuleвыберем опциюAddRule. В открывшкмся окне для формированияIF-части правила нажатием кнопкиQualifierполучим доступ к специальному окну для выбора квалификатора и его значения. Выделим квалификаторum, его значениеvи нажатием кнопки ОК включим вIF-часть формируемой продукции. Аналогичным образом выполним включение вIF-часть требованийdochod=vиrost=l.

Для формирования THEN-части продукции переключим режим работы сIFнаTHENи нажатием кнопкиChoiceоткроем окно для формирования рекомендации. Выделив кандидатуруpetrи степень уверенности 10 (из 10), нажатием кнопки ОК включим его вTHEN-часть продукции. Повторив те же действия для кандидатурыstepanпри уверенности 8 (из 10), закончим формированиеTHEN-части продукции. Подтвердим завершение формирования правила нажатием кнопки ОК. Сформированное нами правило (его можно просмотреть или отредактировать в режимеRule=>EditRule) будет иметь следующий вид:

IF:

um v

and dochod v

and rost l

THEN:

petr mal umen bogat - Confidence=10/10

and

stepan nemal neglup nebeden - Confidence=8/10

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

Задание.В нашем примере следует проанализировать, каким возможным требованиям могут удовлетворять кандидатуры, присутствующие в спискеChoice, а для остальных случаев создать правило, извещающее об отсутствии подходящих кандидатур. Для этого надо пополнить списокChoiceеще одним вариантом, представляющим собой этот текст.

Лабораторная работа № 5б.Использование переменных при построении ЭС.

Что касается ума, то ему можно дать лишь качественную оценку. Что же касается роста и дохода, то клиенты нашей службы знакомств могут захотеть получить сведения и выдвинуть требования количественного характера. Учесть такие факторы позволяет использование переменных. Модифицируем ЭС предыдущей лабораторной работы, назвав ее choice1. Предоставим клиентам возможность задавать с помощью переменныхminrost,maxrost,mindochodграницы роста и дохода. Соответствующие характеристики кандидатов можно описать константамиrostpetra,roststepana,rostfedoraиdochodpetra,dochodstepana,dochodfedoraв виде инициализированных переменных (переменных с фиксированными значениями). Задайте параметры новой ЭСchoice1, списокChoiceвозможных партнеров с их характеристиками роста, ума и дохода в составе:

petr 165 umen 20000

stepan 180 neglup 10000

fedor 190 glup 900

Квалификатор "наличие ума" со значениями "важно", "желательно", "несущественно" опишите так, как это делали в предыдущей работе (в латинском варианте сокращенно как umсо значениямиv,g,n). Таким образомQualifierListв данном случае будет состоять лишь из одного этого квалификатора.

Далее займемся описанием переменных и констант. В меню Ruleвыберите опциюVariableListи в открывшемся окне нажмите кнопкуNewVariable, после чего вы окажетесь в окне описания переменной. Опишем переменнуюminrost. В разделеName: напишемminrost, а в разделеPromt: расшифруем какminimalrost. Так как по умолчанию задана числовая переменная, какая нам и нужна, то можно описание этой переменной завершить нажатием кнопки ОК и пристурить к описанию следующей. Точно по этой схеме опишите перменныеmaxrostиmindochod. Несколько иначе описываются константы. Отличие состоит в том, что их значения фиксируются в разделеInitialize(например, константаrostpetraдолжна быть инициализирована значением 165, а константаdochodpetra- значением 20000). Кроме того, в данном случае можно установить для этих переменных режимDisplayatend, что позволит наблюдать их значения после завершения консультации. Проделайте эту работу для остальных констант:roststepana,rostfedoraиdochodstepana,dochodfedora. Теперь мы готовы к построению правил.

Будем рекомендовать клиенту ту кандидатуру, которая удовлетворяет всем трем ограничениям: minrost,maxrost,mindochod. Это означает, что нам следует создать для каждой из кандидатур правило следующего типа.

В меню Ruleвыберем опциюAddRule. В открывшкмся окне для формированияIF-части правила нажатием кнопкиQualifierполучим доступ к окну выбора квалификатора и его значения. Выделим квалификаторum, его значениеvи нажатием кнопки ОК включим вIF-часть формируемой продукции. Далее нажмем кнопкуVar./Math, в результате чего откроется окно с предложением вввести формулу. Чтобы это сделать, надо получить доступ к переменным, что достигается нажатием кнопкиDisplayVariables. Выделим в открывшемся окне переменнуюminrostи нажмем кнопку ОК В рельтате этого имя переменнойminrostокажется включенным в будущую формулу. Так как у нас уже есть требованиеum=v, которому удовлетворяетpetr, то продолжим написание формулы под кандидатаpetr, каждый раз извлекая имя нужной переменной через обращение к списку переменных путем нажатия кнопкиDisplayVariables. Сформировав условие [minrost]<=[rostpetra], нажатием кнопки ОК включим его вIF-часть формируемой продукции. По этой же схеме сформируем м включим вIF-часть формируемой продукции третье условие [rostpetra]<=[maxrost] и четвертое условие [mindochod]<=[dochodpetra]. Этим будет закончено формрованиеIF-части правила.

Для формирования THEN-части продукции переключим режим работы сIFнаTHENи нажатием кнопкиChoiceоткроем окно для формирования рекомендации. Выделив кандидатуруpetrи степень уверенности 10 (из 10), нажатием кнопки ОК включим его вTHEN-часть продукции. Учитывая, чтоstepanиpetrблизки по характеристикам, включим в рекомендацию его кандидатуру при уверенности 8 (из 10) и закончим формированиеTHEN-части продукции. Подтвердим завершение формирования правила нажатием кнопки ОК. Сформированное нами правило будет иметь следующий вид:

IF:

um v

and [minrost]<=[rostpetra]

and [rostpetra]<=[maxrost]

and [mindochod]<=[dochodpetra]

THEN:

petr mal umen bogat - Confidence=10/10

and

stepan nemal neglup nebeden - Confidence=8/10

Задание:сформируйте аналогичным образом правила для остальных кандидатур. Проверьте работоспособность построенной ЭС.

Возврат

Лабораторная работа № 6. Построение нечетких иерархических продукционных систем.

Задача.Пусть - набор из двух заменяющих друг друга товаров (например, чай и кофе). Оценивать наборХбудем по трем критериям:-стоимостьнабораХ,-ресурснабораХ(количество чашек напитка),- "престижность" набораХ(например, в качестве напитка для угощения гостей).

Пусть = 40 руб.- цена пачки чая, =100 руб. - цена банки кофе; =200 - "ресурс" пачки чая (число чашек чая), =125 - "ресурс" банки кофе (число чашек кофе); = 0 - "престижность" пачки чая, = 125 - "престижность" банки кофе (наш потребитель считает, что угощать чаем - это "не престижно", а кофе -"престижно", поэтому =0, а ==125 - числу чашек кофе в банке).

Пусть "ценности" набора , где - число пачек чая, - число банок кофе в набореХвычисляются по формулам:

;

;

.

На ценности набора могут быть наложены сверху или снизу ограничения (например, стоимость набораХможет быть ограничена сверху величиной дохода, выделямого в месяц на этот вид потребления).

Предположим, что потребитель оценивает:

-стоимостьнабораХв терминах: "низкая", "средняя", "высокая";

-ресурснабораХ- в терминах: "недостаточный", "достаточный"

-престижностьнабораХ- в терминах: "низкая", "средняя", "высокая",

-интегральная полезностьнабораХ- в терминах "низкая", "средняя", "высокая".

Если "ресурс" набораХоценивается потребителем значением (X)=недостаточный, то (независимо от оценок набораХпо остальным критериям), интегральной оценкеu(X) полезности набораХследует присвоить значениеu(X)=низкая. Если же "ресурс"набораХоценивается потребителем значением (X)=достаточный, то интегральная полезностьu(X) набораХзависит от сочетания оценок его стоимости (X) и его "престижности" (X), представленной в следующей ниже таблице.

(X)

v

v

v

s

s

v

s

n

n

n

n

n

Рис.1. Интегральная функция полезности u(X) набора Х. Символыn, s, vсоответствуют оценкам "низкая", "средняя", "высокая"

n

s

v

(X)

Построение ЭС.

Создание ЭС в Exsys, как вы уже знаете, начинается с запуска приложениеProDemoи выбора в менюFileопцииNew, в результате чего открывается окно параметров, в котором по умолчанию заданы большей частью приемлемые параметры. В данном случае требуется указать имя будущей системы (buyer-f), предмет экспертизы (назовем егоfuzzybuyer), автора системы (пусть будетabc) иConfidenceMode:Fuzzy(в отличие от предыдущих случаев, где принималось по умолчаниюConfidenceMode: 0-10). В итоге основные параметры создаваемой нами системы будут таковы:

Subject:fuzzybuyer

Author: abc

Confidence Mode: Fuzzy

DISPLAY THRESHOLD: .1

После подтверждения данных параметров нажатием кнопки ОК откроется окно с предложением сформировать ChoiceList. СоставьтеChoiceListиз интегральных оценокn,s,v.

Из постановки задачи следует, что далее надо описать:

  1. входные переменные Х1 и Х2;

  2. константы Р11= 40, Р12=100; Р21=200, Р22=125; Р31= 0, Р32= 125;

  3. внутренние (рабочие) переменные С1, С2, С3 (их значения будут вычисляться по формулам: С1 = Р11*X1+Р12*X2; С2 = Р21*X1+Р22*X2; С3 = Р31*X1+Р32*X2);

  4. квалификатор U1 со значениямиn,s,v, вычисляемыми по значениюС1;

  5. квалификатор U2 со значениямиn,d, вычисляемыми по значениюС2;

  6. квалификатор U3 со значениямиn,s,v, вычисляемыми по значениюС3;

Приступим теперь к определению нечетких значений квалификаторов. На следующем ниже рисунке изображены функции принадлежности, описывающие нечеткий смысл (в понимании некоего субъекта, вы можете определить его так, как вам представляется) вербальных значений квалификаторов U1,U2,U3.

В ExsysPro16 функции принадлежности имеют кусочно-линейный вид и описываются, начиная от исходной точки шкалы отрезками со степенью уверенности равной 1 или равной 0. Так значения квалификатораU1 со степенью уверенности равной 1 или равной 0, согласно рисунку, будут описаны так:

n: [0 -100] - Confidence=1, [200 - 600] - Confidence=0;

s: [0 - 100] - Confidence=0, [200 - 300] - Confidence=1, [400 - 600] - Confidence=0;

v: [0 - 300] -Confidence=0, [400 - 600] -Confidence=1.

Откроем в нашей системе QualifierList, выберем в открывшемся окне квалификаторU1 и в правом нижнем углу щелкнем в окошкеFuzzy. Перед вами появится окноFuzzyParameters. Установите в немVariable:C1 иValue:n. Далее, щелкая по стрелкам, расположенным на левом и правом нижних концах дмаграммы, установите слева значение, близкое к 0, а справа - близкое к 600. Это позволит наблюдать процесс построения функции принадлежности.

Заполните для описания вербального значения nследующую таблицу, описывающую с помощью отрезков функцию принадлежности вербального значенияn:

H Pos

Conf.

0

1

100

1

200

0

600

0

После заполнения таблицы нажатием кнопки Update подтвердите завершение описания функции принадлежности вербального значения n. Далее, не меняя установку Variable: C1, установите Value: s и заполните для вербального значения s таблицу:

H Pos

Conf.

0

0

100

0

200

1

300

1

400

0

600

0

После заполнения таблицы нажатием кнопки Update подтвердите завершение описания функции принадлежности вербального значения s. Далее, не меняя установку Variable: C1, установите Value: v и заполните для вербального значения v таблицу:

H Pos

Conf.

0

0

300

0

400

1

600

1

После заполнения таблицы нажатием кнопки Update подтвердите завершение описания функции принадлежности вербального значения v, а нажатием кнопки ОК завершите описание нечетких значений квалификатора U1.

Выполните ту же работу для квалификаторов U2 и U3.

Первым правиломлучше сделать правило для вычисления С1, С2, С3, принимающее вExSysвид:

IF

[X1]>=0 and [X2]>=0

THEN

[C1] GIVEN THE VALUE [P11]*[X1]+[P12]*[X2]

and [C2] GIVEN THE VALUE [P21]*[X1]+[P22]*[X2]

and [C3] GIVEN THE VALUE [P31]*[X1]+[P32]*[X2]

Второе правилодолжно выбирать интегральную оценкуnиз спискаChoiceList, еслиU2=n

Далее постройте правила, выбирающие из спискаChoiceListинтегральную оценку полезности набора товаров приU2=d, в зависимости от значений квалификаторовU1,U3 согласно таблице, приведенной на рис.1.

Задание:Проверьте работоспособность созданной ЭС, особенно при входных значениях, порождающих нечеткие значения квалификаторов. Для удобства отладки рекомендуется для переменных и квалификаторов установить режимDisplayatend, что упростит анализ работы системы и целенаправленный выбор входных значений.

Возврат

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]