UvA TriLearn

Tím bol založený v roku 2001. Naprogramovali ho dvaja študenti Amsterdamskej univerzity ako diplomový projekt. Boli nespokojní s vlastnosťami predchádzajúcich tímov, preto sa ho rozhodli preprogramovať odznova - vytvoriť novú architektúru hráča. Zo začiatku implementovali základné vlastnosti hráča, neskôr zdokonalovali rozhodovacie funkcie. Z ukážok na videu je tento tím veľmi schopný a poráža väčšinu tímov založených na pôvodných zdrojových textoch.

http://staff.science.uva.nl/~jellekok/robocup/

Základ tímu

autori všetko až na najnižšie komunikačné funkcie spravili odznova.

Zdrojové texty, použité vývojové prostredie

The released source contains our lower levels (synchronization, world model, basic agent skills) together with a simple high-level strategy.

Použitý jazyk - C++, jednoduchá štruktúra súborov. Zdrojové texty sú veľmi prehľadné, idú aj pod windowsom aj pod linuxom. Posledne dostupné zdrojové texty sú z roku 2003. Dokumentácia ku zdrojovým kódom

Architektúra hráča

Pri návrhu agenta sa rozlíšili 3 hlavné úlohy - vnímanie, rozhodovanie, konanie. Z toho vyplynula viacvláknová architektúra, pre každú úlohu samostatné vlákno, nutnosť pokročilej synchronizácie.

Perception & Acting - Thready pre vnímanie a konanie sú nižšou úrovňou. Skrývajú detaily servera pred ostatnými úrovňami.

Skills Layer - Používa funkcionalitu nižšej vrstvy na implementáciu rôznych schopností každého hráča.

Control Layer - Vyberá najlepšiu z akcií, ktoré ponúka Skills layer vzhľadom na aktuálny stav sveta.

Model sveta je založený na pravdepodobnostnej reprezentácii stavu sveta pri minulých pozorovaniach (perceptions). Pre každý objekt je uchovaný odhad pozície a rýchlosti. Skúmali niekoľko metód odhadu rýchlosti a pozície dynamických objektov. Vybrali tú, ktorá im štatisticky podávala najlepšie výsledky.

Schopnosť zachytenia lopty

Uvažovanie pozícií protihráčov pri prihrávkach - doteraz to žiadny tím nerobil alebo aspoň na to nebol dôraz, uvažovanie neistoty v pohybe lopty. Môže sa stať, že lopta minie hráča a on ju bude prenasledovať, kým sa tá nezastaví. Uvažovaním polohy súperových protihráčov pri prihrávkach sa snažia minimalizovať dôsledky stochastickej povahy simulátora, ktorá tiež ovplyvňuje pohyb lopty.

Prihrávky

Pri prihrávaní sa agenti UvA Trilearn snažia minimalizovať možnosť, že prihrávku získajú hráči opačného tímu. Pri prihrávaní vyjadrujú čas, ktorý potrebuje najbližší oponent na dosiahnutie lopty. Na výpočty používajú rovnaké algoritmy ako pri získavaní lopty. Sú tak schopní vybrať takú trajektóriu, kde je možnosť, že ju získa súper najnižšia.

Koordinácia

Podľa situácie na ihrisku musia niektoré agenty koordinovať akcie. Napr. hráč s loptou sa musí rozhodnúť komu prihrá a ten, ktorému prihráva musí byť pripravený loptu prebrať. Rovnako aj brániaci hráči by mali koordinovať svoju činnosť, aby zvýšili šance na zastavenie súpera. UvA Trilearn zaviedli koordinačné grafy, kde vrcholy predstavujú agenty a hrany definujú závislosti medzi dvoma agentami. Hrany môžu byť aj orientované.

Záver

Publikácie a dokumentácia, zdrojové kódy sú k dispozícii. Tento tím doporučujem využiť alebo aspoň prebrať niektoré techniky.


Späť na hlavnú stránku | Aktuálna verzia na našom Wiki