Gooooooooooooooooool !

Concurs între roboti realizati de studenti.
Ionut Muslea

Mai sunt cinci secunde de joc si suntem condusi cu 1-0. Suntem cu totii în picioare, cu ochii lipiti de ecran, si nu îndrăznim nici să clipim. Ai nostri interceptează mingea în preajma propriului careu, pasează precis spre centrul terenului, unde urmează un dribling scurt, o pasa în adâncime spre vârful de atac complet demarcat, care trage „dintr-o bucată“ si înscrie incredibil la coltul scurt. Din cele 6 piepturi tâsneste simultan un urlet de bucurie mai ceva decât al unui comentator brazilian: Goooooooooooool! Desi meciul este în reluare si unii dintre noi îl văd a cincea oară, fetele tuturor s-au luminat si răsuflăm usurati pentru câteva secunde. Încep prelungirile, portarul nostru intervine salvator, urmează un atac pozitional care nu prevesteste nimic spectaculos, dar ai nostri trag surprinzător de la 18-20 de metri, portarul e surprins pe picior gresit si: Goooooool! Cum jucăm după regula „golului de aur“, iată-ne câstigând finala mică a campionatului mondial si plecând acasă cu medaliile de bronz!

Desi ati putea crede că rândurile de mai sus reprezintă visul meu legat de Mondialele de la Paris (ce n-as da să ia „băietii Generalului“ bronzul!), sau mai stiu eu ce rezultat înregistrat într-o obscură ligă de „pitici“, nu este câtusi de putin vorba de asa ceva. Meciul chiar a avut loc, s-a jucat pe data de 28 august la Nagoya (Japonia), si a reprezentat „finala mică“ a RoboCup-97, sectia „agenti sintetici“. Echipa noastră, ISIS (ISI Synthetic), a învins cu 2-1 (1-0, 1-1) pe CMUnited (echipa celor din Carnegie Mellon) si a iesit pe locul 3 din 32 de echipe.

Robocup-97 a reprezentat una dintre marile atractii ale IJCAI-97 (International Joint Conference on Artificial Intelligence), cea mai importantă conferintă de inteligentă artificială a anului. Robocup-97 a fost prima editie a campionatului mondial de fotbal pentru roboti/agenti si a avut 3 sectiuni: roboti mici (4 echipe), roboti mijlocii (5 echipe) si agenti sintetici (32 de echipe). Robotii mici au jucat „fiecare cu fiecare“, iar cele mai bune două echipe si-au disputat finala, în care Carnegie Mellon a învins echipa japoneză NAIST cu 1-0. Robotii mijlocii au jucat 2 meciuri fiecare, iar cele mai bine clasate două echipe si-au disputat finala. Meciul s-a jucat între DreamTeam (USC) si Osaka University, si s-a terminat la egalitate 0-0. Au urmat prelungirile, care s-au desfăsurat până ce roboteilor li s-au terminat... bateriile. În acel moment a avut loc o discutie extrem de aprinsă, în urma căreia s-a luat decizia de a se decerna titlul de campion mondial ambelor echipe.

Practic, competitiile rezervate robotilor au fost marcate de limitările tehnice specifice domeniului. Astfel, robotii se agătau si se blocau reciproc la tot pasul, motorasele se ardeau, bateriile se terminau înainte de vreme, partidele erau întrerupte la 10-15 secunde pentru ca „antrenorii“ să-si despartă „odraslele“ întepenite, iar unii jucători se încăpătânau să se izbească repetat cu „capul“ de primul parapet întâlnit în cale. Mai mult, două din cele cinci echipe mijlocii nici nu s-au miscat din loc pe durata partidelor „disputate“, iar punctul forte al meciului între aceste echipe de „statui“ (bolovani?) l-a constituit suieratul prelung al „portarului“, care si-a folosit în mod inutil jetul de aer încercând să oprească un sut... inexistent. În aceeasi liga, din cele 6 partide disputate, jumătate s-au încheiat cu un scor alb. DreamTeam-ul a înscris de 8 ori (din care două autogoluri!) în două meciuri (scoruri 4-0 si 2-2). Exceptând DreamTeam-ul, doar echipa din Osaka a mai fost capabilă să înscrie, iar unicul lor gol a fost rodul unui complex de împrejurări cu totul iesit din comun: la începutul partidei, adversarii lor (australienii de la RMIT) au... uitat să pună un robot în poartă. Lovitura de începere a meciului a fost executată de japonezi, iar întâmplarea a făcut ca primul contact al unui robot cu balonul să-l trimită pe acesta din urma spre poarta nefericitilor australieni.

Desi competitia de agenti a fost la un nivel net superior, ea s-a bucurat de o mai mică atentie din partea vizitatorilor. Multi se asteptau ca robotii să fie echivalentii lui Pele, Maradona, sau măcar a vreunui obscur jucător de „Divizia Onoare“, iar frustrarea initială a creat o stare de spirit în care lumea s-a multumit cu luatul la misto al „vajnicilor combatanti“. Revenind acum la agenti, trebuie să spunem că această competitie a fost mult mai apropiată de echivalentul ei uman, atât ca sistem de disputare, cât si din punct de vedere al calitătii jocului. Cele 32 de echipe au fost împărtite în 8 grupe, în care fiecare echipă le-a întâlnit într-un meci direct pe celelalte trei. Primele două clasate s-au calificat pentru faza următoare, care s-a jucat în sistem eliminatoriu: optimi, sferturi, semifinale si cele două finale.

Exceptând jocurile din grupe, când „agentii-statui“ au fost snopiti de ceilalti cu scoruri de nivelul 25-0, restul meciurilor au fost extrem de echilibrate, în ciuda unor diferente de scor aparent enorme (11-2 în finală, 14-0 si 6-0 în semifinale). Fiecare echipă a constat din 11 jucători (adică 11... programe), care primeau informatiile despre terenul de joc de la un SoccerServer ce a jucat rolul de coordonator central (serverul a fost implementat de către organizatori, iar interfata agent-server a făcut obiectul unei dezbateri publice). Meciurile au fost vizualizate într-o fereastră de culoare verde, „liniată“ ca un teren de joc pe care agentii erau reprezentati sub formă de cerculete. Vizionarea unui astfel de meci e asemănătoare cu cea a unei partide de „fotbal cu nasturi“ privită de sus, cu unica diferentă că jucătorii nu se misca unul câte unul, ci toti deodată.

Interfata server-agent este deosebit de simplă, comunicarea desfăsurându-se după cum urmează: la intervale 300 milisecunde, fiecare agent/program transmite serverului actiunea pe care doreste să o execute (de exemplu: sprintează, trage, roteste-te, etc.), iar serverul execută actiunile în cauză si actualizează situatia pe terenul de joc. Reciproc, la intervale de 100 milisecunde, serverul transmite fiecărui agent informatia vizuală (în functie de orientarea agentului si de pozitia sa pe teren, la un moment dat diversele obiecte pot fi vizibile, partial vizibile sau invizibile) si auditivă (agentii pot transmite mesaje care „se aud“ până la o anumită distantă). Pentru crearea unor situatii cât mai realiste, serverul foloseste si parametri de tipul „viteza vântului“ sau „factori aleatori“, cum ar fi efectul neasteptat al unui smoc de iarba ori al unei bălti aflate în calea mingii.

Poate că cea mai bună si concisă descriere a scopului RoboCup este data de Kitano et al. în „abstract“-ul articolului „The RoboCup Synthetic Agent Challenge 97“:

„RoboCup Challenge oferă un set de probleme deschise legate de sisteme multi-agent care actionează în timp real în medii dinamice. Desi RoboCup-ul a fost gândit ca o problemă-test pe termen lung (două sau chiar trei decenii), RoboCup Challenge propune trei probleme concrete pentru următorii doi ani: învătarea de către agenti individuali si în echipă, planning si executarea planurilor în sisteme multi-agent, si modelarea oponentului.“

Acum un an, RoboCup Challenge părea un vis frumos, căci competitia pre-Robocup (8 echipe participante) a fost câstigată detasat de echipa unui student de la Tokyo University, care a hack-uit de unul singur o echipă ce n-avea nimic în comun cu inteligenta artificială si se baza exclusiv pe un noian de calcule trigonometrice. Poate că cel mai mare succes al RoboCup-97 a constat în faptul că echipele hacker-ilor au fost complet „măturate“ de cele ale „savantilor“: nu numai că primele patru clasate au la bază un serios fundament stiintific, dar, mai mult, nici unul dintre hackeri nu a trecut de faza optimilor! Si asta în conditiile în care înaintea competitiei se zvonea că hackerii niponi sunt atât de puternici încât vor trebui „să aranjeze“ (din milă!) ca si o echipa ne-japoneză „să prindă“ semi-finalele.

Evident, nici competitia agentilor n-a fost ferită de surprize neplăcute: unele universităti au trimis două echipe supărător de asemănătoare, iar alte echipe au folosit trucuri nu tocmai ortodoxe. Spre exemplu, unii au încercat să „back-engineer“ SoccerServer-ul, altii au obstructionat jocul încercând să încarce traficul de retea prin transmiterea unei avalanse de mesaje auditive, iar o altă categorie de „smecheri“ înregistra si retransmitea mesajele transmise cu putin înainte de către oponenti. În fine, desi valoarea campioanei mondiale (Humboldt University, nemtii ăstia-s dati naibii!) este absolut evidentă, victoriile lor s-au bazat în bună măsură pe un bug pe care l-au găsit în server si, spre deosebire de bug-urile descoperite de alti participanti, nu l-au făcut public. În două cuvinte, e vorba de faptul că serverul permite (în mod eronat!) lovirea mingii de mai multe ori „în acelasi moment“, iar acest lucru duce la obtinerea unor suturi mult mai puternice decât cele permise în mod normal. Pe baza acestui truc, teutonii înscriu imparabil chiar si din propria jumătate de teren, căci mingea atinge viteze care o fac de ne-interceptat!

Dar viata merge înainte, RoboCup-97 e deja de domeniul trecutului iar lumea se pregăteste febril pentru US Open-ul din toamnă (singura mare competitie înaintea lui Robocup-98, care va avea loc la Paris în timpul Mondialelor „adevărate“). Ar fi nemaipomenit să fie prezente acolo si echipe românesti (timp e berechet, iar informatii se pot obtine direct din pagina lui Hiroaki Kitano, http://www.csl.sony.co.jp/person/kitano/RoboCup/RoboCup.html), si mi-e greu să-mi doresc altceva decât o finală în care ISIS-ul să întâlnească pe, să zicem, ...Poli Cluj.

Ionut Muslea, Information Sciences Institute, USC-Los Angeles, poate fi contactat prin e-mail la adresa muslea@isi.edu.

(C) Copyright Computer Press Agora