Blog - ProgramovánÃ
V posledním příspěvku jsem psal, že bude nová verze stránek (tuším, že by mohla být už čtvrtá), ale zatím se nic nekonalo. Měl jsem dost práce a dodělával jsem diplomku. Práce je stále dostatek, ale diplomová práce už je odevzdána.
"Diagnostika pacientů s Parkinsonovou chorobou" je její oficiální název. Ve spolupráci s lékaři v Motolské nemocnici jsme navrhli sadu testů, které budou pacienti provádět na tabletu, připojenému k počítači. Navrhnul a napsal jsem aplikaci, která data ukládá do databáze. Data jsem zkoumal v MatLabu - různé filtry, transformace a tak dále, až jsem naleznul několik příznaků, které by mohly o třesu vypovídat. Tyto analytické nástroje a vizualizace jsem zpětně implementoval do aplikace a databáze pro lékaře.
Koho to zajímá, může si o tom přečíst více.
Teď už to jen obhájit a udělat státnice. Pak mě čeká ještě práce, která poslední dobou dost zahálela, ale nová verze stránek se už blíží. Snad v březnu.
Sliby chyby. Howk.
Už je to nějaký čas, co jsem si napsal poslední příspěvek. Tak jsem si řekl, že by bylo záhodno trochu překvapit čtenáře nějakám článečkem. A hle - je tu!
Sekci o algoritmech jsem rozšířil o dva prográmky, které jsem napsal pro předmět Problémy a algoritmy. První řeší notoricky známou úlohu přelévání kýblů s vodou. Například: máte dva kýble jeden pěti a druhý tří litrový, kohoutek s vodou a odtokový žlábek. Kýble jsou na začátku prázdné a pomocí pouze tří operací - přelití vody z jednoho kýblu do druhého, vylití vody do žlábku a naplnění kýble po okraj - máte do jednoho kýble dostat čtyři litry vody a druhý mít prázdný. Úlohu lze řešit i obecně pro více kýblů. Kromě toho je k prográmku dodávána (ZDARMA!) implementace klasické a prioritní fronty v Javě.
Druhý prográmek zase řeší problém batohu: máte množinu věcí ohodnocených cenou a váhou a batoh s určitou maximální nosností a máte ho naplnit věcmi tak, abyste maximalizovali zisk. Implementoval jsem řešení hrubou silou, metodou větvení a mezí, heuristikou poměru cena/váha a dynamickým programováním.
Při práci na programu na diagnostikování parkinsoniků (a dalších lidí postižených třesem) jsem naimplementoval různé prohlížeče dat a jelikož potřebuji naimplementovat Savitzky-Golay filtr, narazil jsem na stránky Numerical Recipes in C, kde se skrývá celá kniha o implementaci matematických vzorců a postupů. Velice přínosné... Kromě toho jsem provedl (a jako recidivista stále provádím) testy na datech pacientů a vypadá to, že první řešení se již blíží...
A na závěr bych se opět pochlubil dvěma komerčními výtvory, které najdete tradičně v sekci tomu věnované - internetové stránky restaurace a kavárny Café Therapy a hru pro mobilní telefony Boulder Drift.
Právě jsem dočetl knihu Java - vylaďování výkonu. Můžu vřele doporučit všem, kteří se zabývají Javou na hlubší úrovni. Možná jsem objevil Ameriku, ale dozvěděl jsem se v ní, kromě klasických metod optimalizace i například o metodách, jak si napsat vlastní jednoduché profilery - pomocí změny kódu standardních tříd a podobné perličky.
Kniha se zabývá odlišnostmi jednotlivých verzí SDK, optimalizací různých programových konstruktů a používání standardních tříd Javy, efektivnější využívání zdojů, apod.
Spoustu dalších článků najdete na stránkách Java Performance Tuning.
Ale hlavně nezapomeňte na první a základní pravidlo: Optimalizujte, až když musíte! ;-)
Na stránkách univerzity v Rouenu (pdf) jsou algoritmy pro přesné vyhledávání v textu. Zajímáte-li se o tuto problematiku více, nebo se chcete dozvědět víc teorie, na stránkách Pražského stringolického klubu najdete skripta k předmětu textové algoritmy. Tam se dozvíte i o dalších metodách vyhledávání v textu.
Oba odkazy jsou v angličtině.
Semestr skončil, zkouškové začíná. Uplynulý půlrok byl na množství semestrálních prací chudý avšak na kvalitu a čas potřebný na jejich zhotovení už ne. Virtuální starou Prahou jste se již jistě prošli.
Další dvě semestrálky se věnují hledání největšího bipartitního podgrafu pro Paralelní systémy a algoritmy, které jsme společně s Petrem Hašlarem stvořili. A řešitel sudoku pro předmět Jazyky pro umělou inteligenci.
Zkouškám a lepším zítřkům hrdě vstříc!