автоматически в следующих случаях:
появились новые данные (вывод от фактов к цели);
требуется найти данные (вывод от цели к фактам) для автоматического вызова других правил, процедур или формул;
требуется определить значения переменных;
каждые n секунд для оценивания правила в указанном интервале времени.
Подобно правилам, процедуры выполняются в реальном времени. Процедуры, правила и модели выполняются одновременно согласно их приоритетам. Процедуры могут использоваться для эффективного представления поведения объектов. Для процедур можно определить состояния ожидания и выполнять обработку информации параллельно. В результате это позволяет формировать мощные прикладные системы реального времени проще и быстрее, чем с помощью традиционных инструментальных средств программирования.
Работа в реальном времени, операционные решения и реакции зачастую должны быть выполнены мгновенно. Прикладные программы в G2 могут одновременно выполнять рассуждения относительно многократно выполняемых действий в реальном масштабе времени, перерабатывая тысячи правил, выполняя процедуры и модели согласно их приоритетам. Для хранения хронологий данных и событий и для рассуждения относительно поведения через какое-то время используются переменные типа время.
G2 позволяют динамически моделировать системы и процессы, используя объекты, правила, процедуры и формулы. Во время разработки модели используются вместо объектов реального мира, что позволяет непрерывно проверять прикладные программы в течение их разработки. Модели могут использоваться на этапе эксплуатации как часть прикладной программы G2 для сравнения фактических и модельных знаний.
Модели можно также использовать для проведения анализа и ответа на вопросы «ЧТО-ЕСЛИ» при определении лучших рабочих условий или лучших проектов. Модели можно также использовать для предсказания важных параметров действий в реальном времени, например, качество изделия или затрат.
G2 объединяет в себе как универсальные технологии построения современных информационных систем (стандарты открытых систем, архитектура «клиент/сервер», объектно-ориентированное программирование, использование ОС, обеспечивающих параллельное выпол-
76
нение в реальном времени многих независимых процессов), так и специализированные методы (рассуждения, основанные на правилах, рассуждения, основанные на динамических моделях, или имитационное моделирование, процедурные рассуждения, активная объектная графика, структурированный естественный язык для представления базы знаний), а также интегрирует технологии систем, основанных на знаниях с технологией традиционного программирования (с пакетами программ, с СУБД, с контроллерами и концентраторами данных и т.д.).
1.5.8. Инструментальное программное обеспечение ESWin
Программное обеспечение ESWin разработано совместно кафедрой вычислительной техники НГТУ и фирмой «ИНСИКОМ» (Интеллектуальные системы и комплексы) и реализовано в среде Delphi 5.0.
ESWin – инструментальное программное обеспечение для создания экспертных систем, решающих задачи диагностики, идентификации и классификации. В состав этого ПО входят пять программ:
-программная оболочка ESWin, предназначенная для интерпретации баз знаний (ориентированная на использование при разработке
иотладке баз знаний);
-программная оболочка ESWinK для запуска баз знаний конечным пользователем;
-редактор-конструктор баз знаний EdKb, позволяющий в удобной форме конструировать, просматривать и редактировать базы знаний;
-программа KBView для просмотра и диагностики целостности баз знаний;
-программа KBOptim для редактирования и оптимизации баз знаний.
Эти программы могут работать независимо друг от друга или в комплексе.
ПО ESWin полностью освобождает разработчика от создания программ, его основные трудозатраты связаны с наполнением базы знаний общими и (или) специфическими знаниями. При этом могут возникнуть следующие трудности:
управляющие стратегии, вложенные в механизм вывода инструментария, могут не соответствовать методам решения, которые использует эксперт, взаимодействующий с данной системой, что может
77
привести к неэффективным, а возможно, и неправильным решениям;язык представления знаний, принятый в инструментарии, мо-
жет не подходить для данного приложения.
Значительная компенсация этих трудностей достигается применением проблемно/предметно-ориентированных средств.
В пакете ESWin реализовано представление знаний в виде пра- вил-продукций, фреймов и лингвистических переменных. Для решения задач в нем реализован нечеткий обратный логический вывод.
1.6.Мультиагентные системы
1.6.1.Основные понятия
Проблематика интеллектуальных агентов и мультиагентных систем (MAC) сформировалась на основе результатов, полученных в рамках работ по распределенному искусственному интеллекту (DAI), распределенному решению задач (DPS) и параллельному искусственному интеллекту (PAI). Но, пожалуй, лишь недавно она выделилась в самостоятельную область исследований и приложений и все больше претендует на одну из ведущих ролей в рамках интеллектуальных информационных технологий. Спектр работ по данной тематике весьма широк, интегрирует достижения в области компьютерных сетей и открытых систем, искусственного интеллекта и информационных технологий и ряда других исследований, а результаты уже сегодня позволяют говорить о новом качестве получаемых решений.
К построению агентно-ориентированных систем можно указать два подхода: реализация единственного автономного агента или разработка мультиагентной системы. Автономный агент взаимодействует только с пользователем и реализует весь спектр функциональных возможностей, необходимых в рамках агентно-ориентированной программы. В противовес этому MAC являются программно-вычис- лительными комплексами, где взаимодействуют различные агенты для решения задач, которые трудны или недоступны в силу своей сложности для одного агента. Часто такие мультиагентные системы называют агентствами, в рамках которых агенты общаются, кооперируются и договариваются между собой для поиска решения поставленной перед ними задачи.
Агентные технологии обычно предполагают использование оп-
78
ределенных типологий агентов и их моделей, архитектур MAC и опираются на соответствующие агентные библиотеки и средства поддержки разработки разных типов мультиагентных систем.
Общепринятого определения «агента» пока не существует. Рассматриваемый в какой-либо системе мультиагент – это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем и/или пользователем. Таким образом, в рамках мультиагентных систем агенты рассматриваются как автономные компоненты, действующие по определенному сценарию. Классифицируются агенты на четыре основных типа: простые, умные (smart), интеллектуальные (intelligent) и действительно интеллектуальные (truly intelligent).
Интерес для построения МАС в задачах инженерии знаний представляют в большей степени интеллектуальные и действительно интеллектуальные агенты, которые отличаются тем, что поддерживают помимо автономного выполнения взаимодействие с другими агентами и слежение за окружением – способность использовать абстракции, адаптивность поведения, обучение на прецедентах и толерантность к ошибкам.
Проблема в создании МАС на принципах искусственного интеллекта состоит в том, что при проектировании точной и полной модели представления мира, процессов и механизмов рассуждения в нем очень тяжело создать адекватную и полную картину мира. Несмотря на явные трудности, идея использовать агентов для решения разноплановых задач очень популярна в последнее время. Однако задача проектирования МАС и действительно интеллектуальных агентов требует специальных знаний и является ресурсоемкой задачей.
Программные интеллектуальные агенты – это новый класс систем программного обеспечения, которое действует либо от лица пользователя, либо от лица системы, делегировавшей агенту полномочия на выполнение тех или иных действий. Они являются, по сути, новым уровнем абстракции, отличным от привычных абстракций типа классов, методов и функций. При этом разработка МАС позволяет создавать системы, обладающие расширяемостью/масштабируемостью, мобильностью/переносимостью, интероперабельностью, что, несомненно, очень важно при разработке систем, основанных на знаниях.
Построение программных систем по принципу МАС может быть обусловлено следующими факторами:
- некоторые предметные области применяют МАС в тех случаях,
79
когда логично будет каждого из участников процесса представить в виде агента, например, социальные процессы, в которых каждый из участников играет свою роль;
-параллельным выполнением задач, т.е. если предметная область легко представляется в виде совокупности агентов, то независимые задачи могут выполняться различными агентами;
-устойчивостью работы системы, когда контроль и ответственность за выполняемые действия распределены между несколькими агентами; при отказе одного агента система не перестает функционировать, что позволяет поместить агентов на различных компьютерах;
-модульностью МАС, что позволяет легко наращивать и видоизменять систему, т.е. легче добавить агента, чем изменить свойства единой программы; системы, которые изменяют свои параметры, со временем могут быть представлены совокупностью агентов; модульность обуславливает легкость программирования МАС.
Мультиагентные системы подразделяются на кооперативные, конкурирующие и смешанные. Агенты в кооперативных системах являются частями единой системы и решают подзадачи одной общей задачи. Понятно, что при этом агент не может работать вне системы и выполнять самостоятельные задачи. Конкурирующие агенты являются самостоятельными системами, хотя для достижения определенных целей они могут объединять свои усилия, принимать цели и команды от других агентов, но при этом поддержка связи с другими агентами не обязательна. Под смешанными агентами понимаются конкурирующие агенты, подсистемы которых также реализуются по агентной технологии. Кроме общения с другими агентами должна быть реализована возможность общения с пользователем.
1.6.2. Свойства и архитектура агента
Иногда агентов определяют через свойства, которыми они должны обладать. Основные свойства интеллектуальных агентов:
-автономность – способность функционировать без вмешательства со стороны своего владельца и осуществлять контроль внутреннего состояния и своих действий;
-социальное поведение – возможность взаимодействия и коммуникации с другими агентами;
-реактивность – адекватное восприятие среды и соответствую-
80