Нечеткие вычисления при помощи переговоров программных агентов.
ВВЕДЕНИЕ
Нечеткие вычисления (fuzzy computing) являются одним из методов мягких вычислений (soft computing), которые так же включают такие направления, как: нейровычисления, генетические вычисления, самообучающиеся системы, байесовский вывод и т.д. Основным отличием мягких вычислений от традиционных, жестких является приспособление к «всеобъемлющей неточности реального мира». Руководящим принципом мягких вычислений является: «терпимость к неточности, неопределенности и частичной истинности для достижения удобства манипулирования, низкой стоимости решения и лучшего согласия с реальностью» [1]. Исходной моделью для мягких вычислений служит человеческое мышление.
Мягкие вычисления применяются в тех случаях, когда эффективного четкого решения не существует либо по причине вычислительной сложности самой задачи (например, нечеткий эвристический алгоритм для решения задачи из NPC), либо, когда четкое решение невозможно в силу особенностей предметной области (например, обработка натуральных языков). Наиболее широко нечеткие вычисления применяются для автоматизации процесса принятия решений, основанного на базе экспертных знаний. Потому, что как правило экспертные знания (человеческий опыт) удается выразить именно в виде набора нечетких правил. Вот основные области применения нечетких алгоритмов:
автоматическое/полуавтоматическое управление в экономике;
семантический веб;
медицина (постановка диагноза);
ИИ для компьютерных игр;
распознавание образов;
автоматическое управление (например ABS в автомобиле);
тревожные системы (предупреждения об опасности);
диагностика в медицине.
Нечеткий алгоритм традиционно представляет собой набор правил вида:
Исполнение нечеткого алгоритма состоит из четырех этапов: фазификация (введение нечеткости), нечеткий вывод, композиция и дефазификация (построение четкого ответа). Алгоритмы нечеткого вывода различаются видом используемых правил логических операций и способом дефазификации. Наиболее известны следующие модели нечеткого вывода: Мамдани, Сугено, Ларсена, Цукамото.
В данной работе будет предложен новый способ кодирования и интерпретации нечетких алгоритмов. Исследуемый способ позволяет кодировать и исполнять нечеткие инструкции более общего вида. Исполнение нечетких инструкций осуществляется посредством эмулирования переговоров программных агентов, что позволяет естественно и гибко формулировать нечеткие правила и интерпретировать их. Используя мультиагентные системы таким образом, можно разрабатывать реактивные системы с нечетким поведением. Мультиагентные системы хорошо подходят для моделирования исполнения нечетких правил потому, что концепция взаимодействия программных агентов ориентирована именно на работу в условиях неточных и неполных знаний и субоптимальности поведения.
Предложенный способ позволяет получать более сложный по своей структуре выходной результат вычислений (или способ поведения реактивной системы). Это обеспечивается тем, что множество результатов переговоров агентов очень велико. Агенты могут как прийти к единому, кооперативному решению, так и разбиться на произвольные коалиции. Каждая коалиция при этом сформирует свой, индивидуальный план действий.
Существует много научных работ в которых предложено обратное: использование нечеткой логики для осуществления переговоров программных агентов. Предложенный способ проведения нечетких вычислений ранее не выдвигался. Нечеткие инструкции будут задаваться и интерпретироваться посредством введения различных программных агентов и запуска процесса переговоров. У каждого агента будет собственная, предпочтительно простая, модель поведения и собственные интересы.
Таким образом, задача данной работы формулируется так: разработать мультиагентную модель кодирования и исполнения нечетких правил. Разработать правила кодирования и исполнения классических нечетких инструкций в рамках предложенной модели. Разработать правила кодирования и интерпретации расширенного набора конструкций типа FOR_EACH, FOR, WHILE. Опробовать предложенную модель, разработав и реализовав нечеткий эвристический алгоритм, нешающий NP-полную задачу о расположении факультетов (facility location problem). Провести численный эксперимент с реализацией алгоритма и сравнить с широко известным приближенным factor-3 алгоритмом, решающим ту же задачу.
Программа курса «Теория автоматов» Понятие об автомате (дка): черный ящик, алгебра, помеченный орграф. Распознавание слов и языков при помощи дка. Полный и неполный...