Dynamic programming. Historie. Dynamické programování je obsaženo v těchto programech: Příklad: chceme optimálně přiložit dvě sekvence

Podobné dokumenty
Dynamické programování UIN009 Efektivní algoritmy 1

PSANÍ VZORCŮ A ROVNIC

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Třídy složitosti P a NP, NP-úplnost

IB112 Základy matematiky

OPTIMÁLNÍ SEGMENTACE DAT

1 Úvod do celočíselné lineární optimalizace

(Cramerovo pravidlo, determinanty, inverzní matice)

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel II Anotace:

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Pracovní prostředí Excel 2010

Zpětnovazební učení Michaela Walterová Jednoocí slepým,

Návrh Designu: Radek Mařík

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Prohledávání do šířky = algoritmus vlny

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Zapsání zkoušky. 3. Nyní vyberte ze základní nabídky možnost Zkušební zpráva, přes kterou probíhá zadávání hodnocení.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_03_IVT_MSOFFICE_02_Excel

Gabriela Janská. Středočeský vzdělávací institut akademie J. A. Komenského

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

Připomenutí co je to soustava lineárních rovnic

Moravské gymnázium Brno s.r.o.

Aktivní detekce chyb

7. přednáška Systémová analýza a modelování. Přiřazovací problém

Content Aware Image Resizing

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

Obr. P1.1 Zadání úlohy v MS Excel

Karnaughovy mapy. Pravdivostní tabulka pro tři vstupní proměnné by mohla vypadat například takto:

Operační výzkum. Přiřazovací problém.

Střední odborná škola a Střední odborné učiliště, Hořovice

Kombinované úlohy - cvičení

8. Formátování. Úprava vzhledu tabulky

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25

Komentář k datovému standardu a automatizovaným kontrolám obsahu F_OBL_RV

ALGORITMY A DATOVÉ STRUKTURY

Co je obsahem numerických metod?

12. Lineární programování

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Sada 2 Microsoft Word 2007

Podrobný postup pro vygenerování a zaslání Žádosti o dotaci přes Portál Farmáře. v Operaci

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Microsoft Excel kopírování vzorců, adresování, podmíněný formát. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Matematika 2 pro PEF PaE

Binární soubory (datové, typované)

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vánoční turnaj GP Praha 2012

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

5 Rekurze a zásobník. Rekurzivní volání metody

2. úkol MI-PAA. Jan Jůna (junajan)

Grafové algoritmy. Programovací techniky

Transformace souřadnic

Úlohy nejmenších čtverců

Cvičení 5 - Inverzní matice

JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT4

0.1 Úvod do lineární algebry

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:

Neuronové časové řady (ANN-TS)

Rozpoznávání izolovaných slov (malý slovník, např. číslovky, povely).

Klávesnice je vstupní zařízení určené pro zadávání písmen, znaků, speciálních symbolů a také pro ovládání počítače.

MS EXCEL 2010 ÚLOHY. Vytvořte tabulku podle obrázku, která bude provádět základní matematické operace se dvěma zadanými čísly a a b.

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

(Úlohy z MO kategorie P, 32. část)

Aplikovaná numerická matematika - ANM

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Metody výběru variant

Tisk vysvědčení pro třídní učitele

Algebrogramy. PaedDr. Libuše Sekaninová Martin Blahák (grafická úprava)

Kapitola 11: Formuláře 151

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Rozhodovací procesy 8

Vkládání prvků do dokumentu MS Word

Postup: Nejprve musíme vyplnit tabulku. Pak bude vypadat takto:

I. ÚVOD II. ROZSAH OHLAŠOVACÍ POVINNOSTI III. OBECNÉ P

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

František Hudek. duben Informační a komunikační technologie MS Excel Úvod do Excelu II. Základy práce s listy a buňkami.

Výběr báze. u n. a 1 u 1

Algoritmizace prostorových úloh

Základní škola Hluk výukové texty MS Word 2007

OpenOffice Writer, zkratkové klávesy (výběr) Vytvořil: Mgr. et Mgr. Martin Hladký, Ph.D. Datum: 9. ledna

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

2. Cvičení Formáty dat, jednoduché vzorce

2. ZÁKLADY MATICOVÉ ALGEGRY 2.1. ZÁKLADNÍ POJMY

Formátování dat EU peníze středním školám Didaktický učební materiál

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Základy programování (IZP)

Implementace LL(1) překladů

AutoCAD definice bloku

Zápis průběžné klasifikace do školního evidenčního programu BAKALÁŘI (s vystavením klasifikace na webu pro rodiče)

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

9 Kolmost vektorových podprostorů

4EK213 Lineární modely. 10. Celočíselné programování

Úvod do logiky (VL): 4. Zjištění průběhu pravdivostních hodnot formule tabulkovou metodou

Relativní a absolutní adresa buňky, pojmenování buňky/rozsahu

Návod jak žádat o dotace pro neorganizovanou mládež

Výpočet pravděpodobností

VY_32_INOVACE_In 6.,7.10. Tvorba tabulky

Transkript:

Dynamic programming Dynamické programování je obsaženo v těchto programech: BLS FS lustalw HMMER enscan MFold Phylip Historie 9s matematik Richard Bellman při optimalizaci rozhodovacích procesů chtěl zmást ministra obrany harlese Wilsona, o kterém bylo známo, že nemá rád matematický výzkum (a matematiky samotné). Dynamické (časové řady) programování (ve smyslu plánování). ěžko lze použít dynamický v pejorativním smyslu. Příklad: chceme optimálně přiložit dvě sekvence lobální přiložení dle Needleman - Wunsch Máme dvě sekvence a. hceme co nejlépe přiložit jednu ke druhé. Jsou homologní? Jaké je podobnostní skóre? Počet možných přiložení sekvencí o délce N: dvě sekvence o délce : 9 přiložení není praktické srovnávat všechna přiložení. N πn -- -- -- --- - Matematická formalizace:. sekvence Sekvence x o délce M Na i-té pozici sekvence x je nukleotid x i Např.: M=, i=( až ) x x x x x x Matematická formalizace:. sekvence Sekvence y o délce N Na j-té pozici sekvence y je nukleotid y j Např.: N=, j=( až ) y y y y y y y y

Matematická formalizace: skórovací matice σ jako (pod)skóre σ(a,b) pro přiložení dvou nukleotidů x i a y j jeden ke druhému, např.: pro shodu+, pro neshodu -, pro mezeru -, pokuta, značka γ. Důležitý pojem: řešení podproblémů Při přiložení se díváme na lokální hodnoty skóre Přiložení Přiložení k je ukončeno, pokud při procházení sekvencí dojdeme od začátku na konec nebo od konce na začátek pokud poslední nukleotid sekvence x má přiložen odpovídající nukleotid (mezeru) sekvence y a poslední nukleotid sekvence y má přiložen odpovídající nukleotid (mezeru) sekvence x. Ukončená přiložení -- -- -- --- - elkové skóre Skóre posledního nukleotidu v přiložení je skóre celého přiložení. Části dynamického programování ) Rekurzivní (návratová) definice optimálního skóre. ) Matice pro uložení optimálních skóre podproblémů. ) Vyplnění matice od základů. ) Zpětný průchod maticí.

) Rekurzivní definice optimálního skóre neb: jak se odvoláváme na předchozí Podíváme se na pravý konec sekvence. Přiložení může končit třemi způsoby: a) nukleotidy x M (x ) a y N (y ) jsou zarovnané... definice optimálního skóre b) nukleotid x M (x ) je zarovnaný oproti mezeře, y N (y ) je na předposledním (nebo ještě dřívějším) místě přiložení.... definice optimálního skóre c) nukleotid y N (y ) je zarovnaný oproti mezeře; x M (x ) je na předposledním (nebo ještě dřívějším) místě. Výpočet skóre S(i, j) je skóre optimálního přiložení sekvence s nukleotidy x x i k sekvenci s nukleotidy y y j Př.: S(,) pro sekvenci x až x k sekvenci y až y Optimální přiložení je ten ze tří způsobů, který dává nejvyšší skóre. a) S(M, N)= σ(x M, y N ) + S(M-, N-) K výpočtu skóre při zarovnání posledního nukleotidu sekvence x s posledním nukleotidem sekvence y potřebuji znát nejenom skóre pro poslední dvojici nukleotidů σ(x M, y N ), ale i skóre pro zarovnání předposledního (M-) nukleotidu sekvence x spředposledním (N-) nukleotidem sekvence y. Př.: S(, )=σ(x, y )+S(,) b) S(M, N)= γ + S(M-, N) K výpočtu skóre při posledním nukleotidu sekvence x přesahujícím poslední nukleotid sekvence y potřebuji znát nejenom pokutu za vložení mezery za poslední nukleotid sekvence y, ale i skórovací matici pro předposlední nukleotid sekvence x zarovnaný s posledním nukleotidem sekvence y. Př.: S(,)=γ + S(, )

c) S(M, N)= γ + S(M, N-) K výpočtu skóre při posledním nukleotidu sekvence y přesahujícím poslední nukleotid sekvence x potřebuji znát nejenom pokutu za vložení mezery za poslední nukleotid sekvence x, ale i skórovací matici pro předposlední nukleotid sekvence y zarovnaný s posledním nukleotidem sekvence x. Př.: S(,)=γ + S(, ) Čili k výpočtu S(M,N) potřebuji znát a) S(M-, N-) b) S(M-, N) c) S(M, N-) k jejich výpočtu zase potřebuji znát: a) S(M-, N-), S(M-, N-), S(M-, N-), b) S(M-, N-), S(M-, N), S(M-, N-), c) S(M-, N-), S(M-, N-), S(M, N-). Př.: k výpočtu S(,) potřebuji znát a) S(, ) b) S(, ) c) S(, ) k jejich výpočtu zase potřebuji znát: a) S(, ), S(, ), S(, ), b) S(, ), S(, ), S(, ), c) S(, ), S(, ), S(, ). znát řešení podproblémů a jejich podproblémů, až skončíme u skóre S(, ) pro přiložení nultého nukleotidu k nultému nukleotidu, S(, ) = (až skončíme před prvním nukleotidem obou sekvencí). Obecná definice rekurzivního algoritmu: S(i-, j-)+σ(x i, y j ) S(i, j)= max S(i-, j)+ γ { S(i, j-)+ γ ) Matice dynamického programování Některé podproblémy potřebujeme řešit opakovaně. S(M-, N-), S(M-, N-), S(M-, N-), S(M-, N-), S(M-, N), S(M-, N-), S(M-, N-), S(M-, N-), S(M, N-). Stojí za to si průběžné výsledky zapsat (do matice). Začneme u nultého nukleotidu v sekvenci (nejvíc vlevo). Matice Vytváříme tabulku pro naše dvě sekvence: Při našem skórování, -, -

Matice i-tý nukleotid sekvence x, M= ) Vyplnění políček matice od základů Vyplnění. řádku a. sloupce i-tý nukleotid sekvence x, M= S(, ) = ; mezera proti mezeře i-tý nukleotid sekvence x, M= První řádek a sloupec odpovídá nukleotidu proti mezeře. - - - - - - - - i-tý nukleotid sekvence x, M= Prvnířádek: jen součet pokut za mezery - - - - - - - - - - - - - - i-tý nukleotid sekvence x, M= První sloupec: jen součet pokut za mezery.

S(, )=? S(,)=? i-tý nukleotid sekvence x, M= - - - - - - - - - - - - - - max =+=+ =--=- =--=- i-tý nukleotid sekvence x, M= - - - - - - - + - - - --=- +-=- --=- - - - - S(,)=? S(,)= - i-tý nukleotid sekvence x, M= - - - - - - - + - - - - - - - - i-tý nukleotid sekvence x, M= - - - - - - - + - - - - - - - - - Pokračuji ve vyplňování matice ž skončím vpravo dole i-tý nukleotid sekvence x, M= - - - - - - - - - + - - - -9 - - - - - + - - - - - - - - - + + + - -9 - - - -9 + + + - - - -9 - - + + - + - - - - + + + + akže teď již známe hodnotu skóre optimálního přiložení:

) Zpětný průchod maticí...zpětný průchod maticí i-tý nukleotid sekvence x, M= Ze tří zpětných směrů vyberu ten, který mě sem přivedl Pokud jsou dva směry stejně dobré, vyberu jeden - - - - - - - + - - - -9 - - - + - -9 - - - - - + + - - - - - + + + + - -9 - + + + - - - - + - + - - - -9 - + + - - - - - - - + i-tý nukleotid sekvence x, M= - - - - - - + - - - -9 - - + - - - - - - + + + - - -9 + + - -9 - - + + - - - - + + - - - - + - + - - - -9 - + - - - - - + - Zpětné šipky si můžeme psát hned při vyplňování matice Přiložení: kde vložit mezery Při zpětném průchodu maticí jsou tři možné směry: Pokud postupujeme ve směru oranžové šipky, tak mezeru nevkládáme. Pokud postupujeme ve směru zelené šipky, tak za odpovídající nukleotid první sekvence (která je zapsaná ve sloupci x maticové tabulky) dáme mezeru. Pokud postupujeme ve směru modré šipky, tak za odpovídající nukleotid druhé sekvence (zapsané v řádku y tabulky) dáme mezeru. Optimální přiložení se skórem + - - + - - + + - + + = + Dynamické programování Poskytuje matematicky optimální algoritmus (přiložení s nejvyšším skóre). Pokud toto přiložení není biologicky optimální, pak je to chyba našeho skórovacího systému. Signifikance našeho přiložení se testuje jinou statistikou. Dynamické programování je počítačově náročné, proto se hledají rychlejší přibližné metody.

Úloha: optimálně přiložte Sekvence :, M= Sekvence :, N= Skórovací matice: shoda neshoda - mezera - Řešení ---- Řešení ----