Zadania obliczeniowe, algorytmy i złoŝoność obliczeniowa
|
|
- Beata Białek
- 8 lat temu
- Przeglądów:
Transkrypt
1 Dr inŝ. Jerzy Mieścicki Instytut Informatyki PW Zadania obliczeniowe, algorytmy i złoŝoność obliczeniowa Wstęp do Informatyki, część 2
2 Od zadań obliczeniowych do systemów Zadania obliczeniowe Algorytmy Programy Systemy Zadanie 1 Zadanie 1 Zadanie 2 Zadanie 2 Zadanie 3 Zadanie Zadanie n Zadanie n Algorytm 2a Algorytm 2a Algorytm 2b Algorytm 2b Algorytm 2c Algorytm 2c Program A Program A Program B Program B Program C Program C Wykonanie programu B w systemie X Wykonanie programu B w systemie Y Wykonanie programu B w systemie Z Wstęp do Informatyki, część 2 2
3 Przeszukiwanie listy nieuporządkowanej Zapisy (records), umieszczone w przypadkowej kolejności zadany klucz Zadanie: Czy wśród N rekordów jest taki R(i), w którym zawartość wskazanego pola jest zgodna z zadanym kluczem, Jeśli tak odczytaj ten R(i), Jeśli nie napisz nie ma N Wstęp do Informatyki, część 2 3 i pole klucza
4 Przeszukiwanie listy nieuporządkowanej i... N Dowolne liczby całkowite, umieszczone w przypadkowej kolejności, w kolejno ponumerowanych komórkach 7 zadana liczba Zadanie: Czy jest wśród nich zadana liczba (np. 7 ), Jeśli tak wypisz numer komórki, Jeśli nie napisz nie ma Wstęp do Informatyki, część 2 4
5 Przeszukiwanie listy nieuporządkowanej start Dane: L[1:N] wektor liczb całkowitych, L(i) liczba na i-tej pozycji, N, K, i - liczby całkowite, K klucz, i indeks przeszukiwania. nie i := 0 i := i+1 i > N nie L(i)== K tak tak Pisz nie ma stop Pisz i stop Wstęp do Informatyki, część 2 5
6 Przeszukiwanie listy nieuporządkowanej start i := 0 i := i+1 Czynności jednorazowe (inicjalizacja, edycja wyników itp.) Czynności wykonywane wielokrotnie, (w najgorszym przypadku N razy) i > N nie tak Pisz nie ma stop nie L(i)== K tak Pisz i stop Wstęp do Informatyki, część 2 6
7 Przeszukiwanie listy nieuporządkowanej Czas wykonania N ZaleŜność czasu wykonania od rozmiaru danych (N) jest liniowa, Mówi się, Ŝe złoŝoność obliczeniowa (czasowa) jest O(N). Wstęp do Informatyki, część 2 7
8 Przeszukiwanie listy nieuporządkowanej - ulepszenie start start i := 0 Dopisz K jako L(N+1) i := i+1 i := 0 nie i > N nie L(i)== K tak tak Pisz nie ma stop Pisz i nie Pisz nie ma i := i+1 L(i)== K tak tak i > N nie stop stop stop Pisz i Wstęp do Informatyki, część 2 8
9 Przeszukiwanie listy nieuporządkowanej Czas wykonania Alg. 1 Alg. 1a N W obu przypadkach zaleŝność czasu wykonania od rozmiaru danych (N) jest liniowa, Oba algorytmy mają taką samą złoŝoność obliczeniową: O(N). Wstęp do Informatyki, część 2 9
10 Przeszukiwanie listy uporządkowanej N=8 1 3 Liczby całkowite, umieszczone w kolejno ponumerowanych komórkach uporządkowane narastająco. Zadanie to samo: Czy jest wśród nich zadana liczba (np. 7 ), Jeśli tak wypisz numer komórki, Jeśli nie napisz nie ma Wstęp do Informatyki, część 2 10
11 Przeszukiwanie listy uporządkowanej N= Oba algorytmy przeszukiwania listy nieuporządkowanej działałyby równieŝ w tym przypadku, Ale tu moŝna zastosować lepszy pomysł: dzielenia na połowy. Wstęp do Informatyki, część 2 11
12 Przeszukiwanie listy uporządkowanej N= Niech np. zadana liczba K = 7 przygraniczna L(5) = 157 > K, więc nie ma czego szukać w dolnej połowie, Powtórzmy całe rozumowanie dla górnej połowy. Wstęp do Informatyki, część 2 12
13 Przeszukiwanie listy uporządkowanej Czas Dwukrotne zwiększenie N (np. z 8 do 16, z 16 do 32 itd.) dodaje jeden krok do algorytmu dzielenia na połowy, Algorytm ten ma więc złoŝoność O(log N). O(N) A O(log N) 0 1 N N* B O(log N) < O(N), poniewaŝ istnieje takie N*, Ŝe dla kaŝdego N > N* czas wykonania T A < T B,... choć dla pewnego zakresu N moŝe być odwrotnie Wstęp do Informatyki, część 2 13
14 Porównywanie grafów G 1 G Czy G 1 jest izomorficzny z G 2? Wstęp do Informatyki, część 2 14
15 Porównywanie grafów G 1 G Czy G 1 jest izomorficzny z G 2? Wstęp do Informatyki, część 2 15
16 Porównywanie grafów G od do Potrzebne jest porównanie dwóch takich tabel, Gdy N jest liczbą węzłów, liczba porównań jest proporcjonalna do N 2, Zatem złoŝoność O(N 2 ) 6 Wstęp do Informatyki, część 2 16
17 Problem komiwojaŝera (traveling salesman p.) P G W R Problem: znaleźć najkrótszą trasę od W z powrotem do W, odwiedzającą (jednokrotnie) wszystkie N=3 miasta. Inaczej: znaleźć najkrótszy cykl w zadanym grafie. Wstęp do Informatyki, część 2 17
18 Problem komiwojaŝera G W G P R P W R P R R P G R R G G P P G W W W W W W 6 tras do porównania Wstęp do Informatyki, część 2 18
19 Problem komiwojaŝera G Najkrótsza: WGPRW (lub WRPGW) ma 1529 km, NajdłuŜsza: WGRPW (lub WPRGW) ma 1817 km. P W R Wstęp do Informatyki, część 2 19
20 Problem komiwojaŝera Dla N = 4: W G P R P R G R G P W W W W W W 4*3*2*1 = N! = 24 trasy do porównania Wstęp do Informatyki, część 2 20
21 Problem komiwojaŝera ZłoŜoność obliczeniowa O(N!), Ogromna liczba stosunkowo prostych obliczeń, ZałóŜmy dla wsparcia wyobraźni, Ŝe pewien komputer wylicza i porównuje 10 6 tras na sekundę. 1 doba = s, 1 rok = s, Przy tym załoŝeniu: Wstęp do Informatyki, część 2 21
22 Problem komiwojaŝera N Czas s 0.36 s 3.6 s 8 min > 1 doba > 2 tygodnie ~ 11 lat ~ 200 lat lat Eksplozja wykładnicza Wstęp do Informatyki, część 2 22
23 Program, ale czy algorytm? X liczba całkowita większa od zera; begin; while ~ (X = = 1); if X parzyste then X := X/2 eiseif X nieparzyste then X:= 3*X+1; endif; endwhile; begin Wprowadź X tak X==1 nie X parzyste tak nie X:=X/2 X:=3X+1 end end; Wstęp do Informatyki, część 2 23
24 Superprogram oceniający własność stopu? start Dowolny program P Wczytaj P MoŜna udowodnić, Ŝe zadanie zbudowania programu określającego własność stopu dowolnego programu jest nierealizowalne. Stop 1 Tak, P ma własność stopu? Stop2 Nie, P nie ma własności stopu Wstęp do Informatyki, część 2 24
25 Klasy złoŝoności obliczeniowej (czasowej) Przeszukiwanie listy nieuporządkowanej O(N), Przeszukiwanie listy uporządkowanej O(log N), Sortowanie O(N log N), Porównywanie grafów O(N 2 ) WieŜe Hanoi O(2 N ), Problem komiwojaŝera O(N!), Problem budowy uniwersalnego programu badającego własność stopu w ogóle nierozstrzygalny trudne obliczeniowo łatwe Nieobliczalne (nierozstrzygalne) ZłoŜoność wykładnicza O(k N ) O(N k ), złoŝoność wielomianowa lub lepsza Wstęp do Informatyki, część 2 25
26 Luka algorytmiczna łatwe trudne... O(k NN )... O(N!) O(2 N ) O(N 10 )... O(N 2 ) O(N) O(logN)... Dla pewnego problemu obliczeniowego: Znany algorytm Górne ograniczenie Luka algorytmiczna Dolne ograniczenie Formalny dowód (Ŝe nie moŝe być lepiej) Odkrywanie nowych algorytmów Nowe dowody matematyczne Wstęp do Informatyki, część 2 26
27 Problemy algorytmicznie zamknięte Jeśli luka algorytmiczna nie istnieje problem jest algorytmicznie zamknięty. Algorytmicznie zamknięte są na przykład: Przeszukiwanie listy nieuporządkowanej: udowodniono, Ŝe złoŝoność nie moŝe być lepsza, niŝ O(N), znany jest algorytm o złoŝoności O(N). Sortowanie, O(N logn)... Wstęp do Informatyki, część 2 27
28 Klasa problemów NP-zupełnych (NPC) trudne łatwe... O(k NN )... O(N!) O(2 N ) O(N 10 )... O(N 2 ) O(N) O(logN)... Górne ograniczenie Ogromna luka algorytmiczna NPC? Dolne ograniczenie nie znane Wstęp do Informatyki, część 2 28
29 Klasa problemów NPC NPC od Nondeterministically Polynomial Complete, KaŜdy problem jest (jako całość) obliczeniowo trudny, Rozwiązanie polega z zasady na wykonaniu ogromnej liczby łatwych obliczeń, kaŝde o wielomianowej (polynomial) złoŝoności O(N k ), Kolejność ich wykonywania nie jest określona (t.zn. jest niedeterministyczna); W zaleŝności od przypadku (lub szczęścia) rezultat moŝna otrzymać równie dobrze juŝ w pierwszym, jak dopiero w ostatnim kroku obliczeń, Wstęp do Informatyki, część 2 29
30 Klasa problemów NPC Klasa NPC jest zupełna (complete) w tym sensie, Ŝe naleŝące do niej problemy są wzajemnie powiązane za pomocą redukcji, znalezienie rozwiązania wielomianowego dla choćby jednego z problemów oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów łatwych (wielomianowych, P), i odwrotnie, udowodnienie dla choćby jednego problemu istnienia dolnej granicy powyŝej złoŝoności wielomianowej oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów trudnych, Czy NP = P? Wstęp do Informatyki, część 2 30
31 Przykłady problemów NP: problem plecakowy Plecak N rzeczy do zapakowania Zadanie: tak poukładać rzeczy w plecaku, Ŝeby zostało w nim jak najwięcej wolnego (niewykorzystanego) miejsca. Problem jest NP. Wstęp do Informatyki, część 2 31
32 Układanie rozkładu zajęć Plan tygodnia Wykłady, laboratoria, ćwiczenia do poukładania... plus kryterium (kryteria) celu... plus więzy (ograniczenia) Wstęp do Informatyki, część 2 32
33 Pojęcie redukcji Układanie rozkładu zajęć sprowadza się (redukuje się) do problemu plecakowego, Istnieje redukcja przekształcająca problem układania rozkładu zajęć w problem plecakowy. Redukcja A do B: Problem A Problem A Algorytm o złoŝoności O(N k ) przeliczający dane A na dane B cel A na cel B Problem B Problem B Wstęp do Informatyki, część 2 33
34 Przykłady problemów NP: kolorowanie mapy Dana jest mapa N państw oraz K kolorów, N > 1, K < N, Zadanie polega na stwierdzeniu (tak nie), czy daną mapę moŝna pokolorować K kolorami w taki sposób, by sąsiadujące państwa się zawsze róŝniły kolorem. Dla K = 1 rozwiązanie natychmiastowe (nie), Dla K = 2: Tak jedynie gdy w kaŝdym węźle zbiega się parzysta liczba krawędzi, Zatem złoŝoność O(N 2 ), Dla K = 4 rozwiązanie natychmiastowe (zawsze tak ), Dla K = 3 problem jest NP. Wstęp do Informatyki, część 2 34
35 Przykłady problemów NP: kolorowanie grafu 1? Dany jest graf o N wierzchołkach oraz K kolorów (K < N), Zadanie: rozstrzygnąć (tak-nie), czy da się pokolorować wierzchołki danego grafu tak, by Ŝadne dwa wierzchołki połączone krawędzią nie były tego samego koloru, Dla K>2 problem jest NP. Wstęp do Informatyki, część 2 35
36 Metody algorytmiczne Algorytmy zachłanne (greedy) Podział na pod-zadania ( divide and conquer ) Rozwiązywanie metodą top-down i bottom-up Algorytmy rekurencyjne Algorytmy iteracyjne Programowanie dynamiczne... Algorytmy heurystyczne Algorytmy probabilistyczne Algorytmy ewolucyjne i genetyczne Sieci neuronowe... Wstęp do Informatyki, część 2 36
37 Algorytmy zachłanne (greedy) P G W Zachłanne rozwiązanie problemu komiwojaŝera: Dla początku w W, rozwiązanie zachłanne jest takie samo, jak optymalne (1529 km) Dla początku w P, otrzymana ( zachłanna ) trasa ma 1642 km R (a najdłuŝsza trasa ma 1817 km) Wstęp do Informatyki, część 2 37
38 Dekompozycja na pod-zadania (divide and conquer) Zadanie A Zadanie A Top-down Pod-zadanie A1 Pod-zadanie A2 Pod-zadanie A1.1 Pod-zadanie A1.2 Bottom-up Wstęp do Informatyki, część 2 38
39 Rekurencja: sortowanie ze scalaniem (merge sort) Sortowanie: porządkowanie listy nieuporządkowanej, Najpierw: operacja scalania (merging) dwóch list uporządkowanych: G i M=merge(G, D) M=merge(G, D) D j M k Wstęp do Informatyki, część 2 39
40 Rekurencja: sortowanie ze scalaniem (merge sort) Function m = sort (lista); 1 Oblicz d = długość lista; Oblicz d = długość lista; nie d == 1 d == 1 tak Podziel lista na listad, listag; 2 3 D = sort (listad); G = sort (listag); 5 Zwróć m = lista; Zwróć m = lista; 4 Zwróć m = merge(d, G); Wstęp do Informatyki, część 2 40
41 Rekurencyjne wykonanie sortowania ze scalaniem 3, 1, 7, 5 1, 3, 5, 7... sort(3,1) sort(7,5) merge 3, 1 1, 3 7, 5 5, 7... sort(3) sort(1) merge... sort(5) sort(7) merge d=1 d=1 d=1 d=1 Wstęp do Informatyki, część 2 41
42 Rekurencyjne wykonanie sortowania ze scalaniem Wstęp do Informatyki, część 2 42
43 Zasada rekurencyjnego wykonania procedury (funkcji) Wstęp do Informatyki, część 2 43
44 Rozwiązywanie problemu komiwojaŝera metodą top-down śoliborz Grochów Centrum Ochota Gocławek Mokotów Wstęp do Informatyki, część 2 44
45 MoŜliwe heurystyczne rozwiązanie problemu komiwojaŝera G P W R B Znane rozwiązanie dla 4 miast, Dochodzi piąte (B) Podejście konserwatywne : jak najmniej zmian Wstęp do Informatyki, część 2 45
46 Przykładowe zadanie numeryczne g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. g(x) a b x b H = g(x)dx a H(x) = g(x)dx Rozwiązanie klasyczne (analityczne): Wyznaczyć całkę nieoznaczoną Obliczyć H = H(b) H(a) Całkowanie przez części... przez podstawienie, Tablice całek nieoznaczonych Wstęp do Informatyki, część 2 itd 46
47 Przykładowe rozwiązanie zadania g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. g(x) a b x b H = g(x)dx a Zdroworozsądkowe rozwiązanie numeryczne: Sumowanie prostokątów (lub trapezów) g(x i ) Wstęp do Informatyki, część 2 47 x i
48 Rozwiązanie probabilistyczne przykładowego zadania g(x) g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. b H = g(x)dx a a b x L = Licznik punktów pod Rozwiązanie probabilistyczne (Monte Carlo): for i =1 : N; //(np. N = ); Wygeneruj losowo punkt (x i, y i ) z zaznaczonego prostokąta, if g(x i )>y i ; L:=L+1 ;endif; endfor; Równomiernie! H = L/N; (x i, y i ) Wstęp do Informatyki, część 2 48 y i x i g(x i )
49 Prosty system obsługi Klienci System obsługi Klienci Strumień zgłoszeń Strumień obsługi Kolejka Mechanizm obsługi Serwer Wiele moŝliwości zdefiniowania: Rozkładu czasu między zgłoszeniami Rozkładu czasu obsługi, Liczby elementarnych mechanizmów obsługi w serwerze, Liczby kolejek (plus ew. zasady priorytetu), Kolejek nieograniczonych/ograniczonych Strategii wyboru następnego z kolejki (FIFO, LIFO, RAND, priorytetowa, Teoria masowej obsługi (Queueing Theory) Wstęp do Informatyki, część 2 49
50 Sieć systemów obsługi Internista 40% Gabinet zabiegowy 20% 50% T1 80% T2 2xT3 50% 20% Kardiolog 40% 50% Apteka T4 100% T6 25% 75% 50% T5 5% 95% Wstęp do Informatyki, część 2 50
51 Rozkład wykładniczy 1 λ F(x)= 1-e -λt f(x) = λe -λt Np. często przyjmuje się, Ŝe czas pomiędzy chwilami przybycia (do systemu obsługi) kolejnych klientów jest zmienną o rozkładzie wykładniczym z intensywnością λ, Dla rozkładu wykładniczego wartość średnia = 1/ λ. Wstęp do Informatyki, część 2 51
52 Wstęp do Informatyki, część 2 52 Generowanie liczb (pseudo)losowych Początkowa dowolna liczba czterocyfrowa np (seed) = = = = Ciąg liczb pseudolosowych
53 Generowanie liczb (pseudo)losowych Zazwyczaj jest funkcja rand lub rand(seed), zwracająca po kaŝdym wywołaniu nową, kolejną liczbę losową z przedziału [0.1]; Np.... x = rand; y = rand;... Dałoby (x, y) = (0.6643, 0,1294), Liczby rand mają rozkład jednostajny w przedziale [0, 1], Ale powtórzenie obliczenia z tym samym seed daje dokładnie ten sam ciąg liczb pseudolosowych f(x) 0 1 Wstęp do Informatyki, część 2 53
54 Generowanie ciągu realizacji zmiennej o znanym rozkładzie rand 1 x F(t)= 1-e -0.4 t 0 t = [ln(1-x)]/(-0.4) t [godz] Wygenerować liczbę losową (x=rand) z przedziału [0, 1], Przeliczyć na wartość t wykorzystując funkcję odwrotną dystrybuanty. Wstęp do Informatyki, część 2 54
55 Zasada algorytmu ewolucyjnego (przykład) y 4 y t 1 t 2 t 3 t 4... t 10 Zadanie: Z pomiarów otrzymano zbiór np. 10 punktów (t i, y i ) sugerujących zaleŝność między zmiennymi t i y. Chcemy wyrazić tę zaleŝność w postaci funkcji y = f(t), Postulujemy, by ta funkcja była np. sumą trzech sinusoid i t stałej, Wstęp do Informatyki, część 2 55
56 Sinusoidy Amplituda y(t) = a*sin(w*t + p) Czas [s], zmienna niezaleŝna Pulsacja w = 2π*f [rd]; Częstotliwość f [1/s], [Hz]; Okres T=1/f [s]; Przesunięcie fazy p [rd] f v (t) = a 1 sin(w 1 t+ p 1 ) + a 2 sin(w 2 t+ p 2 ) + a 3 sin(w 3 t+ p 3 ) + c Chodzi więc o znalezienie takich numerycznych wartości dziesięciu współczynników: a 1, w 1, p 1, a 2, w 2, p 2..., c by przebieg funkcji y=f(t) jak najlepiej pasował do punktów pomiarowych Wstęp do Informatyki, część 2 56
57 Funkcja dostosowania v a w p a w p a w p c 2.4 Jakieś przypadkowe wartości y f v (t) = 1.2sin(3.7t+ 0.22) + 4.3sin(0.03t+ 4.5) sin(1.1t+ 3.3) Miara dostosowania dla wektora v: y 4 f v (x) φ(v)= (y i f v (t i ) ) 2 i t t 1 t 2 t 3 t 4... t 10 Wstęp do Informatyki, część 2 57
58 Zasada działania algorytmu ewolucyjnego Begin Utwórz populację początkową Utworzymy populację: całą grupę osobników, Populacja ta będzie podlegała cyklicznemu procesowi ewolucji, Jeden obieg pętli = jedno pokolenie Koniec? tak nie Edycja wyników Utwórz nową populację End Wstęp do Informatyki, część 2 58
59 Populacja początkowa Begin Utwórz populację początkową 1 Populacja P Np. 200 osobników, KaŜdy ma 10 genów : a 1, w 1, p 1,..., c,... o początkowo losowych wartościach (z dowolnie ustalonego przedziału) Wstęp do Informatyki, część 2 59
60 Wyliczanie funkcji dostosowania Begin Utwórz populację początkową Populacja P 0 Oblicz φ(v) φ 1 φ φ 3... Dla kaŝdego indywiduum v oblicza się jego wartość funkcji dostosowania φ(v) φ 200 Wstęp do Informatyki, część 2 60
61 Porządkowanie według wartości funkcji dostosowania Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Najlepiej dostosowane Populacja P 0... Najmniejsze φ Porządkowanie np. rosnąco wg wartości funkcji dostosowania Najgorzej dostosowane Nowe uporządkowanie Największe φ Wstęp do Informatyki, część 2 61
62 Wyliczanie danych o populacji Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji Populacja P 0... Według uznania, np. Najlepszy osobnik w populacji, Średni poziom dostosowania w populacji, Rozrzut dostosowania, Poprawa średniego dostosowania w stosunku do poprzedniego pokolenia, itd. Wstęp do Informatyki, część
63 Badanie warunku zakończenia Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji tak Koniec? nie Wiele moŝliwych warunków zakończenia, np. Zadana maksymalna liczba pokoleń, Ograniczenie czasowe, Osiągnięcie zadowalającego najlepszego dostosowania, itd. Edycja wiadomo. Edycja wyników End Wstęp do Informatyki, część 2 63
64 Likwidacja gorzej dostosowanych Begin Utwórz populację początkową Populacja P 0 (uporządkowana wg φ) 1.. Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji 2 3 Próg przeŝycia (np. w połowie).... Koniec? tak nie Uśmierć gorszą część Nie przeŝyły, niestety Wstęp do Informatyki, część 2 64
65 RozmnaŜanie lepiej dostosowanych Begin Utwórz populację początkową 1 Uratowana część populacji P 0.. Oblicz φ(v) 2.. Sortuj wg φ(v) Zbierz dane o populacji tak Koniec? nie Uśmierć gorszą część Utwórz nową populację... zabiera się do produkowania potomstwa Dwa mechanizmy; KrzyŜowanie, Mutacja. Wstęp do Informatyki, część 2 65
66 KrzyŜowanie Losowo wybrana para rodziców... losowo wybraną połowę genów... przekazuje na krzyŝ dzieciom Dzieci dołączają do rodziców w nowej populacji. Wstęp do Informatyki, część 2 66
67 Mutacja Nowa populacja W nowej populacji...u stosunkowo niewielkiej liczby (np. 5%) losowo wybranych osobników... losowo wybrany gen... zostaje losowo zmieniony Wstęp do Informatyki, część 2 67
68 Zasada działania algorytmu ewolucyjnego Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji tak Koniec? nie Uśmierć gorszą część Edycja wyników Populacja istotnie ewoluuje w kierunku coraz lepszego dostosowania, Jeden obieg pętli = jedno pokolenie, Mnóstwo moŝliwych modyfikacji na kaŝdym etapie algorytmu, Bardzo intrygujące implikacje światopoglądowe, Patrz np. portal Utwórz nową populację End Wstęp do Informatyki, część 2 68
69 Dwie sprawy wymagające wyjaśnienia: Czy obliczenie musi koniecznie przebiegać w jakichś krokach? JeŜeli juŝ istotnie przebiega krokowo, to jakie elementarne kroki są dopuszczalne? Analogowa i cyfrowa reprezentacja informacji, Obliczenia analogowe i cyfrowe. Model obliczeń sekwencyjnych, Maszyna Turinga, Hipoteza Churcha-Turinga, Wstęp do Informatyki, część 2 69
70 Dwie sprawy wymagające wyjaśnienia: Czy obliczenie musi koniecznie przebiegać w jakichś krokach? JeŜeli juŝ istotnie przebiega krokowo, to jakie elementarne kroki są dopuszczalne? Analogowa i cyfrowa reprezentacja informacji, Obliczenia analogowe i cyfrowe. Model obliczeń sekwencyjnych, Maszyna Turinga, Hipoteza Churcha-Turinga, Wstęp do Informatyki, część 2 70
Zadania obliczeniowe, algorytmy i złożoność obliczeniowa
Dr inż. Jerzy Mieścicki Instytut Informatyki PW Zadania obliczeniowe, algorytmy i złożoność obliczeniowa Wstęp do Informatyki, część 2 Przeszukiwanie listy nieuporządkowanej Zapisy (records), umieszczone
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
Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Algorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
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
Metody Rozmyte i Algorytmy Ewolucyjne
mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb
Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:
Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące
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)
Strategie ewolucyjne (ang. evolu4on strategies)
Strategie ewolucyjne (ang. evolu4on strategies) Strategia ewolucyjna (1+1) W Strategii Ewolucyjnej(1 + 1), populacja złożona z jednego osobnika generuje jednego potomka. Kolejne (jednoelementowe) populacje
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
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;
Efektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
PROBLEMY NIEROZSTRZYGALNE
PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną
Informatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą
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ść
Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa
Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego
1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.
1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. Matematyczna funkcja f ma być określona w programie w oddzielnej funkcji języka C (tak, aby moŝna było łatwo ją zmieniać). Przykładowa funkcja to:
Wstęp do programowania
Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień 2014 1 / 26 Algorytmy zachłanne Strategia polegająca
Algorytmy i struktury danych Matematyka III sem.
Algorytmy i struktury danych Matematyka III sem. 30 godz. wykł. / 15 godz. ćw. / 15 godz. projekt dr inŝ. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info Literatura T.H. Cormen i inni, Wprowadzenie
Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Algorytmy ewolucyjne Treść wykładu Wprowadzenie Zasada działania Podział EA Cechy EA Algorytm genetyczny 2 EA - wprowadzenie Algorytmy ewolucyjne
Prawdopodobieństwo i statystyka
Wykład XIV: Metody Monte Carlo 19 stycznia 2016 Przybliżone obliczanie całki oznaczonej Rozważmy całkowalną funkcję f : [0, 1] R. Chcemy znaleźć przybliżoną wartość liczbową całki 1 f (x) dx. 0 Jeden ze
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
Podstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Kolorowanie wierzchołków grafu
Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,
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
Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
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
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
a) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
Podstawy symulacji komputerowej
Podstawy symulacji komputerowej Wykład 3 Generatory liczb losowych Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział Nauk Technicznych
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 13 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Złożoność algorytmów czy to istotne, skoro
Podstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Metody numeryczne w przykładach
Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach
Podstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Sortowanie danych. Jolanta Bachan. Podstawy programowania
Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000
Technologie informacyjne Wykład VII-IX
Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż
Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,
wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych
Algorytm Genetyczny zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Dlaczego Algorytmy Inspirowane Naturą? Rozwój nowych technologii: złożone problemy obliczeniowe w
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova
Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu
Rozwiązywanie problemów metodą przeszukiwania
Rozwiązywanie problemów metodą przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Reprezentacja problemu w przestrzeni stanów Jedną z ważniejszych metod sztucznej
Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Metody przeszukiwania
Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania
Wstęp do programowania
Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na
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
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
Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.
Złożoność problemów Przykład - wieże Hanoi Problem jest zamknięty (dolne ograniczenie złożoności = złożoność algorytmu rekurencyjnego lub iteracyjnego) i ma złożoność O(2 N ). Mnisi tybetańscy podobno
funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)
Podstawy programowania (język C) funkcje rekurencyjne Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Funkcje rekurencyjne (1) W języku C funkcja moŝe wywoływać samą siebie.
EGZAMIN MAGISTERSKI, czerwiec 2014 Matematyka w ekonomii i ubezpieczeniach
Matematyka w ekonomii i ubezpieczeniach Sprawdź, czy wektor x 0 = (0,5,,0,0) jest rozwiązaniem dopuszczalnym zagadnienia programowania liniowego: Zminimalizować 3x 1 +x +x 3 +4x 4 +6x 5, przy ograniczeniach
Sortowanie. Tomasz Żak zak. styczeń Instytut Matematyki i Informatyki, Politechnika Wrocławska
Tomasz Żak www.im.pwr.wroc.pl/ zak Instytut Matematyki i Informatyki, Politechnika Wrocławska styczeń 2014 Przypuśćmy, że po sprawdzeniu 30 klasówek układamy je w kolejności alfabetycznej autorów. Jak
Metody numeryczne. Wykład nr 12. Dr Piotr Fronczak
Metody numeryczne Wykład nr 1 Dr Piotr Fronczak Generowanie liczb losowych Metody Monte Carlo są oparte na probabilistyce działają dzięki generowaniu liczb losowych. W komputerach te liczby generowane
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
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
Algorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Algorytmy zrandomizowane
Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik
Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
Wybrane podstawowe rodzaje algorytmów
Wybrane podstawowe rodzaje algorytmów 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 informatycznych
Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych
Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych Autorzy: Marta Rotkiel, Anna Konik, Bartłomiej Parowicz, Robert Rudak, Piotr Otręba Spis treści: Wstęp Cel
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,
Optymalizacja. Wybrane algorytmy
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem
Wyszukiwanie. Wyszukiwanie binarne
Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeŝeli element w tablicy nie występuje.
Sortowanie topologiczne skierowanych grafów acyklicznych
Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)
Laboratorium nr 1. i 2.
Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych
Generowanie i optymalizacja harmonogramu za pomoca
Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska
Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:
Temat: Powtórzenie wiadomości z PODSTAW INFORMATYKI I: Pojęcia: złożoność czasowa algorytmu, rząd funkcji kosztu. Algorytmy. Metody programistyczne. Struktury danych. Literatura. A. V. Aho, J.E. Hopcroft,
Złożoność obliczeniowa klasycznych problemów grafowych
Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.
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
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Sortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
Wstęp do programowania
Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu
Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010
Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność
Modelowanie komputerowe
Modelowanie komputerowe wykład 1- Generatory liczb losowych i ich wykorzystanie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 5,12 października 2016 r.
Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS
Problem straŝaka w drzewach Agnieszka Skorupka Matematyka Stosowana FTiMS Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem
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
Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Podstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Temat: Algorytmy zachłanne
Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje się w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymalną możliwość w nadziei,
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,
Obliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Alan M. TURING. Matematyk u progu współczesnej informatyki
Alan M. TURING n=0 1 n! Matematyk u progu współczesnej informatyki Wykład 5. Alan Turing u progu współczesnej informatyki O co pytał Alan TURING? Czym jest algorytm? Czy wszystkie problemy da się rozwiązać
Algorytmy stochastyczne laboratorium 03
Algorytmy stochastyczne laboratorium 03 Jarosław Piersa 10 marca 2014 1 Projekty 1.1 Problem plecakowy (1p) Oznaczenia: dany zbiór przedmiotów x 1,.., x N, każdy przedmiot ma określoną wagę w(x i ) i wartość
1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.
Temat: Technologia informacyjna a informatyka 1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji. Technologia informacyjna (ang.) Information Technology, IT jedna
Układy stochastyczne
Instytut Informatyki Uniwersytetu Śląskiego 21 stycznia 2009 Definicja Definicja Proces stochastyczny to funkcja losowa, czyli funkcja matematyczna, której wartości leżą w przestrzeni zdarzeń losowych.
Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Struktury danych (I): kolejka, stos itp.
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania
Instrukcja warunkowa i złoŝona.
Instrukcja warunkowa i złoŝona. Budowa pętli warunkowej. JeŜeli mielibyśmy przetłumaczyć instrukcję warunkową to brzmiałoby to mniej więcej tak: jeŝeli warunek jest spełniony, to wykonaj jakąś operację
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
Sortowanie Shella Shell Sort
Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu