WTFbots. prezentace strategie. Nikola Beneš Tomáš Kyjovský Jan Vykopal

Podobné dokumenty
Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

Java/QE Akademie - Osnova

Spojová implementace lineárních datových struktur

UITS / ISY. Ústav inteligentních systémů Fakulta informačních technologií VUT v Brně. ISY: Výzkumná skupina inteligentních systémů 1 / 14

Ročníkový projekt. Jaroslav Žáček

Komprese a dotazování nad XML dokumenty

Vstupní požadavky, doporučení a metodické pokyny

Ročníkový projekt. Jaroslav Žáček

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Fakulta informačních technologií Vysoké učení technické v Brně. Práce v týmu

Řízení reálných projektů, agilní metodiky

Dokumentace software

Programátorská příručka

Prezentace 2. Slide 1. Slide 2. Slide 3. Slide 4. Prezentace pdf. nazev projektu jmena atd.. Obsah

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Specifikace předmětu plnění Datová tržiště

14. května 2012, Brno

Základy programování Zdrojový kód, dokumentace, týmová práce

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

1. Programování proti rozhraní

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Geis Point Plugin Map

Obsah. Proč právě Flash? 17 Systémové požadavky 17. Jak používat tuto knihu 18 Doprovodný CD-ROM 19

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář,

1 Strukturované programování

CAMEA. UnirailOCR Train Recognition System

Cílem seminární práce je aplikace teoretických znalostí z přednášky na konkrétní úlohy. Podstatu algoritmu totiž

Praktický návod. Inteligentní elektroinstalace obytného domu Ego-n

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

I-Železnice. Základní problematika oboru CCS. AŽD Praha. Ing. Vladimír Kampík AŽD Praha

Programování II. Návrh programu I 2018/19

Základy analýzy. autor. Jan Novotný února 2007

Návrh softwarových systém. Návrh softwarových systémů

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Institut teoretické informatiky (ITI) na FI MU

O Apache Derby detailněji. Hynek Mlnařík

Vizuální programování

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

UŽIVATELSKÉ ŠKOLENÍ LOTUS NOTES

Jak vybrat správný firewall. Martin Šimek Západočeská univerzita

Cvičení MI-PRC I. Šimeček

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Programování LEGO MINDSTORMS s použitím nástroje MATLAB a Simulink

LZ77 KNIHOVNA PRO KOMPRESI A DEKOMPRESI DAT POMOCÍ ALGORITMU LZ77. Příručka uživatele a programátora

Dispečerské řízení vozidel veřejné dopravy

Informační systém pro centrální správu lokální sítě a služeb ISP

aneb jiný úhel pohledu na prvák

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Propojování sítí,, aktivní prvky a jejich principy

Vánoční turnaj GP Praha 2012

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

INFORMAČNÍ SYSTÉM VIDIUM A VYUŽITÍ MODERNÍCH TECHNOLOGIÍ

Andrew Kozlík KA MFF UK

Rychlá odpověď na výzvu V Z O R. podle 101c a násl. zákona č. 235/2004 Sb., o dani z přidané hodnoty, ve znění pozdějších předpisů (ZDPH)

Informační systém ozdravných pobytů zdravotní pojišťovny

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Vyřešené teoretické otázky do OOP ( )

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Obsah. Část I Základy bezpečnosti...9 Kapitola 1 Základy obvodového zabezpečení Kapitola 2 Filtrování paketů...27

Pokročilé robotické technologie pro průmyslové aplikace

Analyzátor bezdrátových sítí

Korekturní rozšíření pro OpenOffice.org. Jaroslav Moravec.

Procesy a vlákna (Processes and Threads)

Návrh softwarových systémů - úvod, motivace

Identifikátor evropské judikatury ECLI Nejvyšší soud Úsek místopředsedy Nejvyššího soudu Oddělení dokumentace a analytiky judikatury ČR (ODAJ)

Lekce 9 - Migrace dat

Algoritmizace a programování

Bezpečnostní systémy - rychlostní kamery Identifikace SPZ a RZ.

10 Balíčky, grafické znázornění tříd, základy zapozdření

SOFTWAROVÉ INŽENÝRSTVÍ 1

Diplomová práce Prostředí pro programování pohybu manipulátorů

Zabezpečení citlivých dat informačních systémů státní správy. Ing. Michal Vackář Mgr. Boleslav Bobčík

TESTY K ODBORNÉ PŘIJÍMACÍ ZKOUŠCE MN - KIS

Requirements Model projektová dokumentace

Statická analýza kódu - za kód bez chyb

VeriFIT Automatizovaná analýza a verifikace

Elektronická podpora výuky předmětu Komprese dat

Porovnání rychlosti mapového serveru GeoServer při přístupu k různým datovým skladům

Programování v jazyce C a C++

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

uveřejněny na internetových stránkách této pobočky v samostatném dokumentu.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

2C Tisk-ePROJEKTY

Míčové hry. Přehazovaná - pravidla

Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?

Algoritmy výpočetní geometrie

Úvodem... 9 Kapitola 1 Karetních

Jednotný NIS Prezentace k zahájení projektu pro Radu kraje Vysočina. Projektový manažer - Ing. Ivan Sokolov, Ph.D.

IV. Ministerstvo financí ČR Odbor 27 Finanční trhy I Oddělení Bankovnictví

Podmínky pro naplňování principů 3E při přípravě a zadávání veřejných zakázek v ČR

AUTENTIZAČNÍ SERVER CASE BEZPEČNÁ A OVĚŘENÁ IDENTITA

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

PA152. Implementace databázových systémů

Transkript:

WTFbots prezentace strategie Nikola Beneš Tomáš Kyjovský Jan Vykopal

Osnova Proces vývoje Implementace naší strategie První turnaj Druhý turnaj Třetí turnaj Finále Nepoužité nápady Statistika Shrnutí

Proces vývoje iterativní vývoj jdeme hned na věc, možná jsme podcenili analýzu předem

Proces vývoje iterativní vývoj jdeme hned na věc, možná jsme podcenili analýzu předem role v týmu ad hoc Tomáš Kyjovský napočítání nejkratších cest, vyhýbání (předvídání akcí), blokování Jan Vykopal implementace zpráv, testování Nikola Beneš rozpoznávání symetrie, barvení mlhy

Proces vývoje iterativní vývoj jdeme hned na věc, možná jsme podcenili analýzu předem role v týmu ad hoc Tomáš Kyjovský napočítání nejkratších cest, vyhýbání (předvídání akcí), blokování Jan Vykopal implementace zpráv, testování Nikola Beneš rozpoznávání symetrie, barvení mlhy agilní přístup programování ve dvojici (i trojici :-)), pravidelné schůzky (celkem 22), ale poněkud omezené lidské zdroje

Proces vývoje iterativní vývoj jdeme hned na věc, možná jsme podcenili analýzu předem role v týmu ad hoc Tomáš Kyjovský napočítání nejkratších cest, vyhýbání (předvídání akcí), blokování Jan Vykopal implementace zpráv, testování Nikola Beneš rozpoznávání symetrie, barvení mlhy agilní přístup programování ve dvojici (i trojici :-)), pravidelné schůzky (celkem 22), ale poněkud omezené lidské zdroje správa verzí subversion, wiki stránka týmu jakožto kolektivní paměť (dokumentace, plán, TODO, wish-list,... )

Proces vývoje iterativní vývoj jdeme hned na věc, možná jsme podcenili analýzu předem role v týmu ad hoc Tomáš Kyjovský napočítání nejkratších cest, vyhýbání (předvídání akcí), blokování Jan Vykopal implementace zpráv, testování Nikola Beneš rozpoznávání symetrie, barvení mlhy agilní přístup programování ve dvojici (i trojici :-)), pravidelné schůzky (celkem 22), ale poněkud omezené lidské zdroje správa verzí subversion, wiki stránka týmu jakožto kolektivní paměť (dokumentace, plán, TODO, wish-list,... ) vývojové prostředí IDE NetBeans, pro kontrolní výstupy používáme java.util.logging

Implementace první turnaj Strategie nepoužíváme role všichni jsou hledači pokladů decentralizovaná, žádný šéf jdeme na nejbližší zajímavé pole (poklad/základna, mlha) nemáme-li kam jít, jdeme k nepřátelské základně (primitivní blokování)

Implementace první turnaj Strategie nepoužíváme role všichni jsou hledači pokladů decentralizovaná, žádný šéf jdeme na nejbližší zajímavé pole (poklad/základna, mlha) nemáme-li kam jít, jdeme k nepřátelské základně (primitivní blokování) Základní algoritmy hledání nejkratších cest ukazatele na zajímavá pole detekce kolizí posílání kolizních zpráv odhad chování přátelských robotů okolo statická metoda behave

Implementace první turnaj Strategie nepoužíváme role všichni jsou hledači pokladů decentralizovaná, žádný šéf jdeme na nejbližší zajímavé pole (poklad/základna, mlha) nemáme-li kam jít, jdeme k nepřátelské základně (primitivní blokování) Základní algoritmy hledání nejkratších cest ukazatele na zajímavá pole detekce kolizí posílání kolizních zpráv odhad chování přátelských robotů okolo statická metoda behave Základní struktura mapa paměť každého robota rádio příjem/odesílání zpráv, jejich identifikace

Implementace první turnaj Zprávy unifikovaný formát typ zprávy, id a pozice robota ochrana proti rušení CRC8, šifrování (XOR s klíčem)

Implementace první turnaj Zprávy unifikovaný formát typ zprávy, id a pozice robota ochrana proti rušení CRC8, šifrování (XOR s klíčem) Typy zpráv kolizní chci jít na dané místo poslední poklad beru poslední poklad a nikoho nevidím velký poklad našel jsem velký poklad; implementováno, ale nepoužito (nedostatečně otestováno)

Implementace první turnaj Zprávy unifikovaný formát typ zprávy, id a pozice robota ochrana proti rušení CRC8, šifrování (XOR s klíčem) Typy zpráv kolizní chci jít na dané místo poslední poklad beru poslední poklad a nikoho nevidím velký poklad našel jsem velký poklad; implementováno, ale nepoužito (nedostatečně otestováno) Výsledek turnaje šesté místo (první před opravením chyby v implementaci :-)) nejsilnější soupeři SwarmIntelligence, LamersGangstas, Balkon

Implementace druhý turnaj Vylepšování myšlenek prvního turnaje detekce kolizí odhad chování okolních robotů vyhýbání robot s pokladem má přednost zpráva o velkém pokladě

Implementace druhý turnaj Vylepšování myšlenek prvního turnaje detekce kolizí odhad chování okolních robotů vyhýbání robot s pokladem má přednost zpráva o velkém pokladě Testování logování (java.util.logging) měření času rozhodnutí

Implementace druhý turnaj Vylepšování myšlenek prvního turnaje detekce kolizí odhad chování okolních robotů vyhýbání robot s pokladem má přednost zpráva o velkém pokladě Testování logování (java.util.logging) měření času rozhodnutí Oprava chyb

Implementace druhý turnaj Vylepšování myšlenek prvního turnaje detekce kolizí odhad chování okolních robotů vyhýbání robot s pokladem má přednost zpráva o velkém pokladě Testování logování (java.util.logging) měření času rozhodnutí Oprava chyb Výsledek turnaje třetí místo nejsilnější soupeři HamsterInside, SwarmIntelligence, SetmelySirotcinec

Implementace třetí turnaj Myšlenky

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách problémy

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách problémy zpráva o základně

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách problémy zpráva o základně nedostatečně otestováno

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách problémy zpráva o základně nedostatečně otestováno Verze odevzdaná na třetí turnaj byla téměř shodná s verzí odevzdanou na turnaj druhý.

Implementace třetí turnaj Myšlenky chodit na místo, odkud je lepší výhled neimplementováno předávání pokladů v úzkých chodbách problémy zpráva o základně nedostatečně otestováno Verze odevzdaná na třetí turnaj byla téměř shodná s verzí odevzdanou na turnaj druhý. Výsledek turnaje třetí místo nejsilnější soupeři HamsterInside, SwarmIntelligence, SetmelySirotcinec

Finálová implementace velké změny Chození na mlhu, za kterou je zajímavé místo barvení mlhy

Finálová implementace velké změny Chození na mlhu, za kterou je zajímavé místo barvení mlhy Zjišťování symetrie mapy čtvercová mapa 5 možných symetrií (osové: X, Y, diagonály, středová) obdélníková mapa 3 možné symetrie (X, Y, středová)

Finálová implementace velké změny Chození na mlhu, za kterou je zajímavé místo barvení mlhy Zjišťování symetrie mapy čtvercová mapa 5 možných symetrií (osové: X, Y, diagonály, středová) obdélníková mapa 3 možné symetrie (X, Y, středová) Blokování obrana odhad cizích blokujících robotů útok agresivně blokujeme nepřátelskou základnu napočítávání úzkých míst blokující robot pod sebe položí poklad, nesl-li jaký (návnada)

Finálová implementace velké změny Nové zprávy šnek posílání okolí, RLE komprese přidáno téměř ke všem zprávám; posílá se též v případě, že není kam jít zpráva o základnách zpráva o symetrii zpráva jdu blokovat zpráva blokuju zpráva o cizích blokujících robotech

Finálová implementace velké změny Nové zprávy šnek posílání okolí, RLE komprese přidáno téměř ke všem zprávám; posílá se též v případě, že není kam jít zpráva o základnách zpráva o symetrii zpráva jdu blokovat zpráva blokuju zpráva o cizích blokujících robotech Výsledek turnaje???

Výběr z nepoužitých nápadů Nechodit všichni na jeden poklad Dynamická adaptace parametrů (vyhýbání, odhady,... ) Chodit na výhledová místa Předávání v úzkých chodbách Centrální systém hlášení chyb (bug tracking)

Statistika počet řádků kódu, bajtů a tříd odevzdaných strategií: 1. turnaj 2 374 80 909 12 2. turnaj 2 711 97 107 10 3. turnaj 2 839 103 426 10 4. turnaj 4 852 178 223 15 celkový počet verzí v repository: 203 (průměrně 0.89 denně) podíl týmu na vývoji podle počtu commitů (celkem a za poslední týden): 1. Tomáš Kyjovský 136 67,00 % 12 44,44 % 2. Jan Vykopal 50 24,63 % 9 33,33 % 3. Nikola Beneš 17 8,37 % 6 22,22 %

Shrnutí Co nám účast v soutěži přinesla? zajímavé a cenné zkušenosti: týmová práce pracování se správou verzí programování autonomních komunikujících agentů (pro některé) bližší seznámení s jazykem Java :-)

Shrnutí Co nám účast v soutěži přinesla? zajímavé a cenné zkušenosti: týmová práce pracování se správou verzí programování autonomních komunikujících agentů (pro některé) bližší seznámení s jazykem Java :-) S čím jsme byli nespokojeni? stav implementace herního rozhraní, chyby, programátorské poklesky zejména výhled robotů (metoda isinlineofsight)