Обзор существующих инструментальных средств
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

 

FuzzyTECH

 

Пакет fuzzyTECH for Business  произведен  Inform Software Corporation. Пакет позволяет проектировать и отлаживать фази системы, конечным продук- том разработки системы является генерируемый при помощи пакета программ- ный модуль. Программный пакет fuzzyTECH  содержит два  редактора: редак- тор для создания и работы с лингвистическими переменными; редактор        для работы  с               базой     фази        правил.              Каждая  лингвистиче- ская переменная соответствует  определенной  исходной  переменной,  которая называется базовой. Для базовой переменной вводятся диапазон изменения, а также значение которое ей присваивается в случае, если это значение не опре- делено для входной переменной или не вычислено для выходной  переменной. Оно обозначается словом «Default», и используется, например, в случае если есть ошибки или пропуски во входных данных. Для определения лингвистиче- ской        переменной задается  ее имя и набор возможных  значений (Term name). Редактор для работы с переменными позволяет графически определить для каждого из возможных значений лингвистической переменной функцию принадлежности (сокращенное обозначение MBF). В fuzzyTECH функция при- надлежности определяется при помощи координат или так называемых точек определения (Definition point).

Точки  определения    связываются линейными или  нелинейными функ- циями.            Как правило используются четыре стандартные             линейные функции принадлежности: Z-тип, лямбда-тип, Р- тип и S-тип. Функции принадлежности обычно нормализуются и их максимум  µ=1, минимум 0. Стандартные MBF функции задаются графически следующим образом:

Шаг 1 Для каждого значения лингвистической переменной определяется самое типичное численное значение, в этой точке функции принадлежности присваивается значение µ=1.


Шаг 2 Значение µ=0 присваивается функции принадлежности в гра- ничной точке, которая является самой типичной уже для другого (соседнего) значения лингвистической функции.

Шаг 3 Связывают точку µ=1 и µ=0 соответствующей линией.

 

Шаг 4 Для самого правого и самого левого на оси Х значений лингвисти- ческой переменной используется соответственно S- тип и Z-тип  функции при- надлежности.

Функции принадлежности могут быть нелинейными. В результате иссле- дований были сформулированы некоторые требования к функции принадлеж- ности и установлено, что им удовлетворяет только одна нелинейная функция - кубический сплайн. В программном пакете  fuzzyTECH на использование этой функции указывает параметр "shape". Процесс нахождения по базовой пере- менной соответствующего ей значения лингвистической переменной называет- ся Fuzzification. Процесс обратного преобразования называется Defuzzification. Для  обратного  преобразования                                                                лингвистических  переменных  используются различные методы. Обратное преобразование - последний шаг в работе фази системы.

 


CubiCalc

 

Среди лидеров нового рынка программных продуктов на основе фази ло- гики выделяется американская компания Hyper Logic, основанная в 1987 году Фредом Уоткинсом (Fred Watkins). Первоначально компания специализирова- лась на нейронных сетях (пакет OWL, содержащий исходные тексты всех из- вестных реализаций нейронных сетей), однако вскоре целиком сконцентриро- валась на нечеткой логике. Недавно вышедшая на рынок вторая версия пакета CubiCalc фирмы HyperLogic является одной из наиболее мощных экспертных систем на основе нечеткой логики. Пакет содержит интерактивную оболочку для разработки нечетких экспертных систем и систем управления, а также run- time модуль, позволяющий оформлять созданные пользователем системы в ви- де отдельных программ. От других пакетов CubiCalc отличает также наличие весьма мощной утилиты Rule Maker, позволяющей решать одну из основных


проблем в работе с нечеткой логикой - автоматическое построение нечетких правил (функций принадлежности). В основе RuleMaker лежат усовершенство- ванные алгоритмы кластеризации Кохонена. А запрет на ввоз в Россию самого пакета CubiCalc был преодолен лишь в середине 1995 года. Сегодня CubiCalc применяется при решении десятков различных задач - от адаптивного управле- ния  оптовыми  складами  до  моделирования рынка  фьючерсных  контрактов. Большинство пользователей CubiCalc - это финансовые и политические анали- тики, которым нечеткая логика помогает ориентироваться в нечеткой действи- тельности.

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

 


FuziCalc

 

Наиболее ярким представителем является пакет FuziCalc американской фирмы FuziWare. Интерфейсная оболочка пакета  FuziCalc схожа с обычными электронными таблицами. Поля, значения которых известны неточно, помеча- ются специальным значком (в FuziCalc это серый треугольник). Сами значения в простейшем случае представляются четверкой чисел (минимум, максимум и наиболее вероятный диапазон). Например: "Обычно в моем магазине бывает от

30 до 50 продаж в день, но никогда не менее 10 и не более 80". В графическом представлении такому высказыванию соответствует трапециевидная функция принадлежности (впрочем,  пакет  позволяет  описывать  и  значительно более сложные функции). Итоговый результат вычислений будет представлен подоб- ными же четверками чисел, например: "Завтрашняя прибыль вероятнее всего будет находиться в диапазоне 1050 - 1200 долларов, в наихудшем случае - око- ло 800, в наилучшем - 1200". Благодаря своей компактности и простоте интер- фейса, пакет FuziCalc находит применение при проведении оценочных расчетов и прогнозов в самых различных областях экономики. Там, где исходные данные


неточны и неполны, а скорость получения первых оценок критична - нечет-

 

кая логика практически не имеет альтернатив.

 

 


Бизнес-прогноз

 

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

 

Manifold

 

Продукты  Manifold  Net  Manifold  Database  Commander  и  Manifold Business Tools имеют в своем составе систему поддержки принятия решений (Decision Support System), которая обеспечивает сложную систему поиска на основе критериев "нечеткой логики" (fuzzy logic). Подобные системы раньше можно было встретить лишь на рынке очень дорогих баз данных. Внедрение "нечеткой логики" в Manifold System стало первым подобным событием в мире

ГИС.

 

Большая часть ГИС обеспечена средствами для создания запросов. Для

 

СУБД запросы являются неотъемлемой частью. Обычно это SQL, расширенный в  ГИС пространственными операторами и  функциями, с  помощью которых осуществляются запросы, основанные на пространственных соотношениях ме- жду объектами. Проблема традиционных подходов SQL и других языков запро- сов заключается в том, что критерии поиска в них жестко определены, даже в


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

Возьмем самый простой пример - попытаемся определить понятие "хо- роший студент", основываясь на оценках и посещаемости. В традиционных языках запросов типа SQL мы возьмем определенную среднюю оценку, ска- жем, 4.2 и выше, а посещаемость потребуем на уровне 4 дней в неделю. В этом случае студент со средней оценкой 4.19 и ежедневной посещаемостью в разряд "хороших" уже не попадет. Окажутся "обиженными" и студенты со средней оценкой 4.5, но с посещаемостью 3 дня в неделю, хотя вряд ли кто-нибудь ре- шится отнести таких студентов к "плохим".

Система  поддержки  принятия  решений  Manifold  позволяет  создавать пользовательские профили, которые гибко определяют критерии поиска. На- пример, будем искать "хороших" студентов с помощью профилей "высокой ус- певаемости" и "хорошей посещаемости". Первый профиль укажет, что студен- ты с оценкой 5.0 в высшей степени отвечают нашему представлению о "хоро- шем студенте"; все имеющие средний балл выше 4.2 вполне укладываются в классификацию "хороших", а студенты со средним баллом меньше 4.2 уже в перестают считаться хорошими, но не сразу, а постепенно, по мере снижения их среднего балла. На самом деле, именно такими гибкими критериями мы и пользуемся в реальной жизни, основывая их на таких "компромиссных" реше- ниях. Поэтому запрос с помощью "нечеткой логики" отберет "хороших студен- тов", гораздо ближе отразив наше представление об этом понятии, чем запрос по старинке (на SQL). Создавая профиль, мы можем также определить, сколь быстро со снижением среднего балла студенты перестают быть хорошими, мо- жем ли мы допустить, чтобы оценка 3.8 все еще позволяла какому-то проценту студентов быть успевающими, или это исключено категорически. Для упроще- ния работы с нечеткой логикой Manifold вводит очень понятные, нет, не мате- матические термины - обыденные слова, такие как "профили" (profiles), "огра- ничения" (hedges).


Существуют предопределенные профили под названиями "Высокий" (high), "Низкий" (low), "Средний" (average). Ограничения могут быть, напри- мер, такими: "чрезвычайно", "слегка", "очень", "что-то вроде". То есть, завер- шив выявление "хороших" студентов, можно заняться поиском очень хороших студентов, сформулировав примерно такой запрос: "выбрать студентов, чей средний балл чрезвычайно высокий", где "чрезвычайно" (extremly) - это огра- ничение, а "высокий" - профиль.

Сложные запросы, состоящие из нескольких профилей, создаются путем объединения профилей с помощью привычных логических операторов AND, OR, AND NOT, OR NOT.

 



Нечеткая логика в Мatlab

 

Fuzzy logic toolbox - встроенная в Матлаб совокупность функций, обеспе-

 

чивающая набор средств, позволяющих:

 

- создавать и редактировать нечеткие системы внутри среды Матлаб;

 

- встраивать нечеткую подсистему в Симулинк (поставляется с Мат-

 

лабом) при моделировании общей системы;

 

- построить нечеткую систему в Матлабе в виде процедуры, вызывае-

 

мой из программы, написанной на Си.

 

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

- функции командной строки (command line functions);

 

- графический интерактивный интерфейс;

 

- использование встроенных блоков Симулинка.

 

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

- type имя_функции


Кроме того, Матлаб позволяет их модифицировать путем копирования

 

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

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

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

В Матлабе есть множество встроенных функций принадлежности, в част-

 

ности:

 

- сигмоидальная;

 

- двухсторонняя сигмоидальная;

 

- гауссова;

 

- колоколообразной формы;

 

- S-функция принадлежности;

 

- Z-функция принадлежности;

 

- трапециевидная;

 

- треугольная и др.

 

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




Дата: 2018-12-21, просмотров: 355.