Maszyna Turinga Złożoność obliczeniowa
|
|
- Wiktoria Wilk
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 obliczeń. Model taki powinien być łatwo interpretowany w sensie właściwości obliczeniowych w odniesieniu do komputerów rzeczywistych.
2 Rodzaje modeli Ideowy teoretyczny Obrazuje ideę działania, reguły pracy Dowodzi poprawności rozważań, możliwości teoretycznych zbudowania danego urządzenia Fizyczny realny Pozwala na bezpośrednią obserwację (czynnościową) Obrazuje zasadę mechaniczną (elektryczną), która może być wykorzystana w urządzeniu rzeczywistym Modele ideowe komputera Abstrakcyjne Rachunek binarny, kodowanie liczb (moduł-znak prosty, moduł-znak odwrotny) Funkcje rekurencyjne Bliskie realizacji Funkcje boolowskie Realizacje funkcji boolowskich za pomocą bramek logicznych
3 Modele ideowe programowania Abstrakcyjne Maszyny Turinga Służyły do rozważań teoretycznych, można wykorzystać jako ideowy model programowania Bliskie realizacji PMC Przykładowa Maszyna Cyfrowa Służy jako przykład koncepcji programowania niskopoziomowego, można wykorzystać jako model programowania w języku wewnętrznym komputera Maszyna Turinga stworzony w roku 1936 przez Alana Turinga abstrakcyjny model komputera służący do wykonywania algorytmów. powstała jako notacja do wyrażania algorytmów i służyła (głównie logikom) do określenia, jakie problemy są możliwe do algorytmicznego rozwiązania.
4 Weryfikacja poprawności programu Problem jest rozwiązalny na komputerze, jeśli da się zdefiniować rozwiązującą go maszynę Turinga. Maszyny Turinga częsta używane są do udowadniania nierozstrzygalności różnych problemów. Czas, jak i pamięć zużyta podczas obliczenia maszyny Turinga nie różnią się bardzo od zasobów zużywanych podczas wykonania algorytmów na rzeczywistych komputerach. Wyniki teorii złożoności mówiące o obliczeniach na maszynach Turinga pozostają w ścisłym związku z rzeczywistymi problemami informatyki i praktycznymi implementacjami algorytmów. Maszyna Turinga nieograniczona taśma podzielona na komórki, w których są zapisane zrozumiałe dla maszyny symbole głowica, która może się przesuwać po taśmie oraz odczytywać i zapisywać na niej symbole mechanizm sterujący, który może być w różnych stanach (ale skończenie wielu), który decyduje o działaniu maszyny.
5 Maszyna Turinga taśma Nieskończona taśma jest odpowiednikiem współczesnej pamięci komputera. Taśma dzieli się na komórki, w których umieszczone zostały symbole, czyli po prostu znaki przetwarzane przez maszynę Turinga. Symbole te stanowią odpowiednik danych wejściowych. Maszyna Turinga taśma Maszyna Turinga odczytuje te dane z kolejnych komórek i przetwarza na inne symbole, czyli dane wyjściowe. Wyniki obliczeń również są zapisywane w komórkach taśmy. Najczęściej rozważa się jedynie symbole 0, 1 oraz tzw. znak pusty - czyli zawartość komórki, która nie zawiera żadnej danej do przetworzenia.
6 Maszyna Turinga głowica zapisująco-odczytująca Głowica zapisująco-odczytująca odpowiada funkcjonalnie urządzeniom wejścia/wyjścia współczesnych komputerów lub układom odczytu i zapisu pamięci. Głowica zawsze znajduje się nad jedną z komórek taśmy (przed rozpoczęciem pracy jest ustawiana nad komórką taśmy zawierającą pierwszy symbol do przetworzenia) Maszyna Turinga głowica zapisująco-odczytująca Głowica: odczytuje zawartość komórki oraz zapisuje do niej inny symbol wykonuje ruchy w prawo i w lewo do sąsiednich komórek na taśmie. W ten sposób może się ona przemieścić do dowolnie wybranej komórki taśmy.
7 Maszyna Turinga układ sterowania Odpowiednikiem układu sterującego jest procesor komputera. Układ sterujący: odczytuje za pomocą głowicy symbole z komórek taśmy oraz przesyła do głowicy symbole do zapisu w komórkach. nakazuje on głowicy przemieścić się do sąsiedniej komórki w lewo lub w prawo. Stany układu sterowania Podstawą działania maszyny Turinga są stany układu sterowania. Stan układu sterowania określa jednoznacznie jaką operację wykona, jak zareaguje maszyna Turinga, gdy odczyta z taśmy określony symbol.
8 Stany układu sterowania Operacje wykonywane przez układ sterowania zależą od dwóch czynników: Symbolu odczytanego z komórki na taśmie. Bieżącego stanu układu sterującego. Stany będziemy określać kolejnymi nazwami: q 0, q 1, q 2,...,q n, gdzie q 0 jest stanem początkowym, w którym znajduje się maszyna Turinga przed rozpoczęciem przetwarzania symboli na taśmie. Maszyna Turinga W zależności od obserwowanego symbolu przez głowicę taśmy oraz stanu sterowania skończonego, maszyna Turinga w pojedynczym ruchu: zmienia stan mechanizmu sterującego, wpisuje symbol w obserwowanej komórce taśmy, zastępując symbol tam wpisany, przesuwa głowicę o jedną komórkę w prawo lub w lewo.
9 Przykład zadania Dane Maszyna Turinga Taśma z dwoma nieprzerwanymi, skończonymi ciągami jedynek oddzielonymi jedną kratką z zerem Głowica jest ustawiona na pierwszej jedynce pierwszego ciągu (pozostałe jedynki są na prawo od głowicy): Wynik Taśma z jednym nieprzerwanym ciągiem jedynek mający tyle samo jedynek ile było ich na początku (położenie głowicy nieistotne) Maszyna Turinga Rozwiązanie zadania Program 1,1,L,1 1,0,1,2 2,1,L,2 2,0,R,3 3,1,0,3 3,0,S,0
10 Maszyna Turinga definicja Maszyna Turinga, to siódemka: gdzie: Q M = { Q,, Γ,#, δ, q, F} to skończony zbiór stanów maszyny. 0 Γ # to skończony zbiór symboli wejściowych, które służą do reprezentacji wejścia maszyny i są zapisane na taśmie przed rozpoczęciem obliczenia. to skończony zbiór symboli taśmowych -są to wszystkie symbole jakie mogą się znajdować na taśmie. to symbol pusty - specjalny symbol taśmowy nie należący do symboli wejściowych. Symbol pusty będzie zawsze wypełniał prawie całą taśmę. Maszyna Turinga definicja Maszyna Turinga, to siódemka: gdzie: δ M = { Q,, Γ,#, δ, q, F} to funkcja przejścia. Jest to funkcja częściowa prowadząca z w Q Gamma {, } Wartośćδ ( A, x) = ( B, y, K) oznacza, że maszyna będąca w stanie A i czytając symbol x z taśmy przejdzie do stanu B, zapisze symbol y na taśmie i przesunie głowicę o jedną komórkę w lewo ( K = ) lub w prawo ( K =. ) 0 Q Γ q 0 F to stan początkowy w jakim znajduje się maszyna przed rozpoczęciem obliczenia. to zbiór stanów akceptujących będący podzbiorem Q. Obliczenie maszyny kończy się kiedy osiągnięty zostanie któryś ze stanów F.
11 Zastosowania maszyny Turinga Przetwarzacz: oblicza wartość funkcji - dane wejściowe to początkowy stan napisu na taśmie, a wynik jest końcowym stanem taśmy w momencie zatrzymania. Gdy maszyna nie zatrzyma się to funkcja nie jest określona dla tych danych (funkcja niezupełna). Zastosowania maszyny Turinga Akceptant: posiada 2 stany końcowe akceptuj i "odrzuć", ale może dać trzy odpowiedzi: akceptuj, odrzuć, "nie wiem". Akceptant rozstrzygacz: akceptant, który zatrzymuje się zawsze, tzn. daje dwie odpowiedzi - "akceptuj" lub "odrzuć".
12 Zastosowania maszyny Turinga Generator języka: rozpoczyna pracę od pustej taśmy i zapisuje na taśmie słowa danego języka, dla którego został zaprojektowany. Maszyna Turinga - działanie Jak uruchomić formalnie zdefiniowaną maszynę Turinga? Trzeba odpowiednio przygotować taśmę -można rozważać różne reprezentacje wejścia, zakładamy, że taśma jest wypełniona symbolami pustymi # oprócz skończonego spójnego fragmentu, na którym znajduje się słowo wejściowe składające się z symboli wejściowych. Należy ustawić głowicę nad którąś z komórek taśmy - dla wygody będziemy ustawiać głowicę nad pierwszą komórką słowa wejściowego. Należy ustawić mechanizm sterujący na stan q 0 i uruchomić maszynę.
13 Maszyna Turinga - działanie Maszyna działa zgodnie z algorytmem δ zapisanym w funkcji jeśli będzie zmieniać swój stan, przesuwać głowicę i zmieniać zawartość taśmy. Tak będzie się działo dopóki nie nastąpi jeden z dwóch warunków: Maszyna znajdzie się w stanie akceptującym. Mówimy wtedy, że obliczenie zakończyło się akceptująco. Maszyna znajdując się w stanie A przeczyta z taśmy symbol x, a wartość funkcji częściowej δ ( A, x) nie będzie zdefiniowana. Mówimy wtedy, że obliczenie zakończyło się błędem. Maszyna Turinga - reprezentacja Działanie maszyny Turinga przedstawia się jako diagram przejść między stanami lub jako tabelę stanów. Zarówno dla tabeli stanów jak i grafu przejść wyróżnia się specyficzne stany będące odpowiednio stanem początkowym i stanem (bądź stanami ) końcowym, zwane też stanami biernymi. Zakłada się, że maszyna rozpoczyna swoje działanie od swego stanu początkowego na pierwszym od lewej niepustym kwadracie taśmy i postępuje krok po kroku zgodnie z narzuconym ruchem, zaś kończy działanie po osiągnięciu stanu końcowego.
14 Diagram przejść Diagram przejść jest grafem skierowanym, którego wierzchołki reprezentują stany. Krawędź prowadząca ze stanu s do stanu t nazywa się przejściem i etykietuje się ją kodem postaci: (a/b, kierunek) Gdzie: a i b są symbolami, kierunek określa ruch głowicy w prawo bądź w lewo. Część a etykiety jest wyzwalaczem przejścia, a część <b,kierunek> akcją. Diagram przejść (a/b, kierunek) W czasie swego działania maszyna Turinga, kiedy znajdzie się w stanie s i odczytywanym symbolem będzie a to nastąpi wpisanie w to miejsce b i przesunięcie o jedno pole w kierunku kierunek.
15 Diagram przejść Tabela stanów Tabela stanów - obrazuje przejścia między stanami maszyny Turinga zawiera wszystkie symbole z skończonego alfabetu wejściowego jak również wszystkie stany w których może znaleźć się maszyna Turinga. Każde pole tabeli określa: dla danego stanu q i kolejny stan q i+1 symbol, który ma być zapisany na taśmie kierunek (L / P) dla ruchu głowicy
16 Tabela stanów Tabela stanów
17 Elementy tabeli stanów Dla rozpatrywanego ciągu wejściowego można określić trzy elementy w tabeli stanów: stan warunkowy - który powoduje przejście do określonej sekcji manipulowania danym symbolem, sekcja manipulowania - stany odpowiadające za przepisywanie symboli, powrót - stan powodujący przejście do początku i rozpoczęcie pracy od nowa Przykład 1 Maszyna Turinga w roli rozstrzygacza W zbiorze napisów 3-literowych utworzonych z {a,b,c} tylko napis abc jest poprawny. 1) Podać algorytm rozpoznawania tego napisu. 2) Zapisać algorytm w postaci tabeli stanów
18 Przykład 1 Maszyna Turinga w roli rozstrzygacza Zatrzymanie się maszyny w stanie q 4 oznacza, że wprowadzony ciąg znaków nie był poprawny, a w stanie q 5 - że był. Przykład 2 Maszyna Turinga w roli przetwarzacza Zaprojektować tablicę stanów maszyny Turinga zmieniającej kolejność liczb naturalne (dwa ciągi zer oddzielone jedynką). Dla zadanego wejścia: Maszyna ma dać na wyjściu:
19 Przykład 2 Maszyna Turinga w roli przetwarzacza Najprostszym sposobem na osiągnięcie żądanego wyniku jest przesuwanie jedynki rozdzielającej oba ciągi. Głowica maszyny wędruje od lewej do prawej za każdym razem zamieniając na każdym z końców po jednym zerze na symbol pomocniczy S W przypadku napotkania jedynki przy krawędzi głowica zamienia ją na zero po czym zamienia pierwsze zero na przeciwległym końcu na jedynkę Następnie wymienia wszystkie symbole S na zero. Przykład 2 Maszyna Turinga w roli przetwarzacza Znaczenie stanów: q 1 - przesunięcie do prawej krawędzi (do pierwszego symbolu B lub S) q 4 - przesuwanie do lewej krawędzi q 5 i q 3 - zmiana zera na symbol S zapisanie 0 i odwrócenie kierunku wędrówki głowicy q 5 i q 2 - wykrywanie jedynki przy krawędziach lewej i prawej q 6 i q 7 - zamiana tej jedynki na zero q 8 q 11 - usuwają symbole pomocnicze S i ustawiają głowicę w pozycji wyjściowej
20 Przykład 2 Maszyna Turinga w roli przetwarzacza Przykładowy przebieg (skrócony) pionowe kreski oznaczają komórkę aktualnie obserwowaną przez głowicę. Przykład 2 Maszyna Turinga w roli przetwarzacza Elementami tworzącymi automat są więc: Σ={0,1}, Γ={0,1,S,B}, Q={q 0,q 1,q 2,q 3,q 4,q 5,q 6,q 7,q 8, q 9,q 10,q 11 }, q start =q 0. Oraz funkcja przejścia:
21 Przykład 2 Maszyna Turinga w roli przetwarzacza Przykład 3 Maszyna Turinga w roli przetwarzacza Zaprojektować tablicę stanów maszyny Turinga zamieniającej każde podsłowo postaci: 0011 na Głowica położona jest z prawej strony taśmy. Znaczenie stanów: q0 - stan początkowy, q4 - napotkano 0011, q1 - napotkano 1, q5 - zapisz 0, q2 - napotkano 11, q6 - zapisz 1, q3 - napotkano 011, q7 - wróć.
22 Przykład 4 dodawanie cyfry 1 Maszyna Turinga dodająca 1 do danej liczby w zapisie dwójkowym (inkrementacja liczby binarnej bez znaku). Analizę liczby rozpoczynamy z prawej strony. Przykład 4 dodawanie cyfry 1
23 Przykład 5 Słowo - palindrom Maszyna Turinga badająca czy dane słowo z alfabetu wejściowego = {a, b} jest palindromem (to znaczy słowem, które czyta się tak samo z obu stron). Q = { q0, q1, q2, q3, q4, q5, q6, q7} q0 = q0 F = { q6, q7 } Γ = { Φ, a, b } B = Φ Σ = { a, b } Przykład 5 Słowo - palindrom Dodatkowo przyjmuje się, że pojedynczy symbol jest palindromem. Przejście do stanu akceptacji oznacza, że dane słowo jest palindromem, zaś przejście do stanu nieakceptacji oznacza, że słowo nie jest palindromem.
24 Przykład 5 Słowo - palindrom Symulacja pracy dla slowa abba
25 Maszyna Turinga przykład ΦabbΦ Przykład 5a Słowo - palindrom Maszyna Turinga przykład ΦabaΦ q0 ΦabaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ q3 ΦΦbaΦ q5 ΦΦbΦΦ q5 ΦΦbΦΦ q0 ΦΦbΦΦ q2 ΦΦΦΦΦ q4 ΦΦΦΦΦ q6 TAK ΦΦΦΦΦ
26 Przykład 5b Słowo - palindrom q0 ΦabbΦ Maszyna Turinga przykład ΦabbΦ q1 ΦΦbbΦ q1 ΦΦbbΦ q1 ΦΦbbΦ q3 ΦΦbbΦ q7 NIE ΦΦbbΦ Niestandardowe modele maszyny Turinga Istnieje szereg wersji maszyny Turinga, które wydają się być silniejsze od tradycyjnej, okazuje się jednak, że mogą one być zasymulowane na wersji pierwotnej.
27 Wielotaśmowa Maszyna Turinga - k-taśmowa maszyna Turinga różni się od zwykłej maszyny Turinga tym, że ma k niezależnych głowic, które poruszają się po różnych taśmach - każda z nich jest nieograniczona. - W nowym modelu, mechanizm sterujący podejmuje decyzje na podstawie aktualnego stanu i odczytów ze wszystkich głowic. - Dokonuje zapisów i przesunięć na każdej z taśm niezależnie. Maszyna off-line - Maszyna off-line jest zawężeniem modelu maszyny wielotaśmowej. - Modyfikacja polega na tym, że maszynie off-line nie wolno dokonywać zmian taśmy wejściowej. - Rozważa się też maszyny off-line z taśmą wyjściową - wtedy dodatkowym ograniczeniem jest to, że głowica na ostatniej taśmie może tylko zapisywać symbole i przesuwać się tylko w prawo. - Taki model odpowiada sytuacji w której program ma wejście i wyjście na osobnych taśmach, a pozostałe taśmy pełnią funkcję pamięci roboczej.
28 Niedeterministyczna Maszyna Turinga - Niedeterministyczna maszyna Turinga to taka, dla której mechanizm sterujący może przy konkretnym stanie i odczycie z taśmy postąpić na kilka różnych sposobów. - Wynik obliczeń jest pozytywny, jeśli choć jedna z możliwych dróg działania maszyny doprowadzi do sukcesu. Uniwersalna Maszyna Turinga - Maszyna Turinga po wprowadzeniu w stan początkowy działa samoczynnie, wykonując zadanie dla którego została zaprojektowana. - Proste Maszyny Turninga można składać w złożone i uzyskać maszynę wykonującą bardziej złożone operacje matematyczne. - Do każdego zadania istnieje inna maszyna Turinga
29 Uniwersalna Maszyna Turinga - Turing zaproponował, aby układ sterowania MT zapisać na taśmie i wyposażyć maszynę w uniwersalny układ sterowania. - Von Neuman rozwinął później UMT w prototyp komputera zaproponował on, aby UMT modyfikowała równie program MT a nie tylko dane. Uniwersalna Maszyna Turinga - UMT jest interpreterem czytającym opis konfiguracji <M> dowolnej maszyny Turinga M i wykonującym operacje na danych taśmie T maszyny M - dokładnie w ten sam sposób co M. - Taśma w UMT: - jej konfiguracje <M> (operacje przejść) zostaną zapisane na początku tamy obszar P taśmy, - potem wystąpi znak rozdzielenia (np. $$) - na koniec dane właściwej tamy T maszyny M. - Uniwersalne sterowanie UMT: pobiera i wykonuje instrukcje <M> zapisane na taśmie w obszarze programu, a UMT przekształca napis umieszczony w obszarze danych tej tamy.
30 Uniwersalna Maszyna Turinga UMT jest wolniejsza w działaniu od MT, gdy UMT musi przesuwa głowic w tę i z powrotem pomiędzy instrukcjami a danymi. Teza Churcha-Turinga Różnorodność zadań stawianych przed maszyną Turinga postawiło pytanie: Jakie problemy można rozwiązać odpowiednio zaprogramowaną maszyną Turinga (oczywiście pomijając czas)? Otóż okazuje się że: Maszyny Turinga potrafią rozwiązać każdy efektywnie rozwiązywalny problem algorytmiczny.
31 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. To stwierdzenie jest jedną z wersji tzw. tezy Churcha- Turinga (Alonz Church, Alan M. Turing), którzy doszli do niej niezależnie w połowie lat trzydziestych. Teza Churcha-Turinga Teza Churcha-Turinga jest tezą a nie twierdzeniem, zatem nie może być dowiedziona w matematycznym tego słowa znaczeniu. Jedno z pojęć, do której się odwołuje, jest bowiem nieformalnym i nieprecyzyjnym, pojęciem efektywnej obliczalności. Skąd biorą się przesłanki aby akceptować tezę Churcha- Turinga, szczególnie, jeśli nie można jej udowodnić?
32 Rozstrzygalność teorii Badacze proponowali różne modele komputera absolutnego, wszechpotężnego, lub uniwersalnego, ebz sprecyzować ulotne pojęcie efektywnej obliczalności. Turing zaproponował swoją maszynę, Church wymyślił matematyczny formalizm funkcji zwany rachunkiem lambda (jako podstawa języka programowania Lisp). Emil Post zdefiniował pewien typ systemu produkcji do manipulowania symbolami, Stephen Kleene zdefiniował klasę obiektów zwanych funkcjami rekurencyjnymi. Wszyscy oni próbowali użyć tych modeli do rozwiązania wielu problemów algorytmicznych, do których znane były efektywnie wykonalne algorytmy. Rozstrzygalność teorii Przełomowym zdarzeniem istotnym dla wszystkich tych modeli stało się udowodnienie, iż są one równoważne w kategoriach problemów algorytmicznych, które rozwiązują. I ten fakt jest dziś nadal prawdziwy nawet dla najsilniejszych modeli, jakie można sobie wyobrazić.
33 Rozstrzygalność teorii Z tezy Churcha-Turinga wynika, że najpotężniejszy superkomputer z wieloma najwymyślniejszymi językami programowania, interpretatorami, kompilatorami nie jest potężniejszy od domowego komputera z jego uproszczonym językiem programowania. Mając ograniczoną ilość czasu i pamięci mogą obydwa rozwiązać te same problemy algorytmiczne, jak również żaden z nich nie może rozwiązać problemów nierozstrzygalnych (nieobliczalnych). Rozstrzygalność teorii Schematycznie rozstrzygalność poniższy rysunek: problemów przedstawia
34 Rozstrzygalność teorii Rozstrzygalność i obliczalność to koncepcyjnie te same pojęcia mówimy: "rozstrzygalny" - gdy oczekujemy binarnego wyniku, "obliczalny" - gdy wynik pochodzi z większego zbioru wartości. Problemy decyzyjne a optymalizacyjne Problemy decyzyjne mają postać pytania na które odpowiedź brzmi tak lub nie Problemy optymalizacyjne klasa problemów wymagająca ekstremalizacji funkcji celu
35 Problemy decyzyjne a optymalizacyjne Obie klasy problemów mogą być badane w sensie ich natury obliczeniowej w ten sam sposób: Jeśli można w prosty sposób rozwiązać problem optymalizacyjny, to można także prosto rozwiązać związany z nim problem decyzyjny. Jeśli problem decyzyjny jest obliczeniowo trudny, to trudny jest również odpowiadający mu problem optymalizacyjny. Wykazując obliczeniową trudność problemu wystarczy się ograniczyć do jego sformułowania decyzyjnego. Wnioski z tezy Church a- Turninga Maszyny Turinga są w stanie rozwiązać każdy efektywnie rozwiązywalny problem algorytmiczny. Dla każdego efektywnie rozwiązywalnego problemu algorytmicznego da się skonstruować MT (która go rozwiązuje). Jeśli się nie da skonstruować odpowiedniej MT problem jest nierozwiązywalny (nierozstrzygalny).
36 Problemy nierozstrzygalne Przykład - problem domina Zestaw 1 Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną liczbą kafelków w każdym z rodzajów, ale ich zestaw jest zadany) Dla zestawu 1. - TAK Zestaw 2 Dla zestawu 2. - NIE Problemy nierozstrzygalne Twierdzenie Dla każdego algorytmu (zapisanego w dającym się efektywnie wykonać języku programowania), który byłby przeznaczony do rozstrzygania problemu domina, istnieje nieskończenie wiele dopuszczalnych zestawów danych wejściowych, dla których algorytm ten będzie działał w nieskończoność lub poda błędną odpowiedź. Wniosek Problem domina jest problemem nierozstrzygalnym.
37 Problemy nierozstrzygalne Nieograniczoność liczby przypadków do sprawdzenia nie jest dostatecznym warunkiem nierozstrzygalności problemu! Jeśli nierozstrzygalność się pojawia, to wynika z natury problemu i jest często sprzeczna z intuicją PROBLEMY NIEROZSTRZYGALNE LUB NIEOBLICZALNE PROBLEMY TRUDNO ROZWIĄZYWALNE PROBLEMY ŁATWO ROZWIĄZYWALNE W ogóle nie istnieją algorytmy Nie istnieją wielomianowe algorytmy Istnieją rozsądne (wielomianowe) algorytmy Problem węża domino Czy dysponując skończonym zbiorem typów kafelków można połączyć dwa dane punkty nieskończonej siatki całkowitoliczbowej wężem domino? Jeżeli postawimy problem węża domino na pewnym obszarze R, to: dla R ograniczonego problem jest rozstrzygalny dla R będącego całą płaszczyzną problem jest rozstrzygalny dla R będącego półpłaszczyzną problem jest nierozstrzygalny X y
38 Odmiany problemu domina Czy podanym zestawem kafelków można pokryć obszar T zachowując odpowiedniość kolorów na styku kafelków? T = prostokąt C x N (tzw. problem ograniczony ze stałą szerokością) T = kwadrat N x N (tzw. problem ograniczony) T jest nieskończony (tzw. problem nieograniczony) T jest nieskończony i wskazany kafelek ma się powtórzyć nieskończenie wiele razy (tzw. problem okresowy) Rodzaj problemu domina ograniczony ze stałą szerokością ograniczony nieograniczony okresowy Status algorytmiczny łatwo rozwiązywalny trudno rozwiązywalny nierozstrzygalny wysoce nierozstrzygalny Klasy złożoności P i NP Maszyna Turinga jako ścisły model matematyczny umożliwia precyzyjne definiowanie pojęć związanych ze złożonością obliczeniową. Czas działania = liczba kroków maszyny.
39 Klasy złożoności P i NP Problem należy do klasy złożoności czasowej P, gdy istnieje DTM rozwiązująca ten problem w czasie wielomianowym względem rozmiaru danych wejściowych. Problem należy do klasy złożoności czasowej NP, gdy istnieje NDTM rozwiązująca ten problem w czasie wielomianowym względem rozmiaru danych wejściowych. Intuicja: problem ma złożoność NP, jeśli znając rozwiązanie jesteśmy w stanie sprawdzić w czasie wielomianowym, czy jest ono poprawne. Problemy NP-zupełne Problem P 0 jest NP-zupełny, gdy: a) P 0 należy do klasy NP, b) każdy problem z klasy NP da się sprowadzić w czasie wielomianowym do problemu P 0. Czyli np. znając rozwiązanie problemu P 0 w czasie wielomianowym na DTM, moglibyśmy w czasie wielomianowym rozwiązać każdy problem z klasy NP. Czyli wówczas byłoby P = NP.
40 Problemy NP-zupełne Klasa problemów NP - zupełnych obejmuje prawie 1000 problemów algorytmicznych o jednakowych cechach: dla wszystkich istnieją wątpliwe rozwiązania w postaci algorytmów wykładniczych dla żadnego nie znaleziono rozsądnego rozwiązania w postaci algorytmu wielomianowego dla żadnego nie udowodniono, że jego rozwiązania wymaga czasu wykładniczego najlepsze znane dolne ograniczenia są liniowe, tzn. O(N) Nowe problemy NP-zupełne powstają w kombinatoryce, badaniach operacyjnych, ekonometrii, teorii grafów, logice itd. Nie wiadomo czy są one trudno, czy łatwo rozwiązywalne! Układanki dwuwymiarowe Powodem braku szybkiego rozwiązania jest istnienie wielu różnych rozwiązań częściowych, nie będących częścią rozwiązania pełnego nie dających się rozszerzyć do jakiegoś rozwiązania pełnego. Zwykłe układanki Puzzle zazwyczaj mają złożoność czasową O(N 2 ) W ogólnym przypadku problem układanek jest także problemem NP zupełnym
41 Problem komiwojażera Problem polega na znalezieniu w sieci połączeń pomiędzy miastami najkrótszej drogi, która pozwala odwiedzić każde z miast i powrócić do miasta wyjściowego (tzw. cykl). Problem formułowany jest jako poszukiwanie minimalnego pełnego cyklu w grafie z wagami krawędzi. W wersji decyzyjnej problem polega na stwierdzeniu czy istnieje cykl o koszcie nie większym niż podana wartość K. Problem komiwojażera cd. Problem komiwojażera pojawia się na przykład przy: projektowaniu sieci telefonicznych projektowaniu układów scalonych planowaniu linii montażowych programowaniu robotów przemysłowych Naiwne rozwiązanie N! Przypadek nawet dla N = 25 jest beznadziejny
42 Ścieżka Hamiltona Problem polega na sprawdzeniu czy w grafie istnieje ścieżka, która przez każdy wierzchołek przechodzi dokładnie raz. Ale... Sprawdzenie czy w grafie istnieje ścieżka, która przez każdą krawędź przechodzi dokładnie raz, nazywane jest problemem Eulera i nie jest problemem klasy NPC Kolorowanie map Kolorowanie mapy - problem decyzyjny polegający na ustaleniu czy dana mapa płaska może być pokolorowana k barwami tak, aby sąsiednie państwa nie miały tego samego koloru. dla 2 barw problem jest łatwo rozwiązywalny wystarczy sprawdzić, czy mapa nie zawiera punktów, w których styka się nieparzysta liczba państw dla 3 barw problem jest trudno rozwiązywalny (klasy NPzupełnych) dla 4 barw problem jest banalny - patrz twierdzenie o czterech barwach
43 Kolorowanie grafów Kolorowanie grafu - wyznaczenie minimalnej liczby barw, którymi można pokolorować wierzchołki danego grafu tak, aby każde dwa wierzchołki bezpośrednio połączone krawędzią miały różne kolory. Łatwo można skonstruować graf wymagający dowolnie dużej liczby kolorów. Klika - zbiór wierzchołków w grafie połączonych każdy z każdym Załadunek plecaka Należy tak poukładać rzeczy w plecaku, żeby zostało w nim jak najwięcej wolnego miejsca.
44 Ogólna charakterystyka problemów z klasy NP wymagają sprawdzania rozwiązań częściowych i rozszerzania ich w celu znalezienia rozwiązania ostatecznego; jeśli rozwiązanie częściowe nie da się dalej rozszerzyć, to trzeba powrócić na jakiś wcześniejszy etap i po dokonaniu zmian rozpocząć od nowa, postępowanie polegające na systematycznym sprawdzeniu wszystkich możliwości wymaga czasu wykładniczego Ogólna charakterystyka problemów z klasy NP jeśli znamy rozwiązanie, to sprawdzenie jego poprawności może być przeprowadzone w czasie wielomianowym! dla każdego z problemów istnieje niedeterministyczny algorytm o złożoności wielomianowej; są trudno rozwiązywalne, ale stają się łatwo rozwiązywalne, jeśli korzysta się z niedeterministycznej wyroczni
45 Ogólna charakterystyka problemów NP-zupełnych - każdy problem klasy NP można przekształcić do jednego z nich w czasie wielomianowym (taka jest ich definicja) - każdy problem z tej klasy można przekształcić w czasie wielomianowym do każdego innego! - znalezienie algorytmu wielomianowego dla jednego z problemów oznacza możliwość rozwiązania w czasie wielomianowym wszystkich innych! Ogólna charakterystyka problemów NP-zupełnych - udowodnienie wykładniczego dolnego oszacowania dla jednego z problemów oznacza wykazanie, że żaden z nich nie może być rozwiązany w czasie wielomianowym! - albo wszystkie te problemy są łatwo rozwiązywalne, albo wszystkie trudno - wykazanie, że nowy problem jest NP-zupełny przebiega w dwóch krokach: - trzeba udowodnić, że nowy problem jest klasy NP. - trzeba skonstruować przekształcenie, które w czasie wielomianowym transformuje do niego dowolny znany problem NP-zupełny
46 Przykłady przekształcania jednego problemu NP-zupełnego w drugi Znalezienie ścieżki Hamiltona problem komiwojażera Istnieje ścieżka Hamiltona w grafie o N wierzchołkach Istnieje cykl komiwojażera w uzupełnionym grafie nie dłuższy niż N + 1 Klasy problemów - Klasa NP - problemy posiadające niedeterministyczne algorytmy o czasie wielomianowym - Klasa P - problemy posiadające zwykłe algorytmy o czasie wielomianowym (łatwo rozwiązywalne) - Klasa NP-zupełne - wzorcowe problemy z klasy NP sprowadzalne jeden do drugiego
47 Klasy złożoności algorytmów Literatura Harel D., Rzecz o istocie informatyki - algorytmika, WNT, Warszawa
48 Literatura Harel D., Rzecz o istocie informatyki - algorytmika, WNT, Warszawa 2008 J. Błażewicz; Złożoność obliczeniowa problemów kombinatorycznych;wnt, Warszawa
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ółowoMASZYNA 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ółowoMaszyna Turinga Złożoność obliczeniowa
Zadania łatwe i trudne Złożoność obliczeniowa Zadania łatwe Sortowanie Szukanie pierwiastków wielomianów Szukanie maksimum funkcji ciągłej i różniczkowalnej Mnożenie macierzy Zadania trudne Szukanie maksimum
Bardziej szczegółowoPodstawy 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ółowoZłożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.
Złożoność problemów Przykład - wieże Hanoi Problem jest zamknięty (dolne ograniczenie złożoności = złożoność algorytmu rekurencyjnego lub iteracyjnego) i ma złożoność O(2 N ). Mnisi tybetańscy podobno
Bardziej szczegółowoElementy 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ółowoEfektywność 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ółowoHierarchia 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ółowoPoró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ółowoMaszyna 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ółowoMaszyna 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ółowoJę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ółowoObliczenia 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ółowoStruktury 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ółowoJę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ółowoMatematyczne 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ółowoStruktura 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ółowoMaszyna 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ółowoMODELOWANIE 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ółowoStruktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca
Bardziej szczegółowoWprowadzenie 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ółowoMaszyna 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
Bardziej szczegółowoPrzykł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ółowoTuring 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ółowoStruktury 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ółowoInformacja 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ółowoZł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ółowoO 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ółowoKATEDRA 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ółowoAlgorytmy 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ółowo1 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ółowoTeoria obliczeń i złożoność obliczeniowa
Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy
Bardziej szczegółowoZł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ółowoObliczenia 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ółowoDla 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ółowoStruktury 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ółowoAlan 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ółowoInformatyka. 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ółowoImię, 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ółowoModele 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ółowoDr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 4 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 4 WSTĘP DO INFORMATYKI Podprogramy 2 Mówiąc o podprogramach będziemy zakładali : każdy podprogram posiada jeden punkt wejścia;
Bardziej szczegółowoInformatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoO 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ółowoAlgorytm. 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ółowoMatematyczna 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ółowoDefinicje. 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ółowoLOGIKA I TEORIA ZBIORÓW
LOGIKA I TEORIA ZBIORÓW Logika Logika jest nauką zajmującą się zdaniami Z punktu widzenia logiki istotne jest, czy dane zdanie jest prawdziwe, czy nie Nie jest natomiast istotne o czym to zdanie mówi Definicja
Bardziej szczegółowoOdmiany 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ółowoWstę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ółowoWyraż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ółowoMatematyka dyskretna. Andrzej Łachwa, UJ, B/14
Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie
Bardziej szczegółowoTechnologie 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ółowoOBLICZALNOŚĆ 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ółowoObliczanie. 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ółowoJę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ółowoREPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Reprezentacja
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Bardziej szczegółowoLista 6 Problemy NP-zupełne
1 Wprowadzenie Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Teoretyczne Podstawy Informatyki Lista 6 Problemy NP-zupełne Problem abstrakcyjny Q jest to relacja dwuargumentowa
Bardziej szczegółowoAlgorytmy 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ółowoKolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie
Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy
Bardziej szczegółowoLogika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski
Logika stosowana Ćwiczenia Złożoność obliczeniowa problemu spełnialności Marcin Szczuka Instytut Informatyki, Uniwersytet Warszawski Wykład fakultatywny w semestrze zimowym 2015/2016 Marcin Szczuka (MIMUW)
Bardziej szczegółowoArytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
Bardziej szczegółowoTemat: 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ółowoJę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ółowoZa 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
Bardziej szczegółowoCZY INFORMATYKOM MUSI WYSTARCZYĆ NIESKOŃCZONOŚĆ POTENCJALNA?
Filozofia w matematyce i informatyce, Poznań, 9-10 grudnia 2016 CZY INFORMATYKOM MUSI WYSTARCZYĆ NIESKOŃCZONOŚĆ POTENCJALNA? Paweł Stacewicz Politechnika Warszawska Nieskończoność a granice informatyki
Bardziej szczegółowo1. 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ółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowowstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)
egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................
Bardziej szczegółowoSamodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Bardziej szczegółowoProgramowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Bardziej szczegółowoPodstawy 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
Bardziej szczegółowoOdwrotna 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ółowooperacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Bardziej szczegółowoPodstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoO 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ółowoInŜynieria oprogramowania. Język UML
InŜynieria oprogramowania Język UML 1 Jak podaje Słownik języka polskiego PWN, paradygmat to «przyjęty sposób widzenia rzeczywistości w danej dziedzinie, doktrynie itp.» lub «zespół form fleksyjnych (deklinacyjnych
Bardziej szczegółowoJaki 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ółowoAlgorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność
Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/
Bardziej szczegółowoREPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Pojęcie
Bardziej szczegółowoPodstawowe operacje arytmetyczne i logiczne dla liczb binarnych
1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie
Bardziej szczegółowoJę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ółowoWprowadzenie 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ółowoBadania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle
Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,
Bardziej szczegółowoAlgorytm. 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ółowoPodstawy Programowania. Złożoność obliczeniowa
Podstawy Programowania Wykład X Złożoność obliczeniowa Robert Muszyński Katedra Cybernetyki i Robotyki, PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada
Bardziej szczegółowoKoszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.
Elementy cyfrowe i układy logiczne Wykład Legenda Kryterium kosztu realizacji Minimalizacja i optymalizacja Optymalizacja układów dwupoziomowych Tablica (mapa) Karnaugh a Metoda Quine a-mccluskey a Złożoność
Bardziej szczegółowoJAKIEGO RODZAJU NAUKĄ JEST
JAKIEGO RODZAJU NAUKĄ JEST INFORMATYKA? Computer Science czy Informatyka? Computer Science czy Informatyka? RACZEJ COMPUTER SCIENCE bo: dziedzina ta zaistniała na dobre wraz z wynalezieniem komputerów
Bardziej szczegółowoZakładamy, że maszyna ma jeden stan akceptujacy.
Złożoność pamięciowa Rozważamy następujac a maszynę Turinga: 1 0 0 1 1 0 1 1 1 1 Taśma wejściowa (read only) 1 0 1 1 0 0 0 1 0 0 1 Taśma robocza (read/write) 0 1 1 0 0 1 0 0 1 Taśma wyjściowa (write only)
Bardziej szczegółowoKOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO
Aleksandra Nogała nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie olanog@poczta.onet.pl KONSPEKT ZAJĘĆ ( 2 godziny) KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO TEMAT
Bardziej szczegółowo1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Bardziej szczegółowo1. Operacje logiczne A B A OR B
1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne
Bardziej szczegółowob) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.
DODATEK: FUNKCJE LOGICZNE CD. 1 FUNKCJE LOGICZNE 1. Tablice Karnaugha Do reprezentacji funkcji boolowskiej n-zmiennych można wykorzystać tablicę prawdy o 2 n wierszach lub np. tablice Karnaugha. Tablica
Bardziej szczegółowoAlgorytm. 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
Bardziej szczegółowoZadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
Bardziej szczegółowoUniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy
Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy Matematyka, królowa nauk Edycja X - etap 2 Bydgoszcz, 16 kwietnia 2011 Fordoński
Bardziej szczegółowoLogika i teoria mnogości Wykład 14
Teoria rekursji Teoria rekursji to dział logiki matematycznej zapoczątkowany w latach trzydziestych XX w. Inicjatorzy tej dziedziny to: Alan Turing i Stephen Kleene. Teoria rekursji bada obiekty (np. funkcje,
Bardziej szczegółowoTemat: Algorytm kompresji plików metodą Huffmana
Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik
Bardziej szczegółowo