Мультиагентні системи: координація та переговори
Жоден окремий агент не бачить всієї картини. Та попри це доставні дрони уникають зіткнень одне з одним, складські роботи діляться проходами без зіткнень, а хмарні планувальники розподіляють мільйони завдань — і все це без центрального мікроменеджера. Це наука про те, як змусити багато незалежних осіб, що ухвалюють рішення, працювати як єдине ціле.
1. Що таке мультиагентна система
Мультиагентна система (MAS) — це набір автономних агентів, які поділяють спільне середовище, сприймають його через локальні сенсори та впливають на нього через локальні дії, при цьому жоден агент не володіє повним глобальним станом. Кожен агент переслідує власну мету — доставити пакунок, зібрати ресурс, захистити територію — але система в цілому не повинна впадати в хаос: агенти не мають зіштовхуватись, марнувати ресурси чи працювати всупереч одне одному.
Дослідження MAS перебуває на перетині розподілених обчислень, теорії ігор та штучного інтелекту. Воно лежить в основі роєвої робототехніки, алгоритмічної торгівлі, команд роботів для ліквідації наслідків катастроф, мереж світлофорів та ігрового ШІ. Центральне питання завжди одне й те саме: як отримати емерджентну, корисну глобальну поведінку з суто локальних рішень?
Загалом стратегії координації поділяються на пряму комунікацію (агенти обмінюються явними повідомленнями — контрактами, заявками, голосами) та непряму координацію через саме середовище, відому як стигмергія. Стигмергії присвячена окрема стаття — тут ми зосереджуємось на явних протоколах: переговорах, аукціонах і консенсусі.
2. Механізми координації
Переговори
Агенти обмінюються пропозиціями, щоб дійти взаємоприйнятної угоди щодо спільного ресурсу чи завдання.
Аукціони
Ресурс або завдання дістається учаснику з найвищою (або найдешевшою) заявкою серед конкурентів.
Консенсус
Агенти ітеративно обмінюються локальними оцінками, доки не зійдуться до спільного глобального значення.
Кожна реальна система поєднує ці механізми. Флот доставних роботів може використовувати аукціон для розподілу посилок, протокол переговорів для обміну посилками при зміні маршрутів і алгоритм консенсусу для узгодження спільної карти заблокованих доріг.
Централізована проти децентралізованої координації
Централізований координатор має повну видимість і видає оптимальні (або близькі до оптимальних) команди, але є єдиною точкою відмови і погано масштабується понад кілька сотень агентів. Децентралізований протокол масштабується до тисяч агентів і толерує окремі відмови, ціною втрати гарантій доведено оптимального рішення — децентралізовані рішення зазвичай лише локально оптимальні.
3. Contract Net Protocol
Contract Net Protocol (CNP), запропонований Рідом Дж. Смітом у 1980 році, — це архетипний протокол переговорів для розподілу завдань у розподілених системах. Він працює у чотири етапи:
- Оголошення — менеджер розсилає запит на пропозиції (CFP), що описує завдання та обмеження.
- Подання заявок — кожен здатний виконати завдання агент обчислює свою вартість чи корисність і відповідає заявкою.
- Присудження — менеджер порівнює всі заявки та присуджує контракт найкращій (найнижча вартість або найвища корисність).
- Виконання та звітування — переможець виконує завдання і повідомляє результат менеджеру.
CNP створено десятиліття тому, але його структура — оголошення, заявка, присудження — саме те, як сучасні хмарні планувальники (bin-packing у Kubernetes), диспетчеризація таксі та флоти складських роботів (у стилі Amazon Kiva) розподіляють роботу у великому масштабі, зазвичай з додатковими рівнями повторних переговорів при зміні умов.
4. Аукціони та розподіл завдань
Аукціони узагальнюють ідею Contract Net з добре вивченими теоретико-ігровими властивостями. Три найпоширеніші формати в літературі MAS:
- Англійський аукціон — ціна зростає, учасники відкрито перебивають ставки одне одного, доки не залишиться один.
- Закрита заявка першої ціни — кожен агент подає одну приховану заявку; найвищий переможець платить власну ставку.
- Аукціон Вікрі (другої ціни) — переможець найвищої заявки платить другу за розміром ставку, що робить чесну ставку домінантною стратегією.
Подання чесної ставки value(i) максимізує очікувану корисність для кожного агента i, незалежно від ставок інших — саме це робить аукціони другої ціни "стратегічно непідкупними".
У комбінаторних аукціонах агенти роблять ставки на пакети завдань, а не на окремі елементи, що краще відображає синергії (наприклад, дві доставки на одній вулиці дешевші разом), але робить визначення переможця NP-складним у загальному випадку.
5. Алгоритми консенсусу
Протоколи консенсусу дозволяють групі агентів узгодити єдине значення — точку збору, середнє показання сенсора, лідера — використовуючи лише локальну комунікацію з сусідами, без трансляції всім одразу.
де N(i) — множина агентів, з якими i може спілкуватись, а ε — малий крок (ε < 1/макс. степінь для стабільності). Значення кожного агента сходиться до одного й того ж глобального середнього.
Це просте правило оновлення лежить в основі вирівнювання швидкостей при флокінгу (див. нашу статтю про Boids), розподіленого злиття даних сенсорів і блокчейн-подібного узгодження (хоча з набагато суворішими вимогами до відмовостійкості у візантійському випадку, коли деякі агенти можуть брехати).
Якщо до f агентів з N можуть поводитись довільно (надсилати суперечливу чи хибну інформацію), класичні результати (Лампорт, Шостак і Піз, 1982) показують, що консенсус досяжний лише за умови N > 3f. Ця межа лежить в основі багатьох блокчейн- протоколів консенсусу.
6. Комунікація та мовленнєві акти
Щоб агенти могли вести переговори, їм потрібен спільний словник. Стандарт FIPA-ACL (Agent Communication Language) визначає набір перформативів — мовленнєвих актів, запозичених із лінгвістики — які надають кожному повідомленню однозначний намір:
cfp— запит на пропозиції (початок раунду Contract Net)propose— заявка чи контрпропозиціяaccept-proposal/reject-proposal— рішення менеджераinform— повідомлення факту чи спостереженняrequest— прохання до іншого агента виконати дію
Така структура повідомлень дозволяє різнорідним агентам — створеним різними командами, різними мовами — взаємодіяти, бо значення повідомлення стандартизоване навіть тоді, коли зміст відрізняється.
7. Псевдокод: Contract Net Protocol
function runContractNet(manager, contractors, task):
// 1. Оголошення
manager.broadcast(cfp(task), contractors)
// 2. Подання заявок
bids = []
for each agent in contractors:
if agent.canPerform(task):
cost = agent.estimateCost(task)
bids.push({agent, cost})
// 3. Присудження — обираємо найдешевшу заявку
if bids.length == 0:
return null // ніхто не може виконати
winner = minBy(bids, b => b.cost)
manager.send(accept-proposal, winner.agent)
for each other in bids if other != winner:
manager.send(reject-proposal, other.agent)
// 4. Виконання та звітування
result = winner.agent.execute(task)
winner.agent.send(inform(result), manager)
return result
Реальні варіанти додають тайм-аути (заявки повинні надійти до дедлайну), повторне оголошення (якщо переможець зазнає невдачі, повторити протокол серед решти підрядників) та вкладені контракти (підрядник може стати менеджером для підзавдань).
Часті запитання
Що таке мультиагентна система (MAS)?
Мультиагентна система — це набір автономних обчислювальних сутностей, які сприймають середовище, приймають незалежні рішення та діють для досягнення індивідуальних або спільних цілей. Жоден агент не має повного глобального знання, проте колектив може розв'язувати завдання, недоступні окремому агенту.
Що таке Contract Net Protocol?
Contract Net Protocol (CNP), запропонований Рідом Смітом у 1980 році, — це механізм розподілу завдань, де менеджер розсилає запит на пропозиції, підрядники подають заявки з оцінкою вартості, а менеджер обирає найкращу. Ця структура досі лежить в основі багатьох хмарних і робототехнічних планувальників.
Чим переговори відрізняються від координації?
Координація — це уникнення конфліктів і поєднання дій, щоб агенти не витрачали зусиль даремно. Переговори — це процес обміну пропозиціями та контрпропозиціями для досягнення угоди, коли цілі агентів частково суперечать одна одній. Переговори — лише один із механізмів координації, поряд з аукціонами та консенсусом.
Що таке аукціон Вікрі (другої ціни) і чому він "чесний"?
Що таке візантійська відмовостійкість у консенсусі?
Що таке FIPA-ACL?
Чому комбінаторні аукціони NP-складні?
Чим централізована координація відрізняється від децентралізованої?
Як працює консенсус розподіленого усереднення?
Де на практиці застосовуються протоколи мультиагентної координації?
🐜 Побачте децентралізовану координацію в дії
Симуляція мурашиної колонії показує координацію без переговорів через непрямі сигнали — жодного менеджера, жодних заявок, лише феромонні сліди, що сходяться до найкоротшого шляху.
Відкрити симуляцію →