Teoria informatyki i metainformatyka
Transkrypt
Teoria informatyki i metainformatyka
Teoretyczne podstawy informatyki dr hab. inż. Joanna Józefowska, prof. PP 1 Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład cz. 2 dr hab. inż. Joanna Józefowska, prof. PP dyżur: środa 9.00 - 10.00 czwartek 10.00 - 11.00 ul. Wieniawskiego 17/19, pok.10 e-mail: [email protected] poznan.pl materiały do wykładów: http://www.cs.put.poznan.pl/jjozefowska/ hasło: w2005 Ćwiczenia cz. 2 dr inż. Grzegorz Waligóra dr hab. inż. Joanna Józefowska, prof. PP 2 Teoretyczne podstawy informatyki Zaliczenie przedmiotu • Zaliczenie ćwiczeń – dr Grzegorz Waligóra • Sprawdzian 25 stycznia 2006 • Zaliczenie ćwiczeń jest warunkiem przystąpienia do egzaminu • Egzamin odbędzie się w sesji, zgodnie z harmonogramem dr hab. inż. Joanna Józefowska, prof. PP 3 1 Zakres wykładów Teoretyczne podstawy informatyki • • • • • Pojęcie obliczalności Maszyna Turinga Modele obliczeń w logice Rachunek lambda Równoważność modeli obliczeń dr hab. inż. Joanna Józefowska, prof. PP 4 Teoretyczne podstawy informatyki Literatura • Ben Ari M., Logika matematyczna w informatyce, WNT, Warszawa 2005. • Błażewicz J., Złożoność obliczeniowa problemów kombinatorycznych, WNT, Warszawa 1988. • Davis M., Czym jest obliczanie?, w: Matematyka współczesna dwanaście esejów pod redakcją Lynna Arthura Steena, WNT, Warszawa 1983. • Epstein R. L., Carnielli W. A., Computability, Wadsworth, Belmont 2000. • Harel D., Rzecz o istocie informatyki, wyd. 2, WNT Warszawa 2000. • Ławrow I. A., Maksimowa Ł. L., Zadania z teorii mnogości, logiki matematycznej i teorii algorytmów, Wydawnictwo Naukowe PWN, Warszawa 2004. • Penrose R., Nowy umysł cesarza. O komputerach, umyśle i prawach fizyki, PWN, Warszawa 1996. dr hab. inż. Joanna Józefowska, prof. PP 5 Teoretyczne podstawy informatyki Literatura • Ben Ari M., Logika matematyczna w informatyce, WNT, Warszawa 2005. • Błażewicz J., Złożoność obliczeniowa problemów kombinatorycznych, WNT, Warszawa 1988. • Davis M., Czym jest obliczanie?, w: Matematyka współczesna dwanaście esejów pod redakcją Lynna Arthura Steena, WNT, Warszawa 1983. • Epstein R. L., Carnielli W. A., Computability, Wadsworth, Belmont 2000. • Harel D., Rzecz o istocie informatyki, wyd. 2, WNT Warszawa 2000. • Ławrow I. A., Maksimowa Ł. L., Zadania z teorii mnogości, logiki matematycznej i teorii algorytmów, Wydawnictwo Naukowe PWN, Warszawa 2004. • Penrose R., Nowy umysł cesarza. O komputerach, umyśle i prawach fizyki, PWN, Warszawa 1996. dr hab. inż. Joanna Józefowska, prof. PP 6 2 Teoria informatyki i metainformatyka Czy to jest program? begin write(Pi*5*5); end. dr hab. inż. Joanna Józefowska, prof. PP likes(sam,Food) :indian(Food), mild(Food). likes(sam,Food) :- 7 Teoria informatyki i metainformatyka chinese(Food). likes(sam,Food) :italian(Food). likes(sam,chips). Czy to jest program? indian(curry). indian(dahl). indian(tandoori). indian(kurma). mild(dahl). Czy to samo można napisać w Pascalu? mild(tandoori). mild(kurma). chinese(chow_mein). chinese(chop_suey). chinese(sweet_and_sour). dr hab. inż. Joanna Józefowska, prof. PP likes(sam,Food) :indian(Food), mild(Food). likes(sam,Food) :- 8 Teoria informatyki i metainformatyka chinese(Food). likes(sam,Food) :italian(Food). likes(sam,chips). indian(curry). indian(dahl). Czy to jest program? indian(tandoori). indian(kurma). mild(dahl). mild(tandoori). mild(kurma). chinese(chow_mein). chinese(chop_suey). Czy to samo można napisać w Pascalu? chinese(sweet_and_sour). dr hab. inż. Joanna Józefowska, prof. PP 9 3 Start Algorytm S ← aj i←1 Teoretyczne podstawy informatyki NIE function s(j:integer); real; var i, S: integer; begin S:=a[j]; i:=0; while i <= j do begin S:=S*x; i:=i+1 end; s:=S end. i<j TAK S ← S*x i←i+1 Stop czy program???? dr hab. inż. Joanna Józefowska, prof. PP 10 Teoria informatyki i metainformatyka Teoretyczne podstawy informatyki Modele obliczeń Maszyna Turinga Rachunek lambda Rachunek predykatów Funkcje rekurencyjne Algorytmy ADA Języki programowania LISP Pascal ......... Fortran COBOL C++ PROLOG dr hab. inż. Joanna Józefowska, prof. PP 11 Teoria informatyki i metainformatyka Teoretyczne podstawy informatyki Modele obliczeń Algorytmy Czy wszystko można obliczyć? Czego nie można obliczyć i dlaczego? Czy wszystkie języki mogą obliczyć to samo? Czy istnieje procedura, która pozwala wykazać, że program działa poprawnie? Języki Czy dane zdanie jest zdaniem tego języka? programowania Skąd się wzięły języki programowania? Dlaczego nie ma jednego uniwersalnego języka programowania? dr hab. inż. Joanna Józefowska, prof. PP 12 4 Teoria informatyki i metainformatyka Teoretyczne podstawy informatyki Filozofia Ontologia Metainformatyka Modele obliczeń Informatyka Algorytmy Programowanie Języki programowania Obsługa programów Programy To nie jest informatyka dr hab. inż. Joanna Józefowska, prof. PP 13 Interdyscyplinarny charakter informatyki software = oprogramowanie hardware = sprzęt Teoretyczne podstawy informatyki Elektronika Układy VLSI Automatyka Automaty skończone Matematyka Architektura komputerów Teoria obliczeń Maszyna von Neumana Maszyna Turinga ALGORYTM dr hab. inż. Joanna Józefowska, prof. PP 14 Kierunki badań Teoretyczne podstawy informatyki hardware = sprzęt software = oprogramowanie • systemy wbudowane (embedded systems) • złożoność obliczeniowa algorytmów • sterowanie inteligentnymi obiektami • sztuczna inteligencja • automatyzacja złożonych procesów dr hab. inż. Joanna Józefowska, prof. PP • inżynieria oprogramowania 15 5 Obliczanie Profesor Nawrocki powiedział, że nie! Teoretyczne podstawy informatyki • Czy wszystko można obliczyć? dr hab. inż. Joanna Józefowska, prof. PP 16 Teoretyczne podstawy informatyki Wszystko zaczęło się od paradoksów... W pewnej wsi mieszka fryzjer, który goli wszystkich i tylko tych mieszkańców wsi, którzy nie golą się sami. Czy ten fryzjer się goli? dr hab. inż. Joanna Józefowska, prof. PP 17 Obliczanie Teoretyczne podstawy informatyki • Czy wszystko można obliczyć? • Co to jest obliczanie? • Czy to, co intuicyjnie uznajemy za obliczalne można obliczyć za pomocą mechanicznej procedury? dr hab. inż. Joanna Józefowska, prof. PP 18 6 Kluczem jest pojęcie algorytmu Teoretyczne podstawy informatyki Jednoznaczny, dobrze (krok po kroku) określony przepis mechanicznego rozwiązania dowolnego konkretnego zadania z pewnej klasy zadań. W rozwiązaniu stosuje się skończoną liczbę reguł postępowania (czyli wykonywania kroków prowadzących do rozwiązania). ax2 + bx + c = 0 ∆ = b2 - 4ac x = (-b ± ∆)/2a dr hab. inż. Joanna Józefowska, prof. PP 19 Przykłady algorytmów Teoretyczne podstawy informatyki Spra wdza nie, c l ic Ob Znajdow u ian lom e i ie w zan zy lic zba je st au to Wyznaczanie elementów ciągu anie pod zbioru o dane j sumie morfi czna Fibonacciego ! ie n n a l ic z Ob dr hab. inż. Joanna Józefowska, prof. PP 20 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby człowiek mógł go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 21 7 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby człowiek mógł go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 22 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby maszyna mogła go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 23 Maszyna Turinga – elementarne kroki taśma Teoretyczne podstawy informatyki 0 0 0 1 1 1 0 0 0 Głowica odczytującozapisująca • Odczytanie symbolu • Zapisanie symbolu • Przesunięcie głowicy dr hab. inż. Joanna Józefowska, prof. PP 24 8 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby maszyna mogła go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 25 Maszyna Turinga Teoretyczne podstawy informatyki Dane wejściowe 0 0 0 1 1 1 0 0 0 dr hab. inż. Joanna Józefowska, prof. PP 26 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby maszyna mogła go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 27 9 Maszyna Turinga Teoretyczne podstawy informatyki Dane wyjściowe 0 0 0 1 1 0 1 0 0 dr hab. inż. Joanna Józefowska, prof. PP 28 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby maszyna mogła go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 29 Teoretyczne podstawy informatyki Maszyna Turinga 0 0 0 1 1 1 0 0 0 • Skończony alfabet symboli • Skończona liczba stanów głowicy • Funkcja przejścia dla każdej pary: (przeczytany symbol, stan głowicy) dr hab. inż. Joanna Józefowska, prof. PP 30 10 Maszyna Turinga Teoretyczne podstawy informatyki 0 0 0 1 1 1 0 0 0 • Skończona liczba stanów głowicy, np. Q = {0, 1} • Skończony alfabet symboli, np. A = {0, 1} • Funkcja przejścia dla każdej pary: (przeczytany symbol, stan głowicy) określa (zapisany symbol, (nowy) stan głowicy, kierunek przesunięcia głowicy) δ: Q x A → Q x A x {>, <} dr hab. inż. Joanna Józefowska, prof. PP 31 Cechy algorytmu składa się z kroków, działa na pewnych danych wejściowych, wytwarza pewne dane wyjściowe, jest dobrze określony (reguły postępowania uwzględniają wszystkie przypadki, jakie mogą wystąpić podczas wykonywania algorytmu), • jest skończony (obliczenia są wykonywane w skończonej liczbie kroków) lub cykliczny (np. działanie systemu operacyjnego), • jest wykonywalny (każdy krok jest tak zdefiniowany, aby maszyna mogła go skutecznie wykonać w skończonym czasie). Teoretyczne podstawy informatyki • • • • dr hab. inż. Joanna Józefowska, prof. PP 32 Przykład Turing Machine Simulator Teoretyczne podstawy informatyki http://ironphoenix.org/tril/tm/ dr hab. inż. Joanna Józefowska, prof. PP 33 11 Teoretyczne podstawy informatyki Przykład WE 1,_ 1,1 1,1,= 2,1 2,3,1 3,4,_ 4,1 WY 1,_,> 1,1,> 1,-,> 2,_,< 3,=,< H,_,< 3,1,< 4,-,< 4,_,< 1,_,> Q = {1, 2, 3, 4, H} A = {1, -, =, _ } > przesunięcie głowicy w prawo < przesunięcie głowicy w lewo dr hab. inż. Joanna Józefowska, prof. PP Teoretyczne podstawy informatyki Pojęcie obliczalności Maszyna Turinga, rachunek predykatów, rachunek λ, ... 34 kroki, dane: we- i wyjściowe, dobrze określony, skończony, wykonywalny... Algorytm Model obliczeń dr hab. inż. Joanna Józefowska, prof. PP Pascal, C++, FORTRAN, LISP, PROLOG Język programowania 35 12