Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
6.2. НЕЧЕТКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ6.2.1. ВВЕДЕНИЕОбработка нечеткостей в программахСреди многих разновидностей нечеткостей случайность уже давно является объектом вычислений в компьютерных программах на основе теории вероятности и статистики. В некотором смысле языки моделирования можно считать языками программирования для обработки случайностей. Нечеткости до сих пор изредка вводились в базы данных и отдельные программы, но формально обработка нечеткостей не была признана. Скорее, наоборот, почти во всех случаях нечеткости удалялись, примеры их сознательной обработки были редки. Но после того, как была предложена теория нечетких множеств, осознали важность нечетких понятий, теория была систематизирована, а ее эффективность подтверждена, стали разрабатываться многочисленные программы обработки нечеткостей, прежде всего в целях нечеткого управления, нечеткого математического планирования и нечеткого поиска библиографии. Вместе с тем все подобные программы были написаны на существующих языках программирования. Но если бы была возможность обрабатывать на языке программирования нечеткие множества в их явном виде, то средства пограммирования, объектом которых были бы нечеткости, стали бы очень полезны. Кроме того, ожидается, что применение теории нечетких множеств к самому программированию позволит создать языки программирования, обладающие новыми возможностями по обработке нечеткостей. В данном разделе рассмотрена обработка нечетких множеств, а также языки программирования, которые основаны на теории нечетких множеств и которые назовем нечетким программным обеспечением. О специализированных языках типа языков запросов в нечеткие базы данных уже упоминалось выше [15], поэтому объектом изучения здесь будут только универсальные языки как нечеткое программное обеспечение. Нечеткое программное обеспечениеНечеткое программное обеспечение, как уже говорилось выше, можно разделить на языки нечеткого программирования которые, как и раньше, позволяют обрабатывать нечеткие множества, и языки нечеткого программирования, которые выполняют управление программами с использованием теории нечетких множеств. Нечеткие множества представляются с помощью функции принадлежности, поэтому описание нечеткого множества возможно с помощью существующих языков программирования. Однако для этого необходимо для различных операций над нечеткими множествами писать сложные процедуры. Желательно в языках программирования иметь возможность легко описывать нечеткие множества и пользоваться встроенными операциями над ними. С этой целью разрабатывают языки программирования, позволяющие вести обработку нечетких множеств. Разумеется, в таких языках наряду с нечеткими множествами в качестве констант и переменных представляются и обычные четкие данные. Примеров языков в настоящее время не так много [16]. В разд. 6.2.3 мы подробно ознакомимся с языком, позволяющим обрабатывать нечеткие множества на базе языка ЛИСП. В языках нечеткого программирования, использующих теорию нечетких множеств для управления программой, конечно, можно определять и применять нечеткие множества, но главное их назначение состоит в том, чтобы либо управлять ветвлением в программах, либо получать выводы с некоторыми весами с помощью значений в [0, 1], добавляемых к каждому оператору, или нечетких множеств в [0, 1] (что можно интерпретировать как значения истинности, меру уверенности, меру достоверности, степень нечеткости и т. п.). Эти средства почти всегда применяются в языках программирования для получения выводов, к ним относятся нечеткая продукционная система [17], нечеткий Пролог [18-20] и другие языки. В отличие от языков, в которых выполняемые операторы строго определены, в языках нечеткого программирования, объектом обработки которых являются нечеткие множества, каждому оператору можно приписывать нечеткое значение истинности. В разд. 6.2.2 подробно рассмотрен пример программы на нечетком Прологе. Нечеткие программное обеспечение и аппаратные средстваРеальное нечеткое программное обеспечение на самом деле выполняется на цифровых компьютерах, построенных на основе двоичной логики, т. е. это обеспечение пишется на существующих языках компьютеров. Не кажется ли это странным? Теория нечетких множеств имеет дело с нечеткими объектами, но считается естественным, что методы их обработки основаны на строгой теории. Тем не менее остается проблема эффективности обработки: ведь нечеткое программное обеспечение, как правило, имеет низкое быстродействие. Это связано с тем, что каждое значение функции принадлежности, соответствующее одному элементу нечеткого множества, представляется с помощью нескольких двоичных разрядов, а операции над нечеткими множествами выполняются поэлементно, строго следуя двоичному представлению значений функций принадлежности. Значения функций принадлежности - числа, определяемые субъективно, по существу они не строгие, и нет необходимости в подобных строгих вычислениях. В этом смысле средства обработки нечетких множеств в современных компьютерах избыточны с точки зрения представления и вычислений. Кроме того, другая причина медленного выполнения нечетких программ заключается в том, что операции над нечеткими множествами необходимо осуществлять для каждого элемента множества. Они выполняются последовательно, хотя по существу это параллельная обработка. Проблему быстродействия можно решить, если значения функций принадлежности для каждого элемента физически представлять в виде определенного аналогового значения [21] либо представлять их группами по нескольку битов [22] и спроектировать специальные аппаратные средства для параллельных вычислений. Это концепции построения нечетких компьютеров, изложенные в разд. 6.1. Однако до настоящего времени каких-либо исследований связи нечеткого программного обеспечения с нечеткими компьютерами не проводилось. Будущее нечеткого программного обеспеченияРеально работающее нечеткое программное обеспечение в наши дни можно пересчитать по пальцам. В первую очередь развивается направление, связанное с расширением существующих языков средствами, позволяющими обрабатывать нечеткие множества и нечеткие значения истинности. Проблему быстродействия в основном решают путем проектирования специальных аппаратных средств на цифровых или аналоговых схемах для обработки нечетких множеств и добавления их к существующим цифровым компьютерам. Если учесть, что теория нечетких множеств - это теория строгой обработки нечетких объектов, то, по-видимому, аппаратные средства, на которых будет работать нечеткое программное обеспечение, - это нечеткие компьютеры, органически сочетающие в себе аналоговые и цифровые свойства (нечеткие объекты-аналоговые, а строгое управление-цифровые). Заде предложил понятие нечеткого алгоритма [23] и принципы описания суждений на естественном языке с использованием нечеткой логики [24]. Конечно, было бы идеально свободно общаться с компьютерами на естественном языке, содержащем нечеткости, но для этого вместе с исследованиями по пониманию естественного языка должны проводиться исследования нечеткой логики и нечетких компьютеров.
|
1 |
Оглавление
|