ГИБРИДНОЕ МОДЕЛИРОВАНИЕ МУЛЬТИАГЕНТНЫХ ПРОЦЕССОВ ПРЕОБРАЗОВАНИЯ РЕСУРСОВ
Аксенов К. А., Гончарова Н. В.,
Для предметной области процессов преобразования ресурсов в настоящее время не существует математической ситуационной модели, поэтому разработка соответствующего математического аппарата является актуальной задачей. В данном разделе решается задача расширения модели процессов преобразования ресурсов аппаратом ситуационного управления и мультиагентных систем.
При построении динамических моделей производственных процессов (относящихся к классу процессов преобразования ресурсов) широко используются следующие математические схемы: модели системной динамики [16–17], системы массового обслуживания [15, 74], сети Петри [2, 15], процессы преобразования ресурсов [33–39]. Математическая модель процессов преобразования ресурсов, представленная в работах [33–43], является наиболее близкой для реализации на ее основе ситуационной модели процессов преобразования ресурсов. С целью создания нового математического аппарата в работе за основу берется математическая модель процесса преобразования ресурсов и расширяется аппаратом ситуационного управления и мультиагентных систем. Также в математической модели процесса преобразования ресурсов был усилен аппарат моделирования конфликтов, возникающих на общих ресурсах и средствах.
Для реализации ситуационной мультиагентной модели, ориентированной на динамическое моделирование процессов преобразования ресурсов, как следует из первой главы, в модель [33–43] необходимо ввести следующие объекты: систему; модель системы; цель; команду управления; микроситуацию; макроситуацию; ситуацию; математический формализм; агента, событие.
Понятия системы, модели, микроситуации, макроситуации, ситуации, математического формализма, события заимствованы из работы [18].
Под системой (Sys) понимается совокупность объектов (элементов), связей между ними и собственных атрибутов. В системе все объекты должны быть связаны. В системе может изменяться значение свойств объектов и связей.
Sys = <O, {Relation}, Aself>, (2.1)
где O – |
объекты (элементы), ресурсы, средства, сообщения, преобразователи, цели, агенты, параметры; |
Relation – |
связи; |
Aself – |
собственные атрибуты системы. |
Основными объектами ситуационного мультиагентного процесса преобразования ресурсов являются (рис. 2.1): операции (Op), ресурсы (RES), команды управления (U), средства (MECH), процессы (PR), источники (Sender) и приемники ресурсов (Receiver), перекрестки (Junction), цели (G), параметры (P), агенты (Agent). Отдельно выделены информационные типы ресурсов: сигналы (Sig) и заявки на выполнение операции (Order). Параметры процесса задаются функцией от характеристик объектов и разделяются на производные (свертка различного типа характеристик) и консолидированные (свертка одноименных характеристик операций процесса). Описание причинно-следственных связей между элементами преобразования и ресурсами задается объектом «связь» (Relation). Агенты управляют объектами процесса преобразования ресурсов и взаимодействуют между собой. Существование агентов предполагает наличие сообщений (Message), микроситуаций (Mis), макроситуаций (Mas), ситуаций (Sit) и решений (планов действий) (Decision). Элементы с индексом «Ca» – условия запуска операций, перекрестков.
Рис. 2.1. Объекты ситуационного мультиагентного процесса преобразования ресурсов
При описании системы создается ее модель (М). В модели пренебрегают некоторыми связями, параметрами и объектами. Поэтому для одной модели может существовать множество различных систем. Понятие модели будет отличаться от понятия системы набором условий, которые определяют совокупность объектов и связей как систему.
Модели процесса преобразования ресурсов (М) соответствует следующая структура:
M = <Name, desc, O, {Relation}, Аself>, (2.2)
где Name – |
имя модели; |
desc – |
описание модели. |
Методы: создание объекта процесса преобразования ресурсов; создание агента; создание цели.
Под математической формулой или формализмом (H), задающим характер взаимоотношений между объектами (правил изменения состояния модели), будем понимать слово, состоящее из последовательности объектов и отношений между ними;
Н ≡ О1Relation‗O2Relation1O3...RelationnOn+1, (2.3)
где Relation‗ – отношение эквивалентности.
Возможны следующие варианты: продукционные правила; теоремы; математические механизмы, используемые при рассуждениях с неточными знаниями; формулы; сценарии и т. д. Функция (F), которая в дальнейшем будет использоваться при описании объектов мультиагентного процесса преобразования ресурсов, является видом математического формализма.
Цель (G). Цели могут быть представлены в различных видах: целевой функции, иерархии (например, И/ИЛИ граф), графа причинно-следственных связей (например, методика BSC, см. раздел 1.2.2), и т. д.
Цель Gj характеризуется: именем цели (Name), целевой функцией Fj, зависящей от параметров {P G(j)} (в качестве параметров могут выступать атрибуты объектов модели процесса преобразования); текущим значением (value); плановым (желаемым) значением (plan), начальным значением (start), критическим значением (critical):
(2.4)
Методы: достижение цели; сигнализация критического значения.
Ресурс (Res). Каждому ресурсу в модели соответствует следующая структура:
(2.5)
,
где – |
структура b-го ресурса; |
name – |
имя ресурса; |
kind – |
тип ресурса (материальный, финансовый, информационный, энергетический, трудовой); |
RESb(t) ∈ [0, M] – |
текущее значение ресурса; |
RESbMAX ∈ [0, M] – |
максимально возможное значение ресурса; |
– |
начальное значение ресурса; |
– |
конечное значение ресурса; |
Costb – |
цена единицы b-го ресурса; |
– |
приращение в текущий момент времени; |
уменьшение в текущий момент времени; |
|
– |
стоимость b-го ресурса; |
t0 – |
время начала моделирования; |
– |
суммарное приращение ресурса за интервал времени; |
– |
суммарное уменьшение ресурса за интервал времени. |
Metric_R – |
единица измерения ресурса. |
Над ресурсом могут выполняться следующие операции, – в терминологии объектно-ориентированного подхода – (ООП) методы: уменьшение ресурса, увеличение ресурса, анализ состояния ресурса.
Перед рассмотрением объекта средство введем понятия события и действия. Под простейшим событием (eτ) понимается момент времени, в который произошло изменение значения какого-либо атрибута модели.
(2.6)
где τ – |
момент времени; |
а – |
атрибут; |
– |
значение атрибута до события; |
– |
значение атрибута после события. |
Под действием (A) понимается изменение состояний объекта или модели, происходящее за конечный промежуток времени. Действие характеризуется событием и функцией действия, приводящей к изменению значения атрибута объектов.
A = <e, F A, {a}>, (2.7)
где e – |
событие; |
F A – |
функция действия; |
{a} – |
множество изменяемых атрибутов. |
Средство (Mech). Каждому средству в модели соответствует следующая структура:
(2.8)
где – структура y-го средства;
name – имя средства;
kind – тип средства (оборудование / трудовой ресурс);
MECHy(t) ∈ [0, M] – текущее количество свободных y-х средств;
MECHALLy ∈ [0, M] – всего средств;
– время создания;
StatusMech = {wait, active, lock, other} – состояние средства, определенное на конечном множестве состояний: wait – ожидание, active – выполнение, lock – прерывание, other – набор расширяемых состояний, который может быть связан с различными видами возникаемых поломок и действий по их устранению;
Amin – действие по запуску средства в момент начала преобразования;
Amout – действие по остановке средства в момент окончания преобразования;
Amuse – действие по выполнению преобразования;
Amlock – действие по остановке средства в момент прерывания преобразования;
Amunlock – действие по запуску средства в момент продолжения преобразования;
Amother– действие по устранению поломки;
– единоразовые затраты ресурсов при начале преобразования (запуск средства);
– единоразовые затраты ресурсов при окончании преобразования (остановка средства);
– расход ресурсов в единицу времени, обеспечивающий работу средства, может быть задан функцией;
– единоразовые затраты ресурсов при захвате средства другой операцией (при блокировке текущей операции);
– единоразовые затраты ресурсов при освобождении средства (продолжении преобразования после прерывания);
– затраты ресурсов при возникновении и устранении поломки;
– периодичность возникновения поломки, может быть задана функцией;
producty – производительность средства в единицу времени, может быть задана функцией от расхода ресурсов;
Costy – начальная цена единицы y-го средства;
– суммарное время использования средства;
– суммарное время простоя средства.
С точки зрения удобства описания модели реальных процессов преобразования ресурсов и усиления аппарата конфликтов в рамках данной работы была введена модель поведения средства (действия – Amin, Amout, Amuse, Amlock, Amunlock, Amother) и расширен наборатрибутов ( StatusMech; ; ; producty).
Выполнение любого действия может приводить как к потреблению ресурсов y-м средством, так и восполнению (в этом случае знак «минус» меняется на «плюс»):
(2.9)
Над средствами выполняются следующие методы: создание, удаление, захват, освобождение, амортизация, отказ (поломка), восстановление.
Операция (Op). Процесс преобразования ресурсов может состоять из одной или множества операций. Основа элементарной операции процесса преобразования ресурсов (Opk) была взята из [33–37] и [118] и была дополнена в направлении ситуационного управления, а также усиления аппарата моделирования конфликтов, возникающих на общих ресурсах и средствах. Opk соответствует следующая структура:
Opk = <f, in, out, u, resLock, resUnLock, chOp, gOp, сa,mech,
StatusOp, time, prior, kind_prior, break_off>, (2.10)
где f – функция, реализуемая операцией;
in = {in1,…,inn} – множество входов, различных типов;
out = {out1,…,outm} – множество выходов, out = f(in);
u = {u1, …, uz} – множество команд управления;
– множество ресурсов, необходимых для прерывания операции, – множество ресурсов, необходимых для продолжения выполнения операции;
– характеристики операции;
gOp – цели операции (требуемые значения характеристик операции), gOp ⊆ chOp;
сa – условие запуска операции;
mech = {mech1,…,mechq} – средства преобразования;
StatusOp = {wait, active, lock, done} – состояние операции, определенное на конечном множестве состояний: wait – ожидание, active – выполнение, lock – прерывание, done – выполнена;
time – длительность выполнения преобразования;
prior – приоритет операции задает очередность выполнения операций, может быть описан постоянной величиной или функцией, т. е. быть статическим или динамическим;
kind_prior – тип приоритета (относительный, абсолютный);
break_off = {true, false} – признак запрета прерывания; если «true» – правило не может прерываться.
В случае остановки выполнения операции по каждому входному ресурсу (in) устанавливается признак stop_los = {true, false} – признак потери ресурса. Если stop_los = false, то захваченное количество ресурса для обработки при остановке операции возвращается на склад.
Предложенная ранее модель операции в [33] не позволяет учитывать следующие особенности реальных процессов преобразования ресурсов при прерывании выполнения одной операции (Opi) другой операцией (Opj):
1) затраты ресурсов, включая затраты времени на проведение подготовительных операций, необходимые на осуществление остановки (прерывания) операции Opi(см. формулу (2.8));
2) затраты ресурсов, включая затраты времени, необходимые на продолжение операции (Opi) (после выхода из состояния прерывания).
Так, например, при поступлении срочного заказа на производство, выполнение менее срочного заказа на заводе «замораживается», но прерывание запущенных операций: во-первых; не происходит мгновенно; во-вторых, требует дополнительных ресурсов. При продолжении выполнения «замороженного» заказа требуется дополнительное время и ресурсы на переналадку оборудования и подготовительные операции.
Условие запуска (сa) задается следующим образом:
(2.11)
где – |
условие наличия необходимых входных ресурсов; |
– |
условие учета ограничений выхода; |
– |
условие наличия разрешающих команд управления; |
– |
условие готовности необходимых средств; |
– |
условие готовности к исполнению; |
– |
условие запуска по времени. |
Переход операции в состояние «выполнение» сопровождается выполнением действий по захвату входных ресурсов и средств . Находясь в состоянии «выполнение», операция может перейти в состояние «прерывание». Операция может быть прервана для того, чтобы обеспечить выполнение другой операции. Переходя в состояние «прерывание», операция запоминает момент остановки и освобождает захваченные средства .
В течение состояния «прерывания» проверяется условие наличия свободных средств Операция находится в состоянии «прерывания» до тех пор, пока не освободятся необходимые средства. В случае операция переходит в состояние «выполнение»: захватываются средства и продолжается выполнение.
Операция находится в состоянии «выполнение» до тех пор пока где – момент окончания k-й операции. При выполнении условия операция переходит в состояние «ожидание». Данный переход сопровождается действиями по формированию выходных ресурсов и освобождением захваченных средств .
Источники и приемники ресурсов. Источники ресурсов (Sender) – элементы, моделирующие входные воздействия внешней среды (элементы только с выходами). Приемники ресурсов (Receiver) – элементы, моделирующие выходы во внешнюю среду (элементы только с входами). Объекты источники и приемники ресурсов имеют структуру, которая отличается от операции отсутствием средств и действий, выполняемых над средствами.
Перекресток (Junction) – элемент, описывающий слияние и разветвление процессов. Активизацией для перекрестков является поступление сообщения от входящих процессов, завершивших свою работу. При положительном решении перекресток генерирует сообщение, разрешающее работу следующих за ним процессов. Базовый класс «перекресток» (рис. 2.2) имеет следующую структуру:
(2.12)
где Namel – |
имя перекрестка; |
– |
входное сообщение; |
– |
выходное сообщение; |
– |
условие запуска; |
inl – |
имена входов информационных; |
outl – |
имена выходов; |
fl – |
функция решения; |
tsync – |
время синхронизации; |
Aj – |
модель поведения (действий) перекрестка. |
За основу системы действий Aj перекрестков взяты действия операции со следующими изменениями:
– нет захвата / освобождения / блокировки / снятия блокировки средств;
– добавлено введенное для определения выходов, на которых будут сформированы сигналы (перекрестки ветвления «ИЛИ» и «Исключающее ИЛИ»).
Рис. 2.2. Иерархия классов перекрестков
Сообщению/Команде соответствует следующая структура:
Message = <name, kind, Msender, Mresiver, text, prior, read, tcreate, twait>, (2.13)
где name – |
имя сообщения; |
Kind – |
тип (команда, сообщение); |
Msender – |
отправитель; |
Mresiver – |
получатель; |
Text – |
текст сообщения; |
Prior – |
приоритет; |
read = {true, false} – |
признак обработки (чтения сообщения); |
tcreate – |
время создания; |
twait – |
время ожидания в очереди. |
Методы: создание сообщения/команды, обработка сообщения/команды, удаление сообщения/команды.
Команды управления определяют множество процессов и операций (множество может быть вырождено), когда и в какой последовательности должны быть запущены или остановлены. Команда управления содержит параметры (размещаются в свойстве text), определяющие характеристики процесса/операции (например, длительность операции, количество полуфабрикатов или продуктов, которые необходимо произвести, и т. д.).
Каждой заявке соответствует следующая структура:
Orderj = <name, count, real, lock, owner, parent, prior, tcreate, twait>, (2.14)
где name – |
имя заявки j-го типа; |
count – |
заказываемый объем работ j-го типа; |
real – |
выполненный объем работ j-го типа; |
lock = {true, false} – |
признак блокировки заявки, устанавливается в “true” на время обработки операцией, «источником», «приемником», агентом; |
owner – |
если lock = “true”, то это имя элемента, обрабатывающего заявку, иначе – имя последнего блока, обработавшего заявку; |
parent – |
имя блока, создавшего заявку; |
prior – |
приоритет заявки; |
tcreate – |
время создания заявки; |
twait – |
время ожидания заявки в очереди. |
Учитывая динамическую природу заявок, можно определить очередь:
(2.15)
где – |
k-я очередь на выходе r-й операции; |
– |
заявки в очереди. |
К заявкам применимы следующие операции: включение заявки в очередь, упорядочение заявок, исполнение (обработка), исключение заявки из очереди.
Каждому сигналу соответствует следующая структура:
(2.16)
где – |
структура d-го сигнала; |
name – |
имя сигнала; |
Sigd(t) – |
текущее количество сигналов; |
– |
максимально возможное количество сигналов. |
Над сигналами выполняются следующие операции: включение в множество сигналов; обработка сигнала; исключение из множества сигналов.
Процесс. Процессы (PR) – элементы с входами и выходами. Процесс может состоять из операций, перекрестков и процессов, ниже приводится структура процесса:
PRp = <f, in, out, u, chPR, gPR, сa, mech, StatusPR, priorPR, s, rPR>, (2.17)
где f – |
функция, реализуемая процессом; |
in = {in1,…,inn} – |
множество входов, различных типов; |
out = {out1,…,outm} – |
множество выходов, out = f(in); |
u = {u1, …, uz} – |
множество команд управления; |
сhPR – |
характеристики процесса представляют собой множество измеряемых параметров процесса; |
gPR = opt(сhPR) – |
цель процесса преобразования – желаемая величина характеристики; |
сa – |
условие запуска; |
mech = {mech1,…,mechq} – |
средства преобразования; |
StatusPR – |
состояние процесса; |
priorPR – |
приоритет процесса; |
s – |
состав процесса представлен множеством других процессов, называемых в этом случае подпроцессами. Совместное взаимодействие этих подпроцессов реализует функцию данного процесса; |
rPR – |
связи определяют все формы взаимодействия входов и выходов с подпроцессами. |
Параметр (P). Каждому параметру процесса преобразования ресурсов соответствует структура:
Pd = <Pd(t), Pd(t0), name, desc,plan,fP>, (2.18)
где Pd(t) – |
текущее значение параметра; |
Pd(t0) – |
начальное значение параметра; |
name – |
имя параметра; |
desc – |
описание параметра; |
plan – |
плановое значение; |
fP – |
функция вычисления параметра. |
Связь (Relation). Для описания причинно-следственных связей (отношений) между вышеперечисленными элементами дополнительно используется класс связь. Структура элемента «связь»:
RelationAB = <Name, desc, ElementA, ElementB>, (2.19)
где Name – |
имя связи (так для большинства элементов модели ресурсов и преобразователей типовыми будут связи «является входом», «является выходом», «является средством» и т. д.); |
desc – |
описание связи; |
ElementA, ElementB – |
имена двух элементов модели процесса преобразования, между которыми установлена связь. |
Микроситуации (Mis) соответствуют выделенные состояния объекта, которые описываются не значениями каждого атрибута, а символичной записью в виде одного слова или небольшого фрагмента естественно-языкового описания. Микроситуация может соответствовать нескольким состояниям объекта, т. е. являться особым макросостоянием. Особенность микроситуации заключается в том, что она может зависеть не от всего сектора параметров объекта, а от его части (проекции). В общем случае микроситуация определяется с помощью рассуждений (правил) ЭС.
Mis = <name, desc, {a},{Za}, h({a},{Za})>, (2.20)
где name – |
имя микроситуации; |
desc – |
описание микроситуации; |
{а} – |
множество атрибутов объекта, определяющее микроситуацию; |
{Za} – |
диапазон значении атрибутов, допустимых для заданного типа микроситуации; |
h({a),{Za}) – |
правила определения микроситуации. |
Ситуации (Sit) соответствует совокупность микроситуаций и (или) значений отдельных свойств объектов и некоторых произошедших событий. Включение событий в определение ситуации обусловлено тем, что ситуация может складываться (накапливаться, нагнетаться) в течение времени. Ситуация также может сохраняться в течение какого-то времени. Эта временная зависимость выражается в произошедших событиях.
Правила, определяющие ситуацию, могут зависеть от непроизошедших событий. Например, если ни в одном объекте не возникло экстремальных микроситуаций, то в целом ситуация стабильна.
Sit = <name, desc, {Mis},{a},{e}, h({Mis},{a},{e})>, (2.21)
где name – |
имя ситуации; |
desc – |
описание ситуации; |
{Mis} – |
множество микроситуаций; |
{а} – |
множество атрибутов объектов; |
{e} – |
множество событий; |
h({Mis},{a},{e}) – |
правила определения ситуации. |
Макроситуации (Mas) соответствует совокупность всех ситуаций, микроситуаций и произошедших событий в модели. Макроситуация необходима для оценки системы (модели) в целом.
Mas = <name, desc, {Mis},{Sit},{e}, h({Mis},{Sit},{e})>, (2.22)
где name – |
имя макроситуации; |
desc – |
описание макроситуации; |
{Mis} – |
множество микроситуаций; |
{Sit} – |
множество ситуаций; |
{e} – |
множество событий; |
h({Mis},{Sit},{e}) – |
правила определения макроситуации. |
Решению (Decision) соответствует следующая структура:
Decision = <Name, desc, A_Decision>, (2.23)
где Name – |
имя решения; |
desc – |
описание решения; |
A_Decision – |
описание решения в виде параллельно-последовательных во времени действий и команд управления элементами процесса преобразования ресурсов, выполнение которых приведет к переходу из ситуации Sit0 в Sitk. |
Агент (Ag) имеет следующую структуру:
Agent = <Name, G_Ag, prior, KB_Ag, Mess_In_Count,
Mess_Out_Count, SPA, Control_Objects, AU, AD>, (2.24)
где Name – |
имя агента; |
G_Ag – |
цели агента; |
prior – |
приоритет агента; |
KB_Ag – |
база знаний агента (знания агента, know ledgebase); |
Mess_In_Count – |
количество входящих сообщений; |
Mess_Out_Count – |
количество исходящих сообщений; |
SPA – |
сценарии поведения; |
Control_Objects – |
множество управляемых объектов процесса преобразования ресурсов; |
AU – |
множество агентов «начальников», может быть вырождено; |
AD – |
множество агентов подчиненных, может быть вырождено. |
Методы агента: анализ мира (World_analyzes); диагностирование ситуации (Situations_diagnostic); поиск решения (Decision_support); чтение сообщений (R_Mess); написание сообщений (W_Mess).
Агенты управляют объектами процесса преобразования ресурсов. Агент выполняет следующие действия:
● анализирует окружение (текущую ситуацию);
● диагностирует ситуацию, обращается к базе знаний. В случае определения некоторой соответствующей ситуации (исключительной) агент пытается найти решение (сценарий действий) в базе знаний или выработать его самостоятельно;
● вырабатывает (принимает) решение;
● определяет (переопределяет) цели;
● контролирует достижение целей;
● делегирует цели своим и чужим объектам процесса преобразования ресурсов, а также другим агентам;
● обменивается сообщениями.
Элементы процесса преобразования ресурсов участвуют в обмене сообщениями и на основе своих моделей поведения выполняют свои преобразовательные функции, руководствуясь поступающими сообщениями.
Диаграмма прецедентов, определяющая отношения между агентом и элементом процесса преобразования ресурсов, представлена на рис. 2.3. Диаграмма прецедентов (англ. use case – вариант использования) представляет собой последовательность действий (транзакций), выполняемых системой в ответ на событие, инициируемое некоторым внешним объектом (действующим лицом) [100]. Действующим лицом может выступать некое устройство. Диаграмма прецедентов – одна из диаграмм языка UML [99–100, 102–105].
Рис. 2.3. Диаграмма прецедентов, определяющая отношения между агентом и элементом процесса преобразования ресурсов
Для описания иерархической структуры моделируемой системы (процесса преобразования ресурсов) использован аппарат системных графов высокого уровня интеграции [2–3, 33–43]:
(2.25)
Граф i-го уровня интеграции образуется в результате поэтапной интеграции графов с образованием на каждом j-м этапе множества процессов (подпроцессов) j-го уровня интеграции, L – уровень интеграции. Элементы множества мультиагентного процесса преобразования ресурсов
{Senderm ∪ Opm ∪ Receiverm ∪ Junctionm ∪ Agentm}L=I ⊂ ⊂ {Senderm ∪ Opm ∪ Receiverm ∪ Junctionm ∪ Agentm}L=i-1 ⊂ … … ⊂ {Senderm ∪ Opm ∪ Receiverm ∪ Junctionm ∪ Agentm}
и множества ресурсных отношений
системного графа представляют собой элементы процесса преобразования и ресурсные отношения между элементами, а также элементы
Senderm ∪ Opm ∪ Receiverm ∪ Junctionm ∪ Agentm
и ресурсные отношения системного графа нулевого уровня интеграции, не вошедшие при поэтапной интеграции ни в один процесс
Каждая вершина системного графа процесса преобразования ресурсов [33–43] характеризуется некоторым набором атрибутов (показателей) h1, …, hz. Все множество атрибутов вершин системного графа задает атрибутивное множество. Вычисление интегральных показателей процессов (системных вершин) h1, …, hz на произвольном i-м уровне (i > 0) задается над вершинами (i –1)-го уровня интеграции.
Иерархическое представление ситуационно-агентной модели процесса преобразования ресурсов в виде системного графа высокого уровня интеграции представлено на рис. 2.4.
Для построения ядра моделирующей системы в [33] был использован аппарат продукционных систем [11, 92, 119]. С учетом расширений модели определим структуру продукционной системы мультиагентного процесса преобразования ресурсов:
PS =< Rps, Bps, Ips>, (2.26)
где Rps = {RES(t)} ∪ {MECH(t)} ∪ {Order(t)} ∪ {Sig(t)} ∪ {Message(t)} ∪ ∪ {U(t)} ∪ {G(t)} – текущее состояние ресурсов, средств, заявок, сигналов, сообщений, команд управления, целей (рабочая память);
Bps – |
множество правил преобразования ресурсов и действий агентов (база знаний); |
Ips – |
машина вывода, состоящая из планировщика и машины логического вывода по БЗ агентов). |
Рис. 2.4. Иерархическое представление процессов преобразования ресурсов и агентов
Определена структура правила преобразования, которая соответствует структуре операции процесса преобразования ресурсов (Opk):
RULEkOP = < Ca(t), AIN(tCa), ALock(tLock), AUnLock(tUnLock), AOUT(tEnd),
StatusRULE, timeRULE, prior, kind_prior, break_off>; (2.27)
(2.28)
(2.29)
(2.30)
(2.31)
где Ca(t) – условие запуска правила;
AIN(tCa) – действия по захвату входных ресурсов (AinRES(tCa)) и захвату средств ;
ALock(tLock) – действия по прерыванию операции: освобождению захваченных средств которое может сопровождаться соответствующими затратами ресурсов – затраты ресурсов, включая ресурс времени, необходимые для выполнения остановки операции Opi);
AUnLock(tUnLock) – действия по продолжению выполнения операции: захвату свободных средств которое может сопровождаться соответствующими затратами ресурсов – затраты ресурсов, включая ресурс времени, необходимые для продолжения выполнения операции Opi);
AOUT(tEnd) – действия по формированию выходных ресурсов и освобождению средств
StatusRULE = {wait, active, lock, done} – состояние правила, определенное на конечном множестве состояний: wait – ожидание, active – выполнение, lock – прерывание, done – выполнено;
timeRULE – длительность выполнения правила преобразования;
prior – приоритет правила;
kind_prior – тип приоритета (относительный, абсолютный);
break_off = {true, false} – признак запрета прерывания; если «true» – правило не может прерываться.
К правилам преобразования дополнительно, в отличие от модели в [33], относятся также средства, обладающие моделью поведения. Каждому средству MECHy, обладающему моделью поведения, соответствует следующая структура правила:
(2.32)
где – время создания;
StatusMach = {wait, active, lock, other} – состояние средства, определенное на конечном множестве состояний: wait – ожидание, active – выполнение, lock – прерывание, other – набор расширяемых состояний, который может быть связан с различными видами возникаемых поломок и действий по их устранению;
Amin – действие по запуску средства в момент начала преобразования;
Amout – действие по остановке средства в момент окончания преобразования;
Amuse – действие по выполнению преобразования;
Amlock – действие по остановке средства в момент прерывания преобразования;
Amunlock – действие по запуску средства в момент продолжения преобразования;
Amother – действие по устранению поломки;
tyother – периодичность возникновения поломки, может быть задана функцией;
producty – производительность средства в единицу времени, может быть задана функцией от расхода ресурсов.
Алгоритм работы машины вывода состоит из следующих основных этапов: определение текущего момента времени формирование очереди правил преобразования; выполнение правил преобразования и изменение состояния рабочей памяти (ресурсов и средств).
Чтобы представить работу ситуационной модели, рассмотрим модель Ю.И. Клыкова.