Wstęp do programowania
|
|
- Krzysztof Zakrzewski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
2 Algorytmy zachłanne Strategia polegająca na budowaniu rozwiązania problemu przez dokonywanie lokalnie optymalnych wyborów. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
3 Algorytmy zachłanne Strategia polegająca na budowaniu rozwiązania problemu przez dokonywanie lokalnie optymalnych wyborów. W większości przypadków ta strategia nie prowadzi do optymalnego rozwiązania P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
4 Algorytmy zachłanne Strategia polegająca na budowaniu rozwiązania problemu przez dokonywanie lokalnie optymalnych wyborów. W większości przypadków ta strategia nie prowadzi do optymalnego rozwiązania Analogia Podchodzenie pod górę: P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
5 Algorytmy zachłanne c.d. Problem wydawania reszty W jaki sposób dysponując monetami o danych nominałach (np. 5/2/1) wydać resztę używając do tego minimalnej liczby monet. Rozwiązanie zachłanne polega na wydawaniu monety o największym możliwym nominale. Np.: 13 = P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
6 Algorytmy zachłanne c.d. Problem wydawania reszty W jaki sposób dysponując monetami o danych nominałach (np. 5/2/1) wydać resztę używając do tego minimalnej liczby monet. Rozwiązanie zachłanne polega na wydawaniu monety o największym możliwym nominale. Np.: 13 = Metoda zachłanna nie działa dla każdego zestawu monet. Np. dla monet 5/2: 6 = 5+? P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
7 Zastosowania Własność optymalnej podstruktury Optymalne rozwiązanie problemu jest funkcją optymalnych rozwiązań podproblemów. Rozwiązania dokładne (optymalne) ortogonalizacja układu wektorów kodowanie Huffmana problem wyboru czynności algorytm Dijkstry P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
8 Zastosowania Własność optymalnej podstruktury Optymalne rozwiązanie problemu jest funkcją optymalnych rozwiązań podproblemów. Rozwiązania dokładne (optymalne) ortogonalizacja układu wektorów kodowanie Huffmana problem wyboru czynności algorytm Dijkstry Heurystyki Algorytmy zachłanne są wydajne. Często się ich używa do znajdowania rozwiązań przybliżonych. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
9 Algorytm Dijkstry Problem Dany jest graf nieskierowany z nieujemnymi wagami krawędzi. Wyznaczyć ścieżkę pomiędzy danymi wierzchołkami o najmniejszej wadze. Przykładowe zastosowanie Dane są połączenia drogowe pomiędzy miastami. Wyznaczyć najkrótszą trasę. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
10 Algorytm Dijkstry Algorytm Przez s oznaczamy wierzchołek źródłowy, w(i, j) to waga krawędzi (i, j). 1 Stwórz tablicę d odległości od źródła dla wszystkich wierzchołków grafu. Na początku d[s] = 0, zaś d[v] = dla wszystkich pozostałych wierzchołków. 2 Utwórz kolejkę priorytetową Q wszystkich wierzchołków grafu. Priorytetem kolejki jest aktualnie wyliczona odległość od wierzchołka źródłowego s. 3 Dopóki kolejka nie jest pusta: 1 Usuń z kolejki wierzchołek u o najniższym priorytecie (wierzchołek najbliższy źródła, który nie został jeszcze rozważony) 2 Dla każdego sąsiada v wierzchołka u dokonaj relaksacji poprzez u: jeśli d[u] + w(u, v) < d[v] (poprzez u da się dojść do v szybciej niż dotychczasową ścieżką), to d[v] := d[u] + w(u, v). Na końcu tablica d zawiera najkrótsze odległości do wszystkich wierzchołków. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
11 Dziel i zwyciężaj przypomnienie 1 Podział problemu na 2 lub więcej części 2 Rozwiązanie każdej z części niezależnie 3 Scalenie rozwiązań części w rozwiązanie problemu pierwotnego Każdy z podproblemów rozwiązywany jest tą samą metodą. Naturalna implementacja przy pomocy rekurencji. Hanoi 1 Podział: Hanoi(n, f, t, h) Hanoi(n-1, f, h, t), Hanoi(n-1, h, t, f) 2 Scalenie: Hanoi(n-1, f, h, t), f t, Hanoi(n-1, h, t, f) P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
12 Dziel i zwyciężaj przypomnienie Nie każdy podział jest dobry. F n+1 = F n + F n 1 F n zawiera F n 1. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
13 Programowanie dynamiczne Rozwiązania podproblemów są zapamiętywane. Gwarantuje to, że nic nie jest liczone dwa razy. Top-down Strategia analogiczna do rekurencji z tym, że wyniki wywołań funkcji są zapamiętywane. Przykład d ={0:0, 1 : 1 } d ef f i b ( n, d ) : i f n i n d : r e t u r n d [ n ] e l s e : r e s=f i b ( n 1,d)+ f i b ( n 2,d ) d [ n]= r e s r e t u r n r e s f i b ( 5, d ) P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
14 Programowanie dynamiczne Rozwiązania podproblemów są zapamiętywane. Gwarantuje to, że nic nie jest liczone dwa razy. Bottom-up Wiadomo, że trzeba rozważyć wszystkie podproblemy, więc zaczyna się od najmniejszego. Przykład f =[0,1] f o r i i n range ( 2, 6 ) : f. append ( f [ i 1]+ f [ i 2]) P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
15 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
16 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład s i i-ty element ciągu L(i) długość maksymalnego rosnącego podciągu kończącego się s i L(0) = 1 L(1) = 1 L(2) = 2... P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
17 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład s i i-ty element ciągu L(i) długość maksymalnego rosnącego podciągu kończącego się s i L(0) = 1 L(1) = 1 L(2) = 2... L(k) = 1 + max L(i) i<k,s i <s k P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
18 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
19 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład s i i-ty element ciągu L(i) długość maksymalnego rosnącego podciągu kończącego się s i L(0) = 1 L(1) = 1 L(2) = 2... P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
20 Podciąg ściśle rosnący Dany jest ciąg liczb całkowitych. Podać maksymalną długość ściśle rosnącego podciągu. Przykład s i i-ty element ciągu L(i) długość maksymalnego rosnącego podciągu kończącego się s i L(0) = 1 L(1) = 1 L(2) = 2... L(k) = 1 + max L(i) i<k,s i <s k P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
21 Podciąg ściśle rosnący c.d. Algorytm 1 Dla k = 0,..., n 1: 1 oblicz L(k) (używając L(i) dla i < k) 2 Oblicz max k L(k) P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
22 Problem plecakowy Złodziej dysponuje workiem, który może pomieścić przedmioty o łącznej wadze w. W jaki sposób może zmaksymalizować wartość łupu, jeżeli ma do wyboru n rodzajów przedmiotów o wagach i wartościach zadanych ciągami w i, v i. Rozważ dwa przypadki: Apple store liczba dostępnych przedmiotów każdego rodzaju jest nieograniczona Galeria sztuki każdy przedmiot występuje w dokładnie jednym egzemplarzu Przykład i w i v i 1 6 $ $ $ $9 P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
23 Problem plecakowy Przykład i w i v i 1 6 $ $ $ $9 Apple store 1, 4, 4 $48 Galeria 1, 3 $46 P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
24 Problem plecakowy z powtórzeniami (Apple Store) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
25 Problem plecakowy z powtórzeniami (Apple Store) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w) maksymalny łup osiągalny przy pomocy plecaka o pojemności w P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
26 Problem plecakowy z powtórzeniami (Apple Store) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w) maksymalny łup osiągalny przy pomocy plecaka o pojemności w K(w) = max i:w i w K(w w i) + v i P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
27 Problem plecakowy z powtórzeniami (Apple Store) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w) maksymalny łup osiągalny przy pomocy plecaka o pojemności w K(w) = max i:w i w K(w w i) + v i Algorytm wypełnia jednowymiarową tablicę. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
28 Problem plecakowy bez powtórzeń (galeria) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
29 Problem plecakowy bez powtórzeń (galeria) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w, i) maksymalny łup osiągalny przy pomocy plecaka o pojemności w i przedmiotów 0,..., i P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
30 Problem plecakowy bez powtórzeń (galeria) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w, i) maksymalny łup osiągalny przy pomocy plecaka o pojemności w i przedmiotów 0,..., i K(w, i) = max {K(w, i 1), K(w w i, i 1) + v i } Druga wartość jest brana pod uwagę wtw. gdy w i w. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
31 Problem plecakowy bez powtórzeń (galeria) Jaka dekompozycja problemu? po rozmiarze plecaka po zbiorze przedmiotów K(w, i) maksymalny łup osiągalny przy pomocy plecaka o pojemności w i przedmiotów 0,..., i K(w, i) = max {K(w, i 1), K(w w i, i 1) + v i } Druga wartość jest brana pod uwagę wtw. gdy w i w. Algorytm wypełnia dwuwymiarową tablicę. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
32 Uliniowienie sekwencji Para sekwencji DNA ACACACTA AGCACACA Uliniowienie sekwencji Wstawienie odstępów, tak aby zmaksymalizować jakość uliniowienia mierzoną podobieństwem aminokwasów i ilością odstępów. A-CACACTA AGCACAC-A P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
33 Uliniowienie sekwencji c.d. Miara jakości uliniowienia w : Σ { } Σ { } R Na przykład: 2 a = b w(a, b) = 0 a = lub b = 1 w p.p. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
34 Algorytm Smitha-Watermana S 1 = a 1 a 2... a n S 2 = b 1 b 2... b m H(i, j) miara najlepszego uliniowienia sekwencji a 1 a 2... a i, b 1 b 2... b j Definicja rekurencyjna H(i, 0) = ik=1 w(a k, ), 0 i m H(0, j) = j k=1 w(, b k), 0 j n H(i 1, j 1) + w(a i, b j ) H(i, j) = max H(i 1, j) + w(a i, ) H(i, j 1) + w(, b j ) m, 1 j n dopasowanie delecja, 1 i insercja P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
35 Algorytm Smitha-Watermana c.d. Przykład A C A C A C T A A G H = C A C A C A P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
36 Jak wybierać podproblemy? Kilka standardowych podejść 1 Wejście postaci x 0, x 1,..., x n podproblemy postaci x 0, x 1,..., x i 2 Wejście postaci x 0, x 1,..., x n i y 0, y 1,..., y m podproblemy postaci x 0, x 1,..., x i i y 0, y 1,..., y j 3 Wejście postaci x 0, x 1,..., x n podproblemy postaci x i, x i+1,..., x j 4 Wejście postaci drzewa (ukorzenionego) podproblemy postaci ukorzenionych poddrzew P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
37 Zadanie 1 Zaimplemetuj znajdowanie maksymalnego rosnącego podciągu. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
38 Zadanie 2, 3 problem plecakowy Zaimplementuj algorytm rozwiązujący problem plecakowy w wariancje z powtórzeniami i bez. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
39 Zadanie 3 Smith-Waterman Napisz program obliczający optymalne globalne uliniowienie podanych sekwencji. P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
40 Strona wykładu z P. Daniluk(Wydział Fizyki) WP w. IX Jesień / 26
Wstęp do programowania
Wstęp do programowania Programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. X Jesień 2013 1 / 21 Dziel i zwyciężaj przypomnienie 1 Podział problemu na 2 lub
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
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
Wstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
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
Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
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
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
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,
Schemat programowania dynamicznego (ang. dynamic programming)
Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten
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;
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
Wstęp do programowania
Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie
Algorytmy i struktury danych.
Algorytmy i struktury danych. Wykład 4 Krzysztof M. Ocetkiewicz Krzysztof.Ocetkiewicz@eti.pg.gda.pl Katedra Algorytmów i Modelowania Systemów, WETI, PG Problem plecakowy mamy plecak o określonej pojemnoś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.
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
Podejście zachłanne, a programowanie dynamiczne
Podejście zachłanne, a programowanie dynamiczne Algorytm zachłanny pobiera po kolei elementy danych, za każdym razem wybierając taki, który wydaje się najlepszy w zakresie spełniania pewnych kryteriów
INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA.
INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA http://www.infoceram.agh.edu.pl Klasy metod algorytmicznych Metoda TOP-DOWN (zstępująca, analityczna) Metoda BOTTOM-UP (wstępująca, syntetyczna)
Ćwiczenie 3 Programowanie dynamiczne
Ćwiczenie 3 Programowanie dynamiczne [źródło: Wprowadzenie do algorytmów, T.H. Cormen, Ch.E. Leiserson, R.L.Rivest, Wyd. Naukowo-Techniczne Warszawa, 2001; ZłoŜoność obliczeniowa problemów kombinatorycznych,
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
Algorytmy zachłanne. dr inż. Urszula Gałązka
Algorytmy zachłanne dr inż. Urszula Gałązka Algorytm zachłanny O Dokonuje wyboru, który w danej chwili wydaje się najkorzystniejszy. O Mówimy, że jest to wybór lokalnie optymalny O W rzeczywistości nie
Wykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
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,
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
Wstęp do programowania
Wstęp do programowania Funkcje Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. V Jesień 2013 1 / 32 Funkcje Funkcje w matematyce f : D W D dziedzina W zbiór wartości Funkcja może
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 9: Programowanie
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 9. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 9 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Zasada dziel i zwyciężaj Przykłady znajdowanie
Projektowanie i analiza algorytmów
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Projektowanie i analiza algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład
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
PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE
D: PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE I. Strategia zachłanna II. Problem przetasowań w genomie III. Sortowanie przez odwrócenia IV. Algorytmy przybliżone V. Algorytm zachłanny
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.
Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili
KARTA MODUŁU KSZTAŁCENIA
KARTA MODUŁU KSZTAŁCENIA I. Informacje ogólne 1 Nazwa modułu kształcenia Algorytmy i struktury danych 2 Nazwa jednostki prowadzącej moduł Instytut Informatyki, Zakład Informatyki Stosowanej 3 Kod modułu
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
Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie
Algorytmy Grafowe dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie b.wozna@ujd.edu.pl Wykład 5 i 6 B. Woźna-Szcześniak (UJD) Algorytmy
Wstęp do Programowania potok funkcyjny
i programowanie dynamiczne Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 i programowanie dynamiczne Outline 1 i programowanie dynamiczne i programowanie dynamiczne Rekurencyjny zapis rozwiązania
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
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
Optymalizacja. Algorytmy dokładne
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Organizacja zbioru rozwiązań w problemie SAT Wielokrotny podział na dwia podzbiory: x 1 = T, x 1
Programowanie dynamiczne (optymalizacja dynamiczna).
Programowanie dynamiczne (optymalizacja dynamiczna). W wielu przypadkach zadania, których złożoność wynikająca z pełnego przeglądu jest duża (zwykle wyk ładnicza) można rozwiązać w czasie wielomianowym
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ą
Zadania laboratoryjne i projektowe - wersja β
Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki
D: Dopasowanie sekwencji. Programowanie dynamiczne
D: Dopasowanie sekwencji. Programowanie dynamiczne Problem: jak porównywać sekwencje DNA? Czy te sekwencje są podobne? Jeśli są podobne, to jak mierzyć to podobieństwo? Odpowiedzi są kluczowe dla konstrukcji
Wykład 5 Dopasowywanie lokalne
Wykład 5 Dopasowywanie lokalne Dopasowanie par (sekwencji) Dopasowanie globalne C A T W A L K C A T W A L K C O W A R D C X X O X W X A X R X D X Globalne dopasowanie Schemat punktowania (uproszczony)
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
Algorytmy i struktury danych IS/IO, WIMiIP
Algorytmy i struktury danych IS/IO, WIMiIP Danuta Szeliga AGH Kraków Spis treści I 1 Algorytmy i struktury danych 2 Spis treści 3 Organizacja zajęć 4 Literatura 5 Pojęcia podstawowe Rozwiązywanie problemu
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu
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
Programowanie dynamiczne
Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty
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)
Znajdowanie wyjścia z labiryntu
Znajdowanie wyjścia z labiryntu Zadanie to wraz z problemem pakowania najcenniejszego plecaka należy do problemów optymalizacji, które dotyczą znajdowania najlepszego rozwiązania wśród wielu możliwych
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
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.
Metoda podziału i ograniczeń
Seminarium: Algorytmy heurystyczne Metoda podziału i ograniczeń Mateusz Łyczek Wrocław, 16 marca 011 r. 1 Metoda podziału i ograniczeń Metoda podziału i ograniczeń służy do rozwiązywania problemów optymalizacyjnych.
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.
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
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 5 część I 2 Iteracja Rekurencja Indukcja Iteracja Rekurencja Indukcja Algorytmy sortujące Rozwiazywanie
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ść
Wykład 10 Grafy, algorytmy grafowe
. Typy złożoności obliczeniowej Wykład Grafy, algorytmy grafowe Typ złożoności oznaczenie n Jedna operacja trwa µs 5 logarytmiczna lgn. s. s.7 s liniowa n. s.5 s. s Logarytmicznoliniowa nlgn. s.8 s.4 s
Kurs MATURA Z INFORMATYKI
Kurs MATURA Z INFORMATYKI Cena szkolenia Cena szkolenia wynosi 90 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji
Algorytmy i struktury danych Metody programowania Języki i paradygmaty programowania Nazwa jednostki prowadzącej przedmiot Instytut Matematyki
OPIS MODUŁU KSZTAŁCENIA (przedmiot lub grupa przedmiotów) Nazwa modułu/ przedmiotu Przedmiot/y Algorytmy i metody Algorytmy i struktury danych Metody Języki i paradygmaty Nazwa jednostki prowadzącej przedmiot
Programowanie dynamiczne. Tadeusz Trzaskalik
Programowanie dynamiczne Tadeusz Trzaskalik 9.. Wprowadzenie Słowa kluczowe Wieloetapowe procesy decyzyjne Zmienne stanu Zmienne decyzyjne Funkcje przejścia Korzyści (straty etapowe) Funkcja kryterium
Wstęp do programowania
Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 53
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 moliwo w nadziei, e doprowadzi
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
Programowanie liniowe całkowitoliczbowe
Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie nazywamy zadaniem programowania liniowego
zadaniem programowania liniowego całkowitoliczbowego. nazywamy zadaniem programowania liniowego 0-1. Zatem, w
Sformułowanie problemu Zastosowania Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie
Zadanie 5 - Algorytmy genetyczne (optymalizacja)
Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania
Dopasowanie par sekwencji
BIOINFORMTYK edycja 2016 / 2017 wykład 3 Dopasowanie par sekwencji dr Jacek Śmietański jacek.smietanski@ii.uj.edu.pl http://jaceksmietanski.net Plan wykładu 1. Idea i cele dopasowania sekwencji 2. Definicje
Algorytmika w bioinformatyce
Algorytmika w bioinformatyce Kurs dla kierunku BIOINFORMATYKA 2016/2017 Prowadzący: Prof. Danuta Makowiec danuta.makowiec@gmail.com IFTiA, pok. 353, tel.: 58 523 2466 Motywacja 2 Cztery etapy rekonstrukcji
INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA.
INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA http://www.infoceram.agh.edu.pl Klasy metod algorytmicznych Metoda TOP-DOWN (zstępująca, analityczna) Metoda BOTTOM-UP (wstępująca, syntetyczna)
Algorytmika w bioinformatyce
Algorytmika w bioinformatyce Kurs dla kierunku BIOINFORMATYKA 2017/2018 Prowadzący: Prof. Danuta Makowiec danuta.makowiec@gmail.com IFTiA, pok. 353, tel.: 58 523 2466 Motywacja 2 Cztery etapy rekonstrukcji
1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.
Wymagania edukacyjne z informatyki poziom rozszerzony w klasie 2 Społecznego Liceum Ogólnokształcącego Splot im. Jana Karskiego w Nowym Sączu 1. Algorytmika TREŚCI NAUCZANIA WPROWADZENIE DO ALGORYTMIKI
Rekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Algorytmiczna teoria grafów
Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)
Politechnika Wrocławska. Dopasowywanie sekwencji Sequence alignment
Dopasowywanie sekwencji Sequence alignment Drzewo filogenetyczne Kserokopiarka zadanie: skopiować 300 stron. Co może pójść źle? 2x ta sama strona Opuszczona strona Nadmiarowa pusta strona Strona do góry
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
Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk
Wykład nr 3 27.10.2014 Procesory identyczne, zadania niezależne, podzielne: P pmtn C max Algorytm McNaughtona 1 Wylicz optymalną długość C max = max{ j=1,...,n p j/m, max j=1,...,n p j }, 2 Szereguj kolejno
0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.
KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych
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,
Optymalizacja. Algorytmy dokładne
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Organizacja zbioru rozwiązań w problemie SAT Wielokrotny podział na dwia podzbiory: x 1 = T, x 1
Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
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
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
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4: Iteracja, indukcja i rekurencja http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Iteracja, indukcja
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 5b: Model danych oparty na listach http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Listy należą do najbardziej
Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago
Transformata Fouriera Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformacja Fouriera rozkłada funkcję okresową na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne
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
Programowanie liniowe
Badania operacyjne Problem Model matematyczny Metoda rozwiązania Znaleźć optymalny program produkcji. Zmaksymalizować 1 +3 2 2 3 (1) Przy ograniczeniach 3 1 2 +2 3 7 (2) 2 1 +4 2 12 (3) 4 1 +3 2 +8 3 10
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
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
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
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH wykład 1 wprowadzenie, struktury sterujace, projektowanie algorytmów dr hab. inż. Andrzej Obuchowicz, prof. UZ Instytut Sterowania i Systemów Informatycznych UZ p. 425 A2 tel.
Metody algortmiczne (Algorytmy Część IV)
Metody algortmiczne (Algorytmy Część IV) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-10-02 17:27:45 +0200 Jak się tworzy algorytmy? Moja odpowiedź jest krótka: Jak się tworzy algorytmy? Moja
Programowanie liniowe całkowitoliczbowe
Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie nazywamy zadaniem programowania liniowego
Wykład 4: Iteracja, indukcja i rekurencja
Teoretyczne podstawy informatyki Wykład 4: Iteracja, indukcja i rekurencja Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Iteracja, indukcja i rekurencja to podstawowe zagadnienia pojawiające się przy
Scenariusz lekcji. podać definicję metody zachłannej stosowanej w algorytmie; wymienić cechy algorytmów zachłannych;
Scenariusz lekcji 1 TEMAT LEKCJI: Algorytmy zachłanne. 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicję metody zachłannej stosowanej w algorytmie; wymienić cechy algorytmów zachłannych; wymienić
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja