DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

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

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

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

Про що ця робота

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

У роботі розглядаються

  • Інтелектуальні агенти
  • Навчання з підкріпленням
  • Колективна поведінка
  • Обчислювальний експеримент
  • Стохастичне середовище
  • Програмне моделювання

Зміст і розділи

  1. Мета роботи
  2. Порядок виконання роботи
  3. Варіант 8
  4. Текст програми обчислювального експерименту
  5. Графічні залежності отриманих результатів
  6. Висновок
Для кого:Студенти та викладачі технічних спеціальностей закладів вищої освіти.
Викладачі:Бочкарьов О. Ю.

Ключові поняття

інтелектуальний агентнавчання з підкріпленнямколективне навчанняsoftmaxвипадкове середовищефункція цінностіізольоване навчанняінтерактивне навчанняемуляціяалгоритм

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт до лабораторної роботи №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 Висновок: На лабораторній роботі я дослідив модель взаємодії колективу агентів з середовищем та засвоїти принципи ізольованого й інтерактивного колективного навчання з підкріпленням.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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