Пример простой базы знаний с четкой логикой, решающей задачу классификации



Вопросы:

Ты играешь в компьютерные игры по 6 и более часов в сутки?

Ты бросаешь все дела ради новой игры?

От 3D-action игр у тебя кружится голова?

Ты ни за что не потащишь свой компьютер к другу для организации соревнований по сети?

Ты в основном тратишь деньги или на новый игровой диск или на апгрейд компьютера?

Ты не пользуешься "мышью" в 3D-action играх?

 

Геймер, 0.5, 1,1,0, 2,1,0, 3,0,1, 4,0,1, 5,1,0, 6,0,1

Не геймер, 0.5, 1,0,1, 2,0,1, 3,1,0, 4,1,0, 5,0,1, 6,1,0

---

Запустите программу «Редактор баз знаний» (файл MKBEditor) и введите эти вопросы и исходы.

Выполните проверку базы знаний. Чтобы проверить БЗ на ошибки, воспользуйтесь кнопкой , либо пунктом меню «Правка | Проверить базу знаний» (для этого также предназначена «горячая» клавиша <F3>).

В результате проверки могут быть выданы следующие сообщения об ошибке:

1) Синтаксическая ошибка (i строка, j столбец)

Означает, что формат текста в окне ввода не соответствует синтаксису базы знаний.

2) В правиле вывода ссылка на несуществующее свидетельство (i строка, j столбец)

Это сообщение возникает, если в каком-либо правиле вывода (третья секция файла базы знаний) встретилось упоминание свидетельства, номер которого выходит за пределы длины списка свидетельств.

После выдачи сообщения курсор автоматически перемещается в позицию (i,j).

Если ошибок нет, будет выдано сообщение об этом с указанием числа свидетельств и возможных исходов.

Сохраните базу знаний в файле БЗ_1.mkb.

Запустите программу «Малая Экспертная Система» (файл MiniES) и загрузите созданную базу знаний (файл БЗ_1.mkb). Проведите сеанс консультации с ЭС. По окончании консультации сохраните ее протокол в текстовом файле БЗ_1.

 

2. Как видите, задача классификации решается очень просто в случае двух исходов. Однако если возможных исходов больше, то значительно более простым решением является присвоение Pn каждого свидетельства значения 0.5. Это означает, что если гипотеза о наступлении данного исхода неверна, то отрицательный ответ на вопрос, соответствующий свидетельству, не определен.

Конечно, этот упрощенный метод и он дает менее четкие результаты, но зато он экономит время при создании базы знаний.

Представим правила, используемые модифицированной ЭС «Ты геймер?», в виде таблицы.

Таблица 2

№ п/п

Утверждение / Вопрос

Заключение / Исход

геймер не геймер
1. Ты играешь в компьютерные игры по 6 и более часов в сутки 1 0.5
2. Ты бросаешь все дела ради новой игры 1 0.5
3. От 3D-action игр у тебя кружится голова 0 0.5
4. Ты ни за что не потащишь свой компьютер к другу для организации соревнований по сети 0 0.5
5. Ты в основном тратишь деньги или на новый игровой диск или на апгрейд компьютера 1 0.5
6. Ты не пользуешься "мышью" в 3D-action играх 0 0.5

 

В форматебазы знаний, применяемом в программе «Малая Экспертная Система» v2.0 данные таблицы будут записаны в виде вопросов и исходов, приведенных ниже.

Пример простой базы знаний, решающей задачу классификации

Вопросы:

Ты играешь в компьютерные игры по 6 и более часов в сутки?

Ты бросаешь все дела ради новой игры?

От 3D-action игр у тебя кружится голова?

Ты ни за что не потащишь свой компьютер к другу для организации соревнований по сети?

Ты в основном тратишь деньги или на новый игровой диск, или на апгрейд компьютера?

Ты не пользуешься "мышью" в 3D-action играх?

 

Геймер, 0.5, 1,1,0.5, 2,1,0.5, 3,0,0.5, 4,0,0.5, 5,1,0.5, 6,0,0.5

Не геймер, 0.5, 1,0,0.5, 2,0,0.5, 3,1,0.5, 4,1,0.5, 5,0,0.5, 6,1,0.5

---

Запустите программу «Редактор баз знаний» и введите эти вопросы и исходы.

Сохраните базу знаний в файле БЗ_2.mkb.

Запустите программу «Малая Экспертная Система» и загрузите созданную базу знаний (файл БЗ_2.mkb). Проведите сеанс консультации с ЭС, отвечая на вопросы так же, как Вы отвечали на них в первый раз. По окончании консультации сохраните ее протокол в текстовом файле БЗ_2.

Сравните результаты применения предыдущей базы знаний с результатами использования измененной базы. Видно, что однозначные ответы уже не приводят к абсолютно четким результатам.

 

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

Априорные вероятности исходов находятся путем статистических исследований, а их сумма будет меньше единицы (невыполнение этого условия не приведет к катастрофе, просто результаты станут менее надежными). Значения Py и Pn также берутся из статистики (или указываются примерные значения, кажущиеся правдоподобными эксперту), т.к. вычислить их невозможно.

Кроме того, при большом количестве вопросов (свидетельств), не следует указывать их все в каждом правиле. Во-первых, это лишняя работа, а во-вторых, среди свидетельств могут оказаться не влияющие на вероятность данного исхода. Например, вопрос о поле пациента важен при оценке вероятности нахождения у него хронического бронхита (а тем более рака груди), но бесполезен в случае простуды или гриппа.

Ниже рассмотрен пример базы знаний, реализованной по этому принципу.

Запустите программу «Редактор баз знаний» и введите следующие вопросы и исходы.

База знаний

"Определение домашнего питомца по признакам"

Вопросы:

Морда вытянутая?

Крылья есть?

На поглаживания по спине отвечает довольным урчанием?

Живет в аквариуме (или другом резервуаре с водой)?

Есть лапы?

При встрече с хозяином виляет хвостом?

 

Собака, 0.4, 1,0.7,0.5, 2,0,0.5, 3,0.01,0.5, 4,0,0.5, 6,0.9,0.05

Кошка, 0.4, 1,0.1,0.5, 2,0,0.5, 3,0.95,0, 4,0,0.5

Попугай, 0.2, 2,1,0.3, 4,0,0.5

Рыбка, 0.1, 2,0,0.5, 4,1,0.1, 5,0,0.5

Тритон, 0.1, 2,0,0.5, 4,1,0.2, 5,1,0.5

---

Сохраните базу знаний в файле Домашний_питомец.mkb.

Запустите программу «Малая Экспертная Система» и загрузите созданную базу знаний. Загадайте домашнего питомца из списка возможных исходов. Проведите сеанс консультации с ЭС. Результаты отсортируйте по вероятности.

Верно ли система определила Ваш выбор? По окончании консультации сохраните ее протокол в текстовом файле Домашний_питомец.

 

4. Рассмотрим базу знаний с бо¢льшим количеством исходов.

Запустите программу «Редактор баз знаний» и введите следующие вопросы и исходы.

База знаний о грибах

 

Признаки:

Гриб пластинчатый?

Гриб полностью желтый?

У гриба прочная толстая ножка?

Гриб полностью ярко-коричневый?

Шляпка красная?

Есть ли венчик на ножке?

 

Лисичка, 0.05, 1,1,0.5, 2,0.9,0.1, 3,0.03,0.3, 4,0,0.1, 5,0,0.25, 6,0,0.35

Свинух, 0.05, 1,1,0.5, 2,0.005,0.2, 4,1,0.01, 5,0,0.25, 6,0,0.35

Подберезовик, 0.05, 1,0,0.5, 2,0,0.2, 3,0.25,0.3, 4,0.1,0.1, 5,0,0.25, 6,0,0.35

Подосиновик, 0.05, 1,0,0.5, 2,0,0.2, 3,0.98,0.15, 4,0,0.1, 5,0.8,0.22, 6,0,0.35

Белый Гриб, 0.05, 1,0,0.5, 2,0,0.2, 3,1,0.15, 4,0.001,0.1, 5,0.05,0.5, 6,0,0.35

Опенок, 0.05, 1,1,0.5, 2,0.7,0.15, 3,0,0.3, 4,0.15,0.1, 5,0,0.25

Мухомор Красный, 0.05, 1,1,0.5, 2,0,0.2, 3,0.12,0.3, 4,0,0.1, 5,1,0.2, 6,1,0.3

Сыроежка, 0.1, 1,1,0.5, 2,0.02,0.2, 3,0.1,0.3, 4,0,0.1, 5,0.3,0.2, 6,0,0.35

Масленок, 0.05, 1,0,0.5, 2,0.25,0.2, 3,0.02,0.3, 4,0.05,0.1, 5,0.001,0.25, 6,0.7,0.3

 

Сохраните базу знаний в файле Грибы.mkb.

Запустите программу «Малая Экспертная Система» и загрузите созданную базу знаний. Загадайте гриб из списка возможных исходов. Проведите сеанс консультации с ЭС. Результаты отсортируйте по вероятности.

Верно ли система определила Ваш выбор? По окончании консультации сохраните ее протокол в текстовом файле Грибы.

 

5.Рассмотрим работу с более сложной базой знаний (67 свидетельств и 89 исходов) на примере медицинской базы знаний.

Запустите программу «Малая Экспертная Система» и загрузите базу знаний Медицинская БЗ.

Вспомните, как протекало заболевание, перенесенное ранее Вами или Вашими родными. Проведите сеанс консультации с ЭС.

Результаты отсортируйте по вероятности.

Верно ли система установила диагноз? По окончании консультации по желанию сохраните ее протокол в текстовом файле.

 

Система нечеткого вывода (Fuzzylogicsystem)

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

 

Ознакомиться с Руководством пользователя системы FLS (файл FLS_Руководство пользователя.doc).

Повторить процедуры, описанные в приведенным ниже примере и освоить нечеткий вывод для оценки параметра химического реактора.

Функциональная схема процесса нечеткого вывода в упрощенном виде представлена на рисунке. На этой схеме выполнение первого этапа нечеткого вывода - фаззификации - осуществляет фаззификатор. За процедуру непосредственно нечеткого вывода ответственна машина нечеткого логического вывода, которая производит второй этап процесса вывода на основании задаваемой нечеткой базы знаний (набора правил), и этап композиции. Дефаззификатор производит последний этап нечеткого вывода - дефаззификацию.

Рис. Нечеткий логический вывод

Рассмотрим алгоритм нечеткого вывода на конкретном примере.

Пусть у нас есть некоторая система, например реактор, описываемая тремя параметрами:

· температура,

· давление,

· расход рабочего вещества.

Все показатели измеримы и множество возможных значений известно. Также из опыта работы с системой известны некоторые правила, связывающие значения этих параметров.

Предположим, что сломался датчик, измеряющий значение одного из параметров системы, но знать его значение хотя бы приблизительно необходимо. Тогда возникает задача об отыскании значения этого неизвестного значения (пусть это будет давление) при известных значениях двух других параметров (температуры и расхода) и связи этих величин в виде следующих правил:

Если Температура низкая и Расход малый, то Давление низкое

Если Температура средняя, то Давление среднее

Если Температура высокая или Расход большой, то Давление высокое

В нашем случае Температура, Давление и Расход - лингвистические переменные. Опишем каждую из них.

Температура.

Унивёрс (множество возможных значений) - отрезок [0,150].

Начальное множество термов {Высокая, Средняя, Низкая}.


Функции принадлежности термов имеют следующий вид:

Давление.

Унивёрс - отрезок [0,100].

Начальное множество термов {Высокое, Среднее, Низкое}

Функции принадлежности термов имеют следующий вид:

Расход.

Унивёрс - отрезок [0,8]. 

Начальное множество термов {Большой, Средний, Малый}

Функции принадлежности термов имеют следующий вид:


Пусть известны значения Температура 85 и Расход 3,5.

Произведём расчёт значения давления.

Последовательно рассмотрим этапы нечеткого вывода.

Сначала по заданным значениям входных параметров найдём степени уверенности простейших утверждений вида «Лингв.переменная А есть Терм Лингв.переменной А». Этот этап называется фаззификацией, т.е. переход от заданных чётких значений к степеням уверенности. Получаем следующие степени уверенности:

■ Температура Высокая - 0.7

■ Температура Средняя - 1

■ Температура Низкая - 0,3

■ Расход Большой - 0

■ Расход Средний - 0,75

■ Расход Малый - 0,25

Затем вычислим степени уверенности посылок правил:

■ Температура низкая и Расход малый:
min (Темп. Низкая, Расход Малый) = min(0.3, 0.25) = 0.25

■ Температура Средняя : 1

■ Температура Высокая или Расход Большой:
mах(Темп. Высокая, Расход Болыпой) = mах (0.7,0) = 0,7

Следует отметить также тот факт, что с помощью преобразований нечётких множеств любое правило содержащее в левой части как конъюнкции, так и дизъюнкции можно привести к системе правил, в левой части каждого будут либо только конъюнкции, либо только дизъюнкции. Таким образом, не уменьшая общности, можно рассматривать правила, содержащие в левой части либо только конъюнкции, либо только дизъюнкции.

Каждое из правил представляет из себя нечёткую импликацию. Степень уверенности посылки мы вычислили, а степень уверенности заключения задаётся функцией принадлежности соответствующего терма. Поэтому используя один из способов построения нечёткой импликации, мы получим новую нечёткую переменную, соответствующую степени уверенности о значении выходного значения при применении к заданным входным значениям соответствующего правила. Используя определение нечёткой импликации как минимума левой и правой частей, имеем:

Теперь необходимо объединить результаты применения всех правил. Этот этап называется аккумуляцией. Один из основных способов аккумуляции - построение максимума полученных функций принадлежности. Получаем:

Полученную функцию принадлежности уже можно считать результатом. Это новый терм выходной переменно Давление. Его функция принадлежности говорит о степени уверенности в значении давления при заданных значениях входных параметров и правилах, определяющих соотношение входных и выходных переменных. Но обычно всё-таки необходимо какое-то конкретное числовое значение. Для его получения используется этап дефаззификации, т.е. получения конкретного значения из унивёрса по заданной на нём функции принадлежности.

Существует множество методов дефаззификации, но в нашем случае достаточно метода первого максимума. Применяя его к полученной функции принадлежности, получаем, что значение давления - 50.

Выбрав пункт меню Показать вывод, ознакомиться с этапами процесса нечеткого вывода.

Система нечеткого вывода (Fuzzylogicsystem)

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

 

На основании описанной ниже модели разработать нечёткую систему принятия решения о принятии баскетболиста в команду.


Дата добавления: 2018-02-18; просмотров: 3074; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!