DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Дослідження та моделювання колективної поведінки інтелектуальних агентів в задачах навчання з підкріпленням

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
СІ
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
теорія інтелектуальних систем
Варіант:
8 18 7

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт до лабораторної роботи №6 з дисципліни: «Теорія інтелектуальних систем» на тему: «Дослідження та моделювання колективної поведінки інтелектуальних агентів в задачах навчання з підкріпленням» Прийняв: ст. вик. Бочькарьов О. Ю. Мета: Дослідити модель взаємодії колективу агентів з середовищем та засвоїти принципи ізольованого й інтерактивного колективного навчання з підкріпленням. Порядок виконання роботи 1. Дослідити роботу програми обчислювального експерименту по моделюванню взаємодії колективу агентів з стаціонарним випадковим середовищем. 2. Модифікувати вхідні дані програми обчислювального експерименту згідно заданого варіанту. 3. Провести обчислювальний експеримент: 1) по дослідженню взаємодії колективу "випадкових" агентів з СВС; 2) по дослідженню взаємодії колективу "ідеальних" агентів з СВС. 3) по дослідженню взаємодії колективу RL-агентів заданого типу з СВС, при умові що вони виконують одночасне ізольоване колективне навчання з підкріпленням (Concurrent Isolated Reinforcement Learning). 4) по дослідженню взаємодії колективу RL-агентів заданого типу з СВС, при умові що вони виконують інтерактивне колективне навчання з підкріпленням (Interactive Reinforcement Learning). 4. Для всіх чотирьох випадків отримати усереднену залежність 1) sumRmas(t) - сумарного виграшу колективу агентів від часу; 2) avrRmas(t) - середнього виграшу колективу агентів від часу. Порівняти отримані залежності та зробити висновки. Варіант 8 Номер варіанту Метод навчання з підкріпленням Кількість доступних окремому агенту дій, k Кількість агентів в колективі, N  8 softmax 3 10   Текст програми обчислювального експерименту int softmax (int id) { int i; int _action = action[id]; float tmp[NACTIONS], pSum = 0.0f; // modify estimated action value ra[id][action[id]] += response[id]; ka[id][action[id]]++; Q[id][action[id]] = (float)ra[id][action[id]] / (float)ka[id][action[id]]; // modify values of selection probabilities for (i=0; i < nA; i++) {tmp[i] = expf(Q[id][i]/tau); pSum += tmp[i];} for (i=0; i < nA; i++) {p[id][i] = tmp[i]/pSum;} // select next action _action = dRand(p[id],nA); return _action; } // ---------------------------------------------------------------------------- // interactive greedy RL int greedyINT (int id) { int _action = action[id]; // modify estimated action value ra[id][action[id]] += response[id]; ka[id][action[id]]++; Q[id][action[id]] = (float)ra[id][action[id]] / (float)ka[id][action[id]]; // get action values from neighbours -> average out int left = (id==0)?(nK-1):(id-1); int right = (id==(nK-1))?0:(id+1); for (int i=0; i<nA; i++) Q[id][i] = (Q[left][i] + Q[id][i] + Q[right][i]) / 3.0f; // select next action _action = argmax(Q[id],nA); return _action; } // ---------------------------------------------------------------------------- // interactive epsilon greedy RL int epsilonGreedyINT (int id) { int _action = action[id]; // modify estimated action value ra[id][action[id]] += response[id]; ka[id][action[id]]++; Q[id][action[id]] = (float)ra[id][action[id]] / (float)ka[id][action[id]]; // get action values from neighbours -> average out int left = (id==0)?(nK-1):(id-1); int right = (id==(nK-1))?0:(id+1); for (int i=0; i<nA; i++) Q[id][i] = (Q[left][i] + Q[id][i] + Q[right][i]) / 3.0f; // select next action float rnum = (float)rand() / (float)RAND_MAX; if (rnum < e) _action = uRand(nA); else _action = argmax(Q[id],nA); return _action; } // ---------------------------------------------------------------------------- // interactive softmax action selection int softmaxINT (int id) { int i; int _action = action[id]; float tmp[NACTIONS], pSum = 0.0f; // modify estimated action value ra[id][action[id]] += response[id]; ka[id][action[id]]++; Q[id][action[id]] = (float)ra[id][action[id]] / (float)ka[id][action[id]]; // get action values from neighbours -> average out int left = (id==0)?(nK-1):(id-1); int right = (id==(nK-1))?0:(id+1); for (int i=0; i<nA; i++) Q[id][i] = (Q[left][i] + Q[id][i] + Q[right][i]) / 3.0f; // modify values of selection probabilities for (i=0; i < nA; i++) {tmp[i] = expf(Q[id][i]/tau); pSum += tmp[i];} for (i=0; i < nA; i++) {p[id][i] = tmp[i]/pSum;} // select next action _action = dRand(p[id],nA); return _action; } void initMAS (int _mas) { int i; switch (_mas) { case 0: for(i=0;i<nK;i++){initAgent(agt,i); sumR[i]=0.0f; avrR[i]=0.0f;} break; case 1: for(i=0;i<nK;i++){initAgent(agt,i); sumR[i]=0.0f; avrR[i]=0.0f;} break; case 2: for(i=0;i<nK;i++){initAgent(agt,i); sumR[i]=0.0f; avrR[i]=0.0f;} break; case 3: for(i=0;i<nK;i++){initAgent(agt-10,i); sumR[i]=0.0f; avrR[i]=0.0f;} break; default: printf("lab4 error: wrong mas code specified\n"); } } // ---------------------------------------------------------------------------- // simulation void simulation (int _i) { float tmpS = 0.0f; float tmpA = 0.0f; initMAS(mas); sumRmas = 0.0f; avrRmas = 0.0f; for (t=0; t < T; t++) { // get action of each agent for (k=0; k < nK; k++) action[k] = agent(agt,k); // get response of environment for each agent for (k=0; k < nK; k++) response[k] = environment(env,k); // calculate cumulative results for each agent tmpS = 0.0f; tmpA = 0.0f; for (k=0; k < nK; k++) { sumR[k] = sumR[k] + (float)response[k]; tmpS = tmpS + sumR[k]; avrR[k] = sumR[k] / ((float)t + 1); tmpA = tmpA + avrR[k]; } // calculate cumulative results for malti-agent system sumRmas = tmpS / (float)nK; avrRmas = tmpA / (float)nK; // save results _sumR[t][_i] = sumRmas; _avrR[t][_i] = avrRmas; } } Графічні залежності отриманих результатів //////// Розрахунок ймовірності: p(a0) = 0.200000 p(a1) = 0.800000 p(a2) = 0.860317 Висновок: На лабораторній роботі я дослідив модель взаємодії колективу агентів з середовищем та засвоїти принципи ізольованого й інтерактивного колективного навчання з підкріпленням.
Антиботан аватар за замовчуванням

27.11.2019 17:35

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!