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

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

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

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

Рік:
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:11-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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