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

Podobne dokumenty
Efektywność Procedur Obliczeniowych. wykład 5

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 7. Prof. dr hab. inż. Jan Magott

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

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

Języki, automaty i obliczenia

Wstęp do programowania

PROBLEMY NIEROZSTRZYGALNE

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

Maszyna Turinga, ang. Turing Machine (TM)

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

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

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

Maszyna Turinga (Algorytmy Część III)

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

Maszyna Turinga języki

Turing i jego maszyny

Elementy Teorii Obliczeń

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

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

Obliczenia inspirowane Naturą

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Zasady analizy algorytmów

Matematyczne Podstawy Informatyki

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

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

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}

Hierarchia Chomsky ego Maszyna Turinga

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

1. Analiza algorytmów przypomnienie

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

O ALGORYTMACH I MASZYNACH TURINGA

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Definicje. Algorytm to:

Algorytm. Krótka historia algorytmów

Zaawansowane algorytmy i struktury danych

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

Wprowadzenie do złożoności obliczeniowej

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

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

Efektywność algorytmów

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Matematyczne Podstawy Informatyki

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Podstawy Informatyki. Sprawność algorytmów

Informatyka 1. Złożoność obliczeniowa

Podstawy Informatyki Maszyna Turinga

Wykład nr 3 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

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

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

Technologie Informacyjne

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

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

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

Informatyka. Michał Rad

Obliczenia inspirowane Naturą

Lista 6 Problemy NP-zupełne

Algorytmy asymetryczne

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

MODELOWANIE RZECZYWISTOŚCI

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

Spacery losowe generowanie realizacji procesu losowego

TEORETYCZNE PODSTAWY INFORMATYKI

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

MASZYNA TURINGA UPRASZCZANIE DANYCH

1 Wprowadzenie do algorytmiki

Maszyna Turinga Złożoność obliczeniowa

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

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

Teoretyczne podstawy informatyki

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

Projektowanie i analiza algorytmów

Języki, automaty i obliczenia

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Rozdział 1 PROGRAMOWANIE LINIOWE

Języki formalne i automaty Ćwiczenia 9

Algorytm. Krótka historia algorytmów

Algorytmy i Struktury Danych

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Wprowadzenie do algorytmiki

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Języki formalne i automaty Ćwiczenia 4

Wprowadzenie do maszyny Turinga

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

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

Algorytm. a programowanie -

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Podstawy Programowania. Złożoność obliczeniowa

Złożoność obliczeniowa wybranych problemów szeregowania zadań jednostkowych na równoległych procesorach

Transkrypt:

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 prawie na pewno nie można tak rozwiązać.

W teorii złożoności obliczeniowej fundamentalnym pojęciem jest problem decyzyjny. Problem decyzyjny Dane:. Pytanie: Pytanie, na które odpowiedź brzmi tak lub nie.

Problem decyzyjny związany z problemem optymalizacyjnym Problem optymalizacyjny Dane: Zadanie: Znaleźć x X takie, że f x = min x X f(x) ( f x = max x X f(x) ) Problem decyzyjny związany z problemem optymalizacyjnym Dane: j.w., r R Pytanie: Czy istnieje x X takie, że f x r ( f x r )?

Złożoność problemu decyzyjnego a złożoność problemu optymalizacyjnego Z rozwiązania problemu optymalizacyjnego można wyznaczyć rozwiązanie problemu decyzyjnego. Problem optymalizacyjny Dane: Zadanie: Znaleźć x X takie, że f x = min x X f(x) Problem decyzyjny związany z problemem optymalizacyjnym Dane: j.w., r R Pytanie: Czy istnieje x X takie, że f x r Rozwiązaniem problemu decyzyjnego jest tak f x r

W praktyce ważna jest optymalizacja. Teoria złożoności obliczeniowej jest zbudowana na pojęciu problemu decyzyjnego. Twierdzenie Z każdym problemem optymalizacyjnym można związać odpowiadający mu problem decyzyjny.

Złożoność problemu decyzyjnego a złożoność problemu optymalizacyjnego Jeśli problem optymalizacyjny jest łatwy, to problem decyzyjny też jest łatwy. Jeśli problem decyzyjny jest trudny (NP-zupełny), to odpowiadający mu problem optymalizacyjny jest trudny. Zatem: W celu wykazania łatwości problemu decyzyjnego wystarczy wykazać łatwość odpowiadającego mu problemu optymalizacyjnego. Dla wykazania trudności problemu optymalizacyjnego wystarczy wykazać trudność związanego z nim problemu decyzyjnego.

Intuicyjne pojmowanie klas P i NP Klasa P zawiera te wszystkie problemy decyzyjne, dla których znaleziono wielomianowe czasowo algorytmy ich rozwiązania. Klasa NP zawiera te wszystkie problemy decyzyjne, dla których znaleziono niedeterministyczne algorytmy wielomianowe ich rozwiązania (w wielomianowym czasie można odgadnąć rozwiązanie i sprawdzić czy to rozwiązanie daje odpowiedź "tak").

Decyzyjny problem szeregowania zadań niezależnych na dwu maszynach (procesorach) Dane: T = t 1,, t i,, t k zbiór czasów wykonania k zadań niezależnych (bez ograniczeń kolejności wykonywania) gdzie t i N +, B N +, k i=1 t i = 2B. Pytanie: Czy można te zadania tak rozłożyć na dwie maszyny, że sumaryczny czas wykonania będzie równy B?

Optymalizacyjny problem szeregowania zadań niezależnych na dwu maszynach (procesorach) Dane: T = t 1,, t i,, t k zbiór czasów wykonania k zadań niezależnych (bez ograniczeń kolejności wykonywania) gdzie t i N +, B N +, k i=1 t i = 2B. Zadanie: Wyznaczyć minimalny czas wykonania.

Problem podziału zbioru Dane: X = x 1,, x i,, x k zbiór k elementów x i N +, gdzie N + = 1,2,, B N +, k i=1 x i = 2B. Pytanie: Czy istnieje podzbiór X 1 X taki, że x i X 1 x i = B?

Z Problemem podziału zbioru można skojarzyć następujący problem optymalizacyjny Dane: X = x 1,, x i,, x k zbiór k elementów x i N +, gdzie N + = 1,2,, B N +, k i=1 x i = 2B. Pytanie: Wyznaczyć podzbiór X 1 X taki, że min X1 2 X ( x x i X 1 i) B gdzie 2 X jest zbiorem potęgowym (zbiorem wszystkich podzbiorów) zbioru X.

Przykłady problemów decyzyjnych Czy liczba naturalna n jest liczbą pierwszą? Problem podziału zbioru Problem spełnialności wyrażeń logicznych

Problem podziału zbioru jest przykładem problemu decyzyjnego Dane: X = x 1,, x i,, x k zbiór k elementów x i N +, gdzie N + = 1,2,, B N +, k i=1 x i = 2B. Pytanie: Czy istnieje podzbiór X 1 X taki, że x i X 1 x i = B?

Problem spełnialności wyrażeń logicznych (ang. Satisfability problem) Dane: Funkcja boolowska n zmiennych logicznych f x 1, x 2,, x n : {0,1} n 0,1 Pytanie: Czy istnieje przypisanie wartości 0 i 1 ( false i true ) do zmiennych x 1, x 2,, x n takie, że f x 1, x 2,, x n = 1?

Przykłady problemów optymalizacyjnych Problem programowania liniowego Problem plecakowy Problem komiwojażera

Problem programowania liniowego Dane: Wektory c 1 n, b m 1, x n 1, macierz A m n o składowych rzeczywistych Funkcja celu f x = c x Ograniczenia A x b Zadanie: Wyznaczyć x X takie, że f x = max x X f(x)

Algorytmy rozwiązujące problem programowania liniowego Algorytm simplex (niewielomianowy) Algorytm Khachiana (wielomianowy) 1979 Algorytm Karmarkara (wielomianowy) 1984 W praktyce, często dla tych samych danych, Algorytm Khachiana wykonywany jest dłużej niż algorytm simplex. W praktyce, często algorytmy inspirowane algorytmem Karmarkara mają podobną złożoność jak algorytm simplex.

Dyskretny problem plecakowy wersja decyzyjna Dane: Skończony zbiór elementów A = a 1, a 2,, a n. Rozmiar s a i > 0 i wartość w a i > 0 elementu a i. Pojemność plecaka b > 0 i stała y > 0. Zadanie: Czy istnieje podzbiór A A taki, że: s( a i A a i ) b a i A w(a i ) y?

Dyskretny problem plecakowy wersja optymalizacyjna Dane: Skończony zbiór elementów A = a 1, a 2,, a n. Rozmiar s a i > 0 i wartość w a i > 0 elementu a i. Pojemność plecaka b > 0. Zadanie: Czy istnieje podzbiór A A taki, że: s( a i A a i ) b max A A w(a i ) a i A

Problem komiwojażera Dane: Zbiór miast C = {c 1, c 2,, c m }, odległości d ij εn + z miasta c i do c j i ograniczenie bεn. (Nie ma wymogu d ij = d ji ) Pytanie: Znaleźć kolejność odwiedzania wszystkich miast (permutację) < c i[1], c i[2],, c i[m] >, gdzie c i[j] jest miastem odwiedzanym jako j-te, taką, że: m 1 j=1 d i j,i[j+1] + d i m,i[1] b?

Notacja o Funkcja f n jest o g n, jeśli lim n f(n) g(n) = 0. Uporządkowanie przykładowych ciągów 1, logn,, n, n, n log n, n n, n 2, n 3,, 2 n, n!, n n L, P - ciąg, ciąg na prawo od niego L = o(p)

Funkcją czasowej złożoności obliczeniowej (złożonością obliczeniową) algorytmu A rozwiązującego problem π jest funkcja przyporządkowująca każdej wartości rozmiaru N I instancji IεD π maksymalną liczbę elementarnych kroków (lub jednostek czasu) komputera potrzebną do rozwiązania instancji o tym rozmiarze za pomocą algorytmu A.

czasowa ponadwielomianowym.

W praktyce korzystnie jest wyznaczyć rozmiar problemu za pomocą jednego, dwu, rzadko kiedy większej liczby parametrów określających liczbę elementów zbioru istotnego dla danego problemu.

Złożoność czasowa a złożoność pamięciowa algorytmów. Częsty konflikt między kierunkami minimalizacji obu powyższych złożoności.

Modele obliczeń: Maszyna Turinga, Maszyna RAM, Programy komputerowe. Porównanie modeli obliczeń.

Pojęcia teorii złożoności obliczeniowej są formułowane za pomocą maszyn Turinga: deterministycznej, niedeterministycznej, które są modelami formalnymi obliczeń.

Alan Turing (1912-1954) Brytyjski matematyk, filozof i kryptolog. Twórca modelu formalnego komputera zwanego maszyną Turinga. Ojciec informatyki Twórca testu sprawdzającego czy maszyna jest inteligentna. Test Turinga Arbiter rozmawia w języku naturalnym z bytem, o którym nie wie czy jest człowiekiem czy maszyną. Jeśli o bycie, który jest maszyną nie potrafi powiedzieć czy jest człowiekiem czy maszyną, to maszyna przeszła test.

Deterministyczna jednotaśmowa maszyna Turinga (DMT) Sterowanie Głowica odczytująco-zapisująca -4-3 -2-1 0 1 2 3 4 Taśma nieskończonej długości

Program dla DMT składa się z: Skończonego zbioru symboli taśmy separator (symbol pusty), zawierającego Skończonego zbioru stanów Q = {q 0,, q m } zawierającego stan początkowy q 0, dwa wyróżnione stany końcowe q Y (odpowiedź tak ) i q N (odpowiedź nie ), Funkcji przejść δ: (Q\{q Y, q N }) Q { 1,0, +1}.

Dane programu na DMT Pierwsze słowo x (skończony ciąg symboli) ze zbioru \{ } zapisane po jednym symbolu w kolejnych komórkach taśmy o numerach od 1 do x. Kolejne słowa są oddzielone separatorami. Sterowanie 1 0 0 1-4 -3-2 -1 0 1 2 3 4 Taśma nieskończonej długości Głowica odczytująco-zapisująca

Wykonanie programu DMT 1. Maszyna znajduje się w stanie początkowym q 0, natomiast głowica odczytuje symbol s z komórki o numerze 1. 2. Jeśli DMT znajduje się w stanie qεq\{q Y, q N }, a w komórce, nad która jest głowica jest symbol sε, to maszyna wykonuje czynności określone funkcją przejścia δ q, s = q, s, : 1. Głowica w miejsce symbolu s wpisuje s, 2. Głowica przesuwa się o jedną komórkę: w lewo jeśli = 1, w prawo jeśli = +1, nie przesuwa się jeśli = 0, 3. Stan DTM zmienia się na q. 3. Wykonywanie trwa do czasu gdy DTM znajdzie się w stanie końcowym.

DTM rozwiązuje problem decyzyjny π przy kodowaniu e, jeśli zatrzymuje się dla wszystkich ciągów danych wejściowych i kończy obliczenia w stanie q Y dla wszystkich danych wejściowych x I instancji I takich, że IεY π i tylko dla nich. Y π - zbiór wszystkich instancji problemu decyzyjnego π, dla których odpowiedzią jest tak.

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

<s,s,+1> <1,1,+1> <,, 1> q 0 q 1 <1,1,+1> q Y <0,0,+1> <0,0,+1> q N 1 0 0 1

Deterministyczna k-taśmowa DMT Sterowanie -4-3 -2-1 0 1 2 3 4

Program dla k- taśmowej DMT składa się ze: Skończonego zbioru symboli zawierającego separator (symbol pusty) zapisywanych/odczytywanych na/z k taśm, Skończonego zbioru stanów Q = {q 0,, q m } zawierającego stan początkowy q 0, dwa wyróżnione stany końcowe q Y (odpowiedź tak ) i q N (odpowiedź nie ), Funkcji przejść δ: (Q\{q Y, q N }) Ʃ k Q Ʃ k { 1,0,1} k.

Deterministyczna trójtaśmowa DMT Taśma 3 Taśma 2 Sterowanie Taśma 1-4 -3-2 -1 0 1 2 3 4

Cel: Dodawanie dwu liczb dwójkowych tej samej długości, znajdujących się na Taśmach 1 i 2, których najstarsze pozycje znajdują się w komórkach o numerze 1. Wynik tworzony jest na Taśmie 3. Cyfra najmłodszej pozycji powinna być umieszczona tak jak cyfry najmłodszych pozycji danych wejściowych. Głowica tej taśmy powinna wskazywać najstarszą cyfrę wyniku. Plan: Wymagania: Zewnętrzne objawy zachowania trójtaśmowej DMT. Specyfikacja: Diagram przejść maszyny.

Start: Maszyna znajduje się w stanie początkowym q 0, natomiast głowice odczytują symbole z trzech taśm z komórek o numerze 1. Taśma 3 Taśma 2 Sterowanie 1 1 1 0 Taśma 1 1 0 1 1-4 -3-2 -1 0 1 2 3 4

Głowice trzech taśm przesuwają się w prawo do osiągnięcia komórek ze znakami pustymi znajdujących się na prawo od liczb. Taśma 3 Taśma 2 Sterowanie 1 1 1 0 Taśma 1 1 0 1 1-4 -3-2 -1 0 1 2 3 4

Głowice trzech taśm przesuwają się w lewo do osiągnięcia komórek ze znakami pustymi znajdujących się na lewo od liczb na Taśmach 1 i 2. Kolejne cyfry sumy zapisywane są na Taśmie 3. Taśma 3 1 1 0 0 1 Taśma 2 Sterowanie 1 1 1 0 Taśma 1 1 0 1 1-4 -3-2 -1 0 1 2 3 4

b i - cyfra dwójkowa i tej taśmy. W tym przykładzie, trzy głowice poruszają się synchronicznie. Stąd, dla uproszczenia, zamiast np. +1+1+1 piszemy +1. q 3 <b 1 b 2,b 1 b 2,+1> <,, +1> <00,001,-1> <, 1,0> <,, 1> q 0 q 1 <11,110,-1> q 2 <00,000,-1> <01,011,-1> <10,101,-1> <01,010,-1> <10,100,-1> <11,111,-1>

Model RAM (ang. random access machine) Jeden procesor, Operacje elementarne (zapisania, dodawania, odejmowania, porównania dwu liczb, itp.) wymagają jednego kroku czasowego, Taśma wejściowa z głowicą odczytującą, Taśma wyjściowa z głowicą zapisującą, Pamięć danych jest zbiorem rejestrów z wyróżnionym rejestrem akumulatorem, w którym wykonywane są obliczenia, Dostęp do pamięci wymaga jednego kroku, Możliwość adresowania pośredniego, Program, który nie jest przechowywany w pamięci jest sekwencją rozkazów (nie podlega automodyfikacji), Licznik rozkazów.

Model RAM c.d. Każda komórka taśm: wejściowej i wyjściowej oraz każdy rejestr może zawierać dowolną liczbę całkowitą. Po odczycie z komórki taśmy wejściowej (zapisie w komórce taśmy wyjściowej), głowica taśmy jest przesuwana o jedną pozycję w prawo. Treści wpisanej na taśmie wyjściowej nie można zmienić. Rozkazy (zbiór rozkazów nie jest precyzyjnie zdefiniowany, ale nie może zawierać instrukcji niespotykanych w rzeczywistych komputerach): Arytmetyczne (+, -, x, /), Wejścia-wyjścia, Rozgałęzienia przepływu sterowania.

Racjonalny model komputera Racjonalny model komputera to taki, dla którego istnieje wielomian ograniczający od góry zakres pracy wykonywanej w jednostce czasu. Model mogący wykonywać dowolnie dużą liczbę operacji równolegle nie jest racjonalnym.

Modele algorytmów Program w języku wysokiego poziomu Kierunek wzrostu poziomu abstrakcji Program w języku asemblera Zbliżony poziom abstrakcji Program dla maszyny RAM Program dla wielotaśmowej maszyny Turinga Program dla jednotaśmowej maszyny Turinga

Kryteria kosztów operacji elementarnych (zapisania, dodawania, odejmowania, porównania dwu liczb, itp.) Logarytmiczne kryterium kosztów Czas wykonania elementarnej operacji zależy liniowo od długości łańcucha danych kodujących liczby, a zatem od logarytmów liczb. Analiza teoretyczna z użyciem DMT prowadzona jest przy tym kryterium. Jednorodne kryterium kosztów Czas wykonania elementarnej operacji jest jednostkowy. Analiza praktyczna często oparta jest na tym kryterium.

Twierdzenie Modele procesu obliczeń: Jednotaśmowa maszyna Turinga, Wielotaśmowa maszyna Turinga, Maszyna RAM są równoważne w tym sensie, że jeśli dany problem jest rozwiązywany przez jeden model w czasie ograniczonym od góry przez wielomian zależny od rozmiarów problemu, to przy założeniu logarytmicznego kryterium kosztów jest on również rozwiązywany przez każdy inny model w czasie ograniczonym od góry przez wielomian zależny od jego rozmiarów.

Jeśli czas działania programu (algorytmu) P na DMT rozwiązującego problem decyzyjny π jest ograniczony od góry wielomianem zależnym od długości języka L (danych wejściowych), tzn. czas działania t p( L ) dla każdego L i pewnego wielomianu p, to algorytm P jest algorytmem wielomianowym. Jeżeli algorytm nie jest algorytmem wielomianowym, to jest nazywamy algorytmem ponadwielomianowym.

Niedeterministyczna jednotaśmowa maszyna Turinga (NDMT) Głowica zapisująca Moduł zgadujący Sterowanie Głowica odczytująco-zapisująca.. Łańcuch S Dane wejściowe.. -4-3 -2-1 0 1 2 3 4 Taśma nieskończonej długości

Niedeterministyczna maszyna Turinga (NDMT) Moduł zgadujący tylko zapisuje na taśmie odgadnięte rozwiązanie (np. podzbiór zbioru elementów w problemie podziału, kolejność odwiedzania wszystkich miast w problemie komiwojażera, podzbiór elementów do upakowania w plecaku problemu plecakowego). Wykonanie programu składa się z wielu wykonań pary działań: 1. Zgadywania rozwiązania generowania łańcucha S symboli, 2. Sprawdzania jaka jest odpowiedź na pytanie problemu decyzyjnego dla wygenerowanego rozwiązania.

NDMT dla Problemu podziału zbioru Głowica zapisująca Moduł zgadujący Sterowanie Głowica odczytująco-zapisująca.. Łańcuch S Dane wejściowe.. Łańcuch S - liczba binarna, której i-ta pozycja wskazuje czy i-ty element zbioru X należy do wygenerowanego rozwiązania X 1-4 -3-2 -1 0 1 2 3 4 Dane wejściowe x1 x2 xk B

NDMT dla Problemu podziału zbioru 2 k 2 - liczba generowanych łańcuchów reprezentujących zbiór X 1 Czy koszt sprawdzenia relacji x i X 1 x i = B jest ograniczony od góry przez wielomian od k? Jaka byłaby złożoność generowania łańcuchów i sprawdzania, gdyby program był wyrażony w języku wysokiego poziomu.

Twierdzenie Jeśli jednotaśmowa NDMT rozwiązuje decyzyjny problem π w czasie wielomianowym, to istnieje wielomian p taki, że jednotaśmowa DMT rozwiązuje ten problem w czasie O(2p N I ), gdzie IεD π a N I jest rozmiarem danych wejściowych instancji I.

Interpretacja Twierdzenia o relacji między NDMT a DMT Działanie DMT DMT powinna generować kolejno rozwiązania np. poprzez tworzenie kolejnych liczb binarnych k cyfrowych i sprawdzać jaka jest odpowiedź na pytanie.

Adekwatność NDMT jako modelu obliczeń Sekwencyjny dostęp do danych wejściowych i wyników pośrednich (ze względu na organizację taśmową). Nie istnieje rzeczywisty odpowiednik NDMT rozwiązujący problemy decyzyjne w prezentowany sposób. NDMT obrazuje zdolność weryfikacji pozytywnej odpowiedzi dla rozwiązania (wygenerowanego łańcucha S) instancji IεD π.

Pytanie, czy problemy NP-zupełne można rozwiązywać w czasie wielomianowym, jest największą zagadką informatyki teoretycznej. Problem P = NP czy P NP jest problemem otwartym umieszczonym na liście Problemów milenijnych.

Do dziś rozwiązano tylko jeden: hipoteza Poincarego została potwierdzona w 2006 przez rosyjskiego matematyka Grigorija Perelmana. Problemy milenijne (ang. Millennium Prize Problems) - zestaw siedmiu zagadnień matematycznych ogłoszonych przez Instytut matematyczny Claya 24 maja 2000 roku. Za rozwiązanie każdego z nich wyznaczono milion dolarów nagrody.