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

Slides:



Advertisements
Podobne prezentacje
Lingwistyka Matematyczna
Advertisements

II Relacje i relacje równoważności
DOMINOWANIE W GRAFACH Magdalena Lemańska.
Grafy spełniające nierówność Γ(G) < IR(G)
Zaawansowane techniki algorytmiczne
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Grafy inaczej, czyli inne modele grafów
ELEMENTY TEORII GRAFÓW
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
Filip Andrzejewski Remigiusz Chiluta
Techniki konstrukcji algorytmów
Ciągi de Bruijna generowanie, własności
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Liczby Pierwsze - algorytmy
ALGEBRA ZBIORÓW.
Opracowała: Elżbieta Fedko
WYKŁAD 2. Kolorowanie wierzchołków
WYKŁAD 7. Spójność i rozpięte drzewa
Materiały pomocnicze do wykładu
12 grudnia 2001Matematyka Dyskretna, Elementy Kombinatoryki G.Mirkowska, PJWSTK 1 Wykład 11 Elementy Kombinatoryki.
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
Algorytmy grafowe Reprezentacja w pamięci
ALGORYTMY I STRUKTURY DANYCH
WYKŁAD 7. Spójność i rozpięte drzewa Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja.
Zależności funkcyjne.
Kod Graya.
Hipoteza cegiełek, k-ramienny bandyta, minimalny problem zwodniczy
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
ANALIZA LEKSYKALNA. Zadaniem analizatora leksykalnego jest przetwarzanie danych pochodzących ze strumienia wejściowego a także rozpoznawanie ciągów znaków.
Przegląd podstawowych algorytmów
Algorytmy i struktury danych
Ocena przydatności algorytmu – czas działania (złożoność czasowa)
Badania operacyjne Wykład 5.
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
Języki i automaty część 3.
II. Matematyczne podstawy MK
Elżbieta Fiedziukiewicz
ALGORYTMY I STRUKTURY DANYCH
Model relacyjny.
Gramatyki i translatory
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Politechniki Poznańskiej
Algorytmika.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Algorytmy i Struktury Danych
Gramatyki Lindenmayera
Zbiory Co to jest zbiór? Nie martw się, jeśli nie potrafisz odpowiedzieć. Nie ma odpowiedzi na to pytanie.
opracowała: Anna Mikuć
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
System gromadzenia i udostępniania informacji o ruchu pojazdów i przesyłek w przedsiębiorstwie kurierskim Autor: Karol Podsiadło gr. OS1 Promotor: dr inż.
PLANARNOŚĆ i KOLOROWANIE MAP. Problem Jaka jest minimalna liczba kolorów, za pomocą których można pokolorować obszary województw na mapie Polski tak,
Algorytmy i Struktury Danych Grafy
ANALIZA SKŁADNIOWA.
Drogi i cykle Eulera w grafach nieskierowanych
Złożoność obliczeniowa algorytmów
Systemy wspomagające dowodzenie twierdzeń
Wstęp do programowania Wykład 4
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Wstęp do programowania Wykład 1
Wstęp do programowania Wykład 9
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Matematyka przed egzaminem czyli samouczek dla każdego
Jak za pomocą trzciny i drzewa przyspieszyć działanie programów komputerowych Maurycy Piecha.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

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)

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.

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

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}

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

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

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.

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

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