Maszyna Turinga, ang. Turing Machine (TM)

Wielkość: px
Rozpocząć pokaz od strony:

Download "Maszyna Turinga, ang. Turing Machine (TM)"

Transkrypt

1 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 i rozważania na temat nierozstrzygalności problemów obliczeniowych. Głównym modelem wykorzystywanym w opracowanej przez Turinga teorii informatyki był abstrakcyjny, prosty matematyczny model obliczeniowy, analog komputera, nazwany potem na cześć jego wynalazcy Maszyną Turinga (MT). Maszyna Turinga jest pierwszą historycznie, szeroko rozważaną formalizacją komputera, jako urządzenia realizującego algorytmy. Innymi słowy, jeżeli jesteśmy w stanie podać efektywną procedurę realizacji jakichkolwiek obliczeń, to jest to równoważne możliwości podania Maszyny Turinga wykonującej te same obliczenia. Maszyna Turinga MT składa się ze skończonego zbioru stanów i skończonego zbioru przejść między tymi stanami Działanie MT opisuje funkcja przejścia, którą można reprezentować w postaci tabeli przejść lub w sposób graficzny za pomocą diagramu przejść (grafu skierowanego) MT pobiera kolejne symbole z ciągu wejściowego (taśmy) MT rozpoczyna działanie od stanu początkowego i odczytania pierwszego symbolu z ciągu wejściowego Po przeczytaniu każdego kolejnego symbolu z taśmy, MT przechodzi do innego stanu lub pozostaje w tym samym stanie Po odczytaniu znaku z taśmy MT na podstawie tego znaku i swojego bieżącego stanu (dwie informacje), zastępuje ten znak innym, zmienia swój stan na inny bądź ten sam i przesuwa głowicę o jedną pozycję w prawo lub w lewo (trzy informacje). Takie działanie opisuje właśnie funkcja przejścia. Taśma MT zawierająca ciąg danych wejściowych jest obustronnie nieskończona. W trakcie działania MT realizuje algorytm MT może znajdować się w jednym z m stanów, a każda komórka taśmy może zawierać jeden z k symboli. Gdyby liczba komórek taśmy była skończona (n), to MT miałaby skończoną liczbę konfiguracji (nazywanych opisem chwilowym) i wynosiłaby ona mk n. Ponieważ liczba komórek jest nieskończona to liczba różnych konfiguracji MT jest także nieskończona. MT można traktować jako komputer, na którym uruchomiono jeden, konkretny program (algorytm) opisany diagramem przejść. Praktyczną realizacją jednej Maszyny Turinga jest program komputerowy, a zbioru Maszyn Turinga komputer.

2 W informatyce teoretycznej MT wykorzystuje się do udowadniania nierozstrzygalności, bądź niepodatności różnych problemów. Zapotrzebowanie na czas i pamięć wykorzystywane podczas obliczeń przez Maszynę Turinga nie różnią się zasadniczo od zapotrzebowania jakie posiadają rzeczywiste realne komputery. Formalna definicja Maszyny Turinga Maszyna Turniga jest uporządkowaną siódemką (Q,,,,q 0,B,F) gdzie: Q jest skończonym zbiorem stanów jest skończonym zbiorem symboli wejściowych jest skończonym zbiorem dopuszczalnych symboli taśmowych q 0 jest stanem początkowym (q 0 Q) B jest symbolem pustym F jest zbiorem stanów akceptujących (FQ) jest funkcją przejścia odwzorowującą Qx w Qx x{l,p} Funkcja przejścia ma postać: (q,x) = (p,y,k) gdzie q,pq X,Y K{L,P} W pojedynczym ruchu MT odczytuje kolejny symbol z alfabetu znajdujący się na taśmie w pozycji wskazywanej przez głowicę czytająco-zapisującą, zmienia swój stan zgodnie z opisem zawartym w diagramie przejść, zapisuje nowy symbol na aktualnej pozycji na taśmie (nadpisując poprzedni), i przesuwa głowicę o jedną pozycję w prawo lub w lewo. MT rozpoczyna działanie dla głowicy znajdującej się nad pierwszym symbolem z lewej strony taśmy różnym od symbolu pustego B. Przykłady: 1) MT sprawdzająca czy dany ciąg binarny jest palindromem, tzn. akceptująca język: L={w(0 1 ε)w R ; w= *, ={0,1}} M=({q 0,q 1,q 2,q 3,q 4,q 5,q 6,q 7 },{0,1},{0,1,B},,q 0,B,{q 3 })

3 2) MT akceptująca język: L={0 n 1 n ; n 1} M=({q 0,q 1,q 2,q 3,q 4,q 5 },{0,1},{0,1,X,Y,B},,q 0,B,{q 4 }) Druga MT akceptująca ten sam język: M=({q 0,q 1,q 2,q 3,q 4,q 5,q 6,q 7,q 8,q 9 },{0,1},{0,1,B},,q 0,B,{q 8 }) Opis chwilowy MT Jeden ruch MT oznaczamy symbolem Jeżeli (q,x i ) = (p,y,l) to ruch głowicy w lewo X 1 X 2 X 3 X i-1 qx i X i+1 X n-2 X n-1 X n X 1 X 2 X 3 X i-2 px i-1 YX i+1 X n-2 X n-1 X n Jeżeli (q,x i ) = (p,y,p) to ruch głowicy w prawo X 1 X 2 X 3 X i-1 qx i X i+1 X n-2 X n-1 X n X 1 X 2 X 3 X i-1 YpX i+1 X n-2 X n-1 X n Dla oznaczenia jednego lub więcej ruchów MT używamy symbolu Opis chwilowy MT dla przykładu 1: q Bq B1q 1 10 B11q 1 0 B110q 1 B B11q 2 0B B1q 5 1BB czyli q Bq 3 BBB

4 Definicja języka maszyny Turinga języka rekurencyjnie przeliczalnego (JRP) Jeżeli M = (Q,,,,q 0,B,F) jest maszyną Turinga to język tej maszyny oznaczamy jako L(M) i definiujemy następująco: L(M) = {w * ; q 0 w p, pf,, * } Języki rekurencyjnie przeliczalne (JRP) języki, które są akceptowane przez maszynę Turinga, przy założeniu, że MT zatrzymuje się, gdy znajdzie się w stanie akceptującym, natomiast nie musi się wcale zatrzymywać, gdy nie akceptuje. Języki rekurencyjne (JR) języki takich MT, które się w końcu zatrzymują bez względu na to czy akceptują ciąg wejściowy, czy nie. MT, które zawsze się zatrzymują stanowią poprawny model algorytmu. Oznacza to, że postawiony problem posiada rozwiązujący go zawsze algorytm, a więc problem taki to problem rozstrzygalny. Dowolny możliwy do opracowania algorytm obliczeniowy ma zawsze swoją reprezentację w postaci Maszyna Turinga. Teza Churcha-Turinga (Alonzo Church amerykański logik i matematyk) Maszyna Turinga potrafi rozwiązać każdy efektywnie rozwiązywalny problem algorytmiczny, dla którego możemy znaleźć algorytm dający się opisać w pewnym dowolnym języku programowania (nawet takim, którego jeszcze nie wymyślono), wykonujący się na pewnym, dowolnym komputerze (nawet na takim jakiego jeszcze nie skonstruowano, ale w przyszłości można skonstruować). rozwiązywalny przez MT = efektywnie rozwiązywalny Inne sformułowanie tezy Churcha-Turinga Każde praktycznie stosowane techniki obliczeniowe mogą być przetłumaczone na równoważne im obliczenia realizowane na MT. Oznacza to, że wszystkie podane poniżej modele obliczeniowe są sobie równoważne: 1) Maszyna Turinga 2) Gramatyka kombinatoryczna (gramatyka klasy 0) 3) Maszyna typu RAM (rejestry, pamięć, instrukcja warunkowa i skoku) 4) Języki programowania z instrukcjami iteracyjnymi (instrukcje podstawienia, warunkowe, pętle, struktury danych, tablice) 5) Rachunek funkcji rekurencyjnych Teza Churcha-Turinga jest tezą a nie twierdzeniem, dlatego nie można przeprowadzić dla niej dowodu matematycznego wykazującego jej poprawność.

5 Co wynika z tezy Church-Turinga? Każdy rzeczywisty komputer od najprostszego do najbardziej skomplikowanego, a także każdy inny teoretyczny model komputera potrafi obliczyć dokładnie to samo co MT. Co jeszcze wynika z tezy Churcha-Turinga? Czy istnieje równoważność pod względem obliczeniowym MT i dowolnego komputera? Maszyna Turinga i dowolne urządzenie obliczeniowe (komputer) są wielomianowo równoważne Oznacza to, że klasa problemów mających rozsądne czasowo rozwiązanie (problemy podatne wykonywane w czasie wielomianowym) jest taka sama dla obu modeli. Rozwiązując wybrany problem algorytmiczny MT może potrzebować na jego wykonanie dwa razy, sto razy, n razy, n 2 razy a nawet n 10 razy więcej czasu niż potrzebuje komputer, lecz nigdy wykładniczo więcej (2 n razy, 10 n razy, n! razy). Zmienna n oznacza rozmiar problemu (danych wejściowych). Dlatego jeżeli jakiś komputer rozwiązuje problem algorytmiczny w czasie O(f(n)), to MT rozwiązuje ten sam problem w czasie O(p(f(n))), gdzie p jest funkcją wielomianową. W rzeczywistości większość redukcji złożoności obliczeniowej algorytmów wykonywanych na komputerach w stosowanych aktualnie językach programowania do poziomu MT wiąże się z wielomianami względnie niskiego rzędu, na ogół nie większego niż n 5. Niedeterministyczna Maszyna Turinga (NMT) W NMT istnieją stany (co najmniej jeden), w których co najmniej dwa przejścia opisane są tym samym symbolem X. W NMT funkcja przejścia ma postać: (q,x) = {(q 1,Y 1,K 1 ), (q 2,Y 2,K 2 ),, (q n,y n,k n )}; gdzie nn q,q 1,q 2,, q n Q X,Y 1,Y 2,, Y n, K 1, K 2,, K n {L,P} Oznacza to, że istnieją rozwidlenia działania algorytmu na kilka możliwych ścieżek jego realizacji. NMT poprawnie wykonuje algorytm, gdy podczas jego wykonywania możliwe są takie kolejne wybory niedeterministyczne, które na co najmniej jednej ze ścieżek doprowadzą nas do poprawnego zrealizowania tego algorytmu. NMT nie realizuje poprawnie algorytmu, gdy żadna z możliwych ścieżek działania nie zapewni nam poprawnego jego wykonania. Działanie NMT można interpretować jako tworzenie wielu kopii Maszyny Turinga dla każdego z możliwych wariantów, lub zdolność zgadywania, które przejście należy wybrać aby rozwiązać problem algorytmiczny.

6 Rozszerzone i ograniczone wersje Maszyny Turinga oraz języki akceptowane przez te maszyny 1) Wielotaśmowa MT Wielotaśmowa MT korzysta z więcej niż jednej taśmy. W każdym ruchu głowica może wykonać jedną z trzech czynności (a nie dwóch jak w klasycznej MT): L ruch w lewo o jedna pozycję, P ruch w prawo o jedna pozycję, S głowica nie przesuwa się w żadnym kierunku. Na początku realizacji algorytmu dane wejściowe znajdują się tylko na taśmie pierwszej, a pozostałe są puste. Funkcja przejścia uzależnia kolejny ruch od symboli znajdujących się na wszystkich taśmach, w miejscach wskazywanych przez wszystkie głowice. Funkcja przejścia wielotaśmowej MT o n taśmach ma postać: (q,x 1,X 2,, X n ) = (p,y 1,K 1,Y 2,K 2,, Y n,k n ) K{L,P,S} Wielotaśmowe MT akceptują te same języki co jednotaśmowe MT czyli JRP. Tw: Jednotaśmowa MT symuluje n ruchów k-taśmowej MT w O(n 2 ) ruchach. 2) MT o taśmie tylko jednostronnie nieograniczonej MT o taśmie jednostronnie nieograniczonej akceptuje te same języki co klasyczna MT o taśmie obustronnie nieograniczonej, czyli JRP.

7 3) Maszyna dwustosowa Maszyna dwustosowa akceptuje te same języki co MT, czyli JRP. Dwa stosy mogą symulować jedną taśmę maszyny Turinga. Jeden stos przechowuje komórki znajdujące się na lewo od głowicy, a drugi stos na prawo. 4) Maszyna dwulicznikowa Liczniki mogą zawierać dowolną liczbę naturalną lub zero, ale ML przy wykonywaniu kolejnego ruchu może wykonywać tylko test polegający na sprawdzaniu tylko czy licznik zawiera liczbę większą od zera, czy równą zero. W jednym ruchu ML zmienia stan lub pozostaje w tym samym, zwiększa lub zmniejsza o jeden wartość jednego z dwóch liczników, ew. pozostawia go bez zmian (liczniki zawierają wartości dodatnie, a dekrementacja wartości 0 pozostawia ją bez zmian). Maszyna licznikowa może być uważana za ograniczoną maszyną wielostosową z dwoma symbolami stosowymi: Z 0 (znacznik spodu stosu) i X. Maszyna dwulicznikowa akceptuje te same języki co MT JRP. Maszyna jednolicznikowa akceptuje te same języki co automat ze stosem (AZS), czyli języki bezkontekstowe (JBK).

8 Uniwersalna Maszyna Turinga Tak jak Maszyna Turinga jest reprezentacją jednego konkretnego algorytmu, tak Uniwersalna Maszyna Turinga jest równoważna komputerowi, który może realizować różnorodne algorytmy. UMT = (M,w) gdzie M jest słowem kodującym funkcję przejścia danej MT, a w jest słowem analizowanym przez tą MT. Przykładowe kodowanie MT na taśmie czytanej przez UMT MT = (Q,,,,q 0,B,F) = {0,1}, = {0,1,B} kolejne elementy definiujące MT oddzielamy $ kolejne przejścia funkcji oddzielamy # Funkcję przejścia opisujemy następującymi łańcuchami tekstowymi: (q i,x j ) = (q k, X l, K m ) K m = {L,P} i * X j * k * X l * K m pięć elementów opisujących jedno przejście w funkcji oddzielamy * czyli dla przykładowej MT:

9 uzyskujemy następujące kodowanie tej maszyny na taśmie: (q 0,1) = (q 2,0,P) (q 2,0) = (q 0,1,P) (q 2,1) = (q 1,0,P) (q 2,B) = (q 2,1,L) 0*1*2*0*P# 2*0*0*1*P# 2*1*1*0*P# 2*B*2*1*L 3$01$01B$ $0$B$1 czyli powyższą MT reprezentuje następujący łańcuch tekstowy: k 1 k n = 3$01$01B$0*1*2*0*P#2*0*0*1*P#2*1*1*0*P#2*B*2*1*L$0$B$1 Przykład Rozważmy problem polegający na rozstrzyganiu czy dany ciąg wejściowy składa się z ciągu liter a o długości m, po którym jest drugi ciąg składający się z takiej samej ilości liter b. Problem ten można inaczej sformułować jako pytanie czy słowo w wczytywane w ciągu wejściowym należy do języka L = {a m b m, m1}. Chcemy wyznaczyć pesymistyczną złożoność obliczeniową algorytmu rozstrzygającego, czy dane słowo w należy do języka L. Instrukcją podstawową jest jeden ruch głowicy, rozmiarem danych wejściowych długość n badanego słowa. a) Algorytm 1 Maszyna Turinga 1 Opis działania MT rozstrzygającej przynależność w do języka L 1. Sprawdź czy słowo składa się z ciągu symboli a po którym jest ciąg symboli b (a ab b) 2. Dopóki na taśmie są symbole a i b, wykreślaj parami po jednym symbolu a i b 3. Jeżeli na taśmie nie ma ani jednego symbolu a i ani jednego symbolu b to zaakceptuj, w przeciwnym razie odrzuć Rozwiązanie (omawiane wcześniej, tylko dla innego alfabetu) M=({q 0,q 1,q 2,q 3,q 4,q 5,q 6,q 7,q 8,q 9 },{a,b},{a,b,b},,q 0,B,{q 8 })

10 Analiza złożoności obliczeniowej: w kroku 1 MT przechodzi przez taśmę w n ruchach głowicy (n długość słowa) w kroku 2 MT przesuwa głowicę od jednego końca do drugiego i z powrotem, usuwając po jednym skrajnym symbolu najpierw b, a potem a; w każdym kolejnym wykonaniu kroku 2 słowo jest krótsze o dwa symbole Złożoność pesymistyczna wynosi: W(n) = n + (n+1 + n) + (n-1 + n-2) + (n-3 + n-4) + (3 + 2) + 1 = n + i = 1 5 n n i1 Złożoność oczekiwana: A(n) = O(n 2 ), LTime(n 2 ) b) Algorytm 2 szybszy Maszyna Turinga 2 Opis działania MT rozstrzygającej przynależność w do języka L 1. Sprawdź czy słowo składa się z ciągu symboli a po którym jest ciąg symboli b (a ab b) 2. Dopóki na taśmie są symbole a i b: a. Sprawdź czy sumaryczna ilość symboli a i b jest nieparzysta. Jeżeli tak to odrzuć b. Zamień co drugi symbol a na inny (np. X) i co drugi symbol b na inny (np. Y) 3. Jeżeli na taśmie nie ma ani jednego symbolu a i ani jednego symbolu b to zaakceptuj, w przeciwnym razie odrzuć Rozwiązanie (fragment Maszyny Turinga z początkowymi ruchami głowicy) M=({q 0,q 1, },{a,b},{a,b,x,y,b},,q 0,B,{ }) n 1 2 Analiza złożoności obliczeniowej: w kroku 1 MT przechodzi przez taśmę w n ruchach głowicy w krokach 2a i 2b MT przesuwa głowicę od jednego końca do drugiego i z powrotem w 2(n+1) ruchach. Kroki te wykonuje w najgorszym przypadku log 2 (n) razy w kroku 3 MT w n+2 ruchach sprawdza, czy na taśmie nie ma już żadnych symboli a ani b

11 Złożoność pesymistyczna wynosi: W(n) = n + 2(n+1) log 2 (n) + n+2 = 2(n+1)(1+log 2 (n)) Złożoność oczekiwana: A(n) = O(nlog(n)), LTime(nlog(n)) c) Algorytm 3 najszybszy Dwutaśmowa Maszyna Turinga 3 Opis działania MT rozstrzygającej przynależność w do języka L 1. Dla każdego symbolu a na taśmie 1 zapisz symbol a na taśmie 2 2. Dla każdego symbolu b na taśmie 1 sprawdzaj czy na taśmie 2 jest odpowiadający mu symbol a 3. Jeżeli na taśmie 1 skończyły się symbole b, a na taśmie 2 odpowiadające im symbole a to zaakceptuj, w przeciwnym razie odrzuć Rozwiązanie (fragment Maszyny Turinga z prawie wszystkimi ruchami głowicy) M=({q 0,q 1, },{a,b},{a,b,b},,q 0,B,{ }) Analiza złożoności obliczeniowej: w kroku 1 MT przechodzi przez taśmę w k ruchach (k jest ilością symboli a) w kroku 2 MT przechodzi przez taśmę w k+1 ruchach Złożoność pesymistyczna wynosi: W(n) = k+k+1 = n+1 Złożoność oczekiwana: A(n) = O(n), LTime(n) d) A teraz dowolny język programowania - Algorytm 4 Opis działania algorytmu rozstrzygającego przynależność w do języka L 1. Przeglądaj tablicę zliczając najpierw symbole a, potem symbole b 2. Porównaj oba liczniki, jeżeli zawierają taką samą wartość to zaakceptuj, w przeciwnym razie odrzuć Analiza złożoności obliczeniowej: Instrukcją podstawową jest inkrementacja licznika. Złożoność pesymistyczna wynosi: Złożoność oczekiwana: W(n) = n A(n) = O(n), LTime(n)

Hierarchia Chomsky ego Maszyna Turinga

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

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

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

Bardziej szczegółowo

Języki, automaty i obliczenia

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

Bardziej szczegółowo

Maszyna Turinga języki

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ę

Bardziej szczegółowo

Elementy Teorii Obliczeń

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

Bardziej szczegółowo

Obliczenia inspirowane Naturą

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

Bardziej szczegółowo

Efektywność Procedur Obliczeniowych. wykład 5

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

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

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ą

Bardziej szczegółowo

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

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

Bardziej szczegółowo

Struktura danych. Sposób uporządkowania informacji w komputerze.

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

Bardziej szczegółowo

Złożoność obliczeniowa. wykład 1

Złożoność obliczeniowa. wykład 1 Złożoność obliczeniowa wykład 1 Dwa wykłady: wtorek / środa różnice niewielkie Sprawy organizacyjne wtorek: trochę szybciej, parę dodatkowych rzeczy dedykowana grupa ćw. M. Pilipczuka - ale śmiało mogą

Bardziej szczegółowo

Maszyna Turinga (Algorytmy Część III)

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

Bardziej szczegółowo

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

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

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 6. Prof. dr hab. inż. Jan Magott Problemy łatwe i trudne Problemy łatwe to problemy rozwiązywalne w czasie wielomianowym. Problemy trudne to takie, których

Bardziej szczegółowo

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ń 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

Bardziej szczegółowo

Obliczenia inspirowane Naturą

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ę

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 9

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

Bardziej szczegółowo

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech anagram(l) = {w : w jest anagaramem v dla pewnego v L}. (a) Czy jeśli L jest

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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}

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

Bardziej szczegółowo

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S 1 Maszyny Turinga Mając pewną wiedze techniczną na temat budowy komputera trudno przyjąć model rozważany wcześniej. Należy też uświadomoć sobie, że prosty pomysł łatwiej zrealizować technicznie. Tę zaletę

Bardziej szczegółowo

O ALGORYTMACH I MASZYNACH TURINGA

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

Bardziej szczegółowo

MODELOWANIE RZECZYWISTOŚCI

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

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 11: Obliczalność i nieobliczalność Sławomir Lasota Uniwersytet Warszawski 6 maja 2015 Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo)

Bardziej szczegółowo

Alan M. TURING. Matematyk u progu współczesnej informatyki

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ć

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015 Plan 1 Gramatyki 2 Języki

Bardziej szczegółowo

MASZYNA TURINGA UPRASZCZANIE DANYCH

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

Bardziej szczegółowo

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

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

Bardziej szczegółowo

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego 2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór

Bardziej szczegółowo

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

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 /

Bardziej szczegółowo

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne Automat skończony (AS), ang. Finite Automaton (FA) Automat skończony (automat czytający, maszyna Rabina-Scotta)

Bardziej szczegółowo

Turing i jego maszyny

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

Bardziej szczegółowo

Podstawy Informatyki Maszyna Turinga

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,

Bardziej szczegółowo

Maszyna Turinga Złożoność obliczeniowa

Maszyna Turinga Złożoność obliczeniowa Maszyna Turinga Złożoność obliczeniowa Weryfikacja poprawności programu W celu uniezależnienia się od typu komputera służącego do realizowania obliczeń, musimy się posłużyć ogólnym abstrakcyjnym modelem

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 7

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

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

JAO - Wprowadzenie do Gramatyk bezkontekstowych JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa

Bardziej szczegółowo

M T E O T D O ZI Z E E A LG L O G R O Y R TM

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

Bardziej szczegółowo

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty Dr inŝ. Janusz Majewski Katedra Informatyki Literatura Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques

Bardziej szczegółowo

Wprowadzenie do maszyny Turinga

Wprowadzenie do maszyny Turinga Wprowadzenie do maszyny Turinga Deterministyczna Maszyna Turinga (DTM) jest pewną klasą abstrakcyjnych modeli obliczeń. W tej instrukcji omówimy konkretną maszynę Turinga, którą będziemy zajmować się podczas

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4 Dla każdego zadania określić: graf przejść tablicę stanów automatu skończonego akceptującego określoną klasę słów podać dwa przykłady ilustrujące parę AS

Bardziej szczegółowo

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

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

Bardziej szczegółowo

Dopełnienie to można wyrazić w następujący sposób:

Dopełnienie to można wyrazić w następujący sposób: 1. (6 punktów) Czy dla każdego regularnego L, język f(l) = {w : każdy prefiks w długości nieparzystej należy do L} też jest regularny? Odpowiedź. Tak, jęsli L jest regularny to też f(l). Niech A będzie

Bardziej szczegółowo

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2 ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2 1. Twierdzenie Sipsera: Dla dowolnej maszyny M działającej w pamięci S(n) istnieje maszyna M taka, że: L(M) = L(M ), M działa w pamięci S(n), M ma własność stopu. Dowód:

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

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

Bardziej szczegółowo

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa

Bardziej szczegółowo

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

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

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 1

Języki formalne i automaty Ćwiczenia 1 Języki formalne i automaty Ćwiczenia Autor: Marcin Orchel Spis treści Spis treści... Wstęp teoretyczny... 2 Wprowadzenie do teorii języków formalnych... 2 Gramatyki... 5 Rodzaje gramatyk... 7 Zadania...

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1 Odmiany maszyny Turinga 1 Uniwersalna maszyna Turinga Uniwersalna maszyna U nad alfabetem A k jest to maszyna definiująca funkcje: f U, n+1 = {((w(i 1, I 2,..., I n )),y) w - opis maszyny T za pomocą słowa,

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej

Bardziej szczegółowo

Algorytm. a programowanie -

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

Bardziej szczegółowo

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka Gramatyki, wyprowadzenia, hierarchia Chomsky ego Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną gdzie: G =

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,

Bardziej szczegółowo

Definicje. Algorytm to:

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

Bardziej szczegółowo

Efektywna analiza składniowa GBK

Efektywna analiza składniowa GBK TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji

Bardziej szczegółowo

Hierarchia Chomsky ego

Hierarchia Chomsky ego Hierarchia Chomsky ego Gramatyki nieograniczone Def. Gramatyką nieograniczoną (albo typu 0) nazywamy uporządkowaną czwórkę G= gdzie: % Σ - skończony alfabet symboli końcowych (alfabet, nad którym

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 12a: Prawdopodobieństwo i algorytmy probabilistyczne http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Teoria prawdopodobieństwa

Bardziej szczegółowo

1 Automaty niedeterministyczne

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

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

Teoria układów logicznych

Teoria układów logicznych Automat Moore a Automatem Moore a nazywamy uporządkowaną piątkę ( Q, X,,, ) gdzie Q jest skończonym zbiorem niepustym, nazwanym zbiorem stanów automatu, X jest skończonym zbiorem niepustym, nazwanym alfabetem

Bardziej szczegółowo

Jaki język zrozumie automat?

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

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ Wykład5,str1 p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana Z p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana 0 Z p 0,Z 0Z 0,0 00

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 10: Opis wzorców - wyrażenia regularne. http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Wyrażenia regularne Wyrażenia

Bardziej szczegółowo

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ Dwa konteksty obliczalności OBLICZALNE i NIEOBLICZALNE problemy (kontekst informatyczny) liczby (kontekst matematyczny) Problem nieobliczalny jest to problem nierozwiązywalny

Bardziej szczegółowo

O ISTOTNYCH OGRANICZENIACH METODY

O ISTOTNYCH OGRANICZENIACH METODY O ISTOTNYCH OGRANICZENIACH METODY ALGORYTMICZNEJ Dwa pojęcia algorytmu (w informatyce) W sensie wąskim Algorytmem nazywa się każdy ogólny schemat procedury możliwej do wykonania przez uniwersalną maszynę

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych

Bardziej szczegółowo

Algorytm. Krótka historia algorytmó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

Bardziej szczegółowo

10110 =

10110 = 1. (6 punktów) Niedeterministyczny automat skończony nazwiemy jednoznacznym, jeśli dla każdego akceptowanego słowa istnieje dokładnie jeden bieg akceptujący. Napisać algorytm sprawdzający, czy niedeterministyczny

Bardziej szczegółowo

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM Maszyny Turinga Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 1 / 29 Wprowadzenie

Bardziej szczegółowo

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych Opracował: dr inż. Zbigniew Buchalski KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów

Bardziej szczegółowo

Wyrażenia regularne.

Wyrażenia regularne. Teoretyczne podstawy informatyki Wykład : Wyrażenia regularne. Prof. dr hab. Elżbieta Richter-Wąs.2.202 Wyrażenia regularne Wyrażenia regularne (ang. regular expressions) stanowią algebraiczny sposób definiowania

Bardziej szczegółowo

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

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

Bardziej szczegółowo

KONKURS MATEMATYCZNY KOMA 2018

KONKURS MATEMATYCZNY KOMA 2018 ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Teoria obliczeń czyli czego komputery zrobić nie mogą

Teoria obliczeń czyli czego komputery zrobić nie mogą Teoria obliczeń czyli czego komputery zrobić nie mogą Marek Zaionc Uniwersytet Jagielloński Materiały do wykładu: P. Odifreddi, Classical Recursion Theory, North Holland 1989. J.H. Hopcroft, J.D. Ullman

Bardziej szczegółowo

Informatyka. Michał Rad

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

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Języki formalne i automaty Ćwiczenia 3

Języki formalne i automaty Ćwiczenia 3 Języki formalne i automaty Ćwiczenia 3 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Algorytm LL(1)... 2 Definicja zbiorów FIRST1 i FOLLOW1... 3 Konstrukcja tabeli parsowania

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

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

Bardziej szczegółowo

Lista 0. Kamil Matuszewski 1 marca 2016

Lista 0. Kamil Matuszewski 1 marca 2016 Lista 0 Kamil Matuszewski marca 206 2 3 4 5 6 7 8 0 0 Zadanie 4 Udowodnić poprawność mnożenia po rosyjsku Zastanówmy się co robi nasz algorytm Mamy podane liczby n i m W każdym kroku liczbę n dzielimy

Bardziej szczegółowo

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

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ć

Bardziej szczegółowo

iks plus trzy dzielone na dwa iks razy iks plus pięć

iks plus trzy dzielone na dwa iks razy iks plus pięć ELIMINACJE SZKOLNE RACHUNEK LAMBDA NOTATKI Z WYKŁADU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

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/

Bardziej szczegółowo

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa Dowód pierwszego twierdzenia Gödela o niezupełności arytmetyki oparty o złożoność Kołmogorowa Grzegorz Gutowski SMP II rok opiekun: dr inż. Jerzy Martyna II UJ 1 1 Wstęp Pierwsze twierdzenie o niezupełności

Bardziej szczegółowo

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)

Bardziej szczegółowo

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne Maszyny Turinga Maszyna Turinga jest automatem ta±mowym, skª da si z ta±my (tablicy symboli) potencjalnie niesko«czonej w prawo, zakªadamy,»e w prawie wszystkich (tzn. wszystkich poza sko«czon liczb )

Bardziej szczegółowo

Odwrotna Notacja Polska

Odwrotna Notacja Polska Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI TEORETYCZNE PODSTAWY INFORMATYKI Podstawowe pojęcia teorii automatów i języków Zbiór grupa obiektów, nazywanych elementami zbioru, traktowana jako całość {0,5,7,21,57,12,18} Ciąg lista obiektów nazywanych

Bardziej szczegółowo