Научная статья на тему 'Матричная реализация алгоритмов нечеткого вывода'

Матричная реализация алгоритмов нечеткого вывода Текст научной статьи по специальности «Математика»

CC BY
683
139
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НЕЧЕТКАЯ ЛОГИКА / МАТРИЧНАЯ РЕАЛИЗАЦИЯ НЕЧЕТКОЙ ПЕРЕМЕННОЙ / НЕЧЕТКИЙ ВЫВОД / НЕЧЕТКИЕ ПРАВИЛА ВЫВОДА / ПРОГРАММИРОВАНИЕ НЕЧЕТКОЙ ЛОГИКИ НА КОНТРОЛЛЕРЕ / НЕЧЕТКИЕ ПРЕДИКАТЫ

Аннотация научной статьи по математике, автор научной работы — Марценюк Михаил Андреевич, Поляков Виктор Борисович, Селетков Илья Павлович

Рассмотрена матричная реализация алгоритмов нечеткого вывода, естественным образом обобщающая «четкие» логические правила, такие, как modus ponens, modus tollens и др. Показано, что в этом представлении логический вывод сводится к решению линейных алгебраических уравнений с обычными условиями существования решения. Приведены примеры различных вариантов нечеткого вывода, детально демонстрирующие эффективность предлагаемого метода. Показано, что в матричном представлении упрощается программирование приложений нечеткой логики на контроллерах.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Matrix implementation of fuzzy inference algorithms that generalize by natural way of crisp logic derivation rules as modus ponens, modus tollens and like that are considered. It is shown that in suggested representation fuzzy inference procedure is equivalent to solving some system of linear algebraic equation with the usual existence condition for the solution. Examples that demonstrate effectiveness of method are considered in details. It is also performed that matrix representation simplifies programming fuzzy logic applications on controllers.

Текст научной работы на тему «Матричная реализация алгоритмов нечеткого вывода»

тивность методов оптимизации [Текст] / А.С. Немиро-вский, Д.Б. Юдин. -М.: Наука, 1979.

3. Черноруцкий, И.Г. Методы параметрической оптимизации в задачах идентификации [Текст] / И.Г. Черноруцкий //Научно-технические ведомости СПбГПУ -2009. -№ 2. -С. 150-155.

4. Черноруцкий, И.Г. Параметрические методы синтеза систем управления [Текст] / И.Г Черноруцкий //Научно-технические ведомости СПбГПУ -2009. -№ 2. -С. 111-115.

5. Растригин, Л.А. Введение в идентифика-

цию объектов управления [Текст] / Л.А. Растригин, Н.Е. Маджаров. -М.: Энергия, 1977.

6. Норенков И.П. Введение в автоматизированное проектирование технических устройств и систем [Текст] / И.П. Норенков. -М.: Высш. шк., 1986.

7. Норенков, И.П., Экстремальные задачи при схемотехническом проектировании в электронике [Текст] / И.П. Норенков, С.Г. Мулярчик, С.Р. Иванов. -Минск: Изд-во БГУ, 1976.

8. Таха, Х. Введение в исследование операций: Кн. 1, 2 [Текст] / Х. Таха. -М.: Мир, 1985.

УДК 62.50+517.11+519.92

М.А. Марценюк, В.Б. Поляков, И.П. Селетков

МАТРИЧНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМОВ НЕЧЕТКОГО ВЫВОДА

Нечеткая логика и ее методы нашли многочисленное применение в задачах моделирования и управления [1]. Предполагается, что нечеткие логические переменные х, у могут принимать промежуточные значения между нулем и единицей. В большинстве случаев для реализации нечетких логических операций над переменными используются предложенные Л. Заде нечеткая конъюнкция хлу = min(x, y) и дизъюнкция xvy = тах(х, у) [2]. Такое определение хорошо работает при вычислениях по заданным логическим формулам, что и используется в подавляющем числе задач моделирования и управления (подробный обзор представлен в книге А. Пегата [1]).

Однако на практике большое значение имеют задачи нечеткого логического вывода. В этом случае неизвестная переменная фигурирует под знаком логической операции и требуется ее найти. Например, для правила вывода modus ponens x^ y = z предполагается, что нам известны нечеткие переменные х, z и требуется найти нечеткость переменной у. Эту задачу затруднительно решить с помощью операций Л. Заде.

В работе [3] предложено использовать для проведения вывода матричный аппарат. В нем применяются модели логических операций, естественным образом обобщающие их «четкие» аналоги на область нечетких переменных и предикатов. Этот аппарат позволяет свести задачи нечеткого логического вывода к решению

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

Матричное представление нечетких высказываний

Под высказыванием А в обычной (четкой) логике понимают такое предложение, которое либо истинно, либо ложно [4]. На совокупности всех высказываний можно определить функцию ц(А), принимающую значения в двухэлементном множестве {0, 1}, по следующему правилу:

,. ч |1, если высказывание А истинно,

Ц(А)= п А (!)

[ 0, если высказывание А ложно.

Функция ц(А) называется функцией истинности, а ее значение - логическим значением или значением истинности высказывания А.

Однако не обо всех высказываниях можно однозначно утверждать истинные они или ложные. Под высказыванием в нечеткой логике понимается такое предложение, которое может принимать истинное значение с какой-то степенью уверенности. На совокупности нечетких высказываний можно определить функцию истинности ц(А), принимающую значения на отрезке [0, 1], равную степени уверенности в справедливости соответ-

ствующего высказывания.

Алгебра нечетких высказываний. В матричном представлении [3] для описания степени истинности высказывания А вводится двухмерный вектор х. Если ввести базисные векторы е® и е(1), то вектор х может быть представлен в виде

— Хо е I х1 е ,

(2)

причем компоненты вектора х - числа х0, х1 - удовлетворяют условиям

0 < х0, х1 < 1, х0 + х1 — 1. (3)

Сами базисные векторы е(0) и е(1) описывают высказывания со степенью уверенности 0 и 1 соответственно. Операции отрицания соответствует перестановка компонент вектора х:

— Х1 е I Х0 е .

В «классической» нечеткой логике оценка неопределенности высказывания вызывает затруднения [5]. Представление нечетких высказываний в векторном виде позволяет вычислять их неопределенность с помощью известной формулы теории информации:

5(х) — -х0 log2 х0 - х1 log2 х1. (4)

Логические операции над векторами - конъюнкцию, дизъюнкцию и импликацию - можно представить в матричном виде. Составим из компонент вектора х конъюнктивную С(х), дизъюнктивную -О(х) и импликативную 1(х) матрицы размером 2^2 [3]:

С (х) —

Г1

л

0 х

х

1 У

I (х) —

Б( х) — 0

0 ^ 1

(5)

ставлены в виде

х л у — С(х)у; х V у — В(х)у; х ^ у — I(х)у, (6)

где вектор у следует мыслить как матричный столбец 1х2, составленный из его компонент

у—

Г уо ^ у1

а точка обозначает обычное матричное

умножение. Результатом логических операций, сформулированных в таком виде, тоже будет нечеткий вектор. Детальное обоснование сделанного выбора матриц (4) представлено в работе [3].

Следует отметить, что введенные здесь логические операции отличаются от «классических» формул Л. Заде. Например, согласно (6) истинностная компонента конъюнкции [х л у] 1 = х1 у1, в то время как «классический» результат для этой величины равен тт(хр у1). В частном случае «четких» (и близких к ним) значений эти формулы дают одинаковый результат (рис. 1 а), однако при х1~ у1~0,5 расхождение велико (рис. 1 б). На наш взгляд, из этого вовсе не следует, что одни формулы лучше, а другие хуже. Формулы Л. Заде обоснованы только их повсеместным использованием, в действительности они представляют собой только одну из возможных моделей логических операций. Наряду с ними в литературе предложено множество других вариантов реализаций нечетких операций [6]. Возвращаясь к операции конъюнкции, можно видеть, что нечеткости высказываний А («Выиграть миллион»), задаваемой вектором х, и В — А л А («Выиграть миллион И снова Выиграть миллион»), задаваемой вектором х л х, различны, что и отражается в аппарате векторного представления нечеткой логики. В общем случае ц(В) и ц(А) не совпадают или х л х Ф х . Равенство х л х — х выполняется только в том случае, когда х равно одному из базисных векторов е(0) или е(1).

С помощью этих матриц логические операции над нечеткими векторами могут быть преда)

095-7 С 1шп(0,95,т) о,4 0,2

0

-1-1-1-

0 0,2 0,4 0,6 0,8 1 о 0,2 0,4 0,6 0,8 1

0 у 1 0 у I

Рис. 1. Результаты нечетких конъюнкций в соответствии с (4) и Заде: а - в приближении «четких» переменных; б - в случае наибольшей нечеткости или неопределенности

Привлекательность матричного подхода обусловлена тем, что он:

1) естественным образом обобщает логические операции на область нечетких переменных [3] и во многих случаях адекватно моделирует нечеткие рассуждения;

2) позволяет производить нечеткий логический вывод с использованием правил modus ponens, modus tollens и др. путем решения линейных алгебраических уравнений;

3) позволяет количественно оценивать неопределенность нечетких высказываний по формуле (4);

4) при выводах можно использовать нечеткое правило резолюции и вычислять его нечеткость [3].

Нечеткий вывод. Нечеткий логический вывод или приближенные рассуждения - это процесс получения значений искомых нечетких переменных или предикатов по заданным значениям исходных переменных с использованием логических правил modus ponens вида «если ..., то ...», modus tollens и др. Предпосылки и выводы правил являются нечеткими понятиями. Совокупность всех правил представляет собой базу знаний, которая формируется человеком-экспертом в данной предметной области. Общие этапы логического вывода, а также примеры реализаций в «классической» формулировке нечеткой логики по алгоритмам Mamdani, Larsen и др. описаны во многих источниках (см. [1, 7]). В этом подходе предлагается задавать правила в базе знаний с помощью отношений x^y = R, где матрица R должна быть эмпирически задана на множестве x*y (здесь знак «*» обозначает прямое произведение векторов x, у).

Наиболее точное обобщение правила modus ponens на нечеткую логику предложено в статье [3]. Оно имеет аналогичное четкому варианту поведение в особых точках и учитывает факт связи между предпосылкой, следствием и степенью выполнения правила.

Если известен нечеткий вектор x = (х0, Xj)T, а также нечеткий вектор z, определяющий нечеткость правила x^y = z, то вывод о нечеткости вектора у можно сделать из соотношений (5), (6). Эта задача сводится к решению линейного алгебраического уравнения, относительно неизвестного вектора у, которое в случае импликативной модели имеет вид I(x)y = z:

оу - ^

V x0

1

У0

л

о

V z1 У

или

| Х1 у0 = Z0 lx0 Уо + У = z1

Как известно, линейная система имеет решение, если определитель матрицы коэффициентов не равен нулю. В данном случае мы должны потребовать, чтобы выполнялось условие

det(I (x)) = det

V xo

0 ^ 1

-x1 ф 0.

(8)

То есть компонента истинности х1 вектора х не должна быть равна нулю. Тогда компоненты неизвестного вектора у принимают значения

Уо ="

У: = 1 -

(9)

Полученное решение имеет смысл только в том случае, если обе компоненты вектора у положительны. Поэтому кроме условия х1 ф 0, получаем дополнительно, что х1 > 20. Отметим, что при х1 = 1 и 2 = 1 из (9) имеем известный результат

правила modus ponens в четкой логике: У0

0,

У, = 1

Таким образом, в отличие от других моделей импликации в этом подходе мы не только получаем нечеткий логический вывод, но и строго указываем область его выполнения. Аналогичным образом могут быть обобщены на область нечетких переменных и другие известные правила логического вывода [3].

Связь c алгоритмом Мамдани. В приложениях нечеткой логики большое распространение получил алгоритм Мамдани, в котором предлагается находить следствие правила у как конъюнкцию предпосылки правила x и некоторой переменой w, заданной на области определения у:

у = x л w. (10)

В матричном виде это выражение имеет вид: у = C (x) w. (11)

Нечеткое правило modus ponens может быть записано следующим образом через импликацию:

x^y = z. (12)

В матричном виде это правило выглядит как: ^у = z. (13)

Из формул (11) и (13) следует связь между переменными w и z:

z = C(x)I(x)w. (14)

Согласно этой формуле, задавая переменную w, как того требует алгоритм Мамдани, зададим и нечеткость z правила modus ponens (12). В этом смысле можно строго считать, что алгоритм Мам-дани является логическим выводом, хотя обычно его рассматривают только как модель вывода. При решении конкретных задач во многих случаях бывает легче определить переменную w. Матричный метод позволяет при этом указать степень нечеткости z правила (12).

Нечеткие переменные как нечеткие предикаты

Описание нечетких предикатов. В классическом подходе [2, 7] нечеткая переменная характеризуется нечетким подмножеством X некоторого множества S и функцией принадлежности ц (5), s е S . Например, переменная y1 «уровень обслуживания низкий» может характеризоваться функцией принадлежности, изображенной на рис. 2. В данном случае в качестве области определения S выступает оценка уровня обслуживания клиентом в баллах (s е [1.. .10]) (пример из [7]).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Значение функции принадлежности может выступать как свойство некоторого объекта из множества S. Такое описание хорошо подходит под определение предикатов, применение которых для нечеткой логики введено в работе [3].

Нечеткий предикат x(s) - это векторная функция, заданная на множестве определения S, принимающая значения в пространстве нечетких векторов F, элементы которого описываются формулами (2) и (3), то есть

Ч(s) Л

x( s) =

x1( s),

0 < x0(s), x1(s) < 1; x0(s) + X1(s) =1.

(15)

(16)

Рис. 2. Внешний вид функции принадлежности нечеткой переменной у1 «уровень обслуживания низкий» 5 - оценка уровня обслуживания клиентом в баллах

Из определения предиката следует, что в качестве значения х1(^) используется значение функции принадлежности нечеткой переменной ц (5). В то время как для выполнения условий (3) необходимо х0(5) = 1 - ^(5). Операции над нечеткими предикатами сводятся к операциям над нечеткими векторами.

Лингвистическая переменная - это переменная, которая может принимать значения фраз из естественного или искусственного языка. Лингвистические переменные также можно представить в терминах нечетких предикатов, как совокупность предикатов (х1(5), х2(5), х3(5)...}, имеющих одну область определения 5". Кроме того, лингвистическая переменная включает в себя процедуры создания новых предикатов на основе ранее определенных.

Пример. Задача о чаевых. Требуется вычислить размер чаевых в зависимости от оценки уровня обслуживания и качества пищи в ресторане в баллах [1, 10] (пример адаптирован из [8]).

Уровень обслуживания задается «лингвистической» переменной у(5) = {у(1)(£), У(2)(5), У(3)(5)}, где у(к)(5) - нечеткие предикаты, описывающие низкий (к = 1), средний (к = 2) и высокий (к = 3) уровень обслуживания. Функции у(к) (я) = цк (я) заданы в [6]. Одна из них - у® (у) приведена на рис. 2. Аналогично заданы лингвистические переменные «качество пищи» z(f) = {г(1)(/}, z(2)(f), г(3)(/)} и м>(р) = [м>т(р), ^(2)(р), м>(?)(р)} - уровень оплаты, где переменная f (оценка качества пищи в баллах) принадлежит множеству [1, ..., 10], а переменная р задает процент чаевых от стоимости заказа, причем р е [0 ... 30]%.

Клиент оценивает в баллах уровень обслуживания 5 = 50 и качество пищи f = Необходимо найти процент чаевых р0, соответствующий заданным значениям 5 /

Уровень оплаты находится с помощью алгоритма Мамдани. На первом шаге вычисляем переменные

Ч50 , f0, р) =

(17)

3

= V {[у(к)(50 ) V z(k)(/0 )] л ^(к)(р)}, к = 1

в результате дефаззификации находим процент чаевых по формуле

JР • vi(so,/o,P)dP

_0_

30 •

J ^С^ P)dP

(18)

Подразумевается, что все вычисления в (17) производятся в матричном виде.

Решение задачи реализовано в среде MathCAD, на языке C++ в среде C++ Builder, на языке С на микропроцессоре Silicon Laboratories Inc C8051F912.

Процессор C8051F912 имеет жестко ограниченные системные ресурсы, в частности, память (доступный объем RAM составляет 768 байт и Flash - 16 Кб). С целью сравнения, на нем был реализован алгоритм нечеткого вывода Мамдани с «классической» («по Заде») и матричной реализацией логических операций.

При реализации операций «по Заде» используются функции нахождения минимального и максимального значения, а при реализации матричного представления операций - функции нахождения истинностной компоненты матричной конъюнкции и дизъюнкции по приведенным выше формулам.

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

В целом реализация решения задачи показала, что матричный метод имеет более наглядный, компактный вид, удобен при разработке. Готовые программы и исходные коды можно найти на ресурсе [10].

Примеры нечеткого вывода

Люди в очках. Требуется оценить степень уверенности в высказывании о том, что человек пользуется очками (или линзами). Пусть известно, что

1) очками чаще всего пользуются люди, которые много читают;

2) очками также пользуются люди, которые имеют врожденную предрасположенность;

3) кроме этого очками пользуются люди, которые много времени проводят за компьютером;

4) много читают люди, которые любят читать;

5) много читают те люди, которые занимаются наукой;

6) если человек читает за компьютером, то он почти гарантированно станет близоруким.

Обозначим понятия, описанные в базе знаний, следующим образом:

Glas - человек пользуется очками;

Comp - человек так или иначе пользуется компьютером;

Read - человек любит читать;

MRead - человек много читает;

Congen - человек имеет врожденную предрасположенность к болезням глаз;

Scient - человек занимается наукой;

zk (к = 0.. .6) - вероятность выполнения соответствующего правила.

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

MRead ^ Glas = z1.

Congen ^ Glas = z2 . Comp ^ Glas = z3 . Scient ^ MRead = z4. Read ^ MRead = z5 . Read a Comp ^ Glas = z6.

(19)

(20) (21) (22)

(23)

(24)

(25)

Исходные переменные Congen, Comp, Scient и Read заданы в виде нечетких векторов:

( 0,95 1 ( 0,3 1

Scient = 1 I, Comp = 1 I,

V 0,05/ у V 0,7 У

( 0,7 1 ( 0,97 1

Read = 1 I, Congen = I,

V0,3у ё V 0,3 У

а переменные zk:

z1 = z5 = ( 0,8 1 z 2 = ( 0,98 1 z3 = ( 0,5^

z z V 0,2 У, z V 0,021, z V 0,5,

z4 = (1, z6 = (°,4 |.

V 0,04 Г l 0,6

(26)

0

Рис. 3. Схема правил задачи «Люди в очках» в терминах исходных переменных

Схема правил задачи в терминах введенных переменных выглядит, как показано на рис. 3.

Для того чтобы сделать вывод относительно вектора Glas, нужно прежде получить вектор MRead. Перепишем уравнение (22) в матричном виде:

I (Scient) • MRead = z 4.

(27)

Решение этого уравнения в соответствие с (7) и (9) имеет вид

(-0,94 1

MReadl = 1 I. (28)

I 1,94 ) К '

Результат выходит за пределы, допустимые условием (3). Это говорит о том, что логический вывод по этому правилу в таких исходных данных невозможен. Решим аналогично уравнение для правила (25):

( 0,333 1

MRead2 = 1 I. (29)

^0,667)

Итоговое значение вектора MRead находится дизъюнкцией результатов всех правил, на которых вывод оказался успешным. В нашем случае такое правило только одно - (23), значит MRead = = MRead2.

Далее проводим расчеты для вектора Glas. Решение уравнений (19)-(21) и (24) аналогично уравнениям (22) и (23). Результат имеет следующий вид:

( 0,7 1 ( 0,333

Glasl = 1 I ,Glas2 = 1

l 0,3 ) \ 0,667

, 0,2861 (-0,791

Glas3 = | I ,Glas4 = 1

0,714 ) \ 1,791

(30)

Решение уравнения (25) ^^4) выходит за рамки условий (3), его необходимо отбросить. Теперь, чтобы получить итоговое значение

вектора Glas, найдем дизъюнкцию всех результирующих векторов:

3 (0,0671

Glas = v Glask =

0,933

(31)

Таким образом, степень уверенности в утверждении, что человек носит очки при указанных исходных данных, равна 0,93.

Формирование управленческих решений. Требуется определить, инвестиции в какую сферу деятельности в следующем периоде наиболее необходимы на основе некоторых ключевых показателей деятельности в области инновационного развития в текущем периоде. Имеются данные по следующим показателям деятельности [9]:

• число новых продуктов (NewProd е [0..20]);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• число новых клиентов (NewClient е [0..100000]);

• процент узнаваемости бренда (РегеВ^ е [0..100]);

• индекс удовлетворенности клиентов (PersQient е [0..100]);

• доля брака (PersReject е [0..100]);

• затраты на НИОКР (УаШЮКЯ е [0..100000]);

• затраты на обучение персонала (ValPers е [0..100000]);

• затраты на проведение рекламы (ValAdvrt е [0..100000]).

Аналитики составили базу знаний следующего вида:

1) если доля брака высока и индекс удовлетворенности клиентов низкий, то затраты на НИОКР средние;

2) если доля брака средняя, то затраты на обучение персонала средние;

3) если число новых продуктов низкое, то затраты на НИОКР высокие;

Рис. 4. Внешний вид функции принадлежности нечеткого предиката «количество новых продуктов низкое» NewProd - количество новых продуктов предприятия в текущем периоде

4) если число новых продуктов высокое, то затраты на НИОКР низкие;

5) если процент узнаваемости бренда низкий, то затраты на проведение рекламы высокие;

6) если процент узнаваемости бренда высокий, то затраты на проведение рекламы низкие;

7) если затраты на НИОКР высокие и доля брака высокая, то затраты на обучение персонала высокие;

8) если затраты на проведение рекламы высокие и процент узнаваемости бренда низкий, то затраты на НИОКР высокие;

9) если число новых клиентов низкое, то затраты на проведение рекламы высокие.

Зададим предикаты всех нечетких понятий, используемых в базе знаний. Например, функция истинности предиката «количество новых продуктов низкое» в зависимости от количества новых продуктов может иметь вид как на рис. 4.

Аналогичным образом могут быть предотаа-лены функции истинности остальных предикатов, используемых в базе знаний (рис. 5). При подстановке конкретных исходных значений показателей деятельности можно вычислить значение всех предикатов и, соответственно, предпосылок всех правил в виде векторов. Также необходимо задать идеальные предикаты для искомых величин. Их конкретное значение в начале решения неизвестно и зависит от «четкого» значения искомой величины, которое предстоит определить.

Логический вывод проводится решением уравнения (7) для каждого правила в системе аналогично тому, как это показано в задаче «Люди в очках».

Следует отметить, что искомые предикаты (затраты на НИОКР, проведение рекламных акций, обучение персонала) вычисляются для сле-

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

( 0,68 |

Кое,Т1ЮКК^ = 1 I;

10,32 /

КОйЕТЮКИ^ = | 0,16 |; (32)

10,84 /

( 0,891

КoefNЮKRHight = I ^ ^ ^ I.

Реальный искомый предикат находится конъюнкцией вектора-коэффициента и идеального искомого предиката:

NЮKRLow(p) = (33)

= С (КoefNЮKRLow) • NЮKRLow(p).

1

0,8 0,6

NIOKRLow(p)1

0,4

0,2

0

0

Рис. 5. Внешний вид функции принадлежности нечеткого предиката «финансирование НИОКР в следующем периоде низкое» р - размер финансирования НИОКР в следущем периоде, у. е.

0 4x104 8х104 0 р 100000

4

а)

NIOKRLow (р) J

б)

NIOKR(p)i

0 4x10 8x10 0 4x10"

Р Р

Рис. 6. Внешний вид функции принадлежности нечеткого предиката

«финансирование НИОКР в следующем периоде низкое» (а); внешний вид функции принадлежности композированного предиката «финансирование НИОКР в следующем периоде» (б) р - размер финансирования НИОКР в следущем периоде, у. е.

8x10

После того как все искомые реальные предикаты найдены, а те из них, для которых условие (3) не выполняется, отброшены, можно объединить реальные предикаты разных правил (рис. 6 а) по одной искомой величине в один дизъюнкцией (рис. 6 б). В результате, например для НИОКР получается функция следующего вида (см. рис. 6).

Дефаззификация производится центроидным методом, подробно описанным в [7]. Результат получился в следующем виде:

Реге = 24900^^ = 43460;№0^ = 45260. (34)

Более подробную информацию по проекту можно найти в Интернете [10].

Использование матричного подхода позволяет свести решение задач нечеткой логики к решению системы линейных алгебраических уравнений, что дает возможность быстро и наглядно реализовывать сложные алгоритмы управления,

требующие логического вывода. В виду того что матричный подход естественным образом обобщает четкий вывод, области существования решения соответствуют информации, заложенной в базу знаний в виде правил modus ponens, modus tollens и др.

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

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

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

СПИСОК ЛИТЕРАТУРЫ

1. Пегат, А. Нечеткое моделирование и управление [Текст] / А. Пегат; Пер. с англ. -М.: Бином, 2009. -798 с.

2. Zadeh, L.A. Fuzzy Sets [Text] / L.A. Zadeh // Information and Control. -1965. -Vol. 8. -P. 338-353.

3. Марценюк, М.А. Матричное представление нечеткой логики [Текст] / М.А. Марценюк // Нечеткие системы и мягкие вычисления. Научный журнал Российской ассоциации нечетких систем и мягких вычислений. -2007. -Т. 2. -№ 3. -С. 7-35.

4. Игошин, В.И. Математическая логика и теория алгоритмов: Учеб. пособие для студ. вузов [Текст] /

В.И. Игошин; -2-е изд., стер. -М.: Изд. центр «Академия», 2008. -448 с.

5. Рыжов, А.П. Элементы теории нечетких множеств и измерения нечеткости [Текст] / А.П. Рыжов. -М.: Диалог-МГУ, 1998.

6. Konar, A. Computational Intelligence: Principles [Text] /A. Konar // Techniques and Applications. -Springer, 2005. -71 p.

7. Круглов, В.В. Интеллектуальные информационные системы: компьютерная поддержка систем нечеткой логики и нечеткого вывода [Текст] / В.В. Круглов, М.И. Дли. -М.: Физматлит, 2002. -256 с.

8. Fuzzy Logic Toolbox User's Guide [Электронный ресурс] / Режим доступа: http://www.mathworks.com/

9. Толкач, В. KPI в управлении: связь со стратегией [Текст] / В. Толкач // Новый менеджмент.

-2007. -№ 5.

10. Проект «матричная реализация нечеткой логики» [Электронный ресурс] / Режим доступа: http:// iseletkov.perm.ru/project/fuzzylogic

УДК 681.3.06(075.8)

И.Г. Черноруцкий

АЛГОРИТМИЧЕСКИЕ ПРОБЛЕМЫ ЖЕСТКОЙ ОПТИМИЗАЦИИ

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

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

Некоторые выводы и утверждения интерпретируются на примере стандартных задач теории управления. Однако, как правило, обсуждаемые проблемы имеют инвариантный, общесистемный характер и могут представлять интерес для специалистов из различных проблемных областей компьютерного моделирования. Рассматриваются задачи безусловной (unconstrained - UC) оптимизации.

1. Явление жесткости

Рассмотрим следующий пример критерия оптимальности, зависящего от двух управляемых параметров x1, x2 [1]:

J (Xi, X2) = go2 (Xi, X2) + CTg2 (x, X2) ^ min, (1)

где ст - достаточно большое положительное число.

Рассмотрим также уравнение

gi(Xi, X2) = 0, (2)

определяющее в простейшем случае некоторую зависимость X2 = ф^). Тогда при стремлении параметра ст к бесконечности значение функционала J в каждой точке, где g1(X1, X2) Ф 0, будет неограниченно возрастать по абсолютной величине, оставаясь ограниченным и равным g02(xp X2) во всех точках на кривой X2 = ф(х1). То же самое будет происходить с нормой вектора градиента J (x) = [J/dX cJ/dX2], где

dJ/dX1 = 2g0(X1, X2) dg0/dX1 + 2<CTg1(x1, X2) dg1/dX1,

dJ/dX2 = 2g0(X1, X2) dg0/dX2 + 2CTg1(X1, X2) dgjdx2.

Линии уровня J(x) = const для достаточно большого ст представлены на рис. 1 и имеют характерную овражную структуру. Там же стрелками показано векторное поле антиградиентов, определяющее локальные направления наискорейшего убывания J(x).

Ясно, что при достаточно больших ст минимальные значения J(X) следует искать вдоль зависимости x2 = ф^), определяющей т. н. дно оврага. Из (1) следует, что изменение J(x) вдоль дна зада-

Рис. 1. Явление овражности

i Надоели баннеры? Вы всегда можете отключить рекламу.