Transcript pptx
Προσεγγιστικοί Αλγόριθμοι
Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον.
http://xkcd.com/287/
Προσεγγιστικοί Αλγόριθμοι
Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον.
Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;) η
ανακάλυψη πολυωνυμικών αλγορίθμων για αυτά τα προβλήματα;
• Αλγόριθμοι εκθετικού χρόνου μπορεί να είναι αποδεκτοί για
εισόδους μικρού μεγέθους
• Είναι πιθανό να υπάρχουν πολυωνυμικοί αλγόριθμοι για σημαντικές
ειδικές περιπτώσεις
• Είναι πιθανό να μπορούμε να βρούμε σχεδόν βέλτιστες λύσεις σε
πολυωνυμικό χρόνο
Προσεγγιστικοί Αλγόριθμοι
Σε πολλές περιπτώσεις μας ικανοποιεί μια προσεγγιστική λύση
Ένας προσεγγιστικός αλγόριθμος υπολογίζει σε πολυωνυμικό χρόνο
μία λύση η οποία είναι εγγυημένα «κοντά» στη βέλτιστη λύση
Λόγος προσέγγισης
Έστω
τιμή της λύσης του προσεγγιστικού αλγορίθμου για είσοδο
τιμή της βέλτιστης λύσης για είσοδο
Πρόβλημα μεγιστοποίησης:
Ο αλγόριθμος έχει λόγο προσέγγισης
αν για κάθε είσοδο
(
μεγέθους
-προσεγγιστικός αλγόριθμος)
Προσεγγιστικοί Αλγόριθμοι
Σε πολλές περιπτώσεις μας ικανοποιεί μια προσεγγιστική λύση
Ένας προσεγγιστικός αλγόριθμος υπολογίζει σε πολυωνυμικό χρόνο
μία λύση η οποία είναι εγγυημένα «κοντά» στη βέλτιστη λύση
Λόγος προσέγγισης
Έστω
τιμή της λύσης του προσεγγιστικού αλγορίθμου για είσοδο
τιμή της βέλτιστης λύσης για είσοδο
Πρόβλημα ελαχιστοποίησης:
Ο αλγόριθμος έχει λόγο προσέγγισης
αν για κάθε είσοδο
(
μεγέθους
-προσεγγιστικός αλγόριθμος)
Προσεγγιστικοί Αλγόριθμοι
Προσεγγιστικό σύστημα
Προσεγγιστικός αλγόριθμος που δέχεται στην είσοδο στιγμιότυπο
επιπλέον μια τιμή
και
Για οποιοδήποτε συγκεκριμένο
το προσεγγιστικό σύστημα αποτελεί
-προσεγγιστικό αλγόριθμο.
Ο χρόνος εκτέλεσης αυξάνει όσο μειώνεται το
. Είναι πολυωνυμικός ως
προς το μέγεθος
του στιγμιότυπου αλλά όχι απαραίτητα ως προς το
π.χ.
Πλήρως πολυωνυμικό προσεγγιστικό σύστημα
Προσεγγιστικό σύστημα στο οποίο ο χρόνος εκτέλεσης είναι πολυωνυμικός
τόσο ως προς το μέγεθος
του στιγμιότυπου όσο και ως προς το
π.χ.
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
Απλός αλγόριθμος
Αρχικοποίηση :
Όσο
επιλέγουμε μια ακμή
θέτουμε
αφαιρούμε από το
κάθε ακμή
και
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Πρόβλημα βελτιστοποίησης : Θέλουμε κομβικό κάλυμμα με το ελάχιστο
αριθμό κόμβων
βέλτιστη λύση
Προσεγγιστικοί Αλγόριθμοι
Κομβικό κάλυμμα
Ο απλός αλγόριθμος είναι 2-προσεγγιστικός αλγόριθμος πολυωνυμικού χρόνου
Έστω
το σύνολο των ακμών που επέλεξε ο αλγόριθμος: Το κομβικό
κάλυμμα
αποτελείται από τους κόμβους που είναι άκρα των ακμών του
επομένως
Κάθε ακμή του
καλύπτεται από έναν τουλάχιστον κόμβο του βέλτιστου
καλύμματος
. Επιπλέον στο
δεν υπάρχουν ακμές με κάποιο κοινό άκρο.
Επομένως
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή
Ένας πωλητής πρέπει να επισκεφτεί
πόλεις και να καταλήξει στην πόλη όπου
ξεκίνησε την περιοδεία του, ελαχιστοποιώντας το συνολικό κόστος μετακίνησης
Θεσσαλονίκη
13
2
Κοζάνη
Ιωάννινα
4
4
Λάρισα
5
16
3
7
8
12
Βόλος
5
8
4
19
Πάτρα
16
Αθήνα
11
Ηράκλειο
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή
5
Πλήρες γράφημα
1
2
4
5
Συνάρτηση κόστους
2
Περιοδεία (κύκλος Hamilton): Κύκλος που επισκέπτεται κάθε κόμβο
ακριβώς μια φορά
Πρόβλημα βελτιστοποίησης : Θέλουμε μια περιοδεία
ελάχιστου συνολικού κόστους
Για ένα σύνολο ακμών
ορίζουμε το κόστος του
ως
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή
5
Πλήρες γράφημα
Συνάρτηση κόστους
1
2
4
5
2
Μπορούμε να βρούμε μια σχεδόν βέλτιστη περιοδεία αν η συνάρτηση
κόστους ικανοποιεί την τριγωνική ανισότητα:
Τριγωνική ανισότητα: Για κάθε τριάδα κόμβων
Η τριγωνική ανισότητα ισχύει σε πολλές πρακτικές εφαρμογές, π.χ.
όταν το κόστος αντιστοιχεί στην απόσταση δύο σημείων στο επίπεδο
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Ελαφρύτατο συνδετικό δένδρο
Γράφημα
b
Συνάρτηση βάρους
(εδώ
)
c
8
4
a
i
9
2
e
11
Ζητούμενο: δένδρο
με ελάχιστο κόστος
4
7
8
h
d
7
14
6
1
10
g
2
f
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Ελαφρύτατο συνδετικό δένδρο
Γράφημα
b
Συνάρτηση βάρους
(εδώ
)
c
8
4
a
i
9
2
e
11
Ζητούμενο: δένδρο
με ελάχιστο κόστος
Μπορεί να υπολογιστεί σε σχεδόν γραμμικό χρόνο
4
7
8
h
d
7
14
6
1
10
g
2
f
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Προσεγγιστικός αλγόριθμος
1. Υπολογίζουμε ένα ελαφρύτατο συνδετικό δένδρο
του
2. Επιλέγουμε αυθαίρετα ένα κόμβο
ως ρίζα και εκτελούμε
καθοδική διερεύνηση του
με αφετηρία το
3. Επιστρέφουμε την περιοδεία που σχηματίζεται από την διάταξη των
κόμβων ως προς τους χρόνους ανακάλυψης της καθοδικής διερεύνησης
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
[10,11]
ελαφρύτατο συνδετικό
δένδρο
διάταξη
[12,13]
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
[10,11]
περιοδεία
διάταξη
[12,13]
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Κεντρική ιδέα: Το βάρος (κόστος) ενός ελαφρύτατου συνδετικού δένδρου
του γραφήματος
περιοδείας
αποτελεί κάτω φράγμα του κόστους της βέλτιστης
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
βέλτιστη περιοδεία
[10,11]
περιοδεία
διάταξη
[12,13]
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Ο αλγόριθμος είναι 2-προσεγγιστικός πολυωνυμικού χρόνου
Έστω
μια βέλτιστη περιοδεία και
μια οποιαδήποτε ακμή της
Τότε το
είναι συνδετικό δένδρο, άρα
βέλτιστη περιοδεία
συνδετικό δένδρο
ελαφρύτατο συνδετικό
δένδρο
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Ο αλγόριθμος είναι 2-προσεγγιστικός πολυωνυμικού χρόνου
Πλήρης διάνυση του
Μια πλήρης διάνυση
: καταγράφει τη σειρά όλων των επισκέψεων στους
κόμβους κατά την καθοδική διερεύνηση
διατρέχει κάθε ακμή του
δύο φορές
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
ελαφρύτατο συνδετικό
δένδρο
[10,11]
[12,13]
πλήρης διάνυση του
:
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Ο αλγόριθμος είναι 2-προσεγγιστικός πολυωνυμικού χρόνου
Πλήρης διάνυση του
: καταγράφει τη σειρά όλων των επισκέψεων στους
κόμβους κατά την καθοδική διερεύνηση
Μια πλήρης διάνυση
διατρέχει κάθε ακμή του
Λόγω της τριγωνικής ανισότητας:
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
[10,11]
[12,13]
πλήρης διάνυση του
:
π.χ.
δύο φορές
Προσεγγιστικοί Αλγόριθμοι
Το πρόβλημα του περιοδεύοντος πωλητή με τριγωνική ανισότητα
Ο αλγόριθμος είναι 2-προσεγγιστικός πολυωνυμικού χρόνου
Πλήρης διάνυση του
Μια πλήρης διάνυση
: καταγράφει τη σειρά όλων των επισκέψεων στους
κόμβους κατά την καθοδική διερεύνηση
διατρέχει κάθε ακμή του
δύο φορές
Λόγω της τριγωνικής ανισότητας:
[1,16]
[8,15]
[2,7]
[9,14]
[3,4] [5,6]
ελαφρύτατο συνδετικό
δένδρο
[10,11]
[12,13]
πλήρης διάνυση του
:
περιοδεία
Προσεγγιστικοί Αλγόριθμοι
Το γενικό πρόβλημα του περιοδεύοντος πωλητή
Αν η συνάρτηση κόστους δεν ικανοποιεί την τριγωνική ανισότητα τότε είναι
αδύνατο να βρούμε σε πολυωνυμικό χρόνο μια
για οποιαδήποτε σταθερά
-προσεγγιστική περιοδεία,
, εκτός εάν
Η ύπαρξη ενός -προσεγγιστικού αλγόριθμου πολυωνυμικού χρόνου
συνεπάγεται πολυωνυμικό αλγόριθμο για το παρακάτω NP-πλήρες
πρόβλημα
Κύκλος Hamilton
Μας δίνεται γράφημα
: υπάρχει κύκλος που επισκέπτεται
κάθε (ενδιάμεσο) κόμβο ακριβώς μία φορά;
Προσεγγιστικοί Αλγόριθμοι
Το γενικό πρόβλημα του περιοδεύοντος πωλητή
Ας υποθέσουμε ότι υπάρχει
-προσεγγιστικός αλγόριθμος
πολυωνυμικού
χρόνου για το γενικό πρόβλημα του περιοδεύοντος πωλητή, όπου
ακέραια σταθερά.
Μπορούμε να χρησιμοποιήσουμε τον
για να βρούμε σε πολυωνυμικό
χρόνο αν υπάρχει κύκλος Hamilton σε ένα γράφημα
Έστω
το πλήρες γράφημα με σύνολο κόμβων
Ορίζουμε τη συνάρτηση κόστους
Αν το
των ακμών του
έχει κύκλο Hamilton τότε η βέλτιστη περιοδεία
Διαφορετικά η
του
ως
έχει κόστος
περιέχει τουλάχιστον μια ακμή εκτός
, άρα
Προσεγγιστικοί Αλγόριθμοι
Το γενικό πρόβλημα του περιοδεύοντος πωλητή
Ας υποθέσουμε ότι υπάρχει
-προσεγγιστικός αλγόριθμος
πολυωνυμικού
χρόνου για το γενικό πρόβλημα του περιοδεύοντος πωλητή, όπου
ακέραια σταθερά.
Μπορούμε να χρησιμοποιήσουμε τον
για να βρούμε σε πολυωνυμικό
χρόνο αν υπάρχει κύκλος Hamilton σε ένα γράφημα
Έστω
το πλήρες γράφημα με σύνολο κόμβων
Έστω
η περιοδεία του
Αν το
έχει κύκλο Hamilton τότε
Διαφορετικά
που επιστρέφει ο
. Ισχύει
.
Επομένως μπορούμε να αποφασίσουμε σε πολυωνυμικό χρόνο αν το
περιέχει κύκλο Hamilton!
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
σύνολο αντικειμένων
οικογένεια υποσυνόλων του
Το σύνολο
καλύπτει το
αν
Πρόβλημα βελτιστοποίησης : Θέλουμε ένα υποσύνολο
ελάχιστου
μεγέθους
που να καλύπτει το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
4.
επιλέγουμε
που μεγιστοποιεί το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
4.
επιλέγουμε
που μεγιστοποιεί το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
4.
επιλέγουμε
που μεγιστοποιεί το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
4.
επιλέγουμε
που μεγιστοποιεί το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
4.
επιλέγουμε
που μεγιστοποιεί το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Άπληστος αλγόριθμος
1. αρχικοποίηση:
2. ενόσω
3.
επιλέγουμε
που μεγιστοποιεί το
4.
βέλτιστη κάλυψη
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
όπου
και
-προσεγγιστικός πολυωνυμικού χρόνου,
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Έστω
το
-οστό σύνολο που επιλέγει ο αλγόριθμος
Η προσθήκη του
έχει κόστος 1 αφού αυξάνει το
στοιχεία του
Κόστος ανά νέο στοιχείο
Επομένως έχουμε
κατά μια μονάδα
που καλύπτονται για πρώτη φορά
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Έστω
το
-οστό σύνολο που επιλέγει ο αλγόριθμος
Η προσθήκη του
έχει κόστος 1 αφού αυξάνει το
στοιχεία του
Κόστος ανά νέο στοιχείο
Επομένως έχουμε
Αποδίδουμε στο βέλτιστο κάλυμμα κόστος
κατά μια μονάδα
που καλύπτονται για πρώτη φορά
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Θα δείξουμε ότι
Με δεδομένο το παραπάνω έχουμε
για οποιοδήποτε
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Θα δείξουμε ότι
για οποιοδήποτε
στοιχεία του
Θέτουμε
που δεν έχουν καλυφθεί ακόμα
για
Έστω
και
και
, δηλαδή ο αλγόριθμος επιλέγει
Ισχύει ακόμα ότι
πλήθος στοιχείων που καλύπτονται για πρώτη φορά από το
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Θα δείξουμε ότι
Επομένως έχουμε
για οποιοδήποτε
Προσεγγιστικοί Αλγόριθμοι
Κάλυψη συνόλου
Ο άπληστος αλγόριθμος είναι
-προσεγγιστικός πολυωνυμικού χρόνου,
όπου
και
Θα δείξουμε ότι
Επομένως έχουμε
για οποιοδήποτε
Ακέραιος Προγραμματισμός
Σταθμισμένο κομβικό κάλυμμα
Γράφημα
Ένα υποσύνολο κόμβων
έχουμε
ή
είναι κομβικό κάλυμμα αν για κάθε ακμή
(ή και τα δύο)
Βάρη κόμβων :
Βάρος καλύμματος
:
Πρόβλημα βελτιστοποίησης :
Θέλουμε κομβικό κάλυμμα με ελάχιστο βάρος
2
Ακέραιο Πρόγραμμα
1
μεταβλητή για κάθε
2
2
1
4
1
Προσέγγιση μέσω Γραμμικού Προγραμματισμού
Μεταβλητή για κάθε
:
Ακέραιο Πρόγραμμα
Γραμμικό Πρόγραμμα
χαλάρωση
Προσέγγιση μέσω Γραμμικού Προγραμματισμού
Μεταβλητή για κάθε
:
Ακέραιο Πρόγραμμα
Γραμμικό Πρόγραμμα
χαλάρωση
Έστω
Έστω
το βέλτιστο κάλυμμα με βάρος
μια βέλτιστη λύση του γραμμικού προγράμματος με βάρος
Τότε
Προσέγγιση μέσω Γραμμικού Προγραμματισμού
Μεταβλητή για κάθε
:
Ακέραιο Πρόγραμμα
Γραμμικό Πρόγραμμα
χαλάρωση
Έστω
Έστω
το βέλτιστο κάλυμμα με βάρος
μια βέλτιστη λύση του γραμμικού προγράμματος με βάρος
Τότε
Προσέγγιση μέσω Γραμμικού Προγραμματισμού
Στρογγυλοποίηση λύσης γραμμικού προγράμματος
Ακέραιο Πρόγραμμα
Γραμμικό Πρόγραμμα
χαλάρωση
Έστω
μια βέλτιστη λύση του γραμμικού προγράμματος με βάρος
Στρογγυλοποίηση : Επιλέγουμε στο κομβικό κάλυμμα τους κόμβους
Για κάθε ακμή
άρα το
έχουμε
είναι κομβικό κάλυμμα
με
Προσέγγιση μέσω Γραμμικού Προγραμματισμού
Στρογγυλοποίηση λύσης γραμμικού προγράμματος
Έστω
μια βέλτιστη λύση του γραμμικού προγράμματος με βάρος
Στρογγυλοποίηση : Επιλέγουμε στο κομβικό κάλυμμα τους κόμβους
Για κάθε ακμή
άρα το
Επιπλέον
έχουμε
είναι κομβικό κάλυμμα
με
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Το πρόβλημα του Σακιδίου
Έχουμε
αντικείμενα
, όπου το αντικείμενο
έχει βάρος
και (ακέραια) αξία
Ο σκοπός μας είναι να γεμίσουμε με τα αντικείμενα αυτά ένα σακίδιο ώστε η
συνολική αξία των αντικειμένων που επιλέξαμε να είναι η μέγιστη δυνατή και το
συνολικό βάρος
. Μπορούμε να υποθέσουμε
Δηλαδή θέλουμε
που μεγιστοποιεί το
και ικανοποιεί
1
2
3
4
για κάθε
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Δυναμικός Προγραμματισμός
Ορίζουμε τα υποπροβλήματα
ελάχιστο βάρος υποσυνόλου στοιχείων
με αξία
Για να λύσουμε το πρόβλημα του σακιδίου υπολογίζουμε όλες τις τιμές
για
και
και επιλέγουμε τη λύση
με μέγιστο
τέτοιο ώστε
Έστω
Τότε
άρα έχουμε
υποπροβλήματα
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Δυναμικός Προγραμματισμός
Τα υποπροβλήματα λύνονται μέσω της ακόλουθης αναδρομής
Έστω
μια βέλτιστη λύση του
• Αν
τότε
• Αν
και
τότε
• Αν
και
τότε
• Αν
τότε
Άρα
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Δυναμικός Προγραμματισμός
Αλγόριθμος
Αποθηκεύουμε τις βέλτιστες τιμές των υποπροβλημάτων
διδιάστατο πίνακα
Χρόνος εκτέλεσης :
. Ξεκινάμε με
σε ένα
για όλα τα
Δεν είναι πολυωνυμικός!
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Για να κάνουμε το χρόνο εκτέλεσης πολυωνυμικό (θυσιάζοντας την ακρίβεια της
λύσης) στρογγυλοποιούμε τις αξίες
Θέτουμε
Οι
ως προς μια παράμετρο
και
είναι πολλαπλάσιες του
και
Επιπλέον έστω
τιμή βέλτιστης λύσης του προβλήματος του Σακιδίου με αξίες
τιμή βέλτιστης λύσης του προβλήματος του Σακιδίου με αξίες
Τότε
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Για να κάνουμε το χρόνο εκτέλεσης πολυωνυμικό (θυσιάζοντας την ακρίβεια της
λύσης) στρογγυλοποιούμε τις αξίες
Θέτουμε
Οι
ως προς μια παράμετρο
και
είναι πολλαπλάσιες του
και
Επιπλέον έστω
τιμή βέλτιστης λύσης του προβλήματος του Σακιδίου με αξίες
τιμή βέλτιστης λύσης του προβλήματος του Σακιδίου με αξίες
Τότε
Άρα για να βρούμε μια προσεγγιστική λύση, λύνουμε το πρόβλημα του Σακιδίου
με αξίες
. Έστω ότι επιστρέφει το σύνολο στοιχείων
. Θα δείξουμε ότι
σύνολο τέτοιο ώστε
, όπου
. Ισχύει ότι
οποιοδήποτε
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Άρα για να βρούμε μια προσεγγιστική λύση, λύνουμε το πρόβλημα του Σακιδίου
με αξίες
. Έστω ότι επιστρέφει το σύνολο στοιχείων
. Θα δείξουμε ότι
, όπου
σύνολο τέτοιο ώστε
Έχουμε
Επιπλέον
Έστω
. Τότε
Για απλότητα υποθέτουμε ότι το
Επίσης
είναι ακέραιος, οπότε
. Ισχύει ότι
οποιοδήποτε
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Άρα για να βρούμε μια προσεγγιστική λύση, λύνουμε το πρόβλημα του Σακιδίου
με αξίες
. Έστω ότι επιστρέφει το σύνολο στοιχείων
. Θα δείξουμε ότι
σύνολο τέτοιο ώστε
Έχουμε
Επιπλέον
και
Άρα
, όπου
. Ισχύει ότι
οποιοδήποτε
Προσεγγιστικό σύστημα για το πρόβλημα του Σακιδίου
Άρα για να βρούμε μια προσεγγιστική λύση, λύνουμε το πρόβλημα του Σακιδίου
με αξίες
. Έστω ότι επιστρέφει το σύνολο στοιχείων
. Θα δείξουμε ότι
σύνολο τέτοιο ώστε
Χρόνος εκτέλεσης =
αφού
, όπου
. Ισχύει ότι
οποιοδήποτε