Maszyna Turinga Złożoność obliczeniowa

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

Download "Maszyna Turinga Złożoność obliczeniowa"

Transkrypt

1 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 funkcji nieciągłej, nieróżniczkowalnej, zaszumionej, zmieniającej się w czasie Szukanie najkrótszej postaci danej formuły logicznej Rozkładanie liczb na czynniki pierwsze Weryfikacja poprawności programu Rodzaje modeli 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. Ideowy teoretyczny Obrazuje ideę działania, ania, reguły y pracy Dowodzi poprawności rozważań,, możliwo liwości teoretycznych zbudowania danego urządzenia Fizyczny realny Pozwala na bezpośredni rednią obserwację (czynnościow ciową) Obrazuje zasadę mechaniczną (elektryczną), która może e być wykorzystana w urządzeniu rzeczywistym Modele ideowe komputera Modele ideowe programowania Abstrakcyjne Rachunek binarny, kodowanie liczb (moduł-znak prosty, moduł-znak odwrotny) Funkcje rekurencyjne Bliskie realizacji Funkcje boolowskie Realizacje funkcji boolowskich za pomocą bramek logicznych Abstrakcyjne Maszyny Turinga Służyły y do rozważań teoretycznych, można wykorzystać jako ideowy model programowania Bliskie realizacji PMC Przykładowa Maszyna Cyfrowa Służy y jako przykład koncepcji programowania niskopoziomowego, można wykorzystać jako model programowania w języku j wewnętrznym komputera

2 Budowa: Nieskończona taśma z kratkami, w których można napisać zero lub jedynkę Głowica znajdująca się nad jedną kratką taśmy, która może: Przesunąć taśmę w lewo (L) lub prawo (P) Napisać jeden (1) lub zero (0) Zmienić swój j stan wewnętrzny zgodnie z instrukcją i znakiem zapisanym na taśmie w kratce pod głowicg owicą Instrukcje Cztery znaki: Stan głowicyg Znak na taśmie w kratce pod głowicg owicą Czynność wykonana przez głowicg owicę (L,P,1,0 i S stop) Nowy stan, który ma mieć głowica po wykonaniu czynności ci Przykłady 5,0,1,9 jeżeli eli głowica g jest w stanie 5 i z taśmy odczytuje 0 to ma napisać jedynkę (zacierając c poprzedni znak) i zmienić stan na 9 3,1,P,3 jeżeli eli głowica g jest w stanie 3 i z taśmy odczytuje 1 to ma przesunąć taśmę w prawo o jedną kratkę i zmienić stan na 3 Zadanie Dane: Taśma ze skończon czoną liczbą kratek z jedynkami i pozostałymi kratkami wypełnionymi zerami Początkowe położenie głowicy g na taśmie Wynik: Zatrzymanie maszyny Taśma z określon loną konfigurację jedynek zależną od danych początkowych Położenie głowicy g w określonym miejscu Programowanie Spisanie instrukcji takich, aby po uruchomieniu maszyny z początkowym stanem (np( np.. 1) w określonym miejscu taśmy zawierającej określon loną (w warunkach zadania) konfigurację skończonej liczby jedynek, maszyna zatrzymała a się zostawiając c na taśmie odpowiednią konfigurację skończonej liczby jedynek i głowicg owicę w odpowiednim miejscu Przykład zadania Dane 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 e jedynki sąs na prawo od głowicy): g Wynik Taśma z jednym nieprzerwanym ciągiem jedynek mający tyle samo jedynek ile było o ich na początku (położenie głowicy nieistotne) Rozwiązanie 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

3 Inne zadania Wyszukiwanie Na taśmie jedna jedynka, głowica g na jakimś zerze Wynik: głowica g na jedynce Arytmetyka Ciąg n+1 jedynek oznacza liczbę n Dwa ciągi reprezentujące liczby m i n,, zostawić jeden ciąg g reprezentujący m+n, mn, m/n, itp Weryfikacja poprawności programu - stworzony 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. Weryfikacja poprawności programu 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. 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. 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.

4 taśma 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. 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) 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. 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 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. 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. Stanybę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.

5 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., to siódemka: gdzie: Q Γ # definicja M = { Q, Γ,,#, δ, q, F} to skończony zbiór stanów maszyny. 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ę. 0 definicja, to siódemka: M = { Q,, Γ, #, δ, q, F} 0 gdzie: to funkcja przejścia. Jest to funkcja częściowa prowadząca z Q Γ 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 =. ) to stan początkowy w jakim znajduje się maszyna przed q 0 rozpoczęciem obliczenia. to zbiór stanów akceptujących będący podzbiorem Q. F Obliczenie maszyny kończy się kiedy osiągnięty zostanie któryś ze stanów F. 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 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ć". Generator języka: rozpoczyna pracę od pustej taśmy i zapisuje na taśmie słowa danego języka, dla którego został zaprojektowany.

6 - działanie - 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ę. 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. Może się również zdarzyć, że nigdy żaden z tych dwóch warunków nie nastąpi. W takim wypadku maszyna nie zakończy obliczenia. - reprezentacja Diagram przejść 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. 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ść 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.

7 Tabela stanów 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 Tabela stanów 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 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 Przykład 1 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ł.

8 Przykład 2 w roli przetwarzacza Zaprojektować tablicę stanów maszyny Turinga mnożącej dwie liczby naturalne (dwa ciągi zer oddzielone jedynką). Dla zadanego wejścia: Maszyna ma dać na wyjściu: Przykład 2 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 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 Przykład 2 w roli przetwarzacza Przykładowy przebieg (skrócony) pionowe kreski oznaczają komórkę aktualnie obserwowaną przez głowicę. Przykład 2 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: Przykład 2 w roli przetwarzacza

9 Przykład 3 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óć. Przykład 4 dodawanie cyfry 1 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 Przykład 5 Słowo - palindrom 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 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.

10 Przykład 5a Słowo - palindrom q0 ΦabaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ q1 ΦΦbaΦ przykład ΦabaΦ q3 ΦΦbaΦ q5 ΦΦbΦΦ q5 ΦΦbΦΦ q0 ΦΦbΦΦ q2 ΦΦΦΦΦ q4 ΦΦΦΦΦ q6 TAK ΦΦΦΦΦ Przykład 5b Słowo - palindrom q0 ΦabbΦ q1 ΦΦbbΦ przykład ΦabbΦ q1 ΦΦbbΦ q1 ΦΦbbΦ q3 ΦΦbbΦ q7 NIE ΦΦbbΦ przykład ΦabbΦ Symulacja pracy dla slowa abba 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. Wielotaśmowa - 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.

11 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. 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 Uniwersalna - 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 - 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 Uniwersalna - 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. UMT jest wolniejsza w działaniu od MT, gdy UMT musi przesuwa głowic w tę i z powrotem pomiędzy instrukcjami a danymi.

12 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. 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ć? 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ć. 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).

13 Rozstrzygalność teorii Schematycznie rozstrzygalność poniższy rysunek: problemów przedstawia 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 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). 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

14 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. 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 W ogóle nie istnieją algorytmy PROBLEMY TRUDNO ROZWIĄZYWALNE PROBLEMY ŁATWO ROZWIĄZYWALNE Nie istnieją wielomianowe algorytmy Istnieją rozsądne (wielomianowe) algorytmy Problem wężw ęża 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 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 cią ograniczony nieograniczony okresowy Status algorytmiczny łatwo rozwiązywalny zywalny trudno rozwiązywalny zywalny nierozstrzygalny wysoce nierozstrzygalny Klasy złożonoz oności P i NP 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. Klasy złożonoz 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.

15 Problemy NP-zupe 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. Problemy NP- trudne Problem P 0 jest NP-trudny, gdy każdy problem z klasy NP da się sprowadzić w czasie wielomianowym do problemu P 0. Problem NP-trudny spełnia tylko punkt b) definicji problemu NP.-zupełnego. problemy NP-zupełne maja postać pytania czy istnieje... problemy NP-trudne to zwykle ich optymalizacyjne wersje - znajdź najmniejszy... ) Problemy NP-zupe 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. 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 Nie wiadomo czy są one trudno, czy łatwo rozwiązywalne! 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

16 Ś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 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. Załadunek adunek plecaka Należy tak poukładać rzeczy w plecaku, żeby zostało w nim jak najwięcej wolnego miejsca. Ł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 Ogólna charakterystyka problemów 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 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

17 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 Przykłady przekształcania jednego problemu NP-zupełnego w drugi Znalezienie ścieżki Hamiltona problem komiwojażera 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 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 - formalnie Klasa złożoności P Funkcja f: A* -> A* posiada wielomianową złożoność czasową (P) wtedy i tylko wtedy, gdy istnieje wielomian p i deterministyczna MT M, która dla słowa wejściowego w danego na taśmie, zatrzymuje się z wynikiem f(w) po czasie t M ( w ) p( w ). Dla problemów klasy P istniej algorytmy, wyznaczone przez deterministyczne MT zatrzymujące się dla wszystkich zestawów danych wejściowych. Większość praktycznych algorytmów jest o niskiej złożoności, takiej jak O(N), O(N log N), O(N2), lub O(N3). Ich czasy obliczeń rosną wolno wraz z N, tak, że są one efektywnie obliczalne nawet dla dużych wartości N. Klasy problemów - formalnie Problemy NP - problemy rozwiązywalne w niedeterministyczny sposób w czasie wielomianowym. NP oznacza ( "non-deterministic polynomial") (niedeterministyczny wielomianowy): 1. Rozwiązanie polega na wykonaniu dużej liczby łatwych obliczeń, każde o wielomianowej złożoności O(N k ). 2. Kolejność ich wykonywania nie jest określona (tzn. jest niedeterministyczna). 3. W zależności od przypadku (lub szczęścia ) rezultat można otrzymać równie dobrze już w pierwszym, jak dopiero w ostatnim kroku obliczeń.

18 Klasy problemów - formalnie Klasa złożoności NP NP= L A MT M p że L LM ( ) i x A zachodzi: t ( x) p( x )} * { niedeterministyczna, wielomian taki, * = N Deterministyczna i niedeterministyczna MT są równoważne pod względem możliwości obliczeniowej w warunkach nieograniczonych zasobów czasu i pamięci. Klasy problemów - formalnie Istnieje między DMT i NDMT zasadnicza różnica pod względem czasu w którym wykonują one obliczenia. Niedeterministyczna MT bada jednocześnie szereg alternatywnych ścieżek obliczenia, których liczba może rosnąć wykładniczo wraz z długością obliczeń. Dla takiej maszyny funkcja t N : A* -> N (liczby całkowite) mierząca liczbę kroków obliczeń oznacza: t N (x) jest to najmniejsza liczba kroków spośród wykonanych wzdłuż każdej ścieżki akceptującej x ". Klasy problemów - formalnie Klasa złożoności NP-zupełne (NPC) L jest redukowalna z wielomianową złożonością do L ( L p L ) wtedy i tylko wtedy, gdy istnieje funkcja obliczalna o wielomianowej złożoności czasowej f:a*->a* taka, że dla każdego w A* zachodzi: w L wtedy i tylko wtedy, gdy f(w) L. Innymi słowy zamiast odpowiadać na pytanie, czy w L pytamy, czy f(w) L. Zatem złożoność czasowa problemu to suma złożoności obliczenia funkcji f i złożoności decyzji o przynależności f(w) do L. Jeśli obie te składowe operacje posiadają wielomianowe złożoności to ich suma - również. Klasy problemów - formalnie Klasa złożoności NP-zupełne (NPC) Biorąc pod uwag klasę NP i pojęcie redukcji o wielomianowej złożoności czasowej wyróżniamy "problemy NP-trudne" do których można zredukować wszystkie problemy decyzyjne w klasie NP. L jest NP-trudne, wtedy i tylko wtedy, gdy dla każdego L NP zachodzi L p L. L jest NP-zupełne (NPC), wtedy i tylko wtedy, gdy L NP i L jest NP-trudne. Klasy problemów - formalnie Klasa złożoności NP-zupełne (NPC) Klasa NPC jest zupełna (NP-complete) w tym sensie, że należące do niej problemy są wzajemnie powiązane za pomocą redukcji: Znalezienie rozwiązania wielomianowego dla choćby jednego z problemów oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów łatwych (wielomianowych - P). Na odwrót - udowodnienie dla choćby jednego problemu istnienia dolnej granicy powyżej złożoności wielomianowej oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów trudnych. Klasy problemów - formalnie Czy P = NP? Na pytanie, czy P = NP, nadal brak odpowiedzi. Intuicja i doświadczenie wskazują, że P NP. Niedeterminizm układu sterującego zapewnia możliwości obliczeniowe rosnące wykładniczo wraz z długością sekwencji obliczeń (wykonywanych "równolegle") - w czasie, gdy DMT wykona t kroków, maszyna NMT może wykonać co najmniej 2t kroków. Podczas gdy DMT wykonuje nawroty aby zbadać wszystkie alternatywne ścieki rozwiązania, maszyna NMT bada jednocześnie wszystkie alternatywne rozwiązania.

19 Algorytmy przybliżone praktyczne rozwiązanie dla problemów NP-zupełnych - Np. problem komiwojażera jest trudno rozwiązywalny (NP-zupełny), ale można w czasie wielomianowym wyznaczać niezłe cykle obchodzące wszystkie wierzchołki grafu: - L OPT -długość minimalnego cyklu Hamiltona LAPR S A = - L APR -długość przybliżonego rozwiązania LOPT - miara dobroci rozwiązania przybliżonego: - istnieje algorytm o złożoności O(N 3 ) wyznaczający w najgorszym przypadku cykl Hamiltona o dobroci s A 1,5 Uwagi o złożoności problemów - po raz pierwszy wykazano NP-zupełność dla problemu spełnialności zdania logicznego (Cook w 1971 r.) - są problemy, dla których udowodniono, że należą do klasy NP, ale nie są ani NP-zupełne, ani nie należą do klasy P, np. sprawdzenie czy dana liczba jest liczbą pierwszą Uwagi o złożoności problemów Uwagi cd. - są problemy, których złożoność wykładniczą można udowodnić przez podanie dolnych ograniczeń czasowych (i to nie tylko takie, jak wieże Hanoi, dla których z góry wiadomo ile iteracji wykona algorytm), - np. stwierdzenie czy dla danej konfiguracji w uogólnionych szachach N x N istnieje strategia wygrywająca dla jednego z przeciwników - są problemy spełnialności, dla których także można udowodnić złożoność wykładniczą np. w dynamicznej logice zdań - są problemy, dla których pokazano podwójnie wykładnicze dolne ograniczenia czasowe, np. spełnialność w arytmetyce Presburgera - są problemy algorytmiczne, dla których udowodniono, że mają wykładnicze dolne ograniczenia pamięciowe Uwagi cd. Klasy złożoności algorytmów - są ciekawe przypadki problemów, dla których efektywne w praktyce algorytmy mają złożoność wykładniczą, ale znaleziono dla nich algorytm wielomianowy sprawujący się w większości przypadków wyraźnie gorzej - zadanie programowania liniowego, algorytm sympleksowy (wykładniczy) i algorytm Karmarkara (1979)

20 Obliczenia równoległe. Obliczenia rozproszone Algorytmy równoległe - wykorzystują komputery wieloprocesorowe lub sieci stacji roboczych do równoległego wykonania złożonych obliczeń. Obliczenia równoległe są rodzajem obliczeń współbieżnych (obejmują one procesy, które są w trakcie wykonywania w tym samym czasie), które pozwalają na dekompozycję funkcjonalną algorytmu (niezależne funkcje są realizowane przez niezależne moduły programowe). Obliczenia rozproszone - dokonano dekompozycji zadania na programy, procesy czy procesory w warunkach braku pamięci globalnej, czyli wspólnej dla wszystkich procesorów przestrzeni adresowej. 50 sek Idea zrównoleglenia 32 sek Prawo Amdahla Prawo Amdahla w praktyce Prawo Amdahla w praktyce 1 x 90 % 10 % 2 x 5 x 10 x 20 x 1,81 x 3,57 x 5,26 x 6,89 x 5 x 2 x 70 % 30 % 1,31 x 1,54 x 100 x 9,17 x

21 Co można a czego nie można osiągnąć równoległością. - wiele problemów można rozwiązać szybciej niż sekwencyjnie - można niektóre problemy rozwiązywać szybciej nawet o rząd wielkości, jeśli da się zastosować rozszerzającą się równoległość dla problemów nierozstrzygalnych nie da się skonstruować algorytmu równoległego - klasa problemów rozwiązywalnych jest niewrażliwa na dodanie równoległości - wszystkie problemy klasy NP mają rozwiązania równoległe znajdowane w czasie wielomianowym, ale liczba procesorów potrzebnych do rozwiązania problemu NP-zupełnego w rozsądnym czasie rośnie wykładniczo Co można a czego nie można osiągnąć równoległością. - do końca nie wiadomo, czy problemy klasy NP są rzeczywiście trudno rozwiązywalne i trzeba szukać ratunku w równoległości - rzeczywiste komputery równoległe mają silne ograniczenia związane z przepustowością połączeń pomiędzy procesorami - nie wiadomo, czy można zastosować równoległość, nawet z niewielomianową liczbą procesorów, do rozwiązania w czasie wielomianowym problemu o udowodnionej sekwencyjnej złożoności wykładniczej

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

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

Zł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. 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ół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

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

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

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

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

Struktury 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 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ół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

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

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

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

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

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

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

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

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

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

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

Maszyna Turinga, ang. Turing Machine (TM)

Maszyna Turinga, ang. Turing Machine (TM) Maszyna Turinga, ang. Turing Machine (TM) Alan Turing wybitny angielski matematyk, logik i kryptolog, jeden z najważniejszych twórców informatyki teoretycznej, któremu zawdzięczamy pojęcie maszyny Turinga

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

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

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

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

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

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

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

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

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

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

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

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

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

Informatyka 1. Złożoność obliczeniowa

Informatyka 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ółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 4 WSTĘP DO INFORMATYKI

Dr 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ółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria 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ół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

Zaawansowane algorytmy i struktury danych

Zaawansowane 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ółowo

Logika 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 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ółowo

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

operacje 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ół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

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

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

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

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa). Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z

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

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

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

wstę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ół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

Lista 6 Problemy NP-zupełne

Lista 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ółowo

Algorytmy 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ść 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ół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

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

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA 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ółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Podstawy Programowania. Złożoność obliczeniowa

Podstawy 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ół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

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka 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ół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

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

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

LOGIKA I TEORIA ZBIORÓW

LOGIKA 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ółowo

Podstawy Programowania

Podstawy 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ółowo

Arytmetyka liczb binarnych

Arytmetyka 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ółowo

Podstawy Programowania. Złożoność obliczeniowa

Podstawy 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ółowo

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

b) 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ół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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Logika i teoria mnogości Wykład 14

Logika 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ółowo

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Kolorowanie 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ół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

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie 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ółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe 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ółowo

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Poprawność algorytmów

Poprawność algorytmów Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy

Bardziej szczegółowo

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Typy algorytmów losowych ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Typy algorytmów losowych Las Vegas - zawsze daje prawidłowa odpowiedź (różny czas działania). Przykład: RandQuicksort ALP520

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

Wstęp do informatyki- wykład 2

Wstę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ółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

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

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA 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ół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

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

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Dlaczego nie wystarczają liczby wymierne

Dlaczego nie wystarczają liczby wymierne Dlaczego nie wystarczają liczby wymierne Analiza zajmuje się problemami, w których pojawia się przejście graniczne. Przykładami takich problemów w matematyce bądź fizyce mogą być: 1. Pojęcie prędkości

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

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

Zadanie 1. Suma silni (11 pkt)

Zadanie 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ół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

Zakładamy, że maszyna ma jeden stan akceptujacy.

Zakł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ółowo