Автоматика и телемеханика, № 8, 2022
Робастное, адаптивное и сетевое
управление
© 2022 г. И.А. КАЛЯЕВ, д-р техн. наук, академик РАН
(igor@kalyaev.net),
А.И. КАЛЯЕВ, канд. техн. наук (anatoly@kalyaev.net)
(Южный федеральный университет, Таганрог)
МЕТОД И АЛГОРИТМЫ АДАПТИВНОГО
МУЛЬТИАГЕНТНОГО ДИСПЕТЧИРОВАНИЯ РЕСУРСОВ
В ГЕТЕРОГЕННЫХ РАСПРЕДЕЛЕННЫХ
ВЫЧИСЛИТЕЛЬНЫХ СРЕДАХ1
Настоящая статья посвящена созданию новых метода и алгоритмов
диспетчирования ресурсов в гетерогенных распределенных вычислитель-
ных системах на примере облачных вычислительных сред (ОВС), обеспе-
чивающих сокращение времени выполнения множества поступающих за-
дач за счет использования тех вычислительных ресурсов, которые дают
наиболее высокую реальную производительность применительно к кон-
кретной полученной задаче. Для этого предлагается применять мульти-
агентный подход к организации процесса диспетчирования: в состав каж-
дого элемента ОВС вводится программный агент, располагающий наибо-
лее полной и актуальной информацией об особенностях своего вычисли-
теля, множество таких агентов совместно осуществляют подбор наиболее
подходящих задач и подзадач с учетом имеющейся информации. Описа-
ны принципы построения и метод работы адаптивного мультиагентного
диспетчера ресурсов ОВС, алгоритмы работы агентов ресурсов и задач,
проведены исследования эффективности разработанных алгоритмов с ис-
пользованием распределенной программной модели.
Ключевые слова: распределенная вычислительная среда, облачная вы-
числительная среда, теория мультиагентных систем, диспетчирование
вычислений.
DOI: 10.31857/S0005231022080062, EDN: AHCWSW
1. Введение
Наблюдаемое в последние годы бурное развитие технологий передачи дан-
ных привело к появлению новых подходов к организации вычислений, осно-
ванных на использовании множества распределенных в пространстве вычис-
лительных ресурсов с применением сервис-ориентированного подхода, обес-
1 Работа выполнена в рамках Государственного задания Санкт-Петербургского поли-
технического университета Петра Великого (проект № 075-01429-22-02).
100
печивающего ¾вычисления по требованию¿. Эти возможности породили но-
вый класс распределенных вычислительных сред, базирующихся на парадиг-
ме облачных вычислений, предполагающей организацию распределенных вы-
числений на основе пула виртуализованных вычислительных ресурсов, предо-
ставляемых по запросу внешним пользователям удаленно через сеть Интер-
нет [1]. В настоящее время облачные вычислительные среды (ОВС) находят
широкое применение при решении сложных вычислительных задач в раз-
личных предметных областях: физика; химия и биология; фармакология и
фармацевтика; материаловедение; нефтегазодобыча и т.п. [2, 3]. При этом
пользовательские задачи в общем виде являются достаточно трудоемкими,
иначе пользователь мог бы решить их локально.
Одним из главных преимуществ ОВС является абстрагирование пользо-
вателя от выбора конкретных аппаратных ресурсов: он просто предоставляет
свои задачи в облако и ожидает их скорейшего решения, при этом, когда го-
ворим об облачных системах, речь обычно идет о минутах или часах. В общем
виде ОВС состоит из множества различных вычислителей, это обусловлено
растянутым во времени расширением парка вычислительной техники (когда
нет возможности или становится невыгодно приобретать узлы, идентичные
уже установленным), более низкой востребованностью определенных уско-
рителей (GPU, FPGA) и т.д. Такая гетерогенная структура, с одной сторо-
ны, позволяет повысить эффективность работы ОВС за счет использования
тех вычислительных ресурсов, которые обеспечивают максимальную реаль-
ную производительность при решении определенных задач, но, с другой сто-
роны, делает существенно более значимым распределение решаемых задач
по разнотипным вычислительным ресурсам, входящим в состав гетерогенной
ОВС [4].
Указанная проблема многократно усложняется следующими факторами:
• ОВС должна обеспечивать решение некоторого множества различных
пользовательских задач, поступающих в произвольные моменты времени,
при этом поступающие задачи в общем виде могут обладать сложной внут-
ренней структурой (состоять из информационно взаимосвязанных подзадач,
эффективность решения каждой из которых может в сильной степени зави-
сеть от типа используемого вычислительного ресурса);
• узлы ОВС могут со временем изменять свои характеристики в зависи-
мости от множества факторов, например с связи с изменением температуры
процессоров вследствие ухудшения вентиляции или сезонных колебаний, де-
градацией или отказами оборудования и т.п.
Таким образом, можно сделать вывод о высокой важности учета актуаль-
ных параметров элементов ОВС при распределении задач для повышения
эффективности их выполнения и об актуальности проблемы эффективного
распределения задач в зависимости от параметров вычислителя даже для
ОВС, состоящих из идентичных вычислителей.
101
Современные исследования в области распределения задач в гетероген-
ных средах с изменяющимися со временем параметрами в основном базиру-
ются на предсказании. Например, в [5] авторы описывают мультиагентный
алгоритм Deep-Q-network (DQN), базирующийся на централизованном мно-
гоагентном обучении с подкреплением (Multiagent Reinforcement Learning
MARL), который предполагает обучение с подкреплением для оптимизации
времени и стоимости распределения и выполнения задач, при этом агенты
наследуют эвристики для применения в сформированных нейронных сетях.
Авторы [6] представляют генетический алгоритм с эффективной настройкой
(Genetic Algorithm with Efficient Tune-In
GAETI) для выполнения дли-
тельных вычислений на удаленных вычислительных системах с улучшением
времени решения. В [7] авторы предлагают метод гибридной оптимизации
роя частиц, предполагающий распределение на базе недоминирующей сорти-
ровки. Другим направлением публикаций по тематике распределения задач
является применение теоретико-игровых моделей и других методик обучения
с подкреплением [8-14], где совместно применяются концепция равновесия в
теории игр и методы мультиагентного обучения для оптимизации с множе-
ством ограничений и множеством целей. Общим недостатком рассмотренных
подходов является необходимость наличия накопленной статистической ин-
формации, которая теряет актуальность при изменении состава распределен-
ной системы.
В некоторых из рассмотренных подходов применяются мультиагентные
методы поиска оптимальных распределений, показывающие высокую эф-
фективность, однако указанный инструментарий применяется централизо-
ванно: виртуальные агенты узлов системы в рамках централизованного дис-
петчера составляют виртуальное расписание. В настоящей статье предлага-
ется подход, позволяющий существенно расширить функциональность аген-
тов при диспетчировании путем отказа от виртуальных агентов и превра-
щения элементов ОВС в множество физически распределенных агентов,
представляющих собой вычислительные узлы, управляемые программными
агентами.
В [15, 16] описывается подход к мультиагентной организации диспетчи-
рования ресурсов в гетерогенных ОВС, позволяющий реализовать распре-
деление различных ресурсов в процессе выполнения множества поступаю-
щих сложных пользовательских задач. Показано, что такая мультиагентная
организация диспетчера позволяет эвристически обеспечить квазиоптималь-
ное распределение ресурсов ОВС, адаптивно учитывающее их актуальные
параметры, что обеспечивает возможность применения широкого перечня
оборудования. Другими преимуществами указанного подхода являются воз-
можность оперативного масштабирования ОВС, а также увеличенная отка-
зоустойчивость, достигаемая за счет децентрализации процесса диспетчиро-
вания.
Однако применение подхода, предложенного в [15, 16], предполагает, что
пользователи должны указывать время, к которому необходимо решить зада-
102
чу. При этом, поскольку пользователи не обладают информацией о загрузке и
параметрах ОВС, указание ими неадекватного времени решения приводит к
невозможности выполнения задач, что, в свою очередь, приводит к снижению
эффективности работы ОВС в целом [17]. Настоящая статья посвящена раз-
работке новых метода и алгоритмов мультиагентного диспетчирования ОВС,
позволяющих распределять задачи, требуемое время выполнения которых не
задано, при этом целью работы диспетчера ОВС становится минимизация
времени решения всех поступивших задач с помощью имеющихся вычисли-
тельных ресурсов.
2. Формальная постановка задачи
Как было сказано выше, множество пользователей в случайные моменты
времени отправляют в ОВС множество различных задач Z =< Z1, . . . , ZM >.
Под задачей будем понимать некоторое множество информационно зависи-
мых (взаимосвязанных) подзадач, каждая из которых имеет значительную
вычислительную трудоемкость. Формально каждая такая задача Zl ∈ Z мо-
жет быть представлена в виде ацикличного графа Gl(Ql, Xl) (рис. 1), верши-
ны qj ∈ Ql которого соответствуют некоторым подзадачам Oj , принадлежа-
щим множеству подзадач O =< O1, . . . , Oc >, а дуги x(qj , qj+1) ∈ Xl опреде-
ляют информационные взаимосвязи между подзадачами (т.е. если две вер-
шины qj и qj+1 соединены дугой x(qj, qj+1), то это означает, что данные, полу-
ченные в результате решения подзадачи Oj , приписанной вершине qj, явля-
ются исходными данными для подзадачи Oj+1, приписанной вершине qj+1).
Будем считать, что каждой вершине qj ∈ Ql приписаны тип решаемой подза-
дачи Oj ∈ O и ее вычислительная трудоемкость vj, оцениваемая числом эле-
Рис. 1. Граф Gl(Ql, Xl) задачи Zl.
103
ментарных вычислительных операций, выполняемых при ее решении; а ду-
ге x(qj, qj+1) ∈ Xl приписан объем данных dj ,j+1, передаваемых от подзада-
чи Oj, приписанной вершине qj, подзадаче Oj+1, приписанной вершине qj+1
(рис. 1).
В состав ОВС входит множество гетерогенных вычислительных ресурсов
R =< R1,... RN >. Будем считать, что каждый ресурс Ri ∈ R может решать
некоторый набор (подмножество) типов подзадач Oi =< O1, . . . OL > ⊆O
(i = 1, . . . , N), причем реальная производительность ресурса Ri при реше-
нии подзадачи Oj ∈ Oi (j = 1, . . . , L) составляет Si(Oj ) (операций в секун-
ду). В общем случае реальная производительность различных ресурсов
ОВС при решении идентичных подзадач Oj может быть различной, т.е.
Sp(Oj) = Sc(Oj) (p = 1,... ,N; c = 1,... ,p - 1,p + 1,... ,N). Будем считать,
что известна пропускная способность Yp (байт/с) канала связи ресурса Ri
(i = 1, . . . , N) с облачной инфраструктурой.
Цель работы диспетчера заключается в минимизации суммарного време-
ни решения задач множества Z TZ = T (Zi), где T (Zi) время решения
i=1
задачи Zi путем выбора определенного распределения их подзадач по вычис-
лительным ресурсам R =< R1, . . . , RN > с учетом оперативной оценки их
текущей производительности при решении той или иной подзадачи и про-
пускной способности канала связи с облачной инфраструктурой.
Решение сформулированной таким образом задачи распределения ресур-
сов ОВС по поступающим задачам множества Z классическими методами,
например методами динамического и линейного программирования [18-20],
является сложной задачей из-за того, что вычислительные ресурсы гетеро-
генны, их число велико, задачи отличаются друг от друга, что приводит к
экспоненциальному росту пространства перебора при распределении подза-
дач различных задач множества Z между ресурсами R =< R1, . . . RN > с
учетом их функциональных возможностей и производительности на той или
иной подзадаче. Поэтому в данном случае предлагается применить мульти-
агентный подход, так как в этом случае каждый из узлов будет обладать
актуальной информацией о своем узле и выполнять часть задачи диспетчи-
рования [21].
3. Метод адаптивного мультиагентного
диспетчирования ресурсов
Прежде чем приступить к описанию предложенного метода мультиагент-
ного диспетчирования ОВС, расширим понятие ¾нити¿, введенное в [15, 16].
Как и раньше, под нитью, будем понимать некоторую последовательность
вершин Hf =< qf1 , . . . , qfk > графа Gl(Ql, Xl) задачи Zl ∈ Z, в которой вер-
шины qfj и qfj+1 (j = 1, . . . , k - 1) соединены дугой x(qfj , qfj+1) (рис. 2).
Иными словами, нить определяет некоторую последовательность подзадач
задачи Zl, в которой каждая последующая подзадача использует в качестве
104
Рис. 2. Нить Hf в графе Gl(Ql, Xl) задачи Zl.
исходных данных результат выполнения предыдущей подзадачи. При этом
подзадачи, приписанные вершинам нити Hf , могут выполняться только по-
следовательно. Под длиной Tf нити Hf будем понимать суммарное время,
затрачиваемое на ее решение, определяемое как
Tf = (T(Oi) + Ti,i+1),
i=1
где T (Oi)
время решения подзадачи Oi, приписанной вершине qfi ∈ Hf
(i = 1, . . . , k); Ti,i+1
время передачи данных, полученных в результате ре-
шения подзадачи Oi, ресурсу, решающему следующую подзадачу Oi+1, при-
писанную вершине qfi+1 ∈ Hf , причем
vi
T (Oi) =
,
Sp(Oi)
где vi трудоемкость подзадачи Oi; Sp(Oi) реальная производительность
ресурса Rp, решающего подзадачу Oi;
0,
если подзадачи Oi и Oi+1 решаются
одним и тем же ресурсом Rp ∈ R,
Ti,i+1 =
dfr,r+1
, если подзадачи Oi и Oi+1 решаются
 Yp
различными ресурсами Rp и Rc,
105
Рис. 3. Структура ОВС.
где dfi,i+1
объем данных, передаваемых от подзадачи Oi подзадаче Oi+1;
Yp пропускная способность канала связи ресурса Rp.
Если вся нить Hf выполняется одним и тем же ресурсом Rp, то ее длина
будет составлять
dfk,k+1
vi
(1)
Tf =
+
,
Sp(Oi)
Yp
i=1
где dfk,k+1 объем данных, приписанный исходящей (конечной) дуге нити Hf
(рис. 3).
При этом кратчайшее время выполнения задачи Zl ∈ Z будет, в первую
очередь, зависеть от длины критического пути в графе Gl(Ql, Xl), т.е. нити,
суммарная трудоемкость вершин которой максимальна [22].
В [15, 16] предложен мультиагентный подход к диспетчированию, пред-
полагающий, что каждый ресурс Rj (i = 1, . . . , N) обладает программным
агентом ARi, осуществляющим поиск работы для ¾своего¿ ресурса Rj. Для
этого агент ARi периодически опрашивает выделенный ресурс
¾доску объ-
явлений¿ (ДО), на которой пользователи размещают свои задачи. В случае
106
обнаружения на ДО некоторой задачи Zl ∈ Z агент ARj делает попытку вой-
ти в состав сообщества Rl ⊆ R по его решению, принимая на себя исполнение
наиболее длинной нити, что он может реализовать с помощью ¾своего¿ ре-
сурса Rj к установленному пользователем моменту времени. Предложенный
подход не может быть применен в случае, когда время выполнения задач
не задано, поэтому, кроме агентов ARi (i = 1, . . . , N), представляющих раз-
личные ресурсы Rj ∈ R (j = 1, . . . , N), предлагается ввести в состав мульти-
агентного диспетчера дополнительно к ним агентов задач AZj (j = 1, . . . , M),
по сути являющихся ¾представителями пользователей¿ и ответственных за
сокращение времени выполнения своей задачи (рис. 3).
Для решения пользовательской задачи в ОВС выполняются следующие
шаги:
1. Пользователь формирует свою задачу Zl ∈ Z в виде графа Gl(Ql, Xl) и
размещает на ДО.
2. Каждой задаче Zl ∈ Z, поступившей на ДО, назначается агент AZl.
3. Агент AZl задачи Zl с помощью алгоритмов поиска критического
пути [23] выделяет в графе Gl(Ql, Xl) наиболее трудоемкую нить H1 =(
)
=< q11,... ,q1k >, для которой значение V1 =
v1
максимально, где v1i
i
i=1
(j = 1, . . . , k)
трудоемкость подзадачи Oi, приписанной вершине q1i ∈ H1,
и устанавливает возможный (желательный) момент времени начала ее ис-
полнения t = tтек, где tтек текущий момент времени. После этого нить H1
выставляется на ДО для исполнения.
4. Агенты ARj различных ресурсов Rj (j = 1, . . . , N) последовательно
опрашивают ДО в поисках работы.
5. При обнаружении нити H1, выставленной агентом AZl, агент ARj оце-
нивает эффективность участия в ее решении.
6. Для этого агент ARj выбирает в нити H1 =< q11, . . . , q1k > поднить H11j =
=< q11,... ,q1b > ⊆H1 (b ≤ k), вершинам которой приписаны подзадачи множе-
ства Oi, т.е. подзадачи, выполняемые ресурсом Rj (рис. 4).
Агент ARj имеет на базе информацию о том, когда закончит выполнять
запланированные задачи (момент времени t1нj), определяет момент, когда он
сможет начать работу над поднитью H11j, и время t1кj окончания исполнения
поднити H11j, причем
v1i
d1b,b+1
(2)
t1кj = t1нj +
+
,
Sj(Oi)
Yj
i=1
где v1i
трудоемкость подзадачи Oi, приписанной вершине q1i ∈ H11j (i =
= 1, . . . , b); Sj (Oi)
производительность ресурса Rj при решении подзада-
чи Oi; d1b,b+1 объем данных, приписанных конечной дуге x(q1b, q1b+1) подни-
ти H11j ; Yj пропускная способность канала связи ресурса Rj .
107
Рис. 4. Распределение операции нити H1 между агентами ARj (j = 1, . . . , N).
Выбранная поднить H11j, с приписанными ей моментами времени начала
исполнения t1нj и окончания исполнения t1кj , передается агентом ARp агенту
AZl задачи Zl в качестве ¾оферты¿ по его участию в исполнении нити H1.
7. По прошествии некоторого таймаута агент AZl задачи Zl среди всех
поступивших ¾предложений¿ выбирает наиболее подходящее поднить H11p,
¾предложенную¿ агентом ARp, для которой значение величины
b v1i
Ep =i=1
t1кp - t
максимально, где v1i трудоемкость подзадачи Oi (i = 1, . . . , b), приписанной
вершине q1i ∈ H11p; t желательное время начала исполнения нити H1, уста-
новленное агентом задачи AZl; t1кp момент времени завершения исполнения
поднити H11p агентом ARp.
8. Поднить H11p, для которой значение Ep максимально, закрепляется за
агентом ARp, о чем ему направляется соответствующее сообщение от аген-
та AZl, и агент ARp включается в состав сообщества Rl по выполнению
задачи Zl. В графе Gl(Ql, Xl) задачи Zl каждой вершине q1j (j = 1, . . . , b)
поднити H11p приписывается номер p ресурса Rp, за которым закреплено ее
исполнение, а также момент времени ее исполнения t1j, определяемый как
v1i
(3)
t1j = t1нp +
,
Sp(Oi)
i=1
108
где v1i трудоемкость подзадачи Oi, приписанной вершине q1i; Sp(Oi) про-
изводительность ресурса Rp при решении подзадачи Oi.
9. Агент AZl задачи Zl исключает вершины q11, . . . , q1b поднити H11p
из нити H1, в результате чего формируется новая (укороченная) нить
H21 =< q1b+1,... ,q1k > (рис. 4), а первой вершине q1b+1 этой нити приписывает-
ся номер агента ARp, от которого должны поступить исходные данные для ее
выполнения, а также возможное (желательное) время начала ее исполнения
t = t1кp, где t1кp
время окончания исполнения поднити H11p, определяемое
согласно выражению (2).
После этого нить H21 выставляется агентом AZl на ДО для исполнения.
10. В дальнейшем агенты различных ресурсов Rj (i = 1, . . . , N) оценивают
свои возможности по участию в исполнении нити H21. При этом агент ARj
(j = 1, . . . , N) выделяет поднить H21j =< q1b+1, . . . , q1m > ⊆H21 (m ≤ k) (см.
рис. 4), вершинам которой приписаны подзадачи подмножества Oj ⊆ O, вы-
полняемого ресурсом Rj , а также определяет момент времени начала ее ис-
полнения t2нj , (т.е. момент, когда он может приступить к ее исполнению, при-
чем t2нj ≥ t), а также момент времени окончания ее исполнения t2кj, опреде-
ляемый как
v1i
d1m,m+1
(4)
t2кj = t2нj +
+
Sj(Oi)
Yj
i=b+1
Выделенная таким образом поднить H21j направляется агентом ARj аген-
ту AZl задачи Zl в качестве ¾предложения¿ по участию в выполнении ни-
ти H21.
11. По прошествии определенного таймаута агент AZl задачи Zl выбирает
наилучшее ¾предложение¿ того агента ARc, предлагающего к исполнению
поднить H21c =< q1b+1, . . . , q1m > (m ≤ k), для которой величина
m v1i
(5)
Ec =b+1
t2кc - t
максимальна.
Вершины поднити H21c закрепляются за агентом ARc, о чем ему направ-
ляется соответствующее сообщение, и агент ARp включается в сообщество Rl
по решению задачи Zl. Кроме того, в каждой вершине q1j (i = b + 1, . . . , m)
графа Gl(Ql, Xl) приписывается номер c ресурса Rc, за которым закреплено
ее исполнение, и момент времени t1jc ее исполнения, определяемый как
v1i
(6)
t1j = t2нc +
,
Sc(Oi)
i=b+1
где v1i трудоемкость подзадачи Oi, приписанной вершине q1i; Sc(Oi) про-
изводительность ресурса Rc при решении подзадачи Oi.
109
Рис. 5. Граф G1l(Q1l, X1l) задачи Zl, модифицированный агентом AZl.
12. После этого агент задачи AZl формирует новую нить H31 =
=< q1m+1,... ,q1k >, путем исключения из нити H21 вершин поднити H21c, т.е.
H31 = H21/H21c, и первой вершине q1m+1 этой нити приписывает возможное (же-
лательное) время начала ее исполнения t = t2кc, где t2кc
момент времени
завершения поднити H21c, определяемый согласно (4).
Далее нить H31 вновь выставляется агентом задачи AZl на исполнение и
т.д. до тех пор, пока не окажется, что очередная нить пуста Hk1 = ∅. Это
говорит о том, что все вершины нити H1 закреплены за агентами различных
ресурсов Rj (i = 1, . . . , N).
13. После этого агент AZl задачи Zl исключает нить H1 из графа за-
дачи Gl(Ql, Xl), в результате чего формируется новый граф G1l(Q1l, X1l) =
= Gl(Ql,Xl)/H1 (рис. 5).
В обновленном графе G1l (Q1l , X1l ) агентом AZl определяется наиболее тру-
доемкая нить H2 =< q21, . . . , q2r > (рис. 5) для дальнейшего распределения
между агентами ресурсов Rj (i = 1, . . . , N), в результате чего всем верши-
нам нити H2 =< q21, . . . , q2r > в графе Gl(Ql, Xl) будут поставлены в соответ-
ствие номерам ресурсов Rj , за которыми закреплено их исполнение, а также
моменты времени t2f (f = 1, . . . , r) их исполнения.
14. Поскольку нить H2 =< q21, . . . , q2r > является ветвью нити H1 =
=< q11,... ,q1k > (т.е. конечная вершина q2r нити H2 инцидентна одной из вер-
шин q1b нити H1) (см. рис. 5), то требуется оценить погрешность времени за-
вершения нити H2 для определения актуальности времени начала работы над
инцидентной ей вершиной q1b нити H1. Поэтому агент AZl задачи Zl сравни-
110
Рис. 6. Граф G2l(Q2l, X2l), модифицированный агентом AZl.
вает момент времени t завершения исполнения нити H2, определяемый как
d2r,r+1
(7)
t = t2r +
,
Yj
где t2r момент времени, приписанный конечной вершине q2r нити H2; d2r,r+1
объем передаваемых данных, приписанный дуге, исходящей из вершины q2r;
Yj
пропускная способность канала связи ресурса Rj, приписанного вер-
шине q2r;
с моментом времени t1b-1, приписанным вершине q1b-1 нити H1. Если оказы-
вается, что t > t1b-1, то это означает, что данные, получаемые в результате
выполнения подзадач нити H2 и необходимые для решения подзадачи, при-
писанной вершине q1b ∈ H1, поступят позже, чем данные, также необходимые
для решения подзадачи вершины q1b и получаемые в результате выполнения
подзадачи вершины q1b-1 нити H1. В этом случае агент задачи AZl произво-
дит корректировку графика исполнения нити H1 путем смещения моментов
времени, приписанных ее вершинам qb, . . . qk, на величину Δt = t - t1b-1.
15. Агент AZl задачи Zl формирует обновленный граф задачи
G2l(Q2l,X2l) = G1l(Q1l,X1l)/H2
путем исключения из рассмотрения вершин нити H2 (пометив их как ре-
шаемые), в этом графе (рис. 6) определяет наиболее трудоемкую нить H3 и
отправляет на ДО.
В процессе работы ОВС распределение вершин (подзадач) графа задачи
Gl(Ql, Xl) продолжается далее до тех пор, пока они все не будут распределе-
ны, т.е. очередной граф будет пуст Gdl(Qdl, Xdl) = ∅. В результате всем вер-
шинам qi ∈ Ql графа задачи Gl(Ql, Xl) будут приписаны номера ресурсов Rj
111
f
q1f
qi
qrf
f
tнfp
tк
t
Рис. 7. Исполнение поднити Hmf агентом ARp.
(j = 1, . . . , N), отвечающих за их исполнение, а также планируемые моменты
времени ti их исполнения, т.е. будет построен график решения задачи Zl.
16. После этого агент задачи Zl сообщает пользователю планируемый мо-
мент времени tkl выполнения его задачи Zl, который определяется как
dk,k+1
(8)
tkl = tk +
,
Yp
где tk момент времени, приписанный конечной вершине qk графа Gl(Ql, Xl);
dk,k+1
объем результирующих данных, приписанный дуге, исходящей из
вершины qk; Yp пропускная способность канала связи ресурса Rp, закреп-
ленного за вершиной qk.
В случае согласия пользователя агент AZl сообщает всем агентам ресур-
сов Rj (i = 1, . . . , N), задействованным в выполнении данной задачи (т.е. вхо-
дящим в сообщество Rl), о необходимости выполнения принятых на себя под-
задач согласно установленному плану (временному графику).
17. Когда агент ARp ресурса Rp получает подтверждение от агента AZl
задачи Zl о необходимости выполнения закрепленной за ним поднити Hmf =
=< qf1,... ,qr > графа задачи Gl(Ql,Xl), он включает подзадачи, приписан-
ные вершинам поднити Hmf, в свой график работы.
18. При наступлении момента времени tнp начала исполнения поднити
Hmf агент ARp приступает к выполнению последовательности подзадач Ofi
(i = 1, . . . , r), приписанных вершинам qfi ∈ Hmf (рис. 7). Если для выполне-
ния очередной подзадачи Ofi необходимы исходные данные, поступающие от
других ресурсов, то агент ARj первым делом проверяет их наличие. Если
требуемые исходные данные еще не поступили, агент ARj переходит в ре-
жим ожидания.
19. По факту получения необходимых данных агент ARp осуществляет
решение подзадачи Ofi (i = 1, . . . , r) с помощью ¾своего¿ ресурса Rp. После
выполнения всех подзадач Ofi , приписанных вершинам qfi (i = 1, . . . , r) под-
нити Hmf, агент ARp отправляет агенту AZl задачи Zl сообщение о работе над
последовательностью подзадач поднити Hmf и передает результат ее следую-
щему ресурсу Rp, исполняющему смежную с ней вершину графа Gl(Ql, Xl).
112
20. Агент AZl осуществляет проверку соблюдения временного графика
выполнения агентом ARp подзадач нити Hmf путем сравнения запланирован-
f
ного времени tк завершения поднити Hmf, определяемого как tк = tr +dr,r+1Yp
(рис. 7) (где tr
момент времени, приписанный конечной вершине qr под-
нити Hmf; dfr,r+1 объем передаваемых данных, приписанных исходящей из
вершины qr дуге; Yp пропускная способность канала связи ресурса Rp),
с текущим временем tтек.
Если tтек > tк, то это означает, что возникла задержка в выполнении вре-
менного графика решения задачи Zl, о чем агент AZl сообщает пользова-
телю. Кроме того, агент AZl актуализирует временной график исполнения
последующих вершин qr, qr+1, . . . , qk графа задачи Gl(Ql, Xl) путем смещения
моментов времени на величину Δt = tтек - tк (см. рис. 5).
21. После того, как все подзадачи задачи Zl решены (т.е. агент задачи
получил подтверждения от всех агентов сообщества Rl об успешном завер-
шении всех принятых на себя поднитей), агент AZl сообщает пользователю
об успешном решении его задачи Zl, после чего задача Zl снимается с ДО.
Для применения на практике описанных ранее принципов мультиагентно-
го диспетчирования гетерогенной ОВС были разработаны алгоритмы работы
агентов задачи и вычислительного ресурса.
4. Алгоритм работы агента задачи при мультиагентном
диспетчировании ресурсов
Как только граф Gl(Ql, Xl) задачи Zl передается на ДО, ему назначается
агент AZl, который находит в графе задачи Gl(Ql, Xl) самую трудоемкую
нить H1 =< q11, . . . , q1k > и устанавливает желательный (возможный) момент
времени начала ее исполнения t = tтек, после чего выставляет нить H1 на
исполнение на ДО (см. рис. 4).
После того, как агенты ресурсов Rj (i = 1, . . . , N) проанализируют воз-
можность своего участия в выполнении нити H1 и направят свои ¾предложе-
ния¿ агенту AZl задачи Zl, последний выбирает ¾предложение¿ того аген-
та ARp, который может обеспечить выполнение поднити H11p =< q11, . . . , q1b >
⊆H1, имеющий наибольшее значение
b v1i
Ep =i=1
,
t1кp - t
где v1i (i = 1, . . . , b)
трудоемкость подзадачи Oi, приписанной вершинам
q1i ∈ H11p; t1кp
момент времени завершения исполнения поднити H11p аген-
том ARp, определяемый с помощью выражения (2).
Агент ARp включается в сообщество Rl по решению задачи Zl, а в графе
Gl(Ql, Xl) всем вершинам поднити H1p приписывается номер агента ARp,
113
отвечающего за их исполнение, а также моменты времени их исполнения,
определяемые с помощью выражения (3).
Агент AZl исключает поднить H11 из нити H1, в результате чего фор-
мируется новая нить H21 ⊆ H1, которой агент AZl приписывает возможный
момент времени начала ее исполнения t, определяемый временем исполне-
ния поднити H11p, т.е. t = t1кp (см. рис. 4). После этого нить H21 выставляется
агентом AZl на ДО для исполнения.
После этого агент AZl ожидает предложения агентов ARj (j = 1, . . . , N)
по работе над нитью H21 и выбирает ¾предложение¿ того агента ARc, кото-
рый обеспечивает выполнение такой поднити H21c =< q1b+1, . . . , q1m > (m ≤ k),
для которой значение Ec (см. выражение (4)) максимально. Выбранный
агент ARc включается в сообщество Rl, а в графе Gl(Ql, Xl) вершинам этой
поднити H21c приписываются его номер, время их исполнения tj1, определяе-
мое с помощью выражения (5).
Описанный процесс продолжается до тех пор, пока не будут распределе-
ны все вершины (подзадачи) нити H1, т.е. пока не окажется, что очередная
поднить пуста Hm1 = ∅.
Далее агент задачи AZl исключает из графа Gl(Ql, Xl) нить H1, в резуль-
тате чего формируется новый граф G1l(Q1l, X1l) = Gl(Ql, Xl)/H1, и выделяет
в последнем наиболее трудоемкую нить H2, которая выставляется на ДО
на исполнение (см. рис. 5). После того как все вершины (подзадачи) ни-
ти H2 =< q21, . . . , q2r > будут разобраны агентами ARj (j = 1, . . . , N), в гра-
фе Gl(Ql, Xl) им будут приписаны номера соответствующих агентов ARp,
а также время их исполнения t2i (i = 1, . . . , r). После этого агент задачи AZl
должен проверить согласованность времени поступления исходных данных
для подзадачи Ob, приписанной вершине q1b нити H1, инцидентной конеч-
ной вершине нити H2. Для этого агент задачи AZl сравнивает момент вре-
мени t завершения исполнения нити H2, определяемый с помощью выра-
жения (7), с моментом времени t1b-1 исполнения предыдущей вершины q1b-1
нити H1 (см. рис. 5). Если t2r > t1b-1, то это означает, что данные, получае-
мые в результате исполнения нити H2 и необходимые для выполнения под-
задачи Ob, поступят позже, чем данные, получаемые в результате выпол-
нения операции Ob-1, приписанной вершине qb-1 нити H1. В этом случае
агент задачи AZl должен скорректировать моменты времени исполнения всех
последующих вершин q1b, . . . , q1k нити H1 путем их увеличения на величину
Δt = t - t1b-1.
Далее нить H2 исключается из графа задачи G1l(Q1l, X1l), в результате чего
формируется новый граф G2l(Q2l, X2l) = G1l(Q1l, X1l)/H2, в котором вновь вы-
деляется наиболее трудоемкая нить H3, которая выставляется агентом AZl
на ДО для исполнения (см. рис. 6). Процесс продолжается до тех пор, пока
все вершины графа задачи Gl(Ql, Xl) не будут закреплены за агентами ARj
(j = 1, . . . , N) и им будут приписаны планируемые моменты времени их ис-
полнения. По завершению данного процесса агент AZl задачи Zl сообщает
114
пользователю планируемый момент времени tkl решения его задачи Zl, опре-
деляемый с помощью выражения (7).
Если предложенное время решения задачи удовлетворяет пользователя, то
агент AZl отправляет всем агентам, включенным в сообщество Rl, команду
на выполнение операций.
Формализуем алгоритм, соответствующий описанному выше процессу:
Алгоритм 1
1. j = 1; Gjl (Qjl, Xjl ) = Gl(Ql, Xl); Rl = ∅.
2. В графе Gjl (Qjl , Xjl ) выделяется наиболее трудоемкая нить Hj =
=< qj1,... ,qjk >, для которой значение Vj =
vji максимально, где vji тру-
i=1
доемкость операции Oji, приписанной вершине qji (i = 1, . . . , k).
3. m = 1; Hmj = Hj; t = tтек.
4. Нить Hmj выставляется агентом AZl на ДО для исполнения.
5. r = 1; p = 0; Ep = ∞.
6. Агент AZl получает ¾предложение¿ от агента ARr об исполнении под-
нити Hmjr =< qj1, . . . , qjb > ⊆Hmj (b ≤ k), а также моменты времени tmнr начала
и tmкr завершения ее исполнения.
b vji
7. Если Er =m=1tкr-t ≥Ep,гдеvi трудоемкостьвершиныqi (i=1,...,b),
то перейти к 9, иначе
8. Ep = Er; p = r.
9. r = r + 1; если r ≤ N, то перейти к 6, иначе
10. Агент ARp включается в сообщество Rl по выполнению задачи Zl и
за ним закрепляется выполнение нити Hmjp. В графе Gl(Ql, Xl) вершинам
нити Hmjp приписывается номер агента ARp, а также время их исполнения
vi
tjf = tmнp +
(f = 1, . . . , b).
Sp(Oi)
i=1
11. Hm+1j = Hmj/Hmjp; если Hm+1j = ∅, то перейти к 13, иначе
12. m = m + 1; t = tbf +db,b+1 ; перейти к 4.Y
p
13. Если j = 1 или tjk ≤ tj-1f-1, где tк
момент времени завершения ни-
ти Hj; tj-1b-1
момент времени исполнения вершины qj-1b-1 нити Hj-1 =
=< qj-11,... ,qr-1 >, вершина qj-1b которой инцидента конечной вершине qjk
нити Hj, перейти к 15, иначе
14. В графе Gl(Ql, Xl) вершинам qj-1b, qj-1b+1, . . . , qr-1, нити Hj-1 приписыва-
ется новое плановое время их исполнения tj-1i = tj-1i + ΔT (i = b, b + 1, . . . , r),
где ΔT = tjk - tj-1b-1.
115
О корректировке времени исполнения вершин qj-1b, . . . , qr-1 нити Hj-1 со-
общается агенту ARc, за которым закреплено их исполнение.
15. Gj+1l(Qj+1l, Xj+1l) = Gjl (Qjl , Xjl )/Hj , если Gj+1l(Qj+1l, Xj+1l) = ∅, то пе-
рейти к 17, иначе
16. j = j + 1, перейти к 2.
17. Отправить пользователю уведомление о расчетном времени tkl =
= tk + dk,k+1Ypрешения, где tkмомент времени исполнения конечной верши-
ны qk графа Gl(Ql, Xl), dk,k+1 объем результирующих данных, приписан-
ных дуге, исходящей из конечной вершины qk; Yp пропускная способность
канала связи ресурса Rp, за которым закреплено выполнение вершины qk.
18. В случае согласия пользователя с расчетным временем решения его
задачи Zl агент AZl отправляет всем сообществам Rl команду на исполнение
их операций.
19. Если от агента ARp ⊆ Rl поступило сообщение о завершении исполне-
ния закрепленной за ним нити Hmjp =< qj1, . . . , qjb >, то агент AZl сравнивает
планируемый момент времени tк завершения данной нити, определяемый как
j
время исполнения, приписанное конечной вершине
tк = tjb +db,b+1Yp(гдеtb
q1b ∈ Hmip; djb,b+1
объем данных, приписанный исходящей дуге нити Hmip), с
текущим временем tтек. Если tтек > tк, то пользователю сообщается о задерж-
ке времени решения его задачи Zl на величину Δt = tтек - tк, а планируемое
время исполнения всех последующих вершин графа Gl(Ql, Xl) увеличивается
на величину Δt.
20. Если конечная вершина qjb нити Hmjp является конечной вершиной qk
графа Gl(Ql, Xl), то пользователю направляется сообщение о завершении ре-
шения его задачи и результаты ее решения.
21. Задача Zl помечается на ДО как решенная.
5. Алгоритм работы агента вычислительного ресурса
при мультиагентном диспетчировании ресурсов
Основной целью работы агента вычислительного ресурса ARp является
поиск задач для загрузки ¾своего¿ ресурса Rp полезной работой. Для этого
он периодически опрашивает ДО и в случае обнаружения новой нити Hmj, вы-
ставленной на исполнение агентом AZl задачи Zl, делает попытку включения
в состав сообщества Rl по его выполнению. Для этого агент ARp выделяет
в нити Hmj =< qj1, . . . , qjk > поднить Hmjp =< qj1, . . . , qjb > (b ≤ k) подзада-
чи, приписанные вершины которой входят в множество Op, т.е. в множество
подзадач, выполняемых ресурсом Rp (см. рис. 4).
Агент ARp определяет момент времени tmнp, когда он может приступить
к исполнению поднити Hmjp, т.е. когда он освободится от исполнения ранее
закрепленных за ним операций, а также момент времени tmкp окончания ис-
полнения поднити Hmjp, определяемый согласно выражению (2).
116
Выделенная таким образом поднить Hmjp направляется агенту AZl зада-
чи Zl в качестве ¾предложения¿ агента ARp по участию в сообществе Rl
по выполнению задачи Zl. Если ¾предложение¿ агента ARp наилучшее среди
всех поступивших, т.е. значение Ep, определяемое с помощью выражения (5),
для нее максимально, ему направляется подтверждение о закреплении под-
нити Hmjp за ним.
Как только наступает запланированный момент tmнp начала исполнения ни-
ти Hmjp, агент ARp осуществляет ее выполнение (см. рис. 7). Перед тем, как
перейти к очередной подзадаче Oji, приписанной вершине qji (i = 1, . . . , b) ни-
ти Hmjp, агент ARp проверяет наличие требуемых для ее исполнения исходных
данных. Если какие-либо исходные данные еще не поступили, то агент ARp
переходит в режим ожидания. Как только все исходные данные, необходи-
мые для решения подзадачи Oji, поступают, агент ARp инициирует решение
подзадачи Oji с помощью ¾своего¿ ресурса Rp. После выполнения всех подза-
дач, приписанных вершинам нити Hmjp, агент ARp сообщает агенту задачи Zl
о завершении исполнения нити Hmjp.
Формализуем алгоритм, соответствующий описанному выше процессу:
Алгоритм 2
1. Агент ARp опрашивает ДО в поисках работы для ¾своего¿ ресурса Rp.
2. Если агент ARp обнаружил на ДО выставленную на исполнение агентом
AZl нить Hmj =< qj1, . . . , qjk > задачи Zl, то он выделяет в нити Hmj поднить
Hmjp =< qj1,... ,qjb > (b ≤ k), вершины которой удовлетворяют условию Oji
⊆ Op (j = 1,...,b), где Oji подзадачи, приписанная вершине qji нити Hmjp.
3. Агент ARp рассчитывает моменты времени tmнp, когда он может присту-
пить к исполнению нити Hmj, и tmкp завершения нити как
djb,b+1
vji
tmкp = tmнp +
+
Sp(Oi)
Yp
i=1
4. Полученные значения направляются агенту AZl.
5. Если агент ARp получает от агента AZl подтверждение о его включе-
нии в сообщество Rl, то он в момент времени tmнp приступает к выполнению
вершин нити Hmjp =< qj1, . . . , qjb >.
6. Введем индекс i = 1.
7. Агент ARp проверяет наличие всех исходных данных, необходимых для
решения подзадачи Oji , приписанных вершине qji ∈ Hmjp. Если исходные дан-
ные еще не поступили, агент ARp переходит в режим ожидания.
8. Как только все необходимые исходные данные поступили, агент ARp
решает подзадачу Oji с помощью ¾своего¿ ресурса Rp.
9. i = i + 1, если i < b, то перейти к 7, иначе
117
10. Агент ARp сообщает агенту задачи Zl о завершении выполнения под-
задач нити Hmjp.
11. Переход к 1.
6. Исследование эффективности предложенных метода
и алгоритмов
Для проведения экспериментальных исследований предложенных в статье
метода и алгоритмов была разработана распределенная программная модель
ОВС с мультиагентным диспетчером, состоящая из программных агентов ре-
сурса и задачи, доски объявлений, визуальных оболочек пользователя и ад-
министратора.
Интерфейс визуальной оболочки пользователя представлен на рис. 8.
С целью развертывания разработанной распределенной программной мо-
дели ОВС с мультиагентным диспетчером был собран экспериментальный
стенд, состоящий из 10 вычислительных модулей, включающих в себя от 1
до 16 физических процессорных ядер, объединенных общей сетью с пропуск-
ной способностью до 1000 мегабит в секунду.
Рис. 8. Визуальная оболочка пользователя.
118
Для оценки эффективности предложенного метода и алгоритмов работы
мультиагентного диспетчера ОВС при решении поступающих задач потре-
бовалось провести исследование работы ОВС в различных режимах работы.
В связи с тем, что моделируемая вычислительная среда представляет собой
сложную систему, для полноценного исследования такой системы необходи-
ма целенаправленная организация эксперимента. При этом эффективность
работы ОВС оценивалась с применением критерия Y отношения суммар-
ного времени решения всех задач множества Z с применением предложенных
в настоящей статье алгоритмов к суммарному времени решения всех задач
множества Z с применением распределения, полученного с помощью алгорит-
мов распределения задач, предложенных в [16], выраженного в процентах.
Чем меньше будет значение критерия Y, полученного при исследовании, тем
эффективнее работают предложенные алгоритмы.
Значение критерия Y будет в большой степени зависеть от таких пара-
метров ОВС как: количество вычислительных ресурсов (ВР) в ОВС; про-
изводительность ВР; пропускная способность канала связи ВР с облачной
инфраструктурой; частота появления новых пользовательских задач на ДО;
количество пользовательских задач, направленных в ОВС; количество под-
задач в пользовательской задаче; вычислительная трудоемкость подзадач;
объемы данных, передаваемых между подзадачами.
Для того чтобы оценить эффективность разработанных алгоритмов муль-
тиагентного диспетчирования ОВС, необходимо оценить значение крите-
рия Y для всевозможных комбинаций перечисленных выше параметров. Од-
нако сделать это будет крайне трудно, поскольку каждый из этих параметров
может существенно измениться в рамках некоторого интервала, а общее чис-
ло их комбинаций будет ограниченным. Поэтому была разработана методика
проведения экспериментов, позволяющая сократить общее количество экспе-
риментов, необходимое для оценки критериев и эффективности работы пред-
ложенных алгоритмов, без существенного снижения их достоверности [24].
При этом были предложены следующие интервалы изменения параметров
моделирования (чтобы сделать процесс моделирования более близким к ре-
альным условиям, было решено ввести 20%-ное значение возможной погреш-
ности параметров): параметр P1 количество вычислительных ресурсов в
ОВС (10, 100, 500, 1000); параметр P2 количество решаемых в ОВС поль-
зовательских задач (10 (малое), 50 (среднее), 100 (большое)); параметр S1
производительность ресурсов ОВС (низкая (-)
10, высокая (+)
100); па-
раметр S2 пропускная способность каналов связи между ресурсами ОВС
(низкая (-)
10, высокая (+)
100); параметр S3 трудоемкость поль-
зовательских задач (низкая (-)
10, высокая (+)
100); параметр S4
количество данных, передаваемых между подзадачами (низкая (-)
10, вы-
сокая (+)
100); параметр T1 - количество подзадач в задаче (от 5 до 25).
Разбиение экспериментов было предложено реализовать следующим образом.
Комбинации параметров Р1 и Р2 определяют серию экспериментов. В рам-
ках каждой из серий проводится по 16 экспериментов (один эксперимент для
119
каждой из комбинаций параметров S1, S2, S3 и S4), каждый из экспериментов
проводится по три раза с различными значениями параметра Т1.
Наименьшее значение 14% критерия Y было получено при P1 = 50, P2 =
= 1000, S1 = 10, S2 = 10, S3 = 100, S4 = 10, что подтверждает высокую эф-
фективность разработанных алгоритмов для небольших ОВС с высокой за-
грузкой. Наиболее высокое значение 84% критерия Y было получено при
P1 = 1000, P2 = 10, S1 = 10, S2 = 100, S3 = 100, S4 = 100, что соответству-
ет слабо загруженной задачами ОВС, содержащей большое количество вы-
числительных ресурсов, являющейся наименее подходящей для примене-
ния предложенных в статье эвристических метода и алгоритмов. Итоги
всех проведенных экспериментов показывают, что среднее значение крите-
рия Y составило 53%. Это позволяет сделать вывод, что в общем виде даже
при большом количестве ресурсов в ОВС предложенные в настоящей ста-
тье алгоритмы позволяют сократить суммарное время решения всех задач
множества Z.
7. Заключение
Проведенные исследования показали, что основным преимуществом пред-
лагаемого мультиагентного метода диспетчирования ресурсов в ОВС явля-
ется то, что вычислительный процесс адаптируется к актуальным вычис-
лительным возможностям гетерогенных ресурсов, входящих в ее состав. По
сравнению с классической централизованной организацией диспетчера об-
лачной среды в данном случае упрощаются требования к служебным серве-
рам (доскам объявлений), что позволяет существенно снизить стоимость об-
лачных вычислений, а также упростить процесс масштабирования облачной
среды.
Предложенные в статье метод и алгоритмы позволяют повысить эффек-
тивность и гибкость использования вычислительного оборудования в ОВС за
счет возможности адаптивного распределения задач в множестве гетероген-
ных ресурсов с динамически изменяемыми параметрами, при этом не тре-
буют от пользователей дополнительной информации о необходимом времени
решения задач.
СПИСОК ЛИТЕРАТУРЫ
1. Alam T. Cloud Computing and its role in the Information Technology // IAIC Trans-
actions on Sustainable Digital Innovation (ITSDI). 2020. Vol. 1. No. 2. P. 108-115.
2. Батаев А.В. Оценка мирового рынка облачных технологий в финансовой сфе-
ре // Вектор экономики. 2019. № 6. С. 91-91.
3. Караев А.В., Емельянов Д.О., Барановская Т.П. Актуальность и особенности
внедрения ИТ-сервисов с применением облачных технологий // Информацион-
ное общество: современное состояние и перспективы развития. 2020. С. 387-390.
120
4.
Fink A., Homberger J. An ant-based coordination mechanism for resource-
constrained project scheduling with multiple agents and cash flow objectives //
Flexible Services and Manufacturing Journal. 2013. Vol. 25. No. 1. P. 94-121.
5.
Verma A., Kaushal S. A hybrid multi-objective Particle Swarm Optimization for
scientific workflow scheduling // Parallel Comput. 2017. Vol. 62. P. 1-19.
6.
Yuan X., Liu J., Wimmers M.O. A multi-agent genetic algorithm with variable
neighborhood search for resource investment project scheduling problems // IEEE
Congress on Evolutionary Computation (CEC). IEEE, 2015. P. 23-30.
7.
Bertsekas D.P. Feature-based aggregation and deep reinforcement learning: A survey
and some new implementations // IEEE/CAA J. Autom. Sin. 2019. Vol. 6. No. 1.
P. 1-31.
8.
Habibi F., Barzinpour F., Sadjadi S. Resource-constrained project scheduling prob-
lem: review of past and recent developments // J. Project Management.
2018.
Vol. 3. No. 2. P. 55-88.
9.
Mao H., Alizadeh M., Menache I., Kandula S. Resource management with deep
reinforcement learning // HotNets 2016 - Proceedings of the 15th ACM Workshop
on Hot Topics in Networks. 2016. P. 50-56.
10.
Xue L., Sun C., Wunsch D., et al. An adaptive strategy via reinforcement learning
for the prisoner’s dilemma game // IEEE/CAA J. Autom. Sin. 2018. V. 5. No. 1.
P. 301-310.
11.
Zhan Y., Ammar H.B., Taylor M.E. Theoretically-grounded policy advice from
multiple teachers in reinforcement learning settings with applications to negative
transfer // IJCAI International Joint Conference on Artificial Intelligence.
2016.
Vol. 2016-Janua. P. 2315-2321.
12.
Wang H., Huang T., Liao X., et al. Reinforcement Learning for Constrained Energy
Trading Games with Incomplete Information // IEEE Trans. Cybern. 2017. Vol. 47.
No. 10. P. 3404-3416.
13.
Zheng L., Yang J., Cai H., et al. Magent: A many-agent reinforcement learning
platform for artificial collective intelligence // Proceedings of the AAAI Conference
on Artificial Intelligence. 2018. Vol. 32. No. 1. P. 8222-8223.
14.
Lowe R., Wu Y.I., Tamar A., et al. Multi-agent actor-critic for mixed cooperative-
competitive environments // Advances in neural information processing systems.
2017. Vol. 30. P. 1-12.
15.
Каляев И.А., Каляев А.И., Коровин Я.С. Алгоритм мультиагентного диспетчи-
рования ресурсов в гетерогенной облачной среде // Вычислительные техноло-
гии. 2016. Т. 21. № 5. С. 38-53.
16.
Каляев А.И., Каляев И.А. Метод мультиагентного диспетчирования ресурсов
в облачных вычислительных средах // Известия Российской академии наук.
Теория и системы управления. 2016. № 2. С. 51-57.
17.
Каляев И.А., Капустян С.Г. Метод мультиагентного управления ¾умным¿
интернет-производством // Робототехника и техническая кибернетика. 2018.
№ 1. С. 34-48.
18.
Аблялимов О.С. О решении задачи оптимизации методом динамического про-
граммирования // Universum: технические науки. 2020. № 9-1(78). С. 16-18.
19.
Канцедал С.А., Костикова М.В. Динамическое программирование для задачи
коммивояжера //Автоматизированные системы управления и приборы автома-
тики. 2014. № 166. С. 15-20.
121
20. Колемаев В.А. Математическая экономика. М.: ЮНИТИ - ДАНА, 2002.
21. Kalyaev А.I., Korovin Y.S. Adaptive Multiagent Organization of the Distributed
Computations / AASRi Procedia. 2014. Vol. 6. P. 49-58.
(URL: http://dx.doi.org/10.1016/j.aasri.2014.05.008)
22. INTRODUCTION TO ALGORITHMS, Second Edition Thomas H. Cormen,
Charles E Leiserson, Ronald L. Rivest, Clifford Stein. (URL: http://www.mif.vu.lt/
-valdas/ALGORITMAI/LITERATURA/Cormen/Cormen.pdf).
23. Рейнгольд О., Нвергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и
практика. М.: Мир, 1980.
24. Каляев А.И., Хисамутдинов М.В. Программа и методики экспериментальных
исследований методов и алгоритмов работы распределенной вычислительной
системы с помощью программной модели // Наука и современность: сбор-
ник материалов V Международной научно-практической конференции. 2016.
С. 44-45.
Статья представлена к публикации членом редколлегии А.А. Галяевым.
Поступила в редакцию 15.10.2021
После доработки 14.02.2022
Принята к публикации 28.04.2022
122