Uogólnione drzewa Humana

Podobne dokumenty
Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Metodydowodzenia twierdzeń

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Teoria grafów i sieci 1 / 188

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Minimalne drzewa rozpinaj ce

Teoria grafów i jej zastosowania. 1 / 126

Metody numeryczne i statystyka dla in»ynierów

Teoria grafów i sieci 1 / 58

Algorytmy zwiazane z gramatykami bezkontekstowymi

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

Macierze i Wyznaczniki

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

12: Znajdowanie najkrótszych ±cie»ek w grafach

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

Twierdzenie Wainera. Marek Czarnecki. Warszawa, 3 lipca Wydziaª Filozoi i Socjologii Uniwersytet Warszawski

Informacje pomocnicze

Wykªad 1. Wprowadzenie do teorii grafów

Macierze i Wyznaczniki

Materiaªy do Repetytorium z matematyki

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

1 Kodowanie i dekodowanie

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

Matematyka. Justyna Winnicka. rok akademicki 2016/2017. Szkoªa Gªówna Handlowa

Przykªady problemów optymalizacji kombinatorycznej

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

Wykªad 4. Droga i cykl Eulera i Hamiltona

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Wnioskowanie Boolowskie i teoria zbiorów przybli»onych

Lab. 02: Algorytm Schrage

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Metody numeryczne i statystyka dla in»ynierów

A. Auxiliary Question of the Universe

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

10a: Wprowadzenie do grafów

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Podstawy matematyki dla informatyków. Funkcje. Funkcje caªkowite i cz ±ciowe. Deniowanie funkcji. Wykªad pa¹dziernika 2012

Podstawy matematyki dla informatyków

Ekstremalnie maªe zbiory

Problemy optymalizacyjne - zastosowania

Indeksowane rodziny zbiorów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Algorytmy i Struktury Danych

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

Matematyka dyskretna dla informatyków

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

Informatyka, matematyka i sztuczki magiczne

Grafy i Zastosowania. 5: Drzewa Rozpinaj ce. c Marcin Sydow. Drzewa rozpinaj ce. Cykle i rozci cia fundamentalne. Zastosowania

Elementy geometrii w przestrzeni R 3

Logika dla matematyków i informatyków Wykªad 1

Egzaminy i inne zadania. Semestr II.

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.

O pewnym zadaniu olimpijskim

Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Maªgorzata Murat. Modele matematyczne.

Najkrótsze drogi w grafach z wagami

1 Bª dy i arytmetyka zmiennopozycyjna

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

Wska¹niki, tablice dynamiczne wielowymiarowe

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wykorzystanie lokalnej geometrii danych w Maszynie Wektorów No±nych

Macierz A: macierz problemów liniowych (IIII); Macierz rozszerzona problemów liniowych (IIII): a 11 a 1m b 1 B = a n1 a nm b n

Podstawowe algorytmy grafowe i ich zastosowania

Liczby zmiennoprzecinkowe

Najkrótsze drogi w grafach z wagami

Szybkie mno»enie wielomianów i macierzy

Oba zbiory s uporz dkowane liniowo. Badamy funkcj w pobli»u kresów dziedziny. Pewne punkty szczególne (np. zmiana denicji funkcji).

Liniowe zadania najmniejszych kwadratów

Logika matematyczna (16) (JiNoI I)

Wojewódzki Konkurs Matematyczny

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Matematyka dyskretna dla informatyków

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 a + b 1 = 1 a + 1 b 1. (a + b 1)(a + b ab) = ab, (a + b)(a + b ab 1) = 0, (a + b)[a(1 b) + (b 1)] = 0,

Strategia czy intuicja?

Liczenie podziaªów liczby: algorytm Eulera

Omówienie zada«potyczki Algorytmiczne 2015

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Transkrypt:

czyli ang. lopsided trees Seminarium Algorytmika 2009/2010

Plan prezentacji Sformuªowanie 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Plan prezentacji Sformuªowanie Wyj±ciowy problem Problem uogólniony 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Kod preksowy Sformuªowanie Wyj±ciowy problem Problem uogólniony Kod Funkcja h : S W + gdzie S = {s 1,...,s n } jest zbiorem symboli do zakodowania, natomiast W = {w 1,...,w r } to alfabet, przy pomocy którego kodujemy. Kod preksowy (czy raczej bezpreksowy) aden symbol nie jest kodowany jako preks drugiego: s,s S,α W + h(s)α h(s ) Ka»de kodowanie preksowe jest jednoznaczne. Nie ka»de jednoznaczne kodowanie jest preksowe: Np. kodowanie bezsuksowe: S = {a,b},w = {0,1},h(a) = 0,h(b) = 01

Kod preksowy Sformuªowanie Wyj±ciowy problem Problem uogólniony Kod Funkcja h : S W + gdzie S = {s 1,...,s n } jest zbiorem symboli do zakodowania, natomiast W = {w 1,...,w r } to alfabet, przy pomocy którego kodujemy. Kod preksowy (czy raczej bezpreksowy) aden symbol nie jest kodowany jako preks drugiego: s,s S,α W + h(s)α h(s ) Ka»de kodowanie preksowe jest jednoznaczne. Nie ka»de jednoznaczne kodowanie jest preksowe: Np. kodowanie bezsuksowe: S = {a,b},w = {0,1},h(a) = 0,h(b) = 01

Kod preksowy Sformuªowanie Wyj±ciowy problem Problem uogólniony Kod Funkcja h : S W + gdzie S = {s 1,...,s n } jest zbiorem symboli do zakodowania, natomiast W = {w 1,...,w r } to alfabet, przy pomocy którego kodujemy. Kod preksowy (czy raczej bezpreksowy) aden symbol nie jest kodowany jako preks drugiego: s,s S,α W + h(s)α h(s ) Ka»de kodowanie preksowe jest jednoznaczne. Nie ka»de jednoznaczne kodowanie jest preksowe: Np. kodowanie bezsuksowe: S = {a,b},w = {0,1},h(a) = 0,h(b) = 01

Kod preksowy Sformuªowanie Wyj±ciowy problem Problem uogólniony Kod Funkcja h : S W + gdzie S = {s 1,...,s n } jest zbiorem symboli do zakodowania, natomiast W = {w 1,...,w r } to alfabet, przy pomocy którego kodujemy. Kod preksowy (czy raczej bezpreksowy) aden symbol nie jest kodowany jako preks drugiego: s,s S,α W + h(s)α h(s ) Ka»de kodowanie preksowe jest jednoznaczne. Nie ka»de jednoznaczne kodowanie jest preksowe: Np. kodowanie bezsuksowe: S = {a,b},w = {0,1},h(a) = 0,h(b) = 01

Kod jako drzewo Sformuªowanie Wyj±ciowy problem Problem uogólniony Kod preksowy najªatwiej przedstawi jako drzewo: Kraw dzie odpowiadaj symbolom alfabetu. Li±cie odpowiadaj ci gom koduj cym Nieco niedydaktyczny przykªad:

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Prawdopodobie«stwo wyst powania symboli Z ka»dym symbolem s S dodatkowo wi»emy prawdopodobie«stwo p(s) [0, 1] jego wyst pienia na wej±ciu. Funkcja kosztu Dªugo± ±cie»ki zewn trznej (ang. external path) drzewa kodu: Koszt(h) = Eh(s) = Σ s S h(s) p(s) Poszukujemy kodu o minimalnym koszcie.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Prawdopodobie«stwo wyst powania symboli Z ka»dym symbolem s S dodatkowo wi»emy prawdopodobie«stwo p(s) [0, 1] jego wyst pienia na wej±ciu. Funkcja kosztu Dªugo± ±cie»ki zewn trznej (ang. external path) drzewa kodu: Koszt(h) = Eh(s) = Σ s S h(s) p(s) Poszukujemy kodu o minimalnym koszcie.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Tak sformuªowany problem jest prosty: algorytm Humana. Podstawowa wersja dziaªa dla W = 2, ale mo»na uogólni. Dlaczego to jest ªatwe? Maj c dany zbiór ci gów koduj cych wiemy jak optymalnie przypisa je do symboli. Wiemy,»e dwa najdªu»sze ci gi koduj ce maj ten sam koszt - mo»emy skleja.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Tak sformuªowany problem jest prosty: algorytm Humana. Podstawowa wersja dziaªa dla W = 2, ale mo»na uogólni. Dlaczego to jest ªatwe? Maj c dany zbiór ci gów koduj cych wiemy jak optymalnie przypisa je do symboli. Wiemy,»e dwa najdªu»sze ci gi koduj ce maj ten sam koszt - mo»emy skleja.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Tak sformuªowany problem jest prosty: algorytm Humana. Podstawowa wersja dziaªa dla W = 2, ale mo»na uogólni. Dlaczego to jest ªatwe? Maj c dany zbiór ci gów koduj cych wiemy jak optymalnie przypisa je do symboli. Wiemy,»e dwa najdªu»sze ci gi koduj ce maj ten sam koszt - mo»emy skleja.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Tak sformuªowany problem jest prosty: algorytm Humana. Podstawowa wersja dziaªa dla W = 2, ale mo»na uogólni. Dlaczego to jest ªatwe? Maj c dany zbiór ci gów koduj cych wiemy jak optymalnie przypisa je do symboli. Wiemy,»e dwa najdªu»sze ci gi koduj ce maj ten sam koszt - mo»emy skleja.

Problem optymalnego kodu Wyj±ciowy problem Problem uogólniony Tak sformuªowany problem jest prosty: algorytm Humana. Podstawowa wersja dziaªa dla W = 2, ale mo»na uogólni. Dlaczego to jest ªatwe? Maj c dany zbiór ci gów koduj cych wiemy jak optymalnie przypisa je do symboli. Wiemy,»e dwa najdªu»sze ci gi koduj ce maj ten sam koszt - mo»emy skleja.

Plan prezentacji Sformuªowanie Wyj±ciowy problem Problem uogólniony 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Sformuªowanie problemu Wyj±ciowy problem Problem uogólniony Nierówne koszty liter alfabetu Koszt litery w oznaczamy jako length(w) N. Nowa funkcja kosztu Koszt(h) = Σ s S length(h(s))p(s)

Sformuªowanie problemu Wyj±ciowy problem Problem uogólniony Nierówne koszty liter alfabetu Koszt litery w oznaczamy jako length(w) N. Nowa funkcja kosztu Koszt(h) = Σ s S length(h(s))p(s)

Wªasno±ci uogólnionego problemu Wyj±ciowy problem Problem uogólniony Co wiadomo o problemie? Niewiele: nie wiemy, czy jest NP-zupeªny, nie znamy algorytmu wielomianowego. Rozwi zanie wielomianowe dla równych p(s) (tzw. problem Varn codes). Rozwi zania wykªadnicze dla przypadku length(w i ) N (wykªadnik zale»ny tylko od kosztu liter). Schemat aproksymacyjny PTAS.

Wªasno±ci uogólnionego problemu Wyj±ciowy problem Problem uogólniony Co wiadomo o problemie? Niewiele: nie wiemy, czy jest NP-zupeªny, nie znamy algorytmu wielomianowego. Rozwi zanie wielomianowe dla równych p(s) (tzw. problem Varn codes). Rozwi zania wykªadnicze dla przypadku length(w i ) N (wykªadnik zale»ny tylko od kosztu liter). Schemat aproksymacyjny PTAS.

Wªasno±ci uogólnionego problemu Wyj±ciowy problem Problem uogólniony Co wiadomo o problemie? Niewiele: nie wiemy, czy jest NP-zupeªny, nie znamy algorytmu wielomianowego. Rozwi zanie wielomianowe dla równych p(s) (tzw. problem Varn codes). Rozwi zania wykªadnicze dla przypadku length(w i ) N (wykªadnik zale»ny tylko od kosztu liter). Schemat aproksymacyjny PTAS.

Wªasno±ci uogólnionego problemu Wyj±ciowy problem Problem uogólniony Co wiadomo o problemie? Niewiele: nie wiemy, czy jest NP-zupeªny, nie znamy algorytmu wielomianowego. Rozwi zanie wielomianowe dla równych p(s) (tzw. problem Varn codes). Rozwi zania wykªadnicze dla przypadku length(w i ) N (wykªadnik zale»ny tylko od kosztu liter). Schemat aproksymacyjny PTAS.

Plan prezentacji Sformuªowanie 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Algorytm naiwny Sformuªowanie Pomysª 1 Nie dziaªa metoda bottom-up, wi c u»yjemy metody top-down. Przeszukujemy dynamicznie przestrze«wszystkich drzew kodów preksowych. Dokªadamy kolejne kraw dzie do li±ci drzew. Problem: wykªadnik w zªo»ono±ci b dzie zale»ny od n oraz r.

Algorytm naiwny Sformuªowanie Pomysª 1 Nie dziaªa metoda bottom-up, wi c u»yjemy metody top-down. Przeszukujemy dynamicznie przestrze«wszystkich drzew kodów preksowych. Dokªadamy kolejne kraw dzie do li±ci drzew. Problem: wykªadnik w zªo»ono±ci b dzie zale»ny od n oraz r.

Algorytm naiwny Sformuªowanie Pomysª 1 Nie dziaªa metoda bottom-up, wi c u»yjemy metody top-down. Przeszukujemy dynamicznie przestrze«wszystkich drzew kodów preksowych. Dokªadamy kolejne kraw dzie do li±ci drzew. Problem: wykªadnik w zªo»ono±ci b dzie zale»ny od n oraz r.

Algorytm prawie naiwny Pomysª 2 Wystarczy rozpatrywa drzewa z peªnymi wierzchoªkami wewn trznymi. Dodajemy sztuczne symbole z prawdopodobie«stwem wyst pienia p(s) = 0.

Algorytm prawie naiwny Pomysª 2 Wystarczy rozpatrywa drzewa z peªnymi wierzchoªkami wewn trznymi. Dodajemy sztuczne symbole z prawdopodobie«stwem wyst pienia p(s) = 0.

Algorytm O(n C+2 ) Sformuªowanie Pomysª 3 Wystarczy pami ta liczb wierzchoªków na poszczególnych poziomach, zamiast struktury drzewa. Pomysª 4 Mo»emy rozwija li±cie w kolejno±ci rosn cego length(s). Wystarczy tylko pami ta : Liczb wierzchoªków na ostatnich C poziomach Liczb pozostaªych wierzchoªków.

Algorytm O(n C+2 ) Sformuªowanie Pomysª 3 Wystarczy pami ta liczb wierzchoªków na poszczególnych poziomach, zamiast struktury drzewa. Pomysª 4 Mo»emy rozwija li±cie w kolejno±ci rosn cego length(s). Wystarczy tylko pami ta : Liczb wierzchoªków na ostatnich C poziomach Liczb pozostaªych wierzchoªków.

Algorytm O(n C+2 ) Sformuªowanie Pomysª 3 Wystarczy pami ta liczb wierzchoªków na poszczególnych poziomach, zamiast struktury drzewa. Pomysª 4 Mo»emy rozwija li±cie w kolejno±ci rosn cego length(s). Wystarczy tylko pami ta : Liczb wierzchoªków na ostatnich C poziomach Liczb pozostaªych wierzchoªków.

Algorytm O(n C+2 ), c.d. Pozostaje m drze zdeniowa funkcj kosztu. Koszt drzewa Koszt(m;l 1,...,l C ) = Σ m i=1 length(v i)p(s i ) + L Σ n i=m+1 p(s i) Obcinamy drzewo na poziomie L. Liczymy sum dªugo±ci cz ±ci ±cie»ek do li±ci do poziomu L wª cznie. Koszt kraw dzi Niech T = (m;l 1,...,l C ) oraz T = T z rozwini tymi q wierzchoªkami na poziomie l 1 Koszt(T,T ) = Koszt(T ) Koszt(T ) = Σ n i=m+1 p(s i)

Algorytm O(n C+2 ), c.d. Pozostaje m drze zdeniowa funkcj kosztu. Koszt drzewa Koszt(m;l 1,...,l C ) = Σ m i=1 length(v i)p(s i ) + L Σ n i=m+1 p(s i) Obcinamy drzewo na poziomie L. Liczymy sum dªugo±ci cz ±ci ±cie»ek do li±ci do poziomu L wª cznie. Koszt kraw dzi Niech T = (m;l 1,...,l C ) oraz T = T z rozwini tymi q wierzchoªkami na poziomie l 1 Koszt(T,T ) = Koszt(T ) Koszt(T ) = Σ n i=m+1 p(s i)

Algorytm O(n C+2 ), c.d. Pozostaje m drze zdeniowa funkcj kosztu. Koszt drzewa Koszt(m;l 1,...,l C ) = Σ m i=1 length(v i)p(s i ) + L Σ n i=m+1 p(s i) Obcinamy drzewo na poziomie L. Liczymy sum dªugo±ci cz ±ci ±cie»ek do li±ci do poziomu L wª cznie. Koszt kraw dzi Niech T = (m;l 1,...,l C ) oraz T = T z rozwini tymi q wierzchoªkami na poziomie l 1 Koszt(T,T ) = Koszt(T ) Koszt(T ) = Σ n i=m+1 p(s i)

Algorytm O(n C+2 ), c.d. Pozostaje m drze zdeniowa funkcj kosztu. Koszt drzewa Koszt(m;l 1,...,l C ) = Σ m i=1 length(v i)p(s i ) + L Σ n i=m+1 p(s i) Obcinamy drzewo na poziomie L. Liczymy sum dªugo±ci cz ±ci ±cie»ek do li±ci do poziomu L wª cznie. Koszt kraw dzi Niech T = (m;l 1,...,l C ) oraz T = T z rozwini tymi q wierzchoªkami na poziomie l 1 Koszt(T,T ) = Koszt(T ) Koszt(T ) = Σ n i=m+1 p(s i)

Analiza zªo»ono±ci Sformuªowanie Wszystkich stanów, jest O(n C+1 ). Przetworzenie pojedynczego stanu wymaga rozpatrzenia n + 1 mo»liwych jego rozwini. Po przemno»eniu otrzymujemy O(n C+2 ).

Analiza zªo»ono±ci Sformuªowanie Wszystkich stanów, jest O(n C+1 ). Przetworzenie pojedynczego stanu wymaga rozpatrzenia n + 1 mo»liwych jego rozwini. Po przemno»eniu otrzymujemy O(n C+2 ).

Analiza zªo»ono±ci Sformuªowanie Wszystkich stanów, jest O(n C+1 ). Przetworzenie pojedynczego stanu wymaga rozpatrzenia n + 1 mo»liwych jego rozwini. Po przemno»eniu otrzymujemy O(n C+2 ).

Algorytm O(n C+1 ) dla W = 2 Pomysª 1 Oznaczenia: length(w 1 ) = α, length(w 2 ) = β. Chcemy zmniejszy liczb wymiarów przestrzeni, któr b dziemy przeszukiwali. Pomysª 2 Wracamy do konstrukcji bottom-up. Denicja Przez ci g charakterystyczny drzewa kodu rozumiemy: B(T ) i = b i = {v V : depth(v) i v jest prawym synem}

Algorytm O(n C+1 ) dla W = 2 Pomysª 1 Oznaczenia: length(w 1 ) = α, length(w 2 ) = β. Chcemy zmniejszy liczb wymiarów przestrzeni, któr b dziemy przeszukiwali. Pomysª 2 Wracamy do konstrukcji bottom-up. Denicja Przez ci g charakterystyczny drzewa kodu rozumiemy: B(T ) i = b i = {v V : depth(v) i v jest prawym synem}

Algorytm O(n C+1 ) dla W = 2 Pomysª 1 Oznaczenia: length(w 1 ) = α, length(w 2 ) = β. Chcemy zmniejszy liczb wymiarów przestrzeni, któr b dziemy przeszukiwali. Pomysª 2 Wracamy do konstrukcji bottom-up. Denicja Przez ci g charakterystyczny drzewa kodu rozumiemy: B(T ) i = b i = {v V : depth(v) i v jest prawym synem}

Algorytm O(n C+1 ) dla W = 2 Ile informacji da si wyci gn z takiego ci gu? Znamy najgª bszy wierzchoªek Mo»emy obliczy indeks jego brata w drzewie: b β α 1 + 1

Algorytm O(n C+1 ) dla W = 2 Ile informacji da si wyci gn z takiego ci gu? Znamy najgª bszy wierzchoªek Mo»emy obliczy indeks jego brata w drzewie: b β α 1 + 1

Algorytm O(n C+1 ) dla W = 2 Ile informacji da si wyci gn z takiego ci gu? Znamy najgª bszy wierzchoªek Mo»emy obliczy indeks jego brata w drzewie: b β α 1 + 1

Algorytm O(n C+1 ) dla W = 2 Mo»emy równie» wyznaczy liczb li±ci poni»ej pewnego poziomu: N i = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Mo»emy równie» wyznaczy liczb li±ci poni»ej pewnego poziomu: N i = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Dowód: #li±ci = #drzew + #wierzchoªków wewn trznych #wierzchoªków wewn trznych = b i β #drzew = #korzeni = #korzeni b d cych lewymi synami + #korzeni b d cych prawymi synami = (b i b i β ) + (b i (β α) b i β ). #li±ci = b i β + (b i b i β ) + (b i (β α) b i β ) = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Dowód: #li±ci = #drzew + #wierzchoªków wewn trznych #wierzchoªków wewn trznych = b i β #drzew = #korzeni = #korzeni b d cych lewymi synami + #korzeni b d cych prawymi synami = (b i b i β ) + (b i (β α) b i β ). #li±ci = b i β + (b i b i β ) + (b i (β α) b i β ) = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Dowód: #li±ci = #drzew + #wierzchoªków wewn trznych #wierzchoªków wewn trznych = b i β #drzew = #korzeni = #korzeni b d cych lewymi synami + #korzeni b d cych prawymi synami = (b i b i β ) + (b i (β α) b i β ). #li±ci = b i β + (b i b i β ) + (b i (β α) b i β ) = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Dowód: #li±ci = #drzew + #wierzchoªków wewn trznych #wierzchoªków wewn trznych = b i β #drzew = #korzeni = #korzeni b d cych lewymi synami + #korzeni b d cych prawymi synami = (b i b i β ) + (b i (β α) b i β ). #li±ci = b i β + (b i b i β ) + (b i (β α) b i β ) = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Dowód: #li±ci = #drzew + #wierzchoªków wewn trznych #wierzchoªków wewn trznych = b i β #drzew = #korzeni = #korzeni b d cych lewymi synami + #korzeni b d cych prawymi synami = (b i b i β ) + (b i (β α) b i β ). #li±ci = b i β + (b i b i β ) + (b i (β α) b i β ) = b i + b i (β α) b i β

Algorytm O(n C+1 ) dla W = 2 Koszt ci gu charakterystycznego Koszt(B) = Σ d 1 i=0 ΣN i j=0 p j Mo»na pokaza,»e koszt drzewa oraz koszt ci gu charakterystycznego odpowiadaj cego temu drzewu s sobie równe.

Algorytm O(n C+1 ) dla W = 2 Koszt ci gu charakterystycznego Koszt(B) = Σ d 1 i=0 ΣN i j=0 p j Mo»na pokaza,»e koszt drzewa oraz koszt ci gu charakterystycznego odpowiadaj cego temu drzewu s sobie równe.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Denicja Ci g charakterystyczny jest legalny, gdy istnieje jakie± odpowiadaj ce mu drzewo. Problem: nie ka»dy ci g jest legalny. Mo»na pokaza,»e dla ci gu charakterystycznego optymalnego o pewnym koszcie, istnieje inny ci g charakterystyczny o tym samym koszcie, który jest legalny. Uwaga: nie oznacza to,»e ka»dy ci g optymalny jest legalny! Dowód: indukcyjny. Korzystamy ze sklejania pary najni»szych synów.

Algorytm O(n C+1 ) dla W = 2 Przestrze«stanów β -krotki reprezentuj ce β ostatnich elementów ci gu charakterystycznego. Kraw dzie Kraw dzie prowadzimy mi dzy stanami postaci (i 0,...,i β 1 ) oraz (i 1,...,i β ). Wagi kraw dzi Waga(u v) = Waga(i 0,...,i β ) = Σ N β k=0

Algorytm O(n C+1 ) dla W = 2 Przestrze«stanów β -krotki reprezentuj ce β ostatnich elementów ci gu charakterystycznego. Kraw dzie Kraw dzie prowadzimy mi dzy stanami postaci (i 0,...,i β 1 ) oraz (i 1,...,i β ). Wagi kraw dzi Waga(u v) = Waga(i 0,...,i β ) = Σ N β k=0

Algorytm O(n C+1 ) dla W = 2 Przestrze«stanów β -krotki reprezentuj ce β ostatnich elementów ci gu charakterystycznego. Kraw dzie Kraw dzie prowadzimy mi dzy stanami postaci (i 0,...,i β 1 ) oraz (i 1,...,i β ). Wagi kraw dzi Waga(u v) = Waga(i 0,...,i β ) = Σ N β k=0

Algorytm O(n C+1 ) dla W = 2 Graf jest DAG-iem. Stan (0,..., 0) jest jedynym ¹ródªem. Reprezentuje drzewa obci te poni»ej ostatniego wierzchoªka. Stan (n 1,...,n 1) jest jedynym uj±ciem. Reprezentuje wszystkie drzewa z n li± mi. Waga kraw dzi odzwierciedla koszt przesuni cia linii obci cia o jeden poziom w gór. Wniosek: najkrótsza ±cie»ka ze ¹ródªa do uj±cia jest równa kosztowi optymalnego drzewa.

Algorytm O(n C+1 ) dla W = 2 Graf jest DAG-iem. Stan (0,..., 0) jest jedynym ¹ródªem. Reprezentuje drzewa obci te poni»ej ostatniego wierzchoªka. Stan (n 1,...,n 1) jest jedynym uj±ciem. Reprezentuje wszystkie drzewa z n li± mi. Waga kraw dzi odzwierciedla koszt przesuni cia linii obci cia o jeden poziom w gór. Wniosek: najkrótsza ±cie»ka ze ¹ródªa do uj±cia jest równa kosztowi optymalnego drzewa.

Algorytm O(n C+1 ) dla W = 2 Graf jest DAG-iem. Stan (0,..., 0) jest jedynym ¹ródªem. Reprezentuje drzewa obci te poni»ej ostatniego wierzchoªka. Stan (n 1,...,n 1) jest jedynym uj±ciem. Reprezentuje wszystkie drzewa z n li± mi. Waga kraw dzi odzwierciedla koszt przesuni cia linii obci cia o jeden poziom w gór. Wniosek: najkrótsza ±cie»ka ze ¹ródªa do uj±cia jest równa kosztowi optymalnego drzewa.

Algorytm O(n C+1 ) dla W = 2 Graf jest DAG-iem. Stan (0,..., 0) jest jedynym ¹ródªem. Reprezentuje drzewa obci te poni»ej ostatniego wierzchoªka. Stan (n 1,...,n 1) jest jedynym uj±ciem. Reprezentuje wszystkie drzewa z n li± mi. Waga kraw dzi odzwierciedla koszt przesuni cia linii obci cia o jeden poziom w gór. Wniosek: najkrótsza ±cie»ka ze ¹ródªa do uj±cia jest równa kosztowi optymalnego drzewa.

Algorytm O(n C+1 ) dla W = 2 Graf jest DAG-iem. Stan (0,..., 0) jest jedynym ¹ródªem. Reprezentuje drzewa obci te poni»ej ostatniego wierzchoªka. Stan (n 1,...,n 1) jest jedynym uj±ciem. Reprezentuje wszystkie drzewa z n li± mi. Waga kraw dzi odzwierciedla koszt przesuni cia linii obci cia o jeden poziom w gór. Wniosek: najkrótsza ±cie»ka ze ¹ródªa do uj±cia jest równa kosztowi optymalnego drzewa.

Algorytm O(n C+1 ) dla W = 2 Analiza zªo»ono±ci: Mamy O(n C ) stanów do przeszukania. Przetworzenie pojedynczego stanu wymaga rozpatrzenia n mo»liwych kraw dzi z niego wychodzacych. Po przemno»eniu otrzymujemy O(n C+1 ).

Algorytm O(n C+1 ) dla W = 2 Analiza zªo»ono±ci: Mamy O(n C ) stanów do przeszukania. Przetworzenie pojedynczego stanu wymaga rozpatrzenia n mo»liwych kraw dzi z niego wychodzacych. Po przemno»eniu otrzymujemy O(n C+1 ).

Algorytm O(n C+1 ) dla W = 2 Analiza zªo»ono±ci: Mamy O(n C ) stanów do przeszukania. Przetworzenie pojedynczego stanu wymaga rozpatrzenia n mo»liwych kraw dzi z niego wychodzacych. Po przemno»eniu otrzymujemy O(n C+1 ).

Algorytm O(n C ) dla W = 2 Macierz kosztów Dla ustalonego δ = (i 1,...,i β 1 ) deniujemy macierz A δ zadan wzorem: A δ (i,j) = Waga(i,δ,j) + Koszt(i,δ) j-ty wiersz macierzy zawiera wszystkie mo»liwe koszty dotarcia do stanu (i 1,...,i β,j).

Algorytm O(n C ) dla W = 2 Macierz kosztów Dla ustalonego δ = (i 1,...,i β 1 ) deniujemy macierz A δ zadan wzorem: A δ (i,j) = Waga(i,δ,j) + Koszt(i,δ) j-ty wiersz macierzy zawiera wszystkie mo»liwe koszty dotarcia do stanu (i 1,...,i β,j).

Algorytm O(n C ) dla W = 2 Mo»na pokaza,»e macierz ma tzw. wªasno± Monge'go: A δ (i,j) + A δ (i + 1,j + 1) A δ (i + 1,j) + A δ (i,j + 1) Takie macierze maj inn wªasno±, tzw. caªkowit monotoniczno± : A δ (i,j + 1) A i+1,j+1 = A δ (i,j) A δ (i + 1,j). Dla takich macierzy dziaªa tzw. algorytm SMAWK wyznaczaj cy minima wszystkich wierszy w czasie O(n). Intuicja: pojedyncze porównanie mo»e nam da informacj na temat liniowej liczby nierówno±ci w macierzy.

Algorytm O(n C ) dla W = 2 Mo»na pokaza,»e macierz ma tzw. wªasno± Monge'go: A δ (i,j) + A δ (i + 1,j + 1) A δ (i + 1,j) + A δ (i,j + 1) Takie macierze maj inn wªasno±, tzw. caªkowit monotoniczno± : A δ (i,j + 1) A i+1,j+1 = A δ (i,j) A δ (i + 1,j). Dla takich macierzy dziaªa tzw. algorytm SMAWK wyznaczaj cy minima wszystkich wierszy w czasie O(n). Intuicja: pojedyncze porównanie mo»e nam da informacj na temat liniowej liczby nierówno±ci w macierzy.

Algorytm O(n C ) dla W = 2 Mo»na pokaza,»e macierz ma tzw. wªasno± Monge'go: A δ (i,j) + A δ (i + 1,j + 1) A δ (i + 1,j) + A δ (i,j + 1) Takie macierze maj inn wªasno±, tzw. caªkowit monotoniczno± : A δ (i,j + 1) A i+1,j+1 = A δ (i,j) A δ (i + 1,j). Dla takich macierzy dziaªa tzw. algorytm SMAWK wyznaczaj cy minima wszystkich wierszy w czasie O(n). Intuicja: pojedyncze porównanie mo»e nam da informacj na temat liniowej liczby nierówno±ci w macierzy.

Algorytm O(n C ) dla W = 2 Mo»na pokaza,»e macierz ma tzw. wªasno± Monge'go: A δ (i,j) + A δ (i + 1,j + 1) A δ (i + 1,j) + A δ (i,j + 1) Takie macierze maj inn wªasno±, tzw. caªkowit monotoniczno± : A δ (i,j + 1) A i+1,j+1 = A δ (i,j) A δ (i + 1,j). Dla takich macierzy dziaªa tzw. algorytm SMAWK wyznaczaj cy minima wszystkich wierszy w czasie O(n). Intuicja: pojedyncze porównanie mo»e nam da informacj na temat liniowej liczby nierówno±ci w macierzy.

Plan prezentacji Sformuªowanie Modykacje problemu Zastosowania 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Modykacje Sformuªowanie Modykacje problemu Zastosowania Ograniczenie wysoko±ci drzewa. Wymóg, aby symbole byªy kodowane za pomoc sªów z zadanego j zyka regularnego.

Modykacje Sformuªowanie Modykacje problemu Zastosowania Ograniczenie wysoko±ci drzewa. Wymóg, aby symbole byªy kodowane za pomoc sªów z zadanego j zyka regularnego.

Plan prezentacji Sformuªowanie Modykacje problemu Zastosowania 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania

Zastosowania Sformuªowanie Modykacje problemu Zastosowania No±niki zyczne, w których z powodów technologicznych ogranicze«ka»dy bit 1 musi by poprzedzony co najmniej a zerami i co najwy»ej b bitami 0. Alfabet Morse'a: length( ) = 1, length( ) = 2. Drzewa decyzyjne, w którym podj cie ró»nych decyzji wi»e si z ró»nym kosztem.

Zastosowania Sformuªowanie Modykacje problemu Zastosowania No±niki zyczne, w których z powodów technologicznych ogranicze«ka»dy bit 1 musi by poprzedzony co najmniej a zerami i co najwy»ej b bitami 0. Alfabet Morse'a: length( ) = 1, length( ) = 2. Drzewa decyzyjne, w którym podj cie ró»nych decyzji wi»e si z ró»nym kosztem.

Zastosowania Sformuªowanie Modykacje problemu Zastosowania No±niki zyczne, w których z powodów technologicznych ogranicze«ka»dy bit 1 musi by poprzedzony co najmniej a zerami i co najwy»ej b bitami 0. Alfabet Morse'a: length( ) = 1, length( ) = 2. Drzewa decyzyjne, w którym podj cie ró»nych decyzji wi»e si z ró»nym kosztem.

Dodatek ródªa ródªa I Mordecai J. Golin, Günter Rote, A Dynamic Programming Algorithm for Constructing Optimal Prex-Free Codes for Unequal Letter Costs, IEEE Transactions on Information Theory, 1998 Phil Bradford, Mordecai J. Golin, Lawrence L. Larmore, Wojciech Rytter, Optimal Prex-Free Codes for Unequal Letter Costs and Dynamic Programming with the Monge Property, Journal of Algorithms, 2000 Vicky Choi, Mordecai J. Golin, Lopsided Trees: Analyses, Algorithms, and Applications, in Automata, Languages and Programming, Proceedings of the 23rd International Colloquium on Automata, Languages, and Programming (ICALP), 2000