1626434812-e667f6b6e7e69d3a0798830a58e9075b (844135), страница 53
Текст из файла (страница 53)
Рис. 9.26. Выбор переменной для определения функций принадлежности. Система выведет окно редактора функций принадлежности для переменной КоотТетрега~цге (см. рис. 9.27). Рис. 9.27. Окно редактора функций принадлежиости. Базы данных Интеллектуальная обработка информации Редактор позволяет задавать кусочно-линейные функции принадлежности, определенные на множестве значений переменных типа "Гцгху 1прц1" и "Гцкгу ОШры1™. Функция задается опорными точками, которые соединяются отрезками.
Позиции точек задаются пользователем. Точку можно перетащить в другое место мышью, либо ввести ее координаты с клавиатуры. При необходимости опорные точки можно добавлять или удалять, В верхней части окна редактора функций принадлежности расположена строка состояния, в которой отображаются: 1) позиция выделенной точки по горизонтали и вертикали ~Х и У); 2) название нечеткого множества, которому соответствует выделенная функция принадлежности; 3) центр тяжести выделенной функции принадлежности ~СС).
В правой части окна расположена инструментальная панель с кнопками, используемыми для выполнения основных операций редактора. Ниже приведена таблица, в которой приведено назначение каждой из кнопок, кроме того, указаны соответствующие им сочетания клавиш и команд меню.
Кнопка ~пункт меню) Назначение сжать график по горизонтали вдвое Асйеспче/Еоогп... Афере/Хоош... растянуть график по горизонтали вдвое АфесОче/Уоот... растянуть график до размеров окна Афес6чЫЕоо~п... сжать график по вертикали вдвое Глава 9. Нечеткая логика и ее применение в экспертных системах 279 Афес1гче/Ро1п1 Ров111оп (г7) задать позицию опорной точки А11) ес11че/Хоай... растянуть график в два раза по вертикали Афес1гче/анвар 1о бгЫ выровнять позиции точек по сетке ЕЙ~/Бе!ес1 АП выделить все опорные точки, кроме крайних отобразить|скрыть сетку А111 ес1гче/ВЬЮ бгЫ Афес11че/СЬапде Ыа1... редактировать список функций принадлежности Афес11че/Яе1 ОгЫ...
задать параметры сетки скрыть все функции принадлежности, Афес1же/НЫе 1пас11~е кроме выделенной (Япй+Епгег) выделить предыдущую функцию Базы данных. Ингнеллектуалъная обработка информации 2аО выделить следующую функцию (Еп1ег) АфесЫеЛпзег~ Ро1 п1... (1ХБ) добавить новую точку По умолчанию для каждой переменной создается описание нечеткого множества "ОЕРАО Т", Функция принадлежности для него напоминает треугольник (см.
рис. [6~). Нам она не потребуется, однако сразу удалить его нельзя— для переменной должна быть задана хотя бы одна функция принадлежности. Для создания экспертной системы нам требуется определить три функции на интервале изменения КоогпТешрегашге: НфЬ, Хоггпа! и Ьою, Начнем с функции Н~ф. В меню "Ад)ес6че" (редактор функций принадлежности) выберитс команду "СЬапее Елз1..." (изменить набор). Нажмите кнопку "Иеи..." на появившейся панели. Система выведет окно диалога, в котором надо будет задать параметры новой функции (см. рис.
9.28). Рис. 9.28. Определение параметров новой функции принадлежности. В поле "Хате" введите имя функции — "Н1ф". Все остальные поля можно оставить без изменений, следует лишь обратить внимание на переключатели "Я~аре". Выбор одного из них позволяет задать вид функции; Тг1апд!е (треугольник) и ТгарекоЫ (трапеция). Тпапу)е отличается от Тгарею Ы числом опорных точек: у Тпапд)е их пять, а у ТгарекоЫ вЂ” шесть.
Для случая функции "Н1яЬ" больше подходит Тг1апя1е, Нажмите "ОК". В панели со списком функций принадлежности щелкните мышкой на кнопке "Оопе" (готово). График полученной функции представлен на рис. 9.29, Глава 9. Нечеткая логика и ее применение в экспертных системах 2В1 Рис. 9.29. Первоначальный график функции "НфЬ". В том виде, в котором он изображен на рис. 9.23, график сильно отличается от эталона (см. рис. 9.12).
Наша задача — подправить его. Проще всего это сделать, вручную задав координаты опорных точек. Чтобы изменить позицию точки, выделите ее, например, щелкнув на ней мышью, нажмите клавишу Г7 и введите новые значения Х и У в появившемся окне. Для изменения графика можно рекомендовать следующую последовательность действий. 1) Щелкните мышью на крайней правой опорной точке, нажмите Е7 и задайте новые координаты: Х = 60, т = 1. 2) Удалите вторую справа опорную точку. Для этого надо выделить ее, нажать клавишу Пе!. 3) Выделите вторую точку слева и измените ее координаты.
Новое значение Х должно быть равно 20. Теперь функция Н1ф соответствует графику на рис. 9.12. Для переменной КоотпТегпрегагцге надо определить еще 2 функции принадлежности: Иоппа1 и 1 о~ч. При их задании надо ориентироваться на графики на рис. 9.11 (для Моппа!) и рис. 9.10 (для 1 ои), Порядок действий при их определении мало отличается от описанного выше.
Следует лишь учесть, что все функции для одной переменной отображаются на одном графике. Функция, выбранная в данный момент, отображается сплошной линией. Остальные показаны пунктиром (см. рис. 9.30). гвг Базы данных. Интеллектуальная обработка информации н|яь Рис 9.30. Функции принадлежности дтя переменной Яоот Тетрекагит Далее требуется задать нечеткие подмножества для переменной РапЯреед. Как и в случае переменной КоогпТетрегагвге, мы будем использовать 3 множества: Н1дЬ (высокая), Хоппа! (средняя) и 1.ов (низкая). В меню "Рго3есг- (проект) выполните команду "Афеспчеа Ког..." (функции принадлежности для).
Выберите переменную ГапБреег1 и щелкните на кнопке "Ейг" (редактировать), При задании функций надо руководствоваться их графиками, представленными на рис. 9.15 (Н1яЬ), рис. 9.14 (1Чоппа1) и рис. 9.13 (1.ои). Конечный результат должен соответствовать рис. 9.31. Коппа! Рис. 9.31. Функции принадлежности дяя переменной Еап5реесЕ ,Глава 9. Нечеткая логика и ее примекеиие в экспертных системах 283 Наша система готова к работе, однако у нас нет ни комнаты с воздухом, ни вентилятора. Все это можно имитировать средствами СцЬ1Са!с.
Во-первых, надо задать начальные условия — температуру в комнате до начала работы системы. Удобнее всего это делать на шаге инициализации (см. рис. 9.21). Для того чтобы задать операции, которые выполняются на этом шаге, в меню "Рго3ес(" 1проект) выберите команду "1п!па!Ыапоп" ~инициализация).
Появится окно редактора„в котором надо будет записать выражения на языке программирования СЕ1 (СцЬ1Са!с Ехргеааюп Ьапвцаце). Внесем некоторый элемент случайности. Пусть начальная температура будут определяться выражением, приведенным на рис. 9.32. Рис. 9.32. Выражение для инициализации экспертной системы. В этом выражении использована встроенная функция СЕЬ вЂ” кацаз1апо, генерирующая случайные значения, подчиняющиеся нормальному распределению с нулевым средним и единичной дисперсией.
Во-вторых„надо задать отклик температуры в комнате на изменение скорости вращения вентилятора, Можно воспользоваться, например, правилом, представленным на рисунке 9.33. Оно предполагает возможность установления равновесия между температурой и скоростью вращения вентилятора и вместе с тем учитывает действие случайных факторов. Отклик удобнее всего вычислять на этапе моделирования (см. рис.
9.21). Рис. 9.33. Выражение для отклика температуры в комнате на изменение скорости вращения вентилятора. Чтобы ввести это выражение, надо выполнить команду "81пш!а1юп" (моделирование) в меню "Рго3ес1" (проект), а затем записать его окне редактора. Можно запустить нашу экспертную систему уже сейчас, однако мы не увидим результатов ее работы, Чтобы проследить, как она функционирует в 2о4 Базы данных.
Интеллектуальная обработка информации Рис. 9.34. Панель задания параметров графина. Нечеткая экспертная система начала работать. На графике видно, что температура изменяется в окрестностях некоторого оптимального значения. Это динамике„надо отобразить на графике изменение нужных нам переменных во времени.
Интересно было бы понаблюдать, как меняешься температура в комнате при работе системы. В меню "Рго1ес1" (проект) выберите команду "Р1оЬ..." (графики), Появится окно со списком графиков, которые строит система в процессе функционирования. Нажмите кнопку "Меж" (новый график). Выберите его тип — "Япр СЬаг~ — Р1о1 Чаг1аЫеа Ада1пя Т|те" (график зависимости переменных от времени). СпЫСа1с выведет окно, в котором нужно будет задать параметры графика (см.
рис. 9.34). Введите в поле "Тй!е" название графика — ТегпрегаШге. Определить интервал отображения значений температуры от 5'С (поле "У Яса1е 1.ою") до 60"С (поле "У Бса1е Н1ф"). Выберите название переменной КоотТетрегааге в первой пустой строчке (см. рис. 9.34). Задайте цвет и вид точки, которыми будет отображаться график. Нажмите "ОК". В панели со списком графиков щелкните мышкой на кнопке "0опе" (готово). Глава У. Нечеткая логика и ее приненение в экспертных сисмымах 385 значение мы косвенно определили при задании функций принадлежности для температуры воздуха в комнате.
Понаблюдаем, как ведет себя система в начале работы. Остановим ее. Для этого в меню "Ехесц1е" (выполнение) выберем команду "Теппша1е" (прервать работу) Запустим пошаговое выполнение нашей экспертной системы. Этот режим инициируется в СпЫСа!с клавишей ГЗ. По этой же клавише выполняется одна итерация цикла, представленного на рис. 9.21. На рис. 9.35 показан график, который был получен после нескольких итераций.
Рис. 9.35. График теьтературы. Представляет интерес сравнение нашей системы с какой-нибудь традиционный схемой терморегуляции. Сравним ее с термостатом — устройством, которое будет включать вентилятор при превышении температурой некоторого порога (в нашем случае 20'С). Введем две дополнительных переменных: 1) Увца!РапБ — скорость врашения обычного вентилятора; 2) УвцаИоошТ вЂ” температура воздуха в комнате для схемы охлаждения с термостатом. Обе переменные будут иметь тип "Тешрогагу". Для их добавления надо в меню "Рго1ес1" (проект) выбрать пункт "УапаЫея..." (переменные). Не забудьте правильно указать их тип в панели "ЕЙ1 УапаЫе" (редактировать переменную).