• No results found

Manuál k bakalářské práci

N/A
N/A
Protected

Academic year: 2022

Share "Manuál k bakalářské práci"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Manuál k bakalářské práci

1 Požadavky

Program, vykonávající hlavní logiku a výpočty je programován v jazyku java. Webová aplikace využívá jazyku PHP, propojení obstarává databáze MySql. Všechny tyto prostředky jsou nezávislé na operačním systému.

Pro správný chod programu, je nutné mít nainstalovanou databázi MySql. Dále podporu pro psaní PHP skriptů, což představuje instalaci PHP jazyka a lokálního serveru (testováno na serveru Apache). Samotné výpočty nepotřebují PHP a Apache, pokud tedy nechcete testovat webovou aplikaci na vlastním serveru (a dále ji vyvíjet či se z ní přiučit) není potřeba tuto instalaci provádět.

Web používá framework (DevilPHP – Development in language PHP), který se nachází ve složce libs webové aplikace (betprobe_web_app). Samotný framework používá překlad šablon, proto při přepsání šablony je nutné přeložit celý soubor (PHP kompilovat zdrojový kód neumí, o to se stará samotný framework). Při jakékoliv změně se může bez detailního prostudování kódu vyskytnout neočekávaná chyba. Pro shlédnutí webové aplikace je možné též využít webu www.betprobe.com (jedná se o přesnou kopii zdrojového kódu webu). Pro testovací přihlášení je možné využít shodného jméno a hesla "test". Tyto přístupové údaje slouží pouze k testování webové prezentace, aktivní jsou pouze do 31.6.2013.

Hlavní program je psán v jazyku Java, který je nutné mít rovněž nainstalovaný, pro vývoj bylo použito vývojového prostředí (IDE) Netbeans. Pro ideální práci se zdrojovým kódem je dobré rovněž nainstalovat i toto prostředí. Bez instalace je možné se obejít ale následně může docházet ke ztížení práce a manuálnímu doplňování balíčku apod.

Samotný program je sice poměrně výpočetně náročný, zejména kvůli nutnosti numerické integrace ale i samotné práci s rozsáhlou databází. Přesto by neměl být problém tento program spustit na tařka libovolném PC, může pouze dojít k výraznému zpomalení rychlosti programu a samotné výpočty pak snadno mohou přesáhnout na starších či špatně optimalizovaných PC i 30 minut.

(2)

2 Statistické výpočty

Všechny výpočty jak již bylo zmíněno vykonává kód psaný v jazyku Java, který se nachází ve složce betprobe_logic. Dokumentace celého kódu je přiložena ve složce betprobe_logic_doc.

Ještě před samotným spuštěním aplikace je nutné importovat základní kostru databáze (složka mysql_skelet, nebo přímo ze složky mysql_actual aktuální data, která již obsahují 3 poslední sezóny)

Základním bodem, který je třeba po každém závodu vykonat je ukládání závodních informací.

Pro tuto operaci byla vytvořena třída Import, která se nachází v balíčcích bcprobe.polyrival.biathlon.imports. Obsahuje statickou metodu importRace s parametrem url. Url představuje webovou adresu s údaji o konaném závodu na oficiílním serveru biathlonworld.com.

Tato třída pomocí této metody uloží všechny potřebné informace, pro další práci. Pokud některá data nejsou dostupná, nebo obsahují chyby, jsou ukládány do databáze, konkrétně tabulky logger, kde se shromažďují všechna chybová hlášení.

Pro samotné vyhodnocení úspěšnosti klasifikace se používá prozatím výstupu z konzole, která vypisuje v řádcích identifikační řetězec závodu, odchylku předpovídaných umístění ( ϕ ), čtvercovou odchylku ( ϕ2 ), součet pravděpodobnostního rozložení (spi), maximální odchylku.

Pomocí těchto hodnot jsou získány všechny hodnoty, které jsou uvedeny v samotné práci.

Nejdříve vytvoříme samotnou tabulku závislostí, která se v programu definuje pomocí třídy RaceTypeWeighter:

RaceTypeWeighter race_mass = new RaceTypeWeighter(ERaceType.mass_start);

race_mass.addRaceTypeWeight(new RaceTypeWeight(ERaceType.mass_start, 1));

race_mass.addRaceTypeWeight(new RaceTypeWeight(ERaceType.individual, 0.75));

race_mass.addRaceTypeWeight(new RaceTypeWeight(ERaceType.pursuit, 0.75));

race_mass.addRaceTypeWeight(new RaceTypeWeight(ERaceType.sprint, 0.75));

RaceTypeWeighter race_individual = new RaceTypeWeighter(ERaceType.individual);

race_individual.addRaceTypeWeight(new RaceTypeWeight(ERaceType.mass_start, 0.75));

race_individual.addRaceTypeWeight(new RaceTypeWeight(ERaceType.individual, 1));

race_individual.addRaceTypeWeight(new RaceTypeWeight(ERaceType.pursuit, 0.75));

race_individual.addRaceTypeWeight(new RaceTypeWeight(ERaceType.sprint, 0.75));

RaceTypeWeighter race_sprint = new RaceTypeWeighter(ERaceType.sprint);

race_sprint.addRaceTypeWeight(new RaceTypeWeight(ERaceType.mass_start, 0.75));

race_sprint.addRaceTypeWeight(new RaceTypeWeight(ERaceType.individual, 0.75));

race_sprint.addRaceTypeWeight(new RaceTypeWeight(ERaceType.pursuit, 0.75));

(3)

race_sprint.addRaceTypeWeight(new RaceTypeWeight(ERaceType.sprint, 1));

RaceTypeWeighter race_pursuit = new RaceTypeWeighter(ERaceType.pursuit);

race_pursuit.addRaceTypeWeight(new RaceTypeWeight(ERaceType.mass_start, 0.75));

race_pursuit.addRaceTypeWeight(new RaceTypeWeight(ERaceType.individual, 0.75));

race_pursuit.addRaceTypeWeight(new RaceTypeWeight(ERaceType.pursuit, 1));

race_pursuit.addRaceTypeWeight(new RaceTypeWeight(ERaceType.sprint, 0.75));

RaceTypesWeighter rtw = new RaceTypesWeighter();

rtw.addRaceTypeWeighter(race_mass);

rtw.addRaceTypeWeighter(race_pursuit);

rtw.addRaceTypeWeighter(race_individual);

rtw.addRaceTypeWeighter(race_sprint);

Následně vytvoříme předpisy pro klasifikaci, zvolením parametrů:

RaceParameterClassificatorRules class_rules = new RaceParameterClassificatorRules("730-%s", rtw, 0,

"sqrt(%s)", "%s*0+1", false, false, false, false,1);

Znak %s zastupuje parametr a zajišťuje tak dostatečnou obecnost řešení. První parametr (730-%s) tedy vyjadřuje závodníkovu formu a určuje jí jako 730 – počet dní od konání závodu.

Detailní popis celé třídy lze rovněž najít v dokumentaci u třídy RaceParameterClassificatorRules.

Vyhodnocení pak provedeme pomocí příkazů:

PositionClassificator pc = new PositionClassificator(null, class_rules);

Executor.executeAll(pc);

PositionClassificator obsahuje dva parametry, první z nich jsou konkrétní údaje o klasifikovaném závodu (soupiska závodníků, datum závodu,..). Tento paremetr při klasifikaci však necháme vykonat přímo třídu Executor. Jediným parametrem tedy jsou podmínky pro klasifikaci, v práci zmíněné jako klasifikační příznaky.

Třída Executor se stará o vyhodnocení všech závodů, které jsou v databázi. Jako parametr přejímá ACLassificator, což umožní vykonat kód libovolného klasifikátoru.

(4)

Webová aplikace prezentuje získané výsledky, nyní zobrazuje např. šance závodníků na celkové vítězství (závod byl zadán smyšleně, momentálně se žádný nekoná a nejsou tedy známé soupisky)

Díky obecnosti, se kterou pracuje součet pravděpodobnostních umístění je možné porovnávat nejrůznější myslitelné varianty, poslední dobou např. velmi oblíbené sázky, kdy se tipuje který ze 2 závodníků se umístí na lepším místě. Tyto možnosti je ještě nutné do aplikace přidat.

Web dále nabízí možnost zobrazení statistik, které byli získány.

(5)

Pomocí tohoto formuláře můžeme přesně vybrat konkrétní sezónu či vybraný druh závodu.

Zobrazeny pak jsou statistiky umístění, střeleckých chyb v jednotlivých závodech ale i celková statistika chybovosti v leže a ve stoje.

Další možností je i srovnání závodníků v jednotlivých faktorech, včetně přidání rychlosti běhu. Rychlost běhu je možné relativně poměrně dobře srovnávat, na následujících grafech byli zvoleni k porovnání Simon Eder a Lars Berger, je možné srovnávat až 8 závodníků, programově je sice aplikace připravena srovnat libovolné množštví závodníků. Omezení je tedy jen kvůli přehlednosti výsledných grafů. Obrázky jsou na následující stránce.

(6)

References

Related documents

V nejbližším okolí města Tanvald se turistických zajímavostí nachází tolik, že by na ně rozsah tohoto sborníku nestačil, proto jsou záměrně vybrána jen místa

Obrázek 79: Zleva: Oxid lanthanitý, oxid ceričitý, oxid gadolinitý, oxid praseodymyto, praseodymičitý,

Pro návrh Oslo Cultural Centre byla vybrána parcela v historickém prostředí nábřeží, stavba má zahrnovat auditorium, knihovnu, prostory pro výstavy a workshopy, café a

Hodnocen´ı navrhovan´ e vedouc´ım bakal´ aˇ rsk´ e pr´ ace: velmi dobře Hodnocen´ı navrhovan´ e oponentem bakal´ aˇ rsk´ e pr´ ace:?. Pr˚ ubˇ eh obhajoby bakal´ aˇ

ZD – je členěn zadním středovým švem (skryté zdrhovadlo) a princesovým členícím švem sahajícím až do dolního kraje (členící šev je tvarován v místě pasové

Dle předložených faktů, mám takový názor, že senioři této skupiny jsou velmi aktivní ve všech směrech, jak v oblasti využívání volného času - cestování, turistika,

Práce je rozdělena na teoretickou část, ve které je vymezení pojmu artefiletika, subjektivní pohoda, stres a trauma, dále praktickou část, která je

1) Proč má posuzovat společnost uzavřenou smlouvu o poskytování pracovnělékařských služeb s takovým poskytovatelem, kdy zaměstnanci k lékařské prohlídce musí cestovat