Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

Σχετικά έγγραφα
Δένδρα επικάλ επικ υψης ελάχιστου στους

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

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

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

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

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

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ Λ03Β ΑΛΓΟΡΙΘΜΟΙ ΔΙΚΤΥΩΝ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΦΛΕΒΑΡΗΣ 2004

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

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

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

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

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

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Αλγόριθμοι Eλάχιστα μονοπάτια

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

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

Ελάχιστα Γεννητορικά ένδρα

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

Στοιχεία Θεωρίας Γράφων (Graph Theory)

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

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μέγιστη Ροή Ελάχιστη Τομή

Αλγόριθμοι Τυφλής Αναζήτησης

βασικές έννοιες (τόμος Β)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

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

Ελάχιστο Συνδετικό Δέντρο

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό έντρο

Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι.

Αλγόριθμοι Γραφημάτων

Επίλυση προβλημάτων με αναζήτηση

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Θεωρία Γράφων Αλγόριθμοι BFS, Prim, Dijkstra, Bellman-Ford

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Θεωρία Γραφημάτων 4η Διάλεξη

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

12/1/2006 Διακριτά Μαθηματικά. Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον)

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

Ελάχιστο Συνδετικό έντρο

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

u v 4 w G 2 G 1 u v w x y z 4

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Εισαγωγή στους Αλγορίθμους

Insert(K,I,S) Delete(K,S)

Αλγοριθμικές Τεχνικές

3η Σειρά Γραπτών Ασκήσεων

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

3η Σειρά Γραπτών Ασκήσεων

Αναζήτηση Κατά Πλάτος

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Construction heuristics

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αλγόριθμοι Γραφημάτων

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

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

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

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

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

Αναζήτηση Κατά Πλάτος

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ

Αξιολόγηση Ευριστικών Αλγορίθµων

Αναζήτηση Κατά Πλάτος

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Θεωρία και Αλγόριθμοι Γράφων

Διδάσκων: Παναγιώτης Ανδρέου

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Ουρές προτεραιότητας

Αλγόριθμοι Γραφημάτων

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

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

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

Εισαγωγή στους Αλγορίθμους

Επιχειρησιακή Έρευνα I

Θεωρία και Αλγόριθμοι Γράφων

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

ΑΙΚΑΤΕΡΙΝΗ-ΠΑΝΑΓΙΩΤΑ ΣΤΟΥΚΑ ΝΙΚΟΛΑΟΣ ΛΑΜΠΡΟΥ. μπλ 2014

Transcript:

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

Αλγόριθμος Prim Ξεκινάμε από ένα δένδρο Τ αποτελούμενο από ένα μόνο κόμβο. Στη συνέχεια, σε κάθε επανάληψη, αυξάνουμε το δένδρο Τ συνδέοντάς το στο πλησιέστερο ελεύθερο κόμβο ως προς την έννοια του βάρους (κόστους).

Αλγόριθμος Prim G=(V,E) Τ={u, οποιοσδήποτε κόμβος} Repeat T T {v}, v πλησιέστερος ελεύθερος κόμβος στο Τ

Παράδειγμα

x, αν x ανήκει στο Τ near[x]= 0 αν [x,y] δεν ανήκει στο E, για όλα τα y του T y, αν y ανήκει στο T(ο πλησιέστερος κόμβος) Wx,y αν near[x]=y dist[x]= + αν near[x]=0 0 αν near[x]=x

8 8 9 8 8 9 7 8 7 near[]=, dist[]= near[]=, dist[]=8 near[7]=8, dist[7]= near[]=, dist[]=0 near[]=, dist[]= near[7]=8, dist[7]=

Αλγόριθμος Prim (nearest neighbour) initialization; choose s arbitrary; near[s] s; dist(s)=0; For i in Γ(s)do near(i) s; dist(i) w s,i ; for every node i other than s and not in Γ(s)do begin near(i) 0; dist(i) ; end; V T {s}; E T ;

Αλγόριθμος Prim (nearest neighbour) while V T < n do begin u vertex in(v V T ) with smallest dist(u); if (dist(u) >= then graph disconnected ; exit; E T Ε T {(u, near(u))}; V T V T {u}, dist(u)=0 near(u)=u; for x in Γ(u) and x in (V V T ) do if w ux < dist(x) then dist(x) w ux ; near(x) u end; (****)

Συνεκτικότητα Αν G συνεκτικός εύρεση του ΔΕΕΚ σε n- επαναλήψεις. Αν στην i επανάληψη (i < n-) δεν ευρίσκουμε πλευρά [x,y] με x στο δένδρο και y έξω από το δένδρο, τότε ο γράφος δεν είναι συνδεδεμένος (αλλά ήδη γνωρίζουμε έλεγχο συνεκτικότητας σε Ο(m) με την BFS)

Δάσος επικάλυψης Αν ο γράφος δεν είναι συνεκτικός, τότε... ένα δάσοςεπικάλυψηςελαχίστουκόστους Ο αλγόριθμος δίνει τη βέλτιστη λύση (από το θεώρημα βέλτιστου ΔΕΕΚ παρατηρώντας ότι το δάσοςεκκίνησηςσυνίσταταιαπόn μεμονωμένους κόμβους).

Πολυπλοκότητα Prim δέντρο G Κόμβοι εκτός δέντρου near[x] y dist[x] d x x degree(x) Ο αλγόριθμος σε κάθε επανάληψη χρειάζεται O(n + d i ) πράξεις, όπου d i ο βαθμός του εισερχόμενου στο δέντρο κόμβου στην i επανάληψη. Αφού ο αλγόριθμος απαιτεί n- επαναλήψεις, η πολυπλοκότητα είναι O( n )

Αλγόριθμος Kruskal Ξεκινάμε από ένα δάσος από n δένδρα, κάθε ένα δένδρο εκφυλισμένο σε ένα μεμονωμένο κόμβο. Σε κάθε επανάληψη, προσθέτουμετηπλευράμετο μικρότερο κόστος και η οποία δεν δημιουργεί κύκλο με τις ήδη επιλεγμένες πλευρές. Σταματάμε όταν έχουμε ένα δένδρο επικάλυψης (γράφος συνεκτικός) ή όταν δεν ευρίσκουμε πλέον πλευρά να προσθέσουμε (ο γράφος δεν είναι συνεκτικός)

Αλγόριθμος Kruskal - Παράδειγμα Δ ια& τ αξη π λευρω& ν κατα& αυξουσα & ταξη &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &, : κοστος &

Αριθμός συνιστωσών n = αριθμός μεμονομένων κόμβων Β & ημα Β & ημα

Αλγόριθμος Kruskal Β & ημα Β & ημα

Αλγόριθμος Kruskal β ήμα βήμα

T while ( T < n-) and (E ) do begin e smallest edge in E; E E - {e}; if (T {e} has no cycle) then T T {e} end; if ( T < n-) then write network disconnected ; (****) Πολυπλκότητα: O(mlogn) Εξακρίβωση σχηματισμού κύκλου σε O(logn) Αλγόριθμος Kruskal

Αλγόριθμος Kruskal - Δάσος Επικάλυψης Αν ο γράφος είναι μη συνεκτικός, γιαναβρούμε ένα δάσος επικάλυψης με τον αλγόριθμο Prim θα πρέπει να επαναλάβουμε τον αλγόριθμο σε κάθε συνεκτική συνιστώσα ΟαλγόριθμοςKruskal ευρίσκει απ ευθείας ένα δάσος επικάλυψης ελάχιστου κόστους.

Αλγόριθμος Kruskal - Πολυπλοκότητα Ταξινόμηση πλευρών: Ο(mlog m) (m αριθμός πλευρών) Εξακρίβωση σχηματισμού κύκλου: Ο(logn) Επαναλήψεις:m Ο(mlogm) + Ο(mlogn) =Ο(mlogn) δεδομένου ότι m < n

Σύγκριση των αλγορίθμων ( ) Prim : O n ( ) Kruskal = O mlogn πυκνοι & m= O ( n ) ( ) O( ) Prim O n < n logn Α & m= ραιοι O ( n) O ( ) O( ) n > nlogn Kruskal

Θεώρημα βέλτιστου για το ΔΕΕΚ Έστω ( ) με = ( V ) F= F,F,...F F,E k i i i ένα δάσος του γράφου G = ( V, E) και [ u, v] η πλευρά με το ελάχιστο κόστος έχουσα ένα άκρο στο V ( G συνεκτικος & ). Τότε, ανάμεσα σε όλα τα δένδρα επικάλυψης που περιέχουν αυτό το δάσος, υπάρχει ένα, το καλύτερο το οποίο περιέχει την πλευρά u, v. [ ]

Θεώρημα βέλτιστου για το ΔΕΕΚ - Απόδειξη k U i= ` Ε στω T = E οι πλευρες & του δασους & F. i y ' ( ) ( ) ( ) K A K A K A i F x u v F F

Απόδειξη (συνέχεια ) A i Έστω ένα οποιοδήποτε δένδρο επικάλυψης περιέχον το σύνολο των πλευρών Τ. Ας υποθέσουμε ότι υπάρχει ένα δένδρο επικάλυψης A = ( V, E) περιέχον Τ αλλά όχι την πλευρά [ u, v] και του οποίου το κόστος είναι ελάχιστο, δηλαδή κό στος ( Α ) < κόστος A i Αν προσθέσουμε τη πλευρά [ uv, ] μέσα στο Ε δημιουργούμε ένα κύκλο c. Υπάρχει λοιπόν πάνω στον κύκλο c μία πλευρά xy, τέτοια ώστε x V y V\V και.

Απόδειξη (συνέχεια ) Έχουμε λοιπόν W > W xy uv και [ uv, ] T. Αντικαθιστώντας x y με uv, παίρνουμε ένα νέο δένδρο επικάλυψης τέτοιο ώστε :, [ ] το οποίο είναι σε αντίφαση με την (*). ( [ u v] [ x y ]) A = V,E U, \, Κ & οστος A <Κ & οστος A ( ) ( )

To ΔΕΕΚ μπορεί να δώσει ένα κάτω φράγμα της βέλτιστης λύσης του TSP ΔΕΕΚ και TSP TSP: Δίνεται ένας πλήρης γράφος G=(V, E, W) με βάρη, τάξης n. Να βρεθεί ένας κύκλος (Hamilton) οοποίος να περνά από όλους τους κόμβους μία και μόνο μία φορά και ο οποίος να έχει ελάχιστο κόστος.

Πρόβλημα πλανόδιου πωλητή (TSP) Α D Κόστος = 8 B C Α D Κόστος = 7 8 B C

Πρόβλημα πλανόδιου πωλητή (TSP) - Παράδειγμα

ΔΕΕΚ και TSP Kάτω φράγμα Β(Ι), όπου Ι ένα instance του TSP Αφαίρεσε ένα οποιοδήποτε κόμβο v i από το γράφο G. Εύρεση ενός ΔΕΕΚ Τ στον υπογράφο G = (V\{v i }, E ). Έστω Κ(Τ) το κόστος του δένδρου. Θεώρησε δύο πλευρές [v i, v k ] και [v i, v l ], Β(Ι) = Κ(Τ) + w il + w ik k, l i, με το μικρότερο κόστος

ΔΕΕΚ και TSP 8 A E Αφαίρεση του Α 7 8 Β E 7 8 Β 9 D C 9 D C E Κ(Τ) = Β Β(Ι) = Κ(Τ) + W AE + W AC 7 = + + = D C

ΔΕΕΚ και TSP (Απόδειξη) Έστω [v, v,..., v i,..., v n, v ] ένας βέλτιστος κύκλος με κόστος C opt Όταν αφαιρούμε τον κόμβο v i, έχουμε ένα δένδρο Τ' ( μία αλυσίδα v i-,,v, v,v n, v n-,..., v i+ ) Προφανώς Κόστος(Τ) Κόστος(Τ ) v Άρα Β(Ι) = Κόστος(Τ) + W ik + W il v v n v i- v i Kόστος(T ) + W i,i- + W i, i+ = Kόστος(Βέλτιστου κύκλου) = C opt V i+