Algorytmy i struktury danych IS/IO, WIMiIP
|
|
- Karol Witkowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Algorytmy i struktury danych IS/IO, WIMiIP Danuta Szeliga AGH Kraków
2 I Algorytmy i struktury danych 1 Algorytmy i struktury danych 2 Spistreści 3 Organizacjazajęć 4 5 Pojęciapodstawowe Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu 6 Metodyalgorytmiczne
3 II Algorytmy i struktury danych
4 Algorytmy i struktury danych Wykłady- 30h Ćwiczenia audytoryjne- 30h Ćwiczenia laboratoryjne- 15h
5 Algorytmy i struktury danych Wykłady- 30h Ćwiczenia audytoryjne- 30h Ćwiczenia laboratoryjne- 15h Zaliczenia i egzaminy: szeliga/ menu Dydaktyka Zakres materiału, literatura: syllabus AGH
6 N. Wirth, Algorytmy + struktury danych = programy D. Knuth, Sztuka programowania T.H. Cormen, C.E. Leiserson, R.L. Rivest, Wprowadzenie do Algorytmów A.V. Aho, J.E. Hopcroft, J.D. Ullman, Algorytmy i struktury danych A. Drozdek, C++ Algorytmy i struktury danych L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych
7 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Rozwiązywanie problemu(zagadnienia) Modelowanie rzeczywistości zdefiniowanie zadania wprowadzenie założeń i ograniczeń selekcja informacji Algorytm rozwiązania Zapis: język naturalny pseudokod schemat blokowy Wybór narzędzia programowania Implementacja struktur danych algorytmu rozwiązania
8 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Rozwiązywanie problemu(zagadnienia) Modelowanie rzeczywistości zdefiniowanie zadania wprowadzenie założeń i ograniczeń selekcja informacji Algorytm rozwiązania Zapis: język naturalny pseudokod schemat blokowy Wybór narzędzia programowania Implementacja struktur danych algorytmu rozwiązania Dobry algorytm warunek konieczny, ale niewystarczający napisania poprawnego i wydajnego programu
9 Co to jest algorytm? Algorytmy i struktury danych Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Jeżeli mamy do wykonania pewne zadanie, tworzymy sposób (przepis, proces, metodę, technikę, procedurę) realizacji tego zadania. Taki przepis to algorytm. Przykłady: przepis kucharski instrukcja składania mebla, urządzenia zapis nutowy wykonywanie pisemne dodawania/mnożenia/dzielenia...
10 Co to jest algorytm? Algorytmy i struktury danych Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Jeżeli mamy do wykonania pewne zadanie, tworzymy sposób (przepis, proces, metodę, technikę, procedurę) realizacji tego zadania. Taki przepis to algorytm. Przykłady: przepis kucharski instrukcja składania mebla, urządzenia zapis nutowy wykonywanie pisemne dodawania/mnożenia/dzielenia... Słowo algorytm (z ang. algorism) pochodzi od nazwiska matematyka perskiego z IX wieku, Muhammada ibn Musa al-chuwarizmi ego i oznaczało pierwotnie wykonywanie działań przy pomocy liczb arabskich
11 Przykład algorytmu- opis słowny Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Problem najwiekszego wspólnego dzielnika dwóch liczb naturalnych n i m, czyli najwiekszej liczby naturalnej, która dzieli obie liczby bez reszty Algorytm Euklidesa Algorytm Euklidesa(ok. 300 p.n.e) wyznaczania najwiekszego wspólnego dzielnika: K1 podzielnprzezm.niechrbędzieresztąztegodzielenia K2 jeżelir=0,wówczasmjestwynikiem,zakończ K3 podstaw n m, m riwróćdokrokuk1
12 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Przykład algorytmu- opis słowny Problem najwiekszego wspólnego dzielnika dwóch liczb naturalnych n i m, czyli najwiekszej liczby naturalnej, która dzieli obie liczby bez reszty Algorytm Euklidesa Algorytm Euklidesa(ok. 300 p.n.e) wyznaczania najwiekszego wspólnego dzielnika: K1 podzielnprzezm.niechrbędzieresztąztegodzielenia K2 jeżelir=0,wówczasmjestwynikiem,zakończ K3 podstaw n m, m riwróćdokrokuk1 Np. Najwiekszy wspólny dzielnik n=6 i m=4: K1:r 6modulo4 K2:r=2,zatemprzechodzimydoK3 K3:n 4,m 2 K1:r 4modulo2 K2:r=0,wynikiemjestm=2,zakończ
13 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Zapis algorytmu- schemat blokowy Schemat blokowy(block diagram, flowchart) to diagram, na którym algorytm jest reprezentowany przez opisane figury geometryczne, połączone liniami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania pozwala dostrzec istotne etapy algorytmu i logiczne zależności między nimi Elementy schematu blokowego strzałka wskazuje kierunek przebiegu sterowania algorytmem, łączy inne bloki operand(prostokąt) wszystkie operacje z wyjątkiem instrukcji wyboru predykat(romb, sześciokąt) instrukcja wyboru etykieta(owal) początek lub koniec sekwencji schematu wejście/wyjście(równoległobok) Rysunek: Przykładalgorytm Euklidesa
14 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Schematy blokowe instrukcji sterujących instrukcja bezpośredniego następstwa: {instrukcja1; instrukcja2;} instrukcja wyboru: {if(wyrażenie) instrukcja1;} {if(wyrażenie) instrukcja1; else instrukcja2;}
15 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Schematy blokowe instrukcji sterujących instrukcje iteracyjne: while(wyrażenie) instrukcja; do {... }while(wyrażenie) for(wyr1; wyr2; wyr3) instrukcja;
16 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Algorytm I Algorytm to ściśle określony ciąg kroków obliczeniowych, prowadzący do przekształcenia danych wejściowych w wyjściowe Cechy algorytmu Poprawnie zdefiniowany. Definicja zadania = co algorytm ma zrobić, jakie zadanie wykonać. Definicja problemu określa dane wejściowe(pochodzące z dokładnie określonego zbioru wartości dozwolonych) i dane wyjściowe- tzw. specyfikacja we/wy
17 Algorytm II Algorytmy i struktury danych Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Precyzyjnie zdefiniowany. Każdy krok jest jednoznacznie określony, obejmuje operacje elementarne. Opis ciągu czynności, które po kolei mają być wykonane. Czynności te muszą być na tyle proste(i możliwe do wykonania), aby wykonawca algorytmu mógł je bez dodatkowego tłumaczenia zrealizować operacje elementarne(odpowiednio dobrany poziom szczegółowości) Skończony. Wyprodukuje wynik w skończonej liczbie kroków. Jednoznaczny(powtarzalny). Algorytm dostaje pewne informacje(dane we) i zwraca(oczekiwane) wyniki dane wy. Wielokrotne wykonywanie dla identycznych danych we daje zawsze taki sam wynik. Kompletny. Uwzględnia wszystkie możliwe przypadki, jakie mogą wystąpić podczas jego wykonywania. Uniwersalny. Umożliwia rozwiązanie całej klasy zadań, a nie tylko pojedynczego, ustalonego zadania. Może istnieć kilka przepisów, które dają te same wyniki
18 Poprawność algorytmu Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Jeżeli: algorytm zatrzymuje się po skończonej liczbie kroków(posiada własność stopu) dla danych spełniajacych warunek poczatkowy(wp), algorytm generuje dane spełniajęce warunek końcowy(wk) algorytm jest poprawny
19 Rozwiązywanie problemu Algorytm Zapis algorytmu- schemat blokowy Cechy algorytmu Poprawność algorytmu Poprawność algorytmu Jeżeli: algorytm zatrzymuje się po skończonej liczbie kroków(posiada własność stopu) dla danych spełniajacych warunek poczatkowy(wp), algorytm generuje dane spełniajęce warunek końcowy(wk) algorytm jest poprawny Poprawność algorytmu Algorytm jest częściowo poprawny względem danego warunku WP i danego warunku WK, gdy dla dowolnych danych wejściowych spełniających WP, jeżeli algorytm się zatrzymuje, to dane wyjściowe algorytmu spełniają warunek WK Algorytm jest całkowicie poprawny względem danego warunku WP i danego warunku WK, gdy dla dowolnych danych wejściowych spełniających warunek WP algorytm zatrzymuje się i dane wyjściowe tego algorytmu spełniaja warunek WK
20 Tworzenie algorytmu Definicja problemu(najlepiej w postaci modelu matematycznego) Koncepcja rozwiązania i wybór struktur danych Zapis algorytmu(stopniowe precyzowanie od koncepcji do pseudo-kodu lub kodu) Dowód poprawności i analiza złożoności obliczeniowej (Implementacja w wybranym języku programowania)
21 Metoda TOP-DOWN (zstępująca, analityczna) problem jest dzielony na podproblemy podproblemy są rozwiązywane, a wyniki zapamiętywane, jeżeli będą użyte później używana jest rekursja i spamiętywanie Metoda BOTTOM-UP (wstępująca, syntetyczna) najpierw są rozwiązywane wszystkie(elementarne) podproblemy, które mogą być potrzebne następnie ich wyniki są używane do rozwiązywania większych podproblemów
22 Podstawowe metody rozwiązywania zadań algorytmicznych Algorytmy zachłanne Planowanie dynamiczne
23 I Algorytmy i struktury danych / rekursja odwoływanie się funkcji lub definicji do samej siebie Silnia { 1 n =0 n! = n (n 1)! n>0 Ciąg Fibbonacciego 0 n =0 F n = 1 n =1 F n 1 +F n 2 n>1 integer silnia(integer n){ if(n=0)thenreturn1; else return n*silnia(n-1); } integer Fib(integer n){ if(n=0)thenreturn0; elseif(n=1)thenreturn1; else return Fib(n-1)+Fib(n-2); }
24 II Algorytmy i struktury danych Każda definicja rekurencyjna potrzebuje przynajmniej jednego przypadku bazowego(nie rekurencyjnego) w przeciwnym wypadku nigdy się nie zakończy Należy zachować ostrożność przy stosowaniu rekurencji!
25 Problem dzieli się na mniejsze zadania tego samego typu i rozwiązuję się zdefiniowane podzadania Następnie łączy się częściowe rozwiązania w rozwiązanie całościowe problemu wyjściowego Jeżeli zdefiniowane podzadania są dokładnie takie same jak zadanie wyjściowe, lecz postawione dla mniejszych lub prostszych danych, to algorytm rozwiązania może być rekurencyjny Metoda jest przykładem zastosowania podejścia top-down konstrukcji algorytmu
26 . Przykład: problem wież Hanoi Algorytm rozwiązuje zadanie dla N krążków, dzieląc problem na dwa problemy dla N-1 krążków i rozwiązując je Danesątrzywieże(kołki):A,B,C.Na kołku A znajdują się trzy krążki ułożone malejąco, pozostałe kołki są puste Zadanie:przenieśkrążkizkołkaAnaB, można korzystać z kołka C. Zachowane muszą być następujące zasady jednocześnie można przenieść tylko jeden kołek kołek większy nigdy nie może znaleźć się na kołku mniejszym Rozwiązanie dla trzech krążków: A B, A C,B C,A B,C A,C B, A B
27 . Przykład: problem wież Hanoi- cd AlgorytmrozwiązaniaproblemuWieżHanoidla N N + krążkówitrzech kołkówa,b,c. procedura WieżeHanoi(N,X,Y,Z){ //przenieś N krążków z X na Y używając Z if(n==1) wypisz(x," ->",Y); else{ WieżeHanoi(N-1,X,Z,Y); //przenieś N-1 krążków z X na Z używając Y wypisz(x," ->",Y); WieżeHanoi(N-1,Z,Y,X); //przenieś N-1 krążków z Z na Y używając X } }
28 . Przykład: wyszukiwanie binarne Dane: posortowany ciąg liczb przechowywany w tablicy Zadanie: wyszukać w ciągu element o zadanej wartości Zastosowanie metody dziel i zwyciężaj dla tablicy o rozmiarze N i elementu x: dziel: weź element środkowy m(pozycja N/2); porównaj x z elementem środkowym zwyciężaj:jeżeli x = mzwróćpozycję;jeżeli x< mszukajwlewej podtablicy, w przeciwnym przypadku szukaj w prawej podtablicy. integer WyszukajBin(ELEM T[], ELEM x, integer l, integer p){ if(l>p)return -1; intm; do{ m=(l+p)/2; if( T[m]=x) return m; elseif(t[m]<x )l=m+1; else p=m-1; }while( l<=p ); return -1; }
29 Metoda Dziel i zwyciężaj. Cechy Umożliwia często rozwiązywanie skomplikowanych problemów Daje efektywne algorytmy jeżeli: danych jest p podproblemów o rozmiarze n/p, podział i scalenie O(n) rozwiązanie trywialne O(1) wtedy metoda daje algorytm o złożoności O(nlogn) Algorytmy można łatwo zrównoleglać Wykorzystanie rekurencji do konstrukcji algorytmu metodą dziel i zwyciężaj może być nieefektywne Jeżeli podproblemy na siebie zachodzą, wtedy powtarzające się rozwiązania należy zapamiętywać (np. jak w przypadku ciągu Fibonacciego).
30 Algorytmy i struktury danych Zastosowanie znajdowanie dla danego problemu rozwiązania pod pewnymi względami najlepszego z wszystkich możliwych rozwiązań Własność zachłannego wyboru Za pomocą lokalnie optymalnych(zachłannych) wyborów można uzyskać optymalne rozwiązanie całego zadania Optymalny wybór dokonany przez algorytm zachłanny może zależeć od poprzednich wyborów, ale nie zależy od wyborów kolejnych
31 Algorytmy i struktury danych Zastosowanie znajdowanie dla danego problemu rozwiązania pod pewnymi względami najlepszego z wszystkich możliwych rozwiązań Własność zachłannego wyboru Za pomocą lokalnie optymalnych(zachłannych) wyborów można uzyskać optymalne rozwiązanie całego zadania Optymalny wybór dokonany przez algorytm zachłanny może zależeć od poprzednich wyborów, ale nie zależy od wyborów kolejnych Algorytm zachłanny konstruuje iteracyjnie rozwiązanie w sposób zachłanny, tzn. najbardziej obiecujący w danej chwili wybór rozwiązania częściowego Algorytm zachłanny nie przewiduje, czy w kolejnych krokach wykonywane działania będą miały sens, ale dokonuje decyzji lokalnie optymalnej, czyli w danej chwili najlepszej, kontynuując rozwiązywanie podproblemu wynikające z podjętej decyzji
32 Algorytmy zachłanne. Cechy Problem nie jest rozpatrywany globalnie Typowe zadanie rozwiązywane metodą zachłanną ma charakter optymalizacyjny Musi być znane kryterium pozwalające oceniać jakość rozwiązania Istnieje wiele problemów, dla których udowodnić można, że rozwiązanie zachłanne jest zawsze optymalne(np. algorytm Prima, Kruskala). W przypadku innych problemów zachłanność się nie opłaca lub może być problematyczna(np. problem wydawania reszty) Nie istnieje ogólna metoda dowodzenia, czy dla danego problemu rozwiązanie zachłanne(zawsze) odnajduje poprawny (i optymalny) wynik.
33 Algorytmy zachłanne. Budowa rozwiązania Niech Z będzie zbiorem skończonym, takim, że wszystkie możliwe rozwiązania R problemu P są podzbiorami Z Budowa rozwiązania zachłannego Napoczątku R = Aż do znalezenia rozwiązania, w każdej iteracji wybierane jest rozwiązanieczęściowe z Z,którejestdołączanedo rozwiązania problemu, takie, że: R = R {z} : R jest optymalne przy czym wybrane rozwiązanie z jest usuwane ze zbioru (Z = Z\{z})
34 Algorytmy zachłanne. Przykład Dane: zbiór miast Zadanie: połączmiastawsiećwtensposób,abyzdowolnegomiastamożnabyło dotrzeć do każdego innego w najtańszy (np. najkrótszy) sposób Założenia: znane są tylko odległości dla par miast, dla których jest możliwe bezpośrednie połączenie
35 Algorytmy zachłanne. Przykład Dane: zbiór miast Zadanie: połączmiastawsiećwtensposób,abyzdowolnegomiastamożnabyło dotrzeć do każdego innego w najtańszy (np. najkrótszy) sposób Założenia: znane są tylko odległości dla par miast, dla których jest możliwe bezpośrednie połączenie Sieć połączeń między miastami nazywana jest grafem etykietowanym Rozwiązanie zadania sprowadza się do znalezienia minimalnego drzewa rozpinającego grafu Minimalne drzewo rozpinające grafu To drzewo, które dociera do każdego węzła grafu dokładnie raz suma etykiet krawędzi grafu jest najmniejsza z możliwych
36 Algorytmy zachłanne. Przykład- cd
37 Algorytmy zachłanne. Przykład- cd Algorytm Prima: zbuduj drzewo zdegenerowane, składające się z najtańszej krawędzi grafu w każdym kolejnym kroku dodaj do już istniejącego drzewa najtańszą krawędź z krawędzi dotąd nie wziętych pod uwagę (uwaga! dodanie nowej krawędzi nie może prowadzić do powstania cyklu, w takim przypadku przejdź do nowej krawędzi w porządku rosnących kosztów).
38 Algorytmy zachłanne. Przykład- cd
39 Algorytmy zachłanne. Przykład- cd
40 Algorytmy zachłanne. Przykład- cd
41 Algorytmy zachłanne. Przykład- cd
42 Algorytmy zachłanne. Przykład- cd
43 Algorytmy zachłanne. Przykład- cd
44 Algorytmy zachłanne. Przykład- cd
45 Algorytmy zachłanne. Przykład- cd
46 Programowanie(planowanie) dynamiczne Własność optymalnej podstruktury Optymalne rozwiązanie całego problemu jest możliwe tylko przy optymalnym rozwiązaniu jego podproblemów.(optymalne rozwiązanie całego problemu zawiera optymalne rozwiązania podproblemów).
47 Programowanie(planowanie) dynamiczne Własność optymalnej podstruktury Optymalne rozwiązanie całego problemu jest możliwe tylko przy optymalnym rozwiązaniu jego podproblemów.(optymalne rozwiązanie całego problemu zawiera optymalne rozwiązania podproblemów). Spamiętywanie[Donald Michie, 1968] Technika optymalizacyjna przyspieszająca działanie algorytmów, polegająca na zapamiętywaniu wyników zwracanych przez funkcje do późniejszego ich wykorzystania, zamiast ponownego wywołania tych funkcji.
48 Programowanie(planowanie) dynamiczne [Richard Bellman, 1940] W każdym kroku rozważamy wszystkie kombinacje powstałe z: dokonania konkretnego wyboru znalezienia optymalnych rozwiązań dla pozostałych dla pozostałych wyborów Optymalny wybór dokonany przez metodę programowania dynamicznego może zależeć od poprzednich wyborów oraz od wyborów kolejnych wtedy rozwiązanie optymalne jest modyfikowane
49 Podproblemy cechują się następującymi własnościami: 1 niesąnaogółrozłączne-tesamepodproblemysąużywanedo rozwiązywania wielu większych podproblemów Rysunek: Kolejne wyrazy ciągu Fibbonaciego 2 z tego powodu należy zapamiętać rozwiązanie danego podproblemu, aby go ponownie użyć(spamiętywanie) 3 posiadają własność optymalnej podstruktury
50 . Przykład Poszukiwanie najtańszej drogi od początkowego węzła do węzła przeznaczenia w etykietowanym grafie skierowanym
51 . Przykład Poszukiwanie najtańszej drogi od początkowego węzła do węzła przeznaczenia w etykietowanym grafie skierowanym W algorytmie planowania dynamicznego długość najkrótszej ścieżki wiodącej z A do B powstaje przez znalezienie: K1NajmniejszejztrzechodległościzAdoC,D,G K2 Dodanie do tych odległości długości najkrótszej ścieżki prowadzącejzc,digdob K3 Wybór najkrótszej z nich
52 . Przykład- cd Niech L(X) oznacza najkrótszą ścieżkę prowadzącą z X do B. Wtedy: L(A) =min(5+l(c),14+l(g),3+l(d)) Najpierw znajdowane są trzy mniejsze ścieżki optymalne: L(C), L(G), L(D), a później wykonując dodawania i porównania otrzymywana jest całkowita ścieżka optymalna: L(C) =min(2+l(f);3+l(e)) L(G) =min(7+l(e);6+l(b)) L(D) =min(6+l(g);11+l(c)) L(B) =0
53 . Przykład- cd Algorytm znajdowania najkrótszej ścieżki w grafie Jeśliwęzłamisą C i,...,c niścieżkamasięrozpocząćwc 1iskończyćwC N,to algorytmwymagaobliczeniaoptymalnejścieżkiczęściowej L(C i), przedstawiającejnajkrótsząścieżkęzc ido C n,dlakażdego i =1...n: L(C i) =min(odległość(c i,c k )+L(C k )) przyczym C k towszystkiewęzły,doktórychprowadząbezpośredniokrawędzie z C i Zzałożeniagrafjestacykliczny,możliwejestwięcobliczeniewszystkich L(C i ), posuwającsięzb4dotyłu: 1 L(F) =7,L(E) =5,L(G) =6 2 L(C) =min(2 + L(F),3 + L(E)) =3 + L(E) =8 3 L(D) =min(11 + L(C),6 + L(G)) =6 + L(G) =12 4 L(A) =min(5 + L(C),3 + L(D),14 + L(G)) =5 + L(C) =13 OptymalnaścieżkazAdo Bto: A C E B
54 . Przykłady Algorytmy operujących na ciągach znaków, np. longest common subsequence, longest increasing subsequence Algorytm Floyda-Warshalla- poszukiwanie najkrótszych ścieżek pomiędzy wszystkimi parami wierzchołków w grafie etykietowanym Alorytm Cocke-Younger-Kasami(CYK)- sprawdzanie, czy słowo należy do języka bezkontekstowego Problem optymalnego nawiasowania macierzy Wybór instrukcji niskiego poziomu w kompilatorach
55 Algorytmy i struktury danych Technika rozwiązywania trudnego problemu poprzez jego transformację do innego problemu, dla którego znamy asymptotycznie optymalne algorytmy Kluczowe jest znalezienie takiego algorytmu redukującego, którego złożoność jest mniejsza niż złożoność algorytmu dla problemu zredukowanego
56 Algorytmy i struktury danych Technika rozwiązywania trudnego problemu poprzez jego transformację do innego problemu, dla którego znamy asymptotycznie optymalne algorytmy Kluczowe jest znalezienie takiego algorytmu redukującego, którego złożoność jest mniejsza niż złożoność algorytmu dla problemu zredukowanego Przykład: problem znalezienia mediany 1 Posortowanie elementów(kosztowna część algorytmu) 2 Wybór środkowego elementu(tania część algorytmu)
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
Bardziej szczegółowoAlgorytmy 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ółowoProgramowanie 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ółowoProgramowanie 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ółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z zagadnień dotyczących analizy i syntezy algorytmów z uwzględnieniem efektywności
Bardziej szczegółowoINFORMATYKA 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)
Bardziej szczegółowoWykład 8. Drzewo rozpinające (minimum spanning tree)
Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoAlgorytm. 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
Bardziej szczegółowoAlgorytmy i struktury danych.
Kod przedmiotu: ASD Rodzaj przedmiotu: Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Algorytmy i struktury danych. kierunkowy ; obowiązkowy Poziom studiów: pierwszego stopnia
Bardziej szczegółowoLiteratura. 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,
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoEGZAMIN - 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ółowoTechniki 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ółowoStrategia "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
Bardziej szczegółowoKARTA 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
Bardziej szczegółowoWstę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
Bardziej szczegółowoDrzewa 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ółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoProgramowanie 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ółowoTEORETYCZNE 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ółowoSYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17
Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2016 2020 Realizacja w roku akademickim 2016/17 1.1. Podstawowe informacje o przedmiocie/module Nazwa przedmiotu/ modułu
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 7 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie) w
Bardziej szczegółowoPoprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoZofia 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
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
Bardziej szczegółowoALGORYTMY 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.
Bardziej szczegółowoSchemat 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
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoZł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
Bardziej szczegółowoProjektowanie 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
Bardziej szczegółowoSYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17
Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2015 2019 Realizacja w roku akademickim 2016/17 1.1. Podstawowe informacje o przedmiocie/module Nazwa przedmiotu/ modułu
Bardziej szczegółowoAlgorytm. 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
Bardziej szczegółowoWstę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ł
Bardziej szczegółowoMetody Programowania
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie
Bardziej szczegółowoAlgorytmy 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ółowoAlgorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Bardziej szczegółowoDefinicja. 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,
Bardziej szczegółowoSortowanie 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
Bardziej szczegółowoWykł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
Bardziej szczegółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Bardziej szczegółowoAlgorytmy. wer Wojciech Myszka 30 listopada 2008
Algorytmy Część IV wer. 1.2 Wojciech Myszka 30 listopada 2008 Spis treści I Spis treści Jak się tworzy algorytmy? Poszukiwania i wędrówki Dziel i zwyciężaj Rekurencja Definicje Przykład Schemat blokowy
Bardziej szczegółowoWprowadzenie do algorytmiki
Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki
Bardziej szczegółowoa) 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
Bardziej szczegółowoWstę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
Bardziej szczegółowoAlgorytmy komputerowe. dr inŝ. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoRekurencja. 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
Bardziej szczegółowoMetody 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
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowoPodstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoAlgorytmy i struktury danych
Kierunek Profil kształcenia Nazwa jednostki realizującej moduł/przedmiot: Kontakt (tel./email): Osoba odpowiedzialna za przedmiot: Osoba(y) prowadząca(e) Przedmioty wprowadzające wraz z wymaganiami wstępnymi
Bardziej szczegółowoMetodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
Bardziej szczegółowoTEORETYCZNE 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ółowoZałącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010
1/1 Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 Kierunek: INFORMATYKA Specjalność: PRZEDMIOT OBOWIĄZKOWY DLA WSZYSTKICH STUDENTÓW. Tryb studiów: NIESTACJONARNE PIERWSZEGO STOPNIA
Bardziej szczegółowoStruktury 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.
Bardziej szczegółowoAlgorytmy 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
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
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
Bardziej szczegółowoKarta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.
Państwowa Wyższa Szko la Zawodowa w Nowym Sa czu Karta przedmiotu Instytut Techniczny obowiązuje studentów rozpoczynających studia w roku akademickim 201/2016 Kierunek studiów: Informatyka Profil: Ogólnoakademicki
Bardziej szczegółowoStruktury 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ółowoSortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Bardziej szczegółowoStruktury 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ółowoAlgorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.
Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób
Bardziej szczegółowo3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.
1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoKierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I Sylabus modułu: Informatyka A (03-MO1S-12-InfoA) 1. Informacje ogólne koordynator modułu
Bardziej szczegółowoWykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.
Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa
Bardziej szczegółowoINFORMATYKA. Algorytmy.
INFORMATYKA Algorytmy http://www.infoceram.agh.edu.pl ALGORYTM ALGORYTM to skończony ciąg jasno zdefiniowanych czynności, wskazujący kolejność operacji koniecznych do rozwiązania zadanego problemu. Słowo
Bardziej szczegółowoZad. 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ółowoAlgorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew
Bardziej szczegółowoWstę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
Bardziej szczegółowoModele 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ółowoWykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia
Bardziej szczegółowoPodejś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
Bardziej szczegółowoTechnologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15
Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:
Bardziej szczegółowoPodstawy 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ółowoRekurencja. 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoTemat: 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,
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoMetodyki i techniki programowania
Metodyki i techniki programowania dr inż. Maciej Kusy Katedra Podstaw Elektroniki Wydział Elektrotechniki i Informatyki Politechnika Rzeszowska Elektronika i Telekomunikacja, sem. 2 Plan wykładu Sprawy
Bardziej szczegółowoProgramowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy
Bardziej szczegółowoWykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1 Część 1 Pojęcie algorytmu 2 I. Pojęcie algorytmu Trochę historii Pierwsze
Bardziej szczegółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoZaawansowane 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ółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoTEORETYCZNE 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ółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści wspólnych z kierunkiem Matematyka, moduł kierunku obowiązkowy PODSTAWY INFORMATYKI Fundamentals of computer science
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 2
Plan wykładu: Pojęcie algorytmu. Projektowanie wstępujące i zstępujące. Rekurencja. Pojęcie algorytmu Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy
Bardziej szczegółowoZł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ółowoPodstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu
Podstawy Informatyki Inżyria Ciepła, I rok Wykład 7 Algorytmy Sformułowa problemu. Programowa Opracowa metodyki rozwiązania. Opracowa algorytmu. Napisa kodu źródłowego (zakodowa) w wybranym języku (Pascal,
Bardziej szczegółowoProjektowanie 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
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowo