Мультиагентное управление
Задача балансировки загруженности сети
В последнее время все чаще при вычислениях используются распределенные системы параллельных вычислений, для которых актуальна задача разделения пакета заданий между несколькими вычислительными устройствами.
Рассмотрим модель системы разделения однотипных заданий между разными узлами для параллельных вычислений с обратной связью. Обозначим набор интеллектуальных агентов (вычислительных узлов), каждый из которых обслуживает поступающие заявки на вычисления по принципу очереди, то есть первый вошел - первый вышел. Будем считать, что всем агентам присылают однотипные задания, которые можно раздробить на одинакове по сложности атомарные единицы. Задания поступают в различные моменты времени и на разные узлы. Считается известным размер каждой задачи (или задания), то есть его трудоемкость, в секундах или циклах процессора.
В каждый момент времени состояние агента , , описывается двумя характеристиками:
- – длина очереди из атомарных элементарных заданий в момент времени
- – производительность узла (количество (или доля) выполненых атомарных заданий за предшествующий такт времени, при условии полной загрузки).
Обозначим
Задача для сети агентов – выполнять поступающие последовательно задания. Будем рассматривать две постановки задачи: стационарную и нестационарную.
- Для начала предположим, что все задания поступают в систему на разные узлы в начальный момент времени. Если все задания выполняются только тем агентом, которому они поступили, и производительности агентов не изменяются со временем, то время выполнения всех заданий определяется так: . Для минимизации времени выполнния всех заданий при возможности их перераспределения между агентами естественно рассматривать задачу оптимизации загрузки сети.
- При тех же предположениях задача оптимизации загрузки остается актуальной и при поступлении в сеть новых заданий с течением времени. Новые задачи могут поступить прямо на любой из узлов. Каждый узел в определенный момент времени "видит" только соседей из множества . При этом считаем, граф связности полный, т. е. из каждого узла существует цепочка в любой другой. Динамики изменений каждого из узлов при неизменных производительностях описываются следующими уравнениями
( 6)
В каждый момент времени узел может получить от своих "видимых" соседей следующую информацию:
- наблюдения о том, какова его загрузка ;
- – производительность узла.
Задача состоит в том, чтобы составить протокол общения между агентами, при котором все узлы будут загружены равномерно, т. е. , независящей от , т. е. если в систему не будут поступать новые заказы, то все узлы закончат работать одновременно.
На рис. 9.1 приведен пример вычислительной сети из шести агентов с указанием возможных каналов связи, часть из которых может "закрываться" и "открываться" с течением времени.
Протоколы консенсуса
В 6 показано, что консенсус асимптотически достижим в двух типичных случаях.
- Для фиксированной или меняющейся топология и нулевом времени задержки связи при линейном протоколе консенсуса:
где множество соседей узла меняются в сети с переменной топологией.
( 7) - Для фиксированной топологии и задержкам по времени связи , соответствующим ребрам при линейном протоколе консенсуса с задержной по времени связи:
( 8)
В случае неориентированных графов для интуитивного обоснования протокола (7) можно воспользоваться следующими соображениями. Определим потенциал Лапласа , связанный с неориентированным графом следующим образом:
( 9) |
( 10) |
Для ориентированных сетей вопрос об обосновании протокола консенсуса является более сложным.
Обычно рассматривают два типа протоколов консенсуса, которые решают задачу согласования в сети с непрерывным временем для агентов с динамикой:
( 11) |
( 12) |
Для решения сформулированной в разделе 2 общей постановки задачи о построениии протокола консенсуса в 12 предлагается следующий метод стохастической аппроксимации.
Определим матрицу следующим образом: если , то
( 13) |
( 14) |
В момент времени , если , множество .
Если , узел меняет свое состояние по правилу:
( 15) |
Вернемся к задаче о балансировке загрузки узлов вычислительной сети. В качестве ненулевых берем . В этом случае .
Алгоритм (15) в задаче о балансировке загрузки узлов вычислительной сети принимает вид
( 16) |
Задачи балансировки загрузки встречаются не только в вычислительных сетях, но также в производственных, логистических, транспортных и других сетях 33-37.