Automatický dešifrátor pro šifrovací hry
|
|
- Kristina Kadlecová
- před 8 lety
- Počet zobrazení:
Transkript
1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Filip Hlásek Automatický dešifrátor pro šifrovací hry Ústav formální a aplikované lingvistiky Vedoucí bakalářské práce: RNDr. David Mareček, Ph.D. Studijníprogram: Informatika Studijní obor: Obecná infromatika Praha 2014
2 Chtěl bych poděkovat organizátorům šifrovacích her a jejich účastníkům. Díky úsilí věnovanému přípravě, resp. řešení šifer vznikl postupem času vzorek několika tisíc šifer, který se stal základem pro tuto práci. Ze všech šifrovacích her bych chtěl speciálně vyzdvihnout hry Bedna a Po trati, jejíchž organizátoři zveřejňují na svých stránkách řešení všech šifer v přehledném a strojově snadno rozpoznatelném formátu. Navíc doplňují historické ročníky svých her také o mapy, které umožnily lazení a trénování algoritmu za použití geografických souřadnic. Jednomu členu organizačního týmu zmíněné šifrovací hry Po trati patří můj největší dík. Je jím vedoucí této práce RNDr. David Mareček, Ph.D., který přišel snápademnatéma,neváhalsesemnoukdykolivpřitvorběprácesejítakonzultoval se mnou vytrvale různé verze dešifrátoru. Děkuji mu tímto za trpělivost a profesionalitu, se kterou se své role zhostil. Během společných diskuzí mi předal spoustu svých zkušeností nejen z počítačové lingvistiky, ale také o zásadách psaní odborných textů. Na závěr bych chtěl poděkovat těm, kteří mi nabídli svou pomoc s manuální evaluací výsledků. Byli jimi slečna Michaela Hubatová a již zmíněný RNDr. David Mareček, Ph.D.
3 Prohlašuji, že jsem tuto bakalářskou práci vypracoval(a) samostatně a výhradně s použitím citovaných pramenů, literatury a dalších odborných zdrojů. Berunavědomí,žesenamojiprácivztahujíprávaapovinnostivyplývajícízezákona č. 121/2000 Sb., autorského zákona v platném znění, zejména skutečnost, že Univerzita Karlova v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona. V...dne... Podpisautora
4 Název práce: Automatický dešifrátor pro šifrovací hry Autor: Filip Hlásek Katedra: Ústav formální a aplikované lingvistiky Vedoucí bakalářské práce: RNDr. David Mareček, Ph.D., Ústav formální a aplikované lingvistiky Abstrakt: Práce se zaměřuje na substituční šifry používané při terénních šifrovacích hrách. Nejprve získáme vzorky jazyka používaného v souvisejících textech a prozkoumáme jeho zvláštnosti. Dále navrhneme jazykový model speciálně určený pro práci s omezeným množstvím dat. Poté prozkoumáme různé možnosti vyhledávání pravděpodobných řešení a předvedeme, jak je možné přímočarý algoritmus vylepšit na poměrně efektivní. Podstatnou součást celého projektu tvoří softwarové dílo, jímž je konzolová aplikace sloužící k luštění šifer. Ta je schopna kompletně vyřešit více než 15% šifer, na kterých byla testována. Dalšího zlepšení je možné dosáhnout zadáním zeměpisných souřadnice místa, na kterém se uživatel nachází. Program pak bude hledat polohu další šifry pouze na nepříliš vzdálených místech. To umožní dešifrátoru prozkoumat více možností a docílit větší přesnosti. Klíčová slova: dešifrátor, substituční šifra, jazykový model Title: Deciphering tool for puzzlehunt games Author: Filip Hlásek Department: Institute of Formal and Applied Linguistics Supervisor: RNDr. David Mareček, Ph.D., Institute of Formal and Applied Linguistics Abstract: The thesis focuses on substitution ciphers used at puzzlehunt games. First,wecollectsamplesofthelanguagewhichisusedinthetexts,thatweare interested in. Furthermore, we propose a language model specially designed for working with sparse data. After that, we will explore the ways of searching for probable solutions and we will present a straightforward algorithm. Then we will improveitandmakeitmoreefficient.asignificantpartoftheprojectisaconsole application,whichservesasadecipheringtool.itisabletosolvemorethan15% outoftheciphers,onwhichithasbeentested.theresultcanbeimprovedif the user inputs his current geography location. In this case, the program will search just for nearby places. That will allow the deciphering tool to explore more options and achieve a better precision. Keywords: deciphering, substitution cipher, language model
5 Obsah 1 Úvod Základnípojmy Ukázkašifry Jazykpoužitývesprávnýchřešeníchšifer Souvisejícípráce Hlavnívýzvy Strukturapráce Sběrdat Vzorekjazykašifrovacíchher Slovník Geografickéinformace Rozdělenířešenínajednotliváslova Jazykový model Slovnítřídy Použitépojmyaznačení n-gramováanalýzadat Pravděpodobnostnásledujícíhoslova Cenavěty Využitíznalostiaktuálnípolohy Algoritmus Základnímyšlenka Vyhledávánírozšiřujícíhoslova Pořadízkoušenýchslov Postupnéprořezávánímožností Dvěfázevýpočtu Dokumentace Kompilaceprogramu Uživatelskádokumentace Programátorskádokumentace Konfiguracedešifrátoru Dalšídostupnénástroje Výsledky Hodnoceníúspěšnostidešifrátoru Parametryalgoritmu
6 6.3 Trénováníparametrů Vyhodnocenínaevaluačníchdatech Zhodnocenívýsledků Závěr 35 Seznam použité literatury 36 Seznam obrázků 37 Seznam tabulek 38 2
7 Kapitola 1 Úvod V posledních letech se na českém území začal rozmáhat fenomén šifrovacích her. Těchto soutěží se každoročně účastní několik tisíc hráčů a vyskytují se v nich obvykle velice originální šifry, při jejíchž luštění je potřeba důvtipu, logického uvažování a někdy také encyklopedických znalostí. Není žádnou výjimkou, že i zkušený tým stráví řešením jediného takového problému třeba i několik hodin. Tonáspřivedlokmyšlence,zdabynebylomožnéněkteréšifry,kterésena zmíněných hrách používají, luštit algoritmicky, nebo alespoň vytvořit nástroj, který by při luštění pomáhal. Cílem práce rozhodně není nijak nabourat koncept šifrovacích her, neboť i samotný autor je jejich náruživým účastníkem, ale spíše prozkoumat současnou situaci a analyzovat, do jaké míry jsou použité šifry neprolomitelné. Pokud se ukáže, že k jejich řešení vůbec není potřeba komplikovaný postup a bohatě stačí nějaký počítačový program, organizátoři budou patrně při chystání dalších šifer opatrnější. 1.1 Základní pojmy Přestože následující pojmy mají v běžném jazyce mnohem širší význam, pro účely tohoto textu je budeme používat v popsaném užším smyslu: Šifrovací hra 1 (šifrovačka) jetýmovýzávod,jehožsoučástíjeluštění šifer. Organizátory předem vytyčená trať se skládá z několika stanovišť(obvykle mezi deseti a dvaceti). Na každém takovém stanovišti čeká jedna nebo více šifer, které musí tým vyřešit, aby se poté dozvěděl polohu dalšího stanoviště. Řešení obvykle obsahuje buď název místa, nebo popis cesty k následující šifře. Na českém území se každoročně koná přibližně deset šifrovacích her, kterých se pravidelně účastní několik tisíc hráčů. V celém textu se budeme zabývat výhradně českými šifrovacími hrami. Abecedaje množina šestadvaceti písmen anglické abecedy {A,B,C,...,Z}. Přestože jsou všechny texty česky, upouští se od písmen s diakritikou. Text i bez nich snadno pochopitelný a na anglické abecedě je jasné přirozené 1 Přesnějiterénní šifrovací hra.jejíalternativoujeinternetová šifrovací hra,kteráje založena na podobném principu, ale místo polohy dalšího stanoviště je řešením šifry nějaké heslo. Cílem internetové hry je obvykle odhalit co nejvíce hesel. 3
8 uspořádání písmen, což je u některých šifer klíčová vlastnost. Někdy šifry obsahují také čísla, ale i v tomto ohledu problém zjednodušíme. Symboly budemeznačitmalýmipísmenyanglickéabecedy {a,b,c,...,z},ale na použitých znacích vůbec nezáleží. Důležité je pouze to, které z nich jsou stejné, a které naopak různé. Ve skutečných šifrovacích hrách se potom často jedná o nějaké obrázky, či grafémy. Monoalfabetická substituční šifra je jeden z typů šifer používaných při šifrovacích hrách. Jednotlivá písmena abecedy jsou při použití tohoto kódování reprezentována(substituována) jinými symboly. Stejná písmena jsou vždy popsána stejnými symboly, zatímco různá písmena různými symboly. Samotný text je poté zašifrován přímočaře nahrazením písmen odpovídajícími symboly. K rozluštění takové šifry je potřeba nalézt systém, jakým je převod realizován. Často je poměrně náročné učinit klíčové pozorování, přijít s nějakou trikovou myšlenkou, nebo v použitých symbolech něco uvidět.jelikožseprácezabývávýhradnětímtotypemšifer,někdybudeme používat pouze pojem šifra. Zadání(substituční) šifry je konečná posloupnost symbolů. Převodní tabulka je bijektivní zobrazení symbolů na abecedu. Často se může jednat o použití známého kódování jako například Morseovy abecedy nebo Brailleova písma. Jindy jsou zase písmena abecedy zašifrovány pomocí AS- CIIhodnot,aletéměřvždysejednápouzeojedenzkroků,kterýjepotřeba při luštění udělat. Řešení šifry(výsledek šifry) je posloupnost písmen abecedy, která vznikne tak, že na zadání šifry aplikujeme převodní tabulku. Jednotlivé symboly zadání rozšifrujeme pomocí převodní tabulky a získáme původní text, který nám organizátoři hry chtěli předat. Správné řešení šifry je řešení očekávané organizátory šifrovací hry. Aby bylo řešení přímo čitelné, je potřeba ještě text rozdělit na slova. Tento druhý krok je ale většinou již snadné udělat, a dokonce i organizátoři očekávají, že výsledek bude pochopitelný i bez rozdělení na slova. Dešifrátor(automatický dešifrátor) je počítačový program, jehož vstupem je zadání šifry a výstupem jsou možná řešení šifry. 4
9 1.2 Ukázka šifry Pojmy, o kterých jsme hovořili v předchozí sekci, osvětlíme na následující šifře. TabylapoužitanašifrovacíhřeBedna Obrázek 1.1: Zadání 13. šifry z šifrovací hry Bedna 2012 Zadání obsahuje několik obrazců, z nichž některé jsou stejné. Navíc jsou jednoznačněuspořádanéatonásvedekmyšlence,žebysemohlojednatomonoalfabetickousubstitučníšifru.jednotlivésymboly 3 jsmejižidentifikovaliazadání šifry tak můžeme přepsat například následovně: ywosbfuvhstiwfshusou Jedno z možných řešení uvedené šfiry může být: YWOSBFUVHSTIWFSHUSOU Zřejmě se nejedná o správné řešení zkoumané šifry. Cesta k rozluštění je poměrně náročná a nakonec vede k jednoznačné identifikaci jednotlivých symbolů a k převodní tabulce: b -> S, f -> T, h -> R, i -> B, o -> M, s -> E t -> D, u -> I, v -> P, w -> A, y -> N Této tabulce odpovídá následující řešení: NAMESTIPREDBATERIEMI Snadno již rozdělíme výsledný text na slova a zjistíme, že další stanoviště se nachází na náměstí Před bateriemi. Doplňme ještě, že uvedená převodní tabulka úplně neodpovídá popsané definici, protože nepopisuje, na co se zobrazí ostatní symboly. Ať to ale bude jakkoliv, řešení to neovlivní. Podobně budeme také v dalším textu připouštět tento volnější význam pojmu převodní tabulka Stejnýmobrazcůmpřiřadímestejnýsymbol,alenezáležínatom,kterépoužijeme.Ekvivalentně můžeme zadání přepsat například jako abcdefghidjkbfdigdcg. 5
10 1.3 Jazyk použitý ve správných řešeních šifer Jazykem šifrovacích her je čeština, ašak značně specifická. Řešení šifer často netvoří kompletní věty, ale spíše heslovitě a zkratkovitě popisují cestu k dalšímu stanovišti. Samotný text je obvykle tak stručný, jak jen je možné se zachováním srozumitelnosti a někdy je velmi náročné interpretovat výsledek, dokonce i u správně rozluštěné šifry. Jako ukázku typických řešení šifer uvádíme následující seznam. Jednotlivá řešení jsme pro snadnější čtení rozdělili na slova. FUGNEROVO NAM JZ ROH NADRAZI BRANIK TRI SESTPET TRI CTVRTE KILAKU S ODSUD KRUHOVA LESNI SKOLKA CHATKA ZENA VRTAKA DOLNI RYBNIK VYCHOD ROH KOSTEL ULICE ELISKY PREMYSLOVNY POMNIK PALACKEHO VRCH BOHACOVA HRISTE SEVER INFO CEDULKA NA SOUTOKU VRCHOL KOPCE BRABENAK SRBSKO MOST POD ROZVODNOU UL PETRSKOU AZ K TOALETAM JEDLOVKA NA ROZC ZELENE A CYKLO SKOLKA D MECHOLUPY DALSI SIFRUVEM U STRAHKLASTERAPMARIE Mohlobysezdát,žekaždýorganizátorpoužívásvévlastnízkratkyatímpádem úplně jiný jazyk. Nemělo by potom smysl nijak analyzovat a snažit se popsat společný jazyk šifrovacích her. Na druhou stranu se organizátoři drží nějakých zásadanepsanýchpravidel 4.Díkyvzájemnékomunikacimezirůznýmišifrovačkami sezkoumanýjazykstálevíceustaluje,aprotomásmyslsejímzabývat. Jeden z důvodů, proč se organizátoři uchylují ke zkratkám a různým opisům, je, že chtějí tímto umělým zásahem do čistého jazyka znemožnit správný výsledek odhadnout. Pro ukázku uvažme zadání šifry, kde se první symbol shoduje sdevátýmatakésedmýsdesátým.zkušenýluštiteluvedenéšifrysisnadnopovšimne,žeřešenímůžezačínatpoměrněběžnýmslovemkřižovatka 5 apomůže mu to k rozluštění zbytku šifry. Naopak zkratku KŘIŽ téměř nelze na začátku šifry odhadnout, neboť na čtyři různá písmena začíná mnoho dalších slov. Mezi nejčastější zkratky patří zkráceniny geografických názvů jako například NÁM(náměstí), NÁDR(nádraží), POM(pomník), ROZC(rozcestí/ rozcestník), ZAST(zastávka),... 4 JednímtakovýmpsanýmkodexembymohlabýtknihaAlmanachTMOU(Pelánek,2008). 5 Prosnazšíčitelnostuvádímevtétosekcislovavčetnědiakritiky,přestožesevtétopodobě v řešeních šifer vyskytují. 6
11 Dále se ve správných řešeních šifer běžně vyskytují názvy ulic, ale i jména menších obcí, případně kostelů, pomníků, studánek, památných stromů, mostů, náměstí, soch, zastávek MHD, kopců, či jiných geograficky významných míst. Typické jsou v rozluštěném textu také názvy světových stran a jejich zkratky jako S, JZ, SEVEROVÝCHODNÍM SMĚREM, atp. Trochu méně častou skupinou slov jsou barvy reprezentující turistické značky jako KŘIZOVATKA ČERVENÉ A ŽLUTÉ. Posledním jevem, který v této kapitole zmíníme, je častý výskyt objektů, kde může být šifra fyzicky ukryta. Mezi taková slova patří například HŘIŠTĚ, LAVIČKA, SOCHA, HRÁZ, KOSTEL, TOPOL, POMNÍK, LOUKA, SLOUP nebo třeba KAŠNA. 1.4 Související práce Dílem, které se zabývá podobnou problematikou, je bakalářská práce Klasické kryptografické metody(žeravík, 2012). Autor zde zkoumá různé druhy šifer a mimo jiné i monoalfabetickou substituční šifru. Navrhuje také dešifrátor používající genetický algoritmus, ale nijak se nezaměřuje na šifrovací hry ani na žádný konkrétní jazyk. Tato práce by se měla zásadně odlišovat především tím, že se zaměřuje na extrémně krátké vzorky předem známého jazyka používaného v řešeních šifer z šifrovacích her. Dalším souvisejícím projektem je mobilní aplikace Šifrovací pomůcky Absolutno 6.Tentonástrojpomáhářešitelipřiluštěnírůznýchdruhůšifer,alenenabízí možnost automatického dešifrování bez asistence člověka. Velmi teoretickou prací týkající se našeho tématu je článek Decipherment Complexity in 1:1 Substitution Ciphers(Nuhn a Ney, 2013). Autoři v něm diskutují algoritmickou složitost přesně našeho problému. Pro unigramový model (viz Kapitola 3) přicházejí s polynomiálním řešením, zatímco pro bigramový ukazují převod na problém obchodního cestujícího(tsp). Z toho plyne, že v plné obecnosti se jedná o NP-úplný problém. 1.5 Hlavní výzvy Naprvnípohledsemůžezdát,žesejednáopoměrnějednoduchýproblém, ale již při prvním pokusu o návrh řešení narazíme na několik překážek. Další sevyskytnouažvprůběhuvývojeaněkterésenaplnoprojevíažpřisamotném testování. Možných řešení je příliš mnoho. Každá z 26! permutací písmen abecedy odpovídá jedné převodní tabulce. Většinou se v šifře nevyskytuje všech 26 různých symbolů a průměrná šifra 7 jichobsahujepouze11,7.přestokdyžuvážímepodprůměrnoušifru obsahující10různýchsymbolů,přicházívúvahucelkem = různých řešení. Kdybychom například dokázali analyzovat10 9 řešenízavteřinu 8,celývýpočetbytrvalpřespěthodin.Navíc Uvedenástatistikajevytvořenánazákladětrénovacíchdat(vizSekce2.1.) 8 Jednáseovelmihrubýaspíšeoptimistickýodhad,kterýseřádověmůžepodobatvýkonnosti běžně dostupných osobních počítačů. 7
12 u složitějších zadání roste potřebný čas exponenciálně. K úspěšnému vypořádání se s problémem je tedy nutné navrhnout jiný postup než zkoušení všech možných řešení a vybírání pouze těch slibných. Frekvenční analýza není účinná. Řešení monoalfabetické substituční šifry samo o sobě není příliš zajímavý problém. Arabové dokázali již ve středověku prolomit kód pomocí frekvenční analýzy textu(singh, 2003). Tento postup je ale založen na velkém množství dat a pro krátký text, se kterým pracujeme, není možné metodu úspěšně přímo aplikovat. Medián 7 délekšiferjepouze16písmen.málokdysevšifřevyskytnenějaký symbol více než dvakrát a rozdíl mezi písmeny, které se vyskytují takto řídce není nijak statisticky významný. Použitelnost frekvenční analýzy textu je z tohoto důvodu v našem případě značně omezená. Je dostupné malé množství trénovacích dat. Abychom mohli prozkoumat jazyk šifrovacích her, budeme potřebovat skutečné vzorky jazyka. Historicky proběhlo na českém území kolem 400 šifrovacích her. Některé vůbec neodpovídají konceptu stanovišť, který zkoumáme,jinénaopaknemajídostupnéžádnéwebovéstránkyaipokudbyse zkaždéhrypodařilozískatprůměrně15šifer,jednalobysepouzeovzorek několika tisíc velmi krátkých úseků textu. Je to samozřejmě to jediné, co je možné použít, ale značná limitovanost těchto dat bude mít rozhodně velký vliv na celý projekt. Jazyk je velmi těžko analyzovatelný. Jak jsme již nastínili v Sekci 1.3, jazyk šifrovacích her je zkratkovitý a heslovitý. Často navíc neodpovídá ani syntaktickým pravidlům češtiny. Bude velmi obtížné sestavit kompletní slovník všech možných pojmů, které se mohou ve výsledcích šifer vyskytnout. Které řešení je lepší, když neznáme to správné? I kdybychom měli dostatek výpočetního času na analýzu všech možných řešení, stále musíme rozhodnout, které z nich je lepší. Přirozeně bychom chtěli vybrat to s největší mírou správnosti, ale k její vyhodnocení bychom potřebovali mít správné řešení, které bohužel neznáme. Proto se musíme spokojit s nějakou aproximací správnosti a půjde o skloubení analýzy trénovacích dat s vhodným návrhem jazykového modelu. Volba této porovnávací funkce může velmi zásadně ovlivnit úspěšnost celé práce při hledání kvalitních řešení. 1.6 Struktura práce Seznámili jsme se se základními pojmy a víme, jak může taková šifra vypadat. V předchozí sekci jsme blíže prozkoumali studovaný problém a nyní stručně popíšeme, v jakém pořadí budeme dále postupovat. V kapitole Sběr dat rozebereme všechny druhy dat, které jsou potřeba k úspěšnému návrhu dešifrátoru, trénování jeho parametrů, a dokonce i k samotnému běhu. 8
13 Následující dvě kapitoly Jazykový model a Algoritmus popisují dvě nejdůležitější součásti dešifrátoru. Obě části jsou téměř nezávislé a drobné změny v jedné z nich nijak neovlivní tu druhou. Celou práci zakončíme kapitolou Dokumentace a diskuzí nad Výsledky. 9
14 Kapitola 2 Sběr dat V této kapitole popíšeme, jak získáme potřebná data pro následnou analýzu jazyka a návrh vhodného algoritmu. Vzorek správných řešení reálných šifer navíc využijeme také na trénování parametrů dešifrátoru a v neposlední řadě k závěrečnému vyhodnocení úspěšnosti vytvořeného dešifrátoru. Všechna data volíme výhradně z volně dostupných ke stažení na internetu. Nejprve specifikujeme všechny kategorie dat, které budeme potřebovat. Pro každou z nich poté vybereme vhodný zdroj a dále navrhneme skript, který bude vybraná data automaticky stahovat. Někdy je navíc potřeba získané informace vhodně naformátovat a uspořádat tak, aby se s nimi poté dalo efektivně manipulovat. 2.1 Vzorek jazyka šifrovacích her Jak jsme již nastínili, nejprve potřebujeme získat dostatečně velký vzorek jazyka, abychom jej mohli analyzovat a použít jeho specifik. Budeme využívat výhradně řešení šifer z reálných šifrovacích her. Mohli bychom si vymyslet vlastní slovní spojení, která by se podobala popisům dalšího stanoviště, ale ztratili bychom tak věrohodnost a mohli bychom přijít o důležité detaily jazyka. Navíc není možné použít taková data při testování. Na druhou stranu se neomezujeme pouze na monoalfabetické substituční šifry, neboť jazyk použitý v jiných typech šifer je v zásadě stejný. Přesto jsme značně limitováni celkovým počtem šifer, které kdy na českém území byly řešeny. V předchozí kapitole jsme odhadli celkový počet takových šifer na několik tisíc. Vtomtoohledumámejenvelmiúzkývýběrmezidostupnýmizdrojiapoužijemevšifrovacíkomunitěuznávanýkalendářšifrovacíchher 1.Ztohotoseznamu má42hersvéwebovéstránky,alepouze20znich(viztabulka2.1)jeterénních a na stránkách zveřejňuje správná řešení jednotlivých šifer. Stránky každé z těchto her jsme prozkoumali a vytvořili regulární výraz, který ze staženého HTML vybere správný výsledek dané šifry. Takto jsme ze stránek šifrovacích her získali dohromady 961 správných řešení šifer. U některých z nich jsme měli výsledek již v textové podobě u jiných byl výsledek reprezentován obrázkem, nebo pouze zapsaný v textu tak, že nebyl možný strojově vyhledat. Zbylé šifry jsme tedy ručně prošli a řešení opsali
15 Šifrovací hra Použité ročníky Webové stránky Bedna bedna.org Bota bota.chytry.cz Budějovické želvování 2012 sifrovackacb.wz.cz Hradecká sova sova.osjak.cz inula ročník inula.sifrovacky.cz Krutá(zá)krůta ročník krutazakruta.sifrovacky.cz Leonardo ročník leonardo.ph7.cz Lost in Hvozd 2012 lostinhvozd.wz.cz Matrix velkyvuz.cz/matrix NaPALMně 2012 napalmne.cz Noc tapürů noctapuru.cz Palapeli 2013 palapeli.wz.cz Paralaxa paralaxa.chim.cz Plzeňská šifrovačka 1. ročník plzenska-sifrovacka.webnode.cz Po škole poskole.podrate.cz Po trati potrati.cz Rozjezd 2012 rozjezd.cz Sešlost seslost.cz Studna 2003, studna.zizkov.org TMOU tmou.cz Tabulka 2.1: Seznam šifrovacích her použitých k získání řešení šifer. Na závěr všechna získaná řešení zašifrujeme použitím náhodné permutace abecedy a získáme věrohodná zadání šifer. Všechny šifry přibližně rovnoměrně rozdělíme do následujících tří skupin: Trénovací data(training) pomocí těchto řešení šifer navrhneme algoritmus a analyzujeme jazyk. Můžeme je využít v plném rozsahu a také ručně hledat závislosti, které by mohli být při výpočtu užitečné. Vývojová data(development) tato skupina je taktéž určena k vývoji, ale již pouze k testování, že jsme údaje napočítané na první skupině využili správně. Dále řešení použijeme k ladění parametrů dešifrátoru(sekce 6.3). Evaluační data(evaluation) nejsou během vývoje nijak využívána a slouží výhradně k závěrečnému vyhodnocení. 2.2 Slovník Naprostá většina slov vyskytujících se ve správných řešeních šifer pochází z češtiny. Jako základ našeho slovníku volíme veřejně dostupný seznam českých slov na stránce Abychom slovník doplnili o různé zkratky a hovorová slova, která se vyskytují v popisech cest, provedeme analýzu sedmnácti popisů cest dostupných na internetu(obvyklepopistypu Jakseknámdostanete? ).Ztěchtopopisůdonašeho slovníku přidáme ta slova, která se v nich vyskytují nejčastěji. 11
16 Další slova, která se v řešeních šifer vyskytují, jsou různá vlastní jména, ať se už jedná o názvy obcí, ulic, nebo například kostelů či památníků. O získávaní tohoto typu údajů blíže hovoří následující pasáž. 2.3 Geografické informace Názvy(pojmenované entity), které řešení šifer obsahují, jsou výhradně takové, které se dají najít na běžné mapě. Abychom tuto skupinu slov pokryli, využijeme skutečnou mapu. Nejrozšířenější volně dostupnou mapou v elektronickém formátu jenyníta,kterouposkytujeopenstreetmap 2. Jedná se o velice podrobné mapy, což vyžaduje netriviální extrakci těch informací, které jsou důležité pro naše účely. Vybereme-li z dostupných dat pouze názvy ulic, obcí a zastávek hromadné dopravy, získáme seznam rozumné velikosti (přibližně 92 MB). Společně s názvy zjistíme z map také geografické souřadnice jednotlivých míst. U rozměrnějších objektů jako jsou ulice bereme v úvahu pro jednoduchost pouze průměr souřadnic, kterými je objekt popsán. Tabulka 2.2 vyjadřuje počty extrahovaných názvů zeměpisných míst z jednotlivých skupin. Typ zeměpisného místa Počet objektů ulice obec autobusová zastávka železniční stanice tramvajová zastávka hospodářský objekt celkem Tabulka 2.2: Počty použitých geografických názvů. 2.4 Rozdělení řešení na jednotlivá slova Vzhledem k dalšímu postupu je nezbytné rozdělit řešení šifer na jednotlivá slova. K tomu není možné využít žádný automatický nástroj, neboť nemáme zdaleka kompletní slovník. Navíc poté můžeme využít rozdělených řešení k nalezení často používaných zkratek či jiných chybějících slov ve slovníku. Ručním dělením na slova sice mohou vzniknout nepřesnosti a chyby způsobené lidským faktorem, aleprodalšívývojbysenemělojednatoniczásadního. Analyzujeme-li rozdělená řešení, zjistíme, že jen u 49% všech šifer v trénovacích a vývojových datech máme všechna slova v nich obsažena v našem slovníku. Jelikož hledáme pouze taková řešení, která se skládají ze slov ve slovníku, značně tím klesá naděje na úspěšnost při řešení odpovídajících šifer
17 Kapitola 3 Jazykový model Značně specifický jazyk šifrovacích her, jak je popsán v Kapitole 1 je poměrně náročné popsat nějakým modelem. Vzhledem k velmi malému množství trénovacích dat se pokusíme použít jeden z nejjednodušších a nejpoužívanějších přístupů, takzvaný Katzův back-off model(katz, 1987)(Manning a Schütze, 1991). Tento model předpokládá, že již známe všechna slova zkoumaného jazyka. Seznamu všech slov jazyka šifrovacích her budeme říkat slovník. Cílem této kapitoly je co nejlépe vystihnout a popsat syntaktickou stránku jazyka pomocí nějakých konkrétních číselných hodnot. 3.1 Slovní třídy Zmíněný Katzův model pracuje obvykle s jednotlivými slovy, ale to je vzhledem k velmi malému množství trénovacích dat zcela nevyhovující. Přímou aplikací bychom dospěli k závěru, že většina slov ze slovníku se v jazyce vůbec nevyskytuje. Proto shlukneme související slova do slovních tříd tak, aby se slova z každé třídy vyskytovala v rozumné míře v trénovacích datech. Vzhledem k zeměpisnému zaměření jazyka je přirozené určit následujících pět slovních tříd: ulice seznam názvů ulic v lokalitě, kde šifrovací hra probíhá(např. v Praze) obec seznam názvů obcí poblíž lokality, kde šifrovací hra probíhá místo často vyskytující se místa, kde může být následující šifra fyzicky ukryta směr seznam nejpoužívanějších světových stran a jejich zkratek barva seznam barev užívaných na turistických značkách Další skupinu slovních tříd získáme analýzou různých popisů cest. Z těchto popisů vybereme taková slova, která se v nich vyskytují nejčastěji. Jsou to tedy česká slova, která mají ovšem zvýšenou pravděpodobnost výskytu ve správných řešeních šifer: běžné sloveso často vyskytující se slovesa, př. HLEDEJTE, JDĚTE, ZAHNĚTE časté slovo slova získaná analýzou popisů cest, př. MINUT, ROVNĚ, PŘIBLIŽNĚ 13
18 slovoulice obsahujeslovouliceajemupodobnáslova,př.cesta běžné spojení často používaná slovní spojení v řešeních šifer, př. DALŠÍ ŠIFRA Poslední skupinou jsou ty slovní třídy, které nemají na první pohled k šifrovacím hrám žádný zvláštní vztah. Přesto se tato slova samozřejmě v řešeních šifer často vyskytují a musíme je tedy zahrnout. Obecně by tyto slovní třídy měly obsahovat všechna ostatní slova a ideální by bylo rozdělení na slovní druhy. Bohužel použitý slovník popsaný v Sekci 2.2 nenabízí takovou možnost a vyčleníme alespoň ty slovní třídy, které se dají snadno vyjmenovat ručně: písmeno seznam všech písmen použité anglické abecedy spojka všechny české spojky předložka všechny české předložky ostatní slova, která jsme nezařadili do jiné slovní třídy 3.2 Použité pojmy a značení Ve zbytku kapitoly budeme potřebovat přesnější značení: Řetězec je konečná posloupnost písmen abecedy. Nechť s je řetězec, potom s nazýváme délkou řetězce, která je rovna počtu písmen v s. Pro každé i {1,2,..., s }značíme i-tépísmenořetězce ssymbolem s i. Slovní třída je množina řetězců. Označme množinu všech slovních tříd, se kterými pracujeme, symbolem C. Slovojedvojice(s,T)taková,že s T C.Nechť wjeslovo.prvnímuprvku dvojicetvořící wbudemeříkatřetězec 1 slova waznačit R(w),zatímco druhémuprvkuslovnítřídaslova waznačit T(w). Věta je konečná posloupnost slov. Nebude-li to matoucí, budeme někdy pro jednoduchost uvažovat větu jako zřetězení řetězců jejích slov. Slovník je množina všech slov. n-gramjeuspořádaná n-ticeslovníchtříd.budemejejznačit[t 1,T 2,...,T n ], kde T 1,T 2,...,T n C. i-týčlen n-gramu Gbudemeznačit G i. 1 Dvastejnéřetězceještěnemusínutnětvořitstejnéslovo,pokudjsouobsaženévrůzných slovních třídách. Např. řetězec CERVENA může tvořit jak slovo(cervena, barva), tak slovo (CERVENA, ulice). 14
19 3.3 n-gramová analýza dat Dále budeme analyzovat vzorky správných řešení šifer. Předpokládejme, že všechna tato řešení jsou již rozdělena na slova. Bohužel při rozdělování může nastat případ, kdy není jasné, ze které slovní třídy řetězec pochází, případně nepatří vůbec do žádné. V takovém případě vezmeme v úvahu všechny možnosti slovních tříd, do kterých může slovo patřit. Uvažujmenynípřirozenéčíslo n max,ojehožoptimálnívolběpohovořímevkapitole 6. Prokaždýn-gramG=[G 1,G 2,...,G n ](kde1 n n max )spočtemekolikrát sevtrénovacíchdatechvyskytuje n-ticeposobějdoucíchslov[w 1,w 2,...,w n ] taková,žeprokaždé i(kde1 i n)platí T(w i )=G i.napříkladprobigram [předložka, ulice] vyhodnotíme, kolika názvům ulic předchází nějaká předložka. Tomuto počtu budeme říkat(absolutní) četnost n-gramu G a značit ji C(G). Abychom mohli spočtené hodnoty přímo použít při modelování jazyka, přidáme speciální slovo na začátek všech šifer(start) a jiné speciální slovo na konec všech šifer(stop). Každé z těchto nově přidaných slov se nachází v samostatné slovní třídě. Celá tato analýza spěje k tomu, že budeme umět precizně vyjádřit například velmi nízkou pravděpodobnost předložky na konci zprávy, neboť bigram[předložka, STOP] nejspíše nalezneme v trénovacích datech jen zřídkakdy abudemíttedymaloučetnost. 3.4 Pravděpodobnost následujícího slova Předpokládejme, že již známe část textu(větu) ve zkoumaném jazyce a zajímá nás, jak bude asi text pokračovat. Pokud zpráva začíná DALŠÍ ŠIFRU NALEZNETE NA... nejspíše další slovo nebude ani PROTOŽE ani HLEDEJTE, ale může jím být například KONCI, nebo HŘIŠTI. Takovou vlastnost jazyka můžeme nyní již poměrně snadno vystihnout pomocí dříve spočtených četností n-gramů. Vzhledem k velmi malému počtu trénovacích dat provedeme několik zjednodušení a většina konstant původního Katzova modelu bude mít triviální hodnoty. Nechť[T 1,T 2,...,T L 1 ]je(l 1)-gramodpovídajícíprvním L 1slovům textu.dálenechť Kjepřirozenéčíslo 2 představujícíhranicinaminimálníčetnost n-gramu(katz, 1987). Pravděpodobnosttřídy T L následujícíhoslovadefinujemepředpisem P(T L T 1,T 2,...,T L 1 )= C([T L n+1,t L n+2,...,t L 1,T L ]) T C C([T L n+1,t L n+2,...,t L 1,T]), kde njenejvětšípřirozenéčíslomenšínež n max amaximálně Ltakové,žejmenovatel uvedeného zlomku je větší nebo roven konstantě K. Uvedené omezení na hodnotu n jinými slovy říká, že se nejprve snažíme použít (n max )-gramy,neboťbymělybýtnejpřesnější.pokudjealejejichčetnostpříliš malá,omezímesepouzena(n max 1)-gramyataktopokračujemedále,dokud četnost n-gramů není alespoň K(odtud název back-off). 2 Kjevolenotak,abybylomenšínežčetnostkaždéhounigramu.Použilijsmehodnotu15. 15
20 3.5 Cena věty Pro jednoduchost dále předpokládejme, že všechna slova z jedné slovní třídy jsou stejně pravděpodobná. Shlukli jsme je do tříd, abychom mohli odhadnout pravděpodobnost také pro slova, o kterých nemáme žádné informace z trénovacích dat. Použijeme pro ně pravděpodobnost jim podobných či příbuzných slov. U některých slovních tříd jako jsou barva nebo směr toto zjednodušení odpovídá velice přesně realitě, zatímco v jiných třídách(např. předložka nebo spojka) se pravděpodobnosti jednotlivých slov zásadně liší. Bohužel nemáme dostatečné množství trénovacích dat, abychom takové rozdíly mohli rozlišit, a proto uvažujeme uvedené zjednodušení pro všechny třídy. Pravděpodobnostslova w L,kterénásledujeposkupiněslov[w 1,w 2,...,w L 1 ] pak definujeme následovně: p(w L w 1,w 2,...,w L 1 )= P(T(w L) T(w 1 ),T(w 2 ),...,T(w L 1 )) T(w L ) Pravděpodobnostvěty[w 1, w 2,..., w L ]jerovna P([w 1,w 2,...,w L ])= L p(w i w 1,...,w i 1 ). i=1 Uvažme dále přirozený logaritmus pravděpodobnosti věty: log(p([w 1,w 2,...,w L ]))= ( L ) =log p(w i w 1,...,w i 1 ) = = i=1 L log(p(w i w 1,...,w i 1 )) i=1 L log(p(t(w i ) T(w 1 ),...,T(w i 1 ))) log( T(w i ) ) i=1 Dále budeme hledat takové řešení, které odpovídá větě s co největší pravděpodobností. Snažíme se tedy maximalizovat logaritmus pravděpodobnosti věty. Bohužel mohutnosti slovních tříd nejsou relevantní hodnoty, neboť většina slov ze slovníku se v trénovacích datech vůbec nevyskytuje. Uvažujme dále pro zjednodušení,ževšechnyslovnítřídymajístejnouvelikost 3 T.Přirozenávolbatéto konstantyjeprůměrnýpočetprvkůslovnítřídyavsekci6.3ukážeme,žejejí optimálníhodnotaseodprůměru 4 skutečněomnohoneliší.pravděpodobnost třídydáledoplnímeozmíněnou průměrnou velikostslovníchtřídavýsledný model poté bude upřednostňovat texty obsahující méně slov. 3 Topronašeslovnítřídyneplatí,aleumenšíchtřídsejejichvelikostpřílišnelišíaprovětší třídymámemocmálotrénovacíchdatktomu,abychomurčilijejich efektivní velikost. 4 Našeslovnítřídyobsahujíprůměrně205174řetězců. 16
21 Cenaslova w L vevětě[w 1,w 2,...,w L ]jerovna cena(w L w 1,...,w L 1 )=L log(p(t(w L ) T(w 1 ),...,T(w L 1 )))+D. Záporná konstanta L je zde kvůli jednodušší manipulaci s čísly. Její přesná hodnotanenípodstatná,alevolilijsme L = 20,cožumožňujecenyzaokrouhlit s malou relativní chybou a zacházet s nimi jako s přirozenými čísly. D jekonstantaodpovídajícíhodnotě L log( T ).Jevždynezáporná a nulová právě tehdy, když uvážíme slovní třídy jednotkové velikosti. O její volbě pohovoříme blíže v Sekci 6.3. Cenavěty[w 1, w 2,..., w L ]jerovna Cena([w 1,w 2,...,w L ])= L cena(w i w 1,...,w i 1 ). i=1 Budeme uvažovat, že levnější věty jsou pravděpodobnější. Pozn. Hodnota D toho v aktuálním smyslu již nemá mnoho společného s původním významem. Místo velikosti slovních tříd vyjadřuje penalizaci za každé další slovo použité ve větě. Bylo by tedy přirozenější uvažovat cenu slova bez hodnoty D a cenu věty ekvivalentně definovat jakosoučetcenslovzvětšenýosoučin L D.Proimplementačníúčelyapronávrhalgoritmu je ovšem jednodušší pracovat čistě se součtem cen. Proto se budeme držet původního návrhu a rozdělíme celkovou penalizaci rovnoměrně jednotlivým slovům, přestože to může být matoucí a neintuitivní. Zdaleka se nejedná o ideální model, ale jeho velkou výhodou je jednoduchost a předvídatelnost. Navíc je zbytek práce téměř nezávislý na tom, jaký model zvolíme a bylo by ho proto možné samostatně vylepšovat. 3.6 Využití znalosti aktuální polohy Mnohem lepších výsledků bychom mohli dosáhnout, pokud by dešifrátor využíval informaci o aktuální poloze a předpokládali bychom, že následující šifra nebude v příliš velké vzdálenosti. Vzhledem k tomu, že obvykle je k přesunům mezi stanovišti dovolena pouze chůze, jedná se o poměrně rozumný předpoklad. Dodatečná informace o stávající pozici značně omezí seznam geografických míst, která se mohou ve výsledku nacházet, a může výrazně zpřesnit řešení. Z vhodně naformátované mapy vybereme pouze ty pojmenované entity, které nejsou vzdušnou čarou vzdálenější než zadaná konstanta popsaná v Sekci 5.4. Znalost aktuální polohy by měla značně zvýšit přesnost jazykového modelu a eliminovat falešné výsledky navádějící například do desítky kilometrů vzdáleného města. 17
22 Kapitola 4 Algoritmus Předcházející kapitola jednoznačně popisuje, jak budeme odhadovat pravděpodobnost jednotlivých řešení. Dosud jsme ale vůbec nezmínili, jak řešení procházet a efektivně hledat ta kvalitnější. Možných přístupů je mnoho a i při tvorbě této práce jsme jich několik zvážili a některé zkusili implementovat. Nakonec se ale ukazuje jako nejvhodnější jeden z nejpřímočařejších algoritmů, který ve zbytku kapitoly podrobněji rozebereme. 4.1 Základní myšlenka Programnačtezadáníšifryasnažíseurčit,kteréslovobymohlobýtprvníve správném výsledku. Za tímto účelem vyzkouší všechny možnosti ze slovníku. Pro každou možnost zkusí pokračovat dále určením druhého slova. Zde bude nejspíše méně možností, neboť některá písmena jsou již přesně určena zvolením prvního slova. Takto algoritmus pokračuje a postupně prochází částečná řešení, dokud nenalezne nějaké řešení. Částečné řešení dané šifry je věta tvořená L písmeny taková, že existuje převodní tabulka, která překládá prvních L symbolů zadání šifry na větu. Jakoukázkuuvažmenásledujícízadání: 1 lavickauhvezdarny Částečnými řešeními této šifry jsou například věty:[lavicka],[lavicka, U, HVEZDARNY], nebo[dalsi]. Na druhou stranu věta[dalsi, SIFRA] ani [KRIZOVATKA]nejsoučástečnýmiřešeními 2 uvedenéšifry. Protože námi užívaný slovník obsahuje všechna jednotlivá písmena abecedy, můžeme částečné řešení ekvivalentně popsat tím, že ho lze doplnit slovy ze slovníku, aby vzniklo nějaké řešení dané šifry. Slovo S rozšiřuje částečné řešení R dané šifry, pokud po přidání slova S za větu R vznikne opět částečné řešení šifry. 1 Symbolyvtomtopřípaděvolímepronázornosttak,abyodpovídalysprávnémuřešeníšifry. Obyčejně to ale neplatí a stejné zadání by mohlo být popsáno např. uwzidvwptzebcwryq. 2 Vprvnímpříkladuseshoduječtvrtépísmenosšestým,cožodporujezadání,zatímcovdruhém se liší druhé písmeno od sedmého, což zadání šifry naopak vyžaduje. 18
23 Jedná se tedy v podstatě o backtracing stavovým prostorem všech možných částečných řešení. Takový postup má zřejmě exponenciální časovou složitost vzhledem k délce zadaného textu. Na první pohled to vypadá jako zásadní úskalí, ale přesto ukážeme, jak tuto velice jednoduchou myšlenku vylepšit a zdokonalit. Bude se jednat o kombinaci vhodné heuristiky, postupného prořezávání možností a efektivní implementace souvisejících primitiv. První vylepšení přináší následující pozorování. Pokud je cena částečného řešení větší nebo rovna ceně dosud nejlepšího nalezeného řešení, nemá smysl v prohledávání pokračovat. Snadno nahlédneme, že ceny všech slov jsou vždy kladné, a proto by cena dokončeného řešení byla větší než dosud nejlepšího nalezeného. Uvedené pozorování pomáhá značně prořezat neperspektivní větve prohledávání. 4.2 Vyhledávání rozšiřujícího slova K úspěšné a efektivní implementaci musíme nejprve navrhnout řešení následujícího algoritmicky zajímavého problému: Problém. Uvažujme částečné řešení R nějaké šifry. Nalezněte všechna slova, kterými je možné R rozšířit, tj. po rozšíření R vznikne částečné řešení té samé šifry. Přímočarým řešením problému by bylo vyzkoušet všechna slova ze slovníku aokaždémznichrozhodnout,zdavzniknečástečnéřešeníonéšifry(tedyzda je nové slovo v souladu s převodní tabulkou odpovídající částečnému řešení). Krátké částečné řešení lze obvykle rozšířit většinou slov ze slovníku, ale když se výpočet dostane k delšímu částečnému řešení, pak se popsaný neefektivní přístup stává úzkým hrdlem a kritickým bodem celého výpočtu. Přestože slov, kterými je možné částečné řešení rozšířit, je často pouze několik stovek, zkoušíme zbytečně miliony slov z celého slovníku. Efektivnější řešení problému budeme ilustrovat na příkladu. Uvažujme následující zadání šifry: fosjavpuajwgopuswzefw Jedním z jejich částečných řešení je: KONEC ULICE To odpovídá částečně vyplněné převodní tabulce: a -> C, f -> K, j -> E, o -> O, p -> L, s -> N, u -> I, v -> U Z toho plyne, že při rozšiřování částečného řešení musíme pokračovat slovem tvaru (rozšiřující slovo může být i kratší): wgolinwzekw Pokud si symboly přeznačíme malými písmeny anglické abecedy v přirozeném pořadí, dostaneme jednoznačný tvar bez ohledu na dosud použité symboly: 19
24 abolinacdka Jedním z možných rozšíření zkoumaného řešení je například slovo APOLINARSKA. Normalizované pokračování částečného řešení: Uvažme částečné řešení Rdanéšifry.OznačmepočetpísmenvRjako L.Nejprveprvních Lsymbolů ze zadání šifry nahradíme v celém zadání odpovídajícím překladem z převodní tabulky příslušící R. Zbylé nepřeložené symboly postupně přeznačímena a,b,c,...,podleprvníhovýskytuvupravenémzadání.když na závěr ze vzniklé posloupnosti vypustíme prvních L symbolů, dostáváme normalizované pokračování R. Dále zapišme všechna slova ve slovníku všemi možnými způsoby tak, aby se stačilo podívat na normalizované pokračování částečného řešení a abychom okamžitě věděli, kterými slovy lze částečné řešení rozšířit. Například slovem KROK můžeme rozšířit jedině to částečné řešení, jehož normalizované pokračování začíná jednou z následujících osmi možností: KROK KRaK KaOK KabK aroa arba aboa abca Podobně můžeme ke každému slovu ze slovníku vygenerovat všechny varianty, kterých je 2 početrůznýchpísmenvdanémslově. Varianta slova S délky L je posloupnost symbolů a písmen abecedy délky L, pro kterou existuje šifra a její částečné řešení R takové, že normalizované pokračování R začíná přesně členy této posloupnosti. Variantkaždéhoslovabysicemohlomítslovoteoretickyaž2 26,aleslovaze slovníku obsahují průměrně pouze 7,7 různých písmen. Dále uložíme všechny varianty všech slov do struktury známé pod pojmem trie. Obrázek 4.1 znázorňuje trii vytvořenou ze všech variant slov KROK a KE. Dále je na něm vyznačená cesta, kterou by algoritmus prošel při hledání rozšířujících slov k již diskutovanému normalizovanému pokračování abolinacdka. Pro tento omezený slovník obsahující pouze dvě slova vyhledávání skončí ve vrcholu abo, zatímco normálně bychom dále pokračovali do vrcholu abol. Vybudování struktury trie vyžaduje lineární čas vzhledem k souhrnné délce všech vkládaných řetězců a je tedy velice efektivní. Navíc si u každého vrcholu trie budeme udržovat seznam slov, které jsou tímto vrcholem reprezentovány. Předpokládejme, že máme částečné řešení a zajímalo by nás nyní, jakými slovy ho lze rozšířit. Budeme přímočaře postupovat v dosud nerozluštěné části 20
25 zadání, používat známé překlady a neznámé symboly postupně indexovat malými písmeny anglické abecedy, čímž vlastně dostaneme normalizované pokračování částečného řešení. Spolu s tím se budeme pohybovat jedním ukazatelem po trii. Po každém přečteném symbolu se můžeme posunout také v trii do příslušného vrcholu. Všechna slova, která jsou u aktuálního vrcholu, mohou teoreticky rozšiřovat zkoumané částečné řešení. Průchod končí pokud se dostaneme na konec normalizovaného pokračování částečného řešení, nebo když z aktuálního vrcholu v trii nevede požadovaná hrana. E KE O KE KRO K KROK KROK R KR a KRa K KRaK KROK K K a Ka O b KE KaO K KaOK KROK a Kab K KabK KROK E ae KE a R b ar O b aro arb a a aroa arba KROK KROK ab O c KE abo a aboa KROK abc a abca KROK Obrázek 4.1: Trie obsahující všechny varianty slov KROK a KE Tímto způsobem značně omezíme množinu kandidátů na rozšiřující slovo. Navíc se jedná o efektivní operaci, která spotřebuje pouze lineární množství času vzhledem k maximální délce z vrácených slov a k jejich počtu. Ukazuje se, že krátká slova nejsou problém, ale dlouhá slova s mnoha různými písmeny mohou mít hodně variant a spotřebují neúměrně mnoho paměti. Je tedy potřeba nastavit nějakou hranici pro počet písmen ve slově, dokdy jsme ochotni generovat všechny varianty. Naštěstí pro dlouhá slova se již mnohem lépe zapojí efekt,kdyjsouveslověalespoňdvěstejnápísmenaapasujískutečněpouzeta slova, která vykazují velkou shodu. Pro dlouhá slova tedy uvažujeme pouze va- 21
26 riantu složenou výhradně ze symbolů. Velmi jednoduchá modifikace popsaného algoritmu si poradí i s tímto případem, pouze omezuje množinu kandidátů o něco méně. 4.3 Pořadí zkoušených slov Uvažujme nyní částečné řešení nějaké šifry a seznam všech slov, které jej rozšiřují. Ideálně bychom chtěli nejprve pokračovat tím slovem, které nejspíše povede k nejlepšímu řešení. Pro průběh celého výpočtu může být zcela zásadní, kterým slovem se rozhodneme pokračovat. Jelikož pro každé slovo již známe podmíněnou pravděpodobnost, se kterou se na zkoumaném místě bude nacházet, zdá se být přirozené uspořádat slova sestupně podle této pravděpodobnosti. Když ale budeme vybírat velice krátká slova, budeme jich na vyplnění celého řešení potřebovat mnoho a přestože jednotlivá slova mají poměrně vysokou pravděpodobnost, může jejich součin být ve výsledku mnohem menší než při použití jednoho dlouhého slova s trochu nižší pravděpodobností. Nabízí se možnost slova uspořádat sestupně podle jejich délek. To bychom ale zase vůbec nebrali v úvahu jejich pravděpodobnost a preferovali bychom velmi nepravděpodobné slovo například s patnácti písmeny před mnohem pravděpodobnějším slovem obsahujícím jen čtrnáct písmen. Délka slova v tomto příkladu zřejmě není zásadní a velký rozdíl pravděpodobností může být mnohem důležitější. Všechno zatím směřuje k tomu, že optimální heuristika bude někde mezi těmito extrémy. Bude potřeba nějak vhodně zkombinovat délku slova a pravděpodobnost, že jím bude řešení pokračovat. Dokonce i naše experimenty ukazovaly, že kombinace těchto hodnot, kterou jsme intuitivně vyzkoušeli, dávala mnohem lepší výsledky než předcházející dvě možnosti. Zkusme nyní formálněji dospět ke stejnému výsledku, který jsme zatím jen intuitivněodhadliaexperimentálněověřili.uvažujmevětu[w 1,w 2,...,w S ].Pro každé i {1,2,...,S}označmenyní p i = p(w i w 1,w 2,...w i 1 )al i = R(w i ) (početpísmenveslově w i ). Lemma.Rozdělíme-liprokaždé i {1,2,...,S}slovo w i najednotlivápísmena atěmvšempřiřadímepravděpodobnosti l i pi,potompravděpodobnostpůvodní věty bude shodná s pravděpodobností nově vytvořené věty. Uvedené lemma dokážeme snadno tím, že spočteme pravděpodobnost věty jako součin pravděpodobností jednotlivých slov a pravděpodobnosti písmen i- téhoslovapoumocněnína l i -toudávajíopětpravděpodobnostceléhoslova. Dále si všimněme, že každé kompletní řešení zadané šifry má stejný počet písmen. Když částečné řešení rozšiřujeme novým slovem, díky zmíněnému lemmatu se nabízí, že bychom měli vybrat takové slovo, které svým písmenům dává co největší pravděpodobnost a maximalizuje tedy hodnotu délka(slovo) pravděpodobnost(slovo). Jelikož je funkce logaritmus rostoucí, chceme maximalizovat také hodnotu ( log délka(slovo) ) pravděpodobnost(slovo) = log(pravděpodobnost(slovo)). délka(slovo) 22
27 Uchýlíme-li se ke stejnému zjednodušení jako v Sekci 3.5, dostáváme, že se snažíme minimalizovat cena(slovo) délka(slovo). Podařilo se nám vhodně zkombinovat požadavek na délku a pravděpodobnost slova a dospět k této heuristice posloupností logických úvah. Jedná se sice stále pouze o hladovou heuristiku, neboť vybráním takového slova, které maximalizuje pravděpodobnost svých písmen, se můžeme snadno dostat do stavu, kdy nebude možné pokračovat žádným výhodným slovem. 4.4 Postupné prořezávání možností Obzvláště na dlouhých šifrách dosud popsaný algoritmus málokdy stihne projítvšechnymožnostiačastodokoncepouzezvolíprvnídvěslovaazbytekčasu tráví neperspektivním hledáním optimálního řešení pro tento podproblém. Čas vyhrazený k výpočtu rozdělíme na k kroků, abychom ho využili efektivněji. Rozdělení časového intervalu není rovnoměrné, ale pozdější kroky mají vyhrazený větší úsek. Délka úseků roste lineárně s druhou mocninou čísla kroku. V prvním kroku necháme algoritmus prohledávat částečná řešení bez omezení. V kroku i > 1 postupuje algoritmus normálně pro částečná řešení obsahující méněnež k i+1slov.proostatníčástečnářešeníuvažujevždyjenprvníslovo ze seznamu rozšiřujících slov. Procházený stavový prostor se tedy větví jen na prvních k i+1úrovníchrekurzeapotéjejižlineární.využitímtohotopostupu sevyhneme zaseknutí algoritmuvevětvivýpočtu,kdestrávívšechenvymezený čas. 4.5 Dvě fáze výpočtu Čím nižší cenu má dosud nejlevnější nalezené řešení, tím rychleji algoritmus pokračuje. Neztrácí poté čas procházením neperspektivních větví výpočtu, o kterých již ví, že nepovedou k levnějšímu řešení. Z tohoto důvodu na začátku výpočtu rychle prozkoumáme mnoho různorodých řešení, což nám dá lepší odhad na hledanou cenu. Rozdělíme průběh výpočtu na dvě fáze: 1. fáze prochází všechna slova, kterými může zpráva začínat. Pro každé z nich algoritmus pokračuje hladově a vždy vezme první rozšiřující slovo podle heuristiky popsané v Sekci fáze je totožná s dosud popisovaným algoritmem, ale začíná s již předpočítanou množinou nalezených řešení z 1. fáze. První fáze výpočtu je poměrně rychlá a má zaručenou lineární časovou složitost vzhledem k délce zadání. Není potřeba pro ni stanovit žádný časový limit, neboť i pro extrémně dlouhé šifry trvá její běh nejvýše několik minut. Naopak druhá fáze může být až exponenciální a musíme ji tedy časově omezit. VSekci6.3hovořímeotom,jakélimityjsmevolili. 23
28 Kapitola 5 Dokumentace 5.1 Kompilace programu K přeložení automatického dešifrátoru slouží přiložený Makefile. Bližší technické infromace jsou dostupné v souboru README. Program Verze Komentář gcc sh 3.2 potřeba k zašifrování trénovacích dat python nutné k používání dalších nástrojů(viz 5.5) Tabulka 5.1: Seznam potřebných programů 5.2 Uživatelská dokumentace Po spuštění program přečte jediný řádek ze standardního vstupu. Dále z něj vypustí všechny znaky kromě malých a velkých písmen anglické abecedy. Ta jsou poté převedena na malá písmena a chápána jako zadání šifry. Program nijak nezohledňuje použité symboly a využívá tento vstup pouze pro informaci o tom, které symboly jsou stejné, a které různé. Dešifrátor má dva nepovinné argumenty: zeměpisnou šířku a zeměpisnou délku. Zadávají se jako desetinná čísla a pokud nejsou zadány přesně dva argumenty, nebo když jsou v zadány chybném formátu, ignorují se. Popsané zeměpisné souřadnice vyjadřují aktuální polohu řešitele a omezují vyhledávání řešení pouze na okruh několika kilometrů od zadaného místa. Taková znalost může zásadně zrychlit celý výpočet a umožnit aplikaci dospět k mnohem přesnějším výsledkům. Výstupemprogramujedeset 1 řešenízadanéšifry,okterýchprogramusoudí, že jsou nejpravděpodobnější. Společně s každým řešením dešifrátor vypíše jeho celkovou cenu. Obrázek 5.1 ukazuje jak vypadá výstup dešifrátoru na příkladu z Kapitoly 1. Jelikož je správné řešení jediný název ulice, není překvapivé, že je toto řešení nalezeno jako první, ale přesto je potěšující, že alespoň nějaká reálná substituční šifra lze vytvořeným programem rozluštit. Čísla vedle jednotlivých řešení jsou ceny výsledných vět. 1 Případněnějakájinákonstantanastavenávkonfiguračnímsouboru. 24
Vzdálenost jednoznačnosti a absolutně
Vzdálenost jednoznačnosti a absolutně bezpečné šifry Andrew Kozlík KA MFF UK Značení Pracujeme s šifrou (P, C, K, E, D), kde P je množina otevřených textů, C je množina šifrových textů, K je množina klíčů,
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
VÝBĚR A JEHO REPREZENTATIVNOST
VÝBĚR A JEHO REPREZENTATIVNOST Induktivní, analytická statistika se snaží odhadnout charakteristiky populace pomocí malého vzorku, který se nazývá VÝBĚR neboli VÝBĚROVÝ SOUBOR. REPREZENTATIVNOST VÝBĚRU:
STATISTICKÉ ODHADY Odhady populačních charakteristik
STATISTICKÉ ODHADY Odhady populačních charakteristik Jak stanovit charakteristiky rozložení sledované veličiny v základní populaci? Populaci většinou nemáme celou k dispozici, musíme se spokojit jen s
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
Univerzita Karlova v Praze
Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE 2011 Jonáš Bujok Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁŘSKÁ PRÁCE Jonáš Bujok Nástroj pro převod PDF na
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
7. Rozdělení pravděpodobnosti ve statistice
7. Rozdělení pravděpodobnosti ve statistice Statistika nuda je, má však cenné údaje, neklesejte na mysli, ona nám to vyčíslí Jednou z úloh statistiky je odhad (výpočet) hodnot statistického znaku x i,
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
Jednofaktorová analýza rozptylu
I I.I Jednofaktorová analýza rozptylu Úvod Jednofaktorová analýza rozptylu (ANOVA) se využívá při porovnání několika středních hodnot. Často se využívá ve vědeckých a lékařských experimentech, při kterých
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
Vrcholová barevnost grafu
Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové
Testování statistických hypotéz. Ing. Michal Dorda, Ph.D.
Testování statistických hypotéz Ing. Michal Dorda, Ph.D. Testování normality Př. : Při simulaci provozu na křižovatce byla získána data o mezerách mezi přijíždějícími vozidly v [s]. Otestujte na hladině
Automatická segmentace slov s pomocí nástroje Affisix. Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz
Automatická segmentace slov s pomocí nástroje Affisix Michal Hrušecký, Jaroslava Hlaváčová Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz Motivace Při zpracování přirozeného jazyka nikdy nemůžeme mít
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Přednáška 3: Limita a spojitost
3 / 1 / 17, 1:38 Přednáška 3: Limita a spojitost Limita funkce Nejdříve je potřeba upřesnit pojmy, které přesněji popisují (topologickou) strukturu množiny reálných čísel, a to zejména pojem okolí 31 Definice
1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:
Opakování středoškolské matematiky Slovo úvodem: Tato pomůcka je určena zejména těm studentům presenčního i kombinovaného studia na VŠFS, kteří na středních školách neprošli dostatečnou průpravou z matematiky
Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Dokumentace programu piskvorek
Dokumentace programu piskvorek Zápočtového programu z Programování II PRM045 Ondřej Vostal 20. září 2011, Letní semestr, 2010/2011 1 Stručné zadání Napsat textovou hru piškvorky se soupeřem s umělou inteligencí.
Přístupnost webů knihoven příklady dobré a špatné praxe. Radek PAVLÍČEK, TyfloCentrum Brno, o. p. s., projekt Blind Friendly Web
Přístupnost webů knihoven příklady dobré a špatné praxe Radek PAVLÍČEK, TyfloCentrum Brno, o. p. s., projekt Blind Friendly Web Máte rádi CAPTCHA? Líbila by se vám takto prezentovaná stránka vaší knihovny?
Naproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze
Dobývání znalostí Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Dobývání znalostí Pravděpodobnost a učení Doc. RNDr. Iveta Mrázová,
Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.
Přednáška č. 1 Úvod do statistiky a počtu pravděpodobnosti Statistika Statistika je věda a postup jak rozvíjet lidské znalosti použitím empirických dat. Je založena na matematické statistice, která je
Jana Vránová, 3. lékařská fakulta UK
Jana Vránová, 3. lékařská fakulta UK Vznikají při zkoumání vztahů kvalitativních resp. diskrétních znaků Jedná se o analogii s korelační analýzou spojitých znaků Přitom předpokládáme, že každý prvek populace
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
3. Reálná čísla. většinou racionálních čísel. V analytických úvahách, které praktickým výpočtům
RACIONÁLNÍ A IRACIONÁLNÍ ČÍSLA Význačnými množinami jsou číselné množiny K nejvýznamnějším patří množina reálných čísel, obsahující jako podmnožiny množiny přirozených, celých, racionálních a iracionálních
Markovské metody pro modelování pravděpodobnosti
Markovské metody pro modelování pravděpodobnosti rizikových stavů 1 Markovský řetězec Budeme uvažovat náhodný proces s diskrétním časem (náhodnou posloupnost) X(t), t T {0, 1, 2,... } s konečnou množinou
5. Lokální, vázané a globální extrémy
5 Lokální, vázané a globální extrémy Studijní text Lokální extrémy 5 Lokální, vázané a globální extrémy Definice 51 Řekneme, že f : R n R má v bodě a Df: 1 lokální maximum, když Ka, δ Df tak, že x Ka,
6 Ordinální informace o kritériích
6 Ordinální informace o kritériích Ordinální informací o kritériích se rozumí jejich uspořádání podle důležitosti. Předpokládejme dále standardní značení jako v předchozích cvičeních. Existují tři základní
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce
13. cvičení z PSI ledna 2017
cvičení z PSI - 7 ledna 07 Asymptotické pravděpodobnosti stavů Najděte asymptotické pravděpodobnosti stavů Markovova řetězce s maticí přechodu / / / 0 P / / 0 / 0 0 0 0 0 0 jestliže počáteční stav je Řešení:
Úloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření. Jan Krystek
EXPERIMENTÁLNÍ MECHANIKA 2 Přednáška 5 - Chyby a nejistoty měření Jan Krystek 9. května 2019 CHYBY A NEJISTOTY MĚŘENÍ Každé měření je zatíženo určitou nepřesností způsobenou nejrůznějšími negativními vlivy,
NÁHODNÁ ČÍSLA. F(x) = 1 pro x 1. Náhodná čísla lze generovat některým z následujících generátorů náhodných čísel:
NÁHODNÁ ČÍSLA TYPY GENERÁTORŮ, LINEÁRNÍ KONGRUENČNÍ GENERÁTORY, TESTY NÁHODNOSTI, VYUŽITÍ HODNOT NÁHODNÝCH VELIČIN V SIMULACI CO JE TO NÁHODNÉ ČÍSLO? Náhodné číslo definujeme jako nezávislé hodnoty z rovnoměrného
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
Obsah přednášky Jaká asi bude chyba modelu na nových datech?
Obsah přednášky Jaká asi bude chyba modelu na nových datech? Chyba modelu Bootstrap Cross Validation Vapnik-Chervonenkisova dimenze 2 Chyba skutečná a trénovací Máme 30 záznamů, rozhodli jsme se na jejich
Rozdělování dat do trénovacích a testovacích množin
Rozdělování dat do trénovacích a testovacích množin Marcel Jiřina Rozpoznávání je důležitou metodou při zpracování reálných úloh. Rozpoznávání je definováno dvěma kroky a to pořízením dat o reálném rozpoznávaném
63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.
Generování pseudonáhodných čísel při simulaci Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky V simulačních modelech se velice často vyskytují náhodné proměnné. Proto se budeme zabývat otázkou, jak při simulaci
Lineární programování
Lineární programování Petr Tichý 19. prosince 2012 1 Outline 1 Lineární programování 2 Optimalita a dualita 3 Geometrie úlohy 4 Simplexová metoda 2 Lineární programování Lineární program (1) min f(x) za
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Úlohy nejmenších čtverců
Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.
Pravděpodobnost a její vlastnosti
Pravděpodobnost a její vlastnosti 1 Pravděpodobnost a její vlastnosti Náhodné jevy Náhodný jev je výsledek pokusu (tj. realizace určitého systému podmínek) a jeho charakteristickým rysem je, že může, ale
Lingebraické kapitolky - Analytická geometrie
Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V
5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
Zápočtový projekt předmětu Robotizace a řízení procesů
Zápočtový projekt předmětu Robotizace a řízení procesů Zpracovali: Vladimír Doležal, Jiří Blažek Projekt: Robot stopař Cíl projektu: Robot sleduje černou čáru na povrchu, po kterém jede Datum: duben 2015
Hledání v textu algoritmem Boyer Moore
Zápočtová práce z Algoritmů a Datových Struktur II (NTIN061) Hledání v textu algoritmem Boyer Moore David Pěgřímek http://davpe.net Algoritmus Boyer Moore[1] slouží k vyhledání vzoru V v zadaném textu
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Úvod do teorie informace
PEF MZLU v Brně 24. září 2007 Úvod Výměna informací s okolím nám umožňuje udržovat vlastní existenci. Proces zpracování informací je trvalý, nepřetržitý, ale ovlivnitelný. Zabezpečení informací je spojeno
V této kapitole si zobecníme dříve probraný pojem limita posloupnosti pro libovolné funkce.
Kapitola 7 Limita funkce V této kapitole budeme studovat pojem ita funkce, který lze zařadit mezi základní pojmy matematiky, speciálně pak matematické analýzy Využití ity funkce je široké Pomocí ity lze
příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.
Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl
1 Soustavy lineárních rovnic
1 Soustavy lineárních rovnic 1.1 Základní pojmy Budeme uvažovat soustavu m lineárních rovnic o n neznámých s koeficienty z tělesa T (potom hovoříme o soustavě m lineárních rovnic o n neznámých nad tělesem
Numerická stabilita algoritmů
Numerická stabilita algoritmů Petr Tichý 9. října 2013 1 Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
12. Lineární programování
. Lineární programování. Lineární programování Úloha lineárního programování (lineární optimalizace) je jedním ze základních problémů teorie optimalizace. Našim cílem je nalézt maximum (resp. minimum)
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...
Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Jana Vránová, 3.lékařská fakulta UK, Praha. Hypotézy o populacích
Jana Vránová, 3.lékařská fakulta UK, Praha Hypotézy o populacích Příklad IQ test: Předpokládejme, že z nějakého důvodu ministerstvo školství věří, že studenti absolventi středních škol v Hradci Králové
StatSoft Jak vyzrát na datum
StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek
Zadání druhého zápočtového projektu Základy algoritmizace, 2005
Zadání druhého zápočtového projektu Základy algoritmizace, 2005 Jiří Dvorský 2 května 2006 Obecné pokyny Celkem je k dispozici 8 zadání příkladů Každý student obdrží jedno zadání Vzhledem k tomu, že odpadly
Úlohy krajského kola kategorie C
67. ročník matematické olympiády Úlohy krajského kola kategorie C 1. Najděte nejmenší přirozené číslo končící čtyřčíslím 2018, které je násobkem čísla 2017. 2. Pro celá čísla x, y, z platí x 2 + y z =
Zavedení a vlastnosti reálných čísel
Zavedení a vlastnosti reálných čísel jsou základním kamenem matematické analýzy. Konstrukce reálných čísel sice není náplní matematické analýzy, ale množina reálných čísel R je pro matematickou analýzu
Formální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
1. Toky, řezy a Fordův-Fulkersonův algoritmus
1. Toky, řezy a Fordův-Fulkersonův algoritmus V této kapitole nadefinujeme toky v sítích, odvodíme základní věty o nich a také Fordův-Fulkersonův algoritmus pro hledání maximálního toku. Také ukážeme,
2. Numerické výpočty. 1. Numerická derivace funkce
2. Numerické výpočty Excel je poměrně pohodlný nástroj na provádění různých numerických výpočtů. V příkladu si ukážeme možnosti výpočtu a zobrazení diferenciálních charakteristik analytické funkce, přičemž
Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto
Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT
Kdy se narodil... Vypracovali: Mrkývka Vojtěch, Mrázek Ondřej, Novotná Marie. Předmět: PLIN08 Projekty II. Semestr: Jaro 2015
Kdy se narodil... Vypracovali: Mrkývka Vojtěch, Mrázek Ondřej, Novotná Marie Předmět: PLIN08 Projekty II Semestr: Jaro 2015 Vedoucí projektu: Mgr. Marek Grác, Ph.D. Úkolem tohoto projektu bylo vytvořit
Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018
Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání 6. dubna 2018 První verze Obecné pokyny 1. Celkem jsou k dispozici tři zadání příkladů. 2.
Univerzita Pardubice. Fakulta chemicko-technologická Katedra analytické chemie. Licenční studium Statistické zpracování dat
Univerzita Pardubice Fakulta chemicko-technologická Katedra analytické chemie Licenční studium Statistické zpracování dat Semestrální práce Interpolace, aproximace a spline 2007 Jindřich Freisleben Obsah
South Bohemia Mathematical Letters Volume 23, (2015), No. 1, DĚLENÍ KRUHU NA OBLASTI ÚVOD
South Bohemia Mathematical Letters Volume 23, (2015), No. 1, 113-122. DĚLENÍ KRUHU NA OBLASTI MAREK VEJSADA ABSTRAKT. V textu se zabývám řešením následujícího problému: Zvolíme na kružnici určitý počet
Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n
[1] Základní pojmy [2] Matice mezi sebou sčítáme a násobíme konstantou (lineární prostor) měníme je na jiné matice eliminační metodou násobíme je mezi sebou... Matice je tabulka čísel s konečným počtem
10. Soustava lineárních rovnic - substituční metoda
@112 10. Soustava lineárních rovnic - substituční metoda Jedna z metod, která se používá při řešení soustavy lineárních rovnic, se nazývá substituční. Nejlépe si metodu ukážeme na příkladech. Příklad:
Statistická teorie učení
Statistická teorie učení Petr Havel Marek Myslivec přednáška z 9. týdne 1 Úvod Představme si situaci výrobce a zákazníka, který si u výrobce objednal algoritmus rozpoznávání. Zákazník dodal experimentální
CVIČNÝ TEST 5. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19
CVIČNÝ TEST 5 Mgr. Václav Zemek OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST 1 Zjednodušte výraz (2x 5) 2 (2x 5) (2x + 5) + 20x. 2 Určete nejmenší trojciferné
Popisná statistika kvantitativní veličiny
StatSoft Popisná statistika kvantitativní veličiny Protože nám surová data obvykle žádnou smysluplnou informaci neposkytnou, je žádoucí vyjádřit tyto ve zhuštěnější formě. V předchozím dílu jsme začali
A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Matematika 3 Ročník: 8. 4 Klíčové kompetence. Opakování 7.
A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Matematika 3 Ročník: 8. 4 Klíčové kompetence Výstupy Učivo Průřezová témata Evaluace žáka Poznámky (Dílčí kompetence) 5 Kompetence
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
Nerovnice, grafy, monotonie a spojitost
Nerovnice, grafy, monotonie a spojitost text pro studenty Fakulty přírodovědně-humanitní a pedagogické TU v Liberci vzniklý za podpory fondu F Martina Šimůnková 29. prosince 2016 1 Úvod Na druhém stupni
Příklad 1. Řešení 1a Máme vyšetřit lichost či sudost funkce ŘEŠENÉ PŘÍKLADY Z M1A ČÁST 3
Příklad 1 Zjistěte, zda jsou dané funkce sudé nebo liché, případně ani sudé ani liché: a) =ln b) = c) = d) =4 +1 e) =sin cos f) =sin3+ cos+ Poznámka Všechny tyto úlohy řešíme tak, že argument funkce nahradíme
Normální (Gaussovo) rozdělení
Normální (Gaussovo) rozdělení Normální (Gaussovo) rozdělení popisuje vlastnosti náhodné spojité veličiny, která vzniká složením různých náhodných vlivů, které jsou navzájem nezávislé, kterých je velký
Přijímací zkouška na MFF UK v Praze
Přijímací zkouška na MFF UK v Praze pro bakalářské studijní programy fyzika, informatika a matematika 017, varianta A U každé z deseti úloh je nabízeno pět odpovědí: a, b, c, d, e. Vaším úkolem je u každé
Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Vyhledávání v textu doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 9. března 209 Jiří Dvorský (VŠB TUO) Vyhledávání v textu 402
A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Matematika 3 Ročník: 8. 4 Klíčové kompetence. Opakování 7.
A B C D E F 1 Vzdělávací oblast: Matematika a její aplikace 2 Vzdělávací obor: Matematika 3 Ročník: 8. 4 Klíčové kompetence Výstupy Učivo Průřezová témata Evaluace žáka Poznámky (Dílčí kompetence) 5 Kompetence
kryptosystémy obecně další zajímavé substituční šifry klíčové hospodářství kryptografická pravidla Hillova šifra Vernamova šifra Knižní šifra
kryptosystémy obecně klíčové hospodářství klíč K, prostor klíčů T K kryptografická pravidla další zajímavé substituční šifry Hillova šifra Vernamova šifra Knižní šifra klíč K různě dlouhá posloupnost znaků
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,
Příklad 1 Najděte body, v nichž má funkce (,) vázané extrémy, případně vázané lokální extrémy s podmínkou (,)=0, je-li: a) (,)= + 1, (,)=+ 1 lok.max.v 1 2,3 2 b) (,)=+, (,)= 1 +1 1 c) (,)=, (,)=+ 1 lok.max.v
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
Matematická analýza pro informatiky I. Limita posloupnosti (I)
Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz
Jak vyhledávat. Vyhledávače KAPITOLA 3
KAPITOLA 3 Jak vyhledávat Už víme, jak zacházet s programem Microsoft Internet Explorer, a můžeme se pustit do surfování. Ostatně, stejně jsme to při seznamování s funkcemi programu chtíce nechtíce dělali.