Ponuka

1. Náš tím

     Všetci členovia tímu sú študentami 1. ročníka inžinierskeho štúdia na Fakulte elektrotechniky a informatiky v Bratislave. V minulosti ešte nikdy nepracovali spolu na jednom projekte, ale väčšina z nich už má vlastné skúsenosti s tvorbou softvérových produktov v malých a stredne veľkých tímoch. V nasledujúcich odstavcoch sa Vám ich pokúsime podrobnejšie predstaviť.

Ľuboš Balát už v minulom semestri pracoval spolu s Petrom Franzom a Branislavom Jariabkom v rámci predmetu Umelá inteligencia na zadaní Robocup, čím získal praktické znalosti z nami preferovanej témy “Simulácia robotického futbalu”. V súčasnosti pracuje vo firme Interway zaoberajúcou sa tvorbou aplikácií pre internet, kde často pracuje na projekte s viacerými spolupracovníkmi. V predchádzajúcej firme INES Soft pracoval ako vedúci programátor na vývoji pomerne veľkej databázovej aplikácie pre ACS (Autorizačné Centrum Slovenska). Jeho témou ročníkového projektu bolo zadanie “Podpora zostavovania zdrojových textov vytvorených v tíme” pri ktorom získal prehľad o možnostiach vývoja softvérových aplikácií v tíme. Má praktické skúsenosti s vývojom sieťových aplikácií (klient - server) a tvorbou dynamických www stránok. Väčšina jeho doterajších projektov bola implementovaná v programovacom jazyku Java (Borland JBuilder, Microsoft Visual J++). Ovláda aj programovacie jazyky Visual Basic (ASP), C, C++, Lisp, Prolog. Počas svojho doterajšieho štúdia dokázal svoje komunikačné schopnosti pri prezentovaní projektov v rámci SVOČ. Pre jeho skúsenosti sa ho tím rozhodol navrhnúť do funkciu vedúceho tímu.

Marián Bobrík má výborné znalosti v oblasti matematiky a fyziky. Okrem štúdia na Fakulte elektrotechniky a informatiky navštevuje aj 4. ročník matematicko-fyzikálnej fakulty Univerzity Komenského v Bratislave, odbor Teoretická a matematická fyzika. K jeho ďalším prednostiam patrí výborná znalosť jazyka symbolických inštrukcií, ktorú je možné využiť pri vytváraní časovo kritických aplikácií. Ovláda programovacie jazyky Visual C++, C, Java . Pri práci na záverečnom projekte sa oboznámil s problematikou neurónových sietí. Vo firme Cauldron sa podieľa sa na vývoji strategickej počítačovej hry, vďaka čomu nadobudol praktické skúsenosti s umelou inteligenciou a programovaní v jazyku Visual C++ .

Peter Franz sa zúčastnil na vývoji databázových aplikácií pre Štatistický úrad SR. Ovláda programovacie jazyky Visual C++, C, Perl. Okrem samotných programovacích jazykov sa zaoberal aj technológiou COM (DCOM) pri práci na záverečnom projekte bakalárskeho štúdia. V rámci záverečného projektu získal skúsenosti s problematikou neurónových sietí, ako aj s problematikou ich použitia evolučnými algoritmami. V prvom semestri školského roku 2000/2001 bude študovať na Fakulte informatiky na Technickej univerzite v Mníchove. Spolupracovať s tímom bude pomocou elektronickej pošty a diskusných kanálov.

Gabriel Pap už spolupracoval s jedným členom tímu pri riešení záverečného projektu s tematikou neurónových sietí a evolučných algoritmov. Medzi jeho oblasti záujmov, okrem umelej inteligencie, patria web aplikácie, databázové systémy a Internet. Z programovacích jazykov ovláda na veľmi dobrej úrovni: C, C++ a assembler pre x86. Vytvoril už niekoľko komerčných www stránok, dobre pozná jazyky HTML a JavaScript. Externe spolupracoval s viacerými firmami a podieľal sa na riešení projektov rozličnej zložitosti a časovej náročnosti. Osvedčil sa ako súdržný a spoľahlivý člen tímu.

Ján Pidych má skúsenosti s prácou v tíme. Získal ju počas práce na záverečnom projekte, ale najmä počas 1,5 ročnej praxe v softvérovej firme Cauldron zaoberajúcej sa vývojom počítačových hier, kde pracuje na umelej inteligencii počítačových hráčov. Ovláda niekoľko programovacích jazykov, najmä C++ a jazyk symbolických inštrukcií, ale aj LISP a PROLOG. Z vývojových prostredí pozná najlepšie Microsoft Visual Studio. Do oblasti jeho záujmov patrí umelá inteligencia, neurónové siete a časová optimalizácia programov.

     Dvaja členovia tímu Peter Franz a Ľuboš Balát sa už s týmto projektom zaoberali v letnom semestri školského roku 1999/2000, v rámci predmetu Umelá inteligencia pod vedením Ing. Kapustíka. Na záverečnom turnaji medzi umiestnili na druhom mieste. Okrem týchto dvoch členov o tento projekt minulý semester zaujímali aj Ján Pidych, ktorý má skúsenosti s programovaním strategických hier v ktorých je aplikovaná umelá inteligencia. Pri plánovaní akcií jednotlivých hráčov je potrebné robiť matematické výpočty s ktorými nebude mať problém Marián Bobrík.

2. Motivácia

     Hlavnou motiváciou tímu pre prácu na tomto projekte je rozšírenie znalostí z umelej inteligencie a ich praktické overenie v konkurencii iných tímov. Predovšetkým členovia tímu, ktorí už na tomto projekte pracovali, by radi zlepšili schopnosti už vytvorených agentov a využili svoje poznatky získané v minulosti. Príťažlivosť projektu zvyšuje aj možnosť zúčastnenia sa medzinárodnej súťaže.

3. Čo môžeme poskytnúť

     Väčšina členov tímu má skúsenosti s prácou v tíme a praktické aj teoretické znalosti z oblasti umelej inteligencie. Časť členov tímu už pracovala na nami preferovanej téme, vďaka čomu sa podstatne urýchlia počiatočné fázy projektu. Ich skúsenosti umožnia vyhnúť sa niektorým omylom a nedostatkom, ktoré by sa mohli vyskytnúť keby nám problematika bola úplne neznáma. Vďaka tomu nám zostane oveľa viac času na podstatu problému, t.j. návrhu efektívnych riadiacich algoritmov - do hĺbky prepracovať aspekty ako kooperácia agentov, stratégie alebo učenie sa.
      Ponúkame vysoké pracovné nasadenie a tvorivý prístup k problému, aký môže poskytnúť len tím, ktorému nejde len o úspešné ukončenie projektu (aj keď je to náš hlavný cieľ), ale aj o získanie a prehĺbenie skúseností v oblasti, v ktorej sa aj v budúcnosti budú jeho členovia angažovať.

Predbežná charakteristika riešenia

     Produktom projektu by mal byť agent schopný samostatne napodobňovať hru futbalistu, t.j. určiť svoju pozíciu na ihrisku, určiť pozíciu lopty a spoluhráčov, pracovať s loptou, zistiť hernú situáciu a podľa nej na základe danej stratégie konať.
      Rozhodovanie agenta by malo prebiehať v troch vrstvách (Obr. 1). Na prvej vrstve bude agent komunikovať so serverom, prijímať a posielať správy. Zo získaných správ zistí svoju (predpokladanú) polohu a rýchlosť, polohy a rýchlosti ostatných hráčov a lopty. Údaje zo servera sa v prípade potreby doplnia predpokladanými polohami na základe predchádzajúceho stavu z vyšších stupňov spracovania (vrstiev). Z takto získaných údajov sa zostaví vnútorná reprezentácia ihriska tak, ako sa javí danému agentovi. Vrstva 1 poskytne vrstve 2 údaje o získaných polohách hráčov a lopty.


Obr. 1: vrstvy aplikácie

     Na druhej vrstve bude vykonávaný výpočet pohybu, trajektórie, analýza situácie, indikatrix (dosah) objektu, prekrytie, optimálna trajektória, hraničná trajektória pohybu pri zohľadnení neurčitosti údajov a podobne. Pre bližšie objasnenie vyššie uvedených pojmov uvediem nasledujúci príklad (Obr. 2):
     Hráč (agent) má loptu (situácia: lopta je v jeho dosahu a je mimo dosahu ostatných hráčov). Hráč zistí, že jeho dosah sa o x simulačných krokov bude prekrývať s dosahom dvoch súperových hráčov a preto vyráta, z ktorého miesta jeho dosahu by sa dala kopnúť lopta tak, aby jej trajektória neprechádzala dosahom súperov a končila v dosahu spoluhráča (alebo v súperovej bránke). Vyráta, po akej trajektórii by sa mal pohybovať on a lopta, aby to bola podľa kritérií daných vyššou vrstvou, dráha optimálna pre prechod z jednej situácie do druhej a ktoré trajektórie pohybu sú hraničné pre jednotlivé budúce situácie (ak kopnem loptu o kúsok vľavo bude gól, ak o kúsok v pravo, súper získa loptu). Tieto údaje sa potom odovzdajú vyššej vrstve, ktorá rozhodne do ktorej situácie je strategicky výhodnejšie sa dostať.
     Tretia vrstva bude rozhodovať o celkovej stratégii - štýle hry. Kooperácia jednotlivých hráčov bude implicitne zapísaná v stratégii konania jednotlivých hráčov. Zatiaľ uvažujeme nad dvomi alternatívami: znalostný systém s explicitne zapísanými pravidlami (ak si pred prázdnou bránou a máš loptu, potom ju streľ do brány), alebo neurónová sieť učiaca sa pomocou genetického algoritmu. Každý z týchto postupov má svoje výhody aj nevýhody. Spoľahlivosť (ak je bez programátorských chýb, robí to, čo


Obr. 2: situácia na ihrisku

sa od neho očakáva) ale výsledky závisia od kvality znalostí dodaných programu, vs. schopnosť učiť sa samostatne ale neurčitý výsledok (je možné, že sa nenaučí nič). Ak to bude z časového hľadiska možné, pokúsime sa realizovať obe možnosti. Treta vrstva teda rozhodne čo bude v konečnom dôsledku hráč vykonávať, čo zašle druhej vrstve. Druhá vrstva prijme príkaz a rozliží ho na postupnosť základných príkazov, ktoré vie vykonávať hráč. Tieto príkazy zašle prvá vrstva serveru.

4. Predpokladané zdroje

     Hardvérové vybavenie laboratória pre tímový projekt predbežne zodpovedá našim požiadavkám, z praxe však vieme že simulácia robotického futbalu je veľmi náročná na výkonnosť siete, preto by bolo vhodnejšie keby sieť bola prepínaná (minimálne na finálny zápas). Pri bežnom testovaní by však mala postačovať aj súčasná sieť.
     K softvérovému vybaveniu by sme potrebovali doplniť programovací jazyk Java 1.2. Základný balík aplikácií (JDK) je možné voľne stiahnuť zo stránky http://java.sun.com. Vývojové prostredie Inprise Jbuilder pre nekomerčné (študentské) použitie možno stiahnuť zo stránky http://www.inprise.com.

5. Priority tém

Usporiadanie tém podľa priority:

  1. Simulácia robotického futbalu
  2. Počítačová podpora hodnotenia programov v C jazyku
  3. Zber a spracovanie normatívnych dát pre elektromyografiu

6. Rozvrh

APS II - Architektúra počítačových systémov II
TK - Teória kódovania
NS - Neurónové siete
ASS - Architektúra počítačových systémov
MRTH - Metódy rozhodovania a teória hier
OP - Odborné praktikum
MFF - Štúdium na MFF UK

Poznámka: Niektorí študenti ešte neuviedli v rozvrhu predmety, ktorých termín ešte nieje určený (Diplomový projekt a Odborné praktikum). Dá sa však predpokladať, že termíny týchto predmetov sa prispôsobia vybranému času pre predmet Tímový projekt.

7. Návrhy zmien

     Pre študentov by bolo výhodnejšie keby sa mohli priamo zapojiť do návrhu tém. Mohlo by sa navrhnúť viacero tém, z ktorých by sa na úvodnom seminári hlasovaním vybrali tri témy, ktoré sa budú riešiť. Mohlo by to prebiehať tak, že každý študent si vyberie tri témy podľa preferencií, pričom prvá téma získa tri body, druhá dva body a tretia bod. Body od jednotlivých študentov sa sčítajú a vyberú sa tri témy ktoré získali najviac bodov.
      Taktiež by bolo vhodné vopred zverejniť niektoré kritéria na zloženie tímov. Študenti by mohli svoje návrhy tímov vytvárať s ohľadom na tieto kritéria, vďaka čomu by sa mohli finálne tímy viac podobať na pôvodné tímy navrhnuté študentami.

best viewed with open eyes
created by Jeeff
Simulacia robotickeho futbalu