Skip to content

Модуль 05 · Багатоагентне навчання: моделі та виклики

Що змінюється, коли рішення ухвалює не один агент, а кілька одночасно. Модуль будує мову для таких задач і показує, які припущення одноагентного навчання перестають працювати.

Схема багатоагентного навчання: агенти, спостереження, дії та винагороди

Схема багатоагентного навчання: агенти, спостереження, дії та винагороди

Зміст лекції

Багатоагентне навчання з підкріпленням (multi-agent reinforcement learning, MARL) завжди складається з двох частин: модель гри задає механіку взаємодії, концепція розв'язку каже, якою має бути спільна політика.

ЧастинаПро що
1. Моделі ігорвід матричної гри до частково спостережуваної стохастичної
2. Матричні ігри як мікромоделіп'ять класичних ігор і що кожна означає для рою
3. Концепції розв'язкурівновага Неша, Парето-оптимальність, добробут, справедливість
4. Режими навчанняцентралізоване проти незалежного
5. Чотири виклики MARLнестаціонарність, вибір рівноваги, розподіл заслуг, масштабування

Результати навчання

Після лекції ви зможете:

  • записати кортежем моделі нормальної форми, стохастичної гри та POSG і вказати, яка з них є частковим випадком якої;
  • знайти детерміновану рівновагу Неша в матричній грі й пояснити, чому саме вона;
  • пояснити, чому середовище виглядає нестаціонарним для агента, що вчиться поруч з іншими;
  • розрізнити централізоване й незалежне навчання та назвати проблему кожного;
  • назвати чотири виклики MARL і навести для кожного числовий приклад;
  • зіставити тип гри з конкретною задачею рою БПЛА.

Частина 1 · Моделі ігор

Перш ніж говорити про навчання, потрібна модель того, як влаштована взаємодія. Чотири моделі пов'язані відношенням «частковий випадок».

Ієрархія моделей ігор: POSG, стохастична гра, повторювана гра, MDP

Ієрархія моделей ігор: POSG, стохастична гра, повторювана гра, MDP

Найзагальніша — частково спостережувана стохастична гра (POSG): кілька агентів, багато станів, кожен бачить лише частину картини. Якщо стан і дії всіх видно повністю — це стохастична гра. Якщо стан один і ніколи не змінюється — повторювана гра в нормальній формі. Якщо агент один — звичайний MDP, з якого починався Модуль 04.

Багатоагентна система і цикл MARL

Схема багатоагентної системи

Схема багатоагентної системи

Агенти діють одночасно: кожен обирає дію незалежно, дії утворюють спільну дію (joint action), і саме вона змінює стан середовища. Кожен агент отримує власне спостереження й власну винагороду.

Ключова відмінність від Модуля 04: винагорода агента залежить не лише від його дії, а від спільної дії всіх. Саме ця залежність від чужого вибору й породжує всю подальшу теорію. Ігри з почерговими ходами (шахи, покер) описують іншим апаратом і тут не розглядаються.

Гра в нормальній формі

Найпростіша модель описує одну одночасну взаємодію.

Γ=(I, {Ai}iI, {Ri}iI),A=A1××An,Ri:AR
ПозначенняЗначення
I={1,,n}множина агентів
Aiмножина дій агента i
Aмножина спільних дій
Riфункція винагороди агента i

Якщо ту саму гру повторювати T разів, отримуємо повторювану гру: політика тепер може залежати від історії попередніх спільних дій. Класичний приклад — «Tit-for-Tat»: перший хід — співпраця, далі повторюй останню дію суперника.

Стохастична гра і POSG

Стохастична гра додає до нормальної форми множину станів і функцію переходів. Кожен окремий стан можна розглядати як маленьку гру в нормальній формі, а вся стохастична гра склеює такі ігри переходами.

G=(I, S, {Ai}, {Ri}, T, μ),T(s,a,s)=Pr(ss,a)

POSG — та сама гра, у якій агент замість стану отримує спостереження, а політика обумовлена не станом, а власною історією спостережень:

πi(aithit),hit=(oi0,,oit)

Стохастична гра — окремий випадок POSG, у якому спостереження збігається зі станом. POSG зі спільною винагородою має власну назву — Dec-POMDP, і саме до цього класу належить більшість задач рою.

Часткова спостережуваність на прикладі

Середовище level-based foraging із частковою спостережуваністю

Середовище level-based foraging із частковою спостережуваністю

Часткова спостережуваність буває двох типів, і вони по-різному впливають на задачу.

ТипЩо агент бачитьПриклади в рої
Приховані дії іншихстан і власну дію, але не дії сусідівапарати поза каналом зв'язку
Обмежений оглядлише частину стануобмежений радіус сенсора, будівля між апаратами

Оскільки стан невідомий, агент тримає стан переконань — оцінку розподілу ймовірностей по станах. Точна фільтрація на практиці недосяжна: пам'ять і час оновлення зростають експоненційно. Тому в глибокому навчанні оцінку замінюють рекурентною мережею, прихований вектор якої сам вчиться кодувати потрібне з історії спостережень.

Частина 2 · Матричні ігри як мікромоделі

Двоє агентів, кілька дій, винагорода у вигляді таблиці. На цих прикладах видно все головне: домінування, координацію, ризик і рівновагу.

Три гри в нормальній формі для двох агентів

Три гри в нормальній формі для двох агентів

Характер задачі задає не сама таблиця, а співвідношення винагород агентів.

КласСпіввідношенняЩо це означає для рою
zero-sumRi=Rjчиста протидія, компроміс неможливий
common-rewardусі винагороди однаковічиста кооперація, лишається координація
general-sumобмежень немаєі кооперація, і конфлікт одночасно

Prisoner's Dilemma: рівновага гірша за співпрацю

r1,r2CD
C−1, −1−5, 0
D0, −5−3, −3

Єдина рівновага — (D, D) з віддачами (3,3). Дія D домінантна: вона дає більшу винагороду за будь-якої дії суперника. Якщо суперник грає C, то D дає 0 замість −1; якщо D — то −3 замість −5.

Головний урок. Пара (C, C) з віддачами (1,1) вигідніша обом, але вона не є рівновагою: з неї кожному вигідно відхилитися. Рівновага і найкращий спільний результат — різні речі.

Stag Hunt: дві рівноваги і ціна помилки

Двоє мисливців обирають між великою здобиччю (S), яку можна взяти лише разом, і дрібною (H), яку кожен бере самостійно.

r1,r2SH
S4, 40, 3
H3, 02, 2

Дві детерміновані рівноваги: (S, S) з (4,4) і (H, H) з (2,2). У парі (S, S) відхилення дає 3 замість 4; у парі (H, H) — 0 замість 2. Обидві стійкі, хоча одна помітно гірша для всіх.

(S, S) домінує за винагородою, (H, H) домінує за ризиком: вона гарантує щонайменше 2 за будь-якої поведінки напарника. На ранніх етапах навчання, коли дії ще випадкові, агент бачить, що S інколи дає 0, а H — завжди 2 або більше. Це підштовхує обох до гіршої рівноваги.

Задача рою: маневр, який вдається лише разом, — підняття вантажу вдвох, одночасне блокування двох виходів.

Chicken і Battle of the Sexes

Chicken. Двоє рухаються назустріч; S — не звертати, L — звернути.

r1,r2SL
S0, 07, 2
L2, 76, 6

Рівноваги: (S, L) і (L, S). Пара (L, L) з (6,6) найкраща за сумою, але рівновагою не є: кожному вигідно відхилитися на S і отримати 7. Задача рою: розходження двох апаратів у вузькому коридорі.

Battle of the Sexes. Обидва хочуть бути разом, але в різних місцях.

r1,r2AB
A10, 72, 2
B0, 07, 10

Рівноваги: (A, A) і (B, B). Проблема не в тому, щоб знайти рівновагу, а в тому, щоб домовитися, яку саме обрати, не маючи каналу для домовленостей. Задача рою: вибір спільної точки збору чи спільної частоти.

Код: пошук детермінованих рівноваг

Перевірка рівноваги завжди однакова: зафіксувати чужі дії й перевірити, чи є в агента щось краще.

python
import numpy as np, itertools

def pure_nash(R1, R2, names1, names2):
    """Повертає всі пари, від яких жодному агентові не вигідно відхилитись."""
    eq = []
    for i, j in itertools.product(range(R1.shape[0]), range(R1.shape[1])):
        best1 = R1[i, j] >= R1[:, j].max()   # агент 1 не покращить, змінивши рядок
        best2 = R2[i, j] >= R2[i, :].max()   # агент 2 не покращить, змінивши стовпець
        if best1 and best2:
            eq.append((names1[i], names2[j], R1[i, j], R2[i, j]))
    return eq

GAMES = {
    "Prisoner's Dilemma": (np.array([[-1,-5],[0,-3]]), np.array([[-1,0],[-5,-3]]), "CD", "CD"),
    "Stag Hunt":          (np.array([[4,0],[3,2]]),    np.array([[4,3],[0,2]]),    "SH", "SH"),
    "Chicken":            (np.array([[0,7],[2,6]]),    np.array([[0,2],[7,6]]),    "SL", "SL"),
    "Battle of the Sexes":(np.array([[10,2],[0,7]]),   np.array([[7,2],[0,10]]),   "AB", "AB"),
    "Rock-Paper-Scissors":(np.array([[0,-1,1],[1,0,-1],[-1,1,0]]),
                           np.array([[0,1,-1],[-1,0,1],[1,-1,0]]), "RPS", "RPS"),
}

Результат коду: усі п'ять ігор одразу

text
Prisoner's Dilemma     (D,D) -> (-3,-3)
Stag Hunt              (S,S) -> (+4,+4); (H,H) -> (+2,+2)
Chicken                (S,L) -> (+7,+2); (L,S) -> (+2,+7)
Battle of the Sexes    (A,A) -> (+10,+7); (B,B) -> (+7,+10)
Rock-Paper-Scissors    детермінованих рівноваг немає (лише ймовірнісна)

Три висновки, важливі для решти курсу: рівноваг може бути кілька; рівновага не зобов'язана бути найкращою для всіх; деякі ігри мають лише ймовірнісні рівноваги. Скінченна гра в нормальній формі завжди має щонайменше одну рівновагу Неша — але, як показує останній рядок, вона може не бути детермінованою.

Для Rock-Paper-Scissors єдина рівновага — обидва агенти обирають кожну дію з імовірністю 1/3, очікувана віддача обох дорівнює 0.

Матрична гра: рівновага проти оптимальності
Рамка — рівновага Неша, зелений фон — Парето-оптимальна клітинка. Натисніть на клітинку, щоб побачити добробут і справедливість.
Агент 2: CАгент 2: D
Агент 1: C-1, -1-5, 0
Агент 1: D0, -5-3, -3
рівновага Неша Парето-оптимальнавиплати подано як «агент 1, агент 2»
1детермінованих рівноваг
-2добробут обраної клітинки
1справедливість, добуток
нірівновага Парето-оптимальна

У Prisoner's Dilemma єдина рівновага не є Парето-оптимальною: обидва агенти раціональні, і обидва отримують гірше, ніж могли б. У Stag Hunt рівноваг дві, і вибір між ними неможливо зробити наодинці — це і є проблема вибору рівноваги з модуля. Для рою висновок практичний: тип гри визначає, чи можна взагалі очікувати доброго спільного рішення від незалежно навчених агентів.

Частина 3 · Концепції розв'язку

Розв'язок гри — це не одна політика, а спільна політика: кортеж із політики кожного агента. Оцінюють її очікуваною дисконтованою віддачею кожного агента.

Ui(π)=E[t=0γtRi(st,at,st+1) | π=(π1,,πn)]

Віддача агента i залежить від політик усіх агентів, тому говорити про «оптимальну політику агента» окремо від інших не має сенсу.

Рівновага Неша — спільна політика, у якій політика кожного агента є найкращою відповіддю на політики решти:

i, πi:Ui(πi,πi)Ui(π)

В іграх з нульовою сумою для двох агентів рівновага Неша збігається з minimax-розв'язком: обидва погляди дають те саме число — значення гри.

Парето-оптимальність, добробут і справедливість

Рівновага — не єдиний критерій якості.

Досяжні спільні віддачі та межа Парето у грі Chicken

Досяжні спільні віддачі та межа Парето у грі Chicken

Політика Парето-оптимальна, якщо покращити становище одного агента, не погіршивши становища інших, неможливо. Добробут — сума віддач, справедливість — добуток:

W(π)=iIUi(π),F(π)=iIUi(π)

Числовий приклад: три спільні політики з віддачами (1,5), (2,4) і (3,3) мають однаковий добробут 6, але справедливість 5, 8 і 9 — рівномірніший розподіл виграє.

Оптимальність за добробутом завжди дає Парето-оптимальність, зворотне хибно. За додатних віддач те саме справджується й для справедливості: Парето-домінуюча політика має більший добуток, тому максимум F теж лежить на межі Парето. А ось між собою добробут і справедливість не пов'язані — у прикладі вище всі три політики однаково добрі за W і різні за F.

Ціна обчислення рівноваги

Кожна скінченна гра має рівновагу Неша, але знайти її — обчислювально важка задача: ефективних алгоритмів для загального випадку не відомо, і в найгіршому разі час зростає експоненційно. Для окремих випадків усе краще: minimax у грі з нульовою сумою для двох агентів обчислюється швидко.

Окрема міра якості навчання — жаль (regret): різниця між отриманим і тим, що дала б одна найкраща дія проти тієї ж поведінки суперників. Приклад: десять епізодів Prisoner's Dilemma, агент отримав −21; постійне D дало б −15, отже жаль дорівнює 6, у середньому 0,6 за епізод.

Практичний висновок для курсу: MARL не шукає точну рівновагу. Він шукає достатньо добру спільну політику навчанням із взаємодії.

Частина 4 · Режими навчання

Складові загального процесу навчання в MARL

Складові загального процесу навчання в MARL

Два базові способи звести багатоагентну задачу до знайомого одноагентного апарату — і обидва мають ціну.

АспектЦентралізоване навчанняНезалежне навчання
Що навчаєтьсяодна політика, що бачить усе й обирає спільну діюкожен агент вчить власну політику зі своєї історії
Винагородапотребує зведення кортежу винагород до числазведення не потрібне
Простір дійзростає експоненційно з кількістю агентівне зростає
Виконаннявимагає централізованого зв'язку в реальному часіповністю розподілене
Головна проблемамасштаб і спосіб зведення винагороднестаціонарність

Централізоване проти незалежного: вимірювання

Криві навчання централізованого та незалежного Q-навчання

Криві навчання централізованого та незалежного Q-навчання

Для ігор зі спільною винагородою зведення тривіальне, і централізоване навчання гарантовано знаходить Парето-оптимальний розв'язок. Для ігор з нульовою та загальною сумою такого зведення може взагалі не існувати.

Практичне заперечення сильніше за теоретичне: агенти в рої фізично розподілені, тож потрібні локальні політики. Апарат не може під час польоту чекати на рішення центру.

Попри свою наївність, незалежне навчання лишається базовим орієнтиром у дослідженнях і часто дає результати, конкурентні із сучасними алгоритмами.

Централізоване навчання з децентралізованим виконанням

Компроміс, на якому побудована більшість сучасних алгоритмів MARL: під час навчання в симуляторі доступні стани й дії всіх агентів, а під час виконання кожен апарат діє лише за власним спостереженням.

Централізоване навчання з децентралізованим виконанням

Централізоване навчання з децентралізованим виконанням

Схему називають CTDE (centralized training, decentralized execution). Вона знімає нестаціонарність на етапі навчання, не порушуючи вимоги розподіленого виконання. Детально алгоритми CTDE — MADDPG, MAPPO, QMIX — розглянуто в Модулі 08.

Частина 5 · Чотири виклики MARL

Далі — властивості, через які одноагентні рецепти не переносяться на багатоагентні системи напряму.

Нестаціонарність і зростання простору спільних дій

Нестаціонарність і зростання простору спільних дій

Виклик 1: нестаціонарність

Коли агент i дивиться на світ, він не бачить дій сусідів — він бачить лише те, що середовище чомусь переходить із стану в стан. Але ця ефективна динаміка є усередненням справжньої динаміки за політиками решти агентів.

Ti(st+1st,ait)=aiT(st+1st,ait,ai)jiπj(ajst)
ПозначенняЗначення
Tiдинаміка, як її «бачить» агент i
Tсправжня динаміка гри над спільними діями
πjполітика агента j, що змінюється під час навчання

Поки сусіди вчаться, їхні політики змінюються, а разом з ними змінюється й те, що агент i сприймає як закон середовища. Динаміка перестає бути марковською: вона починає залежати від історії взаємодії. Умови збіжності, достатні для одноагентного навчання, тут уже не працюють.

Нестаціонарність у вимірюваннях

Збіжність нескінченно малого незалежного Q-навчання

Збіжність нескінченно малого незалежного Q-навчання

Виникають циклічні режими: агент пристосовується до сусідів, ті пристосовуються до нього, і так по колу. На графіку видно, що траєкторія політик не сходиться в точку, а обертається навколо рівноваги.

Усі відомі теоретичні гарантії збіжності обмежені вузькими класами ігор. Це не дефект конкретного алгоритму, а властивість задачі.

Виклик 2: вибір рівноваги

Коли рівноваг кілька, постає окреме питання: на якій із них агенти мають зійтися і як вони про це домовляться, не маючи каналу для домовленостей.

Показовий випадок — Stag Hunt: рівновага (4,4) краща за (2,2) для обох, але друга безпечніша. Незалежне Q-навчання схильне сходитися саме до безпечнішої.

Чотири підходи, якими на це відповідають:

  • звузити множину розв'язків додатковим критерієм — Парето-оптимальністю, добробутом або справедливістю;
  • скористатися структурою гри: в іграх з нульовою сумою значення рівноваги єдине, вибирати нема з чого;
  • моделювати інших агентів — будувати прогноз їхніх дій і зважати на нього;
  • комунікація — із застереженням: якщо агенти не зобов'язані діяти згідно з переданим, а одержувач не може перевірити повідомлення, комунікація сама стає джерелом проблем.

Виклик 3: розподіл заслуг

В одноагентному RL розподіл заслуг — це питання «яка з моїх минулих дій привела до цієї винагороди». У багатоагентному додається друге: «чия саме дія серед усіх агентів».

Спільна винагорода приховує внесок окремого агента

Спільна винагорода приховує внесок окремого агента

Найгостріше проблема стоїть у задачах зі спільною винагородою: одне й те саме число видають усім, і кожен має сам здогадатися, чи був його внесок корисним.

Що з цим роблять: оцінюють не власну дію, а спільну. У Rock-Paper-Scissors агент, що дивиться лише на власну дію, бачить середню цінність R близько нуля; функція від пари дій розрізняє (R,S) і (R,P) і дає різні значення. Це ж відкриває контрфактичні запитання «що було б, якби сусід зробив інакше» — на цій ідеї побудовані різницеві винагороди. Слабке місце: потрібна «дія за замовчуванням», а що нею вважати, часто незрозуміло.

Виклик 4: масштабування до багатьох агентів

Кількість спільних дій — це добуток кількостей індивідуальних дій, тому вона зростає експоненційно з числом агентів.

|A|=|A1||An|

Числовий приклад для рою, де кожен апарат має 6 дій (чотири напрямки, збирання, очікування):

АгентівСпільних дійСкільки це
236таблиця оглядається цілком
3216ще можна перебрати вручну
57 776таблиця на кілька тисяч рядків
81 679 616перебір уже не варіант
1060 466 176у 1,7 млн разів більше, ніж для двох

Перехід від 3 до 5 агентів — стрибок у 36 разів. Розбиття однієї великої задачі на n агентів зменшує простір дій кожного, але не зменшує сумарний простір спільних дій. Експоненційне зростання — властивість задачі, а не спосіб її запису.

Проти кого тренуватися

РежимЩо означає
Algorithm self-playусі агенти використовують один алгоритм навчання
Policy self-playполітику навчають безпосередньо проти неї самої
Mixed-playагенти використовують різні алгоритми

Policy self-play передбачає algorithm self-play, але не навпаки. Його перевага — швидкість: досвід усіх агентів зливається в одну політику. Обмеження — потрібні симетричні ролі й егоцентричні спостереження.

Припущення self-play стримує нестаціонарність, яка ще посилюється, коли агенти вчаться різними методами. Історичний приклад: TD-Gammon досяг рівня чемпіона в нардах, тренуючись проти себе.

Тип гри визначає задачу рою

Формальні класи ігор не є абстракцією: кожен відповідає впізнаваній задачі рою БПЛА.

Тип гриЗадача роюЩо визначає складність
zero-sum, 2 агентиперехоплення чужого апарата, ухиленнякомпромісу немає, потрібна гарантія проти найгіршого
common-reward (Dec-POMDP)спільне обстеження площі, спільна доставкарозподіл заслуг: винагорода одна на всіх
Stag Huntманевр, що вдається лише разомвибір між ризикованою і безпечною рівновагою
Chickenрозходження у вузькому коридоріобидва не поступляться — зіткнення
Battle of the Sexesвибір спільної точки збору чи частотирівноваг дві, треба домовитися без переговорів
General-sum, n агентівкілька операторів ділять повітряний простірчасткова кооперація й конкуренція одночасно

Практичне правило: перш ніж обирати алгоритм, визначте, у якому рядку цієї таблиці опинилася задача. Від цього залежить, чи взагалі має сенс шукати рівновагу і яку саме.

Словник: RL та теорія ігор

Той самий предмет описують двома словниками. Курс користується термінологією RL, але літературу з теорії ігор доводиться читати постійно.

RLТеорія ігорЩо це
середовищеграмодель дій, спостережень, винагород і динаміки
агентгравецьсутність, що ухвалює рішення
винагородаpayoff, utilityскалярне значення після дії
політикастратегіяфункція, що приписує ймовірності діям
детермінованаpureприписує ймовірність 1 одному варіанту
ймовірніснаmixedприписує ймовірності кільком варіантам
спільна діяaction profileкортеж, по одному елементу на агента

«Детермінована рівновага Неша» і pure Nash equilibrium — те саме.

Висновки

  • Моделі ігор утворюють ієрархію: POSG ⊃ стохастична гра ⊃ повторювана гра в нормальній формі; MDP — стохастична гра з одним агентом.
  • Задача MARL — це пара модель гри плюс концепція розв'язку. Сама модель не каже, яку спільну політику вважати бажаною.
  • Рівновага Неша означає стійкість до одностороннього відхилення — і нічого більше. Вона може бути гіршою за нерівноважний варіант, їх може бути кілька, а іноді вона лише ймовірнісна.
  • Оптимальність за добробутом дає Парето-оптимальність, зворотне хибно; за додатних віддач те саме вірно й для справедливості, але між собою добробут і справедливість не пов'язані.
  • Чотири виклики: нестаціонарність, вибір рівноваги, розподіл заслуг, масштабування — від 216 до 7 776 спільних дій при переході від 3 до 5 агентів.
  • Практичний компроміс — CTDE: централізоване навчання, децентралізоване виконання.

Перехід до Модуля 06

Модуль 05 побудував мову й показав, чому одноагентні рецепти не переносяться напряму. Але всі розглянуті приклади були табличними: матриці 2×2, сітки, скінченні множини станів.

Модуль 06 · Глибоке навчання з підкріпленням для БПЛА повертається до одного апарата, але з неперервним станом і неперервним керуванням — там, де таблиця неможлива в принципі. Розглянуто архітектури мереж, DDPG і SAC для керування тягою й кутами, а також розрив між симуляцією та реальним польотом.

Виклики цього модуля нікуди не зникають: у Модулі 08 вони повернуться вже разом із глибокими мережами, і саме там з'являться MADDPG, MAPPO та QMIX.

Література та ресурси

  • Albrecht S. V., Christianos F., Schäfer L. Multi-Agent Reinforcement Learning: Foundations and Modern Approaches. MIT Press, 2024. Розділи 3–5. marl-book.com
  • Nash J. Equilibrium Points in n-Person Games. PNAS, 1950, 36(1), 48–49. DOI 10.1073/pnas.36.1.48
  • Shapley L. S. Stochastic Games. PNAS, 1953, 39(10), 1095–1100.
  • Littman M. L. Markov Games as a Framework for Multi-Agent Reinforcement Learning. ICML, 1994, 157–163.
  • Claus C., Boutilier C. The Dynamics of Reinforcement Learning in Cooperative Multiagent Systems. AAAI, 1998, 746–752.
  • Daskalakis C., Goldberg P. W., Papadimitriou C. H. The Complexity of Computing a Nash Equilibrium. SIAM J. Computing, 2009, 39(1), 195–259.
  • Papoudakis G. та ін. Benchmarking Multi-Agent Deep Reinforcement Learning Algorithms in Cooperative Tasks. NeurIPS Datasets and Benchmarks, 2021. arXiv:2006.07869
  • Wolpert D. H., Tumer K. Optimal Payoff Functions for Members of Collectives. Advances in Complex Systems, 2002, 4(2/3), 265–279.
  • Практика: PettingZoo — багатоагентні середовища · Level-Based Foraging · EPyMARL

Матеріали курсу. Схеми із зовнішніх джерел належать їхнім авторам — посилання під кожною ілюстрацією.