Algorytmy. Formalne metody prezentacji algorytmu. Automat skończony
|
|
- Kinga Kaźmierczak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Algorytmy. Formalne metody prezentacji algorytmu. Automat skończony Wersja: 3 z drobnymi modyfikacjami! Wojciech Myszka :13:
2 Czym jest komputer? 1. Spojrzenie właściciela. 2. Spojrzenie von Neumanna. 3. Spojrzenie systemowca.
3 Co wybrać? Co wybrać? Który opis jest najlepszy?
4 Co wybrać? Co wybrać? Który opis jest najlepszy? Zaczniemy dosyć dziwnie...
5 Maszyna Turinga Maszyna Turinga składa się z: 1. skończonego alfabetu symboli; 2. skończonego zbioru stanów z wyróżnionymi stanami końcowymi (po osiągnięciu których maszyna zatrzymuje się); 3. nieskończonej taśmy z zaznaczonymi kwadratami, z których każdy może zawierać pojedynczy symbol; 4. ruchomej głowicy odczytująco-zapisującej, która może wędrować wzdłuż taśmy przesuwając się o jeden kwadrat na raz; 5. diagramu przejść między stanami (zazwyczaj zwanego diagramem przejść po prostu) zawierającego instrukcje, które powodują, że zmiany następują przy każdym zatrzymaniu się.
6 Maszyna Turinga Opis formalny Hopcroft i Ullman zdefiniowali formalnie maszyną Turinga jako następującą siódemkę (7-tuple): M = Q, Γ, b, Σ, δ, q 0, F gdzie: Q to skończny zbiór stanów, Γ to skończony zbiór symboli alfabetu b Γ jest symbolem pustym Σ Γ \ {b} to zbiór symboli wejściowych δ : Q Γ Q Γ {L, P} jest funkcją przejścia, L onacza przesunięcie w lewo, a P przesunięcie w prawo. q 0 Q To stan początkowy F Q jest zbiorem stanów końcowych Każdy obiekt spełniający powyższe założenia nazywany być może maszyną Turinga.
7 Maszyna Turinga Diagram przejść Diagram przejść to graf skierowany, którego wierzchołki reprezentują stany. Krawędź prowadzącą ze stanu s do t nazywa się przejściem i etykietuje kodem postaci: a/b, kierunek; gdzie a i b są symbolami (alfabetu), a kierunek to albo w prawo albo w lewo (P, L). Część a jest wyzwalaczem 1 przejścia, a część b, kierunek akcją jeżeli na taśmie spotkasz a to zapisz w kratce b i przesuń się w kierunku...
8 Przykładowa maszyna Turinga Alfabet trzy symbole: a, b i # (co oznacza symbol pusty, nic ) Dane... # # a b b a # #...
9 Przykładowa maszyna Turinga Diagram przejść, stany a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P Stany końcowe to stany opisane jako TAK i NIE
10 Maszyna Turinga Przykład (1)... # # a b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
11 Maszyna Turinga Przykład (1)... # # # b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
12 Maszyna Turinga Przykład (1)... # # # b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
13 Maszyna Turinga Przykład (1)... # # # b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
14 Maszyna Turinga Przykład (1)... # # # b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
15 Maszyna Turinga Przykład (1)... # # # b b a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
16 Maszyna Turinga Przykład (1)... # # # b b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
17 Maszyna Turinga Przykład (1)... # # # b b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
18 Maszyna Turinga Przykład (1)... # # # b b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
19 Maszyna Turinga Przykład (1)... # # # b b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
20 Maszyna Turinga Przykład (1)... # # # # b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
21 Maszyna Turinga Przykład (1)... # # # # b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
22 Maszyna Turinga Przykład (1)... # # # # b # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
23 Maszyna Turinga Przykład (1)... # # # # # # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
24 Maszyna Turinga Przykład (1)... # # # # # # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
25 Maszyna Turinga Przykład (1)... # # # # # # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
26 Maszyna Turinga Przykład (2)... # # a b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
27 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
28 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
29 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
30 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
31 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
32 Maszyna Turinga Przykład (2)... # # # b a b # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
33 Maszyna Turinga Przykład (3)... # # a b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
34 Maszyna Turinga Przykład (3)... # # # b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
35 Maszyna Turinga Przykład (3)... # # # b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
36 Maszyna Turinga Przykład (3)... # # # b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
37 Maszyna Turinga Przykład (3)... # # # b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
38 Maszyna Turinga Przykład (3)... # # # b a a # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
39 Maszyna Turinga Przykład (3)... # # # b a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
40 Maszyna Turinga Przykład (3)... # # # b a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
41 Maszyna Turinga Przykład (3)... # # # b a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
42 Maszyna Turinga Przykład (3)... # # # b a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
43 Maszyna Turinga Przykład (3)... # # # # a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
44 Maszyna Turinga Przykład (3)... # # # # a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
45 Maszyna Turinga Przykład (3)... # # # # a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
46 Maszyna Turinga Przykład (3)... # # # # a # # #... a,#,p rucha testa b,b,l a,#,l start zaznacz TAK NIE powrot (a,a,l) (b,b,l) b,#,p ruchb a,a,l testb b,#,l #,#,P
47 Maszyna Turinga Warianty Taśma jednostronnie nieskończona (ma początek, nie ma końca). Dwie taśmy ( wejściowa i wyjściowa ). Taśma dwuwymiarowa. Maszyna niedeterministyczna (w wariancie deterministycznym określony wyzwalacz w danym stanie powoduje zawsze taką samą reakcję; w wariancie niedeterministycznym dopuszcza się dla jednego wyzwalacza kilka różnych akcji wybieranych losowo).
48 Maszyna Turinga Warianty Wszystkie tak zmodyfikowane maszyny Turinga są sobie równoważne!
49 Maszyna Turinga Warianty Wszystkie tak zmodyfikowane maszyny Turinga są sobie równoważne! (to znaczy każdy problem, który można rozwiązać na jednej z nich można rozwiązać na każdej innej; albo inaczej: każda z tych maszyn może emulować każdą inną).
50 Maszyna Turinga Warianty Wszystkie tak zmodyfikowane maszyny Turinga są sobie równoważne! (to znaczy każdy problem, który można rozwiązać na jednej z nich można rozwiązać na każdej innej; albo inaczej: każda z tych maszyn może emulować każdą inną). Pokazano, że komputer zaprojektowany przez Babbage a maszyna analityczna jest równoważny z maszyną Turinga.
51 Maszyna Turinga Do czego służy 1. Maszyna Turinga ma tylko skończoną liczbę stanów. 2. Programowanie jej nie musi być łatwe (spróbujcie skonstruować maszyną mnożącą liczby!) 3. Jej działanie zapewne będzie bardzo powolne, a sama symulacja (ręczna) jest dosyć nużąca. 4. Ale co tak na prawdę maszyna Turinga może zrobić?
52 Algorytm I Przepis kucharski Składniki: 22 dag twardej czekolady półsłodkiej, 2 łyżki stołowe wody, 1 4 filiżanki cukru pudru, 6 jajek rozdzielonych na żółtka i białka...
53 Algorytm II Przepis kucharski Przepis: Włóż czekoladę z dwiema łyżkami stołowymi wody do garnka o podwójnym dnie. Kiedy czekolada się rozpuści, domieszaj cukier puder; dodaj po trochu masło. Odstaw. Ubijaj żółtka około 5 minut, aż staną się gęste i nabiorą koloru cytrynowego. Delikatnie dołóż czekoladę. Ponownie lekko podgrzej, aby rozpuścić czekoladę, jeśli to będzie konieczne. Domieszaj rum i wanilię. Ubijaj białka aż do spienienia. Ubijając dodaj 2 łyżki stołowe cukru i ubijaj
54 Algorytm III Przepis kucharski dalej, aż utworzą się sztywne pagórki. Delikatnie połącz białka z masą czekoladowo-żółtkową. Wlej do oddzielnych naczyń, które będą podane na stół. Ochładzaj przez co najmniej 4 godziny. Wedle życzenia podawaj z bitą śmietaną. Wyjdzie z tego 6 do 8 porcji.
55 Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa:
56 Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n.
57 Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.)
58 Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n.
59 Algorytm Euklidesa Oto jedna z jego wersji algorytmu Euklidesa: Dane są dwie dodatnie liczby całkowite m i n, należy znaleźć ich największy wspólny dzielnik (NWD) tj. największą dodatnią liczbę całkowitą, która dzieli całkowicie zarówno m jak i n. 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
60 Dzielenie z resztą Dygresja 5 3 =
61 Dzielenie z resztą Dygresja 5 3 = 12 3
62 Dzielenie z resztą Dygresja 5 3 = 12 3 = 1,6666(6)
63 Dzielenie z resztą Dygresja 5 3 = 12 0,0001 = 1,6666(6) = 1,6667 3
64 Dzielenie z resztą Dygresja 5 3 = 12 0,0001 = 1,6666(6) = 1,6667 = 1 reszta 2 3
65 Dzielenie z resztą Dygresja bo 5 3 = 12 0,0001 = 1,6666(6) = 1,6667 = 1 reszta = 5
66 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
67 Algorytm Euklidesa Przykład m n r /44 = 0 r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
68 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
69 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
70 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
71 Algorytm Euklidesa Przykład m n r /24 = 1 r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
72 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
73 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
74 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
75 Algorytm Euklidesa Przykład m n r /20 = 1 r 4 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
76 Algorytm Euklidesa Przykład l m n r [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
77 Algorytm Euklidesa Przykład m n r l 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
78 Algorytm Euklidesa Przykład m n r l 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
79 Algorytm Euklidesa Przykład m n r /4 = 5 r 0 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
80 Algorytm Euklidesa Przykład m n r l 1. [Znajdowanie reszty] Podziel m przez n i niech r oznacza resztę z tego dzielenia. (Mamy 0 r < n.) 2. [Czy wyszło zero?] Jeśli r = 0 zakończ algorytm; odpowiedzią jest n. 3. [Upraszczanie] Wykonaj m n, n r i wróć do kroku 1.
81 Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie).
82 Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Muhammed ibn Musa Alchwarizmi perskiego matematyka (IX w) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym.
83 Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Muhammed ibn Musa Alchwarizmi perskiego matematyka (IX w) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym. Algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych. (Wikipedia)
84 Algorytm Słowo algorytm jest bardzo nowe (w pewnym sensie). Pochodzi od nazwiska Muhammed ibn Musa Alchwarizmi perskiego matematyka (IX w) i pierwotnie oznaczało (każde) obliczenia w dziesiętnym systemie obliczeniowym. Algorytm to jednoznaczny przepis przetworzenia w skończonym czasie pewnych danych wejściowych do pewnych danych wynikowych. (Wikipedia) Czasami rezygnuje się z żądania skończoności. Czasami, jeżeli algorytm się nie kończy nazywamy go metodą obliczeniową.
85 Algorithm In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing. It is formally a type of effective method in which a list of well-defined instructions for completing a task will, when given an initial state, proceed through a well-defined series of successive states, eventually terminating in an end-state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as probabilistic algorithms, incorporate randomness.
86 Skończoność Po pierwsze powinien być skończony; oznacza to, że po skończonej (być może bardzo dużej) liczbie kroków algorytm się zatrzyma. 3 Pytanie pomocnicze: Co gwarantuje, że algorytm Euklidesa zakończy się w skończonej liczbie kroków? Procedura, która ma wszystkie cechy algorytmu poza skończonością nazywana jest metodą obliczeniową. Podaj przykłady metod obliczeniowych realizowanych przez rzeczywiste komputery. 3 Ale sama skończoność to jednak za mało z praktycznego punktu widzenia dobry algorytm powinien gwarantować, że obliczenia zostaną zakończone w skończonym ale rozsądnym czasie!
87 Cechy algorytmu II Dobre zdefiniowanie Po drugie powinien być dobrze zdefiniowany. Każdy krok algorytmu musi być opisany precyzyjnie. Wszystkie możliwe przypadki powinny być uwzględnione, a podejmowane akcje dobrze opisane. 4 Oczywiście język naturalny nie jest wystarczająco precyzyjny może to prowadzić do nieporozumień. z tego powodu używa się bardziej formalnych sposobów zapisu algorytmów, aż po języki programowania... 4 Zwracam też uwagę, że algorytmy kucharskie nie są odpowiednio precyzyjne: co to znaczy lekko podgrzej?
88 Cechy algorytmu III Dane wejściowe Po trzecie powinien mieć precyzyjnie zdefiniowane dane wejściowe. Pewne algorytmy mogą nie mieć danych wejściowych (mieć zero danych wejściowych). Dane wejściowe to wartości, które muszą być zdefiniowane zanim rozpocznie się wykonanie algorytmu.
89 Cechy algorytmu IV Dane wyjściowe Po czwarte zdefiniowane dane wyjściowe. Daną wyjściową algorytmu Euklidesa jest liczna n która jest naprawdę największym wspólnym dzielnikiem danych wejściowych. Osobną sprawą jest pokazanie skąd wynika, że wynik algorytmu Euklidesa jest rzeczywiście NWD liczb m i n.
90 Cechy algorytmu V Efektywność Po piąte algorytm powinien być określony efektywnie to znaczy jego operacje powinny być wystarczająco proste by można je (teoretycznie?) wykonać w skończonym czasie z wykorzystaniem kartki i ołówka.
91 Teza Churcha-Turinga Każdy problem algorytmiczny, dla którego możemy znaleźć algorytm dający się zaprogramować w pewnym dowolnym języku, wykonujący się na pewnym, dowolnym komputerze, nawet na takim, którego jeszcze nie zbudowano, ale można zbudować, i nawet na takim, który wymaga nieograniczonej ilości czasu i pamięci dla coraz większych danych, jest także rozwiązywalny przez maszynę Turinga.
92 Teza Churcha-Turinga Każdy problem algorytmiczny, dla którego możemy znaleźć algorytm dający się zaprogramować w pewnym dowolnym języku, wykonujący się na pewnym, dowolnym komputerze, nawet na takim, którego jeszcze nie zbudowano, ale można zbudować, i nawet na takim, który wymaga nieograniczonej ilości czasu i pamięci dla coraz większych danych, jest także rozwiązywalny przez maszynę Turinga. Uwaga! Jest to TYLKO teza, nie twierdzenie! Powyższe sformułowanie jest jednym z wielu!
93 Konsekwencje tezy Churcha-Turinga 1. Domowy komputer jest równoważny superkomputerowi z wielkiego centrum obliczeniowego (co nie znaczy, że rozwiąże ten sam problem w tym samym czasie!) 2. Wszystkie języki programowania są sobie równoważne (to znaczy to co można zaprogramować w jednym można w każdym innym) 3....
94 Dziękuję za uwagę Dziękuję za uwagę
95 Co to jest komputer? No właśnie, co?
96 Co to jest komputer?
97 Co to jest komputer?
98 Co to jest komputer?
99 Co to jest komputer?
100 Co to jest komputer?
101 Co to jest komputer?
102 Co to jest komputer?
103 Co to jest komputer?
104 Co to jest komputer? Hmmm...
105 John von Neumann John von Neumann (ur. 28 grudnia 1903 w Budapeszcie, zm. 8 lutego 1957 w Waszyngtonie), inżynier chemik, fizyk, matematyk i informatyk. Wniósł znaczący wkład do wielu dziedzin matematyki, szczególnie teorii gier i uporządkował formalizm matematyczny mechaniki kwantowej. Uczestniczył w projekcie Manhattan. Przyczynił się do rozwoju numerycznych prognoz pogody.
106 Architektura von Neumanna Architektura von Neumanna rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku przez von Neumanna stworzonej wspólnie z Johnem W. Mauchly ym i Johnem Presper Eckertem. Polega na ścisłym podziale komputera Co wybrać?na trzy podstawowe części: procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna) pamięć komputera (zawierająca dane i sam program) urządzenia wejścia/wyjścia
107 Architektura von Neumanna
108 Architektura von Neumanna System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien: mieć skończoną i funkcjonalnie pełną listę rozkazów mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.
109 Architektura von Neumanna Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność. System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji danych zacząć je wykonywać.
110 Schemat komputera
111 Schemat komputera Procesor
112 Schemat komputera Procesor Pamięć
113 Schemat komputera Procesor Pamięć Układy we/wy
114 Schemat komputera Procesor Pamięć Szyna Układy we/wy
115 Schemat komputera Procesor Pamięć Sterowanie Szyna Układy we/wy
116 Schemat komputera I W modelu tym wyróżniamy: Procesor. Pamięć (i pod tym pojęciem rozumiemy wszystkie rodzaje pamięci: Cache, RAM, ROM, dyski, dyskietki, dyski wymienne zapisywalne i nie). Urządzenie wejścia/wyjścia (wszystkie urządzenia pozwalające na kontakt ze światem zewnętrznym : klawiatura, mysz, karta graficzna, drukarka, czytniki różnego rodzaju).
117 Schemat komputera II Sterowanie (wszystkie układy elektroniczne zapewniające właściwą komunikację wszystkich wymienionych wyżej urządzeń ze sobą i zapewniający uporządkowany przepływ informacji po szynie/szynach). Magistrala (szyna) to wszystkie drogi łączące wymienione wyżej urządzenia. Back
118 Spojrzenie systemowca Komputer to automat.
119 Spojrzenie systemowca Komputer to automat. 1. Co to jest automat (cd) Automat (2008) urządzenie, maszyna lub ich zestaw, wykonujące samoczynnie cykl czynności lub operacji określony konstrukcją lub programem, nie wymagające bezpośredniego udziału człowieka.
120 Spojrzenie systemowca Komputer to automat. 1. Co to jest automat (cd) Automat (2008) urządzenie, maszyna lub ich zestaw, wykonujące samoczynnie cykl czynności lub operacji określony konstrukcją lub programem, nie wymagające bezpośredniego udziału człowieka. 2. Automat (po angielsku) An automaton (plural: automata or automatons) is a self-operating machine. The word is sometimes used to describe a robot, more specifically an autonomous robot. Used colloquially, it refers to a mindless follower.
121 Automaty też historia The Canard Digérateur, or Digesting Duck, was an automaton in the form of duck, created by Jacques de Vaucanson in The mechanical duck appeared to have the ability to eat kernels of grain, and to metabolise and defecate them. While the duck did not actually have the ability to do this - the food was collected in one inner container, and the feces being produced from a second, so that no actual digestion took place - Vaucanson hoped that a truly digesting automaton could one day be designed. Voltaire wrote that "without [...] the duck of Vaucanson, you have nothing to remind you of the glory of France." ("Sans...le canard de Vaucanson vous n auriez rien qui fit ressouvenir de la gloire de la France.") This is often misquoted as "Without the shitting duck, we would have nothing to remind us of the glory of France." Za Wikipedią (Digesting Duck)
122 Digesting Duck
123 Cybernetyczny żółw Greya Waltera
124 Trochę historii Krosna Jacquarda (1804) 2. Pierwszy program Ada Lovelace dla maszyny analitycznej Charlesa Babbage a (1843) 3. George Bool i algebra Boole a (1847) 4. Zuse Plankalkul pierwszy prawdziwy język programowania komputerów (lata 40) 5. John Von Neumann (1945) Back
125 Charles Babbage ur. 26 grudnia 1791 r. zm. 18 października 1871 Ukończył uniwersytet w Cambridge. Zajmował się organizacją produkcji w fabrykach. Zwolennik wysokiej specjalizacji siły roboczej. Poświęcił 35 lat życia na konstruowanie maszyn liczących: Maszyna różnicowa Drukarka do maszyny różnicowej Maszyna analityczna
126 Maszyna różnicowa Rodzaj kalkulatora opertego na metodach różnicowych. Zrobiona z brązu. Składała się z elementów. Ważyła kg. Nie została nigdy ukończona. Fragment złożony po śmierci Babbage a przez jego syna z części znalezionych w szopie.
127 Maszyna analityczna I Mechaniczny komputer ogólnego zastosowania. Pierwsza idea 1837, nie został ukończony do śmierci (1871). Główne zadanie tablicowanie funkcji logarytmicznych i trygonometrycznych przybliżanych wielomianami interpolacyjnymi. Napędzany silnikiem parowym. Programowany za pomocą kart perforowanych (krosna Jacquarda!). Urządzenia wyjściowe: drukarka, ploter i dzwonek. Pamięć: 1000 liczb 50. cyfrowych. Arytmometr wykonywał cztery operacje, porównania i pierwiastki kwadratowe.
128 Maszyna analityczna II Język programowania zbliżony do współczesnych języków programowania (MARIE!). Ocenia się, że koncept był znacznie bardziej zaawansowany niż późniejsze (lata 40. XX w) konstrukcje. Ideę Babbage a najlepiej zrozumiałą Ada Augusta hrabina Lovelance napisała pierwszy program (i została uznana za pierwszą programistkę). Podjęto próbę realizacji maszyny. Zaangażowany w nią był syn Babbage a.
129 Czasy współczesne 1. Podjęto szereg prób realizacji komputerów Babbage a Computer History Museum, Mountain Viev, CA i filmik(i) na YouTube Z klocków Lego Z elementów Meccano Back
130 Kolofon Prezentacja złożona w systemie L A T E X 2ε z wykorzystaniem klasy beamer. Użyto fontu MS Trebuchet. Ilustracja na stronie tytułowej jest fragmentem zdjecia, przedstawiającego pomnik Alana Mathisona Turinga znajdujący się w Bletchley Park centrum brytyjskiej kryptografii z czasów Drugiej Wojny Światowej. Coakley, Garrett Alan Mathison Turing. Lipiec 18. Flickr.
Maszyna Turinga (Algorytmy Część III)
Maszyna Turinga (Algorytmy Część III) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-12-18 08:22:34 +0100 Upraszczanie danych Komputery są coraz szybsze i sprawniejsze. Na potrzeby rozważań naukowych
Technologie informacyjne wykład 4 wer. 1.1
Technologie informacyjne wykład 4 wer. 1.1 Wojciech Myszka 14 listopada 2009 1 Część I Oprogramowanie i różne sprawy z tym związane User Oprogramowanie: podstawowe, systemowe, użytkowe wer. 1.6 Application
wer.9 Wojciech Myszka, Maciej Panek grudzień 2014 r.
Algorytmy (Część I) wer.9 Wojciech Myszka, Maciej Panek grudzień 2014 r. Krótkie podsumowanie Wiemy: Krótkie podsumowanie Wiemy: 1. co to jest komputer Krótkie podsumowanie Wiemy: 1. co to jest komputer
Architektura komputerów wer. 7
Architektura komputerów wer. 7 Wojciech Myszka 2013-10-29 19:47:07 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie i wynik
Podstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
Technologie Informacyjne Wykład 2
Technologie Informacyjne Wykład 2 Elementy systemu komputerowego Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny Politechnika Wrocławska 15 października
Architektura komputerów wer. 3
Architektura komputerów wer. 3 Wojciech Myszka, Maciej Panek listopad 2014 r. Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie
LEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu
Problem Hilberta: 9 Czy istnieje ogólna mechaniczna procedura, która w zasadzie pozwoliłaby nam po kolei rozwiązać wszystkie matematyczne problemy (należące do odpowiednio zdefiniowanej klasy)? 2 Przykłady
Programowanie. wer. 7 z drobnymi modyfikacjami! Wojciech Myszka :39:
Programowanie wer. 7 z drobnymi modyfikacjami! Wojciech Myszka 2017-02-28 07:39:14 +0100 Programowanie Cel zajęć Celem tych zajęć jest nauczenia Państwa: 1. programowania Programowanie Cel zajęć Celem
Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga.
ARCHITEKTURA I DZIAŁANIE KOMPUTERA Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga. Maszyna Turinga
Alan M. TURING. Matematyk u progu współczesnej informatyki
Alan M. TURING n=0 1 n! Matematyk u progu współczesnej informatyki Wykład 5. Alan Turing u progu współczesnej informatyki O co pytał Alan TURING? Czym jest algorytm? Czy wszystkie problemy da się rozwiązać
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Języki, automaty i obliczenia
Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015 Plan Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A
O ALGORYTMACH I MASZYNACH TURINGA
O ALGORYTMACH I MASZYNACH TURINGA ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające współcześnie precyzyjny schemat mechanicznej lub maszynowej realizacji zadań określonego
Turing i jego maszyny
Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan
Hierarchia Chomsky ego Maszyna Turinga
Hierarchia Chomsky ego Maszyna Turinga Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G = V skończony zbiór
Algorytm. 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
Wioletta Karpińska Wydział Matematyki i Informatyki Uniwersytet Łódzki Zajęcia na DUM I w 2017
Wioletta Karpińska Wydział Matematyki i Informatyki Uniwersytet Łódzki Zajęcia na DUM I w 2017 Strona: http://www.math.uni.lodz.pl/~karpinw Zaliczenie: do ustalenia. Programowanie: http://www.instalki.pl/programy/download/
Technologie Informacyjne
page.1 Technologie Informacyjne Wersja: 4 z drobnymi modyfikacjami! Wojciech Myszka 2013-10-14 20:04:01 +0200 page.2 Cel zajęć Cele zajęć: Uaktualnienie i ujednolicenie wiedzy/terminologii oraz zdobycie
PROBLEMY NIEROZSTRZYGALNE
PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną
Podstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
1 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
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Od maszyn Turinga do automatów komórkowych Jarosław Miszczak IITiS PAN Gliwice 03/03/2016 1 / 16 1 2 3 Krótka historia Znaczenie 2 / 16 Czego dowiedzieliśmy się
Algorytm. Algorytmy Marek Pudełko
Algorytm Algorytmy Marek Pudełko Definicja Algorytm to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Algorytm ma przeprowadzić system z pewnego
Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1
i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:
Elementy Teorii Obliczeń
Wykład 2 Instytut Matematyki i Informatyki Akademia Jana Długosza w Częstochowie 10 stycznia 2009 Maszyna Turinga uwagi wstępne Maszyna Turinga (1936 r.) to jedno z najpiękniejszych i najbardziej intrygujacych
Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia
Informacja w perspektywie obliczeniowej Informacje, liczby i obliczenia Cztery punkty odniesienia (dla pojęcia informacji) ŚWIAT ontologia fizyka UMYSŁ psychologia epistemologia JĘZYK lingwistyka nauki
KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204
Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego
Obliczenia inspirowane Naturą
Obliczenia inspirowane Naturą Wykład 01 Modele obliczeń Jarosław Miszczak IITiS PAN Gliwice 05/10/2016 1 / 33 1 2 3 4 5 6 2 / 33 Co to znaczy obliczać? Co to znaczy obliczać? Deterministyczna maszyna Turinga
algorytm przepis rozwiązania przedstawionego zadania komputer urządzenie, za pomocą którego wykonywane są algorytmy
Podstawowe pojęcia związane z informatyką: informatyka dziedzina wiedzy i działalności zajmująca się gromadzeniem, przetwarzaniem i wykorzystywaniem informacji, czyli różnego rodzaju danych o otaczającej
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Informatyka. Michał Rad
Informatyka Michał Rad 13.10.2016 Co i po co będziemy robić Plan wykładów: Wstęp, historia Systemy liczbowe Co to jest system operacyjny i po co to jest Sprawy związane z tworzeniem i własnością oprogramowania
MASZYNA TURINGA UPRASZCZANIE DANYCH
MASZYNA TURINGA Maszyna Turinga jest prostym urządzeniem algorytmicznym, uderzająco prymitywnym w porównaniu z dzisiejszymi komputerami i językami programowania, a jednak na tyle silnym, że pozwala na
Architektura komputerów
Architektura komputerów wer. 14 Wojciech Myszka 2018-11-07 07:48:25 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie, maksimum ośmiocyfrowe, liczby z karty, mnożyła
1 Automaty niedeterministyczne
Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Algorytmy 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
Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}
Języki Ustalmy pewien skończony zbiór symboli Σ zwany alfabetem. Zbiór Σ zawiera wszystkie skończone ciagi symboli z Σ. Podzbiór L Σ nazywamy językiem a x L nazywamy słowem. Specjalne słowo puste oznaczamy
Maszyna Turinga języki
Maszyna Turinga języki Teoria automatów i języków formalnych Dr inż. Janusz Majewski Katedra Informatyki Maszyna Turinga (1) b b b A B C B D A B C b b Q Zależnie od symbolu obserwowanego przez głowicę
Algorytm. 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
Podstawy Informatyki. Algorytmy i ich poprawność
Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania
Technologie Informacyjne Wykład 7
Technologie Informacyjne Wykład 7 Algorytmy. Podstawowe konstrukcje algorytmiczne (przegląd, podział zadania, programowanie dynamiczne, rekurencja,... ) Wojciech Myszka Jakub Słowiński Instytut Materiałoznawstwa
Efektywność Procedur Obliczeniowych. wykład 5
Efektywność Procedur Obliczeniowych wykład 5 Modele procesu obliczeń (8) Jedno-, wielotaśmowa MT oraz maszyna RAM są równoważne w przypadku, jeśli dany problem jest rozwiązywany przez jeden model w czasie
Algorytm - 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
Wstęp do Informatyki. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Wstęp do Informatyki dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Literatura 1. Brookshear, J. G. (2003). Informatyka w ogólnym zarysie. WNT, Warszawa. 3. Małecki, R. Arendt D. Bryszewski A. Krasiukianis
Budowa komputera. Lubię to! - podręcznik
Budowa komputera Lubię to! - podręcznik Plan na dziś Przypomnienie podstawowych wiadomości z poprzedniej lekcji Założenia teoretyczne komputera Praktyczna realizacja idei Podział elementów: W zależności
Języki formalne i automaty Ćwiczenia 7
Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia
MODELOWANIE RZECZYWISTOŚCI
MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN d.wojcik@nencki.gov.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/ Podręcznik Iwo Białynicki-Birula Iwona
Języki formalne i automaty Ćwiczenia 9
Języki formalne i automaty Ćwiczenia 9 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Maszyna Mealy'ego... 2 Maszyna Moore'a... 2 Automat ze stosem... 3 Konwersja gramatyki bezkontekstowej
Struktura danych. Sposób uporządkowania informacji w komputerze.
Struktura danych Sposób uporządkowania informacji w komputerze. Algorytm Skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. Al-Khwarizmi perski matematyk
Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
TEORIA GIER W NAUKACH SPOŁECZNYCH. Gry macierzowe, rybołówstwo na Jamajce, gry z Naturą
TEORIA GIER W NAUKACH SPOŁECZNYCH Gry macierzowe, rybołówstwo na Jamajce, gry z Naturą Przypomnienie Gry w postaci macierzowej i ekstensywnej Gry o sumie zerowej i gry o sumie niezerowej Kryterium dominacji
Algorytmy i schematy blokowe
Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,
M T E O T D O ZI Z E E A LG L O G R O Y R TM
O ALGORYTMACH I METODZIE ALGORYTMICZNEJ Czym jest algorytm? Czym jest algorytm? przepis schemat zestaw reguł [ ] program ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające
Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze
Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika
Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Napisanie programu komputerowego: Zasada rozwiązania zadania Stworzenie sekwencji kroków algorytmu Przykłady algorytmów z życia codziennego (2/1 6)
Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów
Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład I Podstawowe pojęcia 1, Cyfrowe dane 2 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia,
Podstawy Informatyki Maszyna Turinga
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga 2 3 4 Czym jest Programowanie maszyny Turinga Teza Churcha-Turinga,
Budowa komputera Komputer computer computare
11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału
Algorytmika. Algorytmy. prof. dr hab. inż. Joanna Józefowska. Poznań, rok akademicki 2008/2009. Plan wyk ladu Poj
Algorytmy Poznań, rok akademicki 2008/2009 Plan wyk ladu 1 Plan wyk ladu 2 Pojecie algorytmu Rozwiazywanie problemów Przyk lady algorytmów Cechy algorytmu 3 Zapisywanie algorytmów Sposoby zapisywania algorytmów
Architektura komputera
Architektura komputera Architektura systemu komputerowego O tym w jaki sposób komputer wykonuje program i uzyskuje dostęp do pamięci i danych, decyduje architektura systemu komputerowego. Określa ona sposób
Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie informatyczne 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
Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń
Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń Projekt Matematyka dla ciekawych świata spisał: Michał Korch 4 kwietnia 2019 1 Dodajmy kontekst! Rozważaliśmy
Co to jest komputer. Zanim przejdziemy do programowania zastanówmy się co to jest komputer.
Co to jest komputer Zanim przejdziemy do programowania zastanówmy się co to jest komputer. No właśnie...... co to jest komputer? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? Kalkulator
Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33
Klasyczne i kwantowe podejście do teorii automatów i języków formalnych mgr inż. Olga Siedlecka olga.siedlecka@icis.pcz.pl Zakład Informatyki Stosowanej i Inżynierii Oprogramowania Instytut Informatyki
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.
Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych
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
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)
Wstęp doinformatyki Architektura co to jest? Architektura Model komputera Dr inż Ignacy Pardyka Slajd 1 Slajd 2 Od układów logicznych do CPU Automat skończony Slajd 3 Slajd 4 Ile jest automatów skończonych?
Definicja algorytmu brzmi:
1.1. Definicja algorytmu Często w życiu stajesz przed koniecznością rozwiązania jakiegoś zadania. Na lekcji matematyki musisz na przykład rozwiązać równanie i w tym celu wykonujesz szereg czynności: od
Dydaktyka matematyki III-IV etap edukacyjny (wykłady) Wykład nr 6: Nauczanie algorytmów w szkole Semestr zimowy 2018/2019
Dydaktyka matematyki III-IV etap edukacyjny (wykłady) Wykład nr 6: Nauczanie algorytmów w szkole Semestr zimowy 2018/2019 Cel Jajecznica z dwóch jaj Obiekty Algorytm 1. Rozgrzać tłuszcz. 2. Rozbić jajka
Architektura komputerów Historia systemów liczących
Historia systemów liczących Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
O informatyce i jej historii. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski
O informatyce i jej historii R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl Informatyka (1) Informatyka to gałąź wiedzy związana z procesami:! projektowania,
PRZESŁANKI I PIERWSZE KONCEPCJE AUTOMATYCZNEGO LICZENIA
PRZESŁANKI I PIERWSZE KONCEPCJE AUTOMATYCZNEGO LICZENIA Pierwszą maszyną cyfrową, w której operacje wykonywane były za pomocą układów elektronicznych, był ENIAC (Electronic Numerioal Integrator And Computer)
Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.
Wyrażenie nawiasowe Wyrażeniem nawiasowym nazywamy dowolny skończony ciąg nawiasów. Każdemu nawiasowi otwierającemu odpowiada dokładnie jeden nawias zamykający. Poprawne wyrażenie nawiasowe definiujemy
Algorytmy sztucznej inteligencji
www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego
Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski
Modele Obliczeń Wykład 1 - Wprowadzenie Marcin Szczuka Instytut Matematyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2014/2015 Marcin Szczuka (MIMUW) Modele Obliczeń 2014/2015 1 /
Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ
O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ Jakie obiekty matematyczne nazywa się nieobliczalnymi? Jakie obiekty matematyczne nazywa się nieobliczalnymi? Najczęściej: a) liczby b) funkcje
Budowa pierwszych komputerów i ich zastosowanie w matematyce
Budowa pierwszych komputerów i ich zastosowanie w matematyce Aleksander Byglewski Jarosław Rolski Jakub Zbrzezny Krótki kurs historii matematyki Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska
Jaki język zrozumie automat?
Jaki język zrozumie automat? Wojciech Dzik Instytut Matematyki Uniwersytet Śląski Katowice wojciech.dzik@us.edu.pl 7. Forum Matematyków Polskich, 12-17 września 2016, Olsztyn Prosty Automat do kawy Przemawiamy
Wstęp do Informatyki dla bioinformatyków
Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:
Technologie Informacyjne Wykład 4
Technologie Informacyjne Wykład 4 Arytmetyka komputerów Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny Politechnika Wrocławska 30 października 2014 Część
Przykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Maszyna Turinga, ang. Turing Machine (TM)
Maszyna Turinga, ang. Turing Machine (TM) Alan Turing wybitny angielski matematyk, logik i kryptolog, jeden z najważniejszych twórców informatyki teoretycznej, któremu zawdzięczamy pojęcie maszyny Turinga
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Test z informatyki. do Liceum Akademickiego do profilu matematyczno-informatycznofizycznego. 31 maja 2014 r., godz. 9.
Test z informatyki do Liceum Akademickiego do profilu matematyczno-informatycznofizycznego 31 maja 2014 r., godz. 9.15, czas: 45 minut Kod kandydata: Liczba punktów: Część I Zakreśl krzyżykiem prawidłowe
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Podstawy 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
Algorytmy, reprezentacja algorytmów.
Algorytmy, reprezentacja algorytmów. Wprowadzenie do algorytmów Najważniejszym pojęciem algorytmiki jest algorytm (ang. algorithm). Nazwa pochodzi od nazwiska perskiego astronoma, astrologa, matematyka
Wykł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
Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1
Obliczanie 1 Obliczanie Co to jest obliczanie? Czy wszystko można obliczyć? Czy to, co intuicyjnie uznajemy za obliczalne można obliczyć za pomocą mechanicznej procedury? 2 Czym jest obliczanie? Dawid
Wprowadzenie 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