This is an old revision of the document!


Regulament proiect

Tema proiectului de anul acesta din cadrul materiei Proiectarea Algoritmilor va fi realizarea unei inteligente artificiale capabile sa joace sah. Proiectul se va realiza in echipe de cate 3-4 studenti (minim 3, maxim 4 studenti pe echipa) si se va desfasura pe parcursul a 5 etape, fiecare etapa durand 2 saptamani. Se va folosi platforma Winboard (XBoard) 4.7.3 pentru a interfata, vizualiza, inregistra si reda partidele jucate intre aplicatiile realizate in cadrul proiectului. Puteti descarca Winboard 4.7.3 de aici, iar o documentatie privind protocolul folosit puteti gasi aici.

Etapa 0

Etapa 0 presupune formarea unor echipe de câte 3-4 persoane. Echipele se pot forma între oricare 3-4 studenţi din aceeaşi serie. Nu se permit echipe cu oameni din serii diferite decât dacă ați rămas fără niciun coechipier în seria voastră sau dacă sunteți restanțieri. Fiecare echipă va desemna un membru al acesteia cu rolul de căpitan. Căpitanul va avea, printre altele, sarcina de a trimite în numele echipei sale soluţiile pentru fiecare din etapele rămase. Ceilalţi membri ai echipei nu vor trimite soluţii, decât in cazul in care căpitanul nu poate face aceasta din motive obiective.

Această etapă va avea 1 săptămână. Punctajul alocat acestei etape este de 0 puncte.

Deadline-ul acestei etape este duminică, 3 martie 2013, ora 23:55.

Etapa 1

Se va realiza reprezentarea interna a tablei de joc si a pieselor de joc, precum si o interfatare cu programul Winboard.

Interfatarea va presupune posibilitatea de a interpreta si interactiona cu urmatoarele comenzi ale Winboard: xboard, new, force, go, white, black, quit, resign, move.

De asemenea programul va trebui sa primeasca miscari de la programul Winboard si sa trimita miscari legale. Nu este nevoie sa trimita orice miscare legala.

Este suficienta miscarea legala a unei singure piese (ex: pion, cal etc). Daca programul nu mai gaseste miscari valide va putea iesi din joc (prin resign sau orice alta metoda; de preferat una eleganta)

Punctaj etapa : 0.4 puncte

Etapa 2

Programul va trebui sa poata interpreta orice miscare legala si de asemenea va trebui sa poata juca impotriva unui adversar prin intremediul programului Winboard.
O abordare cu miscari aleatorii, dar corecte, este suficienta pentru aceasta etapa.

Punctaj etapa: 0.5 puncte

Etapa 3

Programul va trebui sa implementeze macar un algoritm de baza minimax pentru a putea juca impotriva unui adversar.

Punctaj etapa: 0.3 puncte

Etapa 4

Aceasta etapa este dedicata implementarii unor algoritmi avansati pentru a creste calitatea jocului prestat de program. Este nevoie de cel putin doua tehnici avansate implementate pentru a obtine punctajul maxim.
O tehnica de imbunatatire avansata se poate referi si la un algoritm alpha-beta.
Se considera doua tehnici avansate si o augmentare a algoritmului alfa-beta printr-un mecanism de Iterative Deepening, sau printr-o euristica.

Punctaj etapa: 0.3 puncte

Etapa 5

In cadrul acestei etape se va realiza un concurs intre proiectele realizate. In functie de numarul de proiecte finite realizate se va stabili formatul concursului: campionat, tournament tree sau grupe+tournament tree.
Punctajul aferent acestei etape este de 0.5 puncte si se va acorda dupa urmatorul algoritm:

  • Locul 1 va primi 0.5 puncte
  • Locul 2 va primi 0.4 puncte
  • Locul 3 va primi 0.35 puncte
  • Restul proiectelor vor primi in functie de locul in clasament intre 0 si 0.3 puncte, marja intre doua proiecte consecutive fiind de 0.3/(numar_proiecte_finaliste-3)
  • Fiecare partida intre doua proiecte se va desfasura dupa urmatorul format:
  • Fiecare aplicatie va avea 40 de miscari posibil efectuabile in 10 minute.
  • Dupa efectuarea unui set de 40 de miscari proiectul respectiv va mai primi inca 5 minute, care se vor fi adaugate la timpul ramas.
    ATENTIE: Daca un program ramane fara timp, dar nu a efectuat inca 40 de miscari, acesta va pierde partida, adversarul fiind declarat castigator.
  • Partida ia sfarsit cand oricare din urmatoarele conditii sunt indeplinite:
    1. Ordered List Item Unul dintre proiecte castiga dand sah mat.
    2. Unul dintre proiecte comite o miscare ilegala, adversarul fiind declarat castigator.
    3. Se constata o stare de repetitie (draw by repetition), o stare de imposibilitate de castig (lack of material for either side), prin regula de 50 de miscari (50 move rule) sau daca unul dintre progarme nu dispune de nici o miscare legala, insa nu este in sah (pat). In aceste cazuri se declara partida ca remiza.
  • Daca dupa 15 minute nu s-a indeplinit nici o conditie de sfarsit de partida (dupa cum sunt mentionate la punctual anterior) va fi declarat invins programul care intra in criza de timp primul, adeversarul fiind declarat invingator.

Referințe

pa/proiect2014.1393531818.txt.gz · Last modified: 2014/02/27 22:10 by alexandru.mirea
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0