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

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

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

Transkrypt

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

2 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ą przychodzić we wtorek osoby z innych grup zadania domowe, kolokwium, egzamin wspólne Slajdy (i inne materiały) będą dostępne na stronie www.

3 Zasady zaliczania: Sprawy organizacyjne zadania domowe (3 serie) 1.5 pkt kolokwium 1.5 pkt każdy może podejść do egzaminu w pierwszym terminie (nie ma progu zaliczenia ćwiczeń) egzamin 1. termin 3 pkt do oceny liczy się: zad_dom + kolokwium + egzamin egzamin poprawkowy 4.5 pkt do oceny liczy się: zad_dom + egzamin egzamin = zadania + teoria

4 O czym jest ten przedmiot? przedmiot badań: problemy obliczeniowe podstawowe pytanie: jak szybko można rozwiązać dany problem? co to znaczy, że problem jest trudny? (może tylko nie jesteśmy wystarczająco inteligentni, aby go rozwiązać?) JAiO: są problemy rozstrzygalne i nierozstrzygalne tutaj: są (rozstrzygalne) problemy łatwe i trudne (w różnym sensie) algorytmika: mamy szybki algorytm tutaj: szybki algorytm nie istnieje

5 Maszyna Turinga formalna definicja obliczenia David Hilbert: Czy istnieje algorytm rozstrzygający dowolną hipotezę matematyczną? ( Entscheidungsproblem ) Alonzo Church (1936), Alan Turing (1937) NIE Odpowiedź wymagała formalnej definicji co to jest algorytm maszyna Turinga (rachunek lambda - Church)

6 Maszyna Turinga formalna definicja obliczenia Składniki maszyny Turinga: skończony alfabet roboczy, gdzie, alfabet wejściowy \{, } skończony zbiór stanów Q stany: początkowy, akceptujący, odrzucający q I,q A,q R Q funkcja przejścia :(Q\{qA,q R }) Q {L,R,Z} taka, że

7 Maszyna Turinga formalna definicja obliczenia Składniki maszyny Turinga: skończony alfabet roboczy, gdzie, alfabet wejściowy \{, } skończony zbiór stanów Q stany: początkowy, akceptujący, odrzucający q I,q A,q R Q funkcja przejścia :(Q\{qA,q R }) Q {L,R,Z} taka, że Konfiguracja maszyny Turinga: zawartość taśmy, nieskończonej w prawo położenie głowicy stan a b a a a a b c d... q 5 formalnie np: a b a a q 5 a a b c d...

8 Maszyna Turinga formalna definicja obliczenia Obliczenie: funkcja M między konfiguracjami Przykład: (q 5,a)=(q 8,x,L) zwyczajowa notacja: q 5,a q 8,x,L jeśli stan to q 5, litera pod głowicą to a to przejdź do stanu q 8 zapisz x na taśmie przesuń głowicę w lewo q 5 a b a a a a b c d... q 8 a b a a x a b c d...

9 Maszyna Turinga formalna definicja obliczenia Dodatkowe założenia o konfiguracji: taśma od pewnego miejsca zawiera tylko pierwszy symbol taśmy to później nie występuje Dodatkowe założenia o funkcji przejścia: maszyna nie chce nadpisać ani postawić go gdzieś dalej nie chce też pójść w lewo gdy widzi

10 Maszyna Turinga formalna definicja obliczenia Obliczenie na słowie wejściowym w *: konfiguracja początkowa: q I w maszyna akceptuje w, jeśli wpada w stan q A a b a a a b c a b c d... maszyna odrzuca w, jeśli wpada w stan q R wpp. obliczenie jest nieskończone (maszyna się zapętla)

11 Maszyna Turinga formalna definicja obliczenia Obliczenie na słowie wejściowym w *: konfiguracja początkowa: q I w maszyna akceptuje w, jeśli wpada w stan q A a b a a a b c a b c d... maszyna odrzuca w, jeśli wpada w stan q R wpp. obliczenie jest nieskończone (maszyna się zapętla) oznaczmy: L(M)={w : M akceptuje w} M ma własność stopu, jeśli zatrzymuje się na każdym słowie język L * jest częściowo obliczalny (lub rekurencyjnie przeliczalny) jeśli istnieje maszyna, która akceptuje dokładnie słowa z L (czyli L(M)=L) jeśli ta maszyna ma własność stopu, to L jest obliczalny (rozstrzygalny)

12 Maszyna Turinga formalna definicja obliczenia M ma własność stopu, jeśli zatrzymuje się na każdym słowie język L * jest częściowo obliczalny (lub rekurencyjnie przeliczalny) jeśli istnieje maszyna, która akceptuje dokładnie słowa z L jeśli ta maszyna ma własność stopu, to L jest obliczalny (rozstrzygalny) Ćwiczenia: jeśli L i dopełnienie L są częściowo obliczalne, to są obliczalne

13 Maszyna Turinga formalna definicja obliczenia M ma własność stopu, jeśli zatrzymuje się na każdym słowie język L * jest częściowo obliczalny (lub rekurencyjnie przeliczalny) jeśli istnieje maszyna, która akceptuje dokładnie słowa z L jeśli ta maszyna ma własność stopu, to L jest obliczalny (rozstrzygalny) Ćwiczenia: jeśli L i dopełnienie L są częściowo obliczalne, to są obliczalne Obliczanie funkcji: funkcja częściowa f: * * jest obliczalna, jeśli istnieje M, która akceptuje każde w dom(f) w konfiguracji z taśmą f(w) oraz odrzuca każde w dom(f)

14 Warianty maszyn Turinga taśma nieskończona w obie strony wiele stanów akceptujących / odrzucających maszyny k-taśmowe :(Q\{q A,q R }) k Q k {L,R,Z} k maszyny niedeterministyczne, alternujące (te były deterministyczne)...

15 Warianty maszyn Turinga taśma nieskończona w obie strony wiele stanów akceptujących / odrzucających maszyny k-taśmowe :(Q\{q A,q R }) k Q k {L,R,Z} k maszyny niedeterministyczne, alternujące (te były deterministyczne)... Fakt: Wszystkie rozpoznają tę samą klasę języków. Uwaga: wystarczy pokazać, że dla każdej maszyny typu X istnieje równoważna maszyna typu Y. W praktyce te konstrukcje są obliczalne, ale nie musimy tego wiedzieć. To będzie częsty motyw na tym przedmiocie: kiedy wystarczy, że coś istnieje, a kiedy musimy umieć to (szybko) policzyć?

16 Przykład: osiągalność w grafie Problemy decyzyjne vs. języki Wejście: zbiór wierzchołków, zbiór krawędzi, dwa wyróżnione wierzch. Wejście jest skomplikowanym obiektem, a nie słowem. Maszyna Turinga wczytuje słowa. Ale - graf możemy zapisać jako słowo: liczba_wierzchołków, liczba_krawędzi, lista par wierzchołków połączonych krawędziami (zakładając, że wierzchołki są numerowane kolejnymi liczbami naturalnymi); poszczególne liczby pooddzielane jakimś znakiem $. Wiele możliwych reprezentacji grafów Można łatwo przekształcić jedną reprezentację w drugą.

17 Problemy decyzyjne vs. języki Rozważając konkretny problem myślimy o algorytmie rozumianym abstrakcyjnie, zwykle nie odwołując się do konkretnej reprezentacji lecz mamy świadomość tego, że można zaimplementować standardowe konstrukcje programistyczne (zmienne, pętle, itp.) na maszynie Turinga. Dowodząc ogólnych twierdzeń rozważamy maszyny Turinga (model prosty, ale mocny).

18 Problemy decyzyjne vs. języki Rozważając konkretny problem myślimy o algorytmie rozumianym abstrakcyjnie, zwykle nie odwołując się do konkretnej reprezentacji lecz mamy świadomość tego, że można zaimplementować standardowe konstrukcje programistyczne (zmienne, pętle, itp.) na maszynie Turinga. Dowodząc ogólnych twierdzeń rozważamy maszyny Turinga (model prosty, ale mocny). Teza Turinga-Churcha: wszystko, co można obliczyć w intuicyjnym sensie, można obliczyć na maszynie Turinga. (to nie jest twierdzenie matematyczne co to znaczy obliczyć w intuicyjnym sensie?) Teza mocniejsza: problemy łatwe maszyny Turinga rozwiązują szybko.

19 Złożoność czasowa Maszyna M działa w czasie T(n) (dla funkcji T:N N) jeśli dla każdego słowa w * zatrzymuje się po co najwyżej T( w ) krokach. (w szczególności ma własność stopu) Język L * jest rozpoznawalny w czasie T(n) jeśli istnieje maszyna wielotaśmowa, która go akceptuje w czasie T(n). Aby szczegóły definicji maszyny nie grały roli, mówimy zwykle o czasie O(T(n)).

20 Złożoność czasowa Maszyna M działa w czasie T(n) (dla funkcji T:N N) jeśli dla każdego słowa w * zatrzymuje się po co najwyżej T( w ) krokach. (w szczególności ma własność stopu) Język L * jest rozpoznawalny w czasie T(n) jeśli istnieje maszyna wielotaśmowa, która go akceptuje w czasie T(n). Aby szczegóły definicji maszyny nie grały roli, mówimy zwykle o czasie O(T(n)). Ćwiczenia: Język palindromów jest rozpoznawalny w czasie liniowym, lecz maszyna jednotaśmowa potrzebuje czasu kwadratowego.

21 Złożoność czasowa Maszyna M działa w czasie T(n) (dla funkcji T:N N) jeśli dla każdego słowa w * zatrzymuje się po co najwyżej T( w ) krokach. (w szczególności ma własność stopu) Język L * jest rozpoznawalny w czasie T(n) jeśli istnieje maszyna wielotaśmowa, która go akceptuje w czasie T(n). Aby szczegóły definicji maszyny nie grały roli, mówimy zwykle o czasie O(T(n)). Ćwiczenia: Język palindromów jest rozpoznawalny w czasie liniowym, lecz maszyna jednotaśmowa potrzebuje czasu kwadratowego. Twierdzenie (o liniowym przyspieszeniu): Jeśli język L jest rozpoznawalny w czasie T(n), to dla każdej stałej c>0 jest on rozpoznawalny w czasie c. T(n)+O(n). Dowód: na ćwiczeniach (pomysł: liczymy liczbę kroków, więc wystarczy wykonywać klika kroków na raz).

22 Złożoność czasowa podstawowe klasy DTIME(T(n)) języki rozpoznawalne w czasie O(T(n)) P= k N DTIME(n k ) czyli języki rozpoznawalne w czasie p(n) dla pewnego wielomianu p EXPTIME= k N DTIME(2 nk )

23 Złożoność pamięciowa Mierząc pamięć, nie chcemy uwzględniać rozmiaru wejścia (istotne w przypadku zużycia pamięci mniejszego niż liniowe) Dlatego definiując złożoność pamięciową rozważamy maszyny off-line: taśma wejściowa, tylko do odczytu (gdy widzę, to nie mogę iść dalej w prawo) taśmy robocze przy obliczaniu funkcji: taśma wyjściowa, gdzie głowica idzie tylko w prawo (czyli: tylko do zapisu)

24 Złożoność pamięciowa Mierząc pamięć, nie chcemy uwzględniać rozmiaru wejścia (istotne w przypadku zużycia pamięci mniejszego niż liniowe) Dlatego definiując złożoność pamięciową rozważamy maszyny off-line: taśma wejściowa, tylko do odczytu (gdy widzę, to nie mogę iść dalej w prawo) taśmy robocze przy obliczaniu funkcji: taśma wyjściowa, gdzie głowica idzie tylko w prawo (czyli: tylko do zapisu) Maszyna M działa w pamięci S(n) (dla funkcji S:N N) jeśli dla każdego słowa w * odwiedza co najwyżej S( w ) komórek na taśmach roboczych. Język L * jest rozpoznawalny w pamięci S(n) jeśli istnieje maszyna wielotaśmowa mająca własność stopu, akceptująca L w pamięci S(n). Mówimy zwykle o pamięci O(S(n)). Łatwo zmniejszyć zużycie pamięci razy stała - pamiętamy kilka komórek w jednej. Możemy też zamienić maszynę wielotaśmową na maszynę z jedną taśmą roboczą, zużywającą tyle samo pamięci.

25 Złożoność pamięciowa podstawowe klasy DSPACE(S(n)) języki rozpoznawalne w pamięci O(S(n)) L=DSPACE(log n) PSPACE= k N DSPACE(n k ) czyli języki rozpoznawalne w pamięci p(n) dla pewnego wielomianu p EXPSPACE= k N DSPACE(2 nk )

26 DTIME(f(n)) DSPACE(f(n)) Czas a pamięć Dowód: W czasie f(n) maszyna może odwiedzić co najwyżej k. f(n) komórek (k = liczba taśm)

27 Czas a pamięć Odwrotnie: DSPACE(f(n)) c>0 DTIME(n. c f(n) ) jeśli f(n) log(n), to po prostu: DSPACE(f(n)) c>0 DTIME(c f(n) ) Dowód: Weźmy L DSPACE(f(n)), rozpoznawany przez M. M się nie zapętla, więc (liczba odwiedzonych konfiguracji) = (liczba kroków) (liczba wszystkich konfiguracji) (liczba kroków) konfiguracji jest: Q. (n+2). (4 ) df(n) stan zawartość taśm roboczych + specjalny znacznik na: pozycję głowicy ostatnią odwiedzoną komórka na taśmie pozycja na taśmie wejściowej

28 Czas a pamięć DTIME(f(n)) DSPACE(f(n)) c>0 DTIME(n. c f(n) ) Zatem: L P PSPACE EXPTIME EXPSPACE

29 Czas a pamięć DTIME(f(n)) DSPACE(f(n)) c>0 DTIME(n. c f(n) ) Zatem: L P PSPACE EXPTIME EXPSPACE Czy te klasy faktycznie są różne? NIE wiadomo, czy: L P P PSPACE PSPACE EXPTIME EXPTIME EXPSPACE Wiadomo (i wkrótce to udowodnimy), że L PSPACE EXPSPACE P EXPTIME

30 Twierdzenie Sipsera Tw. Rozważmy maszynę M działającą w pamięci S(n), ale bez własności stopu. Wówczas istnieje maszyna M' taka, że: L(M')=L(M) M' działa w pamięci S(n) M' zatrzymuje się na każdym wejściu

31 Twierdzenie Sipsera Tw. Rozważmy maszynę M działającą w pamięci S(n), ale bez własności stopu. Wówczas istnieje maszyna M' taka, że: L(M')=L(M) M' działa w pamięci S(n) M' zatrzymuje się na każdym wejściu Zatem: w poniższej definicji Język L * jest rozpoznawalny w pamięci S(n) jeśli istnieje maszyna wielotaśmowa mająca własność stopu, akceptująca L w pamięci S(n). ten warunek był zbędny

32 Twierdzenie Sipsera Tw. Rozważmy maszynę M działającą w pamięci S(n), ale bez własności stopu. Wówczas istnieje maszyna M' taka, że: L(M')=L(M) M' działa w pamięci S(n) M' zatrzymuje się na każdym wejściu Dowód Podejście 1: (w którym wynikowy M' zużywa dużo pamięci) Kluczowa obserwacja: w biegu akceptującym żadna konfiguracja się nie powtarza. po każdym ruchu kopiujemy aktualną konfigurację na dodatkową taśmę roboczą, a także sprawdzamy, czy aktualna konfiguracja jest równa którejś zapisanej wcześniej konfiguracja się powtórzyła pętla odrzucamy

33 Twierdzenie Sipsera Tw. Rozważmy maszynę M działającą w pamięci S(n), ale bez własności stopu. Wówczas istnieje maszyna M' taka, że: L(M')=L(M) M' działa w pamięci S(n) M' zatrzymuje się na każdym wejściu Dowód Podejście 2: licznik ruchów: bieg akceptujący ma co najwyżej c S(n) kroków, o ile S(n) log(n) aby policzyć do c S(n) wystarczy licznik rozmiaru S(n) więc liczymy, zwiększając licznik o 1 po każdym kroku licznik się przepełnia odrzucamy

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

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

Bardziej szczegółowo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

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

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość 11. Wykład 11: Rachunek λ. Obliczenia i obliczalność. Rachunek λ jest systemem pozornie bardzo prostym. Abstrakcja i aplikacja wydają się trywialnymi operacjami, i może się zdawać, że niczego ciekawego

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

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

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

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

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

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

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

Bardziej szczegółowo

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

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

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

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

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

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

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

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

Lista 0. Kamil Matuszewski 1 marca 2016

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

Bardziej szczegółowo

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

(j, k) jeśli k j w przeciwnym przypadku.

(j, k) jeśli k j w przeciwnym przypadku. Zadanie 1. (6 punktów) Rozważmy język słów nad alfabetem {1, 2, 3}, w których podciąg z pozycji parzystych i podciąg z pozycji nieparzystych są oba niemalejące. Na przykład 121333 należy do języka, a 2111

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

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze

Bardziej szczegółowo

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

Teoria obliczeń czyli czego komputery zrobić nie mogą

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

Bardziej szczegółowo

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

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

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

10110 =

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

Bardziej szczegółowo

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

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

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki 1 Wykład cz. 2 dyżur: środa 9.00-10.00 czwartek 10.00-11.00 ul. Wieniawskiego 17/19, pok.10 e-mail: joanna.jozefowska@cs.put poznan.pl materiały do wykładów: http://www.cs.put.poznan.pl/jjozefowska/ hasło:

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

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki n r fi i= 1 n r fi i= 1 r n ( x) = f ( x) + K+ f ( x) Def r 1 r n ( x) = f ( x) K f ( x) Def r 1 1 Wykład cz. 2 dyżur: poniedziałek 9.30-10.30 p. 436 środa 13.30-14.30 p. 436 e-mail: joanna.jozefowska@cs.put

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 2 godz., Projekt 1 godz.. Strona kursu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html Struktury

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

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia Nazwa przedmiotu: Kierunek: Rodzaj przedmiotu: obowiązkowy dla wszystkich specjalności Rodzaj zajęć: wykład, ćwiczenia Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Indukcja matematyczna

Indukcja matematyczna Indukcja matematyczna 1 Zasada indukcji Rozpatrzmy najpierw następujący przykład. Przykład 1 Oblicz sumę 1 + + 5 +... + (n 1). Dyskusja. Widzimy że dla n = 1 ostatnim składnikiem powyższej sumy jest n

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 Informacje podstawowe 1. Konsultacje: pokój

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

R O Z D Z I A Ł V I I I

R O Z D Z I A Ł V I I I R O Z D Z I A Ł V I I I 1. Definicja maszyny Turinga Najprostszym narzędziem do rozpoznawania języków jest automat skończony. Nie ma on pamięci zewnętrznej, a jedynie wewnętrzną. Informacją pamiętaną z

Bardziej szczegółowo

Efektywność algorytmów

Efektywność algorytmów Efektywność algorytmów Algorytmika Algorytmika to dział informatyki zajmujący się poszukiwaniem, konstruowaniem i badaniem własności algorytmów, w kontekście ich przydatności do rozwiązywania problemów

Bardziej szczegółowo

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI TEORIA ZŁOŻONOŚCI I MASZYNA TURINGA TEORIA ZŁOŻONOŚCI Teoria złożoności poszukuje rozwiązania dla problemów, które są algorytmicznie trudne do rozwiązania

Bardziej szczegółowo

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

Bardziej szczegółowo

Hierarchia Chomsky ego

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

Bardziej szczegółowo

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

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

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

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

Maszyna Turinga Złożoność obliczeniowa

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

Bardziej szczegółowo

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

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

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Języki, automaty i obliczenia

Języki, automaty i obliczenia Języki, automaty i obliczenia Wykład 9: Własności języków bezkontekstowych Sławomir Lasota Uniwersytet Warszawski 27 kwietnia 2016 Plan 1 Pompowanie języków bezkontekstowych 2 Własności domknięcia 3 Obrazy

Bardziej szczegółowo

Złożoność Obliczeniowa Algorytmów

Złożoność Obliczeniowa Algorytmów Algorytmów Pożądane cechy dobrego algorytmu Dobry algorytm mający rozwiązywać jakiś problem powinien mieć 2 naturalne cechy: 1 (poprawność) zwracać prawidłowy wynik (dokładniej: zgodność z warunkiem końcowym

Bardziej szczegółowo

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA ARTYKUŁY ZAGADNIENIA FILOZOFICZNE W NAUCE XXV / 1999, s. 76 81 Adam OLSZEWSKI O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA Zadaniem niniejszego artykułu jest zdanie sprawy z matematycznej roli Tezy

Bardziej szczegółowo

Niestandardowe modele obliczeń

Niestandardowe modele obliczeń Niestandardowe modele obliczeń Zadania kwalifikacyjne Adam Michalik 11 czerwca 2014 1 Uwagi ogólne Do kwalifikacji należy rozwiązać wszystkie zadania o maszynach Turinga, oraz kilka zadań matematycznych

Bardziej szczegółowo

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17 Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2016 2020 Realizacja w roku akademickim 2016/17 1.1. Podstawowe informacje o przedmiocie/module Nazwa przedmiotu/ modułu

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

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa Zadanie 1. Rozważmy jezyk złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa równe. Narysować diagram minimalnego automatu deterministycznego akceptujacego

Bardziej szczegółowo

Złożoność informacyjna Kołmogorowa. Paweł Parys

Złożoność informacyjna Kołmogorowa. Paweł Parys Złożoność informacyjna Kołmogorowa Paweł Parys Serock 2012 niektóre liczby łatwiej zapamiętać niż inne... (to zależy nie tylko od wielkości liczby) 100...0 100 100... 100 100 100 25839496603316858921 31415926535897932384

Bardziej szczegółowo

Problemy Decyzyjne dla Systemów Nieskończonych

Problemy Decyzyjne dla Systemów Nieskończonych Problemy Decyzyjne dla Systemów Nieskończonych Ćwiczenia 1 17 lutego 2012 Na tych ćwiczeniach zajmiemy się pojęciem well quasi-ordering (WQO) bardzo przydatnym do analizy nieskończonych ciągów. Definicja

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

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych Szczepan Hummel Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych 24.11.2005 1. Minimalizacja automatów deterministycznych na słowach skończonych (DFA) [HU] relacja

Bardziej szczegółowo

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.

0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3. (Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)

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

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

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

1 Funkcje uniwersalne

1 Funkcje uniwersalne 1 1 Funkcje uniwersalne 1.1 Konstrukcja funkcji uniweralnej Niech P będzie najmniejszym zbiorem liczb spełniającym warunki 1) 0, 2, 0, 0, 2, 1, 0, 2, 2 P, 2) 0, n, 3, k P dla wszystkich n > 0 oraz k takich,

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

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

Paradygmaty dowodzenia

Paradygmaty dowodzenia Paradygmaty dowodzenia Sprawdzenie, czy dana formuła rachunku zdań jest tautologią polega zwykle na obliczeniu jej wartości dla 2 n różnych wartościowań, gdzie n jest liczbą zmiennych zdaniowych tej formuły.

Bardziej szczegółowo

1. Analiza algorytmów przypomnienie

1. Analiza algorytmów przypomnienie 1. Analiza algorytmów przypomnienie T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów, rozdziały 1-4 Wydawnictwa naukowo-techniczne (2004) Jak mierzyć efektywność algorytmu?

Bardziej szczegółowo

Topologia zbioru Cantora a obwody logiczne

Topologia zbioru Cantora a obwody logiczne Adam Radziwończyk-Syta Michał Skrzypczak Uniwersytet Warszawski 1 lipca 2009 http://students.mimuw.edu.pl/~mskrzypczak/dokumenty/ obwody.pdf Zbiór Cantora Topologia Definicja Przez zbiór Cantora K oznaczamy

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