(Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · web...

23
Ερώτημα 1 Να εφαρμόσετε τον αλγόριθμο του Dijkstra για την εύρεση του συντομότερου μονοπατιού στο γράφημα G από την κορυφή Α προς την κορυφή Ζ. Να παρουσιάσετε αναλυτικά την εκτέλεση του αλγορίθμου, βήμα προς βήμα, καταγράφοντας τις ετικέτες των κόμβων σε κάθε βήμα. Απάντηση Έστω w:ER + η συνάρτηση των (θετικών) βαρών των ακμών, που απεικονίζεται στο σχήμα της εκφώνησης. Η πλήρης εφαρμογή του αλγόριθμου του Dijkstra για την εύρεση μονοπατιών ελάχιστου συνολικού βάρους από την κορυφή Α την κορυφή Ζ της εκφώνησης, φαίνεται στο Σχήμα 1. Ακολουθεί αναλυτική παρουσίαση των βημάτων (δηλαδή, της αρχικοποίησης και των επαναλήψεων του βασικού βρόχου) του αλγορίθμου. Με την εκκίνηση του αλγορίθμου (βήμα 0 του σχήματος) γίνεται η αρχικοποίηση των παραμέτρων. Πιο συγκεκριμένα, όλες οι ετικέτες των κόμβων αρχικοποιούνται στην τιμή (άπειρο), εκτός από την ετικέτα της κορυφής Α, την οποία έχουμε επιλέξει ως αφετηρία του μονοπατιού που θέλουμε να κατασκευάσουμε, και η τιμή της ετικέτας A Ζ Δ Ε Η Β Γ Θ Ι 2 1 1 1 2 3 2 11 12 14 10 G 1

Upload: others

Post on 12-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 1 Να εφαρμόσετε τον αλγόριθμο του Dijkstra για την εύρεση του συντομότερου μονοπατιού στο γράφημα G από την κορυφή Α προς την κορυφή Ζ.Να παρουσιάσετε αναλυτικά την εκτέλεση του αλγορίθμου, βήμα προς βήμα, καταγράφοντας τις ετικέτες των κόμβων σε κάθε βήμα.

Απάντηση

Έστω w:ER+ η συνάρτηση των (θετικών) βαρών των ακμών, που απεικονίζεται στο σχήμα της εκφώνησης. Η πλήρης εφαρμογή του αλγόριθμου του Dijkstra για την εύρεση μονοπατιών ελάχιστου συνολικού βάρους από την κορυφή Α την κορυφή Ζ της εκφώνησης, φαίνεται στο Σχήμα 1. Ακολουθεί αναλυτική παρουσίαση των βημάτων (δηλαδή, της αρχικοποίησης και των επαναλήψεων του βασικού βρόχου) του αλγορίθμου.Με την εκκίνηση του αλγορίθμου (βήμα 0 του σχήματος) γίνεται η αρχικοποίηση των παραμέτρων. Πιο συγκεκριμένα, όλες οι ετικέτες των κόμβων αρχικοποιούνται στην τιμή (άπειρο), εκτός από την ετικέτα της κορυφής Α, την οποία έχουμε επιλέξει ως αφετηρία του μονοπατιού που θέλουμε να κατασκευάσουμε, και η τιμή της ετικέτας της αρχικοποιείται στο μηδέν. Όλες οι ετικέτες θεωρούνται καταρχήν προσωρινές, και για το λόγο αυτό υποδεικνύονται στο σχήμα με κίτρινο χρώμα.

Στη συνέχεια (βήμα 1) ο αλγόριθμος εισέρχεται για πρώτη φορά στον κύριο βρόχο (while-loop) και επιλέγει ως κορυφή με τη μικρότερη τιμή ετικέτας την κορυφή Α (η κορυφή που επιλέγεται σε κάθε επανάληψη για μονιμοποίηση της ετικέτας της υποδεικνύεται από το κόκκινο χρώμα της ετικέτας). Η κορυφή αυτή αφαιρείται από το σύνολο Τ των κορυφών με προσωρινές ετικέτες.

A

Ζ

Δ Ε

Η

Β Γ

Θ Ι

2

1

1

1

23

2

11

1214

10

G

1

Page 2: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Επειδή στο εξής η τιμή της ετικέτας αυτής γίνεται μόνιμη, σε όλα τα επόμενα βήματα η κορυφή Α θα έχει ακριβώς την ίδια τιμή ετικέτας και υποδεικνύεται με μαύρο χρώμα της ετικέτας της. Επίσης, οι γειτονικές κορυφές της Α οι οποίες έχουν ακόμα προσωρινές ετικέτες, πρέπει να εξεταστούν για ενδεχόμενη αλλαγή της τιμής της ετικέτας τους. Στο βήμα 1 οι κορυφές αυτές υποδεικνύονται από το μπλε χρώμα των ετικετών τους και είναι οι Β,Θ. Οι ετικέτες τους ανανεώνονται ως εξής: L(B) = min { L(B), L(A) + w(AB) } = min{ , 0+2 } = 2 και L(Θ) = min{ L(Θ), L(A) + w(AΘ) } = min{ , 0+1 } = 1. Όλες οι υπόλοιπες κορυφές με προσωρινές ετικέτες (κίτρινου χρώματος στο βήμα 1) διατηρούν τις ετικέτες τους αναλλοίωτες. Το βήμα 1 δείχνει τις τελικές τιμές των ετικετών μετά την ολοκλήρωση της πρώτης εκτέλεσης του βασικού βρόχου του αλγορίθμου. Παρατηρείστε ότι οι Β,Θ συνεχίζουν να έχουν προσωρινές ετικέτες. Γι’ αυτό ακριβώς η Β στο επόμενο βήμα (βήμα 2) έχει και πάλι κίτρινου χρώματος ετικέτα.

Η 2η εκτέλεση του βρόχου (βήμα 2 του σχήματος) επιλέγει (μεταξύ των κορυφών με προσωρινές ετικέτες) την κορυφή Θ με ετικέτα 1, της οποίας οι προς εξέταση για πιθανή αλλαγή ετικετών γειτονικές κορυφές της είναι οι Ζ, Ι. Οι ετικέτες των κορυφών αυτών αλλάζουν ως εξής: L(Ζ) = min{ L(Ζ), L(Θ) + w(ΘΖ) } = min{ , 1+10 } = 11. L(Ι) = min{ L(Ι), L(Θ) + w(ΘΙ) } = min {, 1+14} = 15. Η κορυφή Θ αποκτά τη μόνιμη τιμή της ετικέτας της και γι’ αυτό σε όλα τα επόμενα βήματα η ετικέτα της έχει μαύρο χρώμα.

Στην 3η επανάληψη του βρόχου (βήμα 3) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Β (κόκκινο χρώμα). Η μοναδική γειτονική της κορυφή με προσωρινή ετικέτα είναι η Γ (μπλε χρώμα ετικέτας) η οποία εξετάζεται για αλλαγή τιμής της ετικέτας της: L(Γ) = min{ L(Γ), L(Β) + w(ΒΓ) } = min{ , 2+1 } = 3. Όλες οι άλλες προσωρινές ετικέτες (κίτρινο χρώμα) παραμένουν αμετάβλητες.

Στην 4η επανάληψη του βρόχου (βήμα 4) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Γ, που έχει τη μικρότερη τιμή ετικέτας (3) μεταξύ των προσωρνινών ετικετών στο τέλος του βήματος 3. Η μοναδική γειτονική κορυφή της Γ με προσωρινή ετικέτα είναι η Ε. Η αλλαγή της ετικέτας της είναι η εξής: L(Ε) = min{ L(Ε), L(Γ) + w(ΓΕ) } = min{ , 3+1 } = 4. Οι υπόλοιπες ετικέτες δε μεταβάλλονται.

Στην 5η επανάληψη του βρόχου (βήμα 5) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Ε, που έχει τη μικρότερη τιμή ετικέτας (4) μεταξύ των προσωρνινών ετικετών στο τέλος του βήματος 4. Οι γειτονικές κορυφές της Ε με προσωρινή ετικέτα είναι οι Δ,Η. Οι ετικέτες τους αλλάζουν ως εξής: L(Δ) = min { L(Δ), L(Ε) + w(ΕΔ) } = min {, 4+2} = 6. L(Η) = min { L(Η), L(Ε) + w(ΕΗ) } = min {, 4+3} = 7. Οι υπόλοιπες ετικέτες δε μεταβάλλονται.

2

Page 3: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Σχήμα 1 Τα βήματα εφαρμογής του αλγορίθμου του Dijkstra. Με κίτρινο χρώμα απεικονίζονται οι προσωρινές ετικέτες των κορυφών που δεν εξετάζονται για μεταβολή. Με μπλε χρώμα απεικονίζονται οι προσωρινές ετικέτες των κορυφών που πρέπει να εξεταστούν για ενδεχόμενη μεταβολή της τιμής τους. Με κόκκινο χρώμα απεικονίζεται η ετικέτα της εκάστοτε κορυφής που επιλέγεται από τον βασικό βρόχο του αλγορίθμου για μονιμοποίηση. Με μαύρο χρώμα απεικονίζονται οι ήδη μόνιμες ετικέτες κορυφών.

3

Page 4: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Στην 6η επανάληψη του βρόχου (βήμα 6) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Δ, που έχει τη μικρότερη τιμή ετικέτας (6) μεταξύ των προσωρνινών ετικετών στο τέλος του βήματος 5. Η μοναδική γειτονική κορυφή της Δ με προσωρινή ετικέτα είναι η Ζ. Η ετικέτα της αλλάζει ως εξής: L(Ζ) = min { L(Ζ), L(Δ) + w(ΔΖ) } = min {11, 6+11} = 11. Παρατηρούμε λοιπόν ότι, αν και εξετάζεται για αλλαγή, η ετικέτα της Ζ τελικά δε μεταβάλλεται γιατί έχουμε ήδη στη διάθεσή μας μικρότερο μονοπάτι από την Α στη Ζ (Α,ΑΘ,Θ,ΘΖ,Ζ), το οποίο καθορίστηκε σε προηγούμενο βήμα του αλγορίθμου (βήμα 2). Οι υπόλοιπες ετικέτες επίσης δε μεταβάλλονται.

Στην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Η, που έχει τη μικρότερη τιμή ετικέτας (7) μεταξύ των προσωρνινών ετικετών στο τέλος του βήματος 6. Οι γειτονικές κορυφές της Η με προσωρινή ετικέτα είναι οι Ζ, Ι. Οι ετικέτες τους εξετάζονται για αλλαγή ως εξής: L(Ζ) = min { L(Ζ), L(Η) + w(ΗΖ) } = min {11, 7+2} = 9. L(Ι) = min { L(Ι), L(Η) + w(ΗΙ) } = min {15, 7+12} = 15. Παρατηρούμε ότι η κορυφή Ζ ανανεώνει την ετικέτα της σε 9 γιατί βρέθηκε το συντομότερο μονοπάτι (Α, ΑΒ, Β, ΒΓ, Γ, ΓΕ, Ε, ΕΗ, Η, ΗΖ, Ζ) από το μονοπάτι (Α,ΑΘ,Θ,ΘΖ,Ζ) που είχε μέχρι τώρα στη διάθεσή της ήδη από το βήμα 2. Η ετικέτα της Ι τελικά δε μεταβάλλεται γιατί η κορυφή Ι διαθέτει μικρότερο μονοπάτι σύνδεσης με την Α (Α,ΑΘ,Θ,ΘΙ,Ι), που καθορίστηκε σε προηγούμενο βήμα του αλγορίθμου (βήμα 2). Οι υπόλοιπες ετικέτες δε μεταβάλλονται.

Στην 8η επανάληψη του βρόχου (βήμα 8) επιλέγεται για μονιμοποίηση της ετικέτας της η κορυφή Ζ, που έχει τη μικρότερη τιμή ετικέτας (9) μεταξύ των προσωρνινών ετικετών στο τέλος του βήματος 7. Εδώ δεν υπάρχει καμιά γειτονική κορυφή της Ζ με προσωρινή ετικέτα. Συνεπώς, καμιά ετικέτα δε μεταβάλλεται.

Στο σημείο αυτό ο αλγόριθμος διαπιστώνει ότι η Ζ μόλις απέκτησε μόνιμη ετικέτα, δηλαδή αφαιρέθηκε από το σύνολο Τ των κορυφών με τις προσωρινές ετικέτες. Κατά συνέπεια, στην επόμενη απόπειρα εκτέλεσης του βρόχου διαπιστώνεται ότι δεν ικανοποιείται η συνθήκη εισόδου στο βρόχο, και για το λόγο αυτό ο αλγόριθμος συνεχίζει στην εντολή μετά το βρόχο και τερματίζει. Το σύνολο των ετικετών που επιστρέφονται από τον αλγόριθμο φαίνονται στο βήμα 9 του σχήματος.

Παρατηρείστε ότι η κορυφή Ι παραμένει με προσωρινή τιμή της ετικέτας της, διότι ο αλγόριθμος δεν πρόλαβε να της αναθέσει την τελική της ετικέτα, πριν φτάσει στην κορυφή Ζ που ήταν ο τελικός προορισμός.

4

Page 5: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 2Στο παρακάτω γράφημα ζητείται να υπολογιστεί το ελάχιστο μονοπάτι μεταξύ των κορυφών Α και Λ. Ο αλγόριθμος του Dijkstra μπορεί να εφαρμοστεί σε οποιοδήποτε γράφημα που έχει μόνο θετικά βάρη. Βρείτε έναν τρόπο να εξαλείψετε τις αρνητικές τιμές από το γράφημα ώστε να εφαρμόσετε στη συνέχεια τον αλγόριθμο του Dijkstra. Διευκρινίζεται ότι στο ερώτημα αυτό αρκεί να προτείνετε πώς θα χρησιμοποιήσετε τον αλγόριθμο του Dijkstra, χωρίς να απαιτείται να παρουσιάσετε την ίδια την εκτέλεση του αλγόριθμου του Dijkstra.Συμβουλή: Συμβουλευτείτε το ερώτημα 2 (και την επίσημη λύση του) της περσινής 3ης εργασίας. Οι περσινές εργασίες και οι λύσεις τους υπάρχουν στο site της ΠΛΗ-20.Το συγκεκριμένο γράφημα της φετινής εργασίας έχει μια ιδιότητα που αφορά όλα τα δυνατά μονοπάτια από την κορυφή Α στην κορυφή Λ. Ανακαλύψτε την ιδιότητα αυτή και στη συνέχεια εφαρμόστε κάποιο κατάλληλο μετασχηματισμό στα βάρη του γραφήματος (αν κάτι τέτοιο είναι δυνατόν να εφαρμοστεί στον συγκεκριμένο γράφο), ώστε να προκύψει ένα γράφημα με θετικά μόνο βάρη. Προσοχή, θα πρέπει να τεκμηριώσετε ότι, για το μετασχηματισμό που επιλέξατε, το ελάχιστο μονοπάτι μεταξύ Α και Λ του τροποποιημένου γραφήματος είναι ελάχιστο και για το αρχικό γράφημα.

Απάντηση

Ένα πρώτο ζήτημα που θα πρέπει να μας απασχολήσει είναι η ύπαρξη ενός μονοπατιού ελάχιστου συνολικού βάρους, δεδομένου ότι υπάρχουν και αρνητικά βάρη στις ακμές. Αν υπήρχε στο γράφο ένας κατευθυνόμενος κύκλος του οποίου το συνολικό βάρος να ήταν αρνητικό, τότε θα μπορούσαμε να κατασκευάσουμε ένα μονοπάτι από το Α στο Λ που να διέρχεται από τον κύκλο άπειρες φορές πριν τελικά καταλήξει στον προορισμό Λ και συνεπώς το συνολικό του βάρος να τείνει στο -, υποδεικνύοντας έτσι τη μη ύπαρξη

5

A Ζ

Δ

Ε

Η

Β

Γ Ι

3

Κ

Λ

Θ

22

2-2

-1

-1

-1

-3

-1

1

4

2

4

-2

-32

Page 6: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

μονοπατιού ελάχιστου μήκους στο πρόβλημα (για παράδειγμα, δες το ακόλουθο σχήμα).

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

Ας δούμε τώρα πώς μπορούμε να κάνουμε χρήση του αλγόριθμου του Dijkstra για να υπολογίσουμε ένα μονοπάτι ελάχιστου συνολικού βάρους στο Γ. Ως γνωστόν ο αλγόριθμος εφαρμόζεται σε γράφους των οποίων οι ακμές έχουν μη αρνητικά βάρη.

Σχήμα 2 Ο γράφος Γ του 2ου ερωτήματος.

Αν υπήρχε τρόπος να μετασχηματίσουμε στο γράφο Γ τα βάρη των ακμών με τέτοιο τρόπο ώστε όλα τα (A,Λ)-μονοπάτια να υποστούν ακριβώς την ίδια μεταβολή, και ταυτόχρονα όλα τα βάρη των ακμών να γίνουν θετικά, τότε προφανώς θα μπορούσαμε να υπολογίσουμε ένα μονοπάτι ελάχιστου συνολικού βάρους στο μετασχηματισμένο γράφο, το οποίο θα ήταν βέβαια μονοπάτι ελάχιστου συνολικού βάρους και στον αρχικό γράφο Γ.

Στο συγκεκριμένο παράδειγμα παρατηρούμε ότι όλα τα (Α,Λ)-μονοπάτια είναι απλά και περιλαμβάνουν ακριβώς τον ίδιο αριθμό ακμών (4 σε κάθε μονοπάτι). Αν λοιπόν αυξήσουμε το βάρος κάθε ακμής κατά μια θετική ποσότητα Χ, τότε παρατηρούμε ότι το συνολικό βάρος οποιουδήποτε (Α,Λ)-μονοπατιού θα αυξηθεί ακριβώς κατά 4Χ.

6

Page 7: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Αυτό που κάνουμε λοιπόν είναι να αυξήσουμε τα βάρη όλων των ακμών του Γ κατά 4, οπότε το μήκος κάθε (Α,Λ)-μονοπατιού αυξάνεται ακριβώς κατά 16. Στη συνέχεια υπολογίζουμε ένα μονοπάτι ελάχιστου συνολικού βάρους στο γράφο Γ’ (βλ. Σχήμα 3), ο οποίος έχει πλέον θετικά βάρη στις ακμές του. Το μονοπάτι ελάχιστου συνολικού βάρους που θα μας επιστρέψει ο αλγόριθμος για τον Γ’ είναι φυσικά και μονοπάτι ελάχιστου συνολικού βάρους και για τον Γ.

Σχήμα 3 Ο μετασχηματισμένος γράφος Γ’ με τα μη αρνητικά βάρη ακμών, στον οποίο εφαρμόζουμε τον αλγόριθμο του Dijkstra. Το μονοπάτι με κόκκινο χρώμα είναι το μονοπάτι ελάχιστου συνολικού βάρους που επιλέγει ο αλγόριθμος.

7

Page 8: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 3.(α) Να σχεδιάσετε τον πίνακα γειτνίασης και τον πίνακα πρόσπτωσης του παρακάτω γραφήματος Petersen.

(β) Δίνεται ο πίνακας γειτνίασης Α ενός απλού γραφήματος G με ακμές χωρίς βάρη (θεωρούμε ότι όλες οι ακμές έχουν βάρος 1). Τι πληροφορίες μας δίνει ο πίνακας Ak ,για k=1,2,..,n , σχετικά με τα μονοπάτια μεταξύ κορυφών του γραφήματος;Χρησιμοποιήστε την παραπάνω ιδιότητα του Ak και προτείνετε έναν απλό αλγόριθμο για να υπολογίσετε τις αποστάσεις ανά δύο όλων των ζευγών των κορυφών του γραφήματος.

Απάντηση

(α) Για τον γράφο Petersen που δίνεται στην εκφώνηση της άσκησης κατασκευάζουμε τους ζητούμενους πίνακες:

Πίνακας γειτνίασης:

1 2 3 4 5 6 7 8 9 101 0 1 0 0 1 1 0 0 0 02 1 0 1 0 0 0 1 0 0 03 0 1 0 1 0 0 0 1 0 04 0 0 1 0 1 0 0 0 1 05 1 0 0 1 0 0 0 0 0 16 1 0 0 0 0 0 0 1 1 07 0 1 0 0 0 0 0 0 1 18 0 0 1 0 0 1 0 0 0 19 0 0 0 1 0 1 1 0 0 0

10 0 0 0 0 1 0 1 1 0 0

1,2 1,5 1,6 2,3 2,7 3,4 3,8 4,5 4,9 5, 10 6,8 6,9 7,9 7, 10 8, 101 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

1 3

45

6

7

8

910

2

8

Page 9: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

2 1 0 0 1 1 0 0 0 0 0 0 0 0 0 03 0 0 0 1 0 1 1 0 0 0 0 0 0 0 04 0 0 0 0 0 1 0 1 1 0 0 0 0 0 05 0 1 0 0 0 0 0 1 0 1 0 0 0 0 06 0 0 1 0 0 0 0 0 0 0 1 1 0 0 07 0 0 0 0 1 0 0 0 0 0 0 0 1 1 08 0 0 0 0 0 0 1 0 0 0 1 0 0 0 19 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0

10 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1Πίνακας πρόσπτωσης:

(β) Επειδή, σύμφωνα με την εκφώνηση, ο γράφος που αναπαριστά ο πίνακας γειτνίασης Α είναι ένας απλός γράφος n κορυφών, γνωρίζουμε ότι για οποιοδήποτε 1 ≤ k ≤ n 1, τα μη διαγώνια στοιχεία του πίνακα Ak δείχνουν τον αριθμό των μονοπατιών μήκους k μεταξύ των αντίστοιχων κορυφών του γράφου [Βούρος, Δραστηριότητα 4.6]. Κατά συνέπεια, αφού και κάθε ακμή του γράφου έχει βάρος ακριβώς 1, τα μη διαγώνια στοιχεία του Αk δείχνουν τον αριθμό των μονοπατιών συνολικού βάρους k μεταξύ ζευγών κορυφών.

Επίσης, για οποιοδήποτε 1 ≤ k ≤ n 1 στον πίνακα Υk = Α + Α2 + ... + Αk τα μη διαγώνια στοιχεία δίνουν τον αριθμό των μονοπατιών συνολικού βάρους το πολύ k που συνδέουν τις αντίστοιχες κορυφές. Κατά συνέπεια, στον πίνακα Υk

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

Χρησιμοποιώντας αυτή την παρατήρηση, μπορούμε να κατασκευάσουμε ένα πολύ απλό αλγόριθμο για τον υπολογισμό των ελαχίστων αποστάσεων μεταξύ δυο οποιωνδήποτε κορυφών του απλού γράφου Γ=(V, E) με μοναδιαία βάρη ακμών, που αναπαριστά ο Α.

Οι τελικές αποστάσεις των κορυφών μεταξύ τους αποθηκεύονται στον δισδιάστατο πίνακα D. H ορθότητα του αλγορίθμου είναι προφανής, από το γεγονός ότι το μόνο που κάνει είναι να αποθηκεύει στο αντίστοιχο κελί D[u,v], που αντιστοιχεί στις κορυφές u,v του γράφου, την πρώτη φορά που εμφανίζεται μονοπάτι σύνδεσης μήκους το πολύ k μεταξύ τους. Φυσικά, ζεύγη κορυφών που τελικά έχουν στο αντίστοιχο κελί του πίνακα D τιμή 1 (το οποίο κωδικοποιεί την έλλειψη σύνδεσης) αφορούν κορυφές πο βρίσκονται σε διαφορετικές συνεκτικές συνιστώσες του γράφου.

Ο ψευδοκώδικας του αλγορίθμου είναι ο ακόλουθος:

[1] Υ1 Α/* Αρχικοποίηση των αποστάσεων */

9

Page 10: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

[2] ΓΙΑ ΚΑΘΕ u,vV ΕΚΤΕΛΕΣΕ /* Σημειώνονται με 1 τα ζεύγη (διαφορετικών) κορυφών που συνδέονται με ακμή, και με 1 (υποδηλώνοντας την έλλειψη απευθείας σύνδεσης) τα ζεύγη κορυφών που δε συνδέονται με απευθείας ακμή */ [3] ΑΝ Α[u,v] = 1 [4] TOTE D[u,v] 1 [5] ΔΙΑΦΟΡΕΤΙΚΑ D[u,v] 1/* Αναζήτηση ζευγών κορυφών σε απόσταση 2≤ k ≤ n-1 */ [6] ΓΙΑ ΚΑΘΕ 2 ≤ k ≤ n 1 ΕΚΤΕΛΕΣΕ [7] Υk Yk-1 + Ak

[8] ΓΙΑ ΚΑΘΕ u,vV ΕΚΤΕΛΕΣΕ/* Σημειώνονται τα ζεύγη κορυφών που συνδέονται για πρώτη φορά με μονοπάτι σύνδεσης μήκους k */ [9] ΑΝ ( ( Υk[u,v] > 0 ) ΚΑΙ ( D[u,v] = 1 ) )[10] ΤΟΤΕ D[u,v] k[11] ΤΕΛΟΣ

10

Page 11: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 4. (α) Έστω απλό γράφημα G = (V,E) με n=|V| κορυφές. Έστω d1, d2,.., dn οι βαθμοί των κορυφών του γραφήματος. Να αποδείξετε ότι δεν είναι δυνατό να ισχύει:

d1 > d2 > ... > dn

(β) Έστω απλό γράφημα G με ελάχιστο βαθμό κορυφής δ(G). Να δείξετε ότι το G περιέχει μονοπάτι μεγέθους δ(G).Συμβουλή: Ξεκινήστε θεωρώντας ένα μεγιστοτικό μονοπάτι του γραφήματος G. Απάντηση

(α) Ο απλός γράφος μας θα πρέπει προφανώς να έχει τουλάχιστον δυο κορυφές, διαφορετικά η πρόταση της εκφώνησης εκφυλίζεται. Κάνοντας χρήση της αρχής του περιστερώνα, αποδεικνύεται ότι κάθε απλός γράφος με τουλάχιστον δυο κορυφές περιέχει τουλάχιστον δυο κορυφές ίσου βαθμού [Μαυρονικόλας, Πρόταση 1.14]. Κατά συνέπεια είναι αδύνατον να ισχύει ότι d1>d2>…>dn γιατί τότε δε θα μπορούσε να ισχύει η πρόταση αυτή.

(β) Ας θεωρήσουμε ένα οποιοδήποτε απλό μεγιστοτικό μονοπάτι Π = < v0, e1, v1, e2, … , vk-1, ek, vk >

του G. Θέλουμε να δείξουμε ότι k ≥ δ(G), δηλαδή ότι υπάρχουν τουλάχιστον δ(G) επιπλέον (διαφορετικές) κορυφές εκτός της v0 στο Π. Προφανώς η κορυφή αυτή έχει βαθμό τουλάχιστον δ(G). Έστω NG(v0) το σύνολο των γειτονικών κορυφών του v0 στο G. Παρατηρείστε ότι επειδή το γράφημα είναι απλό, δεν περιλαμβάνει πολλαπλές ακμές ή βρόχους και συνεπώς θα πρέπει όλες οι κορυφές που περιλαμβάνονται στο NG(v0) να είναι διαφορετικές. Δηλαδή, ο αριθμός των διαφορετικών γειτονικών κορυφών της v0 είναι ίσος με το βαθμό της κορυφής αυτής: |NG(v0)| = δ(v0) ≥ δ(G).

Δείτε επίσης ότι όλες αυτές οι κορυφές θα πρέπει να ανήκουν στο Π, γιατί διαφορετικά, αν υπήρχε κορυφή u NG(v0) εκτός του Π, τότε θα μπορούσαμε να κατασκευάσουμε ένα απλό μονοπάτι

Π’ = < u, uv0, v0, e1, v1, e2, … , vk-1, ek, vk >.που να είναι αυστηρά μεγαλύτερου μήκους από αυτό του Π, παραβιάζοντας τη μεγιστοτικότητα του Π.

Συνεπώς, το μονοπάτι Π περιλαμβάνει τουλάχιστον |NG(v0)| + 1 ≥ δ(G) + 1 διαφορετικές κορυφές, οπότε και το μήκος του είναι τουλάχιστον δ(G).

11

Page 12: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 5.Για κάθε μία από τις παρακάτω ακολουθίες θετικών αριθμών, να αποδείξετε είτε ότι είναι ακολουθία βαθμών κορυφών απλού διμερούς γραφήματος είτε ότι δεν υπάρχει τέτοιο διμερές γράφημα:

i. ( 4, 4, 4, 3, 3, 2, 1 )ii. ( 5, 4, 4, 4, 4, 4, 3, 2, 2 )

iii. ( 6, 4, 3, 3, 3, 3, 3, 3 )

Απάντηση

i. Για την ακολουθία (4, 4, 4, 3, 3, 2, 1) παρατηρούμε ότι το άθροισμά των στοιχείων της ισούται με 21. Όμως γνωρίζουμε ότι για οποιοδήποτε γράφο τάξης n, το άθροισμα των βαθμών των κορυφών του είναι απαραίτητα άρτιος αριθμός (για την ακρίβεια, είναι διπλάσιος του αριθμού των ακμών του, [Μαυρονικόλας, Θεώρημα 1.5]). Συνεπώς η συγκεκριμένη ακολουθία δεν είναι ακολουθία βαθμών για κανένα γράφημα, άρα ούτε και για διμερές γράφημα.

ii. Η συγκεκριμένη ακολουθία έχει άρτιο άθροισμα (32). Παρατηρούμε ότι κάθε διμερής γράφος Γ=(V, U, E) με μερίδια κορυφών τα σύνολα V, U, έχει την απλή ιδιότητα ότι το άθροισμα βαθμών των κορυφών του V ισούται με το άθροισμα κορυφών του συνόλου U (κάθε ακμή του Γ κατευθύνεται από μια κορυφή του V σε μια κορυφή του U, και συνεπώς συντελεί κατά μια μονάδα σε καθένα από αυτά τα αθροίσματα). Κατά συνέπεια, θα πρέπει να είμαστε σε θέση να μπορούμε να διαμερίσουμε τα στοιχεία της ακολουθίας μας σε δυο μερίδια, των οποίων το άθροισμα να ισούται με 16. Αυτή είναι μια αναγκαία, αλλά όχι ικανή προϋπόθεση για την ύπαρξη απλού διμερούς γράφου με τη συγκεκριμένη ακολουθία βαθμών. Για παράδειγμα, η διαμέριση της ακολουθίας μας στα μερίδια (5, 4, 3, 2, 2) και (4, 4, 4, 4) δεν μπορεί να απεικονίζει τους βαθμούς των μεριδίων ενός απλού διμερούς γράφου, διότι η κορυφή βαθμού 5 δεν μπορεί να βρίσκεται στο ίδιο μερίδιο με πληθάριθμο μεγαλύτερο του 4: Αν ίσχυε αυτό τότε δε θα υπήρχαν αρκετές κορυφές στο άλλο μερίδιο κορυφών, για να συνδεθούν με την κορυφή βαθμού 5 (αναφερόμαστε σε απλό γράφο). Παρατηρούμε ότι η διαμέριση της ακολουθίας μας στα μερίδια (5, 4, 4, 3) και (4, 4, 4, 2, 2) όντως αντιστοιχεί σε απλό διμερή γράφο, τον οποίο και σχεδιάζουμε:

12

Page 13: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

iii. Παρατηρούμε κατ’ αρχήν ότι το άθροισμα των στοιχείων της ακολουθίας ( 6, 4, 3, 3, 3, 3, 3, 3 ) είναι 28 και δεν υπάρχει πρόβλημα ως προς το άθροισμα των βαθμών. Όπως αναφέραμε και στην προηγούμενη περίπτωση, τα αθροίσματα βαθμών των δυο μεριδίων ενός οποιουδήποτε απλού διμερούς γράφου θα πρέπει να είναι ίσα. Κατά συνέπεια, θα πρέπει να βρούμε μια διαμέριση των στοιχείων της ακολουθίας μας τέτοια ώστε τα δυο μερίδια να έχουν άθροισμα ίσο με 14. Όμως, εξετάζοντας αναλυτικά τους βαθμούς που έχουμε στη διάθεσή μας για τη συγκεκριμένη ακολουθία, παρατηρούμε ότι δεν είναι δυνατή η δημιουργία ενός μεριδίου με άθροισμα ακριβώς 14. Πιο συγκεκριμένα, το μερίδιο για παράδειγμα στο οποίο θα βρίσκεται η 6 δε μπορεί να έχει άθροισμα βαθμών 14, γιατί 6+4+3 = 13 < 14 < 6+4+3+3 = 16 και 6+3+3 = 12 < 14 < 6+3+3+3 = 15. Συνεπώς, δεν υπάρχει απλός διμερής γράφος με ακολουθία βαθμών τη συγκεκριμένη ακολουθία.

Μια εναλλακτική απάντηση στο υποερώτημα αυτό είναι η εξής: Ας υποθέσουμε ότι υπάρχει απλός διμερής γράφος Γ = (V, U, E) του οποίου ακολουθία βαθμών είναι η ( 6, 4, 3, 3, 3, 3, 3, 3 ). Χωρίς βλάβη της γενικότητας υποθέτουμε ότι η μοναδική κορυφή βαθμού 6 ανήκει στο μερίδιο V. Τότε θα πρέπει να ανήκουν στο U τουλάχιστον 6 κορυφές, οι οποίες συνδέονται με την κορυφή βαθμού 6 (ο γράφος είναι απλός). Απομένει μια κορυφή για την οποία δεν έχουμε καθορίσει σε ποιο μερίδιο ανήκει. Ακόμα κι αν αυτή η κορυφή ανήκει στο μερίδιο V (το ίδιο με την κορυφή βαθμού 6), θα έχουμε δυο μερίδια με 2 και 6 κορυφές. Αυτό όμως σημαίνει ότι δεν είναι δυνατή η ικανοποίηση των βαθμών των κορυφών του U, αφού ο ελάχιστος βαθμός είναι 3, υπάρχουν στο V το πολύ 2 κορυφές, και ο γράφος είναι απλός και διμερής. Άρα, δεν υπάρχει απλός διμερής γράφος που να έχει ως ακολουθία βαθμών τη συγκεκριμένη ακολουθία.

13

Page 14: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 6. Να εξετάσετε εάν τα παρακάτω γραφήματα είναι ισομορφικά ή όχι. Τεκμηριώστε την απάντησή σας.

Απάντηση

Ας αναθέσουμε κατ’ αρχήν ονόματα στις κορυφές των δυο γράφων:

Για να είναι οι δυο γράφοι ισομορφικοί, θα πρέπει να υπάρχει κάποια αμφιμονοσήμαντη αντιστοιχία f : V(G1) V(G2) από τις κορυφές του G1 στις κορυφές του G2 τέτοια ώστε να διατηρείται η σχέση γειτονικότητας μεταξύ των κορυφών, δηλαδή,

Στη συνέχεια ορίζουμε την ακόλουθη αμφιμονοσήμαντη αντιστοιχία κορυφών:

f = {v1u2, v2u3, v3u9, v4u7, v5u6, v6u1, v7u5, v8u4, v9u8}

Η αντιστοιχία αυτή όντως έχει την ιδιότητα ότι για κάθε ακμή vivj E(G1), υπάρχει η ακμή f(vi)f(vj) E(G2). Για λόγους επαλήθευσης, στο ακόλουθο σχήμα φαίνεται ο γράφος G2 όπου στις κορυφές του έχουμε τοποθετήσει τις αντιστοιχίες αντί για τα ίδια τα ονόματα των ίδιων των κορυφών.

G1 G2

14

Page 15: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Κατά συνέπεια οι δυο γράφοι είναι ισομορφικοί.

15

Page 16: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

Ερώτημα 7.

(α) Για καθένα από τα παρακάτω γραφήματα να αποδείξετε εάν είναι επίπεδο ή όχι.

(β) Έστω ένα γράφημα με τουλάχιστον 11 κορυφές. Να αποδείξετε, χρησιμοποιώντας το αποτέλεσμα της άσκησης αυτοαξιολόγησης 4.18 του τόμου Α, ότι δεν μπορεί ταυτόχρονα, και το γράφημα να είναι επίπεδο, και το συμπληρωματικό γράφημα του , το , επίσης να είναι επίπεδο.

Απάντηση

(α) Γνωρίζουμε ότι ένας γράφος είναι επίπεδος αν και μόνο αν δεν περιέχει υπογράφημα ομοιομορφικό με τον Κ5 ή τον Κ3,3 [Βούρος, Θεώρημα 4.7]. Για τον G1 παρατηρούμε ότι περιέχει τον Κ3,3 ως υπογράφημα και συνεπώς, ο G1 δεν είναι επίπεδος γράφος:

Για το γράφο G2 απλά δίνουμε μια αποτύπωση του γραφήματος αυτού, προκειμένου να αποδείξουμε ότι είναι επίπεδος γράφος:

1 2G2G1

3

45

6

16

12

3

4

56

78 9

Page 17: (Ερώτηση 1) (Βαθμοί 10)edu.eap.gr/pli/pli20/students/2004-5/doc/ergasia3... · Web viewΣτην 7η επανάληψη του βρόχου (βήμα 7) επιλέγεται

(β) Έστω ένα οποιοδήποτε απλό επίπεδο γράφημα με n κορυφές και m ακμές. Θα πρέπει να ισχύει m ≤ 3n–6 για το γράφημα αυτό [Βούρος, Άσκηση Αυτοαξιολόγησης 4.18]. Μας ενδιαφέρει η περίπτωση που και το συμπλήρωμά του είναι επίσης επίπεδος γράφος. Όμως ο έχει ακριβώς n(n–1)/2 – m ακμές και n κορυφές, συνεπώς (αφού κι αυτός είναι επίπεδος) θα πρέπει να ισχύει ότι n(n–1)/2 – m ≤ 3n–6. Άρα, αναγκαία συνθήκη για να είναι και ο και ο συμπληρωματικός του γράφος επίπεδοι γράφοι, είναι η εξής:

n(n–1)/2 – 3n + 6 ≤ 3n–6 n2 – 13n +12 ≤ 0από το οποίο καταλήγουμε ότι

Εφόσον αρχική μας υπόθεση ήταν ότι ο έχει 11 κορυφές, καταλήγουμε ότι δεν είναι δυνατόν να είναι και ο συμπληρωματικός του γράφος επίσης επίπεδος γράφος.

17