1 / 25

ALGORYTMY

ALGORYTMY. Kinga Kołodziej, Marta Trębicka. Co to jest algorytm?. „Algorytm, tym wyrazem oznaczamy zbiór wszystkich znaków używanych w jakimkolwiek rachunku.” Encyklopedia Powszechna Orgelbranda (1859)

aden
Download Presentation

ALGORYTMY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORYTMY Kinga Kołodziej, Marta Trębicka

  2. Co to jest algorytm? • „Algorytm, tym wyrazem oznaczamy zbiór wszystkich znaków używanych w jakimkolwiek rachunku.” Encyklopedia Powszechna Orgelbranda (1859) • „Algorytm, zbiór wszystkich znaków używanych w jakimkolwiek rachunku. Tak mamy algorytm rachunku różniczkowego, algorytm proporcji. Wyraz ten pochodzi od nazwiska matematyka arabskiego Alkaresmi…” Encyklopedia Powszechna Orgelbranda (1898-1912)

  3. „Algorytm oznacza działanie matematyczne; pochodzi od arabskiego imienia Alchwarizmi. Znany jest algorytm Euklidesa dla oznaczenia największego wspólnego dzielnika dwu liczb całkowitych”Encyklopedia Gutenberga • „Algorytm (arab.) matematyczny przepis postępowania, instrukcja mechanicznego, bezmyślnego rozwiązywania typowego zadania matematycznego na podstawie szczegołówego planu kolejnych czynności arytmetycznych, np. algorytm wyciągania pierwiastka kwadratowego […] Wyraz algorytm […] oznaczał w wiekach średnich regułę wykonywania czterech działań arytmetycznych w dziesiętnym systemie numeracji. Ostateczną definicję algorytmu podano dopiero w XX w.” I tom Encyklopedii Powszechnej PWN

  4. Algorytm w procesie powstawania • Algorytm jest przepisem opisującym krok po kroku rozwiązanie problemu lub osiągnięcie jakiegoś celu

  5. Na całościowe rozwiązanie problemu składają się : • wybór metody rozwiązania problemu • plan zastosowania tej metody do rozwiązania problemu • opis czynności wykonywanych podczas realizacji tego planu wraz z opisem ich skutków • ostateczny wynik wykonywanych czynności Czynności służące do rozwiązania zadania (kroki) to :• analiza treści zadania • wykaz danych wejściowych; wiadomych i niewiadomych oraz relacji między nimi • sprawdzenie czy zadanie posiada jednoznaczne rozwiązanie • wybór metody rozwiązania zadania • opis czynności, które należy wykonać z danymi wejściowymi przy zastosowaniu • wybranej metody rozwiązania • sporządzenie i przedstawienie wyników rozwiązania zadania • Urządzenie techniczne, które może realizować algorytm nosi nazwę automatu (żelazko z termoregulatorem, lodówka, pralka automatyczna). Uniwersalnym automatem do realizacji algorytmów z zakresu przetwarzania danych jest komputer.

  6. Trochę historii… • Początkowo słowem algorism nazywano czynności konieczne do wykonywania obliczeń z użyciem dziesiętnego systemy liczbowego. Obecne znaczenie słowa algorytm jako zestawu ścisłych reguł powstało wraz z rozwojem matematyki i techniki. • Najstarszy algorytm – algorytm Euklidesa, ma ponad 2000 lat. • Liczydła – Pierwsze urządzenia pomagające wykonywać obliczenia. Konstruowali je Chińczycy, Rzymianie, Arabowie • Kalkulatory – XVII w, twórcy: Blaise Pascal (1623-1662) i Gottfried W. Leibniz (1646-1716) • Pierwsze komputery – początek wieku XIX, Charles Babbage (1791-1871). • Komputer (w dzisiejszym sensie) – Konrad Zuze (1910-1995), pierwsza maszyna jeszcze przed II WŚ.

  7. Rodzaje algorytmów ALGORYTMY LINIOWE sekwencyjne WARUNKOWE iteracyjne rekurencyjne

  8. Algorytm sekwencyjny • Instrukcje wykonywane są w porządku, w jakim zostały wprowadzone. • Algorytm liniowy (sekwencyjny) — instrukcje wykonywane po kolei 1. Przygotuj jajko, tłuszcz, przyprawy2. Wrzuć tłuszcz na patelnię3. Podgrzej patelnię4. Wbij jajko5. Dodaj przyprawy6. Wymieszaj7. Wyłóż na talerz

  9. Algorytm iteracyjny • rodzaj algorytmu i programu, w których wielokrotnie wykonuje się pewne instrukcje, dopóki nie zostanie spełniony określony warunek, • Algorytm iteracyjny warunkowy (iteratio- powtarzanie, działanie w pętli)Dopóki jest czerwone światło dla pieszych stój i czekaj1. Stój2. Czy świeci się czerwone światło?         A. Jeśli TAK to przejdź do kroku 1         B. Jeśli NIE to przejdź do kroku 33. Można przejść przez ulicę zachowując ostrożność

  10. Algorytm rekurencyjny • Algorytm rekurencyjny to taki, który w pewnym kroku zawiera polecenie wykonania siebie samego dla innych danych. • Takie rekurencyjne wywołanie algorytmu wykorzystuje domyślnie stos, na którym zapisywane są aktualne wartości wszystkich wykorzystywanych zmiennych. Są one przywracane w chwili ukończenia rekursywnego wywołania algorytmu. • Przykładem rekurencji jest prosty algorytm o nazwie   jedz kaszkę:   • 1. Jedz kaszkę  (weź łyżkę kaszki i połknij)         2. Jedz kaszkę dalej, aż talerz będzie pusty

  11. Sposoby reprezentacji algorytmu: - Lista kroków (reprezentacja krokowa-w punktach)- reprezentacja graficzna (schemat blokowy, drzewo)Lista kroków- przedstawienia w punktach, - każdy punkt zawiera opis wykonywanej czynności,- kolejność opisywania nie powinna być przypadkowa,tylko ściśle związana z realizacją algorytmu;Reprezentacja graficzna – w schemacie blokowym kolejne operacje z listy kroków algorytmu prezentowane są w postaci odpowiednio połączonych figur geometrycznych (bloki). Kształt i opis bloku wskazuje na rodzaj wykonywanej operacji.

  12. Słowny opis algorytmu • Jest na ogół pierwszym, mało ścisłym opisem algorytmu. • Rozpoczyna się dyskusją jak można rozwiązać postawione zadanie i służy wyrobieniu pewnej intuicji oraz ukierunkowaniu rozważań na właściwe sposoby i techniki przydatne w rozwiązywaniu.

  13. Opis algorytmu w postaci listy kroków • Lista kroków jest jednym z najczęściej stosowanych, dokładnych sposobów opisywania obliczeń oraz ich kolejności. • Przykład: 1. Podejdź do telefonu 2. Podnieś słuchawkę 3. Sprawdź, czy jest sygnał... 4. ... Jest to początek algorytmu wykonania telefonu podany w postaci listy kroków ZAPAMIĘTAJ! by w jednym punkcie (kroku) opisać t y l k o j e d n ą o p e r a c j ę

  14. Algorytm w postaci listy kroków Algorytm obliczania wartości przykładowej funkcji Dane: Dowolna liczba rzeczywista x. Wynik: Wartość funkcji f(x) określonej wzorem: {-1, dla x<0 f(x) = {0, dla x=0 {1, dla x=1 Krok 0. Wczytaj wartość danej x. Krok 1. Jeśli x>0, to f(x)=1. Zakończ algorytm. Krok 2. {W tym przypadku x < 0.} Jeśli x=0, to f(x)=0. Zakończ algorytm. Krok 3. {W tym przypadku x<0.} Mamy f(x)=-1. Zakończ algorytm.

  15. Drzewo algorytmu(drzewo obliczeń) • Szczególny rodzaj schematu blokowego, który przyjmuje postać drzewa. (Każde dwie drogi obliczeń w takim schemacie mogą mieć tylko początkowe fragmenty wspólne, ale po rozejściu już się nie spotykają). • W drzewie algorytmu można wyróżnić: * korzeń – wierzchołek, w którym rozpoczynają się działania algorytmu, * wierzchołki pośrednie – są w nich umieszczone operacje wykonywane w algorytmie, * wierzchołki końcowe (liście) – różne wyniki zakończenia obliczeń w algorytmie.

  16. Schemat blokowy algorytmu • Jest jednym z najbardziej popularnych, graficznych sposobów przedstawiania algorytmów. • Składa się z klatek (są w nich zapisywane operacje, które mają być wykonane) oraz połączeń między nimi (wyznaczają kolejność ich wykonywania). • Można je budować odręcznie, można również konstruować je posługując się oprogramowaniem.

  17. ZASADY BUDOWY SCHEMATU BLOKOWEGO 1) Każda operacja jest umieszczona w skrzynce 2) Schemat ma tylko jedną skrzynkę "początek" i przynajmniej jedną skrzynkę "koniec" 3) Skrzynki są ze sobą połączone. 4) Ze skrzynki wychodzi jedno połączenie; wyjątek stanowią skrzynki: "koniec" (z której nie wychodzą już żądne połączenia) oraz "warunkowa" (z której wychodzą dwa połączenia opisane TAK i NIE - w zależności od tego, czy warunek jest spełniony czy nie, można wyjść jedną z dwóch dróg) 5) W skrzynce "operacyjnej" zamiast znaku "=" pojawia się oznaczenie ":="

  18. Rodzaje sieci działań: • Proste (sekwencyjne) - nie używa się w nich bloków warunkowych. W takiej sieci działań kolejność realizacji poszczególnych operacji jest ściśle określona i żadna z nich nie może być pominięta ani powtórzona. • Z rozwidleniem - zawiera w sobie wybór jednej z kilku możliwych dróg realizacji danego zadania. Istnieje w nim przynajmniej jeden blok warunkowy. • Z pętlą, często w trakcie realizacji danego zadania konieczne jest powtórzenie niektórych operacji różniących się jedynie zestawem danych. Pętla obejmuje tą część bloków, która ma być powtarzana. • Złożone - będące kombinacją powyższych sieci.

  19. Struktury danych • Stos – liniowa struktura danych, w której dane dokładane są na koniec zbioru i z końca zbioru są pobierane (czyli pobierany jest element dodany najpóźniej). Strategia LIFO (ang. Last In, First Out; ostatni na wejściu, pierwszy na wyjściu). • Kolejka – liniowa struktura danych, w której dane pobierane są w kolejności ich dołożenia do zbioru (czyli pobierany jest element dodany najwcześniej). Strategia FIFO (ang. First In, First Out; pierwszy na wejściu, pierwszy na wyjściu). • Lista tablicowa – struktura danych, w której elementy są ułożone w liniowym porządku. Lista zaimplementowana w ten sposób opiera się na tablicy obiektów (lub rekordów) danego typu.

  20. Złożoność i efektywność algorytmów • Złożoność obliczeniowa algorytmu – liczba operacji wykonywanych przez algorytm. • Algorytmy optymalne – bezwzględnie najlepsze algorytmu rozwiązywania problemów • Efektywność algorytmu – złożoność algorytmu w praktycznym sensie. Najczęściej pojawia się w porównaniach różnych metod rozwiązywania tego samego problemu lub w ocenie praktycznej przydatności algorytmów.

  21. Wieże Hanoi Mamy trzy paliki – oznaczamy je A, B i C – oraz pewną liczbę krążków różnej wielkości z otworami,nanizanych na palik A w kolejności od największego do najmniejszego, największy znajduje się na dole. Łamigłówka polega na przeniesieniu wszystkich krążków z palika A na palik B, z możliwością posłużenia się przy tym palikiem C, w taki sposób,że : • Pojedynczy ruch polega na przeniesieniu jednego krążka między dwoma palikami; • W żadnej chwili rozwiązywania łamigłówki większy krążek nie może leżeć na mniejszym. SPRÓBUJ TERAZ ROZWIĄZAĆ TĘ ŁAMIGŁÓWKĘ Z TRZEMA KRĄŻKAMI.

  22. Możliwe rozwiązanie składa się z trzech etapów: • Przenieś n-1 górnych krążków z palika A na palik C, używając B. • Przenieś największy krążek z palika A na palik B. • Przenieś wszystkie krążki z palika C na palik B, używając palika A.

  23. Algorytm rekurencyjny rozwiązywania łamigłówki Wież Hanoi Dane: Trzy paliki A, B i C, oraz n krążków o różnych średnicach, nanizanych od największego do najmniejszego na palik A. Krążki można przenosić między palikami tylko pojedynczo i nigdy nie można położyć większego na mniejszym. Wynik: Krążki nanizane na palik B – do uzyskania tego wyniku można wykonywać jedynie dopuszczalne przenoszenia. Krok 1. Jeśli n=1, to przenieś krążek z palika A na palik B i zakończ algorytm dla n=1. Krok 2. {W tym przypadku liczba krążków na paliku A jest większa od 1.} 2a. Stosując ten algorytm, przenieś n-1 krążków z A na C, używając B. 2b. Przenieś pozostały krążek z A na B. 2c. Stosując ten algorytm, przenieś n-1 krążków z C na B, używając A.

  24. A B C1.poziom rekurencji-krok 2a: A B C2. poziom rekurencji dla kroku 2a – kroki: 2a: 2b: 2c: 1.poziom rekurencji-kroki: 2b: 2c: 2. poziom rekurencji dla kroku 2a – kroki: 2a: 2b: 2c:

  25. koniec DZIĘKUJEMY ZA UWAGĘ !!

More Related