Научная электронная библиотека
Монографии, изданные в издательстве Российской Академии Естествознания

Приложение 2. Система имитационного моделирования AnyLogic5.2

Система имитационного моделирования AnyLogic5.2

На рис. П.2.1 представлены основные процессы базового предприятия в СИМ AnyLogic.

P2_1.tif

Рис. П.2.1. Модель базового предприятия в СИМ AnyLogic 5.2

Модель элемента процесса преобразования «выполнение заказов на производстве» (рис. П.2.2):

● вектора входов / выходов / средств представлены входами («заказы на выполнение»; выходами («выполненные заказы»); средствами («массив плановой загрузки производственных мощностей», «количество свободных производственных мощностей», «количество свободных рабочих»).

● объем захватываемого / освобождаемого ресурса / средства, описывается на языке Java в виде постоянной / функции / случайной величины. Захват / освобождение необходимого количества ресурсов описывается в виде конструкции на языке Javaследующего вида:

if (mess.pi <= ch_m.pf)

{

ch_m.pf = ch_m.pf-mess.pi;

ch_m.xf = ch_m.xf-mess.xi;

}

P2_2_1.tif

Рис. П.2.2. Вектора входов/выходов/средств

В качестве средств могут быть описаны: исполнители работы, оборудование, аппаратное обеспечение, программное обеспечение, машинный ресурс. С помощью объектов на языке Java можно ввести необходимое количество средств;

● длительность операции: любой объект, описываемый на языке Java, в частности, постоянная / функция / случайная величина. На рис. П.2.3 длительность равна значению переменной Ti;

● приоритет операции не устанавливается, а задается тип очереди FIFO (первым пришел – первым ушел), специальными средствами можно создать очередь LIFO (последним пришел – первым ушел) или смоделировать приоритетную очередь. Выбор типа очереди показан на рис. П.2.4;

● условие запуска элемента преобразования ресурсов описывается функцией на языке Java, в которой могут использоваться любые переменные модели. Например, это может быть функция времени, ресурсов или средств. Так, на рис. П.2.5 представлено следующее условие запуска операции «Выполнение заказа»: количество необходимых производственных мощностей должно быть не больше количества свободных производственных мощностей. Если это условие не выполняется, запуск элемента преобразования откладывается на единицу модельного времени (один день), после чего условие запуска проверяется вновь.

P2_3_1.tif

Рис. П.2.3. Длительность операции

P2_4-1.tif

Рис. П.2.4. Приоритет и тип приоритета

P2_5_1.tif

Рис. П.2.5. Условие запуска элемента преобразования

Модель ресурса и средства:

● описывается любым объектом на языке Java;

● функциями на языке Java могут быть описаны ограничения, минимум, максимум и т. д.

Так, на рис. П.2.6 представлено описание количества производственных мощностей ST = 70 и количества трудовых ресурсов PR = 50. Могут быть заданы любые типы ресурсов.

P2_6_1.tif

Рис. П.2.6. Описание ресурсов

● один тип / разные типы. Специальных средств описания типов ресурсов нет, можно создать любые типы ресурсов, описав объекты на языке Java.

Определение функции расчета параметра «штрафные санкции»

Можно описать расчет любых параметров функциями на языке Java. На реальном предприятии возможно отклонение фактического времени выполнения заказа от планового. Это может произойти по ряду причин, в первую возникают очередь задержки на исправление брака. За каждый день фактической задержки начисляется штраф, который затем выплачивается потребителю. Приведен пример реализации этого правила агентом – менеджером с помощью функции man_func3. Здесь Hi – размер штрафа по i-му заказу, Si – стоимость i-го заказа, j-е текущее модельное время, Tetai – время начала выполнения заказа, Ti – плановое время выполнения заказа.

Функция man_func3

if (mess.ri = = 2)

{

double j;

j = getTime();

if (j-mess.Tetai > mess.Ti)

{

mess.Hi = 0.001*mess.Si*(j-mess.Tetai-mess.Ti);

}

}

return 2;

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

Элементы слияния и разветвления процессов. В данном пакете предусмотрено слияние и разветвление потоков ресурсов. Например, рассчитанное агентом–менеджером плановое время задержки выполнения заказа и его стоимость сообщаются потребителю, который принимает окончательное решение о размещении заказа на предприятии. В случае отказа потребителя информация поступает агенту – директору для анализа причин отказа. В случае согласия потребителя на условия размещения заказа (по стоимости и по времени выполнения) он перечисляет денежные средства на расчетный счет предприятия (моделируется в виде сообщения бухгалтеру с задержкой на банковские дни). При этом заказ запускается в производство. Эти действия описывает функция man_func2. Здесь Si – стоимость i-го заказа, SS – предельная стоимость для потребителя, Ui – рассчитанное время задержки выполнения заказа (из-за нехватки ресурсов), UU – предельное время задержки потребителя.

Функция man_func2

if ((mess.Si < = mess.SS)&&(mess.Ui < = mess.UU))

{ return 1; }

else {return 3;}

Блок разветвления потоков ресурсов показан на рис. П.2.7.

P2_7_1.tif

Рис. П.2.7. Разветвление потоков ресурсов

Функционально-стоимостный анализ. Система AnyLogic не имеет специальных средств поддержки функционально-стоимостного анализа.

Динамический анализ данных. В системе можно создавать различные графики и диаграммы, отражающие изменения их состояний в модельном времени (рис. П.2.8).

P2_8.tif

Рис. П.2.8. Средства динамического анализа данных

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

Возможность построения мультиагентных моделей. На рис. П.2.1 представлены агенты модели базового предприятия, каждый из которых обладает индивидуальным поведением и знаниями. На основе описанных классов агентов можно создавать экземпляры класса с индивидуальным поведением. Сценарии поведения агентов и база знаний агентов описываются на языке высокого уровня (ЯВУ) Java, обмен сообщениями между агентами также описывается на языке Java.

Рассмотрим подробнее деятельность агента «chief – начальник производства». Он запускает заказы в производство, при этом задействуется необходимое количество производственных мощностей и трудовых ресурсов. При запуске заказа в производство агент «начальник производства» осуществляет важную функцию планирования. Он планирует количество занятых производственных мощностей в массиве плановой загрузки по дням. Этот массив использует агент «менеджер» для расчета времени задержки выполнения заказа и согласования его с агентом «потребителем». Наличие планирования обуславливает интеллектуальное поведение агента.

Фрагмент поведения агента «начальник производства» описано функцией chief_func1. Вызов функции показан на рис. П.2.9.

P2_9_1.tif

Рис. П.2.9. Структура Агента «chif – начальник производства»

Функция chief_func1

if (mess.pi < = ch_m.pf)

{

ch_m.pf = ch_m.pf-mess.pi;

ch_m.xf = ch_m.xf-mess.xi;

if (ch_m.xf < 0)

{

mess.yi = -ch_m.xf;

mess.xi = mess.xi + ch_m.xf;

ch_m.xf = 0;

}

mess.Tetai = getTime();

double k = getTime();

int j = (int)k;

int i = 1;

while (i < = mess.Ti)

{

double r = get(B,(j-1)) + mess.pi;

B.set((j-1),r);

i + + ;

j + + ;

}

}

return 2;

Поддержка русского языка. Русский языкподдерживается минимально. При описании агентов, классов, переменных, параметров и т. д. русский язык не поддерживается.

Изменение параметров модели во время эксперимента. При проведении эксперимента есть возможности остановить имитацию и изменить характеристики и/или параметры.

Удобство интерфейса пакета при описании элементов процесса преобразования – дружественный интерфейс, ориентированный на программиста.

Поддержка аппарата ЭС. Система AnyLogic не имеет специальных средств описания базы знаний о предметной области и механизма вывода. Описание моделейагентов выполне- но наJava.

Проектирование концептуальной модели предметной области не поддерживается.

Описание целей системы. Система AnyLogic не имеет специальных средств описания целей системы или отдельных ее элементов.

Наличие механизмов описания ситуаций (поддержка ситуационного подхода). AnyLogic не имеет специальных средств описания ситуаций.

Наличие средств описания команд. Команды описываются на языке Java.

Описание модели на ограниченном естественном языке. Отсутствуют.

Поддержка ИМ – система AnyLogic является СИМ.

Поддержка аппарата ЭС. Система AnyLogic не имеет специальных средств интеграции с ЭС и аппарат ЭС не поддерживает.

Удобство интерфейса пакета при описании агентов – дружественный интерфейс, ориентированный на программиста.

Экспорт / импорт / открытый доступ к базе знаний модели:

● импорт начальных условий и исходных данных из внешних источников – существует механизм настройки экспорта из внешних баз данных;

● экспорт результатов экспериментов – механизм отсутствует, но при необходимости его можно описать функциями на языке Java;

● открытый доступ к базе знаний модели – отсутствует.


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074