Ярушкина Н.Г., Ястребова Н.Н., Ястребов И.С. Экспертная

advertisement
УДК 681.03
ЭКСПЕРТНАЯ СИСТЕМА АНАЛИЗА
ЭКОЛОГИЧЕСКОЙ БЕЗОПАСНОСТИ
Н.Г. Ярушкина1, Н.Н.Ястребова2, И.С.Ястребов3
В работе описываются основные принципы построения экспертных
систем и способ решения задачи анализа экологической
безопасности с помощью нового инструмента искусственного
интеллекта – иерархического нечеткого вывода.
Введение
В настоящее время большую актуальность приобретает использование
экспертных систем для решения объемных, трудно формализуемых задач
в различных предметных областях. Эти задачи характеризуются, как
правило, отсутствием или сложностью формальных алгоритмов решения,
неполнотой и нечеткостью, а иногда и нерепрезентативностью исходных
данных, нечеткостью конечных целей и условий ограничений при
принятии решений. Задача оценки состояния экологической безопасности
на предприятии – одна из таких.
Теоретические основы иерархического нечеткого вывода
В ходе решения задачи были проанализированы схемы нечеткого
вывода, для выбора наиболее адекватной условиям задачи (табл. 1).
Таблица 1. Сравнение схем нечеткого вывода
Название схемы
нечеткого вывода
Вид выходного
нечеткого
множества
Эталон
E.H.Mamdani, P.M.Larsen,
Y. Tsukamoto
M. Sugeno
Синглетон
1-ого порядка
2-ого порядка
1
2
3
1-го порядка
1-ого порядка
Отсутствие накопления
нечеткости в
иерархических
системах
+
Отсутствие
суммирования
одинаковых правил
при дефаззификации
+
-
+
+
+
+
-
432000, Ульяновск, ул. Сев.Венец, 32 ГОУ ВПО “УлГТУ”, JNG@ulstu.ru
432000, Ульяновск, ул. Сев.Венец, 32 ГОУ ВПО “УлГТУ”, Natali_0205@mail.ru
1200, Geneva, CERN, Ilia.Yastrebov@cern.ch
На основе этих данных был выбран нечеткий логический вывод по
Сугено, так как только он удовлетворяет всем поставленным условиям.
Применение иерархических нечетких баз правил позволило преодолеть
"проклятие размерности" (комбинаторный взрыв): при большом
количестве входов эксперту трудно описать причинно-следственные связи
в виде нечетких правил.
Другое преимущество иерархических систем заключается в том, что
они позволяют небольшим количеством правил адекватного описать
многомерные зависимости "входы - выход".
Существует два способа создания таких систем: c выполнением
фаззификации/дефаззификации промежуточных переменных и без
дефаззификации/фаззификации промежуточных переменных.
Для реализации в экспертной системе был выбран второй способ.
Оператор fuzzy ~xi  fuzzy( xi)  [ j , xi] (1) ставит в соответствие четкому
xi
числу нечеткое множество, содержащее число кортежей, равное числу
функций принадлежности, заданных для данной лингвистической
переменной. Результатом выполнения над фаззифицированным вектором
входных переменных X композиционного правила Л.Заде будет
множество: ~y   d ( x*)   d ( x*)     d ( x*) (2).
1
d1
2
d2
m
dm
Результирующее значение выхода y определяется как суперпозиция
линейных зависимостей, выполняемых в данной точке х * n-мерного
пространства. Для этого дефаззифицируем нечеткое множество ~
y.
~ ) (3)
Обозначим дефаззификацию функционалом: y  deFuzzy(y
Введем следующие обозначения:
l, l  1, k - слой, где k – общее число слоев. Ранее понятие слой
употреблялось только по отношению к нейронным сетям. Мы
подразумеваем под слоем следующее определение: слой – структурная
единица, содержащая все независимые задачи, которые могут
выполняться параллельно и результат выполнения одной не влияет на ход
вычисления других задач.
t l  1, ml - задача слоя l, где ml - общее число задач слоя l. Под
задачей мы подразумеваем атомарную расчетную единицу нечеткого
логического вывода, представляющую собой схему нечеткого логического
вывода по Сугено.
xtli , i  1, ntl - лингвистические переменные задачи t слоя l.
Тогда с помощью правила Заде мы можем вывести следующую
формулу:
~ lj n ~ (l  k ) j n
~y  ( A
({ xi }i 1 ), A({ xi
}i 1 )  R (l  k ) ({ xi(l  k ) j}in1, ~y(l  k ) j )) 
lj
(4)
 R l ({ x lji}in1, y(l  k ) j , ylj )
И продеффазифировав полученное нечеткое множество (4) выведем
общую формулу иерархического нечеткого вывода:
~
~
y  A({ xi }in1 )  R1 ({ x1i}in11,{ y1j}kj 1 )  R 2 ({ xi2}in11,{ y1j}kj 1,{ y 2j}kj 1 )   
 Rl ({ xli}in1,{ y mj}kj , m 1, y )
(5)
Теперь представим модель иерархического нечеткого вычисления в
виде следующей схемы (рис.1):
Вектор
входных
переменных
Преобразование в
нечеткую форму
(фаззификация)
Нечеткий
логический
вывод
Иерархичес
кие
базы
знаний
нет
i=N
да
Вычисление детерминированного результата (дефаззификация)
Вектор
выходных параметров
Рисунок 1. Модель нечетких вычислений
Алгоритм работы иерархического нечеткого логического вывода
примет вид:
1.Вектор входных переменных, используемых на всех шагах нечеткого
вывода ( x  x1 , x 2 , , x m ).
2. Преобразование входных переменных в нечеткую форму –
процедура фаззификации.
3. Цикл i:=1 to N do (где N – число шагов нечеткого вывода)
3.1. выполнить процедуру нечеткого логического вывода, с
использованием соответствующих переменных и базы правил.
3.2. if i=N then goto 4. (дефаззификация результата)
else нечеткое множество yi передать на вход процедуры
нечеткого логического вывода следующего уровня (i:=i+1).
4. Дефаззификация.
Данный алгоритм обеспечил нам следующие преимущества:
1. Выполняется без фаззификации/дефаззификации промежуточных
переменных, вследствие чего снижается вычислительная погрешность;
2. Использование в качестве базового алгоритма схемы Сугено
помогает избежать увеличения нечеткости нечетких множеств;
3. Позволяет работать с иерархическими базами данных и знаний;
4. Помогает преодолеть «проклятие размерности» и позволяет
описывать меньшим количеством правил зависимости в исходных данных.
Модель экологической безопасности
Структурная схема разрабатываемой экспертной системы представлена
на рис. 2.
Подсистема «экологическая
безопасность»
1.Исходные
данные
(экспертны
е оценки и
замеры,
лимитные
карты
по
выбросам)
2.
Блок
коррекции
3.
Интегральная
оценка
состояния
экологической
безопасности
предприятия
Подсистема «Экономическая
эффективность»
4.
Исходные
данные
(публичная
бухгалтерская
отчетность,
планы
производства)
6.
Получение
заключения об
экономическом
состоянии
предприятия
5.
Блок
коррекции
7. Получение заключения об экономическом состоянии предприятия и его
экологической безопасности (аналитическое заключение о рентабельности продукции с
учетом экологических издержек)
8. Блок принятия решения о перспективах дальнейшего развития или принятие
решения о ликвидации или консервации предприятия
Рисунок 2. Структурная схема модели
Исходными данными для экспертной системы эколого-экономического
анализа являются «бухгалтерский баланс» предприятия (форма №1),
«отчет о прибылях и убытках» (форма №2), экспертные оценки ценности
территории, на которой расположено предприятие, класс опасности
предприятия, закрепленный нормативными документами, показатели
выбросов и сбросов вредных веществ, данные по лимитам и нормативам
для этих веществ по предприятию. Система описана набором из 14
лингвистических
переменных,
которые
представляют
собой
аналитические показатели, полученные из исходных данных. На первом
слое – 6 задач, на 2 -2, и на 3 – 1.
Рассмотрим подробнее одну из подзадач: EcoSafety-Terra. Она
описана четырьмя лингвистическими переменными: BiologicValue,
CulturalValue, HistoricValue, PeopleValue, которые могут принимать
значения от 0 до 10. Для описания переменных введены три терма
{«Low», «Medium», «High»}, описывающие значения этой переменной.
Значение степеней принадлежности вычисляем
по формуле:
r
r r
i  ( 1  2    1    n ) 1 , i  1, n .
ri ri
ri
Наилучшим образом отражать данные зависимости будут
трапециевидные функции принадлежности (рис. 3).
Рисунок 3. Функции принадлежности переменных EcoSafety-Terra
Математическая нечеткая модель оценки экологической безопасности
будет выражаться следующими формулами:
Первый слой:
~
4
11 4
y11  A({ x11
1. ~
i }i 1 )  R({ xi }i 1, y11)
~
4
12 4
y12  A({ x12
2. ~
i }i 1 )  R({ xi }i 1, y12)
~
2
13 2
y13  A({x13
3. ~
i }i 1 )  R({ xi }i 1, y13)
~
4
14 4
y14  A({ x14
4. ~
i }i 1 )  R({ xi }i 1, y14)
~
4
15 4
5. ~
y15  A({x15
i }i 1 )  R({ xi }i 1, y15)
~
3
16 3
6. ~
y16  A({ x16
i }i 1 )  R({ xi }i 1, y16)
Не выделяя задачи,
получим:
с помощью композиционного правила Заде
~
1
1 6
1 21
{~yi1}i61  A({ x1j}21
j 1 )  R ({ x j} j 1 ,{ yi }i 1 ) (6).
Второй слой:
~
1
1 6
2
1 6
2 2
1 21
{~
yi2 }i21  A({ x1j}21
j 1 )  R ({ x j} j 1 , { yi }i 1 )  R ({ yi }i 1 , { yi }i 1 ) (7).
Третий слой:
~
~
1
1 6
2
1 6
2 2
~
1 21
y  ( A({ x 3}), A({ x1j}21
j 1 )  R ({ x j} j 1 , { yi }i 1 )  R ({ yi }i 1 , { yi }i 1 )) 
(8).
 R 3 ( x 3 , { yi2 }i21 ), y )
Для получения результата нечеткое множество (8) необходимо
продефаззифицировать.
Практическая реализация
Широкое внедрение экспертных систем всегда сдерживалось целым
рядом причин, в числе которых отсутствие достаточно удобного и
мощного инструментария разработки прикладных систем и разнородность
технических и операционных сред пользователей. Основным средством
для создания переносимых приложений в настоящее время является язык
Java. Поэтому для реализации экспертной системы было решено
использовать следующее программное обеспечение: J2SE 6.0, Apache
Derby 10.2.2.0, Hibernate 3.2.0, Swing / AWT
Рассмотрим общую UML – диаграмму нашего приложения (рис.4.).
Пакет JFuzzy - это управляющая часть, он является главным модулем
программы и отвечает за выполнение расчетов по иерархическому
нечеткому выводу.
JFuzzyTool – графический модуль, предоставляющий пользователю
возможность создавать и редактировать иерархии нечеткого вывода при
проектировании экспертных систем на его основе.
JFuzzyDB – модуль для работы с данными, используемый для расчетов
в экспертной системе анализа эколого-экономического анализа
предприятия, построенной на многошаговом нечетком логическом
выводе.
Jfuzzytool
Jfuzzy
Jfuzzydb
графический
интерфейс
управляющая
часть, расчеты
База данных для
ЭС ЭБ
Jfuzzydb.dao
Доступ к БД
Jfuzzydb.dto
Отображение
таблиц в классы
Рисунок 4. Взаимосвязь модулей программы
Организация
проекта
на
базе
объектно-ориентированного
программирования позволила легко перейти от одношагового
(стандартного) логического вывода к многошаговому (иерархическому),
путем изменения поведения соответствующих классов в зависимости от
шага вывода. Все задачи экспертной системы (class FuzzyTask) в
программе разбиты на слои (class FuzzyLayer). Каждый шаг нечеткого
вывода представлен экземпляром класса FuzzyTask, задающего набор
входных переменных и правил нечеткого вывода. Также в зависимости от
шага итерации необходимо знать, нужны ли процедуры фаззификации и
дефаззификации переменных на данном шаге.
Это проблема
представления данных, и она была решена следующим образом: вместо
бинарных файлов для хранения информации о нечетком вывода
используется формат XML, позволяющий хранить иерархическую систему
в виде древовидной структуры.
Сценарий работы с программой представлен на рис. 5. При этом особо
следует отметить, что описанный программный продукт не только дает
пользователю возможность пользоваться готовой экспертной системой, но
и разрабатывать собственные.
Определение пользователем состава и количества входных и
выходных данных, необходимых для решения задачи
Определение необходимого количества слоев, то есть этапов
проведения нечеткой экспертизы
Определение количества задач, решаемых на каждом слое, и
их содержание
Описание
входных
и
выходных
переменных:
название,
область
определения
Задание
функций
принадлежности
для
входных и выходных
переменных
(кроме
промежуточных)
Создание
правил
нечеткого
вывода
необходимых
и
достаточных для решения
задачи
Сохранение иерархической нечеткой системы в виде XML-файла
Задание конкретных входных значений и выполнение процедуры
иерархического нечеткого вывода
Рисунок 5. Сценарий работы с JFuzzyTool 1.0 для создания нечетких
экспертных систем
Заключение
В ходе исследования был разработан новый метод вычислительного
интеллекта, и с его помощью успешно решена задача интеллектуального
анализа состояния экологической безопасности на предприятии.
Список литературы
[Ярушкина, 2004] Ярушкина Н.Г. Основы теории нечетких и гибридных
систем: учебное пособие.- М.: Финансы и статистика, 2004.- 320 с.: ил.
Download