Η λίστα των προβλημάτων μας

10
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 1 Η λίστα των προβλημάτων μας Η λίστα των προβλημάτων μας Ταξινόμηση Ταξινόμηση Αναζήτηση Αναζήτηση Συντομότερα μονοπάτια σε γράφο Συντομότερα μονοπάτια σε γράφο Ελάχιστα ζευγνύοντα δένδρα Ελάχιστα ζευγνύοντα δένδρα Έλεγχος πρώτων αριθμών Έλεγχος πρώτων αριθμών Πρόβλημα περιοδεύοντας πωλητή Πρόβλημα περιοδεύοντας πωλητή Πρόβλημα σάκου Πρόβλημα σάκου Σκάκι Σκάκι Πύργοι του Πύργοι του Hanoi Hanoi Τερματισμός προγράμματος Τερματισμός προγράμματος

Upload: phuong

Post on 04-Jan-2016

30 views

Category:

Documents


2 download

DESCRIPTION

Η λίστα των προβλημάτων μας. Ταξινόμηση Αναζήτηση Συντομότερα μονοπάτια σε γράφο Ελάχιστα ζευγνύοντα δένδρα Έλεγχος πρώτων αριθμών Πρόβλημα περιοδεύοντας πωλητή Πρόβλημα σάκου Σκάκι Πύργοι του Hanoi Τερματισμός προγράμματος. Κατηγοριοποίηση πολυπλοκότητας προβλήματος. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 1

Η λίστα των προβλημάτων μαςΗ λίστα των προβλημάτων μας

ΤαξινόμησηΤαξινόμηση ΑναζήτησηΑναζήτηση Συντομότερα μονοπάτια σε γράφοΣυντομότερα μονοπάτια σε γράφο Ελάχιστα ζευγνύοντα δένδραΕλάχιστα ζευγνύοντα δένδρα Έλεγχος πρώτων αριθμών Έλεγχος πρώτων αριθμών Πρόβλημα περιοδεύοντας πωλητήΠρόβλημα περιοδεύοντας πωλητή Πρόβλημα σάκουΠρόβλημα σάκου ΣκάκιΣκάκι Πύργοι τουΠύργοι του Hanoi Hanoi Τερματισμός προγράμματοςΤερματισμός προγράμματος

Page 2: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 2

Κατηγοριοποίηση πολυπλοκότητας Κατηγοριοποίηση πολυπλοκότητας προβλήματοςπροβλήματος

Υπάρχει κάποιος πολυωνυμικός αλγόριθμος επίλυσης του προβλήματος?

Πιθανές απαντήσεις: ΝΑΙ ΟΧΙ

• επειδή μπορεί να αποδειχθεί ότι όλοι οι αλγόριθμοι θέλουν εκθετικό χρόνο

• επειδή μπορεί να αποδειχθεί ότι δεν υπάρχει αλγόριθμος να επιλύσει αυτό το πρόβλημα

ΔΕΝ ΓΝΩΡΙΖΩ ΔΕΝ ΓΝΩΡΙΖΩ, αλλά αν εφευρισκόταν ένας τέτοιος αλγόριθμος, τότε

θα δινόταν λύση και σε πολλά άλλα προβλήματα σε πολυωνυμικό χρόνο

Page 3: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 3

Τύποι προβλημάτωνΤύποι προβλημάτων

Προβλήματα βελτιστοποίησηςΠροβλήματα βελτιστοποίησης: κατασκευάζουμε μια λύση που μεγιστοποιεί η ελαχιστοποιεί μια αντικειμενική συνάρτηση

Προβλήματα απόφασηςΠροβλήματα απόφασης: απάντηση με ΝΑΙ/ΌΧΙ σε μια ερώτηση

Πολλά προβλήματα έχουν εκδοχές βελτιστοποίησης η απόφασης. Π.χ. το πρόβλημα του περιοδεύοντας πωλητή

βελτιστοποίησηβελτιστοποίηση: βρες ένα hamiltonian κύκλο ελάχιστου βάρους

απόφασηαπόφαση: βρες ένα hamiltonian κύκλο βάρους < k

Page 4: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 4

Άλλα προβλήματαΆλλα προβλήματα

ΔιαμερισμόςΔιαμερισμός: Δεδομένων n θετικών ακεραίων, να βρεθεί αν είναι δυνατό να τους διαμερίσουμε σε δυο ανεξάρτητα υποσύνολα με το ίδιο άθροισμα

Bin packingBin packing: Δεδομένων n αντικειμένων με μέγεθος που είναι θετικός πραγματικός αριθμός όχι μεγαλύτερος του 1, να τοποθετηθούν στο μικρότερο αριθμό bins μεγέθους 1

Χρωματισμός γράφουΧρωματισμός γράφου: Να βρεθεί ο χρωματικός του αριθμός δεδομένου γράφου, δηλαδή ο μικρότερος αριθμός χρωμάτων που πρέπει να αποδοθούν στις κορυφές του γράφου ώστε να μην υπάρχουν δυο γειτονικές κορυφές με το ίδιο χρώμα

ΙκανοποιησιμΙκανοποιησιμότητα τητα CNFCNF: Δεδομένης λογικής πρότασης σε συζευκτική κανονική μορφή (σύζευξη διαζεύξεων εκφράσεων), υπάρχει μια απόδοση τιμών στις μεταβλητές που να καθιστά την έκφραση αληθή?

Page 5: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 5

Η κλάσηΗ κλάση PP

PP: η κλάση των προβλημάτων απόφασης, τα οποία επιλύονται σε χρόνο O(p(n)), όπου p(n) είναι ένα πολυώνυμο ως προς n

Γιατί πολυώνυμο ? Αν ΟΧΙ, πολύ αναποτελεσματικό Κομψές ιδιότητες κλεισίματος Ανεξάρτητες από μηχανές

Page 6: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 6

Η κλάσηΗ κλάση NPNP

NPNP: η κλάση των προβλημάτων απόφασης, τα οποία επιλύονται σε πολυωνυμικό χρόνο σε μια μη-αιτιοκρα-τική μηχανή

Ένας μη-αιτιοκρατικός υπολογιστής μπορεί να μαντέψειμαντέψει τη σωστή απάντηση ή λύση

Τα ΝΡ είναι μια κλάση προβλημάτων • με λύσεις που είναι επιβεβαιώσιμες σε πολυωνυμικό χρόνο, ή • που είναι επιλύσιμες σε πολυωνυμικό χρόνο σε μια μηχανή

που μπορεί να εκτελέσει παράλληλα άπειρους υπολογισμούς Σημείωση: η έκφραση NP σημαίνει “Nondeterministic

Polynomial-time”

Page 7: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 7

ΠαράδειγμαΠαράδειγμα: : ικανοποιησιμότητα ικανοποιησιμότητα CNFCNF

Το πρόβλημα είναι NP. Ο μη-αιτιοκρατικός αλγόριθμος:• μαντεύει τη σωστή απόδοση τιμών• ελέγχει αν οι αποδόσεις ικανοποιούν τον τύπο CNF

Παράδειγμα:(A⋁¬B⋁¬C) (⋀ ¬A⋁B) (⋀ ¬B⋁D⋁F) (⋀ F⋁¬D)

Αληθείς αποδόσεις: A B C D E F 0 1 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 ... (πόσες είναι συνολικά ?)

Φάση ελέγχου: Θ(n)

Page 8: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 8

Που βρισκόμαστε τώρα Που βρισκόμαστε τώρα ??

Έχει επιδειχθεί μη-αιτιοκρατικός πολυωνυμικός αλγόριθμος για την ικανοποιησιμότητα CNF

Το CNF-sat είναι σε NP Παρόμοιοι αλγόριθμοι μπορούν να βρεθούν για τα

προβλήματα TPS, HC, Partition, κλπ αποδεικνύο-ντας ότι αυτά τα προβλήματα είναι επίσης σε NP

Όλα τα προβλήματα σε P μπορούν επίσης να επιλυ-θούν με αυτόν τον τρόπο (αλλά χωρίς μαντεψιά), και συνεπώς ισχύει:

P ⊆ NP Η μεγάλη ερώτηση: PP = = NP NP ??

Page 9: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 9

ΠροβλήματαΠροβλήματα NPNP-complete-complete

Ένα πρόβλημα απόφασης D είναι NP-complete αν και μόνο αν

1. D ∈ NP

2. Κάθε πρόβλημα σε NP είναι μειώσιμομειώσιμο (reducible) σε πολυωνυμικό

χρόνο στο D

Θεώρημα του Θεώρημα του CookCook (1971):(1971): το CNF-sat είναι NP-complete

Άλλα NP-complete προβλήματα που λαμβάνονται μέσω πολύ-

ωνυμικών μειώσεων γνωστών NP-complete προβλημάτων

Η κλάση των NP-complete προβλημάτων δηλώνεται με NPC

Page 10: Η λίστα των προβλημάτων μας

Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο 10

Μειώσεις (Μειώσεις (reductionsreductions))

Παράδειγμα: Πολυωνυμική μείωση του κατευθυνόμενου HC σε μη κατευθυνόμενο HC

y

vu

x

y3

v3

Το αποδεικνύει αυτό?• Το HC είναι δυσκολότερο ή ευκολότερο για κατευθυνόμενους γράφους?

x3x2x1

y1 y2

u1 u2 u3v2v1

• Αν το HC είναι NPC για κατευθυνόμενους γράφους, είναι επίσης NPC για μη κατευθυνόμενους γράφους? ή• Αν το HC είναι NPC για μη κατευθυνόμενους γράφους, είναι επίσης NPC για κατευθυνόμενους γράφους?