Komiwojażer na płaszczyźnie

Wielkość: px
Rozpocząć pokaz od strony:

Download "Komiwojażer na płaszczyźnie"

Transkrypt

1 Komiwojażer na płaszczyźnie Paweł Gawrychowski Uniwersytet Wrocławski & Max-Planck-Institut für Informatik 18 marca 2014 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

2 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

3 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

4 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

5 ETSP W Euclidean Travelling Salesman Problem dostajemy n punktów na płaszczyźnie (x i, y i ). Celem jest znalezienie permutacji π, która minimalizuje sumaryczna długość trasy, czyli (x π(i+1) x π(i) ) 2 + (y π(i+1) y π(i) ) 2. i Interesuje nas skonstruowanie efektywnego algorytmu dla tego problemu. Efektywność mierzymy w dwóch kategoriach: 1 czas działania, 2 potrzebna pamięć. d(i, j) = (x i x j ) 2 + (y i y j ) 2 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

6 Zacznijmy od najprostszego pomysłu: sprawdźmy wszystkie możliwe permutacje π. Niestety jest ich dość sporo, bo aż n! (n/e) n. Już dla n = 15 ten pomysł nie ma najmniejszych szans na sukces. No to może trzeba choć chwilę pomyśleć? Spróbujmy skorzystać z techniki nazywanej przez informatyków programowaniem dynamicznym. Prosta obserwacja Zamiast szukać najkrótszej trasy, równie dobrze możemy szukać najkrótszej ścieżki, która zaczyna się (x 1, y 1 ), kończy w ustalonym (x e, y e ), i odwiedza każdy punkt. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

7 Zdefiniujmy S[A][i] jako długość najkrótszej ścieżki, która zaczyna się (x 1, y 1 ), kończy w (x i, y i ), i dla każdego j A przechodzi przez (x j, y j ). Wynik to po prostu min e S[{1, 2,..., n}][e] + d(1, e). Chcielibyśmy wyznaczyć wszystkie sensowne S[A][i], czyli takie, dla których {1, i} A. Od czego zaczać? Co dalej? S[{1}][1] = 0 Popatrzmy na S[A][i], gdzie {1, i} A oraz 1 i. Najkrótsza możliwa ścieżka, która kończy się w (x i, y i ), ma postać 1... j i. Czyli jej długość to po prostu S[A \ {i}][j] + d(j, i). Co prawda nie znamy j, ale przecież możemy sprawdzić wszystkie możliwości! S[A][i] = min S[A \ {i}][j] + d(j, i) j A,j i Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

8 Daje nam to dość proste rozwiazanie, które wymaga wykonania około 2 n n 2 operacji. Pracowicie wyliczamy S[A][i] dla kolejnych A oraz i. Każde S[A][i] można wyliczyć wykonujac tylko n operacji, jeśli znamy już wszystkie S[A ][i ], dla których A < A. n = 15 Dla n = 15 potrzebujemy tylko kilku milionów operacji, czyli pewnie kilku sekund. Nawet dla n = 30 czas działania to pewnie tylko kilka minut, pojawia się jednak inny problem: musimy przechowywać wszystkie S[A][i], co wymaga kilkunastu gigabajtów pamięci RAM. A z tym może być problem... Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

9 Czyli uzyskaliśmy istotnie lepsza złożoność czasowa kosztem istotnie lepszej złożoności pamięciowej. rozwiazanie naiwne O((n/e) n n) O(n) programowanie dynamiczne O(2 n n 2 ) O(2 n n) następny slajd O(4 n n O(log n) ) O(n) Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

10 Niech S(i, A, j) będzie długościa najkrótszej ścieżka, która zaczyna się w i, kończy w j, i dla każdego k A przechodzi przez (x k, y k ) (zakładamy, że i, j A). Interesuje nas wyliczenie S(i, {1, 2,..., n}, j). Jak podzielić problem na mniejsze? Niech i... j będzie ścieżka odpowiadajac a S(i, A, j). Wybierzmy z, które jest jej (mniej więcej) środkowym elementem i zdefiniujmy: 1 A 1 jako zbiór elementów przed z na ścieżce, włacznie z i. 2 A 2 jako zbiór elementów po z na ścieżce, włacznie z j. Wtedy S(i, A, j) = S(i, A 1 {z}, z) + S(z, A 2 {z}, j). Czyli aby wyliczyć S(i, A, j) wystarczy wyznaczyć S(i, A 1 {z}, z) i S(z, A 2 {z}, j). Problem Ale przecież nie znamy z, A 1, A 2. Z braku lepszych pomysłów możemy jednak sprawdzić wszystkie możliwości. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

11 Spróbujmy oszacować całkowity czas działania T (n). Mamy n możliwych wyborów z i 2 n 3 możliwych podziałów A \ {z} na A 1 i A 2. Czyli: T (n) = O(n2 n 3 (T (n/2 + 1) + T (n/2 + 1)) = O(n2 n T (n/2 + 1)) Po rozpisaniu łatwo uwierzyć, że T (n) = O(4 n n O(log n) ). Gurevich i Shelah 1987 Powyższy algorytm działa w czasie O(4 n n O(log n) ) i pamięci O(n). Koivisto i Parviainen 2010 Dla dowolnego parametru S ( (2), 2), można skonstruować algorytm, który działa w czasie O(T n ) i pamięci O(S n ), gdzie TS < 4. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

12 Powyz sze rozwiazania zupełnie nie korzystały z tego, z e d(i, j) to odległos c euklidesowa. Byc moz e jest tak, z e takie załoz enie istotnie upraszcza problem, i moz na skonstruowac algorytm, który działa w wielomianowym czasie i wielomianowej pamieci. Papadimitriou 1977 ETSP jest NP-trudny. A moz e NP-zupełny? 1 Aby mówic o NP-zupełnos ci, trzeba zdefiniowac problem decyzyjny, czyli pytac o istnienie trasy, której długos c D. 2 Nie wiadomo. Problemem jest to, z e musimy wyliczac wyraz enia P q postaci i (xπ(i+1) xπ(i) )2 + (yπ(i+1) yπ(i) )2, co moz e wymagac wyznaczania wielu cyfr po przecinku. Paweł Gawrychowski Komiwojaz er na płaszczyz nie 18 marca / 31

13 P vs NP Rozważamy problemy, dla których odpowiedź to TAK/NIE. Czy istnieje trasa o długości D, która odwiedza wszystkie punkty? Zakładamy, że dane wejściowe to ciag n bitów, czyli kodujemy binarnie wszystkie współrzędne x i i y i. Także wszystkie tymczasowe dane przechowywane przez nasz algorytm to ciagi bitów. Problem należy do klasy złożoności P Jeśli można skonstruować dla niego deterministyczny algorytm o czasie działania O(n c ), gdzie c to dowolna liczba naturalna. Problem należy do klasy złożoności NP Jeśli można skonstruować dla niego niedeterministyczny algorytm o czasie działania O(n c ), gdzie c to dowolna liczba naturalna. Niedeterministyczny oznacza tutaj, że możemy korzystać z życzliwej podpowiedzi. Taka podpowiedź to kolejny ciag bitów długości O(n c ). Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

14 Przykład Grahama Nie będziemy się tym przejmować. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

15 No dobrze, ale może wcale nie potrzebujemy wyznaczać trasy, która jest najkrótsza. Może wystarczyłoby nam wyznaczenie takiej, która jest krótka. Konkretniej, jeśli ALG to nasze rozwiazanie, a OPT to rozwiazanie optymalne, ALG c OPT, gdzie c jest bliskie 1. Arora 1996 Dla każdego ɛ > 0 istnieje wielomianowy algorytm, który aproksymuje ETSP ze współczynnikiem 1 + ɛ. Mówimy, że istnieje wielomianowy schemat aproksymacji (PTAS) dla tego problemu. Niestety czas działania tego wielomianowego algorytmu to w najlepszym wypadku O(n log 1 ɛ n), czyli raczej sporo. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

16 Spróbujemy skonstruować dokładny algorytm o czasie działania O(n O( n) ). Nie będzie on super praktyczny, ale: 1 ma intrygujaco wygladaj ac a złożoność czasowa, 2 liniowa (czyli optymalna) złożoność pamięciowa, 3 korzysta z fajnej sztuczki zwiazanej z grafami planarnymi, która jest ciekawa sama w sobie. Smith 1989, Kann 1992, Hwang, Chang, Lee 1993 ETSP może być rozwiazany w czasie O(n O( n) ) i pamięci O(n). Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

17 Pierwsza prosta obserwacja Krawędzie najkrótszej trasy nie przecinaja się ze soba. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

18 Pierwsza prosta obserwacja Krawędzie najkrótszej trasy nie przecinaja się ze soba. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

19 Pierwsza prosta obserwacja Krawędzie najkrótszej trasy nie przecinaja się ze soba. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

20 Pierwsza prosta obserwacja Krawędzie najkrótszej trasy nie przecinaja się ze soba. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

21 Czyli możemy patrzeć na optymalne rozwiazanie jako na graf planarny G = (V, E). Obydwa przedstawione wcześniej rozwiazania opierały się na rozbiciu oryginalnego problemu na dwa mniejsze, naturalne jest więc przyjrzenie się separatorom w grafach planarnych. Mówimy, że S jest (A, B)-separatorem, jeśli V = A S B i w E nie ma krawędzi łacz acych wierzchołki z A i B. S jest dobrym separatorem, jeśli jest (A, B)-separatorem, gdzie A, B 2 3 V. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

22 Wiadomo, że w każdym grafie planarnym istnieje dobry separator o rozmiarze O( n). My potrzebujemy jednak silniejszego twierdzenia. Miller 1986 W każdym dwuspójnym grafie planarnym można znaleźć cykl prosty na co najwyżej 2 2 d 2 n wierzchołkach, który jest dobrym separatorem. n to liczba wierzchołków w grafie d to maksymalny rozmiar ściany grafu Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

23 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

24 W grafie planarnym, który odpowiada optymalnemu rozwiazaniu, d może (a pewnie nawet i musi) być dość spore. Łatwo sobie z tym jednak poradzić dodajac nowe krawędzie. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

25 W grafie planarnym, który odpowiada optymalnemu rozwiazaniu, d może (a pewnie nawet i musi) być dość spore. Łatwo sobie z tym jednak poradzić dodajac nowe krawędzie. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

26 W grafie planarnym, który odpowiada optymalnemu rozwiazaniu, d może (a pewnie nawet i musi) być dość spore. Łatwo sobie z tym jednak poradzić dodajac nowe krawędzie. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

27 W grafie planarnym, który odpowiada optymalnemu rozwiazaniu, d może (a pewnie nawet i musi) być dość spore. Łatwo sobie z tym jednak poradzić dodajac nowe krawędzie. I być może 3 nowe wierzchołki. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

28 Kluczowy pomysł Wyobraźmy sobie graf planarny odpowiadajacy optymalnemu rozwiazaniu. Znajdźmy w nim cykl prosty C, który jest dobrym separatorem i popatrzmy, w jaki sposób przecina go nasza trasa. Trasa przecina cykl tylko w jego wierzchołkach. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

29 Kluczowy pomysł Wyobraźmy sobie graf planarny odpowiadajacy optymalnemu rozwiazaniu. Znajdźmy w nim cykl prosty C, który jest dobrym separatorem i popatrzmy, w jaki sposób przecina go nasza trasa. Trasa przecina cykl tylko w jego wierzchołkach. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

30 Kluczowy pomysł Wyobraźmy sobie graf planarny odpowiadajacy optymalnemu rozwiazaniu. Znajdźmy w nim cykl prosty C, który jest dobrym separatorem i popatrzmy, w jaki sposób przecina go nasza trasa. Trasa przecina cykl tylko w jego wierzchołkach. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

31 Dziel-i-zwyciężaj Sytuacja na zewnatrz cyklu jest w zasadzie niezależna od sytuacji w jego wnętrzu. Istotne jest tylko to, w których wierzchołkach następuje przejście na druga stronę, no i w jaki sposób połaczone sa ze soba te przejścia. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

32 Dziel-i-zwyciężaj Sytuacja na zewnatrz cyklu jest w zasadzie niezależna od sytuacji w jego wnętrzu. Istotne jest tylko to, w których wierzchołkach następuje przejście na druga stronę, no i w jaki sposób połaczone sa ze soba te przejścia. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

33 Dziel-i-zwyciężaj Sytuacja na zewnatrz cyklu jest w zasadzie niezależna od sytuacji w jego wnętrzu. Istotne jest tylko to, w których wierzchołkach następuje przejście na druga stronę, no i w jaki sposób połaczone sa ze soba te przejścia. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

34 Dziel-i-zwyciężaj Jeśli wiemy gdzie i jak dokładnie następuja przejścia na druga stronę, możemy osobno rozważyć sytuację na zewnatrz i wewnatrz cyklu. A dokładniej, możemy rekurencyjnie znaleźć dla nich optymalne rozwiazania. Drobny problem W oryginalnym problemie szukaliśmy trasy, która przechodzi przez każdy punkt. W otrzymanych (istotnie) mniejszych problemach sytuacja jest bardziej skomplikowana: szukamy zbioru ścieżek łacz acych podane pary punktów (s i, t i ) o takiej własności, że każdy z podanych punktów v j leży na jednej ze ścieżek. Nie przejmujmy się tym. Oczywiście nie mamy takiej informacji. Ba, nie znamy nawet C! Jak sobie z tym poradzić? Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

35 Zgadnijmy C oraz to, jak wygladaj a przejścia na druga stronę. Zgadnijmy oznacza tutaj oczywiście sprawdźmy wszystkie możliwości. Skoro C O( n), mamy tylko O(n O( n) ) możliwych wyborów C. Okazuje się, że istotnie różnych sposób, na które można przechodzić przez wierzchołki C, jest tylko 2 C ( C )!, czyli też O(n O( n) ). Mamy więc następujac a rekurencję na całkowity czas działania: T (n) = O(n O( n) )(T (n 1 ) + T (n 2 )) = O(n O( n) )T ( 2 3 n) czyli T (n) = O(n O( 2 n+ 3 n+ ( 2 3) 2 n+...) ) = O(n O( n) ). Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

36 Co dalej? Nie wiadomo, czy da się lepiej. Można więc zastanawiać się nad specjalnymi przypadkami, w których podane punkty maja dodatkowa strukturę. Jeśli wszystkie punkty leża na otoczce wypukłej, najlepsza możliwa trasa to po prostu ta otoczka. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

37 Co dalej? Nie wiadomo, czy da się lepiej. Można więc zastanawiać się nad specjalnymi przypadkami, w których podane punkty maja dodatkowa strukturę. Jeśli wszystkie punkty leża na otoczce wypukłej, najlepsza możliwa trasa to po prostu ta otoczka. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

38 W miarę naturalne jest więc następujace pytanie: powiedzmy, że mamy n punktów, z których tylko k leży wewnatrz otoczki wypukłej. Czy da się skonstruować algorytm, który będzie efektywny dla małych wartości k nawet, jeśli n jest duże? Lub, mówiac inaczej, będzie być może wykładniczy ze względu na k, ale wielomianowy ze względu na n. Deineko, Hoffman, Okamoto, Woeginger 2004 Tak zdefiniowany problem można rozwiazać w czasie O(2 k k 2 n). Knauer i Spillner 2006 A nawet O(k O( k) k 1.5 n 3 ). To szybsze rozwiazanie jest oparte na programowaniu dynamicznym. Oznacza to, że jego złożoność pamięciowa jest niestety również wykładnicza. Ale może da się jakoś inaczej? Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

39 Istnieje algorytm, który działa w czasie O(nk 2 + k O( k) ) i używa pamięci O(n). Idea Modyfikujemy algorytm oparty na separatorach. Problematyczne jest to, że być może n jest istotnie większe niż k... Kernelizacja Czyli problemem jest dla nas sytuacja, w której liczba punktów na otoczce jest istotnie większa niż liczba punktów w środku. Okazuje się, że w takim wypadku można ze spokojnym sumieniem zapomnieć o wszystkich poza ( k 2) + k odcinkach otoczki. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

40 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

41 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

42 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

43 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

44 Odcinki otoczki, które należa do trasy, sa nudne. Co więcej, najwyżej k z nich nie jest nudnych. Chcielibyśmy pozbyć się wszystkich nudnych odcinków otoczki......ale oczywiście nie znamy optymalnego rozwiazania, więc nie mamy jak stwierdzić, które odcinki sa nudne. Pomysł Wyznaczymy zbiór ( k 2) + k odcinków otoczki A o takiej własności, że w optymalnym rozwiazania ciekawe odcinki otoczki na pewno sa zawarte w A. Jak? Konstruujemy graf dwudzielny, w której każdemu odcinkowi otoczki odpowiada jeden wierzchołek po lewej stronie, a każdej możliwej ścieżce w środku otoczki jeden wierzchołek po prawej stronie. Koszt połaczenia odcinka otoczki z ścieżka w środku jest zdefiniowany w naturalny sposób. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

45 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

46 Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

47 Teraz okazuje się, że wystarczy znaleźć najtańsze skojarzenie prawych wierzchołków do lewych, a następnie można spokojnie zapomnieć o wszystkich lewych wierzchołkach (czyli odcinkach otoczki), które nie zostały skojarzone. Czyli pozwala to na zmniejszenie n do O(k 2 ). To nie wszystko! Ten pomysł daje algorytm działajacy w czasie O(nk 2 + k O(k) ), czyli za wolno. Dodatkowe pomysły: 1 ważona wersja lematu o separatorze, 2 przycinanie problemu w każdym wywołaniu rekurencyjnym. Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

48 Pytania? Paweł Gawrychowski Komiwojażer na płaszczyźnie 18 marca / 31

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Algorytmy aproksymacyjne i parametryzowane

Algorytmy aproksymacyjne i parametryzowane Algorytmy aproksymacyjne i parametryzowane Marek Cygan Uniwersytet Warszawski 18 października 2012 Marek Cygan Algorytmy aproksymacyjne i parametryzowane 1/22 Wstęp W algorytmice problemy dzielimy na obliczeniowo

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań dopuszczalnych. NP-optymalizacyjny problem Π składa się: zbioru instancji D Π rozpoznawalnego

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany , 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór

Bardziej szczegółowo

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n

Problem skoczka szachowego i inne cykle Hamiltona na szachownicy n x n i inne cykle Hamiltona na szachownicy n x n Uniwersytet Warszawski 15 marca 2007 Agenda 1 2 naiwne Prosty algorytm liniowy 3 Problem znany był już od bardzo dawna, jako łamigłówka logiczna. Był też stosowany

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

Wykład 4. Droga i cykl Eulera i Hamiltona

Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. i Hamiltona Wykład 4. i Hamiltona 1 / 35 Grafy Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką

Bardziej szczegółowo

Złożoność algorytmów. Wstęp do Informatyki

Złożoność algorytmów. Wstęp do Informatyki Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność

Bardziej szczegółowo

Sprzedaż online. Piotr Sankowski Uniwersytet Warszawski Warszawa p. 1/40

Sprzedaż online. Piotr Sankowski Uniwersytet Warszawski Warszawa p. 1/40 Sprzedaż online Piotr Sankowski Uniwersytet Warszawski Warszawa 18.04.2013 - p. 1/40 Plan wykładu Problem skojarzeń online Algorytm zachłanny Algorytm losowo rankujacy Dolne ograniczenie Problem aukcji

Bardziej szczegółowo

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Algorytmy w teorii liczb

Algorytmy w teorii liczb Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

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

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

Bardziej szczegółowo

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

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

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

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona Wykład 4. Droga i cykl Eulera i Hamiltona 1 / 92 Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie

Bardziej szczegółowo

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj Techniki konstruowania algorytmów Metoda dziel i zwyciężaj Technika dziel i zwyciężaj Aby rozwiązać problem techniką dziel i zwyciężaj musi on wykazywać własność podstruktury rozwiązanie problemu można

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.

Bardziej szczegółowo

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Politechnika Poznańska Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Joanna Józefowska POZNAŃ 2010/11 Spis treści Rozdział 1. Metoda programowania dynamicznego........... 5

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

Bardziej szczegółowo

Matematyka od zaraz zatrudnię

Matematyka od zaraz zatrudnię Uniwersytet Jagielloński Gdzie jest matematyka? Soczewka, 26-28 listopada 2010 Kolorowanie grafów Dobre kolorowanie wierzchołków grafu, to nadanie im kolorów w taki sposób, że każde dwa wierzchołki połaczone

Bardziej szczegółowo

Przykłady problemów optymalizacyjnych

Przykłady problemów optymalizacyjnych Przykłady problemów optymalizacyjnych NAJKRÓTSZA ŚCIEŻKA W zadanym grafie G = (V, A) wyznacz najkrótsza ścieżkę od wierzchołka s do wierzchołka t. 2 7 5 5 3 9 5 s 8 3 1 t 2 2 5 5 1 5 4 Przykłady problemów

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

Zakładamy, że maszyna ma jeden stan akceptujacy.

Zakładamy, że maszyna ma jeden stan akceptujacy. Złożoność pamięciowa Rozważamy następujac a maszynę Turinga: 1 0 0 1 1 0 1 1 1 1 Taśma wejściowa (read only) 1 0 1 1 0 0 0 1 0 0 1 Taśma robocza (read/write) 0 1 1 0 0 1 0 0 1 Taśma wyjściowa (write only)

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

Znajdowanie skojarzeń na maszynie równoległej

Znajdowanie skojarzeń na maszynie równoległej 11 grudnia 2008 Spis treści 1 Skojarzenia w różnych klasach grafów Drzewa Grafy gęste Grafy regularne dwudzielne Claw-free graphs 2 Drzewa Skojarzenia w drzewach Fakt Wybierajac krawędź do skojarzenia

Bardziej szczegółowo

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

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ). Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze

Bardziej szczegółowo

Elementy teorii grafów Elementy teorii grafów

Elementy teorii grafów Elementy teorii grafów Spis tresci 1 Spis tresci 1 Często w zagadnieniach praktycznych rozważa się pewien zbiór obiektów wraz z zależnościami jakie łączą te obiekty. Dla przykładu można badać pewną grupę ludzi oraz strukturę

Bardziej szczegółowo

Przecięcia odcinków. Wykład /07

Przecięcia odcinków. Wykład /07 Przecięcia odcinków Wykład 2 2006/07 Problem Dane: zbiór S={s 1,...,s n } odcinków na płaszczyźnie Wynik: zbiór punktów przecięć wszystkich odcinków z S, wraz z informacją które odcinki przecinają się

Bardziej szczegółowo

5. Najkrótsze ścieżki

5. Najkrótsze ścieżki p. Definicja 5. Najkrótsze ścieżki 5.1 Odległości w grafach: definicje i własności (Długość ścieżki). Długościa ścieżki nazywamy liczbę krawędzi występujacych w tej ścieżce. Bardziej formalnie, jeżeli

Bardziej szczegółowo

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27

Dynamiczne drzewa. Piotr Sankowski. - p. 1/27 Piotr Sankowski - p. 1/27 przypomnienie czas O(log 2 n), jak to zrobić w czasie O(log n), jak to zrobić w pesymistycznym czasie O(log n) (szkic). - p. 2/27 Operacje na dynamicznych drzewach: parent(v)

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów

Bardziej szczegółowo

Algorytmy aproksymacyjne dla problemów stochastycznych

Algorytmy aproksymacyjne dla problemów stochastycznych Algorytmy aproksymacyjne dla problemów stochastycznych Piotr Sankowski Uniwersytet Warszawski PhD Open, 5-6 grudzień, 2008 - p. 1/47 Plan - Wykład III Aproksymacyjne algorytmy online Aproksymacyjne stochastyczne

Bardziej szczegółowo

Teoria grafów - Teoria rewersali - Teoria śladów

Teoria grafów - Teoria rewersali - Teoria śladów 17 maja 2012 1 Planarność Wzór Eulera Kryterium Kuratowskiego Algorytmy testujące planarność 2 Genom i jego przekształcenia Grafy złamań Sortowanie przez odwrócenia Inne rodzaje sortowania Algorytmy sortujące

Bardziej szczegółowo

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

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................

Bardziej szczegółowo

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka Grafy planarne Przemysław Gordinowicz Instytut Matematyki, Politechnika Łódzka Grafy i ich zastosowania Wykład 12 Plan prezentacji 1 Wprowadzenie 2 Podstawy 3 Fundamentalne twierdzenie 4 Kolorowanie grafów

Bardziej szczegółowo

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA

Bardziej szczegółowo

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14 Algorytmy dynamiczne Piotr Sankowski - p. 1/14 Dynamiczne: drzewa wyszukiwanie wzorca w tekście spójność grafu problemy algebraiczne (FFT i inne) domknięcie przechodnie oraz dynamiczne macierze najkrótsze

Bardziej szczegółowo

Lista 4. Kamil Matuszewski 22 marca 2016

Lista 4. Kamil Matuszewski 22 marca 2016 Lista 4 Kamil Matuszewski 22 marca 2016 1 2 3 4 5 6 7 8 9 10 Zadanie 2 Ułóż algorytm który dla danego n-wierzchołkowego drzewa i liczby k pokoloruje jak najwięcej wierzchołków tak, by na każdej ścieżce

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Programowanie rekurencyjne: ZALETY: - prostota - naturalność sformułowania WADY: - trudność w oszacowaniu zasobów (czasu i pamięci) potrzebnych do realizacji Czy jest możliwe wykorzystanie

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy

Bardziej szczegółowo

Siedem cudów informatyki czyli o algorytmach zdumiewajacych

Siedem cudów informatyki czyli o algorytmach zdumiewajacych Siedem cudów informatyki czyli o algorytmach zdumiewajacych Łukasz Kowalik kowalik@mimuw.edu.pl Instytut Informatyki Uniwersytet Warszawski Łukasz Kowalik, Siedem cudów informatyki p. 1/25 Problem 1: mnożenie

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Problemy algorytmiczne Klasy problemów algorytmicznych Liczby Fibonacciego Przeszukiwanie tablic Największy

Bardziej szczegółowo

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e.

Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e. Uniwersyteckie Koło Matematyczne - Tajemnicza liczba e. Filip Piękniewski Wydział Matematyki i Informatyki Uniwersytetu Mikołaja Kopernika http://www.mat.umk.pl/ philip 17 grudnia 2009 Filip Piękniewski,

Bardziej szczegółowo

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees

Dynamiczne drzewa. Marian M. Kędzierski. 26 listopada Wstęp Euler-Tour Trees Dynamiczna spójność Algorytm Dinica Link-Cut Trees Dynamiczne drzewa Marian M. Kędzierski 26 listopada 2009 Plan prezentacji Wstęp 1 Wstęp Zagadnienie dynamicznych drzew SPLITiJOINnadrzewachBST 2 Euler-TourTrees Operacje na ET-drzewach Rozszerzenia 3 Dynamicznaspójność

Bardziej szczegółowo

Algorytm selekcji Hoare a. Łukasz Miemus

Algorytm selekcji Hoare a. Łukasz Miemus Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego

Bardziej szczegółowo

zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński

zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński Geometria dla informatyka wyłacznie obliczenia wszystko oparte na liczbach, współrzędnych, miarach programista i/lub użytkownik musi przełożyć

Bardziej szczegółowo

Złożoność informacyjna Kołmogorowa. Paweł Parys

Złożoność informacyjna Kołmogorowa. Paweł Parys Złożoność informacyjna Kołmogorowa Paweł Parys Serock 2012 niektóre liczby łatwiej zapamiętać niż inne... (to zależy nie tylko od wielkości liczby) 100...0 100 100... 100 100 100 25839496603316858921 31415926535897932384

Bardziej szczegółowo

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego WMS, 2019 1 Wstęp Niniejszy dokument ma na celu prezentację w teorii i na przykładach rozwiązywania szczególnych typów równań

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Lista 0. Kamil Matuszewski 1 marca 2016

Lista 0. Kamil Matuszewski 1 marca 2016 Lista 0 Kamil Matuszewski marca 206 2 3 4 5 6 7 8 0 0 Zadanie 4 Udowodnić poprawność mnożenia po rosyjsku Zastanówmy się co robi nasz algorytm Mamy podane liczby n i m W każdym kroku liczbę n dzielimy

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

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

Egzamin, AISDI, I termin, 18 czerwca 2015 r. Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Lista 6 Problemy NP-zupełne

Lista 6 Problemy NP-zupełne 1 Wprowadzenie Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 6 Problemy NP-zupełne Problem abstrakcyjny Q jest to relacja dwuargumentowa

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 15, 19.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1 W. Guzicki Próbna matura, grudzień 01 r. poziom rozszerzony 1 Próbna matura rozszerzona (jesień 01 r.) Zadanie 18 kilka innych rozwiązań Wojciech Guzicki Zadanie 18. Okno na poddaszu ma mieć kształt trapezu

Bardziej szczegółowo

Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa

Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa Znajdowanie maksymalnych skojarzeń przy pomocy eliminacji Gaussa Marcin Mucha, Piotr Sankowski Instytut Informatyki, Uniwersytet Warszawski - p. 1/55 Definicja problemu Skojarzeniem w grafie G = (V, E)

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA WYŻSZA SZKOŁA IFORMATYKI STOSOWAEJ I ZARZĄDZAIA Złożoność algorytmów Złożoność pamięciowa algorytmu wynika z liczby i rozmiaru struktur danych wykorzystywanych w algorytmie. Złożoność czasowa algorytmu

Bardziej szczegółowo

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZŁOŻONOŚĆ OBLICZENIOWA ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ dr hab. Krzysztof SZKATUŁA, prof. PAN Instytut Badań Systemowych PAN Uniwersytet

Bardziej szczegółowo

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń

Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń Kombinowanie o nieskończoności. 2. Wyspy, mosty, mapy i kredki materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 15 marzec 2018 Szybkie przypomnienie z wykładu Prezentacja

Bardziej szczegółowo

PRÓBNY EGZAMIN MATURALNY

PRÓBNY EGZAMIN MATURALNY PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI ZESTAW PRZYGOTOWANY PRZEZ SERWIS WWW.ZADANIA.INFO POZIOM PODSTAWOWY 10 MARCA 2018 CZAS PRACY: 170 MINUT 1 Zadania zamknięte ZADANIE 1 (1 PKT) Liczba 4 7 8 25 0, 5

Bardziej szczegółowo

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy wyznaczania centralności w sieci Szymon Szylko Algorytmy wyznaczania centralności w sieci Szymon Szylko Zakład systemów Informacyjnych Wrocław 10.01.2008 Agenda prezentacji Cechy sieci Algorytmy grafowe Badanie centralności Algorytmy wyznaczania centralności

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Efektywność Procedur Obliczeniowych. wykład 5

Efektywność Procedur Obliczeniowych. wykład 5 Efektywność Procedur Obliczeniowych wykład 5 Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie

Bardziej szczegółowo

V Konkurs Matematyczny Politechniki Białostockiej

V Konkurs Matematyczny Politechniki Białostockiej V Konkurs Matematyczny Politechniki iałostockiej Rozwiązania - klasy pierwsze 27 kwietnia 2013 r. 1. ane są cztery liczby dodatnie a b c d. Wykazać że przynajmniej jedna z liczb a + b + c d b + c + d a

Bardziej szczegółowo

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA)

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, Kryptografia: algorytmy asymetryczne (RSA) Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 14, 7.06.2005 1 Kryptografia: algorytmy asymetryczne (RSA) Niech E K (x) oznacza szyfrowanie wiadomości x kluczem K (E od encrypt, D K (x)

Bardziej szczegółowo

Ilustracja S1 S2. S3 ściana zewnętrzna

Ilustracja S1 S2. S3 ściana zewnętrzna Grafy płaskie G=(V,E) nazywamy grafem płaskim, gdy V jest skończonym podzbiorem punktów płaszczyzny euklidesowej, a E to zbiór krzywych Jordana (łamanych) o końcach w V i takich, że: 1) rożne krzywe mają

Bardziej szczegółowo

2. Układy równań liniowych

2. Układy równań liniowych 2. Układy równań liniowych Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 2. Układy równań liniowych zima 2017/2018 1 /

Bardziej szczegółowo

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Używane struktury danych: V - zbiór wierzchołków grafu, V = {1,2,3...,n} E - zbiór krawędzi grafu, E = {(i,j),...}, gdzie i, j Î V i istnieje

Bardziej szczegółowo

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa

Bardziej szczegółowo

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 1 Podstawy teorii grafów Reprezentacje grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Metody numeryczne. Sformułowanie zagadnienia interpolacji Ćwiczenia nr 4. Sformułowanie zagadnienia interpolacji Niech będą dane punkty x 0,..., x n i wartości y 0,..., y n, takie że i=0,...,n y i = f (x i )). Szukamy funkcji F (funkcji interpolującej), takiej

Bardziej szczegółowo

Matematyka dyskretna dla informatyków

Matematyka dyskretna dla informatyków Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności

Bardziej szczegółowo

Geometria. Rozwiązania niektórych zadań z listy 2

Geometria. Rozwiązania niektórych zadań z listy 2 Geometria. Rozwiązania niektórych zadań z listy 2 Inne rozwiązanie zadania 2. (Wyznaczyć równanie stycznej do elipsy x 2 a 2 + y2 b 2 = 1 w dowolnym jej punkcie (x 0, y 0 ). ) Przypuśćmy, że krzywa na

Bardziej szczegółowo

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym

Akademickie Mistrzostwa Polski w Programowaniu Zespołowym Akademickie Mistrzostwa Polski w Programowaniu Zespołowym Prezentacja rozwiązań zadań 26 października 2014 a d c k e b g j i f h Adwokat Autor zadania: Jakub Łącki Zgłoszenia: 118 z 857 (13%) Zaakceptowane

Bardziej szczegółowo

Suma dwóch grafów. Zespolenie dwóch grafów

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

Bardziej szczegółowo