Практическая работа 7

Лабораторная работа №6. Проектирование интеллектуальной системы на основе нечетких знаний.
Цель работы: Разработать компьютерную модель нечеткой экспертной системы и исследовать ее работу.

Теоретическая часть
Для моделирования многомерных зависимостей "входы - выход" целесообразно использовать иерархические системы нечеткого логического вывода. В этих системах выходная переменная одной базы знаний является входной для другой базы знаний. На рисунке 6.1 приведен пример иерархической нечеткой базы знаний, моделирующей зависимость y=f(x1,x2,x3,x4,x5,x6) с использованием трех баз знаний. Эти базы знаний описывают такие зависимости: y1=f1(x1,x2), y2=f2(x4,x5,x6) и y=f3(y1,x3,y2).
[ Cкачайте файл, чтобы посмотреть картинку ]
Рисунок 6.1 - Пример иерархической нечеткой базы знаний
Применение иерархических нечетких баз знаний позволяет преодолеть "проклятие размерности". При большом количестве входов эксперту трудно описать причинно-следственные связи в виде нечетких правил. Это обусловлено тем, что в оперативной памяти человека может одновременно хранится не более 7±2 понятий-признаков. Следовательно, количество входных переменных в одной базе знаний не должно превышать это магическое число. Более поздние исследования показали, что хорошие базы знаний получаются, когда количество входов не превышает пяти шести. Поэтому, при большем количестве входных переменных необходимо их иерархически классифицировать с учетом приведенных выше рекомендаций. Обычно, выполнение такой классификации не составляет трудностей для эксперта, так как при принятии решений человек иерархически учитывает влияющие факторы.
Преимущество иерархических баз знаний заключается еще и в том, что они позволяют небольшим количество нечетких правил адекватного описать многомерные зависимости "входы - выход". Пусть, для лингвистической оценки переменных используется по пять термов. Тогда, максимальное количество правил для задания зависимости y=f(x1,x2,x3,x4,x5,x6) с помощью одной базы знаний будет равным 56=15625 (конечно, для адекватного описания зависимости "входы - выход" необходимо значительно меньше нечетких правил). Для иерархической базы знаний (рисунок 6.1), описывающую ту же зависимость, максимальное количество нечетких правил будет равным 52+53+53=275 . Причем, это "короткие" правила с двумя - тремя входными переменными.
Особенностью нечеткого логического вывода по иерархической базе знаний является отсутствие процедур дефаззификации и фаззификаци для промежуточных переменных (y1 и y2 на рисунке 6.1). Результат логического вывода в виде нечеткого множества напрямую передается в машину нечеткого логического вывода следующего уровня иерархии. Поэтому, для описания промежуточных переменных в иерархических нечетких базах знаний достаточно задать только терм-множества, без определения функций принадлежностей.

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

Список индивидуальных данных
1) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи закупок (соотношения цены, качества, объема закупок и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
2) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи распределения нагрузок спортсмена (соотношение нагрузок, физического состояния, потребляемых калорий и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
3) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи управления транспортным средством (регулировка скорости с учетом передачи, погодных условий, интенсивности потока и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
4) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи управления транспортным средством (управление рулем, газом, тормозом при въезде в гараж), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
5) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи регулирования теплоснабжения (соотношение среднесуточной температуры, ветра, размера здания и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
6) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи регулирования реверсного движения на мосту (учитывать время, интенсивность потока, день недели и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
7) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи подбора специй для блюда (соотношение количества и остроты специй, рецептуры, предпочтений едока, объема пищи и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
8) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи подбора объема блюд (учитывать калорийность, вкусовые предпочтения, количество едоков и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
9) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи подачи электроэнергии в условиях экономии (учет времени суток, типа помещений, количества людей, типа оборудования и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
10) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи подбора интенсивности занятий (учитывать начальный уровень подготовки, объем учебного материала, количество человек в группе, необходимый уровень усвоения и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
11) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи расчета потребления бензина (учитывать тип совершаемых маневров, уровень подготовки водителя, состояние автомобиля, тип автомобиля и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
12) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи регулирования системы орошения (учитывать время года, количество выпадающих озадков, вид орошаемой культуры и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
13) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи настройки аудиосистемы (мощность колонок, их количество, размер помещения, назначение установки и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
14) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи выбора дозы снотворного (количество препарата, действие препарата, восприимчивость к выбранному препарату, цель и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
15) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи планирования объема производства продукции (с учетом возможной прибыли, необходимых ресурсов, платежеспособности населения, рынка сбыта и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
16) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи регулирования кондиционера (учитывать его мощность, объем помещения, температуру окружающей среды, необходимую температуру в помещении и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
17) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи распределения нагрузки между компьютерами при использовании их в кластерах (учитывать характеристики компьютеров, их количество, количество параллельного кода, характеристики сети и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
18) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи выбора складского помещения (учитывать площадь склада, количество и размеры продукции, удаленность от места производства и точек реализации, свойства продукции и характеристики помещений и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
19) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи выбора комплектующих для компьютера (учитывать цену, потребности пользователя, совместимость, сроки использования и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).
20) Построить нечеткую базу знаний (использовать не менее 3 лингвистических переменных) для задачи определения количества линий в службе поддержки (учитывать количество обслуживаемых клиентов, среднюю частоту обращения в службу одного клиента, среднее время обслуживания одной заявки, квалификацию персонала и т.д.), проверить ее на полноту и произвести нечеткий вывод для конкретных значений (выбрать случайным образом).

Пример выполнения работы

Рассмотрим пример того, как обрабатываются нечеткие правила вывода в экспертной системе, управляющей вентилятором комнатного кондиционера. Задача кондиционера - поддерживать оптимальную температуру воздуха в комнате, охлаждая его, когда жарко, и нагревая, когда холодно. Пусть, изменяя скорость вращения вентилятора, прогоняющего воздух через охлаждающий элемент, мы можем менять температуру воздуха, тогда алгоритм работы кондиционера может быть задан следующими правилами:
1) если температура воздуха в комнате высокая, то скорость вращения вентилятора высокая;
2) если температура воздуха в комнате средняя, то скорость вращения вентилятора средняя;
3) если температура воздуха в комнате низкая, то скорость вращения вентилятора низкая.
Для того чтобы система могла обрабатывать эти правила, надо задать функции принадлежности для нечетких подмножеств, определенных на значениях температуры (t) и скорости вращения вентилятора (v). Пусть температура воздуха в комнате находится в пределах от 0°С до 60°С - в противном случае кондиционер вряд ли поможет. Функцию принадлежности для нечеткого подмножества низкая, определенную на интервале изменения температуры, можно задать, например, так (рисунок 6.2):

Рисунок 6.2 - Нечеткое подмножество «низкая», определенное на множестве значений температуры

Если температура меньше 12°С, то это - определенно низкая температура для комнаты (mнизкая(t)=1, t 12). Температуру выше 20°С никак нельзя назвать низкой (mнизкая(t)=0, t 20). В промежутке между этими значениями функция принадлежности линейно убывает - с увеличением температуры уменьшается истинность утверждения «температура воздуха в комнате низкая». Аналитически mнизкая(t) выражается следующим образом:

Сходные рассуждения позволяют нам задать функции принадлежности для оставшихся подмножеств: средняя (рисунок 6.3) и высокая (рисунок 6.4).

Рисунок 6.3 – Нечеткое подмножество «средняя», определенное на множестве значений температуры


Рисунок 6.4 - Нечеткое подмножество «высокая», определенное на множестве значений температуры


Определим нечеткие подмножества для скорости вращения вентилятора. Пусть она может изменяться от 0 до 1000 об/мин. Вполне допустимым будет следующий вариант определения функций принадлежности для нечетких подмножеств низкая, средняя и высокая (рисунок 6.5, 6.6, 6.7).

Рисунок 6.5 – Нечеткое подмножество «низкая», определенное на множестве значений скорости вращения вентилятора



Рисунок 6.6 – Нечеткое подмножество «средняя», определенное на множестве значений скорости вращения вентилятора



Рисунок 6.7 – Нечеткое подмножество «высокая», определенное на множестве значений скорости вращения вентилятора


Рассмотрим теперь, как нечеткая экспертная система определяет скорость вращения вентилятора в зависимости от температуры воздуха в комнате. Пусть эта температура равна 22°С.
Сначала экспертной системе надо определить истинность левых частей правил вывода при подстановке в них текущего значения температуры. Для этого она должна найти степень вхождения t=22°С в каждое из указанных слева нечетких подмножеств. В левых частях правил указаны три подмножества, заданных на интервале значений температуры: высокая, низкая и средняя. Степень вхождения находим, вычисляя значение функций принадлежности каждого из подмножеств от t=22°С:
mT высокая(22)=0.2;
mТ средняя(22)=0.8;
mТ низкая(22)=0.
Значения истинности левой части каждого правила используются для модификации нечеткого множества, указанного в его правой части. Модификацию будем производить описанным выше методом «произведения». На рисунке 6.8 изображено, как трансформируются находящиеся в правых частях правил нечеткие подмножества высокая, средняя и низкая.

Рисунок 6.8 – Модификация нечетких подмножеств, определенных на интервале изменения скорости вращения вентилятора

Далее нечеткой экспертной системе необходимо обобщить результаты действия всех правил вывода, то есть произвести суперпозицию полученных нечетких множеств. Результат объединения нечетких множеств показан на рисунке 6.9.

Рисунок 6.9 – Результат суперпозиции нечетких множеств

Теперь необходимо осуществить переход от суперпозиции множеств к скалярному значению. Скаляризацию произведем методом "центра тяжести". Иллюстрация того, как получается результат, представлена на рисунке 6.10.

Рисунок 6.10 – Получение скалярного значения скорости вращения вентилятора методом «центра тяжести»

Центр тяжести фигуры на рисунке 6.10 находится в точке v=520. Это и будет значением скорости вращения вентилятора, которое выдаст экспертная система при температуре воздуха в комнате равной 22°С. При других значениях температуры функция принадлежности обобщенного результата выполнения всех правил, изображенная на рисунке 6.10, будет меняться.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Задние нечетких функций принадлежности. В прикладном пакете Fuzzy logic toolbox программы MATLAB создадим новый проект и зададим нечеткие функции принадлежности для температуры как входные параметры (рисунок 6.11).

Рисунок 11 – Окно задания нечетких функций принадлежности для значений температуры

Зададим нечеткие функции принадлежности для температуры как входные параметры (рисунок 6.12).

Рисунок 6.12 – Окно задания нечетких функций принадлежности для значений скорости вращения вентилятора

2. Задание правил вывода. Правила вывода в созданной компьютерной модели нечеткие правила вывода задаются при помощи вкладки EditRules. Окно редактора после задания правил вывода будет иметь вид, представленный на рисунке 6.13.

Рисунок 6.13 – Задание правил вывода

3. Получение отклика системы. Последовательность обработки нечетких для конкретного значения температуры можно просмотреть в окне просмотра правил ViewRules. На рисунке 6.14 представлена последовательность обработки нечетких знаний для температуры t=22 °C, при этом вентилятор кондиционера должен вращаться со скоростью v=520 об/мн.

Рисунок 6.14 – Обработка нечетких знаний в экспертной системе

Передаточную характеристику системы, т.е. зависимость скорости вращения кондиционера от температуры для рассматриваемой модели можно просмотреть при помощи команды ViewSuface (рисунок 6.15).

Рисунок 6.15 – Отклик системы

Контрольные вопросы к защите
1. Назовите и охарактеризуйте этапы осуществления нечеткого логического вывода?
2. Что такое фаззификация?
3. Каким набором параметров характеризуется лингвистическая переменная?
4. В чем отличие нечеткой переменной от лингвистической?
5. Назовите логические связки?
6. Приведите примеры лингвистических переменных?
7. Какие задачи необходимо решать, используя аппарат нечеткой логики?
Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1Рисунок 1 Заголовок 1 Заголовок 2 Заголовок 315

Приложенные файлы

  • doc 10794924
    Размер файла: 458 kB Загрузок: 7

Добавить комментарий