This shows you the differences between two versions of the page.
pa:regulament-proiect-2022 [2022/03/12 18:10] radu.iacob [Regulament Proiect 2022] |
pa:regulament-proiect-2022 [2022/03/18 19:32] (current) radu.iacob [Competiție cu boții PA] |
||
---|---|---|---|
Line 21: | Line 21: | ||
* Codul sursă (**toate sursele folosite**) | * Codul sursă (**toate sursele folosite**) | ||
* Makefile (in root-ul arhivei), care va contine o regula de build, una de clean si una de run | * Makefile (in root-ul arhivei), care va contine o regula de build, una de clean si una de run | ||
- | * README | + | * Readme |
Boții vor fi evaluați pe un sistem Linux/GNU pe 64 biți, deci **este foarte important să verificați că aveți un makefile care funcționează corect** pe Linux, chiar dacă lucrați pe Windows sau MacOS. Scriptul de testare va rula "make clean", "make build" pentru compilare, apoi "make run" pentru rulare. Makefile-ul trebuie să se afle în rădăcina arhivei pentru a putea fi rulat. **Asigurați-vă că fișierul Makefile nu conține path-uri absolute** (să poată fi rulat și pe alt sistem). | Boții vor fi evaluați pe un sistem Linux/GNU pe 64 biți, deci **este foarte important să verificați că aveți un makefile care funcționează corect** pe Linux, chiar dacă lucrați pe Windows sau MacOS. Scriptul de testare va rula "make clean", "make build" pentru compilare, apoi "make run" pentru rulare. Makefile-ul trebuie să se afle în rădăcina arhivei pentru a putea fi rulat. **Asigurați-vă că fișierul Makefile nu conține path-uri absolute** (să poată fi rulat și pe alt sistem). | ||
Line 35: | Line 35: | ||
* Responsabilitatea fiecărui membru al echipei. | * Responsabilitatea fiecărui membru al echipei. | ||
* Documentația valorează 10% din punctajul proiectului. | * Documentația valorează 10% din punctajul proiectului. | ||
+ | |||
+ | Proiectul va lua forma unei competiții continue pe parcursul semestrului. Punctajul se va împărți în 2: | ||
+ | * 1 punct daca reusiți să bateți boții puși la dispoziție de echipa de PA (aceștia se află în repo-urile voastre deja) | ||
+ | * 1 punct pentru clasarea in competiție | ||
====== Înscrierea ====== | ====== Înscrierea ====== | ||
Line 46: | Line 50: | ||
Pentru înscriere, accesați acest [[https://forms.gle/TKnSRKiX5tXXSXes8|link]]. | Pentru înscriere, accesați acest [[https://forms.gle/TKnSRKiX5tXXSXes8|link]]. | ||
- | ====== Competitie ====== | + | **Deadline pentru inscriere: 26.03.2022** |
- | ====== FAQ ====== | + | ====== Competiție cu boții PA ====== |
- | [[https://ocw.cs.pub.ro/courses/pa/proiect/halite-i-tips-and-tricks|Tips and Tricks]] | + | La fiecare 2 săptamani, agenții vostrii vor rula impotriva boților echipei de PA (dacă nu ați reușit să obțineți punctajul maxim deja), intr-un set de meciuri cu seed-uri aleatoare. Scopul vostru este sa reusiti sa bateti acești boți în mod constant. Sfatul nostru este să încercați local mai multe scenarii, pentru a vă asigura că botul vostru reușește să învingă. Pentru debug, replay-urile meciurilor vor fi publice. Se poate obține și punctaj parțial. |
+ | |||
+ | Punctajul va fi împărțit în cinci runde în felul următor: | ||
+ | |||
+ | | Procent Punctaj | Dimensiuni posibile hărți (lungime/lățime) | Boți | Format | | ||
+ | | 30% | 25x25, 30x30, 40x40, 50x50 | DBot | 1v1 | | ||
+ | | 10% | 40x40 | 3xDBot | 1v3 | | ||
+ | | 30% | 25x25, 30x30, 40x40, 50x50 | starkbot | 1v1 | | ||
+ | | 20% | 40x40 | 1xstarkbot, 2xDBot | 1v3 | | ||
+ | | 10% | 40x40 | 3xstarkbot | 1v3 | | ||
+ | |||
+ | Pentru fiecare rundă, se generează 10 meciuri aleatoare și se aleg cele mai bune 8 rezultate. Punctajul | ||
+ | obținut va fi dat de procentul de meciuri câștigate. | ||
+ | |||
+ | Vom folosi [[https://github.com/acs-pa/halite-resources/blob/main/halite-resources.zip|acest]] script pentru automatizarea evaluării. | ||
+ | |||
+ | |||
+ | ====== Competitie între echipe ====== | ||
+ | |||
+ | Competiția dintre echipe va rula în mod continuu de-a lungul semestrului (pentru o noua submisie de bot, vedeți regulile de upload). Va fi un clasament separat pentru fiecare serie. | ||
+ | |||
+ | Vom folosi [[https://en.wikipedia.org/wiki/TrueSkill|TrueSkill]] pentru a departaja echipele participante. TrueSkill modeleaza abilitatea unui jucator sub forma unei distributii normale cu următorii parametrii: | ||
+ | * Mean μ - media abilității jucătorului | ||
+ | * Variance σ - încrederea sistemului în scorul obținut, în funcție de numărul de meciuri jucate și de adversarii întălniți. | ||
+ | |||
+ | Boții se vor lupta aleator între ei, în funcție de estimarea curentă a abilității, până ce sistemul va căpata 'încredere' în valorile obținute. (nu mai apar modificări în clasament). | ||
+ | |||
+ | |||
+ | Punctajul este împărțit în 2: | ||
+ | * un punctaj midterm, pe baza clasamentului de la finalul saptămanii a 10a. | ||
+ | * 0.4p pentru primul loc | ||
+ | * 0.35p pentru locul 2 | ||
+ | * 0.3p pentru locul 3 | ||
+ | * restul punctajelor vor fi date pe baza unei formule liniare, intre 0.3 si 0.1, pe baza clasamentului, dacă vă clasați peste un bot de threshold ales de echipa de PA | ||
+ | * un punctaj pe competiția finală | ||
+ | * 0.6p pentru primul loc | ||
+ | * 0.5p pentru locul 2 | ||
+ | * 0.4p pentru locul 3 | ||
+ | * restul punctajelor vor fi date pe baza unei formule liniare, intre 0.4 si 0.1, pe baza clasamentului, dacă vă clasați peste un bot de threshold ales de echipa de PA | ||
+ | |||
+ | Cele mai bune echipe din fiecare serie se vor lupta intr-o competitie separata, cu premii. Vom reveni cu detalii spre finalul semestrului. | ||
+ | |||
+ | ====== Resurse ===== | ||
+ | * [[https://ocw.cs.pub.ro/courses/pa/proiect/halite-i-tips-and-tricks|Tips and Tricks]] | ||
+ | * [[https://ocw.cs.pub.ro/courses/pa/halite-debugging|Debugging in C++ folosind CLion si GDB]] | ||
+ | |||
+ | ====== FAQ ====== | ||
* //Ce limbaje de programare putem să folosim?// | * //Ce limbaje de programare putem să folosim?// |