Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)

Podobne prezentacje


Prezentacja na temat: "NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)"— Zapis prezentacji:

1 NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(kn)) nierozwiązywalne NP-zupełne (status nieznany; rozwiązywalne, ale nie wiadomo, czy w czasie wielomianowym)

2 Problemy abstrakcyjne
Problem abstrakcyjny Q - relacja dwuargumentowa na zbiorze I egzemplarzy problemy i zbiorze S rozwiązań problemu. Problem optymalizacyjny - pewną wielkość trzeba zminimalizować albo zmaksymalizować. Problem decyzyjny - funkcja odwzorowująca zbiór egzemplarzy problemu I w zbiór rozwiązań {0,1} - rozwiązanie stanowi odpowiedź tak/nie.

3 Podejście oparte na teorii języków formalnych
Alfabet  - skończony zbiór symboli; język L nad  - dowolny zbiór słów złożonych z symboli alfabetu . Na przykład:  = {0,1}, L = {10, 11, 101, 111, 1011, 1101, 10001, ...} Tu L - język binarnych reprezentacji liczb pierwszych. Język złożony z wszystkich słów nad alfabetem  oznacza się przez *. Algorytm A akceptuje słowo x{0,1}*, jeśli oblicza A(x)=1. Algorytm A odrzuca słowo x, jeśli A(x)=0. Język akceptowany przez algorytm A to zbiór L = {x{0,1}*: A(x)=1}. Język jest rozstrzygalny przez algorytm A, jeśli każdy ciąg binarny jest albo akseptowany, albo odrzucany przez A. Język jest rozstrzygalny w czasie wielomianowym za pomocą algorytmu A, jeśli dla dowolnego słowa x{0,1}* długości n algorytm rozstrzyga przynależność x do L w czasie O(nk).

4 Złożoność i weryfikacja
Klasa złożoności P: P = {L  {0,1}*: istnieje algorytm A rozstrzygający o L w czasie wielomianowym} Algorytm weryfikacji: algorytm o dwóch parametrach - wejściowy ciąg x i świadectwo y. Język weryfikowany przez algorytm A to: L = {x{0,1}*: istnieje y{0,1}* takie, że A(x, y) = 1} Klasa złożoności NP: L należy do NP, jeśli istnieje algorytm A L = {x{0,1}*: istnieje takie świadectwo y, gdzie |y|=O(|x|c), że A(x,y) = 1}

5 Redukowalność Język L1 jest redukowalny w czasie wielomianowym do języka L2 ( L1 P L2), jeśli istnieje obliczalna w czasie wielomianowym funkcja f: {0,1}*  {0,1}* taka, że dla każdego x{0,1}*: xL1 wtedy i tylko wtedy, gdy f(x)L2 f {0,1}* {0,1}* L2 L1

6 NP-zupełność Język L  {0, 1}* jest NP-zupełny (NPC), jeśli
1. LNP oraz 2. L’ P L dla każdego L’NP Jeśli język L spełnia własność (2), ale niekoniecznie (1), to L jest NP-trudny. Najprawdopodobniej zależność między P, NP i NPC wygląda następujące NP NPC P

7 Czy P = NP? Twierdzenie Jeśli jakikolwiek problem NP-zupełny jest rozwiązywalny w czasie wielomianowym, to P = NP. Jeśli jakikolwiek problem w NP nie jest rozwiązywalny w czasie wielomianowym, to żaden problem NP-zupełny nie jest rozwiązywalny w czasie wielomianowym.

8 Przykłady problemów NP-zupełnych
Spełnialność układów logicznych Spełnialność formuł logicznych Problem kliki w grafie Problem pokrycia wierzchołkowego Problem sumy podzbioru Problem cyklu Hamiltona Problem komiwojażera

9 Przykład algorytmu aproksymacyjnego
Problem komiwojażera z nierównością trójkąta Approx-TSP-Tour(G, c) 1 wybierz wierzchołek rV[G] na „korzeń” 2 zbuduj minimalne drzewo rozpinające T dla G o korzeniu r 3 niech L będzie listą wierzchołków drzewa T w kolejności preorder 4 return cykl Hamiltona H odwiedzający wierzchołki w takiej kolejności jak w L


Pobierz ppt "NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)"

Podobne prezentacje


Reklamy Google