Глобализация мировой экономики приводит к существенным изменениям в организации производства и сбыта продукции. Высокую эффективность производства в современном мире могут обеспечить лишь гибкие и мобильные распределенные производства, обеспечивающие быструю реакцию на изменяющиеся запросы потребителей, изменения на рынках сырья и комплектующих и т.д.
Современные системы логистики, обеспечивающие тре
буемые реакции путем оптимального перераспределения финансовых, материальных и других ресурсов, в этих условиях оказываются слишком централизованными и, как следствие, слишком жесткими, чтобы справиться с постоянно меняющимися объемами и составом внешних и внутренних потоков заказов и готовых компонент продукции.
Для решения этой проблемы в настоящей работе предлагается мультиагентная система, которая позволяет построить и промоделировать работу полностью распределенных систем производства и сбыта продукции.
Типичная структура сети производства и сбыта продукции (рис.1) включает в себя:
Основой для развертывания сети производства и сбыта продукции является структура городов и дорог (шоссейных, воздушных, водных и других).
Типичными задачами логистики систем производства и сбыта продукции являются:
В целом, мы определяем "логистику" как "процесс принятия решений в сфере нормирования и распределения ресурсов" [Rzevski, 1999] - другими словами, "логистика" представляет собой комплекс мер по удовлетворению спроса на ресурсы в заданном месте и в заданное время.
Интеллектуальный агент - это программный объект, способный действовать в заданной программной среде, рассуждать и коммуницировать с себе подобными. Подробный обзор современного состояния мультиагентных систем был представлен в [Хорошевский, 1999].
В настоящем подходе каждому заказу (далее - кружочек) и каждому готовому элементу ("квадратик") продукции соответствует свой интеллектуальный агент, а главной особенностью разрабатываемой системы становится способность обеспечивать нахождение соответствия между заказами и готовыми частями ("matching demand to supply").
В этом плане развиваемый подход реализует основные принципы холизма, при которых централизованная структура заменяется взаимодействием автономных модулей, способных к динамическому взаимодействию [Brussel et al., 1998, Skobelev, 2000]. Прекрасным примером такой структуры может являться рой пчел, в котором каждая из пчел является вполне автономной системой, но в целом, рою пчел присущи и все черты целостного объекта.
Важным свойством разрабатываемых агентов является их способность к переговорам друг с другом, разработанная на основе технологии виртуальных "круглых столов" [Vittikh et al., 1998].
Типичный пример переговоров приводится на рисунке 3. Поступает заказ на деталь, и тут же создается Агент Заказа для проведения переговоров о принятии его в производство. Агент заказа находит уже существующую готовую деталь на одном из складов (шаг 1). Он предлагает определенную цену за данную деталь, а Агент Детали, в свою очередь, может принять это предложение или отказаться от него, в зависимости от предложенной цены. Предположим, что Агент Детали принимает предложение (шаг 2), деталь резервируется, и ее цвет на экране меняется. Предположим, что далее в систему поступает другой заказ (шаг 3), и второй Агент Заказа пытается зарезервировать для себя ту же деталь, поскольку другой подходящей не находит. Понимая, что деталь уже занята, Агент Заказа предлагает отменить бронирование за определенную компенсацию. В результате Агент Детали снова обращается к первому Агенту Заказа с предложением принять компенсацию. Первый Агент Заказа может согласиться и принять компенсацию, если только это не повлияет на сроки его исполнения, или дата поставки может быть перенесена на более поздний срок. Если первый Агент Заказа согласен, то деталь перебронируется заново, теперь уже для второго заказа (шаг 4), и ее цвет снова меняется.
В ходе переговоров разрабатываемые агенты могут реализовывать разные стратегии. Например, "осторожный" агент заказа некоторой части последовательно обходит весь "рынок" предложений производителей, торгуется с ними и в результате находит наилучшее предложение (которое, впрочем, к моменту принятия решения уже может быть "снято"), а "решительный" - немедленно бронирует первое же предложение, если оно удовлетворяет его требованиям. В итоге, вступая в переговоры, агенты могут как конкурировать между собой, так и кооперироваться для достижения заданной цели.
Кроме "роя" агентов заказов и готовых частей, постоянно ищущих встречи, в системе имеется и ряд других более традиционных дополнительных агентов: агенты производителя, склада, сборочного производства (конвейера) и некоторые другие. При этом агент склада взимает с заказов плату за хранение частей и постоянно до-заказывает части, постоянно оценивая соотношение между меняющимся спросом и предложение. Агент конвейера управляет критериями сборки и при необходимости может переключать переговоры заказов с получения максимальной прибыли, например, на резервирования времени по ремонту сборочной линии.
От различных стратегий, реализуемых агентами "роя" и дополнительными агентами, зависят важные макроэкономические параметры всей логистической системы.
Из вышеприведенного описания ясно, что в процессе переговоров и ре-переговоров мультиагентная система находит решение, которое максимально удовлетворяет всех участников, обеспечивая если не оптимальные, то квазиоптимальные показатели для всей цепочки. Поскольку процесс переговоров непрерывен, динамика модели системы полностью отражает ее динамику в реальной жизни - со всеми непредвиденными обстоятельствами и вытекающими из них последствиями.
На данный момент другой такой технологии, способной автономно осуществлять процесс согласования спроса и предложения, видимо, не существует.
В архитектуре разрабатываемой системы основную часть составляет предметно-независимое мультиагентное ядро, в составе которого выделяются следующие базовые компоненты (рис. 4):
При этом предметная ориентация системы достигается путем создания дополнительных классов агентов в системе Delphi и внедрение их через EM API, а так же через расширение предметной базы знаний.
Кроме перечисленных выше блоков система имеет 4 типа интерфейсов, для взаимодействия с внешними компонентами, это: