Sunteți pe pagina 1din 2

IA - Tema 3: Explorarea arborelui – Competiţie Autor: Andrei Mogoș

Se consideră un labirint în formă de arbore (fiecare nod are între 2 și k fii (k >=2)) cu h niveluri (h >= 5). În labirint se află doi agenţi care explorează labirintul. Există un ceas al sistemului. La fiecare tic, fiecare agent poate să parcurgă un arc (dintre două noduri) sau poate să stea pe loc.

Valoarea curentă a unui nod poate fi pozitivă, negativă sau 0. Valorile nodurilor sunt numere întregi. Iniţial fiecare agent are punctajul 0. Cand un agent ajunge într-un nod, punctajul agentului se modifică astfel:

punctaj_nou = punctaj_curent + valoare_curentă_nod

Valoarea unui nod se modifică o dată la t tic-uri (t >= 2), fiind selectată aleator dintr-o mulţime cu 3 valori posibile asociate nivelului pe care se află nodul respectiv în arbore. Detalii referitoare la aceste 3 valori se găsesc în paragraful următor. Pentru fiecare tic în care un agent stă pe loc, punctajul agentului scade cu valoarea p (valoarea p este discutată în paragraful următor).

Valoarea unui nod este cu atât mai mică (în modul) cu cât nivelul pe care se află nodul respectiv este mai apropiat de rădăcină. Un nod poate avea doar + sau - valoarea asociată nivelului din arbore sau 0. Se utilizează o progresie geometrică de raţie q > 1 (q număr natural). Se consideră că un nod de pe nivelul 1 (nivelul rădăcinii) are valoarea +q, -q sau 0; un nod de pe nivelul 2 are valoarea +q 2 , -q 2 sau 0; un nod de pe nivelul 3 are valoarea +q 3 , -q 3 sau 0, … . Se consideră că p este

jumătate (împărţire întreagă; p număr natural) din valoarea nivelului luată în modul (q, q 2 , q 3

).

Fiecare agent poate să vadă valoarea curentă a nodurilor adiacente cu nodul în care se află la momentul curent (adică nodurile unite prin arce de nodul în care se află la momentul curent). Totuși, deoarece la fiecare tic agentul poate parcurge un arc, iar orice nod își poate schimba valoarea, este posibil ca agentul să fi vazut de exemplu că un nod are o valoare pozitivă și când ajunge acolo (traversand un singur arc) să găsească o valoare negativă (valoarea acelui nod s-a schimbat în timp ce agentul parcurgea arcul dintre cele două noduri).

Cei doi agenţi pleacă din rădăcina arborelui. Competiţia se termină în momentul în care un al treilea agent, numit arbitru, anunţă acest lucru. Arbitrul anunţă terminarea competiţiei după un număr tt de tic-uri de ceas selectat aleator (tmin <= tt <= tmax). Câștigă competiţia agentul care are punctajul cel mai mare în momentul terminării competiţiei. În caz de egalitate, amandoi agenţii câștigă.

Cerinţă (10 puncte) Să se implementeze:

- un sistem care să simuleze mediul (în continuă schimbare) în care se mișcă agenţii (arborele)

- cate o strategie pentru fiecare agent în cadrul competiţiei (este vorba de agenţii care concurează). Cele două strategii trebuie să fie semnificativ diferite.

- competiţia

- agentul arbitru

- în final, programul trebuie să anunţe câștigătorul (sau câștigătorii)

1

Observaţii:

- se dau: arborele (prin urmare se cunosc și k și h), t, tmin, tmax, q. Intrările k, h, t, tmin, tmax și q sunt numere naturale. Se vor propune (de către studenţi) 5 seturi de date de test, dintre care pentru cel puţin două seturi de date k >= 3 și h >= 7.

- fiecare agent (care concurează) știe: t, tmin, tmax, q, faptul că se află într-un arbore, modul în care

p; un agent își dă seama când urcă (spre rădăcină) și

sunt asociate valorile pe niveluri (q, q 2 , q 3

când coboară (spre frunze) în arbore. Agentul arbitru știe doar tmin și tmax.

- pentru fiecare set de date, la fiecare tic al ceasului, programul trebuie să afișeze:

- arborele de la momentul curent reprezentat în mod text și pe arbore trebuie reprezentate și poziţiile curente ale celor doi agenţi

- arborele de la tic-ul de ceas precedent (reprezentat în mod text și conţinând același tip de informaţii ca arborele de la momentul curent)

),

- punctajul fiecărui agent (care concurează) la momentul curent

Bonus (2 puncte)

- Se consideră 5 arbori cu k >=3 și h >=7 (pot fi consideraţi aici și cei doi arbori de acest fel ceruţi în partea obligatorie a temei).

- Se aleg 10 tupluri (t, tmin, tmax, q). Alegerea nu este la întamplare. Studentul trebuie să poată

motiva de ce a ales aceste tupluri (ce cazuri a vrut să pună în evidenţă).

- Pentru fiecare arbore se rulează programul pentru fiecare dintre cele 10 tupluri (t, tmin, tmax, q) și apoi se creează un tabel cu următorul antet (Agent1 și Agent2 sunt cei doi agenţi care concurează):

(t, tmin, tmax, q)

|

Punctaj Agent1

|

Punctaj Agent2

Pentru fiecare tabel se interpretează rezultatele obţinute (un paragraf pentru fiecare tabel) cu accent pe compararea celor două strategii de joc (strategiile folosite de cei doi agenţi aflaţi în concurs).

În cazul în care se face și partea de bonus, codul sursă va fi însoţit de un fisier .pdf care va conţine:

- cele 5 tabele

- interpretarea rezultatelor din tabele

2