Nedávno skončilo už druhé kolo studentské (od základní po vysokou školu) programátorské soutěže RedBot sponzorované brněnskou pobočkou firmy Red Hat. Co je to za hru? Mohla by vás také zaujmout?

Soutěže robotů

Ač je RedBot soutěž softwarových robotů, mediálně známější než soutěže softwarové jsou ty „hardwarové“. Podíváme se tedy nejdřív na ně – dá se v nich najít spousta inspirace a zajímavostí:

V roce 1996 poprvé proběhla soutěž RoboCup. Soutěží se v několika disciplínách, a to robotický fotbal, záchranní roboti a domácí pomocníci.

Kategorie robotického fotbalu (několik lig podle velikostí robotů až do „human size“) má za cíl přijít s týmem robotů, kteří budou v roce 2050 schopní porazit vítěze (lidského) světového poháru. Myslete na to, až si pustíte video z ročníku 2010 v Singapuru.

V roce 2004 proběhla první Grand Challenge: soutěž automobilů (či jiných vozítek) bez lidské posádky s cílem zdolat 240km trasu mohavskou pouští. Vyhlásilo ji Ministerstvo obrany USA a první ročník vítěze nenašel, nikdo do cíle nedojel. Nejlepší skóre bylo 11,78 km. Následující ročník 2005 už ale do cíle dorazilo hned 5 vozidel. Nejlepší čas byl 6 hodin, 54 minut (tým ze Stanfordovy univerzity spolupracující s firmou Volkswagen).

S o poznání menším rozpočtem se pořádá česká verze RoboTour. Až někde v parku narazíte na různé svištící krabice na kolečkách, víte, co se děje. Atmosféru dokreslí komentář z ročníku 2011:

„Do vedení se dostává Roboauto Quido, které zběsile vyrazilo a jeho tvůrci se za ním rychle rozeběhli. Pro přejezd parku na startovní pozici totiž zdvojnásobili rychlost a toto v kódu evidentně nechtěně zapomněli.“

Programátorské soutěže

Vznik RedBotu byl inspirován studentskou soutěží FIBot, která na FI MUNI probíhala v letech 2006 až 2008. V každém kole bylo jiné zadání, jiná pravidla a různé podporované jazyky implementací. Ani FIBot ale zdaleka nebyl první a myšlenka soupeřících programů nebo strojů jde minimálně do roku 1961 (hra Darvin).

V roce 1984 začal projekt Corewar. Soupeřící programy jsou psány v jazyku podobném assembleru a vyhodnocování běží na speciálním virtuálním stroji. Krom srazů komunity kolem této hry neexistuje žádný centrální vyhodnocovací systém, a hra proto nemá vítěze.

Známou programátorskou soutěží s atraktivní vizualizací je Robocode, jejímž cílem bylo pomoci s výukou Javy (a později jazyka .NET). Souboje tanků, které se zrodily v IBM, mají i distribuovanou síť, pomocí které je možné porovnat svou strategii s ostatními.

Google pak sponzoroval AI Challenge, jehož zatím poslední kolo (v roce 2011) představilo souboje mravenčích klanů. Ve hře bylo podporováno velké množství programovacích jazyků a vámi uploadnutá strategie byla vyhodnocena proti ostatním s možností si zápasy graficky přehrát.

O RedBotu

První kolo RedBotu se odehrávalo ve velmi nebezpečné zahradě (hrací plán s překážkami), kde se utkaly vždy čtyři žížalky (soupeřící strategie). Sbíraly kytičky (body), ledové krystaly (možnost zmrazit soupeře na daný počet kol), dárky (bonusy násobící účinky předešlého) a přitom se snažily svým rostoucím tělem nenarazit a ideálně i zablokovat ostatní.

Soutěže se zúčastnilo 7 týmů (převážně jednomužných). Odevzdané strategie byly napsány v jazycích C/C++, Python, Perl a Java, s celkovou délkou téměř 9 tisíc řádků.

Vítěz, tým StyxBot, zvítězil s téměř 7 miliardami bodů (oproti poslednímu Perl_and_stupid s 69 body). StyxBot použil genetický algoritmus na výběr nejvýhodnější cesty a zjevně vybíral cesty opravdu výnosné.

Ve vizualizaci jednoho ze zápasů Ústafák pěkně zabije 2 červy, druhého motajícího se nadvakrát, pak ale do něj narazí a dikobraz vítězí.

Druhé kolo doběhlo nedávno. Tentokrát šlo o souboj virtuálních království. Představte si, že vaši poddaní potřebují jíst a bránit se útokům. Máte možnost je učit a pravděpodobně (protože vám jde o absolutní nadvládu nad světem) máte dobyvačné choutky. A jako malý bonus můžete budovat výzvědnou síť a krást technologii či sabotovat nepřátele.

Tentokrát se přihlásilo 11 týmů a ve stejných jazycích jako minule bylo odevzdáno skoro 8 tisíc řádků smrtelného kódu.

Vyhodnocení běželo paralelně na čtyřech počítačích téměř 2 dny. Odehrálo se asi 8 tisíc zápasů. Zaznamenali jsme jak zápas se 129 útoky, tak zápas s jediným.

Zvítězil tým Gorilly se 170 tisíci body. Použili drobnou fintu: zcela ignorovali speciální vlastnost „tajná služba“ a pokoušeli se provést 3 malé klamné útoky na své soupeře a potom maximální silou útočili tam, kde byli před tím nejúspěšnější.

Ve vizualizaci jednoho ze zápasů se Hyperborean ukáže jako taktik, když dokáže zvítězit i přes to, že většinu hry prožil s minimem území.

Pokud vás soutěž zaujala, sledujte stránky projektu na red-bot.rhcloud.com. Už 18. února 2013 startuje další kolo. Ahoj!