ΘΕΜΑ : Αλγόριθμος Ford-Fulkerson Α Να εξετάσετε αν ισχύει η συνθήκη συντήρησης της αρχικής ροής στο δίκτυο. Β Με χρήση του αλγορίθμου Ford-Fulkerson να βρεθεί η μέγιστη ροή που μπορεί να σταλεί από τον κόμβο A στον κόμβο B. Θεωρείστε ότι για το γενικό βήμα του αλγορίθμου επιλέγεται ο γειτονικός κόμβος με το «μικρότερο» αναγνωριστικό ανεξάρτητα από το αν είναι διάδοχος ή πρόδρομος. Για παράδειγμα, αν βρισκόμαστε στον E, σαν επόμενος κόμβος του μονοπατιού θα εξεταστεί ο C, έπειτα ο D και τέλος ο F. Επίσης εφαρμόζεται αναζήτηση κατά βάθος, δηλαδή αν δεν προκύψει συνέχεια στο μονοπάτι επαύξησης σε ένα κόμβο ελέγχεται ο αμέσως προηγούμενός του στο μονοπάτι. Αν υπάρχουν περισσότερες της μίας ακμές που συνδέουν δύο κόμβους, επιλέγεται πρώτα αυτή που έχει την ίδια κατεύθυνση με τη ροή. Σε κάθε βήμα να δίνονται το αποτέλεσμα της ρουτίνας Α με τις ετικέτες όσων κόμβων έλαβαν ετικέτα καθώς και το αποτέλεσμα της ρουτίνας Β. Γ Είναι μοναδικός ο συνδυασμός των ροών που δίνει το μέγιστο αποτέλεσμα που βρήκατε ή με διαφορετική επιλογή μονοπατιών επαύξησης θα μπορούσε να προκύψει άλλη ανάθεση των επιμέρους ροών; Απάντηση ΘΕΜΑΤΟΣ Α Συνθήκη συντήρησης της αρχικής ροής Το φορτίο που μεταφέρεται από τον Α είναι: (Α C + 5 (A E = 7 Το φορτίο που φθάνει στον B είναι: 4 (D B + 5 (F B (B F = 7 Επομένως ισχύει η συνθήκη συντήρησης της ίσης ροής μεταξύ αφετηρίας και προορισμού. Για τους υπόλοιπους κόμβους: C: (A C - (C E (C F = 0 D: 4 (E D - 4 (D B = 0 E: 5 (A E + (C E 4 (E D (E F = 0 F: (C F + (E F + (B F 5 (F B = 0
Επομένως, ισχύει και η συνθήκη συντήρησης μηδενικής ροής σε κάθε κόμβο χωριστά του δικτύου. B Εφαρμογή του αλγορίθμου Ford-Fulkerson Βήμα Ρουτίνα Α Ρουτίνα Β Μονοπάτι επαύξησης: A C D B. Συνολική ροή:. Βήμα Ρουτίνα Α Ρουτίνα Β Μονοπάτι επαύξησης: A C F B. Συνολική ροή: 5. Βήμα
Ρουτίνα Α Ρουτίνα Β Μονοπάτι επαύξησης: A E F B. Συνολική ροή: 0. Βήμα 4 Ρουτίνα Α Ρουτίνα Β Μονοπάτι επαύξησης: A E F B. Σημειώνεται ότι η F B είναι backward ακμή όπου η ροή μειώθηκε κατά μονάδες. Συνολική ροή:. Βήμα 5 Ρουτίνα Α Ρουτίνα Β
Η ρουτίνα Α δεν καταφέρνει να εντοπίσει μονοπάτι επαύξησης και ο αλγόριθμος τερματίζει. Η μέγιστη ροή που μπορεί να μεταφερθεί είναι. Γ Μη μοναδικότητα αποτελέσματος Το βέλτιστο αποτέλεσμα που έδωσε η παραπάνω εκτέλεση του Ford-Fulkerson δεν είναι το μοναδικό. Για παράδειγμα η ακόλουθη ανάθεση ροών θα μπορούσε να προκύψει με διαφορετική επιλογή μονοπατιών επαύξησης και δίνει την ίδια ακριβώς τιμή μέγιστης ροής.
ΘΕΜΑ : CMST-Kruskal Δίνεται ό γράφος του σχήματος που αποτελείται από 0 κόμβους και 4 ακμές. Στον κάθε κόμβο αναγράφεται, πέρα από τον αριθμό του και η τιμή του βάρους του (κύκλοι με μπλε σκούρο χρώμα. 4 4 4 5 4 6 7 8 9 0 4 4 5 4 5 6 7 8 6 9 0 0,5 Λαμβάνοντας υπόψη τους παραπάνω ορισμούς να ευρεθεί το CMST του γράφου του σχήματος, όπου: όλες οι ακμές είναι δύο κατευθύνσεων και έχουν τα κόστη χρήσης που δείχνονται στο σχήμα. όλοι οι κόμβοι είναι διατεταγμένοι με σειρά προτεραιότητας επιλογής, όπου τη μέγιστη προτεραιότητα επιλογής την έχει ο κόμβος {} και την ελάχιστη ο κόμβος {0} οι κόμβοι κατά τη χρήση τους σε έναν κλάδο του γράφου, είτε ως τερματικοί κόμβοι είτε ως ενδιάμεσοι κόμβοι, εισάγουν ένα πρόσθετο κόστος/βάρος «w». Για τον συγκεκριμένο γράφο, το διάνυσμα όλων των βαρών {W} είναι: Κόμβος Βάρος Κόμβος Βάρος Κόμβος Βάρος Κόμβος Βάρος W 0,5 W 6 0,5 W 0,5 W 6 W 0,5 W 7 4,0 W W 7 W W 8 W W 8 0,5 W 4 0,5 W 9 W 4 W 9,5 W 5 0,5 W 0 0,5 W 5 0,5 W 0 αν θεωρήσουμε σαν κόμβο αναφοράς τον κόμβο {}, ο κάθε κλάδος χωριστά του CMST που ξεκινά από τον κόμβο {} δεν θα πρέπει να εισάγει αθροιστικά βάρος μεγαλύτερο του 6 (Wmax 6..5
Σημείωση: Το ίδιο ισχύει και για όλους τους ενδιάμεσους κλάδους πριν συνδεθούν με τον κόμβο {}. Αν κατά τον έλεγχο μιας νέας ακμής προκύψει έστω και ένας κλάδος με τιμή μικρότερη του 6, η ακμή γίνεται αποδεκτή, έστω και αν υπάρξουν άλλοι κλάδοι με μεγαλύτερη τιμή του 6. ο κάθε κόμβος χωριστά του CMST δεν μπορεί να συνδέεται σε περισσότερες από τρεις ακμές (node degree =. μια ακμή ek έχει μεγαλύτερη προτεραιότητα επιλογής από μία άλλη ακμή em, όταν: α έχει μικρότερο κόστος και β ο ένας τουλάχιστον από τους δύο κόμβους που συνδέει η ακμή ek έχει μεγαλύτερη προτεραιότητα επιλογής και από τους δύο κόμβους που συνδέει η ακμή em. Σε κάθε βήμα του αλγορίθμου θα καταγράφεται η πληροφορία που δείχνεται στον παρακάτω Πίνακα (για διευκόλυνση δίνονται τα αποτελέσματα των δύο πρώτων βημάτων του αλγορίθμου Kruskal. ΣΗΜΕΙΑ ΤΕΡΜΑΤΙΣΜΟΥ ΕΠΙΛΕΓΜΕΝΗΣ ΑΚΜΗΣ ΚΟΣΤΟΣ ΑΚΜΗΣ ΚΛΑΔΟΣ ΠΟΛΛΑΠΛΩΝ ΣΗΜΕΙΩΝ ΠΟΥ ΣΥΝΔΕΕΤΑΙ Η ΕΠΙΛΕΓΜΕΝΗ ΑΚΜΗ ΣΥΝΟΛΙΚΟ ΚΟΣΤΟΣ ΔΙΚΤΥΟΥ ΑΘΡΟΙΣΤΙΚΟ ΦΟΡΤΙΟ ΚΟΜΒΩΝ TOY KΛΑΔΟΥ ΕΠΙΛΕΓΜΕΝΟΙ ΚΟΜΒΟΙ (μετά το πέρας του βήματος Καταγραφόμενα στοιχεία κατά την εκτέλεση του αλγορίθμου CMST-Kruskal ΒΗΜΑ ΑΛΓΟΡΙΘΜΟΥ Πίνακας: (,6 (,6,0 {,6} (, (,,5 {,6,,} --- --- -- --- --- --- --- Να δείξετε σε σχήμα το CMST που θα προκύψει σε κάθε βήμα από την εφαρμογή του Αλγορίθμου CMST -Kruskal. Απάντηση ΘΕΜΑΤΟΣ Με βάση τον αλγόριθμο Kruskal και τα στοιχεία της εκφώνησης, όλες οι ακμές κατατάσσονται με την αύξουσα σειρά κόστους που δείχνεται στον παρακάτω Πίνακα. A/ A Κόστο ς Ακμής (cij Ακμή (,6 A/ A Κόστο ς Ακμής (cij Ακμή (,8 A/ A Κόστο ς Ακμής (cij Ακμή (4,9 A/ A Κόστο ς Ακμής (cij Ακμή 4 (,9
ΒΗΜΑ ΑΛΓΟΡΙΘΜΟΥ ΣΗΜΕΙΑ ΤΕΡΜΑΤΙΣΜΟΥ ΕΠΙΛΕΓΜΕΝΗΣ ΑΚΜΗΣ ΚΟΣΤΟΣ ΑΚΜΗΣ ΚΛΑΔΟΣ ΠΟΛΛΑΠΛΩΝ ΣΗΜΕΙΩΝ ΠΟΥ ΣΥΝΔΕΕΤΑΙ Η ΕΠΙΛΕΓΜΕΝΗ ΑΚΜΗ ΣΥΝΟΛΙΚΟ ΚΟΣΤΟΣ ΔΙΚΤΥΟΥ ΑΘΡΟΙΣΤΙΚΟ ΦΟΡΤΙΟ ΚΟΜΒΩΝ TOY KΛΑΔΟΥ ΕΠΙΛΕΓΜΕΝΟΙ ΚΟΜΒΟΙ (μετά το πέρας του βήματος (, (4,9 4 (6,7 5 (5,9 (,7 4 (5,0 5 (5,9 6 (5,0 4 (,9 5 (6,7 6 (6, 7 4 (, 5 (4,5 6 (7, 7 (7,8 8 4 (,4 6 (9,0 7 (8,9 8 (7, 9 4 (7, 7 (,6 8 (9,4 9 (8, 40 4 (9, 8 (4,5 9 (0,5 0 (9,5 4 4 (9,0 9 (7,8 0 (,7 (, 4 5 (, 0 (,7 (,4 (,7 4 6 (8,9 (,7 (,8 (,7 Ο αλγόριθμος εκτελείται σε 0-=9 βήματα. Ο τελικός Πίνακας με τα βήματα εκτέλεσης του αλγορίθμου CMST-Kruskal είναι ο παρακάτω. Σε κάθε βήμα δείχνεται το σύνολο των ακμών που εξετάζονται και ο λόγος της απόρριψης. Πίνακας: Καταγραφόμενα στοιχεία κατά την εκτέλεση του αλγορίθμου CMST-Kruskal (,6 (,6,0 {,6} (, (,,5 {,6,,} (,7 (,,7 5,5 {,6,,,7} 4 (,9 (7,,9 7,0 4 (,,9,5 {,6,,,7,9}
5 (4,5 (4,5 5 {,6,,,7,9,4,5} 6 (9,0 (,,9,0 4,0 6 (7,,9,0 7,5 {,6,,,7,9,4,5,0} 7 (,6 (,6 7,5 {,6,,,7,9,4,5,0,,6} 8 (4,5 (4,5 8,5 {,6,,,7,9,4,5,0,,6,4,5} 9 (7,8 (7,8 9,5 {,6,,,7,9,4,5,0,,6,4,5,7, 8} 0 (,7 (,7,,9,-- >6,0 (,7 Loop (,,7 (,8 DCMST = 4 στον {} (5,4,9,0,5 (4,9 (5,4,9,, 4,5 (5,4,9,,7 8,0 (5,0 Loop (4,5,0,9 (6,7 (,6,7,,--- >6,0 (7, (6,,7,,----- >6,0 (8,9 DCMST = 4 στον {9} (9,4 DCMST = 4 στον {9} {,6,,,7,9,4,5,0,,6,4,5,7, 8} (0,5 (5,4,9,0,5,4 5,0 (,,9,0,5,4 5,5 (7,,9,0,5,4 9,0 {,6,,,7,9,4,5,0,,6,4,5,7, 8} (,7 (,7,8 5 4,5 {,6,,,7,9,4,5,0,,6,4,5,7, 8,} (,4 (,4,5,0,9,---- >6,0 (,8 (,8,7, 6,5 (4,9 (9,4,5,0,9,--- >6,0 (6,7 (,6,7, ή 8 >6,0 (5,9 Loop (4,5,9 DCMST = 4 στον {9} (6, (,6,,6 8 4,5 {,6,,,7,9,4,5,0,,6,4,5,7, 8,}
4 5 6 (7,8 (8,7,,--- >6,0 (7, (8,7,,7,,--- >6,0 (8, (8,,5 Loop (4,5,9 (9,5 DCMST = 4 στον {9} (, (,6,,,7,8 4 6,0 Loop (,6,7 (,7 DCMST = 4 στον {} (,7 (,6,,,7,,8 8,5 (,9 (8,,9 7 5,0 (5,9 (8,,9,5,--- >6,0 {,6,,,7,9,4,5,0,,6,4,5,7, 8,,8,} {,6,,,7,9,4,5,0,,6,4,5,7, 8,,8,} {,6,,,7,9,4,5,0,,6,4,5,7, 8,,8,,9} 7 (5,0 (0,5,4,5 (0,5,0,9,4,5 5 0 (0,5,0,9,, 5,5 {,6,,,7,9,4,5,0,,6,4,5,7, 8,,8,,9,0} (0,5,0,9,,7 9,0 (,,,7 6,0 8 (, 4 (,4 4 (,,,9,4,5 5,0 4 (,,,9,0,5,4 6,0 (,,,9,0,5,0 6.0 Loop (,4,9 DCMST = 4 στον {} {,6,,,7,9,4,5,0,,6,4,5,7, 8,,8,,9,0} (7, 4 (,,,7,,8 ή 9 >6,0 9 (9, 4 DCMST = 4 στον {9} (9,0 4 (8,,9,0,5, ---- >6,0 (, 5 (,6,,,,8 6,0 {,6,,,7,9,4,5,0,,6,4,5,7, 9 (,6,,,,9 6,0 8,,8,,9,0} (8,9 6 Loop (,,9,8,7 Το τελικό δένδρο επικάλυψης DCMST-Kruskal είναι το παρακάτω:
4 4 5 4,5 6 7 8 9 0 5 4 5 6 7 8 9 0 0,5.5
ΘΕΜΑ : ΑΛΓΟΡΙΘΜΟΣ ΚΕΝΤΡΟΥ ΜΑΖΑΣ Ο αλγόριθμος κέντρου μάζας αναφέρει ότι: "...Κατά την εκτέλεση του αλγορίθμου, οι δύο πλησιέστερες συστάδες θα πρέπει να προσδιορίζονται διαρκώς, λόγω της συγχώνευσης των συστάδων και της δημιουργίας νέων." Σας ζητείται να εξετάσετε έναν εναλλακτικό αλγόριθμο όπου δεν γίνεται αυτός ο επαναπροσδιορισμός. Συγκεκριμένα, αν αντί του διαρκούς επανυπολογισμού των αποστάσεων σε κάθε βήμα του αλγορίθμου, επιλέξουμε να χρησιμοποιήσουμε τις αποστάσεις όπως υπολογίστηκαν αρχικά (πριν γίνει κάποια συγχώνευση. Ο εναλλακτικός αλγόριθμος επομένως δουλεύει ως εξής: - Υπολόγισε τις αποστάσεις όλων των σημείων μεταξύ τους και κατάταξέ τις σε αύξουσα σειρά. - Συγχώνευσε τα πιο κοντινά σημεία, στη συνέχεια τα αμέσως λιγότερο κοντινά κλπ. Αν κάποιο σημείο έχει ήδη συγχωνευτεί, τότε συγχώνευσε τη συστάδα στην οποία περιέχεται. Α. Έστω ότι έχουμε τα παρακάτω σημεία με τις αντίστοιχες συντεταγμένες και βάρη: Εφαρμόστε και τους δύο αλγορίθμους. Β. Έστω ότι έχουμε τα παρακάτω σημεία με τις αντίστοιχες συντεταγμένες και βάρη: Εφαρμόστε και τους δύο αλγορίθμους. Γ. Ο εναλλακτικός αλγόριθμος έχει μικρότερη πολυπλοκότητα αφού χρειάζεται να υπολογίσει αποστάσεις μόνο στην αρχή και όχι και μετά από κάθε βήμα. Ποια πιστεύετε είναι η βασική του αδυναμία; Τι παρατηρήσατε από τα προηγούμενα ερωτήματα; Απάντηση ΘΕΜΑΤΟΣ A Έστω ότι έχουμε τα παρακάτω σημεία με τις αντίστοιχες συντεταγμένες και βάρη:
Οι αποστάσεις ανά δύο των σημείων είναι: Οι αποστάσεις των σημείων σε αύξουσα σειρά είναι Αρχικά, συγχωνεύονται τα σημεία A και B, όπου και προκύπτει έστω το σημείο ΑΒ. Οι συντεταγμένες του σημείου AB θα είναι και το βάρος του Στο επόμενο βήμα, ο κανονικός αλγόριθμος θα υπολογίσει ξανά τις αποστάσεις των σημείων και θα επιλέξει τη μικρότερη, ενώ ο εναλλακτικός θα συνεχίσει με το επόμενο σημείο της αρχικής σειράς κατάταξης. Κανονικός αλγόριθμος Υπολογισμός αποστάσεων:
Είναι, συνεπώς θα γίνει συγχώνευση των σημείων AB και C, έστω στο σημείο ABC. Για το σημείο ABC, έχουμε: Απομένουν δύο σημεία, τα οποία, λόγω του περιορισμού στο βάρος κάθε συστάδας, δεν μπορούν να συγχωνευτούν. Τα τελικά σημεία είναι: Εναλλακτικός αλγόριθμος Συγχώνευση B με C, αλλά καθώς το B έχει ήδη συγχωνευτεί με το A, πραγματοποιείται συγχώνευση του AB με το C. Οι υπολογισμοί για το σημείο ABC είναι όμοιοι με τους παραπάνω, οπότε προκύπτει ξανά
ενώ, λόγω του περιορισμού στο βάρος των συστάδων, δεν γίνεται άλλη συγχώνευση. Συνεπώς, και οι δύο αλγόριθμοι καταλήγουν στο ίδιο αποτέλεσμα, δηλαδή στα εξής: Β Έστω ότι έχουμε τα παρακάτω σημεία με τις αντίστοιχες συντεταγμένες και βάρη: Οι αποστάσεις ανά δύο των σημείων είναι:
Οι αποστάσεις των σημείων σε αύξουσα σειρά είναι Αρχικά, συγχωνεύονται τα σημεία Aκαι B, όπου και προκύπτει έστω το σημείο ΑΒ. Οι συντεταγμένες του σημείου AB θα είναι και το βάρος του Στο επόμενο βήμα, ο κανονικός αλγόριθμος θα υπολογίσει ξανά τις αποστάσεις των σημείων και θα επιλέξει τη μικρότερη, ενώ ο εναλλακτικός θα συνεχίσει με το επόμενο σημείο της αρχικής σειράς κατάταξης. Κανονικός αλγόριθμος Υπολογισμός αποστάσεων: Είναι, συνεπώς θα γίνει συγχώνευση των σημείων AB και D, έστω στο σημείο ABD. Για το σημείο ABD, έχουμε: Απομένουν δύο σημεία, τα οποία, λόγω του περιορισμού στο βάρος κάθε συστάδας, δεν μπορούν να συγχωνευτούν. Τα τελικά σημεία είναι:
Εναλλακτικός αλγόριθμος Συγχώνευση B με C, αλλά καθώς το B έχει ήδη συγχωνευτεί με το A, πραγματοποιείται συγχώνευση του AB με το C. Στο σημείο ABC που θα προκύψει, έχουμε Απομένουν δύο σημεία, τα οποία, λόγω του περιορισμού στο βάρος κάθε συστάδας, δεν μπορούν να συγχωνευτούν. Τα τελικά σημεία είναι: Παρατηρούμε πως οι δύο αλγόριθμοι έδωσαν διαφορετικά αποτελέσματα.
Γ Ο εναλλακτικός αλγόριθμος βασίζεται στην αρχική απόσταση των σημείων και δε λαμβάνει υπόψη του τη μετατόπιση που μπορεί να προκύψει λόγω του βάρους των σημείων που συγχωνεύτηκαν.