Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Slides:



Advertisements
Podobné prezentace
013456… The Numbers Číslice The numbers we write are made up of algorithms, (1, 2, 3, 4, etc) called arabic algorithms, to distinguish them from.
Advertisements

Obchodní akademie a Střední odborná škola, gen. F. Fajtla, Louny, p.o. Osvoboditelů 380, Louny Číslo projektuCZ.1.07/1.5.00/ Číslo sady31Číslo DUM.
0 / 1X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
Grafické zobrazení příkladu RETURN MANAGEMENT J.Skorkovský KPH.
1 / 6X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 / 2X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
1 / 9X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
Jméno autora:Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_02_AJ_ACH Ročník: 1. – 4. ročník Vzdělávací oblast: Jazyk a jazyková.
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.5.00/ NÁZEV PROJEKTU: Šablony – Gymnázium Tanvald ČÍSLO.
Jméno autora:Mgr. Mária Filipová Datum vytvoření: Číslo DUMu:VY_32_INOVACE_07_AJ_ACH Ročník: 1. – 4. ročník Vzdělávací oblast: Jazyk a jazyková.
Tutorial:Business Academy Topic: Conditional Formatting Prepared by : Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Číslo projektu CZ.1.07/1.5.00/ Číslo materiálu VY_32_INOVACE_ 007 Název školy Gymnázium, Tachov, Pionýrská 1370 Autor Mgr.Stanislava Antropiusová.
Imagine wave JOHN LENNON ( ) Imagine there’s no Heaven.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
The written part of the maturita exam III Škola: SOU Valašské Klobouky Ročník: Nástavbové studium Podnikání 2 Název projektu: Zkvalitnění výuky prostřednictvím.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Making Contracts 06B16 AutorLadislava Pechová Období vytvořeníLeden.
Pracovní list - pro tisk Vloženo z stress.pptx Začátek.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Datové struktury a algoritmy Část 7 Vyhledávání a vyhledávací stromy Searching and Search Trees Petr Felkel.
Jméno autora: Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_12_AJ_EP Ročník: 1. – 4. ročník Vzdělávací oblast:Jazyk a jazyková.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Zeměpis – 1. ročník 1 Arabské číslice.
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace ČÍSLO PROJEKTU: CZ.1.07/1.5.00/ NÁZEV PROJEKTU: Šablony – Gymnázium Tanvald ČÍSLO.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_019 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Mgr. Stanislava Antropiusová Předmět.
1 / 3The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log 2 (n)),
Tutorial: Obchodní akademie Topic: Logical Functions Prepared by: Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Jméno autora: Mgr. Mária Filipová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_09_AJ_EP Ročník: 1. – 4. ročník Vzdělávací oblast:Jazyk a jazyková.
České vysoké učení technické v Praze Fakulta dopravní Grammars and languages Hybrid and uncertain systems.
Základní škola Jakuba Jana Ryby Rožmitál pod Třemšínem Efektivní výuka pro rozvoj potenciálu žáka projekt v rámci Operačního programu VZDĚLÁVÁNÍ PRO KONKURENCESCHOPNOST.
Statistická analýza dat
 Piston pumps are a type of water pumps which cause the liquid to flow using one or more oscillating pistons.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jan Rozsíval. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jan Rozsíval. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
2014 Výukový materiál GE Tvůrce: Mgr. Šárka Vopěnková Tvůrce anglické verze: ThMgr. Ing. Jiří Foller Projekt: S anglickým jazykem do dalších předmětů.
Comparison of pictures
COMMUNITIES Výukový materiál EK Tvůrce: Ing. Marie Jiráková Tvůrce anglické verze: Mgr. Milan Smejkal Projekt: S anglickým jazykem do dalších předmětů.
EU peníze středním školám Název vzdělávacího materiálu: Avoid common mistakes III. Číslo vzdělávacího materiálu: AJ Šablona: II/2 Inovace a zkvalitnění.
B AT SOUBORY Jednoduché skripty ve Windows. O PAKOVÁNÍ PŘÍKAZU OPAKUJ. off for /L %i in ( ) do ( echo *** echo %i echo *** ) Zápis: Opakuj.
EU peníze středním školám Název vzdělávacího materiálu: B2 – Verbs – Computers Číslo vzdělávacího materiálu: ICT12-19 Šablona: III/2 Inovace a zkvalitnění.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu Animals and Nature.
ZÁKLADNÍ ŠKOLA SLOVAN, KROMĚŘÍŽ, PŘÍSPĚVKOVÁ ORGANIZACE ZEYEROVA 3354, KROMĚŘÍŽ projekt v rámci vzdělávacího programu VZDĚLÁNÍ PRO KONKURENCESCHOPNOST.
Anotace: Materiál je zaměřen na propojení jazykového učiva s odborným vzděláním. Vycházím z aktuálního moderního zdroje, který představuje odbornou terminologii.
Datum: Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/ Číslo DUM: VY_22_INOVACE_9 Jméno autora: Irena Moučková Název práce:
Základní škola Velké Karlovice, okres Vsetín ŠKOLA: Základní škola Velké Karlovice, okres Vsetín Mgr. Pavla Šrubařová AUTOR: Mgr. Pavla Šrubařová VY_22_INOVACE_AKON_30_What_do_you_know_about_GB.
Tutorial:Business Academy Topic: Stock in trade Prepared by:Ing. Marcela Zlatníková Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Listening VY_32_INOVACE_AJ_2_60 Multiple choice Číslo projektu: CZ.1.07./1.5.00/ Název projektu: Zlepšení podmínek pro vzdělávání na SUŠ, Ostrava.
Word order Střední škola pedagogická, hotelnictví a služeb, Litoměřice, příspěvková organizace Litoměřice, Komenského 3 Autor: Pavel Vágai.
Název školy Gymnázium, střední odborná škola, střední odborné učiliště a vyšší odborná škola, Hořice Číslo projektu CZ.1.07/1.5.00/ Název materiálu.
DIGITÁLNÍ UČEBNÍ MATERIÁL
Articles Tematická oblast Slovní zásoba a gramatika Datum vytvoření
Mezibuněčná komunikace Inaktivní osteoklasty
Interesting places - word formation, use of English
DIGITÁLNÍ UČEBNÍ MATERIÁL
Digitální učební materiál
Název školy Gymnázium, střední odborná škola, střední odborné učiliště a vyšší odborná škola, Hořice Číslo projektu CZ.1.07/1.5.00/ Název materiálu.
Název školy: ZŠ Varnsdorf, Edisonova 2821, okres Děčín, příspěvková organizace Jazyk a jazyková komunikace, Anglický jazyk, Minulý čas prostý pravidelných.
The Routing Table: A Closer Look
Introduction to MS Dynamics NAV (Expected Costs)
ŠKOLA: Gymnázium, Tanvald, Školní 305, příspěvková organizace
WHAT IS BLUE? Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým.
Quantum Chemistry / Quantum Mechanics
Střední odborná škola a Střední odborné učiliště, Vocelova 1338
Účetní schémata MS Dynamics NAV RTC-základy
Costing methods in MS Dynamics NAV (Inventory Costing-basics)
Dynamické programování Optimální binární vyhledávací strom
Jakub Horák, horakj(na)fld.czu.cz, L026
NÁZEV ŠKOLY: Základní škola Karla Klíče Hostinné
Transkript prezentace:

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Dynamic programming Optimal binary search tree Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Optimal binary search tree The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Optimal binary search tree Balanced but not optimal 0.04 Hugo 0.01 0.09 Dana Lea 0.08 0.05 0.05 0.03 Ben Fred Jack Nick Ann Cole Edna Gene Irma Ken Mark Orrie 0.03 0.12 0.04 0.22 0.06 0.15 0.02 0.01 Query probability Key Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Optimal binary search tree The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Optimal binary search tree Node costs in a BST Node cost = probability  depth 0.04 1 0.04  1 = 0.04 Hugo 0.01 2 0.01  2 = 0.02 Dana 0.05 3 0.05  3 = 0.15 Fred 4 0.22  4 = 0.88 Gene depth 0.22 Node cost = average no. of tests in one operation Find. Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Cost of balanced search tree X36DSA 2005 Θ(n·log2(n)), … Cost of balanced search tree key probab. pk depth dk pk  dk Ben Cole Dana Edna Fred Gene Hugo Irma Lea Jack Ken Mark Nick Orrie Ann 0.08 0.12 0.01 0.04 0.05 0.22 0.06 0.09 0.15 0.02 0.03 3 4 2 1 0.08 0.12 0.01 0.04 0.05 0.22 0.06 0.09 0.15 0.02 0.03  3 = 0.24  4 = 0.48  2 = 0.02  4 = 0.16  3 = 0.15  4 = 0.88  1 = 0.04  4 = 0.24  2 = 0.18  4 = 0.60  4 = 0.08  3 = 0.09  4 = 0.12  4 = 0.04 Total cost: 3.47 Total cost = avg. no. of tests in all operatios Find. Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Optimal binary search tree The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Optimal binary search tree Optimal BST with specific query probabilities 0.22 Gene 0.12 0.15 Cole Ken 0.08 0.05 0.06 0.09 Ben Fred Irma Lea 0.04 0.03 Ann Edna Hugo Jack Nick 0.03 0.04 0.05 Dana Mark Orrie 0.01 0.02 0.01 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … Cost of optimal BST key probab. pk depth dk pk  dk Ben Cole Dana Edna Fred Gene Hugo Irma Lea Jack Ken Mark Nick Orrie Ann 0.03 3 2 5 4 1 0.08 0.12 0.01 0.04 0.05 0.22 0.06 0.09 0.15 0.02 0.03  3 = 0.24  2 = 0.24  5 = 0.05  4 = 0.16  3 = 0.15  1 = 0.22  3 = 0.18  3 = 0.27  4 = 0.20  2 = 0.30  5 = 0.10  4 = 0.12 0.08 0.12 0.01 0.04 0.05 0.22 0.04 0.06 0.05 0.15 0.09 0.02 0.03 0.01 Total cost 2.56 Speedup 3.47 : 2.56 = 1 : 0.74 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

  Computing the cost of optimal BST Recursive idea pi pi The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing the cost of optimal BST pk Xyz C1k cost of the left subtree of node k C2k cost of the right subtree of node k C2k C1k L k-1 k k+1 R Recursive idea pk k-1  i=L pi R  i=k+1 pi cost = C1k + + C2k + + pk Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Computing the cost of optimal BST X36DSA 2005 The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing the cost of optimal BST Small optimal subtrees 1 2 L R N Surely, there exists an optimal subtree containing keys with indices ranging from L to R. There are N optimal subtrees of size 1 Subtree size = no. of nodes = L  R+1 N 1 2 N 2 3 1 subtree N In total, there are N * (N+1) /2 different optimal subtrees. Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

 Minimizing the cost of optimal BST Idea of recursive solution: The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Minimizing the cost of optimal BST Idea of recursive solution: 1. Assumption: All smaller optimal subtrees are known. 2. Try all possibilities: k = L, L+1, L+2, ..., R k=L k=L+1 k=L+2 … ... k=R 3. Register the index k, which minimizes the cost expressed as R  i=k+1 pi C1k + + k-1 i=L + C2k + pk 4. The key with index k is the root of the optimal subtree. Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

    Minimizing the cost of optimal BST X36DSA 2005 The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Minimizing the cost of optimal BST C(L,R) ...... Cost of optimal subtree containig keys with indices: L, L+1, L+2, ..., R-1, R  i=L k-1 pi  i=k+1 R pi C(L,R) = min { C(L, k-1) + + C(k+1,R) + + pk } = L  k  R R  = min { C(L, k-1) + C(k+1,R) + pi } = L  k  R i=L  i=L R pi (*) = min { C(L, k-1) + C(k+1,R) } + L  k  R The value minimizing (*) is the index of the root of the optimal subtree Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Data structures for computing optimal BST X36DSA 2005 The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Data structures for computing optimal BST Costs of optimal subtrees array C [L][R] (L ≤ R) Roots of optimal subtrees array roots [L][R] (L ≤ R) R R 1 2 3 4 N L 1 1 L 2 2 3 3 L ≤ R L ≤ R N+1 N+1 diagonal ... L= R diagonal ... L= R Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST The cost of a particular optimal subtree p1 L=3, R=9 p2 p3 a b c d e p4 x  i=L R pi + L  k  R C(L,R) = min { C(L, k-1) + C(k+1,R) } p5 y p6 z p7 t C(L,R) = min{ 0+x, p3+y, a+z, b+t, c+w, d+p9, e+0 } p8 w p9 pN Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Dynamic programming strategy – First process the smallest subtrees, then the bigger ones, then still more bigger ones, etc... Stop Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Computing arrays of costs and roots def optimalTree( Prob, N ): Costs = [[0]*N for i in range(N)] Roots = [[0]*N for i in range(N)] # size = 1, main diagonal for i in range(N): Costs[i][i] = Prob[i]; Roots[i][i] = i # size > 1, diagonals above main diagonal for size in range(1, N): L = 1; R = size while R < N: Costs[L][R] = min(Costs[L][k-1] + Costs[k+1][R], k = L..R) roots[L][R] = ‘k minimizing previous line’ Costs[L][R] += sum(Costs[L:R+1]) L += 1; R += 1 return Costs, Roots Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Building optimal BST using the array of subtree roots # standard BST insert def buildTree( Tree, L, R, Roots, Nodes ): if R < L: return rootindex = Roots[L][R] # nodes in Nodes have to be sorted in increasing # order by their key values Tree.insert( Nodes[rootindex].key ) buildTree( Tree, L, rootindex-1, Roots, Nodes ) buildTree( Tree, rootindex+1, R, Roots, Nodes ) } Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Roots of optimal subtrees 0 1 2 3 3 3 3 3 7 7 7 7 7 7 7 7 0 0 2 3 3 3 3 7 7 7 7 7 7 7 7 7 0 0 0 3 3 3 3 7 7 7 7 7 7 7 7 7 0 0 0 0 4 5 6 7 7 7 7 7 7 7 7 7 0 0 0 0 0 5 6 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 6 7 7 7 7 7 7 7 11 11 0 0 0 0 0 0 0 7 7 7 7 7 11 11 11 11 0 0 0 0 0 0 0 0 8 9 9 11 11 11 11 11 0 0 0 0 0 0 0 0 0 9 9 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Computing optimal BST Tree and array correspondence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Tree and array correspondence 0 1 2 3 3 3 3 3 7 7 7 7 7 7 7 7 0 0 2 3 3 3 3 7 7 7 7 7 7 7 7 7 0 0 0 3 3 3 3 7 7 7 7 7 7 7 7 7 0 0 0 0 4 5 6 7 7 7 7 7 7 7 7 7 0 0 0 0 0 5 6 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 6 7 7 7 7 7 7 7 11 11 0 0 0 0 0 0 0 7 7 7 7 7 11 11 11 11 0 0 0 0 0 0 0 0 8 9 9 11 11 11 11 11 0 0 0 0 0 0 0 0 0 9 9 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 10 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 12 0 0 0 0 0 0 0 0 0 0 0 0 0 13 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Mark 0.02 Orrie Fred 0.05 Ben 0.08 Dana Hugo 0.22 Lea 0.15 Nick 0.09 0.01 Irma 0.04 Jack Edna Gene Ann 0.03 Cole Ken 0.06 0.12 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Computing optimal BST Costs of optimal subtrees 1-A 2-B 3-C 4-D 5-E 6-F 7-G 8-H 9-I 10-J 11-K 12-L 13-M 14-N 15-O 1-A 0.03 0.14 0.37 0.39 0.48 0.63 1.17 1.26 1.42 1.57 2.02 2.29 2.37 2.51 2.56 2-B 0 0.08 0.28 0.30 0.39 0.54 1.06 1.14 1.30 1.45 1.90 2.17 2.25 2.39 2.44 3-C 0 0 0.12 0.14 0.23 0.38 0.82 0.90 1.06 1.21 1.66 1.93 2.01 2.15 2.20 4-D 0 0 0 0.01 0.06 0.16 0.48 0.56 0.72 0.87 1.32 1.59 1.67 1.81 1.86 5-E 0 0 0 0 0.04 0.13 0.44 0.52 0.68 0.83 1.28 1.55 1.63 1.77 1.82 6-F 0 0 0 0 0 0.05 0.32 0.40 0.56 0.71 1.16 1.43 1.51 1.63 1.67 7-G 0 0 0 0 0 0 0.22 0.30 0.46 0.61 1.06 1.31 1.37 1.48 1.52 8-H 0 0 0 0 0 0 0 0.04 0.14 0.24 0.54 0.72 0.78 0.89 0.93 9-I 0 0 0 0 0 0 0 0 0.06 0.16 0.42 0.60 0.66 0.77 0.81 10-J 0 0 0 0 0 0 0 0 0 0.05 0.25 0.43 0.49 0.60 0.64 11-K 0 0 0 0 0 0 0 0 0 0 0.15 0.33 0.39 0.50 0.54 12-L 0 0 0 0 0 0 0 0 0 0 0 0.09 0.13 0.21 0.24 13-M 0 0 0 0 0 0 0 0 0 0 0 0 0.02 0.07 0.09 14-N 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0.05 15-O 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.01 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), … The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Dynamic programming Longest common subsequence (LCS) Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence Two sequences A: C B E A D D E A |A| = 8 B: D E C D B D A |B| = 7 Common subsequence A: C B E A D D E A B: D E C D B D A |C| = 3 C: C D A Longest common subsequence (LCS) A: C B E A D D E A B: D E C D B D A |C| = 4 C: E D D A Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence 1 2 8 3 4 5 6 7 An: (a1, a2, ..., an) A8: C B E A D D E A Bm: (b1, b2, ..., bm) Ck: (c1, c2, ..., ck) B7: D E C D B D A C4: E D D A Ck = LCS(An, Bm) Recursive rules: ( an = bm ) ==> (ck = an = bm) & (Ck-1 = LCS (An-1, Bm-1) ) 1 2 8 3 4 5 6 7 1 2 8 3 4 5 6 7 A8: C B E A D D E A A7: C B E A D D E A B7: D E C D B D A B6: D E C D B D A C4: E D D A C3: E D D A Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence ( an != bm ) & (ck != an ) ==> (Ck = LCS (An-1, Bm) ) 1 2 8 3 4 5 6 7 1 2 8 3 4 5 6 7 A7: C B E A D D E A6: C B E A D D E B6: D E C D B D B6: D E C D B D C3: E D D C3: E D D ( an != bm ) & (ck != bm ) ==> (Ck = LCS (An, Bm-1) ) 1 2 8 3 4 5 6 7 1 2 8 3 4 5 6 7 A5: C B E A D A5: C B E A D B5: D E C D B B4: D E C D B C2: E D C2: E D Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence Recursive function c(m, n) computes LCS length n = 0 or m = 0 C(n,m) = C(n-1, m-1) +1 n > 0, m > 0, an = bm max{ C(n-1, m), C(n, m-1) } n > 0, m > 0, an ≠ bm Dynamic programming strategy m C[n][m] for a in range( 1, n+1 ): for b in range( 1, m+1 ): C[a][b] = .... } n Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence Construction of 2D LCS array def findLCS(): for a in range( 1, n+1 ): for b in range( 1, m+1 ): if A[a] == B[b]: C[a][b] = C[a-1][b-1]+1 arrows[a][b] = DIAG else: if C[a-1][b] > C[a][b-1]: C[a][b] = C[a-1][b]; arrows[a][b] = UP C[a][b] = C[a][b-1]; arrows[a][b] = LEFT Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence 1 2 3 4 5 6 7 C B: D E C D B D A LCS array for “CBEADDEA” and “DECDBDA” 1 C 1 1 1 1 1 2 B 1 1 2 2 2 3 E 1 1 1 2 2 2 4 A 1 1 1 2 2 3 A: 5 D 1 1 1 2 2 3 3 6 D 1 1 1 2 2 3 3 7 E 1 2 2 2 2 3 3 8 A 1 2 2 2 2 3 4 Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …

Longest common subsequence The complexity of different algorithms varies: O(n), Ω(n2), Θ(n·log2(n)), … Longest common subsequence LSC printout -- recursively :) def outLCS(a, b) { if a == 0 or b == 0 return if arrows[a][b] == DIAG: outLCS(a-1, b-1); // recursion ... print(A[a]) //... reverses the sequence! else: if arrows[a][b] == UP: outLCS(a-1,b); outLCS(a,b-1); } Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …