Fuzzy logic matlab
Matlab Fuzzy Logic Toolbox > Построение обучающей выборки
Особенностью нейронных сетей является то, каким образом происходит обработка данных. При использовании стандартного алгоритма обратного распространения ошибки сеть «видит» и анализирует данные исходной матрицы рядами. Чтобы нейронная сеть смогла «увидеть» тренды, нужно представить данные таким образом, чтобы в каждой строке обучающей матрицы отражалась «история» временного ряда т.е. содержалась информация как о текущем наблюдении, так и о прошлых.
При решении нашей задачи мы будем учитывать пятидневную историю, т.е. все изменения, которые происходили в течение предшествующей недели. Здесь нужно заметить, что попытки рассматривать более длинную «историю» приводят к сокращению числа наблюдений в обучающей выборке и к одновременному неоправданному ее росту «вширь», что может отрицательно повлиять на способность сети к обучению.
Теперь небходимо преобразовать имеющуюся информацию в вид понятный и содержательный для сети. для сети.
Невозможно получить сколько-нибудь удовлетворительный результат с помощью нейронных сетей, подав на вход необработанные данные. Для работы с нейронными сетями важно не только тщательно отобрать показатели: необходимо также представить их в определённой, понятной для сети форме.Можно выделить два основных правила , согласно которым формируется обучающая выборка.
Нейронные сети лучше реагируют не на исходные данные, а на ряды приращений. Этот факт можно объяснить тем, что в нейронной сети задаётся диапазон значений, определяемый наибольшим и наименьшим значениями из обучающей выборки. Если этот диапазон велик , а сами значения при переходе от наблюдения к наблюдению изменяется на незначительную по сравнению с диапазоном величину, то нейронная сеть попросту не придаст должного значения этим изменениям . Кроме того , использование при работе с сетью приращений позволяет получать прогноз в случае , когда абсолютные значения переменных, на основе которых строится прогноз, выходят за пределы диапазона установленного при обучении.
Таким образом, чтобы оптимизировать обучение и работу сети,преобразуем все исходные ряды в ряды приращений следующим образом:
Где p[i] – значение показателя p в момент времени i.
Полученная таким образом обучающая выборка является слишком объёмной, чтобы приводить её здесь, т.к. она содержит более 200 строчек. Имеем пять входных переменных и одну выходную.
Сохраним обучающую выборку, которая была составлена в предыдущем разделе, в отдельный файл с именем yena(51).dat. После этого с помощью команды anfisedit из командной строки MATLAB запускаем ANFIS-редактор и загружаем этот файл.
Сгенерируем систему нечеткого вывода типа Сугено нажатием кнопки Generate FIS. . В появившемся окне зададим для каждой входной переменной по 3 функции принадлежности типа gaussmf. Выбор функции принадлежности здесь обусловлен тем, что мы предполгаем нормальное распределение для случайной величины(Курс Йены), которое как раз определяется гауссовской функцией по Теории Вероятности. Для выходной переменной зададим функцию принадлежности const.
Для обучения гибридной сети выберем метод backpropa(обратного распространения ошибки) с уровнем ошибки 0 и количеством циклов 100. Запустим обучение гибридной сети.
Как можно видеть из рисунка, по результатам обучения средняя ошибка составляет всего лишь приблизительно 0.007
MATLAB и системы фаззи-регулирования
Широкому распространению фаззи-систем управления в немалой степени способствует программная система MATLAB, в составе которой имеется пакет программ по фаззи-логике.
Fuzzy Logic Toolbox позволяет создавать и редактировать фаззи-системы управления с нечеткой логикой, называемые в терминах программной системы MATLAB – Fuzzy Inference System или FIS. Эти системы можно создавать, используя как графические инструменты, так и команды рабочего окна MATLAB.
Fuzzy Logic Toolbox также позволяет управлять созданными программами и непосредственно без Simulink. Это осуществляется с помощью автономного Fuzzy Inference Engine, который работает с нечеткими системами, сохранёнными в MATLAB. Можно также настраивать Fuzzy Logic Toolbox, используя его для совместной работы с другими пакетами типа Control System (Системы управления), Neural Network (Нейросети) или Optimization Toolbox (Оптимизация).
5.1. Общие сведения о Fuzzy Logic Toolbox
Одна из целей пакета Fuzzy Logic Toolbox состоит в облегчении понимания и создания фаззи-систем управления. Фаззи-систему можно создавать, используя командную строку главного окна MATLAB. Однако намного проще сделать это графически с помощью инструментов графического интерфейса пользователя (GUI или ГИП), имеющихся в Fuzzy Logic Toolbox. Имеются пять инструментов GUI для создания, редактирования и наблюдения фаззи-систем в среде Fuzzy Logic Toolbox (рис. 15). Это Fuzzy Inference System Editor или FIS Editor – Редактор фаззи-инференционной системы, Membership Function Editor — Редактор функций принадлежности, Rule Editor — Редактор правил, Rule Viewer — Просмотр правил и Surface Viewer — Просмотр поверхности (пространства управления). Эти инструменты GUI динамически связаны между собой: используя один из них в FIS и производя изменения, можно затем увидеть их действия в других инструментах GUI. В дополнение к этим пяти инструментам Fuzzy Logic Toolbox включает в себя графический редактор GUI ANFIS, который используется для создания и анализа Sugeno-типа адаптивных нейросистем с нечеткой логикой – adaptive neuro-FIS (ANFIS).
FIS редактор решает проблемы верхнего уровня системы: сколько входных и выходных переменных и каковы их имена?
Fuzzy Logic Toolbox не имеет ограничений по числу входов фаззи-системы – все зависит от доступной памяти компьютера.
Membership Function Editor используется для того, чтобы определить виды всех функций принадлежности, связанных с каждой переменной.
Rule Editor используется для редактирования списка правил, который определяет функционирование фаззи-системы.
Rule Viewer и Surface Viewer используются только для просмотра результатов, но не редактирования фаззи-системы. Rule Viewer показывает диаграмму функционирования. Используя его в качестве диагностического средства, можно увидеть, например, какие правила активны, или как индивидуальные функции принадлежности влияют на результаты. Surface Viewer используется для показа зависимости выхода от одного или двух из входов системы, то есть показывается диаграмма поверхности пространства управления системы. Все пять инструментов GUI могут взаимодействовать и обмениваться информацией между собой. Любой из них может считывать и сохранять данные в рабочем пространстве MATLAB и на жестком диске компьютера.
5.2. Построение систем с использованием Fuzzy Logic Toolbox
Рассмотрим порядок создания фаззи-системы на примере системы регулирования уровня жидкости, описанной выше. Построение системы начинают с определения количества входов и выходов в редакторе свойств фаззи-системы – FIS Editor. Для его вызова необходимо в рабочем окне MATLAB ввести команду fuzzy с указанием редактируемой (созданной ранее) FIS регулирования уровня — tank , т.е. fuzzy tank.
Окно редактора FIS Editor показано на рис. 16. На этой диаграмме указываются названия всех входов (input) и выходов (output). Для данной системы это – отклонение уровня (level), скорость изменения уровня (rate), скорость перемещения задвижки (valve). Ниже диаграммы — название системы (tank) и типа используемого вывода (mamdani или sugeno). Еще ниже указаны методы фаззи-процедур:
операции “И” (AND) – произведения (product –prod);
операции “ИЛИ”(OR) – вероятностного ИЛИ (probabilistic or – probor);
Fuzzy Logic Toolbox поддерживает два встроенных метода AND – min (minimum) и prod (product); два встроенных метода OR – max (maximum) и probor – probabilistic or, определяемого формулой алгебраического суммирования вероятностей probor(a,b) = a + b – ab).
Для объединения или агрегации всех правил Fuzzy Logic Toolbox использует три встроенных метода: max (maximum), probor (probabilistic or) и sum (просто сумма всех выходов установленных правил).
Для дефаззификации Fuzzy Logic Toolbox использует пять встроенных методов: centroid (координата – абсцисса – центра тяжести фигуры под кривой), bisector (координата – абсцисса – делящая площадь фигуры под кривой пополам), mom (mean of the maximum – середина интервала максимальных значений ), lom (largest of maximum – верхняя граница интервала максимальных значений) и som (smallest of maximum – нижняя граница интервала максимальных значений). Для иллюстрации на рис. 17 приведены различные результаты дефаззификации, проведенной по перечисленным методам. Значения выходной величины у на нижнем графике рис. 17 составляют для рассмотренных методов дефаззификации 2, 3.3, 3.7, 5, 8 для методов дефаззификации som, centroid, bisector, mom и lom, соответственно.
Наиболее часто используемым методом дефаззификации является метод centroid, который определяет абсциссу центра тяжести плоской фигуры под кривой.
При необходимости можно применять и другие методы, заданные самим пользователем.
Кнопка помощи Help вызывает окно помощи MATLAB. В нем дается описание FIS Editor и работы с ним.
Для задания функций принадлежности переменных FIS используется редактор Membership Function Editor, который вызывается пунктом Edit membership functions меню View или двойным щелчком по одному из входов или выходов диаграммы FIS.
В этом редакторе щелчком мыши по блоку в левой части выбирается переменная и ее функции принадлежности появляются на графике в правой верхней части окна редактора. При этом в левой нижней части отражаются имя (Name) Level, тип (Type) Input, границы изменения (Range) [-1 1] и отображения (Display Range) [-1 1] активизированной переменной.
Fuzzy logic matlab
Fuzzy Logic Toolbox используется в системе MATLAB и представляет собой пакет прикладных программ, относящихся к теории нечетких множеств и позволяющих конструировать так называемые нечеткие экспертные и/или управляющие системы.
Основные возможности пакета:
• построение систем нечеткого вывода (экспертных систем, нечетких регуляторов, аппроксиматоров зависимостей);
• построение адаптивных нечетких систем (нечетких нейронных сетей);
• интерактивное динамическое моделирование в Simulink.
Пакет позволяет работать в режиме графического интерфейса, в режиме командной строки, а также с использованием блоков и примеров пакета Simulink.
5.9.2. Состав графического интерфейса
В состав средств Fuzzy Logic Toolbox входят следующие основные программы, позволяющие работать в режиме графического интерфейса:
• редактор Fuzzy Inference System Editor (FIS Editor или FIS-редактор) вместе со вспомогательными программами: редактором функций принадлежности (Membership Function Editor), редактором правил (Rule Editor), просмотрщиком правил (Rule Viewer) и про-смотрщиком поверхности отклика (Surface Viewer);
• редактор нечетких нейронных систем ANFIS Editor или AN FIS-редактор);
• программа нахождения центров кластеров (Clustering -кластеризация).
Набор этих программ предоставляет пользователю максимальные удобства для создания, редактирования и использования различных систем нечеткого вывода. Далее остановимся только на вопросах построения, обучения и использования нечетких нейронных сетей с помощью пакета Fuzzy Logic Toolbox.
5.9.3. Создание нечеткой нейронной сети
Графический интерфейс нечетких нейронных систем вызывается функцией anfisedit из режима командной строки. Исполнение функции приводит к появлению окна редактора нечетких нейронных систем (ANFIS Editor), вид которого приведен на рис. 5.87.
С помощью данного редактора осуществляется создание или загрузка структуры нечеткой нейронной сети, просмотр структуры, настройка ее параметров, проверка качества функционирования такой сети.
Рассмотрим пример создания нечеткой нейронной сети, отображающей зависимость между переменными х и у, заданную с помощью табл. 5.4.
Рис. 5.87. Окно редактора нечеткой нейронной сети
Создание структуры, настройка параметров и проверка осуществляются по обучающей (Training), проверочной (Checking) и тестирующей (Testing) выборкам, которые предварительно должны быть представлены в виде текстовых фалов (с расширением .dat и разделителями-табуляциями), первые колонки которых соответствуют входным переменным, а последняя — единственной выходной переменной; количество строк в таких файлах равно количеству образцов (примеров). Так, обучающая выборка, сформированная по табл. 5.4, представляется в следующем виде:
Строгих рекомендаций по объемам этих выборок не существует, поэтому следует исходить из принципа «чем больше, тем лучше». Обучающая и проверочная выборки непосредственно
задействуются в процессе настройки параметров нечеткой нейронной сети. Проверочная выборка используется для определения переобучения сети, при котором ошибка для обучающей последовательности стремится к нулю, а для проверочной — возрастает. Тестовая выборка применяется для проверки качества функционирования обученной сети.
Пункты меню File и View, идентичны пунктам FIS-редактора за тем исключением, что здесь работа может происходить только с алгоритмом нечеткого вывода Sugeno. Пункт меню Edit содержит единственный подпункт Undo (Отменить выполненное действие).
Набор опций Load data (Загрузить данные) в нижней левой части окна редактора включает:
• Туре — тип загружаемых данных (Training — для обучения, Testing — для тестирования, Checking — для проверки, Demo — демонстрационные);
• Disk (Диск) или Workspace (Рабочая область) — место, откуда должны загружаться данные.
К этим опциям относятся два действия: Load Data. (Загрузить данные) и Clear Data (Стереть введенные данные).
Следующая группа опций ANFIS-редактора объединена под именем Generate FIS (Создание нечеткой системы вывода). Данная группа включает в себя опции:
• Load from disk — загрузка структуры системы с диска;
• Load from worksp. — загрузка структуры системы из рабочей области MATLAB,
• Grid partition — разбиение областей определения входных переменных (аргументов) на подобласти независимо для каждого аргумента;
Subtract clustering или Sub. clustering — разбиение всей области определения входных переменных (аргументов) на подобласти в комплексе для всех аргументов;
• Generate FIS — создание нечеткой системы с точностью до ряда параметров.
Следующая группа опций Train FIS (Обучение нечеткой системы вывода) позволяет определить метод обучения (Optim. Method) нечеткой нейронной сети: гибридный (Hybrid) или обратного распространения ошибки (Backpropagation); установить уровень текущей суммарной, по всем образцам, ошибки обучения (Error Tolerance), при достижении которого процесс обучения заканчивается; количество циклов обучения (Epochs). Процесс обучения заканчивается либо при достижении уровня ошибки, либо при проведении заданного количество циклов.
Опция Train Now позволяет начать процесс обучения нечеткой нейронной сети
В окне AN FIS-редактора выдаются данные (ANFIS Info ) о системе количество входов, выходов, функций принадлежности входов, нажатие кнопки Structure (Структура) позволяет увидеть структуру сети в виде, аналогичном представленному на рис. 3.18 Кнопка Clear (Очистить) позволяет стереть все результаты
Опции Test FIS позволяют провести проверку и тестирование созданной и обученной системы с выводом результатов в виде графиков (для обучающей выборки — Training data, тестирующей выборки — Testing data и проверочной выборки — Checking data) Кнопка Test Now позволяет запустить указанные процессы
Работу с редактором рассмотрим на примере восстановления зависимости по данным табл 5.4 Предположим, что эти данные сохранены в файле Proba dat Создание и проверку нечеткой нейронной сети проведем по этапам
1) В окне ANFIS-редактора выберем тип загружаемых данных Training и нажмем кнопку Load data В окне диалога укажем местоположение и имя файла Его открытие приводит к появлению в графической части окна редактора набора точек, соответствующих введенным данным (рис. 5.88)
Рис. 5.88 Окно ANFIS-редактора после загрузки обучающей выборки
2) В группе опций Generate FIS по умолчанию активизирована опция Grid partition Не будем ее изменять и нажмем кнопку Generate FIS, после чего появится диалоговое окно (рис. 5.89) для задания числа и типов функций принадлежности Сохраним все установки по умолчанию, нажав ОК Произойдет возврат в основное окно ANFIS-редактора Теперь структура нечеткой нейронной сети создана, и ее графический вид можно просмотреть с помощью кнопки Structure (рис. 5.90)
Рис. 5.89 Окно задания функций принадлежности
3) Перейдем к опциям Train FIS Не будем менять задаваемые по умолчанию метод настройки параметров (Hybrid) и уровень ошибки (0), но количество циклов обучения изменим на 40, после чего нажмем кнопку начала процесса обучения (Train Now) Получившийся результат в виде графика ошибки сети в зависимости от числа циклов обучения, из которого следует, что обучение фактически закончилось после пятого цикла, представлен на рис. 5.91
4) Теперь нажатием кнопки Test Now можно начать процесс тестирования обученной сети, но, поскольку использовалась только обучающая выборка, ничего особенно интересного ожидать не приходится Действительно, выходы обученной сети практически совпадают со значениями обучающей выборки
(кликните для просмотра скана)
5) Сохраним разработанную нечеткую нейронную сеть с именем Probalfis и, для исследования разработанной системы средствами FIS-редактора, из командной строки MATLAB выполним команду Fuzzy, а затем через пункты меню File/Open FIS from disk. откроем созданный файл. С созданной сетью можно теперь выполнять все приемы редактирования и исследования.
5.9.4. Впечатления от работы с пакетом
Что можно сказать про эффективность использования нечетких нейронных сетей и AN FIS-редактора? В данном случае используется только один алгоритм нечеткого вывода — Sugeno (нулевого или первого порядков), может быть задана только одна выходная переменная, всем правилам приписывается один и тот же единичный вес. Кроме того, возникают значительные проблемы при количестве входных переменных большим, чем 5-6.
Несомненными достоинствами пакета является практически полная автоматизация процесса создания нечеткой нейронной сети, возможность просмотра сформированных правил и придания им лингвистической интерпретации, что позволяет рассматривать аппарат нечетких нейронных сетей как средство извлечения знаний из баз данных и существенно отличает данные сети от классических нейронных.
Рекомендуемые области применения: построение аппроксиматоров зависимостей по экспериментальным данным, систем классификации, извлечение знаний.
5.10. Совсем все просто
Хотелось бы, чтобы после прочтения данной главы у читателя сложилось бы совершенно правильное впечатление об относительной легкости работы с программами-нейроимитаторами. Если такую задачу авторам удалось решить, значит, их труд не пропал даром.
Fuzzy logic matlab
Условия труда как совокупность санитарно-гигиенических, психофизиологических элементов производственной среды оказывают непосредственное воздействие на здоровье и работоспособность человека. Наряду с производственными процессами и работами, характеризующимися относительным комфортом, есть еще и такие, где человеку приходится работать в неблагоприятных условиях.
Чтобы уменьшить воздействие вредных факторов производственной среды, необходима разработка комплекса мероприятий, позволяющих предотвратить резкое снижение работоспособности, возникновения профессиональных заболеваний и случаев производственного травматизма, с объективной оценкой влияния условий труда на человека. Наиболее полно характеризует это влияние категория тяжести работы, которая отражает совокупное воздействие всех элементов, составляющих условия труда, на работоспособность человека, его здоровье, жизнедеятельность. Понятие тяжести труда и напряженности одинаково применимо как к умственному, так и к физическому труду. О степени тяжести труда можно судить по реакциям и изменениям в организме человека, которые служат показателями качества условий труда [1–3].
В табл. 1 приведены категории оценки условий труда на рабочих местах.
При определении интегрального показателя в расчет принимаются биологически значимые элементы условий труда, вызывающие пограничные и патологические изменения и реакции организма работающего.Интегральный показатель категории тяжести труда определяется по формуле
(1)
где – интегральный показатель категории тяжести труда; Kоп – определяющий («ведущий», имеющий наибольший балл) элемент условий труда на рабочем месте; L – средняя арифметическая из суммы всех биологически значимых элементов условий труда, исключая определяющий.
Категории оценки условий труда на рабочих местах по санитарно-гигиеническим факторам
Оценка факторов условий труда, баллы
Температура воздуха, °С
Относительная влажность воздуха, %
Скорость движения воздуха, м/с
Токсичные вещества (кратность превышения ПДК)
Промышленная пыль (кратность превышения ПДК)
Вибрация, уровень колебательной скорости (кратность превышения ПДУ)
Шум, уровень звука, дБА
При работе операторов горных машин сочетаются виды деятельности различной степени тяжести и напряженности трудового процесса. В работе [4] произведена оценка показателей условий труда машинистов экскаваторов с учетом особенностей условий труда на постоянном рабочем месте в кабине экскаватора (табл. 2). Предлагаемая система оценок не является нормативной.
Категория тяжести труда машиниста экскаватора определяется в зависимости от величины интегральной количественной оценки Uт, которая рассчитывается по формуле
(2)
где – средняя арифметическая балльная оценка единичных показателей, формирующих тяжесть труда.
(3)
где xjσ, kjσ – оценка в баллах и коэффициент весомости j-го биологически значимого показателя условий труда соответственно; n – число показателей. За биологически значимые показатели принимаем те, у которых произведение xjσ, kjσ≥1,5.
По величине интегрального показателя условиям труда (работе) присваивается та или иная категория тяжести труда (табл. 3).
Карта аттестации рабочего места машиниста экскаватора
Оценка в баллах
Температура воздуха, °С:
Запыленность (кратность превышения ПДК)
Эквивалентный уровень звука, дБА
Освещенность забоя карьерных экскаваторов, лк
где G – процедура образования новых термов с использованием связок «и», «или» модификаторов типа «очень», «не», «более» и других, а М – процедура задания на области определения X = [18 – 38 о С] нечетких переменных; = , = , = , а также соответствующих нечетких множеств термов из G (Т) в соответствии с порядком трансляции нечетких связок и модификаторов (рис. 1).
Вторая входная лингвистическая переменная «влажность воздуха» задается аналогично (рис. 2) и имеет вид
ξ2 – «влажность» = ( , [30 – 100 %]).
Третья входная лингвистическая переменная «скорость движения воздуха» (рис. 3) формализуется в виде
ξ3 – «скорость движения воздуха» = ( , [0 – 2 м/с]).
Четвертая входная лингвистическая переменная «уровень шума (звука) в кабине машиниста ЭКГ» (рис. 4) формализуется в виде:
ξ4 – «уровень шума» = ( , [0 – 120 дБА]).
Рис. 1. График функций принадлежности соответствующих термов входной лингвистической переменной «температура воздуха»
Рис. 2. График функций принадлежности соответствующих термов входной лингвистической переменной «влажность воздуха»
Рис. 3. График функций принадлежности соответствующих термов входной лингвистической переменной «скорость движения воздуха»
Рис. 4. График функций принадлежности соответствующих термов входной лингвистической переменной «уровень шума»
Для задания выходной лингвистической переменной необходимо дать следующее пояснение. На основе работ Всесоюзного научно-исследовательского института технической эстетики (ВНИИТЭ) установлена концепция структурной схемы эргономических показателей карьерных экскаваторов. Обитаемость на рабочем месте является одним из основных показателей, входящим в данную схему. Она характеризуется – запыленностью; уровнем шума; уровнем вибрации на сиденье машиниста; параметрами микроклимата; освещенностью забоя; санитарно-бытовым обеспечением и т.п.
Поэтому считаем целесообразным в качестве обобщенной характеристики по оценке состояния условий труда использование в качестве выходной лингвистической переменной – «обитаемость», которая может быть задана в виде
ω – «обитаемость» = ( , [0 – 100 %]).
Оценка адекватности построенной системы нечеткого вывода для определения уровня обитаемости в кабине машиниста экскаватора, для частного случая, когда текущая температура воздуха в кабине будет составлять 24 оС, влажность воздуха – 60 %, скорость движения воздуха равна 0,8 м/с и уровень шума равен 80 дБА. В результате процедуры нечеткого вывода значение выходной переменной «обитаемость» составит 56,4 %. Полученное значение обитаемости говорит о средней комфортности работы машиниста в кабине экскаватора.
Вывод
Таким образом, в созданной модели упрощена процедура по оценке показателей условий труда и влияния вредных факторов на рабочих местах операторов горных машин. Использование в нечеткой модели действительных значений факторов, оказывающих вредное влияние на конкретном рабочем месте, позволит оперативно разработать и внедрить комплекс мероприятий по улучшению условий труда, а также сократить время при обеспечении сопоставимости результатам, полученным при проведении аттестации рабочих мест по условиям труда.
Реализация системы выбора в программе MatLab (пакете Fuzzy Logic)
Запустим MATLAB и для загрузки основного fis-редактора напечатаем слово fuzzy в командной строке. После этого откроется новое графическое окно, показанное на рисунке 2.1.
Программа автоматически создала безымянный файл, и выбрала систему типа mamdani, также программа автоматически добавила один входной и один выходной параметры, и присвоила им имена соответственно input 1 и output 1.
Рисунок 2.1 — Окно редактора FIS-Editor
Для реализации оценки эффективности пассажирских перевозок добавим еще два входных параметра. Для этого в меню Edit выбираем команду AddVariable. Input два. После чего получим:
Рисунок 2.2 — Окно редактора FIS-Editor
Переименуем входные и выходные переменные. Входные — это Speed, Time и Comfortable. Выходной параметр-это Efficiency. (рисунок 2.3). Для этого введем имена входов и выходов в поле Name, завершив ввод клавишей Enter.
Рисунок 2.3 — Входные и выходные переменные
Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке speed. Зададим диапазон изменения переменной speed. Напечатаем [20 30] в поле Range и нажмем Enter (рисунок 2.4)
Рисунок 2.4 — Функции принадлежности переменной speed
Зададим функции принадлежности переменной speed. Для оценки этой переменной будем использовать три терма с гауссовскими функциями принадлежности. В меню Edit выберем команду AddMFs… В появившемся диалоговом окне выбираем тип функции принадлежности gaussmfв поле MFtype и три терма в поле Number of MFs. После чего нажимаем Enter. Также зададим названия термов переменной speed. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (рисунок 2.4). Затем вводим наименование терма — «20» в поле Name и нажмем Enter. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности, и вводим наименование терма — «25» в поле Name и нажимаем Enter. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма — «30» в поле Name и нажимаем Enter. В результате получаем графическое окно, изображенное на рисунке 2.4.
Зададим функции принадлежности переменной time. Для лингвистической оценки этой переменной будем использовать три терма с гауссовскими функциями принадлежности. Для этого активизируем переменную time с помощью щелчка левой кнопкой мыши на блоке time. Зададим диапазон изменения переменной time. Для этого напечатаем [5 15] в поле Range и нажмем Enter (рисунок 2.5).
Рисунок 2.5 — Функции принадлежности переменной time
Затем в меню Edit выберем команду AddMFs…В появившемся диалоговом окне выбираем тип функции принадлежности gaussmf в поле MFtype и три терма в поле Number of MFs. После чего нажимаем Enter. По аналогии с переменной speed зададим следующие наименования термов переменной time: «5», «10», «15». В результате получим графическое окно, изображенное на рисунке 2.5.
Зададим функции принадлежности переменной comfortable. Для лингвистической оценки этой переменной будем использовать три терма с гауссовскими функциями принадлежности. Для этого в меню Editвыберем команду AddMFs…, и выбираем MFType — gaussmf, NumberofMF — 3, затем OK. Зададим диапазон изменения переменной comfortable. Для этого напечатаем [0 1] в поле Range и нажмем Enter (рисунок 2.6). По аналогии с переменной time зададим следующие наименования термов переменной: min, mid, max. В результате получим графическое окно, изображенное на рисунке 2.6.
Рисунок 2.6 — Функции принадлежности переменной comfortable
Зададим функции принадлежности выходного параметра efficiency. Для лингвистической оценки этой переменной будем использовать три терма с трапецеидальными функциями принадлежности. Для этого активизируем переменную efficiency помощью щелчка левой кнопкой мыши на блоке efficiency. Зададим диапазон изменения переменной efficiency. Для этого напечатаем [1 5] в поле Range и нажмем Enter (рисунок 2.7). Затем в меню Edit выберем команду AddMFs…В появившемся диалоговом окне выбираем три терма в поле NamberofMFs. После этого нажимаем Enter. По аналогии зададим следующие наименования термов переменной efficiency: «1», «2», «3», «4», «5».
Рисунок 2.7 — Функции принадлежности переменной efficiency
Перейдем в редактор базы знаний RuleEditor. Для этого выберем в меню Edit команду Editrules. Введем набор правил в базу знаний (рисунок 2.8). Для этого необходимо выбрать в меню нужное сочетание команд и нажать Addrule. Число приведенное в конце в скобках представляет собой весовой коэффициент для соответствующего правила.
Рисунок 2.8 — База знаний в RuleEditor после ввода правил
- 1. If (speed is 20) and (time is 5) and (comfortable is min) then (efficiency is 3) (1);
- 2. If (speed is 20) and (time is 5) and (comfortable is mid) then (efficiency is 3) (1);
- 3. If (speed is 20) and (time is 5) and (comfortable is max) then (efficiency is 4) (1);
- 4. If (speed is 20) and (time is 10) and (comfortable is min) then (efficiency is 2) (1);
- 5. If (speed is 20) and (time is 10) and (comfortable is mid) then (efficiency is 3) (1);
- 6. If (speed is 20) and (time is 10) and (comfortable is max) then (efficiency is 3) (1);
- 7. If (speed is 20) and (time is 15) and (comfortable is min) then (efficiency is 1) (1);
- 8. If (speed is 20) and (time is 15) and (comfortable is mid) then (efficiency is 2) (1);
- 9. If (speed is 20) and (time is 15) and (comfortable is max) then (efficiency is 3) (1);
- 10. If (speed is 25) and (time is 5) and (comfortable is min) then (efficiency is 3) (1);
- 11. If (speed is 25) and (time is 5) and (comfortable is mid) then (efficiency is 4) (1);
- 12. If (speed is 25) and (time is 5) and (comfortable is max) then (efficiency is 5) (1);
- 13. If (speed is 25) and (time is 10) and (comfortable is min) then (efficiency is 3) (1);
- 14. If (speed is 25) and (time is 10) and (comfortable is mid) then (efficiency is 4) (1);
- 15. If (speed is 25) and (time is 10) and (comfortable is max) then (efficiency is 4) (1);
- 16. If (speed is 25) and (time is 15) and (comfortable is min) then (efficiency is 3) (1);
- 17. If (speed is 25) and (time is 15) and (comfortable is mid) then (efficiency is 4) (1);
- 18. If (speed is 25) and (time is 15) and (comfortable is max) then (efficiency is 3) (1);
- 19. If (speed is 30) and (time is 5) and (comfortable is min) then (efficiency is 3) (1);
- 20. If (speed is 30) and (time is 5) and (comfortable is mid) then (efficiency is 5) (1);
- 21. If (speed is 30) and (time is 5) and (comfortable is max) then (efficiency is 5) (1);
- 22. If (speed is 30) and (time is 10) and (comfortable is min) then (efficiency is 4) (1);
- 23. If (speed is 30) and (time is 10) and (comfortable is mid) then (efficiency is 4) (1);
- 24. If (speed is 30) and (time is 10) and (comfortable is max) then (efficiency is 5) (1);
- 25. If (speed is 30) and (time is 15) and (comfortable is min) then (efficiency is 3) (1);
- 26. If ( (speed is 30) and (time is 15) and (comfortable is mid) then (efficiency is 4) (1);
- 27. If (speed is 30) and (time is 15) and (comfortable is max) then (efficiency is 4) (1);
Посмотрим нечеткий логический вывод системы. Для этого выберем из меню View команду Rules и посмотрим логический вывод для разных сочетаний входных параметров (Рисунок 2.9).
Рисунок 2.9 — Визуализация нечеткого логического вывода в RuleViewer
Произведём несколько числовых экспериментов. Для этого зададим, например, 4 тестовых условия:
- 1. средняя скорость движения автобуса = 20, время ожидания автобуса на остановочных пунктах = 11, комфортность = 0.5. В результате получаем следующее значение экспертной оценки эффективности = 2.93.
- 2. средняя скорость движения автобуса = 27, время ожидания автобуса на остановочных пунктах = 8, комфортность = 0.3. В результате получаем следующее значение экспертной оценки эффективности = 3.75.
- 3. средняя скорость движения автобуса = 30, время ожидания автобуса на остановочных пунктах = 6, комфортность = 0.8. В результате получаем следующее значение экспертной оценки эффективности = 4.5
- 4. средняя скорость движения автобуса = 20, время ожидания автобуса на остановочных пунктах = 15, комфортность = 0.1. В результате получаем следующее значение экспертной оценки эффективности = 1.54.
Результаты проведённых числовых экспериментов являются верными, что, в свою очередь, ещё раз подтверждает правильность работы разработанной нами экспертной системы определения оценки эффективности пассажирских перевозок.
Теперь посмотрим поверхности «вход — выход», которая соответствует синтезированной нечеткой системе, для этого выберем команду Viessurface меню Vies.
На рисунке 2.10 изображена поверхность «входы выход» в координатах «скорость — время — эффективность».
Рисунок 2.10 — Поверхность «входы выход» в окне SurfaceViewer в координатах «скорость — время — эффективность».
Из рисунка 2.10 видно, что при уменьшении времени ожидания автобуса на остановочных пунктах и увеличении скорости движения автобуса эффективность пассажирских перевозок увеличивается. При средних значениях входных параметров оценка эффективности равна около 4. Что в свою очередь является хорошей оценкой эффективности.
На рисунке 2.11 изображена поверхность «входы выход» в координатах «скорость — уровень комфорта — эффективность»
Рисунок 2.11 — Поверхность «входы выход» в окне SurfaceViewer в координатах «скорость — уровень комфорта — эффективность»
Из рисунка 2.11 видно, что при уменьшении значения уровня комфортности и скорости движения автобусов, параметр оценки эффективности будет падать. При средних значениях входных параметров эффективность принимает значения около 4. При высоких значениях уровня комфортности и скорости движения значения эффективности также будут принимать высокие значения.
На рисунке 2.12 изображена поверхность «входы выход» в координатах «время — уровень комфорта — эффективность».
Рисунок 2.12 — Поверхность «входы выход» в окне SurfaceViewer в координатах «время — уровень комфорта — эффективность».
Из рисунка 2.12 видно, что при уменьшении уровня комфорта и увеличении времени ожидания автобуса на остановочных пунктах параметр оценки эффективности резко падает и принимает низкие значения (но при этом не меньше 3). При средних значениях входных параметров эффективность также принимает значения равные 4. При высоких значениях уровня комфорта и наименьшим временем ожидания автобуса эффективность принимает высокие значения.
Таким образом, из разработанной экспертной системы следует, что оценка эффективности пассажирских перевозок зависит от таких входных данных как: средняя скорость движения автобусов, время ожидания автобусов на остановочных пунктах и уровня комфортности.
Но, для улучшения результатов возможно увеличение количества термов входных параметров.