Maszyna Turinga Złożoność obliczeniowa

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

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

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 PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

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

Maszyna Turinga Złożoność obliczeniowa

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1 Obliczanie 1 Obliczanie Co to jest obliczanie? Czy wszystko można obliczyć? Czy to, co intuicyjnie uznajemy za obliczalne można obliczyć za pomocą mechanicznej procedury? 2 Czym jest obliczanie? Dawid

Bardziej szczegółowo

Języki, 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

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

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

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

Algorytmy sztucznej inteligencji www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego

Bardziej szczegółowo

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

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

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

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

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

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

CZY INFORMATYKOM MUSI WYSTARCZYĆ NIESKOŃCZONOŚĆ POTENCJALNA?

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

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

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

Programowanie komputerów

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

Podstawy Informatyki. Algorytmy i ich poprawność

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

Odwrotna Notacja Polska

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

Bardziej szczegółowo

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

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

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

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

InŜynieria oprogramowania. Język UML

InŜ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ółowo

Jaki język zrozumie automat?

Jaki język zrozumie automat? Jaki język zrozumie automat? Wojciech Dzik Instytut Matematyki Uniwersytet Śląski Katowice wojciech.dzik@us.edu.pl 7. Forum Matematyków Polskich, 12-17 września 2016, Olsztyn Prosty Automat do kawy Przemawiamy

Bardziej szczegółowo

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

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

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

Języki formalne i automaty Ćwiczenia 1

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

Bardziej szczegółowo

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

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

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

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

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

JAKIEGO RODZAJU NAUKĄ JEST

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

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

KOŁ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ółowo

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

1. 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ółowo

1. Operacje logiczne A B A OR B

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

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

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

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

Temat: Algorytm kompresji plików metodą Huffmana

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