This is an old revision of the document!


Regulament proiect 2017

În acest an vă propunem realizarea unui program care să joace cât mai bine jocul Halite [1]. Regulamentul jocului il găsiți la [2]. Programul se poate realiza în oricare din limbajele de programare suportate [3].

Cum unii participanţi la acest concurs şi-au publicat sursele şi ideile online, vrem să fie clar că:

  • inspirarea după ideile descoperite online nu se penalizează (atâta timp cât sursa este precizată în README)
  • copierea codului sursă (sau reproducerea integrală a ideii de rezolvare dintr-o altă sursă) se sancţionează cu pierderea punctajului pentru întregul proiect.

Proiectul va cuprinde 5 etape, după cum este prezentat în continuare. Fiecare etapă presupune dezvoltarea unui bot care va juca Halite din ce în ce mai inteligent, iar ultima etapă reprezintă un concurs la nivel de serie, iar apoi la nivel de an pentru a stabili marele câștigător al proiectului de PA din anul 2017. Fiecare echipă poate să își schimbe complet strategia de joc între etape dacă membrii săi consideră acest lucru oportun.

Reguli de upload: La fiecare etapă trebuie încărcată pe http://cs.curs.pub.ro/2016/course/view.php?id=83 o arhivă zip cu numele seriei și numele echipei (ex: CANumeEchipa) care să conțina codul sursă, fișier Makefile (pentru C/C++/Java) și fișierul README. În README veți prezenta mediul de dezvoltare folosit, modalitatea de compilare, ce a făcut fiecare membru al echipei, structura proiectului (clase), surse de inspirație și, cel mai important, abordarea algoritmică a etapei: ce algoritmi ați folosit, cum i-ați combinat, de ce, complexități, etc. Nu neapărat în ordinea aceasta.

Atenție! Deadline-urile la proiect sunt hard , deci nu se permit întârzieri. Dacă s-a ratat deadline-ul la o etapă, se poate lucra în continuare pentru celelalte etape, dar punctajul se va pierde pentru respectiva etapă.

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. Se permit echipe cu oameni din serii diferite atat timp cat 3 din 4 membri sunt din aceeasi serie.

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 acest lucru 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ă, 5 martie 2017, ora 23:55.

Etapa 1

Prima etapă a proiectului presupune acomodarea echipelor cu jocul Halite și realizarea unei soluții simple care să acopere harta in cat mai putin pasi, fara a avea un adversar. Mai multe detalii despre acest mod de joc puteti gasi aici [4].

Punctele vor fi acordate, pe următoarele configurații de hărți, în felul următor:

Înălțime hartă Lungime hartă Seed Soft Turn Limit Hard Turn Limit Punctaj Maxim
15 20 42 175 200 0.1
20 15 42 175 200 0.1
30 30 42 250 300 0.1
40 40 42 275 400 0.1
50 50 42 300 500 0.1

Dacă botul acoperă harta intr-un număr de pași mai mic sau egal decât 'Soft Turn Limit' atunci va primi intregul punctaj asociat configurației respective. Pentru un număr de pași intre 'Soft Turn Limit' si 'Hard Turn Limit', va primi un punctaj parțial, în funcție de cât de aproape se află de limita 'Soft'.

Seed-ul este specificat pentru a înlătura orice ambiguitate sau variabilă aleatorie din evaluare, nu pentru a permite hardcodarea de paşi. Orice soluţie care hardcodează paşii pentru a obţine rezultatul dorit nu va primi punctajul pe etapă.

Dacă folosiți un generator de numere random in programul vostru, folosiți seedul 42 pentru inițializarea acestuia.

Scriptul pe care il vom folosi pentru evaluare se găsește la adresa: halite-resources.zip

Această etapă va avea 3 săptămâni. Punctajul alocat acestei etape este de 0.5 puncte.

Deadline-ul acestei etape este duminică, 26 martie 2017, ora 23:55

Etapa 2

Pentru aceasta etapa, trebuie să dezvoltați o soluție care să joace împotriva unui singur adversar. Punctajul se va da în funcție de rezultatele obținute împotriva unui bot pus la dispoziție de echipa de PA.

Punctele vor fi acordate dacă botul vostru câstigă pe următoarele configurații de hărți:

Înălțime hartă Lungime hartă Seed Punctaj
28 24 314 0.1
30 30 42 0.1
40 40 154 0.1
30 50 3 0.1
50 50 42 0.1

Botul pentru aceasta etapa se afla la adresa DBot.

Deadline-ul acestei etape este miercuri, 29 aprilie 2017, ora 23:55. Punctajul alocat acestei etape este de 0.5 puncte.

Etapa 3

Pentru aceasta etapa, trebuie să dezvoltați o soluție care să joace împotriva mai multo adversari. Punctajul se va da în funcție de rezultatele obținute împotriva unor boți diferiți.

Deadline-ul acestei etape este miercuri, 10 mai 2017. Punctajul alocat acestei etape este de 0.4 puncte.

Etapa 4

În cadrul acestei etape se va realiza un concurs între proiectele realizate. În funcție de numărul de proiecte finite realizate se va stabili formatul concursului: campionat, tournament tree sau grupe+tournament tree.
Punctajul aferent acestei etape este de 0.6 puncte si se va acorda dupa urmatorul algoritm:

  • Locul 1 va primi 0.6 puncte
  • Locul 2 va primi 0.5 puncte
  • Locul 3 va primi 0.4 puncte
  • Restul proiectelor vor primi in functie de locul in clasament intre 0 si 0.35 puncte, marja intre doua proiecte consecutive fiind de 0.35/(numar_proiecte_finaliste-3)

Deadline-ul acestei etape este duminică, 21 mai 2017

Referințe

pa/regulament-proiect.1491433760.txt.gz · Last modified: 2017/04/06 02:09 by radu.iacob
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