Σχεδίαση και Ανάλυση Αλγορίθμων

Σχετικά έγγραφα
Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Σχεδίαση & Ανάλυση Αλγορίθμων

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Υπολογιστική Πολυπλοκότητα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Αλγόριθµοι και Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα

Κλάση NP, NP-Complete Προβλήματα

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

Αλγόριθμοι και Πολυπλοκότητα

Σχεδίαση και Ανάλυση Αλγορίθμων

Μη Ντετερμινισμός και NP-Πληρότητα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

Δομές Δεδομένων και Αλγόριθμοι

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Προσεγγιστικοί Αλγόριθμοι

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

Θεωρία Υπολογισμού και Πολυπλοκότητα

Μη Ντετερμινισμός και NP-Πληρότητα

για NP-Δύσκολα Προβλήματα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

4.3 Ορθότητα και Πληρότητα

Σχεδίαση & Ανάλυση Αλγορίθμων

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Δυναμικός Προγραμματισμός

Σχεδίαση & Ανάλυση Αλγορίθμων

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Προσεγγιστικοί Αλγόριθμοι

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Κλάσεις Πολυπλοκότητας

Chapter 7, 8 : Time, Space Complexity

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Ασυμπτωτικός Συμβολισμός

Δυναμικός Προγραμματισμός

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Λύσεις 4ης Σειράς Ασκήσεων

Ασυμπτωτικός Συμβολισμός

NP-complete problems. IS, 4-Degree IS,CLIQUE, NODE COVER, MAX CUT, MAX BISECTION, BISECTION WIDTH. NP-complete problems 1 / 30

Υπολογιστικό Πρόβληµα

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

Μη Ντετερμινισμός και NP-Πληρότητα

Chapter 9: NP-Complete Problems

υναμικός Προγραμματισμός

Γράφοι: κατευθυνόμενοι και μη

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Θεωρία Υπολογισμού και Πολυπλοκότητα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Δυναμικός Προγραμματισμός

Chapter 7, 8 : Completeness

Υπολογιστική Πολυπλοκότητα

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

υναμικός Προγραμματισμός

Δομές Δεδομένων & Αλγόριθμοι

ILP-Feasibility conp

Ασυμπτωτικός Συμβολισμός

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

HY118-Διακριτά Μαθηματικά. Τι είδαμε την προηγούμενη φορά. Θεωρία γράφων / γραφήματα. 25 -Γράφοι. ΗΥ118, Διακριτά Μαθηματικά Άνοιξη 2017

Αλγόριθμοι και Πολυπλοκότητα

Φροντιστήριο 11 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι είδαμε την προηγούμενη φορά. Συνεκτικότητα. 25 -Γράφοι

Αλγόριθμοι και Πολυπλοκότητα

Κατανεμημένα Συστήματα Ι

υναμικός Προγραμματισμός

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Σειρά Προβλημάτων 5 Λύσεις

Εισαγωγή στην Επιστήμη των Υπολογιστών

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων / γραφήματα. Τι έχουμε δει μέχρι τώρα. Υπογράφημα. 24 -Γράφοι

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

viii 20 Δένδρα van Emde Boas 543

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

Σχεδίαση & Ανάλυση Αλγορίθμων

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Σειρά Προβλημάτων 5 Λύσεις

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Συντομότερες Διαδρομές

Τεχνικές Αποδείξεις Κάτω Φραγμάτων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

HY118-Διακριτά Μαθηματικά

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Ασκήσεις μελέτης της 8 ης διάλεξης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

ΔΥΣΚΟΛΙΑ ΣΤΗΝ ΠΡΟΣΕΓΓΙΣΙΜΟΤΗΤΑ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Transcript:

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 10.0 Μετασχηματισμοί Υπολογιστικών Προβλημάτων Αναγωγές NP-πληρότητα Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Αναγωγές Στο Βασίλειο των Ζώων = Κοινωνικά ζώα Φροντίζουν τα μικρά τους Έχουν τρίχωμα Δαρβίνος Πράγματα φαινομενικά εντελώς διαφορετικά, συχνά Αποδεικνύεται ότι είναι ΙΔΙΑ, πέρα από επιφανειακές διαφορές

Αναγωγές Στο Βασίλειο των Προβλημάτων Μέγιστη Αύξουσα Υπακολουθία Υπολογισμός Μέγιστη Διαδρομή σε DAG Είδαμε με ποιο τρόπο ένας Αλγόριθμος για τον υπολογισμό της Μέγιστης Διαδρομής σε DAG μπορεί, με εκπληκτικό τρόπο, να χρησιμοποιηθεί για την εύρεση μιας Μέγιστης Αύξουσας Υπακολουθίας

Αναγωγές Στο Βασίλειο των Προβλημάτων Μέγιστη Αύξουσα Υπακολουθία Το Πρόβλημα της Μέγιστης Αύξουσας Υπακολουθίας Υπολογισμός Μέγιστη Διαδρομή σε DAG ανάγεται στο Πρόβλημα της Μέγιστης Διαδρομής σε DAG

Αναγωγές ΜΕΓΙΣΤΗ-ΑΥΞΟΥΣΑ-ΥΠΑΚΟΛΟΥΘΙΑ ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ-DAG Α = (5, 2, 8, 6, 3, 6, 9, 7) 5 2 8 6 3 6 9 Δημιουργούμε ένα G με ΟΛΕΣ τις επιτρεπτές μεταβάσεις 7

Αναγωγές ΜΕΓΙΣΤΗ-ΑΥΞΟΥΣΑ-ΥΠΑΚΟΛΟΥΘΙΑ ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ-DAG Α = (5, 2, 8, 6, 3, 6, 9, 7) 5 2 8 Λύση: (2, 3, 6, 7) 6 3 6 9 7 Υπάρχει 1-1 αντιστοιχία ανάμεσα στις αύξουσες υπακολουθίες και στις διαδρομές του DAG

Αναγωγές Στο Βασίλειο των Προβλημάτων Τέλεια Αντιστοίχιση Υπολογισμός Μέγιστη Ροή Πρόσφατα είδαμε ότι: Μπορούμε να «ανάγουμε» το πρόβλημα της Τέλειας Αντιστοίχισης σε πρόβλημα Μεγίστης Ροής

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ ΑΓΟΡΙΑ ΚΟΡΙΤΣΙΑ Άγγελος Δανάη Γιάννης Ιωσήφ Δημήτρης Άννα Μαρία Κατερίνα Πρόβλημα: Είναι δυνατόν να επιλεγούν ζευγάρια έτσι ώστε: όλοι να έχουν από ένα μόνο σύντροφο, και να είναι κάποιος που συμπαθούν

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ Με όρους Γραφοθεωρίας το πρόβλημα διατυπώνεται ως εξής: Υπάρχει μια τέλεια αντιστοίχιση (perfect matching) Αναγωγή Άγγελος Δανάη Γιάννης Άννα Ιωσήφ Μαρία Δημήτρης Κατερίνα

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ Εισάγουμε 2 κόμβους s και t Εισάγουμε κατευθύνσεις και ορίζουμε το δίκτυο Δ S Άγγελος Δανάη Γιάννης Άννα Ιωσήφ Μαρία Δημήτρης Κατερίνα Δ t

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ Δίνουμε σε κάθε ακμή χωρητικότητα 1 Και τότε, υπάρχει τέλεια αντιστοίχιση εάν-ν το δίκτυο Δ δίνει μια ροή f με μέγεθος f = πλήθος των ζευγαριών 1 S 1 1 1 Άγγελος 1 Γιάννης 1 Ιωσήφ Δημήτρης Δ Δανάη 1 Άννα Μαρία 1 1 1 Κατερίνα 1 1 t 1

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ Υπολογίζουμε μια Μέγιστη Ροή στο δίκτυο Δ Άγγελος 1 S 1 Δ Δανάη 1 Γιάννης Άννα 1 Ιωσήφ Μαρία Δημήτρης Κατερίνα 1 1 1 t 1

Αναγωγές ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ Υπολογίζουμε μια Μέγιστη Ροή στο δίκτυο Δ Και παίρνουμε μια τέλεια αντιστοίχιση Άγγελος Δανάη Γιάννης Άννα Ιωσήφ Μαρία Δημήτρης Κατερίνα Ιδιότητα: Εάν όλες οι χωρητικότητες των ακμών είναι ακέραιες, τότε η βέλτιστη ροή είναι ακέραιη

Αναγωγές Στο Βασίλειο των Προβλημάτων Μέγιστη Διαδρομή σε DAG Υπολογισμός Ελάχιστη Διαδρομή σε DAG Longest-Path(G) for each edge (u,v) Ε(G) w(u,v) -w(u,v) return Shortest-Path(G) Αλγόριθμος Dijkstra

Αναγωγές Μια πιο Τυπική Θεώρηση Λέμε ότι Α Β εάν μπορούμε να διατυπώσουμε έναν Αλγόριθμο πολυωνυμικού χρόνου για την επίλυση του Α χρησιμοποιώντας έναν Αλγόριθμο για την επίλυση του Β Αλγόριθμος για το Α x προεπεξεργασία y Αλγόριθμος για το Β Β(y) μετεπεξεργασία Α(x) Σημείωση: Στην πραγματικότητα, μπορεί να έχουμε ή και να μην έχουμε αλγόριθμο για το Β

Αναγωγές Γιατί Αναγωγές Αυξάνουν την ισχύ των αλγορίθμων : εάν Α Β και έχουμε έναν αλγόριθμο για το Β, τότε μπορούμε να τον χρησιμοποιήσουμε για να λύσουμε το πρόβλημα Α Επιτρέπουν συγκρίσεις και κατηγοριοποιήσεις : μια αναγωγή Α Β μας επιτρέπει να συγκρίνουμε τις πολυπλοκότητες των Α και Β και να κατηγοριοποιήσουμε αυτά ανάλογα με τη δυσκολία τους Αναγωγές : ΜΕΓΙΣΤΗ-ΑΥΞΟΥΣΑ-ΥΠΑΚΟΛΟΥΘΙΑ ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ-DAG ΕΛΑΧΙΧΤΗ-ΔΙΑΔΡΟΜΗ-DAG ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ-DAG

Αναγωγές Γιατί Αναγωγές Αυξάνουν την ισχύ των αλγορίθμων : εάν Α Β και έχουμε έναν αλγόριθμο για το Β, τότε μπορούμε να τον χρησιμοποιήσουμε για να λύσουμε το πρόβλημα Α Επιτρέπουν συγκρίσεις και κατηγοριοποιήσεις : μια αναγωγή Α Β μας επιτρέπει να συγκρίνουμε τις πολυπλοκότητες των Α και Β και να κατηγοριοποιήσουμε αυτά ανάλογα με τη δυσκολία τους Γενικά, διευρύνουν : την αλγοριθμική μας ικανότητα την επιστημονική μας σκέψη το πεδίο γνώσης της επιστήμης μας

Αναγωγές Γιατί Αναγωγές Ειδικά, οι αναγωγές είναι χρήσιμες: Για επινόηση και δημιουργία ΝΕΩΝ αλγορίθμων για ΝΕΑ προβλήματα (άνω φράγματα) Για απόδειξη ότι ΚΑΠΟΙΑ προβλήματα δεν μπορούν να εκτελεστούν γρηγορότερα από ένα πολυωνυμικό χρόνο T(n) Ή για εύρεση ενδείξεων ότι δεν υπάρχουν αποτελεσματικοί αλγόριθμοι για ΚΑΠΟΙΑ άλλα προβλήματα (κάτω φράγματα)

Αναγωγές Άνω και Κάτω Φράγματα Έστω η αναγωγή Α Β Άνω φράγμα Εάν υπάρχει αλγόριθμος πολυωνυμικού χρόνου για το Β, τότε υπάρχει ένας και για το Α Το Α είναι το πολύ ίδιας δυσκολίας με το Β Κάτω φράγμα Αντίστροφα, εάν δεν υπάρχει πολυωνυμικός αλγόριθμος για το Α, τότε δεν υπάρχει ούτε για το Β Το Β είναι τουλάχιστον ίδιας δυσκολίας με το Α

Χρήση Αναγωγών Επίλυση Προβλημάτων Επίλυση Γρίφων Απόδειξη Κάτω Φραγμάτων Χρήση Αλγοριθμικών Τεχνικών Επινόηση Νέων Αλγορίθμων

Χρήση Αναγωγών Επίλυση Προβλημάτων Επίλυση Γρίφων Απόδειξη Κάτω Φραγμάτων 6 Χρήση Αλγοριθμικών Τεχνικών Επινόηση Νέων Αλγορίθμων 9 3 2 Εύρεση Κύκλου Ελάχιστου Κόστους ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ ΕΛΑΧΙΣΤΕΣ-ΔΙΑΔΡΟΜΕΣ 8

Πρόβλημα 1 Εύρεση Κύκλου Ελάχιστου Κόστους Έστω κατευθυνόμενο G = (V, E, w), w : E Το πρόβλημα ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ είναι το ακόλουθο: Βρες έναν κύκλο C, εάν υπάρχει, στο G με το Ελάχιστο Κόστος 6 9 3 2 8

Κύκλος Ελάχιστου Κόστους ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ ΕΛΑΧΙΣΤΕΣ-ΔΙΑΔΡΟΜΕΣ Υπάρχει απλός τρόπος αναγωγής αυτού του προβλήματος σε πρόβλημα Ελαχίστων Διαδρομών Βρες την ε.δ P1 : i j και την ε.δ P2 : j 6 9 i 3 2 8 Μια Πρώτη Σκέψη d(i,j) Κύκλος... ΝΑΙ Απλός Κύκλος... ΟΧΙ j i d(j,i)

Κύκλος Ελάχιστου Κόστους ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ ΕΛΑΧΙΣΤΕΣ-ΔΙΑΔΡΟΜΕΣ Υπάρχει απλός τρόπος αναγωγής αυτού του προβλήματος σε πρόβλημα Ελαχίστων Διαδρομών Βρες την ε.δ P1 : i j και την ε.δ P2 : j 6 9 i 3 2 8 Μια Πρώτη Σκέψη d(i,j) Κύκλος... ΝΑΙ Απλός Κύκλος... ΟΧΙ j i d(j,i)

Κύκλος Ελάχιστου Κόστους ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ ΕΛΑΧΙΣΤΕΣ-ΔΙΑΔΡΟΜΕΣ Υπάρχει απλός τρόπος αναγωγής αυτού του προβλήματος σε πρόβλημα Ελαχίστων Διαδρομών Βρες την ε.δ P1 : i j και την ε.δ w : j 6 9 i 3 2 8 Μια Λύση d(i,j) Κύκλος... ΝΑΙ Απλός Κύκλος... ΝΑΙ j i w(j,i)

Κύκλος Ελάχιστου Κόστους ΕΛΑΧΙΣΤΟΣ-ΚΥΚΛΟΣ ΕΛΑΧΙΣΤΕΣ-ΔΙΑΔΡΟΜΕΣ Για κάθε ζεύγος κόμβων (i,j) V Βρες την ε.δ P1 : i 6 j και d(i,j) 9 3 2 Έλεγξε εάν (j,i) είναι ακμή 8 Εάν (j,i) Ε τότε Cost(C1) = d(i,j) + w(j,i) 1 2 3 5 1 0 3-3 2-2 3 0-1 -1 3 6 0 5 3 2-1 -5 0-2 5 7 5 1 6 0 Πανζευκτικές Ελάχιστες Διαδρομές Floyd-Warshall

Χρήση Αναγωγών Επίλυση Προβλημάτων Επίλυση Γρίφων Απόδειξη Κάτω Φραγμάτων Χρήση Αλγοριθμικών Τεχνικών Επινόηση Νέων Αλγορίθμων Το Πρόβλημα του Βοσκού ΠΡΟΒΛΗΜΑ-ΒΟΣΚΟΥ ΠΡΟΒΛΗΜΑ-ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ

Πρόβλημα 2 Το Πρόβλημα του Βοσκού Ένας βοσκός θέλει να περάσει στην απέναντι όχθη ενός ποταμού έναν Λύκο, ένα Πρόβατο και ένα Λάχανο ή Χορτάρι Πως είναι δυνατόν ο βοσκός να τα περάσει απέναντι, έτσι ώστε να μην φάει το πρόβατο το χορτάρι, ή ο λύκος το πρόβατο κ.o.κ

Το Πρόβλημα του Βοσκού Ο Λύκος, το Πρόβατο και το Χορτάρι Στη Βάρκα: Βοσκός Βοσκός & Λύκος Βοσκός & Πρόβατο Βοσκός & Χορτάρι

Το Πρόβλημα του Βοσκού Καταστάσεις Μετάβασης 1 ΛΠΧ-Β 2 ΠΧ-Β Λ 3 ΛΧ-Β Π ΛΠ-Β Χ 5 Π-Β ΛΧ 6 ΛΧ Β-Π 7 Χ Β-ΛΠ 8 Π Β-ΛΧ 9 Λ Β-ΠΧ 10 Β-ΛΠΧ ΕΠΙΤΡΕΠΤΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΜΕΤΑΒΑΣΗΣ Χ Π Λ - Β Αρχική Κατάσταση Β Λ Π Χ Τελική Κατάσταση

Το Πρόβλημα του Βοσκού ΠΡΟΒΛΗΜΑ-ΒΟΣΚΟΥ ΠΡΟΒΛΗΜΑ-ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ 1 ΛΠΧ-Β 2 ΠΧ-Β Λ 3 ΛΧ-Β Π ΛΠ-Β Χ 5 Π-Β ΛΧ 6 ΛΧ Β-Π 7 Χ Β-ΛΠ 8 Π Β-ΛΧ 9 Λ Β-ΠΧ 10 Β-ΛΠΧ ΕΠΙΤΡΕΠΤΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΜΕΤΑΒΑΣΗΣ ΛΠΧ-Β ΛΠΧ B ΛΧ B-Π ΠΧ B-Λ ΛΠ B-Χ ΛΧ-Β Π Λ B-ΠΧ Χ B-ΛΠ ΛΠ-Β Χ ΠΧ-Β Λ Λ-B ΠΧ ΛΠ B-Χ Π B-ΛΧ Π-Β ΛΧ Β-ΛΠΧ ΠΧ B-Λ Χ-Β ΛΠ

Το Πρόβλημα του Βοσκού ΠΡΟΒΛΗΜΑ-ΒΟΣΚΟΥ ΠΡΟΒΛΗΜΑ-ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ DFS Γράφημα καταστάσεων ΛΠΧ-Β ΛΠΧ B Κόμβος Εκκίνησης ΛΠ B-Χ ΛΧ-Β Π ΛΠΧ-Β Κόμβος Πρόσβασης ΛΧ B-Π ΠΧ B-Λ Λ B-ΠΧ Χ B-ΛΠ ΛΠ-Β Χ ΠΧ-Β Λ Λ-B ΠΧ ΛΠΧ-Β ΛΠ B-Χ Π B-ΛΧ Π-Β ΛΧ Β-ΛΠΧ ΠΧ B-Λ Χ-Β ΛΠ

Το Πρόβλημα του Βοσκού ΠΡΟΒΛΗΜΑ-ΒΟΣΚΟΥ ΠΡΟΒΛΗΜΑ-ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ DFS Γράφημα καταστάσεων ΛΠΧ-Β ΛΠΧ B Κόμβος Εκκίνησης ΛΠ B-Χ ΛΧ-Β Π ΛΠΧ-Β Κόμβος Πρόσβασης ΛΧ B-Π ΠΧ B-Λ Λ B-ΠΧ Χ B-ΛΠ ΛΠ-Β Χ ΠΧ-Β Λ Λ-B ΠΧ ΛΠΧ-Β ΛΠ B-Χ Λύση Προβλήματος Προσβασιμότητας Π B-ΛΧ Π-Β ΛΧ Β-ΛΠΧ ΠΧ B-Λ Χ-Β ΛΠ

Το Πρόβλημα του Βοσκού ΠΡΟΒΛΗΜΑ-ΒΟΣΚΟΥ ΠΡΟΒΛΗΜΑ-ΠΡΟΣΒΑΣΙΜΟΤΗΤΑΣ DFS Γράφημα καταστάσεων Κόμβος Εκκίνησης ΛΠΧ-Β Κόμβος Πρόσβασης ΛΠΧ-Β ΛΧ B-Π ΛΧ-Β Π Λ B-ΠΧ ΛΠ-Β Χ ΛΠΧ-Β Π B-ΛΧ Λύση Προβλήματος Βοσκού Π-Β ΛΧ Β-ΛΠΧ

Χρήση Αναγωγών Επίλυση Προβλημάτων Επίλυση Γρίφων Απόδειξη Κάτω Φραγμάτων Χρήση Αλγοριθμικών Τεχνικών Επινόηση Νέων Αλγορίθμων Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ

Πρόβλημα 3 Κάτω Φράγμα για Κυρτό Περίβλημα Ερώτημα... Πόσο γρήγορα μπορώ να υπολογίσω το Κυρτό Περίβλημα N σημείων στο επίπεδο Αρκεί να βρω ένα πρόβλημα Α, με γνωστό ένα κάτω φράγμα υπολογισμού του, και να αναγάγω το Α στο Πρόβλημα του Κυρτού Περιβλήματος

Κάτω Φράγμα για Κυρτό Περίβλημα Ορισμοί Το κυρτό περίβλημα συνόλου σημείων του επιπέδου είναι το κυρτό πολύγωνο με το ελάχιστο εμβαδόν που περιλαμβάνει όλα τα δεδομένα σημεία

Κάτω Φράγμα για Κυρτό Περίβλημα Ορισμοί Το κυρτό περίβλημα συνόλου σημείων του επιπέδου είναι το κυρτό πολύγωνο με το ελάχιστο εμβαδόν που περιλαμβάνει όλα τα δεδομένα σημεία

Κάτω Φράγμα για Κυρτό Περίβλημα Ορισμοί ακμή

Κάτω Φράγμα για Κυρτό Περίβλημα Ορισμοί ακμή

Κάτω Φράγμα για Κυρτό Περίβλημα Ορισμοί όχι ακμή

Ορισμοί Κάτω Φράγμα για Κυρτό Περίβλημα

Ορισμοί Κάτω Φράγμα για Κυρτό Περίβλημα

Κάτω Φράγμα για Κυρτό Περίβλημα Ερώτημα... Πόσο γρήγορα μπορώ να υπολογίσω το Κυρτό Περίβλημα N σημείων στο επίπεδο

Κάτω Φράγμα για Κυρτό Περίβλημα Απόδειξη... ενός κάτω φράγματος για το Πρόβλημα του Κυρτού Περιβλήματος Απόδειξη με αναγωγή από το πρόβλημα της Ταξινόμησης Ν πραγματικών αριθμών Το πρόβλημα της Ταξινόμησης έχει πολυπλοκότητα χρόνου O(N logn) ΚΑΙ είναι γνωστό ένα κάτω φράγμα Ω(N logn) υπολογισμού του

Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ τα δεδομένα του προβλήματος ΤΑΞΙΝΟΜΗΣΗ (n στοιχεία που θέλουμε να ταξινομήσουμε) Έστω Κανόνας μετατροπής των δεδομένων σε δεδομένα εισόδου στο Πρόβλημα ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ: Για κάθε πραγματικό αριθμό ορίζουμε στο επίπεδο ένα σημείο

Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ Παραβολή n σημεία στο επίπεδο Η κατασκευή των n σημείων στο επίπεδο, από τους n αριθμούς, απαιτεί χρόνο Ο(n)

Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ Υπολογισμός

Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ Υπολογισμός Υπολογισμός Από παίρνουμε τα του συνόλου ταξινομημένα κατ αύξουσα τάξη σε χρόνο Ο(n)

Κάτω Φράγμα για Κυρτό Περίβλημα ΤΑΞΙΝΟΜΗΣΗ ΚΥΡΤΟ-ΠΕΡΙΒΛΗΜΑ Τότε, η Ταξινόμηση n αριθμών μπορεί να γίνει σε χρόνο: Έστω ότι ο υπολογισμός του Κυρτού Περιβλήματος ενός συνόλου n σημείων στο επίπεδο απαιτεί χρόνο Τ(n) Ο(n) + Τ(n) Όμως, είναι γνωστό ότι το πρόβλημα της Ταξινόμησης έχει κάτω φράγμα υπολογισμού: Ω(n logn) Θεώρημα: Ο υπολογισμός του Κυρτού Περιβλήματος ενός συνόλου n σημείων στο επίπεδο απαιτεί χρόνο Ω(n logn)

Χρήση Αναγωγών Επίλυση Προβλημάτων έξοδος Επίλυση Γρίφων AND Απόδειξη Κάτω Φραγμάτων Χρήση Αλγοριθμικών Τεχνικών NOT OR Επινόηση Νέων Αλγορίθμων OR AND NOT Αποτίμηση Κυκλώματος ΤΙΜΗ-ΚΥΚΛΩΜΑΤΟΣ LP true false true

Πρόβλημα Αποτίμηση Κυκλώματος έξοδος Μας δίδεται ένα λογικό κύκλωμα (Boolean circuit), δηλαδή ένα DAG, με πύλες των ακόλουθων τύπων: AND πύλες ΕΙΣΟΔΟΥ (input gates) με βαθμό εισόδου 0 και τιμή true ή false NOT πύλες AND και OR OR AND πύλες ΝΟΤ Θέλουμε την αποτίμηση της εξόδου του κυκλώματος σε τιμή true OR true false NOT true

Αποτίμηση Κυκλώματος ΤΙΜΗ-ΚΥΚΛΩΜΑΤΟΣ LP έξοδος AND Υπάρχει ένας απλός - αυτόματος τρόπος μετάφρασης αυτού του προβλήματος σε ένα Γραμμικό Πρόβλημα Δημιουργία μιας μεταβλητής xg για κάθε πύλη, μ.τ.π 0 xg 1 πύλη g true xg = 1 OR NOT AND true NOT OR false true g g g g false OR AND NOT xg = 0 h h xg xh xg xh xg xh + xh h h xg xh xg xh xg xh + xh - 1 h xg = 1- xh

Αποτίμηση Κυκλώματος ΤΙΜΗ-ΚΥΚΛΩΜΑΤΟΣ LP έξοδος AND Οι περιορισμοί αναγκάζουν όλες τις πύλες να πάρουν σωστές τιμές 0 για false και 1 για true Δεν χρειάζεται να μεγιστοποιήσουμε ή ελαχιστ/σουμε κάτι απλώς να πάρουμε την τιμή της μεταβλητής xο πύλη εξόδου πύλη g true xg = 1 OR NOT AND true NOT OR false true g g g g false OR AND NOT xg = 0 h h xg xh xg xh xg xh + xh h h xg xh xg xh xg xh + xh - 1 h xg = 1- xh

Χρήση Αναγωγών Επίλυση Προβλημάτων Επίλυση Γρίφων Απόδειξη Κάτω Φραγμάτων Χρήση Αλγοριθμικών Τεχνικών Επινόηση Νέων Αλγορίθμων Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson

Πρόβλημα 5 Ροές σε Δίκτυα Πρόβλημα Μετάφερε όσο το δυνατόν περισσότερο πετρέλαιο s t χωρίς να υπερβείς τη χωρητικότητα ce > 0 καμιάς ακμής Λύση Με αναγωγή σε πρόβλημα Γραμμικού Προγραμματισμού (LP) Αναθέσαμε τιμές ροών fe, e Ε, οι οποίες: ικανοποιούν ένα σύνολο γραμμικών περιορισμών και μεγιστοποιούν μια γραμμική αντικειμενική συνάρτηση.

Ροές σε Δίκτυα ΜΕΓΙΣΤΗ-ΡΟΗ LP Στο δίκτυο του σχήματος, το LP ζητά να μεγιστοποιήσει την παράσταση: max fsa + fsb + fsc με 27 περιορισμούς: 11 για μη-αρνητικότητα (όπως fsa 0) 11 για χωρητικότητα (όπως fsa 3) 5 για διατήρηση της ροής σε κάθε κόμβο u V-{s, t} (όπως fsc + fdc = fce) Ο αλγόριθμος Simplex επιλύει το πρόβλημα πολύ γρήγορα στην πράξη δίνοντας ροή 7 που είναι πράγματι βέλτιστη

Ροές σε Δίκτυα ΜΕΓΙΣΤΗ-ΡΟΗ LP Με την αναγωγή που δώσαμε, τι πετύχαμε Πετύχαμε να λύσουμε «αποτελεσματικά» το πρόβλημα της μεγίστης ροής με LP Αποκτήσαμε «στοιχεία» και «έμπνευση» για το σχεδιασμό άμεσων αλγορίθμων (direct max-flow algorithms) Ας έρθουμε να σχεδιάσουμε έναν άμεσο αλγόριθμο για το πρόβλημα της μεγίστης ροής (direct max-flow algorithms)

Ροές σε Δίκτυα Πρώτες Παρατηρήσεις Πως συμπεριφέρεται (διαισθητικά) ο αλγόριθμος Simplex κάνει τοπικές κινήσεις στην επιφάνεια μιας κυρτής εφικτής περιοχής, βελτιώνοντας διαδοχικά την αντικειμενική συνάρτηση, μέχρι τελικά να φθάσει στη βέλτιστη λύση Στοιχειώδης ερμηνεία της συμπεριφοράς του Simplex για τον υπολογισμό της max Ροής : Ξεκινάει αρχικά με μηδενική ροή Επανάληψη: επιλέγει κατάλληλη διαδρομή P : s t, και αυξάνει τη ροή κατά μήκος των ακμών της P όσο το δυνατόν περισσότερο

Ροές σε Δίκτυα Ιδιότητες Ροών 10/12 13/20 10/16 Κατευθυνόμενο γράφημα 9 3/7 / 7/13 7/1 Συνάρτηση χωρητικότητας Συμβολισμός a/b Η ακμή e = (y, z) του δικτύου έχει: a : ροή fe = f(y, z) = 7 b : χωρητικότητα ce = c(y, z) = 1

Ροές σε Δίκτυα Ιδιότητες Ροών 10/12 13/20 10/16 Κατευθυνόμενο γράφημα 9 3/7 / 7/13 7/1 Ροή δικτύου: Συνάρτηση με τις ακόλουθες ιδιότητες: Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής: για κάθε ζεύγος για κάθε ζεύγος

Ροές σε Δίκτυα Ιδιότητες Ροών 10/12 13/20 10/16 Κατευθυνόμενο γράφημα 9 3/7 / 7/13 7/1 Τιμή ροής Συνολική εκροή από τον κόμβο αφετηρίας s Π.χ. Αλγόριθμος Μέγιστης Ροής Θέλουμε να βρούμε μια ροή σε ένα δίκτυο με Μέγιστη Τιμή

Ροές σε Δίκτυα 12 Στοιχεία Αλγόριθμου 20 16 Αυξητικές Διαδρομές Υπολοιπόμενα Δίκτυα 9 7 13 1 Τομές 12 Αυξητική Διαδρομή P : s t 20 16 Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής : 9 13 7 1

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 9 7 13 1 0/12 12 0/20 0/16 0/ 0/9 0/13 0/7 0/ 0/1 Μηδενική ροή 20 16 9 7 13 1 Αυξητική Διαδρομή P : s t

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 9 7 13 1 /12 12 0/20 /16 0/ /9 0/13 20 16 0/7 / /1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 9 7 13 1 Αυξητική Διαδρομή P : s t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 12 0/20 /16 0/ /9 0/13 0/7 / /1 Πως συνεχίζω 20 16 9 7 13 1 Επιλέγω αυξητική διαδρομή P : s t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 0/20 /16 0/ /9 0/13 12 20 16 0/7 / /1 Αύξηση της ροής f κατά 12 μονάδες στις ακμές της P 9 13 7 1 Εάν επιλέξω την P = (s, x, w, t)

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 12 0/20 /16 0/ /9 0/13 0/7 / /1 20 16 9 13 7 1 Αύξηση της ροής f κατά μονάδες στις ακμές της P Εάν επιλέξω την P = (s, y, z, t)

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 12 0/20 /16 0/ /9 0/13 0/7 / /1 20 16 Χμμ... Πως συνεχίσω 9 13 7 1

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου Ορίζουμε δύο τύπους ακμών: /12 /16 0/ /9 0/13 /1 Ιδέα 0/20 1. Η ακμή (u, v) υπάρχει στο δίκτυο, και έχει ακόμα υπολειπόμενη χωρητικότητα / 2. Η αντίστροφη ακμή (v, u) δεν υπάρχει στο αρχικό δίκτυο, και υπάρχει κάποια ροή σε αυτή 0/7

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου Εάν η τρέχουσα ροή είναι f, τότε: /12 0/20 /16 0/ /9 0/13 0/7 1. Η ακμή (u, v) υπάρχει στο δίκτυο, και έχει ακόμα υπολειπόμενη χωρητικότητα / /1 Ιδέα 2. Η αντίστροφη ακμή (v, u) δεν υπάρχει στο δίκτυο, και υπάρχει κάποια ροή σε αυτή

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου Παράδειγμα: /12 0/20 /16 0/ /9 0/13 0/7 / /1 Υπολειπόμενη χωρητικότητα 5/8 3 5 Ιδέα

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 8 0/20 /16 0/ /9 0/13 0/7 / /1 Τώρα ξέρω πως να συνεχίζω 13 20 12 5 7 10 Δίκτυο Υπολοίπων ή υπολειπόμενο δίκτυο

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου /12 8 0/20 /16 0/ /9 0/13 0/7 / /1 13 20 12 5 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 8 /20 /16 / /9 /13 0/7 / /1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 13 20 12 5 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 /20 /16 / /9 0/7 16 8 12 5 /13 / /1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 9 7 10 Ενημέρωση υπολειπόμενου δικτύου

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 /20 /16 / /9 0/7 16 8 12 5 /13 / /1 9 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 8/20 8/16 0/ 0/9 0/7 16 8 12 5 /13 / /1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 9 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 8/20 8/16 0/ 0/9 12 8 8 8 0/7 8 9 /13 / /1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 9 7 10 Ενημέρωση υπολειπόμενου δικτύου

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 8/20 8/16 0/ 0/9 12 8 8 8 0/7 8 9 /13 / /1 9 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 15/20 8/16 0/ 0/9 12 8 8 8 7/7 8 9 11/13 / 11/1 Αύξηση της ροής f κατά 7 μονάδες στις ακμές της P 9 7 10 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 15/20 8/16 0/ 0/9 5 8 8 8 7/7 15 9 11 11/13 / 11/1 Αύξηση της ροής f κατά 7 μονάδες στις ακμές της P 2 7 11 3 Ενημέρωση υπολειπόμενου δικτύου

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 8/12 15/20 8/16 0/ 0/9 5 8 8 8 7/7 15 9 11 11/13 / 11/1 2 7 11 3 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 12/12 19/20 12/16 0/ 0/9 5 8 8 8 7/7 15 9 11 11/13 / 11/1 Αύξηση της ροής f κατά μονάδες στις ακμές της P 2 7 11 3 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 12/12 19/20 12/16 0/ 0/9 1 12 12 7/7 19 9 11 11/13 / 11/1 2 7 11 3 Ενημέρωση υπολειπόμενου δικτύου

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 12/12 19/20 12/16 0/ 0/9 1 12 12 7/7 19 9 11 11/13 / 11/1 Δεν υπάρχει 2 7 11 3 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα Σκιαγράφηση Αλγόριθμου 12/12 19/20 12/16 0/ 0/9 1 12 12 7/7 19 9 11 11/13 / 11/1 Έχω την λύση 2 7 11 3 Επιλέγω αυξητική διαδρομή P : s στο υπολειπόμενο δίκτυο t

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 12/12 9 7 19/20 12/16 13 0/ 0/9 11/13 7/7 1 / 11/1 Αρχικό δίκτυο Τιμή της μέγιστης ροής του δικτύου: = 23

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 12/12 9 7 19/20 12/16 13 0/ 0/9 11/13 7/7 1 / 11/1 Αρχικό δίκτυο Τιμή της μέγιστης ροής του δικτύου: = 23 Επαλήθευση Υπολοιπόμενες χωρητικότητες:,,, 7,

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 12/12 9 7 19/20 12/16 13 0/ 0/9 11/13 7/7 1 / 11/1 Αρχικό δίκτυο Τιμή της μέγιστης ροής του δικτύου: = 23 Επαλήθευση Υπολοιπόμενες χωρητικότητες:,,, 7,

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 12/12 9 7 19/20 12/16 13 0/ 0/9 11/13 7/7 1 / 11/1 Αρχικό δίκτυο Τιμή της μέγιστης ροής του δικτύου: = 23 Επαλήθευση Υπολοιπόμενες χωρητικότητες:,,, 7,

Ροές σε Δίκτυα 12 Σκιαγράφηση Αλγόριθμου 20 16 12/12 9 7 19/20 12/16 13 0/ 0/9 11/13 7/7 1 Αρχικό δίκτυο / 11/1 Τιμή της μέγιστης ροής του δικτύου: = 23 Αλγόριθμος των Ford-Fulkerson 1956

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson αύξηση της ροής κατά 1 μονάδα 1. Θέτουμε τη ροή f ίση με 0 2. Ενόσω υπάρχει αυξητική διαδρομή P στο Gf 3.. αυξάνουμε τη ροή f κατά μήκος της διαδρομής P Επιστροφή f χρόνος για την εύρεση και επεξεργασία της αυξητικής διαδρομής Ανάλυση: Υποθέτουμε ακέραιες χωρητικότητες. Τότε ο χρόνος εκτέλεσης είναι ροής. όπου η τιμή της μέγιστης

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 0/1000 0/1000 1000 0/1 0/1000 1 0/1000 Δίκτυο 1000 1000 1000 Υπολειπόμενο δίκτυο

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 0/1000 0/1000 1000 0/1 0/1000 1 0/1000 Δίκτυο 1000 1000 1000 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 0/1000 1/1000 1000 1/1 0/1000 1 1/1000 Δίκτυο 1000 1000 1000 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 0/1000 1/1000 1000 999 1 1/1 1 1 0/1000 1/1000 Δίκτυο 1000 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 0/1000 1/1000 1000 999 1 1/1 1 1 0/1000 1/1000 Δίκτυο 1000 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 1/1000 1/1000 1000 999 1 0/1 1 1 1/1000 1/1000 Δίκτυο 1000 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 1/1000 1/1000 999 999 1 0/1 1 1/1000 1/1000 Δίκτυο 999 1 1 1 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 1/1000 1/1000 999 999 1 0/1 1 1/1000 1/1000 Δίκτυο 999 1 1 1 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 1/1000 2/1000 999 999 1 1/1 1 1/1000 2/1000 Δίκτυο 999 1 1 1 999 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Αλγόριθμος των Ford-Fulkerson Μια κακή περίπτωση 1/1000 2/1000 999 998 2 1/1 1 1/1000 2/1000 Δίκτυο κ.ο.κ 999 1 1 2 998 Υπολειπόμενο δίκτυο Υπολειπόμενη χωρητικότητα αυξητικής διαδρομής = 1

Ροές σε Δίκτυα Ένα Πιστοποιητικό Βελτιστότητας Στη μέθοδο των Ford-Fulkerson αυξάνουμε τη ροή κατά μήκος αυξητικών διαδρομών έως να βρεθεί μια μέγιστη ροή 12 20 16 9 13 Πως γνωρίζουμε ότι πράγματι έχουμε βρει μια μέγιστη ροή 7 1 Δίκτυο Τιμή της μέγιστης ροής του δικτύου: Υπάρχει ροή με f > 23 = 23

Ροές σε Δίκτυα Ένα Πιστοποιητικό Βελτιστότητας Στη μέθοδο των Ford-Fulkerson αυξάνουμε τη ροή κατά μήκος αυξητικών διαδρομών έως να βρεθεί μια μέγιστη ροή 12 20 16 9 13 Την απάντηση δίνει το 1 Δίκτυο Θεώρημα Μέγιστης Ροής Ελάχιστης Τομής 7

Ροές σε Δίκτυα Ένα Πιστοποιητικό Βελτιστότητας Τομή Δικτύου Ροής : 12/12 Μια διαμέριση των κόμβων του δικτύου σε σύνολα και τέτοια ώστε και 0/ 0/9 11/13 : : 7/7 / 11/1 Καθαρή ροή δια μέσου της τομής Χωρητικότητα της τομής 19/20 12/16

Ροές σε Δίκτυα Θεώρημα (Μέγιστης ροής Ελάχιστης τομής) Το μέγεθος της μέγιστης ροής σε ένα δίκτυο ισούται με την χωρητικότητα της ελάχιστης τομής (S, T) 12 12 20 16 20 16 7 9 13 9 13 1 1 26 7 23

Ροές σε Δίκτυα Θεώρημα (Μέγιστης ροής Ελάχιστης τομής) Οι ακόλουθες προτάσεις είναι ισοδύναμες: 1. Η είναι μια μέγιστη ροή στο 2. Δεν υπάρχει αυξητική διαδρομή στο υπολειπόμενο δίκτυο 3. Υπάρχει τομή του τέτοια ώστε 12 5 12 12 15 9 11 2 20 16 11 9 7 13 7 3 1 23

Προβλήματα Εύκολα, Δύσκολα και Μη-επιλύσιμα Στο Βασίλειο των Προβλημάτων P NP POLΥNOMIAL ΝP-πλήρη ΝP-δύσκολα EXPOΝENTIAL ΜΗ-ΕΠΙΛΥΣΙΜΑ

Προβλήματα Εύκολα, Δύσκολα και Μη-επιλύσιμα Τι αλγορίθμους έχουμε δει έως τώρα P NP POLΥNOMIAL ΝP-πλήρη ΝP-δύσκολα EXPOΝENTIAL ΜΗ-ΕΠΙΛΥΣΙΜΑ

Προβλήματα Αναζήτησης Τι αλγορίθμους έχουμε δει έως τώρα Αναπτύξαμε αλγορίθμους για να βρίσκουμε: ελάχιστες διαδρομές, αντιστοιχίσεις σε διμερή γραφήματα, μέγιστες ροές σε δίκτυα, και γενικά, για να βρίσκουμε βέλτιστες (optimal) λύσεις με χρήση έξυπνων αλγοριθμικών τεχνικών και αναγωγών Όλοι αυτοί οι αλγόριθμοι είναι αποδοτικοί (efficient) ο χρόνος εκτέλεσής τους T(n) είναι πολυωνυμική συνάρτηση του μεγέθους της εισόδου n (όπως n, n2, n3, )

Προβλήματα Αναζήτησης Τι αναζητούμε σε όλα αυτά τα Προβλήματα Σε όλα αναζητούμε μια λύση, για παράδειγμα: μια διαδρομή, ένα δένδρο, μια αντιστοίχιση, κλπ ανάμεσα σε ένα εκθετικό πλήθος λύσεων Πράγματι: n αγόρια μπορούν να αντιστοιχηθούν με n κορίτσια με n διαφορετικούς τρόπους ένα γράφημα τάξης n έχει nn-2 συνδετικά δένδρα ένα τυπικό γράφημα τάξης n έχει εκθετικό πλήθος διαδρομών από τον κόμβο s στον t.

Προβλήματα Αναζήτησης ΟΛΑ αυτά τα Προβλήματα Αναζήτησης μπορούν να λυθούν σε εκθετικό χρόνο Με τον έλεγχο όλων των υποψηφίων λύσεων, μία προς μία Όμως, ένας αλγόριθμος με εκθετική πολυπλοκότητα, όπως T(n) = 2n, είναι πρακτικά άχρηστος Τι Θέλουμε Έξυπνες και Πρωτότυπες Ιδέες για να παρακάμψουμε την Εξαντλητική Αναζήτηση

Προβλήματα Αναζήτησης Υπάρχουν Έξυπνες και Πρωτότυπες Ιδέες ΝΑΙ έχουμε δει αλγοριθμικές τεχνικές που «κατατροπώνουν» τον εφιάλτη της εκθετικότητας Άπληστη τεχνική Δυναμικός προγραμματισμός Γραμμικός Προγραμματισμός Κάποτε όμως έρχεται και η ώρα της Αποτυχίας

Προβλήματα Αναζήτησης Τι σημαίνει «Αποτυχία» Υπάρχουν κάποια «προβλήματα αναζήτησης» για τα οποία : δεν φαίνεται να υπάρχει αποτελεσματικός τρόπος επίλυσης Τι ξέρουμε για τα προβλήματα αυτά Οι ταχύτεροι αλγόριθμοι που γνωρίζουμε είναι όλοι εκθετικοί Ορίστε μερικά από αυτά...

Προβλήματα Αναζήτησης 1 Ικανοποιησιμότητα Πρόβλημα SAT Μας δίδεται ένας λογικός τύπος (Boolean formula) σε κανονική συζευκτική μορφή (CNF), όπως για παράδειγμα: (x y z) (x y) (y z) (z x) (x y z) και μας ζητείται είτε να βρούμε μια ικανοποιούσα ανάθεση τιμών αληθείας (satisfying truth assignment) ή να αναφέρουμε ότι δεν υπάρχει καμία Μια ικανοποιούσα ανάθεση τιμών αληθείας είναι μια ανάθεση τιμών true ή false σε κάθε μεταβλητή έτσι ώστε ο λογικός τύπος να είναι true

Προβλήματα Αναζήτησης 2 Το πρόβλημα του Περιοδεύοντος Πωλητή Πρόβλημα TSP Μας δίδεται ένα πλήρες έμβαρο γράφημα n κόμβων, καθώς και ένας προϋπολογισμός b, και μας ζητείται μια περιήγηση (tour), δηλαδή ένας κύκλος που διέρχεται από κάθε κόμβο μία μόνο φορά, με συνολικό κόστος το πολύ b ή να αναφέρουμε ότι δεν υπάρχει τέτοια περιήγηση Η βέλτιστη περιήγηση του παραδείγματος έχει κόστος 16

Προβλήματα Αναζήτησης 3 Ανεξάρτητα Σύνολα Γραφημάτων Πρόβλημα ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Μας δίδεται ένα γράφημα n κόμβων και ένας ακέραιος k, και μας ζητείται να βρούμε ένα σύνολο ΙS με k κόμβους οι οποίοι είναι ανεξάρτητοι (independent), δηλαδή ανά δύο δεν έχουν καμία ακμή μεταξύ τους, ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων Το πρόβλημα λύνεται αποδοτικά σε δένδρα, αλλά όχι σε γενικά γραφήματα

Προβλήματα Αναζήτησης Κάλυψη Γραφήματος με Κόμβους Πρόβλημα ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Μας δίδεται ένα γράφημα n κόμβων και ένας ακέραιος k, και μας ζητείται να βρούμε ένα σύνολο VC με k κόμβους οι οποίοι καλύπτουν κάθε ακμή, δηλαδή κάθε ακμή έχει τουλάχιστον ένα κόμβο της στο σύνολο VC, ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων Το πρόβλημα λύνεται αποδοτικά σε κάποιες κλάσεις γραφημάτων, αλλά όχι σε γενικά γραφήματα

Προβλήματα Αναζήτησης 5 Κλίκες Γραφημάτων Πρόβλημα ΚΛΙΚΑ Μας δίδεται ένα γράφημα n κόμβων και ένας ακέραιος k, και μας ζητείται να βρούμε ένα σύνολο CL με k κόμβους οι οποίοι έχουν πλήρη σύνδεση, δηλαδή ανά δύο έχουν ακμή μεταξύ τους, ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων Το πρόβλημα λύνεται αποδοτικά σε κάποιες κλάσεις γραφημάτων, αλλά όχι σε γενικά γραφήματα

Προβλήματα Αναζήτησης 6 Μέγιστες Διαδρομές Πρόβλημα ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ Μας δίδεται ένα έμβαρο γράφημα n κόμβων (με μη-αρνητικά βάρη) και δύο διακριτοί κόμβοι s και t μαζί με έναν ακέραιο k, και μας ζητείται να βρούμε μια διαδρομή Δ από τον s στον t με συνολικό κόστος τουλάχιστον k ή να αναφέρουμε ότι δεν υπάρχει τέτοια διαδρομή t s Για να αποφύγουμε τετριμμένες λύσεις απαιτούμε διαδρομή να είναι απλή, δηλαδή να μην περιέχει επαναλαμβανόμενους κόμβους η

Κλάσεις Προβλημάτων Δύσκολα & Εύκολα Προβλήματα Δύσκολα Προβλήματα 3SAT TSP ΜΕΓΙΣΤΗ ΔΙΑΔΡΟΜΗ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ILP ΔΙΑΔΡΟΜΗ HAMILTON Εύκολα Προβλήματα 2SAT MST EΛΑΧΙΣΤΗ ΔΙΑΔΡΟΜΗ ΜΟΝΑΔΙΑΙΟ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ΣΕ ΔΕΝΔΡΑ LP ΔΙΑΔΡΟΜΗ EULER

Κλάσεις Προβλημάτων Δύσκολα & Εύκολα Προβλήματα Δύσκολα Προβλήματα 3SAT TSP ΜΕΓΙΣΤΗ ΔΙΑΔΡΟΜΗ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ILP ΔΙΑΔΡΟΜΗ HAMILTON Εύκολα Προβλήματα Όλα τα προβλήματα εδώ λύνονται αποδοτικά με αλγορίθμους: Αναζήτησης σε γραφήματα Άπληστων τεχνικών Ροών Δυναμικού προγραμματισμού Γραμμικού προγραμματισμού

Κλάσεις Προβλημάτων Δύσκολα & Εύκολα Προβλήματα Δύσκολα Προβλήματα Θλιβερή Αντίθεση Τα προβλήματα εδώ είναι όλα δύσκολα, όλα για τον ίδιο λόγο Στη βάση τους είναι όλα το ίδιο πρόβλημα με διαφορετικές μεταμφιέσεις Εύκολα Προβλήματα Όλα τα προβλήματα εδώ λύνονται αποδοτικά με αλγορίθμους: Αναζήτησης σε γραφήματα Άπληστων τεχνικών Ροών Δυναμικού προγραμματισμού Γραμμικού προγραμματισμού

Κλάσεις Προβλημάτων Δύσκολα & Εύκολα Προβλήματα Δύσκολα Προβλήματα Θλιβερή Αντίθεση Τα προβλήματα εδώ είναι όλα δύσκολα, όλα για τον ίδιο λόγο Στη βάση τους είναι όλα το ίδιο πρόβλημα NP-πλήρη Εύκολα Προβλήματα Όλα τα προβλήματα εδώ λύνονται αποδοτικά με αλγορίθμους: Αναζήτησης σε γραφήματα Άπληστων τεχνικών Ροών Δυναμικού προγραμματισμού Γραμμικού προγραμματισμού

Κλάσεις Προβλημάτων P και NP Γνωρίζουμε τι είναι ένα Πρόβλημα Αναζήτησης Χαρακτηριστικό: Μια προτεινόμενη λύση S μπορεί να ελεγχθεί γρήγορα για την ορθότητά της

Κλάσεις Προβλημάτων P και NP Γνωρίζουμε τι είναι ένα Πρόβλημα Αναζήτησης Υπάρχει αποδοτικός (πολυωνυμικός) αλγόριθμος ελέγχου C Ο χρόνος εκτέλεσης του αλγόριθμου C(I, S) φράσσεται από ένα πολυώνυμο ως προς Ι, όπου Ι ένα στιγμιότυπο του προβλήματος. Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που μια Λύση τους Ελέγχεται σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με NP

Κλάσεις Προβλημάτων P και NP Γνωρίζουμε τι είναι ένα Πρόβλημα Αναζήτησης NP Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που μια Λύση τους Ελέγχεται σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με NP

Κλάσεις Προβλημάτων P και NP ΠΟΛΛΑ πρόβλημα αναζήτησης NP γνωρίζουμε ότι μπορούν να λυθούν σε πολυωνυμικό χρόνο NP P Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που Μπορούν να Λυθούν σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με P

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα Πόσα ΠΟΛΛΑ προβλήματα αναζήτησης NP υπάρχουν που μπορούν να λυθούν σε πολυωνυμικό χρόνο NP P Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που Μπορούν να Λυθούν σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με P

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα Μήπως ΟΛΑ τα προβλήματα αναζήτησης NP μπορούν να λυθούν σε πολυωνυμικό χρόνο NP P Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που Μπορούν να Λυθούν σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με P

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα Μήπως ΟΛΑ τα προβλήματα αναζήτησης NP μπορούν να λυθούν σε πολυωνυμικό χρόνο P = NP Συμβολίζουμε την κλάση ΟΛΩΝ των ΠΡΟΒΛΗΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ που Μπορούν να Λυθούν σε ΠΟΛΥΩΝΥΜΙΚΟ ΧΡΟΝΟ με P

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα Ισχύει : NP P = NP ή P NP P Οι περισσότεροι ερευνητές πιστεύουν πως P NP Είναι δύσκολο να πιστέψουμε ότι μπορεί πάντοτε να αποφευχθεί η εκθετική αναζήτηση... Ή, ότι μια τεχνική θα «σπάσει» όλα αυτά τα δύσκολα προβλήματα Υπάρχει ένας καλός λόγος για να πιστεύουν οι μαθηματικοί ότι P NP

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα NP ή P NP Ισχύει : P = NP P Ωστόσο... Δεν υπάρχει απόδειξη και η απόδειξη φαίνεται, και ίσως είναι, εξαιρετικά δύσκολη

Κλάσεις Προβλημάτων Το Μεγάλο Ερώτημα Ισχύει : NP P = NP ή P NP P Το ερώτημα είναι ένα από τα βαθύτερα και σημαντικότερα αναπάντητα Million Dollar Question ερωτήματα της επιστήμης μας (Clay Institute millennium problems)

Κλάσεις Προβλημάτων Δύσκολα Προβλήματα Εάν ισχύει : P NP «Ζώνη Αβεβαιότητας» NP-P P NP Αύξουσα Δυσκολία

Κλάσεις Προβλημάτων Δύσκολα Προβλήματα Εάν ισχύει : P NP Τι ισχύει για τα προβλήματα αναζήτησης του αριστερού πίνακα 3SAT Υπάρχουν ΕΝΔΕΙΞΕΙΣ ότι αυτά είναι ιδιαίτερα προβλήματα και ότι δεν έχουν αποδοτικούς αλγορίθμους επίλυσης TSP ΜΕΓΙΣΤΗ ΔΙΑΔΡΟΜΗ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ILP ΔΙΑΔΡΟΜΗ HAMILTON Τέτοιες ενδείξεις παρέχουν οι Αναγωγές 2SAT MST EΛΑΧΙΣΤΗ ΔΙΑΔΡΟΜΗ ΜΟΝΑΔΙΑΙΟ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ΣΕ ΔΕΝΔΡΑ LP ΔΙΑΔΡΟΜΗ EULER

Κλάσεις Προβλημάτων Δύσκολα Προβλήματα Θα δείξουμε, μέσω αναγωγών, ότι : όλα τα προβλήματα του πίνακα, κατά μία έννοια (υπολογιστικά), είναι ακριβώς το ίδιο πρόβλημα είναι τα δυσκολότερα στην κλάση NP εάν ένα λυθεί πολυωνυμικά, τότε κάθε πρόβλημα στην NP λύνεται πολυωνυμικά 3SAT TSP ΜΕΓΙΣΤΗ ΔΙΑΔΡΟΜΗ ΣΑΚΙΔΙΟ ΑΝΕΞΑΡΤΗΤΟ ΣΥΝΟΛΟ ILP ΔΙΑΔΡΟΜΗ HAMILTON Έτσι, εάν πιστεύουμε ότι P NP τότε όλα τα προβλήματα του πίνακα είναι δύσκολα

Κλάσεις Προβλημάτων Πάλι Αναγωγές Ας θυμηθούμε... οι αναγωγές εκφράζουν ένα πρόβλημα αναζήτησης σε κάποιο άλλο Α Β Αλγόριθμος για το Α x προεπεξεργασία y Αλγόριθμος για το Β ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ ΤΙΜΗ-ΚΥΚΛΩΜΑΤΟΣ LP Β(y) μετεπεξεργασία Α(x)

Κλάσεις Προβλημάτων Πάλι Αναγωγές Ας θυμηθούμε... έως τώρα, ο σκοπός της αναγωγής ήταν σαφής και έντιμος Α Β γνωρίζουμε έναν αποδοτικό αλγόριθμο για το Β, και τον χρησιμοποιούμε για να λύσουμε αποδοτικά το πρόβλημα Α ΤΕΛΕΙΑ-ΑΝΤΙΣΤΟΙΧΙΣΗ ΜΕΓΙΣΤΗ-ΡΟΗ ΤΙΜΗ-ΚΥΚΛΩΜΑΤΟΣ LP ΜΕΓΙΣΤΗ-ΑΥΞΟΥΣΑ-ΥΠΑΚΟΛΟΥΘΙΑ ΜΕΓΙΣΤΗ-ΔΙΑΔΡΟΜΗ-DAG Άνω Φράγματα

Κλάσεις Προβλημάτων Πάλι Αναγωγές Στη συνέχεια θα χρησιμοποιήσουμε τις αναγωγές για ένα κάπως διεστραμμένο στόχο: Α Β Κάτω Φράγματα γνωρίζουμε ότι το πρόβλημα Α είναι δύσκολο, και χρησιμοποιούμε την αναγωγή για να αποδείξουμε ότι και το Β είναι δύσκολο Α Β Ροή Δυσκολίας

Κλάσεις Προβλημάτων Πάλι Αναγωγές Στη συνέχεια θα χρησιμοποιήσουμε τις αναγωγές για ένα κάπως διεστραμμένο στόχο: Α Β Κάτω Φράγματα γνωρίζουμε ότι το πρόβλημα Α είναι δύσκολο, και χρησιμοποιούμε την αναγωγή για να αποδείξουμε ότι και το Β είναι δύσκολο Εάν Α Β και Β C τότε A C Ροή Δυσκολίας

Κλάσεις Προβλημάτων Πάλι Αναγωγές Ας εξειδικεύσουμε τον ορισμό της αναγωγής για προβλήματα αναζήτησης Α Β Αλγόριθμος για το A Στιγμ/πο Ι f Στιγμ/πο f(i) Αλγόριθμος για το B Λύση S του f(i) h Δεν υπάρχει λύση του f(i) Μια αναγωγή A B είναι δύο πολυωνυμικοί αλγόριθμοι f και h f : μετασχηματίζει κάθε στιγμιότυπο I του A σε ένα στιγμιότυπο f(i) του B h : απεικονίζει μια λύση S του στιγμιότυπου f(i) σε μια λύση h(s) του I Λύση h(s) του Ι Δεν υπάρχει λύση για το I

Κλάσεις Προβλημάτων NP-πλήρη Και τώρα ορίζουμε την κλάση των δυσκολότερων προβλημάτων αναζήτησης Α Β NP P Αύξουσα Δυσκολία Ένα πρόβλημα αναζήτησης είναι NP-πλήρες (NP-complete) εάν ΟΛΑ ΤΑ ΑΛΛΑ ΠΡΟΒΛΗΜΑΤA ΑΝΑΖΗΤΗΣΗΣ ΣΤΟ NP ΑΝΑΓΟΝΤΑΙ σε αυτό

Κλάσεις Προβλημάτων NP-πλήρη Και τώρα ορίζουμε την κλάση των δυσκολότερων προβλημάτων αναζήτησης Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία Ένα πρόβλημα αναζήτησης είναι NP-πλήρες (NP-complete) εάν ΟΛΑ ΤΑ ΑΛΛΑ ΠΡΟΒΛΗΜΑΤA ΑΝΑΖΗΤΗΣΗΣ ΣΤΟ NP ΑΝΑΓΟΝΤΑΙ σε αυτό

Κλάσεις Προβλημάτων NP-πλήρη NP Αυτή είναι μια πολύ ισχυρή απαίτηση ΝP-πλήρη P Για να είναι ένα πρόβλημα NP-πλήρες πρέπει να είναι Αύξουσα Δυσκολία Χρήσιμο για την επίλυση κάθε προβλήματος NP στον Κόσμο Είναι εντυπωσιακό, αλλά... Υπάρχουν τέτοια προβλήματα (3SAT, TSP, MΕΓΙΣΤΗ ΔΙΑΔΡΟΜΗ, )

Κλάσεις Προβλημάτων NP-πλήρη NP Ισχύει : P ΝP-πλήρη Όλα τα NP-πλήρη πρόβλημα ανάγονται το ένα στο άλλο SAT Q R Και, όλα τα NP προβλήματα ανάγονται στα NP-πλήρη ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-ΣΤΟ-NP SAT Αύξουσα Δυσκολία

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία Μια Σχηματική Παρουσίαση

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία ΟΛΑ ΤΑ ΠΡΟΒΛΗΜΑΤΑ NP

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία SAT Q R

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-ΣΤΟ-NP SAT Q R

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-ΣΤΟ-NP SAT Q R

Κλάσεις Προβλημάτων P, NP και NP-πλήρη Εάν P NP NP P ΝP-πλήρη Αύξουσα Δυσκολία ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-ΣΤΟ-NP SAT Q R

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP Cook (1971) SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ ΖΟΕ AΘΡΟΙΣΜΑ-ΥΠΟΣΥΝΟΛΟΥ ILP ΚΥΚΛΟΣ-HAMILTON TSP Θα δείξουμε μέσω Αναγωγών

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP Cook (1971) SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Αρχικά θα δείξουμε αυτές τις Αναγωγές ΚΛΙΚΑ SAT Q R

Αναγωγές Προβλημάτων NP Α Β Α Β ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP Cook (1971) SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ και στη συνέχεια την αναγωγή: από Οποιοδήποτε Πρόβλημα NP στο SAT ΚΛΙΚΑ ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-ΣΤΟ-NP SAT Q R

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛO 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΛΙΚΑ SAT 3 SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 1 Το πρόβλημα SAT Μας δίδεται ένας λογικός τύπος (Boolean formula) σε συζευκτική μορφή: (x y z w) (x y) (z x w p y) (x y z) και μας ζητείται είτε να βρούμε μια ικανοποιούσα ανάθεση τιμών αληθείας (satisfying truth assignment) ή να αναφέρουμε ότι δεν υπάρχει καμία 3SAT (x y z) (w y) (y z) (p x) (x y z)

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 1 Τέχνασμα για την Αναγωγή του SAT στο 3SAT: Με δεδομένο ένα στιγμιότυπο I του SAT, χρησιμοποιούμε ακριβώς το ίδιο στιγμιότυπο για το 3SAT, με την διαφορά ότι ένας όρος με k > 3 στοιχεία (a1 a2 ak) αντικαθίσταται από ένα σύνολο όρων (a1 a2 y1) (y1 a3 y2) (y2 a y3) (yk-3 ak-1 ak) όπου τα y1, y2,, yk-3 είναι νέες μεταβλητές.

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 1 Τέχνασμα για την Αναγωγή του SAT στο 3SAT: Έστω I το στιγμιότυπο του 3SAT που προκύπτει... προφανώς σε χρόνο Τ( Ι ) Στιγμιότυπο I είναι ισοδύναμο με I ως προς την ικανοποιησιμότητα διότι για οποιαδήποτε ανάθεση τιμών στα ai (1 i k), ισχύει: (a1 a2 ak) ικανοποιείται υπάρχει μια ανάθεση τιμών των y1, y2,, yk-3 για την οποία οι όροι (a1 a2 y1) (y1 a3 y2) (yk-3 ak-1 ak) ικανοποιούνται όλοι

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 1 Τέχνασμα για την Αναγωγή του SAT στο 3SAT: Για να το δείτε υποθέστε ότι ικανοποιούνται όλοι οι όροι στα δεξιά. Τότε, τουλάχιστον ένα από τα a1, a2,, ak πρέπει να είναι true (a1 a2 ak) ικανοποιείται διαφορετικά το y1 θα πρέπει να είναι true, το οποίο αναγκάζει το y2 να είναι true, κάνοντας false τον τελευταίο όρο Άρα, ικανοποιείται επίσης και ο αριστερός όρος (a1 a2 ak) υπάρχει μια ανάθεση τιμών των y1, y2,, yk-3 για την οποία οι όροι (a1 a2 y1) (y1 a3 y2) (yk-3 ak-1 ak) έστω ότι ικανοποιούνται όλοι

Αναγωγές Προβλημάτων NP 1 SAT 3SAT 1 Τέχνασμα για την Αναγωγή του SAT στο 3SAT: Αντιστρόφως υποθέστε ότι ικανοποιείται ο όρος (a1 a2 ak) Τότε, κάποια ai πρέπει να είναι true (a1 a2 ak) Θέτουμε τιμές true στις y1, y2,, yi-2 και στις yi-1, yi,, yk-3 τιμές false Αυτό διασφαλίζει ότι ικανοποιούνται όλοι οι όροι δεξιά ικανοποιείται υπάρχει μια ανάθεση τιμών των y1, y2,, yk-3 για την οποία οι όροι (a1 a2 y1) (y1 a3 y2) (yk-3 ak-1 ak) ικανοποιούνται όλοι

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 3SAT (x y z) (x y z) (x y z) (x y) ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Μας δίδεται γράφημα n κόμβων και ακέραιος k και μας ζητείται να βρούμε ένα σύνολο ΙS με k κόμβους οι οποίοι είναι ανεξάρτητοι, δηλ. ανά δύο δεν έχουν ακμή μεταξύ τους, ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων 1

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Δύο πολύ διαφορετικά προβλήματα 1 2 (x y z) (x y z) (x y z) (x y) Συσχετισμός Λογικής Boole με Γραφήματα Ας σκεφτούμε Σε μια ικανοποιούσα ανάθεση τιμών αληθείας του 3SAT θα πρέπει ένα στοιχείο από κάθε όρο να είναι true Συνεπείς επιλογές εάν επιλέξουμε το x να είναι true σε κάποιο όρο δεν μπορούμε να επιλέξουμε το x να είναι true σε κάποιο άλλο

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Δύο πολύ διαφορετικά προβλήματα 1 2 (x y z) (x y z) (x y z) (x y) Συσχετισμός Λογικής Boole με Γραφήματα ΑΝΑΠΑΡΑΣΤΑΣΗ y (x y z) x z

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 1 2 Παράδειγμα (x y z) (x y z) (x y z) (x y) y y x z x y z x y z x Στο γράφημα G που προκύπτει, ένα IS περιέχει το πολύ ένα στοιχείo από κάθε τρίγωνο όρο Για να επιβάλουμε ΜΙΑ επιλογή από κάθε τρίγωνο-όρο, θέτουμε: k = πλήθος όρων

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 1 2 Παράδειγμα (x y z) (x y z) (x y z) (x y) y y x Λείπει κάτι... z x y z x y z x ΝΑΙ, ένας τρόπος που θα μας εμποδίζει να επιλέγουμε αντίθετα στοιχεία - και το x και το x Αυτό είναι πολύ εύκολο

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 Παράδειγμα (x y z) (x y z) (x y z) (x y) y y x z x y z 1 x Αυτό είναι πολύ εύκολο Ορίστε και ο Τρόπος y z x

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 1 2 Παράδειγμα (x y z) (x y z) (x y z) (x y) y y x z x y z x y z x Με δεδομένο ένα στιγμιότυπο Ι του προβλήματος 3SAT δημιουργήσαμε ένα στιγμιότυπο (G, k) του προβλήματος ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 Παράδειγμα x = false y = true z = true (x y z) (x y z) (x y z) (x y) y y x z x y z 1 x y z x Με δεδομένο ένα στιγμιότυπο Ι του προβλήματος 3SAT δημιουργήσαμε ένα στιγμιότυπο (G, k) του προβλήματος ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 Παράδειγμα x = false y = false z = true (x y z) (x y z) (x y z) (x y) y y x z x y z 1 x y z x Με δεδομένο ένα στιγμιότυπο Ι του προβλήματος 3SAT δημιουργήσαμε ένα στιγμιότυπο (G, k) του προβλήματος ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 1 2 Παράδειγμα (x y z) (x y z) (x y z) (x y) y y x z x y z x y z x Πολυωνυμικό Χρόνο Με δεδομένο ένα στιγμιότυπο Ι του προβλήματος 3SAT δημιουργήσαμε ένα στιγμιότυπο (G, k) του προβλήματος ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 1 2 (x y z) (x y z) (x y z) (x y) Θυμηθείτε Στις αναγωγές δεν χρειαζόμαστε μόνο τρόπο απεικόνισης στιγμιότυπων I του Α σε στιγμιότυπα f(i) του Β y x y y z x z x y z Αλλά και έναν τρόπο ανακατασκευής μιας λύσης h(i) του I από οποιαδήποτε λύση S του f(i), δηλ. τη συνάρτηση h Αλγόριθμος για το Α Στιγμ/πο Ι f Στιγμ/πο f(i) Αλγόριθμος για το Β Λύση S του f(i) h Δεν υπάρχει λύση του f(i) Λύση h(s) του Ι Δεν υπάρχει λύση για το I x

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 (x y z) (x y z) (x y z) (x y) Όπως πάντα Υπάρχουν δύο πράγματα για να αποδείξουμε 1 y x y y z x z x y z x (1) Με δεδομένο ένα ανεξάρτητο σύνολο S με k κόμβους στο γράφημα G, μπορούμε πάντα να ανακτήσουμε αποδοτικά μια ικανοποιούσα ανάθεση τιμών αληθείας στο I. (2) Αν το γράφημα G δεν έχει ανεξάρτητο σύνολο S μεγέθους k, τότε ο λογικός (Boolean) τύπος I δεν είναι ικανοποιήσιμος.

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 (x y z) (x y z) (x y z) (x y) Απόδειξη (1) Για οποιαδήποτε μεταβλητή x, το S δεν περιέχει κόμβους με επιγραφές x και x 1 y x y y z x z x Αναθέτουμε: x = true εάν το S περιέχει κόμβο με επιγραφή x x = false εάν το S περιέχει κόμβο με επιγραφή x Επειδή, S = k πρέπει να έχει ένα κόμβο ανά όρο Αυτή η ανάθεση ικανοποιεί όλους τους όρους (1) Με δεδομένο ένα ανεξάρτητο σύνολο S με k κόμβους στο G, μπορούμε πάντα να ανακτήσουμε αποδοτικά μια ικανοποιούσα ανάθεση τιμών αληθείας στο I. y z x

Αναγωγές Προβλημάτων NP 2 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ 2 (x y z) (x y z) (x y z) (x y) Απόδειξη (2) Αρκεί να αποδείξουμε ότι : εάν ο λ.τ. I έχει μια ικανοποιούσα ανάθεση τιμών αληθείας, τότε το G έχει ένα IS μεγέθους k 1 y x y y z x z x y z Αυτό είναι εύκολο... Για κάθε όρο του 3SAT, επιλέγουμε ένα στοιχείο του οποίου η τιμή στην ικανοποιούσα ανάθεση είναι true και προσθέτουμε τον αντίστοιχο κόμβο στο S τότε το S είναι ανεξάρτητο το βλέπετε (2) Αν το γράφημα G δεν έχει ανεξάρτητο σύνολο S μεγέθους k, τότε ο λογικός (Boolean) τύπος I δεν είναι ικανοποιήσιμος. x

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Μας δίδεται γράφημα n κόμβων και ακέραιος k και μας ζητείται να βρούμε ένα σύνολο ΙS με k κόμβους οι οποίοι είναι ανεξάρτητοι ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Μας δίδεται γράφημα n κόμβων και ακέραιος k και μας ζητείται να βρούμε ένα σύνολο VC με k κόμβους οι οποίοι καλύπτουν κάθε ακμή ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων 1 2 3

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Ισχύει ότι Κάποιες αναγωγές βασίζονται στην επινοητικότητα του συσχετισμού δύο πολύ διαφορετικών προβλημάτων Ενώ, άλλες απλώς καταγράφουν μια λεπτή μεταμφίεση του ενός προβλήματος στο άλλο Τι ισχύει εδώ Τι μπορούμε να πούμε για τη συσχέτιση των δύο προβλημάτων 1 2 3

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Παρατήρηση Ένα σύνολο κόμβων S αποτελεί κομβική κάλυψη ενός γραφήματος G = (V, E) εάν και μόνο εάν οι υπόλοιποι κόμβοι στο σύνολο V-S είναι ανεξάρτητο σύνολο του G S V-S 1 2 3

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Αναγωγή Για να λύσουμε ένα στιγμιότυπο (G, k) του προβλήματος ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ απλώς αναζητούμε μια Κομβική Κάλυψη VC του G με V -k κόμβους VC IS 1 2 3

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Αναγωγή Εάν υπάρχει τέτοια κομβική κάλυψη VC τότε, παίρνουμε όλους τους κόμβους που δεν ανήκουν σε αυτή VC = V -k IS = k VC IS 1 2 3

Αναγωγές Προβλημάτων NP 3 ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ Αναγωγή Εάν ΔΕΝ υπάρχει τέτοια κομβική κάλυψη VC τότε, το G δεν έχει ανεξάρτητο σύνολο μεγέθους k VC V -k S IS k 1 2 3

Αναγωγές Προβλημάτων NP ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΛΙΚΑ ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ Μας δίδεται γράφημα n κόμβων και ακέραιος k και μας ζητείται να βρούμε ένα σύνολο ΙS με k κόμβους οι οποίοι είναι ανεξάρτητοι, ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων ΚΛΙΚΑ Μας δίδεται γράφημα n κόμβων και ακέραιος k και μας ζητείται να βρούμε ένα σύνολο CL με k κόμβους οι οποίοι έχουν πλήρη σύνδεση ή να αναφέρουμε ότι δεν υπάρχει τέτοιο σύνολο κόμβων 1 2 3

Αναγωγές Προβλημάτων NP ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΛΙΚΑ Παρατήρηση Πολύ εύκολη αναγωγή του ενός προβλήματος στο άλλο Ένα σύνολο κόμβων S αποτελεί ανεξάρτητο σύνολο ενός γραφήματος G = (V, E) εάν και μόνο εάν το S αποτελεί μια κλίκα του συμπληρώματος (complement) G = (V, E) του γραφήματος G 1 2 3

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑΤΑ NP Όπως: Ελάχιστες Διαδρομές Ελάχιστα Συνδετικά Δένδρα Αντιστοιχίσεις Μέγιστες Ροές σε Δίκτυα 3SAT ΑΝΕΞΑΡΤΗΤΟ-ΣΥΝΟΛΟ ΚΟΜΒΙΚΗ-ΚΑΛΥΨΗ ΚΛΙΚΑ SAT NP P SAT ΝP-πλήρη Αύξουσα Δυσκολία (x y z w) (x y) (z x w p y) (x y z)

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT 1 ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP 2 ΚΥΚΛΩΜΑ-SAT ΚΥΚΛΩΜΑ-SAT SAT ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP ΚΥΚΛΩΜΑ-SAT SAT

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT Θα αποδείξουμε ότι όλα τα προβλήματα στο NP μπορούν να αναχθούν σε μία γενίκευση του SAΤ που ονομάζουμε ΚΥΚΛΩΜΑ-SAT ή C-SAT (Circuit-SAT) ΚΥΚΛΩΜΑ-SAT SAT

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT έξοδος Ένα λογικό (Boolean) κύκλωμα -- ένα DAG του οποίου οι κόμβοι είναι πύλες (gates) 5 διαφορετικών τύπων : Πύλες AND και OR με βαθμό εισόδου 2 AND NOT OR Πύλες ΝΟΤ με βαθμό εισόδου 1 Πύλες γνωστής εισόδου με βαθμό 0 AND Πύλες άγνωστης εισόδου με βαθμό 0 Ένας τερματικός κόμβος του DAG είναι η πύλη εξόδου (output gate) true NOT OR

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT έξοδος Με δεδομένο ένα λογικό (Boolean) κύκλωμα βρείτε μια ανάθεση τιμών αληθείας για τις άγνωστες εισόδους : η πύλη εξόδου να αποτιμάται true, AND NOT ή να αναφέρουμε ότι δεν υπάρχει καμία τέτοια ανάθεση τιμών OR AND true NOT OR

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT έξοδος Με δεδομένο ένα λογικό (Boolean) κύκλωμα βρείτε μια ανάθεση τιμών αληθείας για τις άγνωστες εισόδους : η πύλη εξόδου να αποτιμάται true, AND NOT ή να αναφέρουμε ότι δεν υπάρχει καμία τέτοια ανάθεση τιμών (false, true, true) true (true, false, true) false OR AND true NOT OR

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT true Με δεδομένο ένα λογικό (Boolean) κύκλωμα βρείτε μια ανάθεση τιμών αληθείας για τις άγνωστες εισόδους : η πύλη εξόδου να αποτιμάται true, AND NOT ή να αναφέρουμε ότι δεν υπάρχει καμία τέτοια ανάθεση τιμών (false, true, true) true (true, false, true) false Αποτίμηση Κυκλώματος OR AND true NOT OR false true true

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT false Με δεδομένο ένα λογικό (Boolean) κύκλωμα βρείτε μια ανάθεση τιμών αληθείας για τις άγνωστες εισόδους : η πύλη εξόδου να αποτιμάται true, AND NOT ή να αναφέρουμε ότι δεν υπάρχει καμία τέτοια ανάθεση τιμών (false, true, true) true (true, false, true) false Αποτίμηση Κυκλώματος OR AND true NOT OR true false true

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP SAT ΠΡΟΒΛΗΜΑ C-SAT έξοδος Με δεδομένο ένα λογικό (Boolean) κύκλωμα βρείτε μια ανάθεση τιμών αληθείας για τις άγνωστες εισόδους : η πύλη εξόδου να αποτιμάται true, AND NOT ή να αναφέρουμε ότι δεν υπάρχει καμία τέτοια ανάθεση τιμών C-SAT ως Πρόβλημα Αναζήτησης OR AND true NOT OR

Αναγωγές Προβλημάτων NP ΟΠΟΙΟΔΗΠΟΤΕ-ΠΡΟΒΛΗΜΑ-NP 1 Α ΚΥΚΛΩΜΑ-SAT Έστω Α ένα πρόβλημα στο NP SAT Α NP έξοδος AND OR NOT Θέλουμε μια αναγωγή Α ΚΥΚΛΩΜΑ-SAT AND true NOT OR