ALGORYTMIKA Wprowadzenie do algorytmów

Podobne dokumenty
Metody numeryczne i statystyka dla in»ynierów

Lab. 02: Algorytm Schrage

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

Metody numeryczne i statystyka dla in»ynierów

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Ukªady równa«liniowych

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Informatyka, matematyka i sztuczki magiczne

Macierze i Wyznaczniki

1 Bª dy i arytmetyka zmiennopozycyjna

ELEMENTARNA TEORIA LICZB. 1. Podzielno±

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Materiaªy do Repetytorium z matematyki

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Przykªady problemów optymalizacji kombinatorycznej

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

ANALIZA MATEMATYCZNA Z ALGEBR

1 0 Je»eli wybierzemy baz A = ((1, 1), (2, 1)) to M(f) A A =. 0 2 Daje to znacznie lepszy opis endomorzmu f.

2 Liczby rzeczywiste - cz. 2

Problemy optymalizacyjne - zastosowania

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Liczby pierwsze Fermata

Logika dla matematyków i informatyków Wykªad 1

Algorytmy i struktury danych

x y x y x y x + y x y

Wykªad 4. Funkcje wielu zmiennych.

1. Wprowadzenie do C/C++

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Roman Mocek Zabrze Opracowanie zbiorcze ze źródeł Scholaris i CKE

O ALGORYTMACH I MASZYNACH TURINGA

Macierze i Wyznaczniki

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Przetwarzanie sygnaªów

Wykªad 12. Transformata Laplace'a i metoda operatorowa

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Metody dowodzenia twierdze«

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Podstawy modelowania w j zyku UML

Podstawa programowa kształcenia ogólnego informatyki w gimnazjum

Informacje pomocnicze

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Temat: Co to jest optymalizacja? Maksymalizacja objętości naczynia prostopadłościennego za pomocą arkusza kalkulacyjngo.

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Szczegółowy program kursów szkoły programowania Halpress

Matematyka dyskretna dla informatyków

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

JAKIEGO RODZAJU NAUKĄ JEST

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Analizy populacyjne, ªadunki atomowe

Podstawy matematyki dla informatyków

Opis matematyczny ukªadów liniowych

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Metody numeryczne i statystyka dla in»ynierów

Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).

Liniowe zadania najmniejszych kwadratów

W zadaniach na procenty wyró»niamy trzy typy czynno±ci: obliczanie, jakim procentem jednej liczby jest druga liczba,

Algorytmy i schematy blokowe

Matematyka dyskretna dla informatyków

Mathematica - podstawy

Programowanie funkcyjne. Wykªad 13

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Okręgowa Komisja Egzaminacyjna w Krakowie 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Rekurencja. Algorytmy i Struktury Danych. (c) Marcin Sydow. Wst p. Fibonacci. Liniowe 2. rz du. Wie»e Hanoi. Wa»ne 3 przypadki

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Informatyka A. Algorytmy

Wstęp do informatyki

Efektywność algorytmów

Szeregowanie zada« Wykªad nr 4. dr Hanna Furma«czyk. 21 marca 2013

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

1 Metody iteracyjne rozwi zywania równania f(x)=0

Uczenie Wielowarstwowych Sieci Neuronów o

Matematyka dyskretna dla informatyków

Funkcje, wielomiany. Informacje pomocnicze

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Algorytmy, reprezentacja algorytmów.

Zbiory i odwzorowania

Model obiektu w JavaScript

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Wykªad 10. Spis tre±ci. 1 Niesko«czona studnia potencjaªu. Fizyka 2 (Informatyka - EEIiA 2006/07) c Mariusz Krasi«ski 2007

Transkrypt:

ALGORYTMIKA Wprowadzenie do algorytmów Popularne denicje algorytmu przepis opisuj cy krok po kroku rozwi zanie problemu lub osi gni cie jakiego± celu. (M. Sysªo, Algorytmy, ±ci±lejszej denicji w ksi»ce nie ma i nie b dzie). sko«czony, uporz dkowany ci g jasno zdeniowanych czynno±ci, koniecznych do wykonania pewnego zadania (Wikipedia). uporz dkowany, ±ci±le okre±lony i sko«czony ci g dziaªa«nad okre±lon struktur danych, których wykonanie daje rozwi zanie pewnej klasy problemów. precyzyjny opis sposobu rozwi zania okre±lonego zdania lub osi gni cie jakiego± celu. ci g instrukcji... idea rozwi zania... A wi c: czy opis czy idea? czy program komputerowy jest algorytmem?... ró»nego rodzaju u»ycia sªowa algorytm: na przykªad, algorytm sporz dzania hamburgera w McDonalds. Ameryka«skie: step by step instructions... Czy istnieje formalna denicja (wedªug en.wikipedia.org nie istnieje! ale to jest kolejne nieporozumienie)

Wprowadzenie do algorytmów 2 Algorytm to najkrócej mechaniczna metoda rozwi zywania zadania danego typu. mechaniczna w sensie nie wymagaj ca»adnej inwencji twórczej, mo»liwa do wykonania przez maszyn (komputer); zadanie danego typu to zazwyczaj pewne zadanie z parametrami, nazywane ogólnie problemem obliczeniowym. Dokªadniej: Problem obliczeniowy (lub: zadanie obliczeniowe, ang. problem) wyznaczony jest przez ±cisªe okre±lenie dwóch skªadników: a) Dane: jakie s dopuszczalne parametry zadania (dane wej±ciowe, ang. input), b) Wynik: jakie warunki ma speªnia wynik (dane wyj±ciowe, ang. output), w zale»no±ci od danych wej±ciowych. Dla konkretnych danych problem obliczeniowy staje si zwykªym (pojedynczym) zadaniem; nazywamy je wyst pieniem problemu (lub: egzemplarzem problemu, ang. instance). Algorytm to mechaniczna metoda rozwi zywania problemu obliczeniowego (daj ca si przeksztaªci w program komputerowy). Algorytm stanowi rozwi zanie problemu obliczeniowego, je±li dla wszystkich parametrów dopuszczonych opisem daje prawidªowy wynik. UWAGI: 1. Algorytm to metoda, sposób rozwi zywania danego typu zadania (zadania z parametrami, klasy zada«, problemu obliczeniowego). 2. Algorytm mo»na opisa ró»nymi sposobami, mniej lub bardziej dokªadnie (opis sªowny, ci g instrukcji (kroków), step by step instructions, pseudokod, schemat blokowy, programy komputerowy). Ze wzgl du na wymagany mechaniczny charakter algorytm powinien dopuszcza opis precyzyjny, jak dla maszyny; i powinien da si przeksztaªci w programu komputerowy. 3. Problem obliczeniowy mo»e nie mie nic wspólnego z liczbami! Sªowo obliczanie we wspóªczesnym szerokim rozumieniu oznacza manipulowanie symbolami wedªug ustalonych reguª. Przykªad: problem sortowania.

Wprowadzenie do algorytmów 3 Programy komputerowe. Wspóªcze±nie maszynami realizuj cymi algorytmy s komputery; formalnym opisem algorytmu jest program komputerowy; z punktu widzenia programisty algorytmy s metodami rozwi zywania zada«programistycznych, których typowym celem jest przeksztaªcenie pewnych danych wej±ciowych w okre±lone dane wyj±ciowe. Wi kszo± wykªadów i ksi»ek po±wi conych algorytmom koncentruje si na tych problemach obliczeniowych, które powstaj naturalnie w programistycznej praktyce. Problemy takie maj tendencj do posiadania oczywistych rozwi za«, i gªównym zagadnieniem staje si znalezienie lepszych, bardziej efektywnych algorytmów. Przy przeksztaªcaniu wielkich ilo±ci danych nawet niewielkie ulepszenia algorytmów mog dawa wyra¹ne efekty w dziaªaniu programów. Dlatego takie ksi»ki wiele miejsca po±wi caj algorytmom przetwarzania najbardziej podstawowych, numerycznych i nienumerycznych, struktur danych. St d podstawowy wykªad w tym zakresie nosi nazw Algorytmy i struktury danych. Problem sortowania listy elementów jest tu typowym przykªadem. Istnieje wiele ró»nych algorytmów rozwi zuj cych ten problem, ka»dy maj cy swoje zalety i wady. Matematyków bardziej interesuj problemy obliczeniowe, dla których samo znalezienie rozwi zania jest wyzwaniem matematycznym, lub znalezienie rozwi zania dostatecznie efektywnego. Teoria zªo»ono±ci obliczeniowej zapocz tkowana przez matematyków pozwala dowodzi,»e dla danego problemu obliczeniowego nie istnieje algorytm rozwi zuj cy dany problem obliczeniowy lub»e nie istnieje algorytm o wymaganej efektywno±ci. Dopiero w tej teorii mo»na znale¹ ±cisª, matematyczn denicj algorytmu. W istocie rzeczy matematycy zawsze poszukiwali algorytmów (sposobów oblicze«), tyle»e specjalnego rodzaju, daj cych si zapisa w formie wzoru matematycznego! Poszukiwali te» ogólniejszych metod rozwi zywania ró»nego rodzaju zagadnie«, tyle»e nie kªadli nacisku na mechaniczny charakter. Dopiero rozwój technologii komputerowej sprawiª,»e i w matematyce zacz to wi ksz uwag zwraca na aspekty algorytmiczne zagadnie«. Matematycy opisywali algorytmy wzorami lub sªownie. Praktyka programistyczna sprawiªa, ze dzi± naturalnym sposobem opisu jest pseudokod opis algorytmu w postaci ci gu instrukcji, przy u»yciu mieszaniny sªów kluczowych j zyków programowania i j zyka naturalnego, odzwierciedlaj cy najbardziej ogóln struktur programu.

Wprowadzenie do algorytmów 4 Najprostsze przykªady: 1. Równanie kwadratowe x 1,2 = b ± 2a 2. Wzory rekurencyjne, Liczby Fibonacciego F n = F n 1 + F n 2 ; F 0 = F 1 = 1. ( ) ( ) n ( ) ( ) n 1 + 5 1 + 5 1 5 1 5 F n = 2 5 2 2. 5 2 Przykªady algorytmów w matematyce: algorytm Euklidesa, dzielenie wielomianów, mno»enie i dodawanie liczb wielocyfrowych, algorytm Kroneckera rozkªadu wielomianów nad Q, ró»niczkowanie funkcji elementarnych, metody caªkowania, rozwi zywanie ukªadów równa«, obliczanie rz du macierzy, sprowadzanie macierzy do postaci schodkowej; problemy z teorii grafów i matematyki dyskretnej nowe dziedziny o charakterze algorytmicznym!. Nazwa pochodzi od ªaci«skiej formy nazwiska Muhammad ibn Musa al- Khwarizmi (w polskiej transkrypcji al-chuwarizmi) metody oblicze«w systemie dziesi tnym. Šaci«skie tªumaczenie: Algoritmi de numero Indorum (Algoritmi o liczbach Hindusów Algorytmy o liczbach Hindusów). W informatyce: problemy obliczeniowe, które powstaj naturalnie w praktyce programowania mo»na podzieli na 3 rodzaje: a) 90 % to problemy trywialne, o oczywistych rozwi zaniach; tzw. (klepanie kodu); b) w przetwarzaniu wielkich ilo±ci danych zwykle równie» oczywiste rozwi zania, ale nawet niewielkie ulepszenia zwi kszaj efektywno± (np. problem sortowania); Zagadnienie: poszukiwanie najbardziej efektywnych rozwi za«; c) problemy obliczeniowe, dla których samo znalezienie rozwi zania albo znalezienie rozwi zania dostatecznie efektywnego jest wyzwaniem matematycznym Dwa podstawowe wykªady to: Algorytmy i struktury danych (bardziej praktyczne zagadnienia) oraz Teoria zªo»ono±ci obliczeniowej lub Teoria oblicze«(bardziej teoretyczne zagadnienia).

Wprowadzenie do algorytmów 5 ALGORYTMY algorytm Euklidesa zapis binarny liczby Wie»e Hanoi algorytm Euklidesa (rekurencja). rozwi zywanie równania diofantycznego ax + by = c doprowadzanie macierzy do postaci schodkowej faktoryzacja pierwiastkowanie (analiza numeryczna) dziaªania na liczbach wielocyfrowych (systemy zapisu liczb, Algoritmi) Fibonacci ró»ne algorytmy sortowanie testowanie pierwszo±ci liczby (Primality), sito Erastotenesa algorytmy Hornera, szybkie podnoszenie do pot gi droga Eulera, droga Hamiltona, problem transportowy drzewo rozpinaj ce