Научная статья на тему 'Архитектура подсистемы нечеткого вывода для оптимизатора баз знаний'

Архитектура подсистемы нечеткого вывода для оптимизатора баз знаний Текст научной статьи по специальности «Компьютерные и информационные науки»

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

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

Дальнейшее направление исследований может быть связано с выявлением и формализацией подобных зависимостей.

Литература

1. Кольчугина Е.А. Моделирование биоценозов // Новые информационные технологии и системы: тр. VI междунар. на-уч.-технич. конф. Пенза, ПГУ, 2004. С. 240-246.

2. Нейман Дж. фон. Теория самовоспроизводящихся автоматов; [пер. с англ.]. М.: Мир, 1971. 382 с.

3. Тоффоли Т., Марголус Н. Машины клеточных автоматов; [пер. с англ.]. М.: Мир, 1991. 280 с.

4. Langton C.G., Physica D: Nonlinear Phenomena, 1986, Vol. 22, Iss. 1-3, pp. 120-149.

5. Sayama H., Artificial Life, 1999, Vol. 5, no. 4, pp. 343-365.

6. Ackley D.H., Littman M.L., Artificial Life II, SFI Studies in the Sciences of Complexity, Redwood City, CA: Addison-Wesley, 1991, Vol. X, pp. 487-509.

7. Drogoul A., Corbara B., Lalande S., Artificial Societies: the Computer Simulation of Social Life, London: UCL Press, 1995, pp. 190-211.

8. Dittrich P., Ziegler J., Banzhaf W., Artificial Life, 2001, Vol. 7, no. 3, pp. 225-275.

9. Кольчугина Е.А. Моделирование перемещений особи // Новые информационные технологии и системы: тр. VI междунар. науч.-технич. конф. Пенза, ПГУ, 2004. С. 246-249.

10. Кольчугина Е.А. Результаты эксперимента по созданию эволюционирующего программного обеспечения // Изв.

вузов. Поволжский регион. Технические науки. № 1, 2007. Пенза, ИИЦ ПГУ, 2007. С. 54-60.

References

1. Kolchugina E.A., Trudy VI Mezhdunar. Nauch.-tekhnich. Konf. [Proc. VI Int. Scientific and Technical Conf.], Penza, Penza State Univ., 2004, pp. 240-246.

2. Neumann J., Burks A.W., Theory of self-reproducing automata, Urbana, Univ. of Illinois Press, 1966.

3. Toffoli T., Margolus N., Cellular Automata Machines: a new environment for modeling. Cambrige, Mass., MIT Press, 1987.

4. Langton C.G., Physica D: Nonlinear Phenomena, 1986, Vol. 22, Iss. 1-3, pp. 120-149.

5. Sayama H., Artificial Life, 1999, Vol. 5, no. 4, pp. 343365.

6. Ackley D.H., Littman M.L., Artificial Life II. SFI Studies in the Sciences of Complexity, Redwood City, CA, Addison-Wesley, 1991, Vol. X, pp. 487-509.

7. Drogoul A., Corbara B., Lalande S. Artificial Societies: the Computer Simulation of Social Life, London, UCL Press, 1995, pp. 190-211.

8. Dittrich P., Ziegler J., Banzhaf W., Artificial Life, 2001, Vol. 7, no. 3, pp. 225-275.

9. Kolchugina E.A., Trudy VI mezhdunar. Nauch.-tekhnich. Konf. [Proc. VI Int. Scientific and Technical Conf.], Penza, Penza State Univ., 2004, pp. 246-249.

10. Kolchugina E.A., University proceedings. Volga region. Technical Sc., Penza, Penza State Univ., 2007, Vol. 1, pp. 54-60.

УДК 004.896

АРХИТЕКТУРА ПОДСИСТЕМЫ НЕЧЕТКОГО ВЫВОДА ДЛЯ ОПТИМИЗАТОРА БАЗ ЗНАНИЙ

С.В. Сорокин, к.ф.-м.н.., доцент (Тверской государственный университет, ул. Желябова, 33, г. Тверь, 170100, Россия, sergey@tversu.ru); Н.Ю. Нефедов, аспирант; А.Г. Решетников, аспирант; С.В. Ульянов, д.ф.-м.н., профессор (Международный университет природы, общества и человека «Дубна», ул. Университетская, 19, Московская обл., г. Дубна, 141980, Россия, nefnukem@gmail.com, reshetnikovag@pochtci.ru, ulyanovsv@mail.ru)

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

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

FUZZY INFERENCE ARCHITECTURE FOR SOFT COMPUTING OPTIMIZER OF KNOWLEDGE BASES Sorokin S. V., Ph.D., Associate Professor (Tver State University, 33, Zhelyabova St., Tver, 170100, Russia, sergey@tversu.ru);

NefedovN.Yu., Postgraduate; ReshetnikovA.G., Postgraduate; UlyanovS. V., Ph.D., Professor (Dubna International University for Nature, Society and Man, 19, Universitetskaya St., Moscow Reg., Dubna, 141980, Russia, nefnukem@gmail.com, reshetnikovag@pochta.ru, ulyanovsv@mail.ru)

Abstract. Software architecture of fuzzy inference subsystem for soft computing optimizer is considered. Proposed architecture is based on segregation of interface of algorithms, interested in active rules, to separate interface. Fuzzy inference algorithm is implemented as a template method; its primitive operations are implemented in concrete realizations of fuzzy inference models and fuzzy rule bases. Algorithm is also configurable by the object which will receive a list of active rules. Performance of soft computing optimizer is demonstrated on the task of intelligent control system for unstable dynamic object. This control system exhibited better robustness, comparing to systems created with other state-of-the-art tools.

Keywords: fuzzy inference, fuzzy sets, software architecture, intelligent control systems.

На основе теории лингвистической аппроксимации и нечеткого логического вывода (Л. Заде и др.) были разработаны принципы моделирования и проектирования нечетких систем автоматического управления (САУ) [1].

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

В данной статье рассматривается реализация подсистемы нечеткого вывода, входящая в оптимизатор БЗ SCOptimizer [2].

Модели нечеткого вывода

Рассмотрим основные модели нечеткого вывода, которые могут быть реализованы в ИСУ.

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

IF x is (x) AND x2 is цЛ, (x) AND...

AND xn is v"., (xn) THEN y is , где l - номер правила; xb ..., xn - входной вектор;

k 7 " " "

М - i-e терм-множество k-й входной переменной,

&e{1,

n}, ie{1,

mk}; - i-e терм-

множество выходной переменной; - индекс, показывающий, какое из терм-множеств к-й переменной используется в правиле I.

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

F(xi,..., xn) = ■

Z M y ПI .i ^() Xм П L14 )

где y - модальное значение нечеткого множества цпп++' ; П - используемая /-норма; M - число правил.

В модели Сугено правила имеют вид

IF x is (x) AND x is (x) AND...

AND xn is м", (xn ) THEN y is f (x,,..., xn ), где f - некоторая функция входного вектора.

Результат нечеткого вывода в этой модели определяется по формуле

^ , X/ С^., X. ^ ^1 ^к ^ )

F(х,..., х ) =-----.

1 п ~пп к , Ч

х ;=. п п=^(х)

Как правило, при использовании модели Сугено в качестве функций / рассматривают полиномы. Так, в модели Сугено 0-го порядка эта функция имеет виду(хь ..., хп)=а0, а в модели Сугено

1-го поряка Ахи Хп) = X "к=1 аЛ + ао.

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

1. Вид предпосылки правила не зависит от модели нечеткого вывода и определяется только индексами выбранных для данного правила терм-множеств. Множество всех правил образуется декартовым произведением терм-множеств всех переменных, и число правил М — П ^ Щ .

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

3. Для расчета результата нечеткого вывода всегда необходимо вычислять значения

ПМ-кк СX), которые будем называть уровнем

А -Л- к—1

активации правила I. При этом правила с нулевым уровнем активации не влияют на результат.

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

Требования к системе нечеткого вывода в рамках оптимизатора БЗ

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

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

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

Система нечеткого вывода в SCOptimizer

На рисунке 1 показан фрагмент диаграммы классов SCOptimizer, отражающий существенные для системы нечеткого вывода моменты. Рассмотрим классы, приведенные на этой диаграмме.

Класс InferenceTarget объявляет интерфейс объектов, заинтересованных в получении списка активных правил. Правила передаются этому объекту по одному через функцию ActivateRule.

Класс ШегепсеЕ^ше является базовым классом для систем нечеткого вывода. Он содержит ряд общих для разных моделей нечеткого вывода функций и наборов данных. В нем объявляются и

виртуальные функции, переопределяемые в классах-наследниках, представляющих различные конкретные модели нечеткого вывода: Mamdani-InferenceEngine, Sugeno0InferenceEngine и Suge-no1InferenceEngine. Так, например, функция Use-OutputMF() позволяет определить, используются ли данной моделью терм-множества для выходных переменных.

InferenceEngine включает также массивы input и output лингвистических переменных, представленных классом LinguisticVar. Лингвистическая переменная отвечает за нормализацию и денорма-лизацию сигналов, а также за вычисление уровня соответствия входного сигнала распределениям терм-множеств, который сохраняется в массиве fitness[] и в дальнейшем используется для быстрого вычисления уровня активации правил вывода.

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

Еще одна иерархия классов связана с БЗ. Хранение данных правил и их извлечение по указанному индексу (соответствующему предпосылке правила) обеспечиваются классами, унаследованными от RuleBase. CompleteRuleBase предоставляет полную базу, хранящую все возможные правила. LBRWRuleBase дает возможность использовать частичные базы, хранящие наиболее существенные правила. Подклассы LBRWRuleBase (показан один класс LBRWAutoBase) определяют различные версии алгоритмов отбора правил, переопределяя функцию Create().

«interface» inferenceTarget

+ActivateRule(B index, в input : float [

-tNorm

-fitness : float []

-output

-input

InferenceEngine

+useOutputMF() : bool +Infer(B input : float []) : float []

+DoInfer(B input : float [], b target : inferenceTarget) : bool +AllocateRules(B count : int) : byte * +PrepareInfer() : void +FinalizeInfer() : float [] +GetRuleLevel(B index) : float

ж_

LinguisticVariable

+CalcFitnes(B x : float) +Normalize(B x : float) : float +Denormalize(B x : float) : float

-distributionParams

+Fitness(B x : float) : float

"7Г

"TV

«interface» RuleBase

+ActivateRules(B input +GetRule(B index)

float [], в target : inferenceTarget)

CompleteRuleBase

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

-data : byte *

+GetRule(B index)

MamdaniInferenceEngine

+UseOutputMF() : bool +AllocateRules(B count : int) : byte * +PrepareInfer() : void +FinalizeInfer() : float []

Sugeno0InferenceEngine

Sugeno1InferenceEngine

-data : byte * -indexTree

LBRWRuleBase

+GetRule(B index) +ActivateRule(B index, b input) +ActivateRules(B input, b target) +Create(B signal, b options)

ï

LBRWAutoBase

+Create(B signal, в options)

Рис. 1. Фрагмент диаграммы классов SCOptimizer

-rules

1

*

1

1

1

Рис. 2. Схема работы алгоритма нечеткого вывода

Так как формат и объем данных правой части правил существенно различаются для разных моделей нечеткого вывода, непосредственное выделение памяти осуществляется с помощью фабричной функции [3] Allocate -Rules(), объявленной в классе InferenceEngine и определенной в его наследниках.

Работа алгоритма нечеткого вывода показана на рисунке 2. Процесс начинается с вызова функции Infer() класса InferenceEngine, которой передается вектор входных значений, и состоит из трех стадий. Первая стадия включает подготовку модели нечеткого вывода к началу вычислений и обеспечивается вызовом операции Prepare-Infer(), определенной в дочерних классах.

На второй стадии выполняется функция DoInfer. В первую очередь она вычисляет лингвистическое представление входного сигнала, используя функцию CalcFitness входных переменных. Затем вызывается функция ActivateRules(), объявленная в классе RuleBase, которая перечисляет все активные правила. Эта функция может переопределяться в классах-наследниках RuleBase для реализации более эффективных вариантов перебора правил в зависимости от используемых структур хранения.

Так как в качестве цели для перечисления правил передается указатель на саму систему нечеткого вывода, информация об активных правилах передается конкретной модели нечеткого вывода, которая реализует функцию ActivateRule() и накапливает результаты вычислений в своих внутренних переменных. Доступ к правой части правила осуществляется с помощью вызова функции GetRule() БЗ.

На третьей стадии управление возвращается в функцию Infer(), которая

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

При использовании других алгоритмов взаимодействие компонентов происходит иным способом. Например, на рисунке 3 показана работа системы при исполнении алгоритма отбора наиболее значимых правил LBRW.

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

aLbrwRuleDatabase

anInferenceEngine aLinguisticVariable

Create(signal, options)

DoInfer(input, aLbrwRuleDatabase)

ActivateRules(input, target)

^ ActivateRule(index, input) ActivateRules

CalcFitness(x) CalcFitness

input[i]:=Normalize(input[i])

Рис. 3. Схема работы системы нечеткого вывода с алгоритмом LBRW

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

Применение оптимизатора БЗ для создания ИСУ неустойчивого динамического объекта

В качестве примера применения оптимизатора БЗ рассмотрим задачу управления неустойчивой динамической системой «движущаяся каретка -перевернутый маятник» (рис. 4).

Динамическое поведение этой системы при воздействии силы управления и описывается системой дифференциальных уравнений второго порядка:

узшб + созб

е = -

-к9

X

ц ооз2еЛ

(1)

ч3 И-х+И- 7 и + ^(х) - - а2С, + б2 эш 6 - 0 соэ 6)

где ^ и е - обобщенные координаты; у - ускорение свободного падения 9,8 м/сек.2; ц - масса тележки; ц - масса перевернутого маятника (называемого «шест»); X - половина длины маятника; к и а1 -коэффициенты трения в ^ и е соответственно; а2 -сила упругости тележки; - внешний стохастический шум.

Без управления маятник невозможно удержать в вертикальном положении [4]. Цель управления -сбалансировать положение маятника в условиях существенных ограничений на скорость и положение тележки, а также в условиях ограниченной силы управления. В этом случае для стабилизации

необходимо выполнение условия е=0. Рассмотрим модель динамической системы с начальными условиями: [0О ё0]=[10 0,1] (цгас!у. [д:1 С0]=[° °] и параметрами: ц=1,0 кг; ц=0,1 кг; Х=0,5 м; коэффициент трения в е к=0,4; коэффициент трения в ^ а2=0,1; сила упругости а1=5,0.

Сравним базу, спроектированную в оптимизаторе БЗ, с базой, спроектированной в АОТШ (встроенный инструментарий МатЛаб), и ПИД-ре-гулятором (рис. 5).

Угол наклона маятника

0,2

0,1

-0,2

г.

50

Интегральная ошибка управления

2 1,5 1

0,5 0

-0,5

Рис. 5. Графики динамики движения маятника и интегральной ошибки управления

Результаты моделирования показали, что только интеллектуальный регулятор, спроектированный с помощью оптимизатора БЗ, является роба-стным и выполняет поставленную задачу управления.

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

- общая схема работы алгоритма определяется базовым классом моделей нечеткого вывода ШегепсеЕп^пе;

- функция поиска и перечисления активных правил делегирована классам, отвечающим за хранение БЗ;

0,3

0

00

50

200

-0,1

-0,3

-0,4

50

00

150

200

- вычисления, необходимые для проведения нечеткого вывода, реализованы в конкретных классах-реализациях моделей нечеткого вывода.

Возможность конфигурирования алгоритма нечеткого вывода классом-приемником списка активированных правил позволяет использовать реализацию нечеткого вывода в рамках других алгоритмов, выполняющих различные задачи в процессе автоматизированного построения ИСУ. Реализованная в рамках SCOptimizer архитектура системы нечеткого вывода дала возможность решить ряд инженерных задач, возникших при разработке программного комплекса. Высокая эффективность проектных решений позволила создать систему проектирования ИСУ, превосходящую аналогичный инструментарий МатЛаб [1], что подтверждается результатами тестирования.

Литература

1. Ульянов С.В., Литвинцева Л.В., Добрынин В.Н., Мишин А.А. Интеллектуальное робастное управление: Технологии мягких вычислений. М.: ВНИИгеосистем, 2011. 408 с.

2. Сорокин С.В., Литвинцева Л.В., Ульянов С.В. Технология интеллектуальных мягких вычислений в проектировании

робастных нечетких систем управления: оптимизатор баз знаний // Нечеткие системы и мягкие вычисления. Тверь: ТвГУ, 2008. Т. 3. № 1.

3. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб: Питер, 2008. 366 с.

4. Ульянов С.В., Мишин А.А., Миногин А.А. [и др.]. Информационная технология проектирования робастных баз знаний нечетких регуляторов. Ч. III: Квантовый нечеткий вывод и квантовая информация // Электрон. журн. Системный анализ в науке и образовании. 2010. N° 3. URL: http://www.sanse.ru/ (дата обращения: 21.12.2012).

References

1. Ulyanov S.V., Litvintseva L.V., Dobrynin V.N., Mi-shin A.A. [Intelligent robust control: Soft computing technology], Moscow, VNIIgeosystem, 2011, 408 p.

2. Sorokin S.V., Litvintseva L.V., Ulyanov S.V., Fuzzy systems and Soft Computing, Tver, Tverskoy Gos. Univ., 2008, Vol. 3, no. 1.

3. Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1st ed., 1994.

4. Ulyanov S., Mishin A., Minogin A., Nefedov N., Pet-rov S., Polunin A., Reshetnikov A., System analysis in science and education, 2010, no. 3, Available at: http://www.sanse.ru/ (accessed 21 Dec. 2012).

WEB SERVICE OPTIMIZATION USING CACHING

Melnikov I.I., Postgraduate; Demidenkov K.A., Postgraduate; Evseenko I.A., Ph.D, Associate Professor (Belarusian-Russian University, 43, Mira Av., Mogilev, 212005, Belarus, mel_igor@mail.ru, sdk@mail.by, 327igor@rambler.ru)

The paper describes a method for accelerating network data transfer through combination of caching, selective compression and encryption and a WAN-accelerator based on this method. The accelerator contains a client part and a server part. It encapsulates the data channel and caches data on the client and server side. Special hashes are used to synchronize cached data on the client and server side. If some data cached on the client side and some data cached on the server side are the same, a response will be extracted from client cache and won't be waited from the server. Data can be quickly and effectively compressed by the methods of selective compression used in the accelerator if necessary. The WAN-accelerator encrypts data to improve data transfer security. WAN-accelerator server part cache asynchronous update helps to cut latency time of a response from a web-service caused by computational complexity and transaction time. Usage of the accelerator can be an effective solution for the problem of client application speed acceleration when a client application requires permanent communication with a web-service. The WAN-accelerator is an independent program module that doesn't require integration with an existing web-service and its modification. It is transparent for a web-service and a client application. Especially it is useful for an organization that has a host system for data processing and management that contains one or more servers with data access through web-services and many clients on a great distance from them.

Keywords: WAN-accelerator, web service, caching, compression, encryption, hash, optimization.

Network technologies have become essential part of the contemporary society. Thanks to which long distance data transfer is not a great problem any more and Internet global network helped to develop communication links that unite all countries in the world. Yet, many of data transfer technologies and involved protocols, e.g. TCP\IP, were designed a long time ago. And today they cannot keep pace with tremen-

dously increased traffic [1]. Therefore, optimization of IP-traffic presents quite relevant current problem. Optimization can be done on software or hardware level.

The simplest way is to upgrade network equipment and expanding of information channel, however, this method is quit expensive. Therefore, all over the world they actively develop alternative approaches re-

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