Zadania przykładowe do kolokwium z AA2



Podobne dokumenty
Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Matematyczne Podstawy Informatyki

Zadanie 1. Zadanie 2. Zadanie 3. Zadanie 4. Zadanie 5. Zadanie 6. Zadania przykładowe do pierwszego kolokwium z AA

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

a) 7 b) 19 c) 21 d) 34

Temat: Algorytm kompresji plików metodą Huffmana

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Metody przeszukiwania

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Teoria informacji i kodowania Ćwiczenia

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Wyznaczanie optymalnej trasy problem komiwojażera

Kody Huffmana. Konrad Wypyski. 11 lutego 2006 roku

Matematyka Dyskretna - zadania

ZADANIE 1. Rozwiązanie:

ALGORYTMY GENETYCZNE ćwiczenia

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Złożoność obliczeniowa klasycznych problemów grafowych

Algorytmy genetyczne

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Porządek symetryczny: right(x)

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Optymalizacja. Wybrane algorytmy

Minimalne drzewa rozpinające

Algorytmika Problemów Trudnych

Nierówność Krafta-McMillana, Kodowanie Huffmana

Algorytmy i struktury danych. wykład 8

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Wysokość drzewa Głębokość węzła

Programowanie dynamiczne cz. 2

Kompresja bezstratna. Entropia. Kod Huffmana

Zadania laboratoryjne i projektowe - wersja β

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Wybrane podstawowe rodzaje algorytmów

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

AKD Metody słownikowe

Tworzenie gier na urządzenia mobilne

Wykład 10 Grafy, algorytmy grafowe

Aproksymacja funkcji a regresja symboliczna

Algorytmy stochastyczne laboratorium 03

Algorytmy zachłanne. dr inż. Urszula Gałązka

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

1 Automaty niedeterministyczne

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

Rozwiązywanie problemów metodą przeszukiwania

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

TEORETYCZNE PODSTAWY INFORMATYKI

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Metody Rozmyte i Algorytmy Ewolucyjne

Programowanie dynamiczne i algorytmy zachłanne

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Metoda podziału i ograniczeń

Sieć (graf skierowany)

Przykładowe rozwiązania

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

0-0000, , , itd

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Analiza algorytmów zadania podstawowe

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Konkursy w województwie podkarpackim w roku szkolnym 2016/2017

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Programowanie dynamiczne

Instrukcje dla zawodników

Algorytmiczna teoria grafów

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Ogólne wiadomości o grafach

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy sortujące i wyszukujące

Kodowanie informacji

Algorytmy ewolucyjne (3)

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010.

Teoria obliczeń i złożoność obliczeniowa

Definicja. Jeśli. wtedy

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

Wstęp do programowania

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Symulacja w przedsiębiorstwie

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

LZ77 LZ78. Kompresja danych. Tomasz Jurdziński. Wykład 5: kodowanie słownikowe

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Transkrypt:

1 Zadania przykładowe do kolokwium z AA2 Zadanie 1 Dla tekstu ALA MA KOTA ALE ON MA ALERGIĘ zilustruj działanie algorytmów: a) LZ77, b) LZ78, c) LZSS. Załóż, że maksymalna długość dopasowania to 4, rozmiar okna to 8. Zadanie 2 Odczytaj tekst 010100111100011010000 zakodowany kodem Huffmana wiedząc, że częstość występowania symboliwtekściejestnastępująca:a(3),b(1),k(1),r(4),m(1).gdybywtrakciebudowydrzewa Huffmana miała miejsce sytuacja, że do wyboru są więcej niż dwa węzły, wybierz węzły opisane literami najwcześniejszymi w porządku alfabetycznym. Zadanie 3 Wygeneruj wszystkie możliwe kody Huffmana dla tekstu ABRACADABRA. Zadanie 4 Poznany kod Huffmana jest kodem binarnym. Możliwe, i czasami stosowane w praktyce, są jednak także niebinarne kody Huffmana. Kod taki tworzy się w analogiczny sposób jak binarny kod Huffmana. Zamiast łączeniawęzłówwparyłączysięjewgrupypokwęzłóworazopisujekrawędziesymbolamiod0dok 1 otrzymując drzewa k-arne. Utwórz w ten sposób: trójkowy kod Huffmana dla tekstu ABRACADABRA, czwórkowy kod Huffmana dla tekstu KALORYFEROWNIA. Zadanie 5 Przy założeniu, że maksymalna długość dopasowania wynosi 256, rozmiar okna to 65536, a rozmiar alfabetu to 4 oszacuj dla algorytmu LZSS minimalny współczynnik kompresji(wyrażony w bps). Dla uproszczenia załóż, że kodowany tekst jest bardzo długi i nie bierz jego rozmiaru pod uwagę. Przez minimalny rozumiemy taki współczynnik kompresji, który ma miejsce w sytuacji, kiedy tekst kompresuje się najgorzej jak to jest możliwe. Zadanie 6 Podaj przykład tekstu długości 6(wliczając wartownika), dla którego łączna liczba symboli opisujących krawędzie w drzewie sufiksów jest maksymalna. Podaj regułę tworzenia takich najgorszych tekstów.

2 Zadanie 7 Zbuduj drzewa sufiksów dla tekstów: mississippi, katarakta. Zadanie 8 Zbuduj uogólnione drzewo sufiksów dla zbioru tekstów: {Ola, Ala, Ania, Asia}. Zadanie 9 Zbuduj uogólnione drzewo sufiksów dla tekstów {tekstowy, rajstopy} i znajdź za jego pomocą najdłuższe wspólne podsłowo tych tekstów. Zadanie 10 Zilustruj proces wyszukiwania najdłuższego podsłowa, którego wersja zapisana od końca także występuje w tekście abarcdrabde. W tym celu: zbuduj uogólnione drzewo sufiksów, wyznacz węzeł o największej głębokości, odczytaj pozycję znalezionego podsłowa. Zadanie 11 Zaproponuj liniowy algorytm znajdujący najdłuższe powtarzające się podsłowo w tekście. Przykładowo dla tekstu abracadabra wynikiem ma być abra. Zastanów się nad dwoma wersjami tego problemu: podsłowa nie mogą na siebie nachodzić, podsłowa mogą na siecie nachodzić. Zadanie 12 Zbuduj tablice sufiksów dla tekstów: mississippi, katarakta. Zadanie 13 Federacja kolarska musi utworzyć reprezentację na Wielki Wyścig Tandemów. W trakcie dobierania zawodnikówwparydoszłodokonfliktu,gdyżokazałosię,żeczęśćzawodnikówniechcewystąpićzesobąwjednej parze. Aby rozwiązać problem rozesłano wśród zawodników ankiety, w których każdy miał się wypowiedzieć,

3 zkimmożeutworzyćparę.jeżelizawodnicyonumerachxiymogąutworzyćjednąparę,tofakttenzapisujemywnastępującysposób:x Y.Mającdanewynikiankietynależydobraćzawodnikówwparytak,aby liczba utworzonych par była maksymalna i oczywiście każdy zawodnik był przypisany tylko do jednej pary. Zaproponuj algorytm(zapisz jego pseudokod) umożliwiający rozwiązanie powyższego problemu. Wykonaj algorytm(przedstaw kolejne etapy działania) dla listy podanej poniżej: 1 6 2 7 3 6 4 5 5 2 6 4 7 1 8 3 9 1 Zadanie 14 Zaproponuj modyfikację procedury FWUC(rys. 1), która umożliwi wyznaczenie ujemnego cyklu, a nie tylko jego wykrycie. Zapisz treść zmodyfikowanej procedury FWUC. Zadanie 15 Bankring polega na przełamywaniu prawno-technicznych zabezpieczeń związanych z funkcjonowaniem banków nie naruszając ich regulaminów. Wiele banków za zdeponowanie pieniędzy wypłaca prowizję. Tak więc przelewając pieniądze z banku X do banku Y ponosimy z jednej strony koszty związanie z opłatą za przelew bankowy, z drugiej strony za zdeponowane pieniądze bank przelewa nam prowizję. Cała operacja kosztuje nas kwotę jaką stanowi różnica pomiędzy opłatą za przelew, a prowizją. Zakładając, że mamy założone konta w różnych bankach można wyobrazić sobie sytuację, w której po wprowadzeniu w obieg stałej kwoty, stan kontbędzieciąglewzrastał.jeśliprzelewzbankuxdobankuy kosztujenaskzłotych,tofakttenzapisujemy:x YK,np.zapis:BankA BankB10oznacza,żeprzelewzBankuAdoBankuBbędzienas kosztował 10 złotych(różnica między opłatą, a prowizją). Zaproponuj algorytm(podaj pseudokod), który dla zadanej listy opisującej przelewy i ich koszty wyznaczy ciąg banków, który będzie generował wzrost stanu na koncie. Wykonaj algorytm(przedstaw kolejne etapy działania) dla listy podanej poniżej: Bank1 Bank2 2 Bank1 Bank3 4 Bank1 Bank5 3 Bank2 Bank1 2 Bank2 Bank3 8 Bank2 Bank5 1 Bank3 Bank1 6 Bank3 Bank2 2 Bank3 Bank4 4 Bank3 Bank5 3 Bank4 Bank1 1 Bank4 Bank5 5 Bank5 Bank4 1 Zadanie 16 Mrówki postanowiły dokonać zapasów na najbliższą zimę. Mapa mrowiska została przedstawiona na poniższym rysunku.

4 1 {Wejście: macierz D będąca macierzą wag łuków} 2 {Wyjście: informacja o występowaniu w grafie ujemnego cyklu} 3 procedure FWUC(D); 4 begin 5 uc:=false;k:=1; 6 fori:=1tondo {wyznaczeniemacierzyd 0 } 7 d[i,i]:=0; 8 end for; 9 whilenotucandk ndo 10 i:=1; 11 whilenotucandi ndo {wyznaczeniemacierzyd k } 12 ifd[i,k] then 13 ifd[i,k]+d[k,i]<0then {znalezionoujemnycykl} 14 uc:= true; 15 else 16 forj:=1tondo 17 d[i,j]:=min{d[i,j],d[i,k]+d[k,j]}; 18 end for; 19 end if; 20 end if; 21 i:=i+1; 22 end while; 23 k:=k+1; 24 end while; 25 end. Rys. 1. Algorytm wykrywania ujemnego cyklu za pomocą algorytmu Floyda Warshalla 2 5 6 9 2 4 10 3 7 4 7 15 6 5 1 6 Mrowisko ma dwa wejścia znajdujące się odpowiednio w punktach 1 i 2, a także jedną spiżarnię znajdującą się w punkcie 7. Mrówki transportują pokarm z wejść do spiżarni, przy czym korytarzem łączącym dwa punkty mogą w ciągu jednego dnia przenieść ograniczoną ilość pokarmu(na rysunku zaznaczono ile maksymalnie pokarmu są w stanie przenieść mrówki). Stosując jeden z algorytmów przedstawionych na zajęciach, wyznacz maksymalną ilość pokarmu jaką są w stanie przenieść mrówki z wejść do spiżarni w ciągu jednego dnia. Nazwij zastosowany algorytm i przedstaw kolejne etapy jego działania. Zadanie 17

5 StosującalgorytmForda-Fulkersonawyznaczmaksymalnyprzepływwsiecizeźródłas=1doujśćt 1 =6 it 2 =7.Przedstawkolejnekrokiwyznaczaniarozwiązania.Przywyznaczaniuścieżkipowiększającejdo ścieżki jest zawsze włączany wierzchołek o jak najmniejszym numerze. 2 4 6 4 6 9 1 3 5 8 10 8 3 2 5 7 Zadanie 18 Bajtolini zamierza otworzyć swoją firmę programistyczną, niestety zamieszkuje on krainę gdzie panuje ogromna biurokracja. Przed założeniem firmy należy odwiedzić szereg urzędów gdzie należy pobrać odpowiednie druki, które z kolei należy złożyć w innych urzędach. Czasem nie jest możliwe pobranie druków z urzędu jeżeli wcześniej nie zostały w nim złożone druki pobrane z innego urzędu. Jeżeli w urzędzie X należy pobrać druk,którymabyćzłożonywurzędziey,tofakttakizapisujemywnastępującysposób:x Y.Dlatak podanego opisu składania druków w urzędach należy zaproponować algorytm, który umożliwi odpowiedź na pytanie, w jakiej kolejności należy odwiedzać poszczególne urzędy aby założyć firmę(należy skorzystać z jednego z algorytmów, które zostały przedstawione w trakcie zajęć). Zaproponowany algorytm należy wykonać dla następujących danych: 1 5 1 6 2 1 3 1 3 2 3 5 4 1 7 1 Zadanie 19 Wykonać algorytm Johnsona dla grafu składającego się z czterech wierzchołków, opisanego macierzą wag. 1 2 3 4 1 5 1 2 2 3-3 4-4 2 Zadanie 20 Wykaż, że jeżeli graf nie zawiera cykli o ujemnej długości, to po wykonaniu algorytmu Bellmana-Forda dlakażdegołuku(u,v)spełnionajestzależność:d[v] d[u]+w(u,v),gdzied[v]id[u]sąrównedługości

6 najkrótszej ścieżki z ustalonego wierzchołka źródłowego do wierzchołków odpowiednio v i u, a w(u, v) jest wagąłuku(u,v). Zadanie 21 Zilustruj działanie operatora krzyżowania PMX dla genomów(reprezentacja ścieżkowa): 15348627oraz31528647jeślipunktycięciato:2i5, 32154876oraz12345678jeślipunktycięciato:3i5. Zadanie 22 Zilustruj działanie algorytmu krzyżowania jednopunktowego genomów(reprezentacja ścieżkowa): 15348627 oraz 31528647 jeśli punkty cięcia to: 2, 32154876 oraz 12345678 jeśli punkty cięcia to: 4. Zadanie 23 Zilustruj działanie algorytmu krzyżowania dwupunktowego genomów(reprezentacja ścieżkowa): 15348627oraz31528647jeślipunktycięciato:2i5, 32154876oraz12345678jeślipunktycięciato:3i5. Zadanie 24 Zilustruj działanie algorytmu krzyżowania jednopunktowego genomów(reprezentacja binarna): 0110101011 oraz 1101010110 jeśli punkty cięcia to: 5, 0110101101 oraz 0010001010 jeśli punkty cięcia to: 4. Zadanie 25 Zilustruj działanie algorytmu krzyżowania dwupunktowego genomów(reprezentacja binarna): 0110101011oraz1101010110jeślipunktycięciato:2i5, 0110101101oraz0010001010jeślipunktycięciato:4i7. Zadanie 26 Celem jest znalezienie ciągu bitowego zawierającego same jedynki. Wobec tego funkcja oceny zwraca wartość będącą liczbą jedynek w genomie. Populacja początkowa składa się z następujących osobników:

7 0101001011, 0110110110, 1010111010, 0101000110, 0000110100, 1110100111. Stosując metodę ruletki wyznacz osobniki do krzyżowania zakładając, że generator liczb losowych generuje następujący ciąg liczb z zakresu[0, 100): 15, 12, 58, 35, 47, 91. Następnie wykonaj krzyżowanie jednopunktowe przy założeniu punktów cięcia: 3, 5, 7 oraz oceń uzyskane osobniki. Podaj średnią wartość funkcji przystosowania w populacji początkowej oraz populacji otrzymanej. Zadanie 27 Dany jest problem komiwojażera dla 7 miast. Odległości pomiędzy miastami definiuje poniższa tabela. A B C D E F G A 3 5 4 3 12 8 B 3 7 11 8 15 4 C 5 7 22 4 10 8 D 4 11 22 8 9 7 E 3 8 4 8 13 6 F 12 15 10 9 13 4 G 8 4 8 7 6 4 Zilustruj 10 etapów algorytmu symulowanego wyżarzania rozwiązującego ten problem przy następujących założeniach: początkowe rozwiązanie to ABCDEFG, przez ruch należy rozumieć zamianę kolejności dwóch miast sąsiadujących z sobą w aktualnej trasie, kolejnetemperaturywschemacieschładzaniato:10,9,8,7,6,5,4,3,2,1, kolejneliczbylosowezzakresu[0,1)generowaneprzezgeneratorto:0.3,0.4,0.9,0.2,0.4,0.5,0.9,0.1, 0.3, 0.8, wkolejnychetapachlosowanesąnastępująceruchy:1 2,3 4,4 5,5 6,1 2,7 1,3 4,2 3,1 2,5 6.