∆ηµήτρης Ψούνης – ΠΛΗ20, Επανάληψη 10 1
ΠΛΗ20 – ΕΠΑΝΑΛΗΨΗ 10
Αλγόριθµοι
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΠΑΝΑΛΗΨΗ
Επαναλάβετε τα µαθήµατα:
• Θεωρία Γράφων/2 – Μάθηµα 5.4: Αλγόριθµος Dijkstra
• ∆ένδρα – Μάθηµα 6.2: Ο αλγόριθµος του Prim, Κατά Βάθος και Κατά Πλάτος
• ∆ένδρα – Μάθηµα 6.3: Κατασκευή/Αναζήτηση και ∆ιασχίσεις σε ∆.∆.Α.
Ο∆ΗΓΙΕΣ ΓΙΑ ΤΟΝ ΧΡΟΝΟ ΕΠΙΛΥΣΗΣ ΑΣΚΗΣΕΩΝ:
Από αυτό το τελευταίο πακέτο ασκήσεων αναµένουµε µια οµάδα στα Σ/Λ που είναι εφαρµογή των
αλγορίθµων και συνήθως ζητείται και στο Β’µέρος όπου ζητούνται αποδείξεις ιδιοτήτων των δοµών
που παράγουν οι αλγόριθµιο σαν αυτές που µελετήσαµε στα αντίστοιχα µαθήµατα. Απαιτείται να
ξέρουµε άψογα την εκτέλεση των αλγορίθµων και να µελετήσουµε τις βασικές αποδείξεις στις δοµές
των εξετάσεων.
Κάθε οµάδα ερωτήσεων (Σ/Λ) πρέπει να έχει απαντηθεί εντός 7’ και όλες οι ασκήσεις εντός του
συνιστώµενου χρόνου. Έπειτα συµβουλευτείτε τις αντίστοιχες ηχογραφήσεις για να δείτε
ολοκλήρωµένα τις λύσεις των ασκήσεων.
Συνιστώµενοι Χρόνοι για την επανάληψη:
Χρόνος Μελέτης των Μαθηµάτων: 1.00’
Χρόνος Απάντησης Ερωτήσεων : 42’
Χρόνος Απάντησης Ασκήσεων: 2.30’
Ηχογραφήσεις Ασκήσεων: 2.30’
∆ηµήτρης Ψούνης – ΠΛΗ20, Επανάληψη 10 2
Ερωτήσεις
Ερωτήσεις 1
∆ίνεται το πλήρες διµερές γράφηµα ,n mK µε σύνολα ανεξαρτησίας Α και Β και βάρη 1 σε όλες τις ακµές. Στο γράφηµα αυτό:
1. Ο αλγόριθµος διάσχισης κατά πλάτος παράγει δένδρο ύψους 1n m+ −
2. Ο αλγόριθµος διάσχισης κατά βάθος παράγει δένδρο ύψους 2
3. Το βάρος του ελάχιστου συνδετικού δένδρου είναι n m+
4. Η προδιατεταγµένη (preorder) διάσχιση του δένδρου που παράγει ο αλγόριθµος διάσχισης κατά βάθος επισκέπτεται
τις κορυφές των συνόλων Α και Β εναλλάξ
Ερωτήσεις 2
Θεωρούµε ένα γράφηµα G µε θετικά βάρη στις ακµές. Θεωρούµε επίσης το γράφηµα 'G στο οποίο τα βάρη όλων των
ακµών έχουν πολλαπλασιαστεί µε τον ίδιο θετικό αριθµό καθώς και το γράφηµα ''G στο οποίο τα βάρη όλων των ακµών
έχουν αυξηθεί κατά τον ίδιο θετικό αριθµό:
1. Ο αλγόριθµος του Dijkstra πάντα δίνει το ίδιο συντοµότερο µονοπάτι µεταξύ δύο συγκεκριµένων κορυφών και στα
τρία γραφήµατα G , 'G και ''G
2. Ο αλγόριθµος του Prim θα κατασκευάσει το ίδιο ελάχιστο συνδετικό δένδρο και στα τρία γραφήµατα G , 'G και ''G
αν ξεκινήσει από την ίδια κορυφή
3. Το συντοµότερο µονοπάτι µεταξύ δύο συγκεκριµένων κορυφών πάντα περιλαµβάνει µία ακµή ελάχιστου βάρους
4. Το ελάχιστο συνδετικό δένδρο πάντα περιλαµβάνει µία ακµή ελάχιστου βάρους
Ερωτήσεις 3
Για το γράφηµα του διπλανού σχήµατος, ποιες από τις
παρακάτω προτάσεις είναι αληθείς και ποιες όχι; Για
τις προτάσεις 3 και 4, να θεωρήσετε ότι ο αλγόριθµος
του Prim ξεκινά από την κορυφή s.
1. Υπάρχει Ελάχιστο Συνδετικό ∆έντρο που περιέχει όλες τις ακµές βάρους 1.
2. Υπάρχει Ελάχιστο Συνδετικό ∆έντρο που περιέχει όλες τις ακµές βάρους 2.
3. Η δεύτερη ακµή που θα προστεθεί στο Ελάχιστο Συνδετικό ∆έντρο από τον αλγόριθµο του Prim είναι η
ακµή (s, v1).
4. Η ακµή (v1, v2) θα προστεθεί στο Ελάχιστο Συνδετικό ∆έντρο από τον αλγόριθµο του Prim πριν από την
ακµή (v6, v3).
Ερωτήσεις 4
Σε ένα συνδεόµενο γράφηµα στο οποίο όλες οι ακµές έχουν το ίδιο θετικό βάρος, το ελάχιστο µονοπάτι από µια κορυφή s
προς µια κορυφή t µπορεί να βρεθεί,
1. µε τον αλγόριθµο του Dijkstra
2. µε τον αλγόριθµο του Prim
3. µε τον αλγόριθµο διάσχισης κατά πλάτος
4. µε τον αλγόριθµο διάσχισης κατά βάθος
Ερωτήσεις 5
Σε ένα συνδεόµενο γράφηµα G στο οποίο όλες οι ακµές έχουν βάρος ισχύει:
1. Αν τα βάρη είναι θετικά, ο αλγόριθµος του Dijkstra πρέπει υποχρεωτικά να µονιµοποιήσει τις ετικέτες όλων των
κορυφών του G για να βρει το ελάχιστο µονοπάτι µεταξύ δύο κορυφών του G
2. Ο αλγόριθµος του Prim µπορεί να υπολογίσει ένα ελάχιστο συνδετικό δένδρο του G ακόµη και αν κάποια από τα
βάρη είναι αρνητικά
3. Ένα συνδετικό δένδρο του G µπορεί να βρεθεί µε τους αλγόριθµους διάσχισης (είτε κατά πλάτος είτε κατά βάθος)
4. Αν από το G αφαιρέσουµε την βαρύτερη ακµή του, το γράφηµα που αποµένει έχει το ίδιο ελάχιστο συνδετικό
δένδρο µε το G
∆ηµήτρης Ψούνης – ΠΛΗ20, Επανάληψη 10 3
Ερωτήσεις 6
Σε ένα συνδεόµενο γράφηµα G στο οποίο όλες οι ακµές έχουν θετικό βάρος ισχύει:
1. Ο αλγόριθµος του Dijkstra εφαρµοζόµενος στο G µε τα αρχικά του βάρη και στο G µε βάρος κάθε ακµής αυξηµένο
κατά την ίδια θετική ποσότητα, θα επιστρέψει το ίδιο ελάχιστο µονοπάτι µεταξύ δύο κορυφών.
2. Ο αλγόριθµος του Prim εφαρµοζόµενος στο G µε τα αρχικά του βάρη και στο G µε βάρος κάθε ακµής αυξηµένο
κατά την ίδια θετική ποσότητα, θα επιστρέψει το ίδιο ελάχιστο συνδετικό δένδρο.
3. Στο δένδρο διάσχισης κατά βάθος, ένα σηµείο κοπής είναι φύλλο.
4. Η βαρύτερη ακµή του G δεν µετέχει σε κανένα ελάχιστο συνδετικό του δένδρο.
Ερωτήσεις 7
Ποιες από τις παρακάτω προτάσεις αληθεύουν;
1. Στον αλγόριθµο του Prim αν σε κάποιο βήµα µία ακµή µπει στο ελάχιστο συνδετικό δένδρο, τότε παραµένει µέχρι
τέλους του αλγορίθµου.
2. Στον αλγόριθµο του Dijkstra αν η ετικέτα µίας κορυφής ελαττωθεί σε κάποιο βήµα, τότε διατηρεί αυτή τη τιµή µέχρι
τέλους του αλγορίθµου.
3. Ο αλγόριθµος του Prim πάντα θα συµπεριλάβει τουλάχιστον µία ακµή ελάχιστου βάρους στο ελάχιστο συνδετικό
δένδρο.
4. Ο αλγόριθµος του Dijkstra πάντα θα συµπεριλάβει µία ακµή ελάχιστου βάρους στο ελάχιστο µονοπάτι.
Ερωτήσεις 8
Ποιες από τις παρακάτω προτάσεις αληθεύουν;
1. Ο αλγόριθµος ∆ιάσχισης κατά Πλάτος παράγει το ίδιο αποτέλεσµα όταν εφαρµόζεται στο K2n και στο Kn,n .
2. Ο αλγόριθµος ∆ιάσχισης κατά Βάθος παράγει το ίδιο αποτέλεσµα όταν εφαρµόζεται στο K2n και στο Kn,n .
3. Ο αλγόριθµος ∆ιάσχισης κατά Πλάτος υπολογίζει το συντοµότερο µονοπάτι από µία κορυφή s προς µία κορυφή t
όταν το γράφηµα έχει διαφορετικά θετικά βάρη στις ακµές.
4. Ο αλγόριθµος ∆ιάσχισης κατά Βάθος υπολογίζει το συντοµότερο µονοπάτι από µία κορυφή s προς µία κορυφή t
όταν το γράφηµα έχει διαφορετικά βάρη στις ακµές και δεν έχει κύκλους.
Ερωτήσεις 9
Ποιές από τις παρακάτω προτάσεις αληθεύουν;
1. Tο δένδρο που παράγει ο αλγόριθµος αναζήτησης κατά βάθος στο Κn έχει ύψος 2
2. Tο δένδρο που παράγει ο αλγόριθµος αναζήτησης κατά πλάτος στο Κn, n ≥2 έχει ύψος 2
3. Ο βαθµός του δένδρου που παράγει ο αλγόριθµος αναζήτησης κατά πλάτος στο Κn είναι n
4. Ο αλγόριθµος αναζήτησης κατά πλάτος επιστρέφει πάντα ένα συνδετικό δένδρο ενώ ο αλγόριθµος αναζήτησης κατά
βάθος όχι
∆ηµήτρης Ψούνης – ΠΛΗ20, Επανάληψη 10 4
Ασκήσεις
Άσκηση 1
Έστω απλό µη κατευθυνόµενο γράφηµα G=(V,E) µε θετικά βάρη στις ακµές και έστω Τ το ελάχιστο συνδετικό του δένδρο,
όπως υπολογίστηκε από τον αλγόριθµο του Prim.
1. Έστω ότι προστίθεται µια ακµή στο γράφηµα που συνδέει δύο κορυφές του V µε θετικό ακέραιο βάρος. Προτείνετε
αλγόριθµο που να υπολογίζει το ελάχιστο συνδετικό δένδρο του νέου γραφήµατος, χωρίς να το επανυπολογίσετε
µε το αλγόριθµο του Prim.
2. ‘Εστω ότι αφαιρείται µια ακµή από το γράφηµα. Προτείνετε αλγόριθµο που να υπολογίζει το ελάχιστο συνδετικό
δένδρο του γραφήµατος χωρίς να το επανυπολογίσετε µε τον αλγόριθµο του Prim.
Άσκηση 2
Έστω απλό µη κατευθυνόµενο γράφηµα G=(V,E) µε θετικά βάρη στις ακµές και έστω Τ το ελάχιστο συνδετικό του δένδρο,
όπως υπολογίστηκε από τον αλγόριθµο του Prim.
1. Έστω ότι προστίθεται µια κορυφή στο γράφηµα που συνδέεται µε κάποιες από τις κορυφές του V µε θετικά ακέραια
βάρη στις ακµές. Προτείνετε αλγόριθµο που να υπολογίζει το ελάχιστο συνδετικό δένδρο του νέου γραφήµατος,
χωρίς να το επανυπολογίσετε µε το αλγόριθµο του Prim.
2. ‘Εστω ότι αφαιρείται µια κορυφή από το γράφηµα (καθώς και οι προσπίπτουσες σε αυτήν ακµές). Προτείνετε
αλγόριθµο που να υπολογίζει το ελάχιστο συνδετικό δένδρο του γραφήµατος χωρίς να το επανυπολογίσετε µε τον
αλγόριθµο του Prim.
Άσκηση 3
Έστω συνδεόµενος µη κατευθυνόµενο γράφος G=(V,E) όπου όλα τα βάρη στις ακµές είναι k (k>1) εκτός από µία ακµή που
έχει βάρος 1.
1. Ποιο είναι το βάρος του ελάχιστου συνδετικού δένδρου;
2. Προτείνετε αλγόριθµο που ∆ΕΝ χρησιµοποιεί τον αλγόριθµο του Prim για τον υπολογισµό του ελάχιστου
συνδετικού δένδρου.
Άσκηση 4
Έστω v0- v1-…vn το συντοµότερο µονοπάτι για να µεταβούµε από την κορυφή v0 στην κορυφή vn. Αποδείξτε ότι το vi-…-vj
τµήµα του, είναι το συντοµότερο µονοπάτι για να πάµε από την κορυφή vi στην κορυφή vj.