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

Podobne dokumenty