ΔΙΑΤΡΕΞΗ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ

Σχετικά έγγραφα
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

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

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

Αλγόριθμοι για αυτόματα

Βασικές Έννοιες Θεωρίας Γραφημάτων

Βασικές Έννοιες Θεωρίας Γραφημάτων

e 2 S F = [V (H), V (H)]. 3-1 e 1 e 3

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

d(v) = 3 S. q(g \ S) S

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

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

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

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

Ασκήσεις στους Γράφους. 2 ο Σετ Ασκήσεων. Δέντρα

f(t) = (1 t)a + tb. f(n) =

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

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Εισαγωγή σε βασικές έννοιες. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

q(g \ S ) = q(g \ S) S + d = S.

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Διάλεξη 7: X Y Σχήμα 7.2: Παράδειγμα για το Πόρισμα 7.2, όπου: 1 = {1, 2, 5}, 2 = {1, 2, 3}, 3 = {4}, 4 = {1, 3, 4}. Θ

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

6 Συνεκτικοί τοπολογικοί χώροι

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Θέματα Μεταγλωττιστών

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Σεπτέμβριος 2017

Στοχαστικές Στρατηγικές. διαδρομής (1)

ΚΕΦΑΛΑΙΟ 3: Συνθήκες Αλυσίδων

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

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

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

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

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

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

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

1 Η εναλλάσσουσα ομάδα

Συνδετικότητα γραφήματος (graph connectivity)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

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

S A : N G (S) N G (S) + d S d + d = S

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

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

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

Αριθμητική Ανάλυση και Εφαρμογές

Διμερή γραφήματα και ταιριάσματα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

X i, i I Y j, j J. X i. Z j P = (J, B) G T = (I, J) 1 2 i i + 1 n. 1 i V

Μεταθέσεις και πίνακες μεταθέσεων

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

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

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

f x 0 για κάθε x και f 1

E(G) 2(k 1) = 2k 3.

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

2 ) d i = 2e 28, i=1. a b c

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

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

1 Διάσχιση κατευθυνόμενων γραφημάτων

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

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

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

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Φεβρουάριος 2017

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

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

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

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

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

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

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

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

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Transcript:

4 ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ

40 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα 4. Εισαγωγή Όπως είναι γνωστό, τα γραφήματα αποτελούν μοντέλα σχέσεων για πολλές και σημαντικές εφαρμογές. Ορισμένες στοιχειώδεις έννοιες που αφορούν τα γραφήματα συζητήθηκαν στην.4. Η μελέτη των γραφημάτων, η εξαγωγή γενικών συμπερασμάτων, π.χ. ως προς την συνεκτικότητα ενός γραφήματος, όπως και η διατύπωση καλών αλγορίθμων για προβλήματα γραφημάτων γενικά, παρέχουν τη δυνατότητα ανεύρεσης καλών αλγορίθμων για πολλές συγκεκριμένες εφαρμογές. Η διάτρεξη ενός γραφήματος αναλύεται στην 4. και αποτελεί ισχυρή βάση για την παραγωγή πολλών αλγορίθμων. Στην παράγραφο αυτή συζητούνται δυο παρόμοιες μέθοδοι διάτρεξης. Στη συνέχεια, η διάτρεξη χρησιμοποιείται για την παραγωγή αλγορίθμων για διάφορα σημαντικά προβλήματα γραφημάτων, συγκεκριμένα για την εύρεση των συνεκτικών συνιστωσών ( 4.3), για την τοπολογική διάταξη ( 4.4) σε διευθυνόμενα άκυκλα γραφήματα, την εύρεση των ισχυρών ( 4.5) και των δισυνεκτικών ( 4.6) συνιστωσών ενός γραφήματος και τέλος για τα καλούμενα ταιριάσματα και τα διμερή γραφήματα ( 4.7). 4. Διάτρεξη γραφήματος Σε πολλές εφαρμογές που εκπροσωπούνται με (δι)γράφημα, πρέπει να γίνει επίσκεψη σε όλες τις κορυφές του γραφήματος και εκεί να εκτελεσθεί κάποιο έργο που καθορίζεται από τη συγκεκριμένη εφαρμογή. Εννοείται, ότι επίσκεψη στην V j από την V i είναι δυνατή όταν υπάρχει διαδρομή από V i προς V j. Διάτρεξη (traversal) γραφήματος είναι η συστηματική επίσκεψη σε όλες τις κορυφές του, όχι αναγκαστικά μια μόνο φορά για κάθε κορυφή. Αυτό επομένως που παράγει ένας αλγόριθμος διάτρεξης πρέπει να είναι μια διαδρομή που περιλαμβάνει όλες τις κορυφές τουλάχιστον μια φορά. Εφόσον όμως, από τη χρησιμοποιούμενη μέθοδο, η διαδρομή εξακολουθεί να είναι σαφής με την αναγραφή κορυφών μόνο μια φορά, ο αλγόριθμος διάτρεξης παράγει απλά μια επαναρίθμηση, μια νέα διάταξη των κορυφών [V,...,V n ]. Δεχόμαστε ότι η κορυφή από την οποία θα αρχίσει ένας τέτοιος αλγόριθμος είναι η V. Έτσι, το ζητούμενο από τον αλγόριθμο είναι οι τιμές ενός διανύσματος "νέο", όπου νεο(i) = j δηλώνει την μετάθεση, δηλαδή ότι στη νέα σειρά αναγραφής η V i κατέχει την θέση j. Βέβαια πάντα θα ισχύει νεο()=. Το διάνυσμα "νέο" δηλώνει και την σειρά επίσκεψης. Επιπλέον όμως, ένας αλγόριθμος διάτρεξης "γνωρίζει" και άλλες πληροφορίες που σε περιπτώσεις κρίνεται σκόπιμο να διασώζονται. Για παράδειγμα μπορεί να αναγράφει τις κορυφές και με τη σειρά τελευταίας επίσκεψης σ' αυτές, που την καλούμε σειρά εγκατάλειψης. Μπορεί δηλαδή να παράγει και ένα διάνυσμα "εγκατ", όπου π.χ. εγκατ(3)=5 δηλώνει ότι η V 3 ήταν η πέμπτη κορυφή στην οποία έγινε η τελευταία επίσκεψη και η οποία τότε εγκαταλείφθηκε οριστικά. Θα περιγράψουμε δυο παρόμοιες μεθόδους διάτρεξης, την Αναζήτηση Πρώτα κατά Πλάτος (ΑΠΠ) και την Αναζήτηση Πρώτα κατά Βάθος (ΑΠΒ). Θα ασχοληθούμε με λεπτομέρειες μόνο για την ΑΠΒ, οι οποίες όμως μεταφέρονται με

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 4 προφανή τρόπο και στην ΑΠΠ. Και για τις δυο μεθόδους θεωρούμε ότι για κάθε κορυφή i εκτελείται κάποιο έργο που εκπροσωπείται από έναν αλγόριθμο "ΈΡΓΟ (i)", αλλά μόνο κατά την πρώτη φορά επίσκεψης στην κορυφή αυτή. 4.. Αναζήτηση Πρώτα κατά Πλάτος (ΑΠΠ) Αρχίζοντας με την V, επισκεπτόμαστε πρώτα όλες τις κορυφές, στις οποίες μπορούμε να πάμε απευθείας από την V. Αφού πρώτα τις εξαντλήσουμε, ξεκινώντας από κάθε μια από αυτές, εξαντλούμε όλες τις κορυφές στις οποίες μπορούμε να πάμε απευθείας κ.ο.κ. Όπως πάντα, στις περιπτώσεις ισοπαλίας έχουμε προκαθορίσει μια σειρά, π.χ. να προηγούνται οι κορυφές με τον μικρότερο δείκτη. ΠΑΡΑΔΕΙΓΜΑ Π4.-. ΑΠΠ για το διγράφημα της Εικόνας 4.-. Οι δεύτεροι αριθμοί δίπλα στις κορυφές, δείχνουν την σειρά επίσκεψης των κορυφών από ΑΠΠ, άρα π.χ. νέο(3) = 4, δηλαδή η V 3 ήταν η τέταρτη κορυφή στην οποία έγινε η επίσκεψη, σύμφωνα με τον Αλγόριθμο ΑΠΠ που ακολουθεί. 3 4 4 5 6 7 3 5 6 Εικόνα 4.- Τα τόξα που συμβολίζονται διακεκομμένα, εξετάσθηκαν αλλά δεν ακολουθήθηκαν, γιατί κατέληγαν σε κορυφή στην οποία ήδη είχε γίνει επίσκεψη. Αυτό για κάθε κορυφή V i, αναγνωρίζεται από το αν νεο(i) 0. Η διάτρεξη του γραφήματος γίνεται ως εξής: Αρχή από : επίσκεψη σε, επίσκεψη σε 5. Αρχή από και 5 : Από : επίσκεψη σε 3, δεν ακολουθείται το τόξο για 5, επίσκεψη σε 6. Από 5: καμιά επίσκεψη. Αρχή από 3 και 6 : Από 3: καμιά επίσκεψη. Από 6: δεν ακολουθείται το τόξο για 5, επίσκεψη σε 7. Αρχή από 7 : δεν ακολουθείται το τόξο για, δεν ακολουθείται το τόξο για 3.

4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Η σειρά επίσκεψης είναι,, 5, 3, 6, 7. Παρέμειναν χωρίς επίσκεψη οι κορυφές 4 και γιατί δεν υπάρχει απευθείας μετάβαση σε αυτές από τις προηγούμενες. Για διεξοδική επίσκεψη πρέπει ο αλγόριθμος ΑΠΠ να κλιθεί εκ νέου από κάποιο «οδηγό αλγόριθμο» με αρχή τώρα μια από τις κορυφές στην οποία δεν έχει γίνει επίσκεψη. Θα δούμε πως γίνεται αυτό στην αντίστοιχη περίπτωση της ΑΠΠ. Π4.- Από το Π4.- παρατηρούμε ότι η χρήση ουράς Q είναι κατάλληλη. Αρχικά η Q είναι κενή. (* αρχικοποίηση *) for i : = to n do νεο(i) : = 0 end i-loop νεο(): = ΕΡΓΟ (i) τοποθέτησε στην Q αρκορ : = ΑΛΓΟΡΙΘΜΟΣ ΑΠΠ (*επισκέψεις και ΕΡΓΟ στις υπόλοιπες κορυφές *) while Q do τοποθέτησε i από την Q for j τέτοιο ώστε e ij E and νεο(j)=0 do αρκορ := αρκορ + νεο(j):= αρκορ ΕΡΓΟ (j) τοποθέτησε j στην Q end j-loop end while-loop Τα ασαφή στοιχεία στον ΑΠΠ είναι η ακριβής χρήση της Q, που δεν θα μας απασχολήσει, καθώς και η εντολή «for j τέτοιο ώστε e ij E». Αυτή συγκεκριμενοποιείται με χρήση π.χ. της λίστας γειτονικότητας. 4.. Αναζήτηση Πρώτα κατά Βάθος (ΑΠΒ) Με την ΑΠΠ έπρεπε πρώτα να εξαντλήσουμε όλες τις κορυφές στις οποίες μπορούσε να γίνει επίσκεψη από την ίδια κορυφή. Με την ΑΠΒ αντίθετα, από κάθε κορυφή γίνεται αμέσως διείσδυση προς μια νέα κορυφή προς την οποία υπάρχει τόξο, και αυτό επαναλαμβάνεται και για κάθε νέα κορυφή συνεχώς και εφόσον είναι δυνατόν. Μπορεί όμως να έγινε επίσκεψη από V i σε V j και να μην είναι πλέον δυνατή

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 43 η επίσκεψη από V j σε άλλη κορυφή, είτε γιατί δεν υπάρχουν τόξα που εκκινούν από V j, είτε γιατί όσα υπάρχουν καταλήγουν σε κορυφές V k στις οποίες έχει ήδη γίνει επίσκεψη (νεο(k) 0). Τότε οπισθοχωρούμε από την V j στην κορυφή προέλευσης, δηλαδή στην V i. Η έννοια αυτή της οπισθοχώρησης δεν απαιτεί να υπάρχει τόξο από με κατεύθυνση V j σε V i. Στο σημείο αυτό γίνεται και η οριστική εγκατάλειψη της V j, οπότε τοποθετείται κατάλληλα και η τιμή εγκατ(j). ΠΑΡΑΔΕΙΓΜΑ Π4.-. ΑΠΒ για το ίδιο με το Π4.- διγράφημα. Αρχίζοντας με την V [βλ. και Εικόνα 4.-α] η επίσκεψη γίνεται στην V και από εκεί στην V 3. Επειδή από την V 3 δεν μπορούμε να προχωρήσουμε βαθύτερα την εγκαταλείπουμε και οπισθοχωρούμε στην V, που είναι η κορυφή προέλευσης για την V 3. Από την V η επίσκεψη γίνεται στην V 5, απ όπου πάλι αναγκαζόμαστε να επιστρέψουμε στην V. Η Εικόνα 4.-α δείχνει όλες τις επισκέψεις μέχρι να εξαντλήσουμε όλες τις δυνατές διεισδύσεις σε βάθος. Τόξα όπως τα e 65, e 7, e 73 και e 5 δεν ακολουθήθηκαν (διακεκομμένα) γιατί οδηγούσαν σε κορυφές στις οποίες είχε ήδη γίνει επίσκεψη, κάτι που πάλι αναγνωρίζεται από το ότι νεο(i) 0. Οι κορυφές V 4 & V παραμένουν χωρίς επίσκεψη. Καλείται εκ νέου ο αλγόριθμος ΑΠΒ από κάποιο αλγόριθμο «οδηγό» με αρχή την V 4 ή την V, άρα την V 4 αν θεωρήσουμε τον μικρότερο δείκτη ως κριτήριο. Το αποτέλεσμα συμπληρώνεται με την Εικόνα 4.-β μαζί με τα διακεκομμένα τόξα που δεν ακολουθήθηκαν και που συνδέουν κορυφές με την Εικόνα 4.-α. Η σειρά επίσκεψης, δηλαδή οι τιμές του νεο(i), είναι:,, 3, 5, 6, 7, 4,. Για παράδειγμα νεο(4)=7. 4 3 5 6 7 (α) (β) Εικόνα 4.- (α): Πρώτο δέντρο ΑΠΒ (β): Δεύτερο δέντρο ΑΠΒ Π4.- Σε πρώτη προσέγγιση έχουμε τον παρακάτω αλγόριθμο ΑΠΒ, μαζί με τον οδηγό του.

44 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα ΑΛΓΟΡΙΘΜΟΣ «ΟΔΗΓΟΣ για ΑΠΒ» (*αρχικοποίηση*) for i:= to n do νεο(i):=0 end i-loop αρκορ := 0 for i:= to n do if νεο(i)=0 then ΑΠΒ(i, αρκορ) end i-loop ΑΛΓΟΡΙΘΜΟΣ ΑΠΒ(i, αρκορ) αρκορ := αρκορ + νεο(i) := αρκορ ΕΡΓΟ (i) for all j τέτοια ώστε e ij E do if νεο(j) = 0 then AΠΒ(j, αρκορ) end j-loop Κάθε φορά που ο αλγόριθμος ΑΠΒ καλείται από τον οδηγό έχουμε και την αρχή ενός νέου δέντρου. Έτσι δημιουργείται ένα «δάσος ΑΠΒ», το οποίο, για διγραφήματα, περιέχει τα παρακάτω είδη τόξων: τόξα δέντρου, ή γεννητικά τόξα e ij, όπως το e 5 στην Εικόνα 4.-α, δηλαδή αυτά που πραγματικά χρησιμοποιήθηκαν για επίσκεψη στην V j από την V i. Ισχύει νεο(i) < νεο(j) και V j παιδί της V i στο δέντρο. πίσω τόξα eij, όπως το e 7, δηλαδή από κορυφή σε πρόγονο της κορυφής. Άρα εδώ, η V i είναι απόγονος αλλά όχι παιδί της V j, βρίσκονται φυσικά και οι δυο στο ίδιο δέντρο του δάσους και ισχύει νεο (j) < νεο (i). μπρος τόξα eij, όπως το e 5, δηλαδή τώρα η V j είναι απόγονος αλλά όχι παιδί της V i και νεο(i) < νεο(j). διασυνδετικά, ή διασταυρωτικά τόξα, eij όπως τα e 65 e 7 και e 43, μεταξύ κορυφών που δεν έχουν σχέση προγόνου-απογόνου. Αυτά μπορούν να συνδέουν και κορυφή από διαφορετικά δέντρα. Ισχύει νεο (j) < νεο (i), βλ. και Λ4.-. Ας αναγράψουμε τα δέντρα του δάσους ΑΠΒ από τα αριστερά προς τα δεξιά, με την σειρά που τα βρίσκει ο αλγόριθμος ΑΠΒ. Μέσα στο ίδιο δέντρο ακολουθούμε την ίδια συμφωνία αναγραφής και για τα υποδέντρα. Ας δεχτούμε τώρα ότι υπάρχει ένα διασυνδετικό τόξο e ij με φορά από αριστερά προς τα δεξιά, όπου V i, V j μπορεί να ανήκουν και σε διαφορετικά δέντρα του δάσους. Από την υπόθεσή μας αυτή προκύπτει ότι πρώτα έγινε η επίσκεψη στην V i. Άρα την στιγμή που ο ΑΠΒ είναι έτοιμος να εγκαταλείψει την V i, δεν έχει ακόμη επισκεφτεί την V j. Προτού όμως την εγκαταλείψει θα εξετάσει όλα τα τόξα που ξεκινάνε από την V i, άρα και το e ij. Επειδή την στιγμή αυτή νεο(j)=0 θα ακολουθήσει και αυτό το

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 45 τόξο, άρα θα κάνει την V j παιδί της V i και το e ij θα ήταν ένα τόξο δέντρου και όχι διασυνδετικό. Προκύπτει επομένως το ακόλουθο αποτέλεσμα: ΛΗΜΜΑ Λ4.-. Όλα τα διασυνδετικά τόξα e ij, είτε μεταξύ διαφορετικών δέντρων του δάσους ΑΠΒ, είτε μέσα στο ίδιο δέντρο, έχουν φορά από τα δεξιά προς τα αριστερά και ισχύει νεο(j) < νεο(i). Λ4.- ΛΗΜΜΑ Λ4.-. Ένας κύκλος ανήκει ολόκληρος στο ίδιο δέντρο του δάσους ΑΠΒ. Απόδειξη: άμεση συνέπεια του Λ4.- Λ4.- Αν τώρα το G δεν είναι διγράφημα παρατηρούμε ότι μπρος τόξα και διασυνδετικά τόξα δεν μπορεί να υπάρχουν: Ας θεωρήσουμε ένα τόξο e ij = e ji και, από τις δύο κορυφές V i, V j, ας δεχτούμε ότι πρώτα έγινε η επίσκεψη στην V i. Oταν ο ΑΠΒ είναι στην V i υπάρχει περίπτωση να πάρει το τόξο e ij και να κάνει έτσι την V j παιδί της V i σε κάποιο δέντρο ΑΠΒ. Η άλλη περίπτωση είναι να μην χρησιμοποιηθεί το e ij σαν τόξο δέντρου επειδή από την V i έγινε ήδη επίσκεψη στην V j μέσω άλλων απογόνων της V i. Τότε όμως το e ij = e ji θα εξεταστεί πριν την εγκατάλειψη της V j και θα γίνει πίσω τόξο. Άρα: ΛΗΜΜΑ Λ4.-3. Αν το G δεν είναι διγράφημα, τα μόνα τόξα που υπάρχουν είναι τόξα δέντρου ή πίσω τόξα. Λ4.-3 Ιδιαίτερα, αφού διαφορετικά δέντρα του δάσους δεν συνδέονται και είναι συνεκτικά παρατηρούμε ότι κάθε δέντρο είναι υπογράφημα του G, που είναι συνεκτικό και «μέγιστο» ως προς την συνεκτικότητα, δηλαδή δεν περιέχεται σε άλλο συνεκτικό υπογράφημα του G. Ένα υπογράφημα με την παραπάνω ιδιότητα λέγεται συνεκτική συνιστώσα του G. Παρατηρούμε λοιπόν ότι: ΛΗΜΜΑ Λ4.-4. Αν το G δεν είναι διγράφημα, κάθε δέντρο του δάσους ΑΠΒ αποτελεί και μια συνεκτική συνιστώσα του G. Λ4.-4 Επομένως μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο ΑΠΒ για να βρούμε τις συνεκτικές συνιστώσες του G (βλ. 4.3). Άμεση σύνδεση με τον ΑΠΒ έχουν δυο από τις τρεις αριθμήσεις δέντρων της.5, οι οποίες θα μας είναι χρήσιμες και στα επόμενα. (i) (ii) Η αρίθμηση της προδιάταξης (preorder) είναι η ίδια με την σειρά επίσκεψης που κάνει ο AΠΒ, δηλαδή η αρίθμηση που δίνεται από το διάνυσμα "νεο". Η αρίθμηση της μεταδιάταξης (postorder) είναι η ίδια με την σειρά εγκατάλειψης που κάνει ο AΠΒ. Αυτή παρέχεται από το διάνυσμα "εγκατ", οι

46 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα αρχικές τιμές του οποίου μπορούν και αυτές να τεθούν στο μηδέν μέσα στην πρώτη i-loop στον αλγόριθμο "ΟΔΗΓΟΣ". Η εγκατάλειψη μιας κορυφής V i γίνεται κατά την επιστροφή από τον ΑΠΒ. Άρα, αν αρχικοποιήσουμε κι ένα μετρητή, μετρ:=0, π.χ. μετά την γραμμή αρκορ:=0, μια σωστή λύση είναι να ορίσουμε το εγκατ(i) στο τέλος του ΑΠΒ (μετά το κλείσιμο της j-loop), μέσω των σχέσεων: μετρ:=μετρ+ εγκατ(i):=μετρ Ανάλυση του ΑΠΒ Ας είναι m το πλήθος των πλευρών του G, και, όπως πάντα, n το πλήθος των κορυφών. Σε κάθε κορυφή γίνεται επίσκεψη μια φορά, οπότε απαιτούνται Ο(n) βήματα. Επιπλέον όμως εξετάζονται, ακριβώς μια φορά το καθένα, όλα τα τόξα που εκκινούν από κάθε κορυφή πριν αυτή εγκαταλειφθεί οριστικά. Αυτό καλύπτει και τις επαναλήψεις των επισκέψεων σε κορυφές. Επίσης, για κάθε κορυφή εκτελείται ο αλγόριθμος ΕΡΓΟ, που όμως θεωρούμε ότι έχει σταθερή πολυπλοκότητα ως προς τις παραμέτρους m, n. Άρα η πολυπλοκότητα σαν συνάρτηση των m, n είναι: O(m) + O(n) = max [ O(m), O(n) ] = O(max(m,n)) 4.3 Συνεκτικές Συνιστώσες Ας θεωρήσουμε ένα γράφημα G, μη διευθυνόμενο, όχι κατ ανάγκη συνεκτικό. Το πρόβλημα είναι να βρεθούν οι συνεκτικές συνιστώσες του G. Όπως είδαμε στην προηγούμενη παράγραφο, η λύση του προβλήματος είναι απλή, αφού με την εφαρμογή του ΑΠΒ βρίσκουμε τα δέντρα του δάσους, που είναι οι συνεκτικές συνιστώσες του G. Εξετάζουμε τώρα ορισμένες λεπτομέρειες, αφού οδηγούν και σε πιο συγκεκριμένη διατύπωση του ΑΠΒ με χρήση λίστας γειτονικότητας "ΛΓ" ενώ παρέχουν και παραδείγματα παραγωγής επιπλέον χρήσιμων πληροφοριών από τον ΑΠΒ. Θα χρησιμοποιήσουμε ένα διάνυσμα δ δεικτών (pointers). Η τιμή δ(i) δείχνει το σημείο όπου διακόψαμε όταν διατρέχαμε τις προσκείμενες κορυφές της V i, για να προχωρήσουμε βαθύτερα σε μια άλλη κορυφή. Κατά την οπισθοδρόμηση, όταν ξαναπεράσουμε από την V i, η τιμή δ(i) δείχνει το σημείο απ' όπου πρέπει να συνεχίσουμε την εξέταση των τόξων που απόμειναν, για νέα πιθανή διείσδυση από την V i. Όταν δ(i)= (δηλαδή κενός, NULL), τότε προφανώς ήρθε η στιγμή να εγκαταλειφθεί η V i. Θα χρησιμοποιούμε δομή στοίβας. Μια απλή υλοποίηση της δομής γίνεται με ένα διάνυσμα «στοίβα», που έχει αρκετά μεγάλο μήκος. Σημειώνουμε ότι στοίβα(προσφ) θα είναι πάντα το πιο πρόσφατο στοιχείο. Άρα η εκδίωξη του πιο πρόσφατου στοιχείου από τη στοίβα γίνεται με την απλή εντολή προσφ:=προσφ-. Όταν

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 47 προσφ=0 η στοίβα είναι κενή. Η καταχώρηση ενός νέου, πιο πρόσφατου, στοιχείου i στη στοίβα γίνεται με έναν απλό αλγόριθμο όπως ο παρακάτω:

4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα καταχώρηση(i, προσφ, στοιβα) (* η μεταβλητή «μηκος» δηλώνει το μήκος του διανύσματος «στοιβα» *) προσφ:=προσφ + if προσφ > μηκος then μήνυμα σφάλματος και «έξοδος» else στοιβα(προσφ): = i Έχουμε τότε τους παρακάτω αλγορίθμους Αλγόριθμος Οδηγός ΑΠΒ Για Συν. Συν. (* αρχικοποιήσεις *) for i:= to n do νεο(i):=0 δ(i):=λγ(i) end i-loop προσφ:=0 αρσσ=0 (*αυξάνεται με κάθε νέα συνεκτική συνιστώσα*) αρκορ:=0 for i:= to n do if νεο(i)=0 then do αρσσ:=αρσσ+ αρκορ:=αρκορ+ write «νεα σ.σ. αριθμ», αρσσ ΑΠΒ(i, αρκορ) end-if end i-loop Αλγόριθμος ΑΠΒ(i,αρκορ) νεο(i):=αρκορ καταχώρηση(i, προσφ, στοιβα) while προσφ 0 do ανωτατο:=στοιβα(προσφ) while δ(ανωτατο) do j:=κορ(δ(ανωτατο)) δ(ανωτατο):=lnk(δ(ανωτατο)) if νεο(j)=0 then do αρκορ:=αρκορ+ νεο(j):=αρκορ καταχώρηση(j, προσφ, στοιβα) ανωτατο:=j end-if end-while (* εκδίωξη του προσφ από τη στοίβα *) προσφ:=προσφ- end-while

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 49 ΠΑΡΑΔΕΙΓΜΑ Π4.3-. Να βρεθούν οι συνεκτικές συνιστώσες για το γράφημα G της Εικόνας 4.3-. 3 4 5 6 7 9 0 Εικόνα 4.3- Το διάνυσμα ΛΓ και οι λίστες γειτονικότητας ΛΓ(i) είναι:

50 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα i ΛΓ(i) 6 9 3 4 5 3 0 0 5 7 4 7 6 9 7 4 5 6 9 9 6 0 3 Για αρσσ= παρακολουθούμε ότι τα διανύσματα στοιβα και δ και τα άλλα στοιχεία εξελίσσονται με το κάλεσμα ΑΠΒ(,) όπως παρακάτω: νεο()= στοιβα=[], προσφ= ανωτατο= δ()=λγ() (από ΟΔΗΓΟ) j=κορ(δ())=6 δ()=lnk(λγ()) (δείχνει στο, μέσα στην ΛΓ του ) νεο(6)=0 αρκορ=, νεο(6)=, στοιβα=[,6], ανωτατο=6 δ(6)=λγ(6) j= δ(6)=lnk(λγ(6)) (δείχνει στο, μέσα στην ΛΓ του 6) νεο()= 0 αρχή του while με ανωτατο=6 j:=κορ(δ(6))= δ(6)=lnk(δ(6)) (δείχνει στο 9, μέσα στην ΛΓ του 6) νεο()=0 αρκορ=3, νεο()=3, στοιβα=[,6,], ανωτατο= j:=κορ(δ())= (πίσω τόξο από προς )...

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 5 Παρακολουθώντας τον ΑΠΒ μέχρι να εκδιωχθεί και ο δείκτης από την στοιβα, οπότε προσφ=0 και γίνεται επιστροφή στον οδηγό, βρίσκουμε την πρώτη συνιστώσα (Εικόνα 4.3-α) και στην συνέχεια τις υπόλοιπες. 5 4 6 3 6 3 9 5 4 9 7 0 0 7 (α) (β) (γ) Εικόνα 4.3- Συνεκτικές συνιστώσες και αρίθμηση προδιάταξης με το διάνυσμα «νέο» Είναι προφανές ότι εύκολα θα μπορούσαν να κρατηθούν κι άλλες πληροφορίες, όπως π.χ. πότε ο ΑΠΒ βρίσκει ένα πίσω τόξο μεταξύ προσφ και j, κάτι που διαπιστώνεται αμέσως από το ότι νεο(j) 0. Π4.3-4.4 Διευθυνόμενα Άκυκλα Γραφήματα (ΔΑΓ) και τοπολογική διάταξη Υπενθυμίζεται ότι ΔΑΓ είναι ένα διγράφημα χωρίς κύκλους. Χρησιμοποιούμε και πάλι τον ΑΠΒ, για να διαπιστώσουμε την τυχόν ύπαρξη κύκλων, βασισμένοι στο παρακάτω: ΛΗΜΜΑ Λ4.4-. Ένα διγράφημα έχει κύκλους έχει πίσω τόξα, άρα και: ένα διγράφημα είναι ΔΑΓ δεν έχει πίσω τόξα. Απόδειξη: το είναι προφανές. Αντίστροφα, αν υπάρχει ένας κύκλος ας είναι V i η κορυφή εκείνη στην οποία η επίσκεψη από ΑΠΒ έγινε πριν από τις άλλες κορυφές του κύκλου. Υπάρχει μια κορυφή V k και τόξο του κύκλου e ki, από V k σε V i. Το e ki δεν μπορεί να είναι τόξο δέντρου αφού η επίσκεψη στην V i έχει γίνει πριν την V k. Είναι τότε πίσω τόξο αφού πρόκειται για ΔΑΓ, δηλαδή δεν υπάρχουν διασυνδετικά και μπρος τόξα. Λ4.4- Επομένως, αν ο ΑΠΒ δεν βρει πίσω τόξα γνωρίζουμε ότι έχουμε ένα ΔΑΓ.

5 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Ας θεωρήσουμε τώρα και την αρίθμηση μεταδιάταξης (postorder), όπως αυτή παράγεται από τον ΑΠΒ με το διάνυσμα «εγκατ» (βλ. 4.), δηλαδή με την σειρά εγκατάλειψης των κορυφών. Επειδή σε ένα ΔΑΓ δεν υπάρχουν πίσω τόξα, επειδή η εγκατάλειψη των απογόνων προηγείται της εγκατάλειψης των προγόνων και επειδή και για τα διασυνδετικά τόξα e ij ισχύει εγκατ(i)>εγκατ(j), συμπεραίνουμε ότι πάντα ισχύει αυτή η ανισότητα, οπουδήποτε υπάρχει τόξο e ij. Θεωρούμε ένα ακόμα διάνυσμα δείκτης(i) := n + - εγκατ(i), το οποίο εκφράζει την αρίθμηση των κορυφών με αντίστροφη σειρά εγκατάλειψης. Τότε ισχύει: ΛΗΜΜΑ Λ4.4-. Αν σε ένα ΔΑΓ υπάρχει τόξο e ij, τότε η V j εγκαταλείφθηκε πριν την V i, δηλαδή δείκτης(i) < δείκτης(j). Λ4.4- Εφαρμογή: Τοπολογική Διάταξη. Ας υποθέσουμε ότι πρέπει να εκτελεστούν n έργα (Tasks) T,...,T n, όπου μερικά χρειάζονται τα αποτελέσματα μερικών άλλων, των οποίων η εκτέλεση πρέπει επομένως να προηγηθεί. Το πρόβλημα της τοπολογικής διάταξης είναι να αριθμήσουμε εκ νέου τα έργα, ώστε αν το Τ i πρέπει να προηγηθεί του Τ j, τότε ο νέος δείκτης του Τ i, να είναι μικρότερος από αυτόν του Τ j. Αν θεωρήσουμε τα έργα ως κορυφές και θέσουμε τόξα e ij όταν το Τ i πρέπει να προηγηθεί του Τ j, προκύπτει ένα μοντέλο με το καλούμενο «Γράφημα Προτεραιότητας». Αν έχουμε ένα ΔΑΓ τότε το διάνυσμα «δείκτης» του Λ4.4- δίνει τη σωστή νέα αρίθμηση. ΠΑΡΑΔΕΙΓΜΑ Π4.4-. Πρέπει να υπολογισθεί η τιμή: τ:=(x y) (z w) + (x y) (z w) / (w v) + (x y) + (z w) +(w v). Ας αριθμήσουμε τα επιμέρους έργα με την σειρά που τα συναντάμε, αφού δεν έχουμε αναλύσει πιο πρέπει να προηγείται: Τ : τ := (x y) (z w) T : τ :=(x y) (z w) /(w v) T 3 : τ 3 : =(x y), T 4 : τ 4 :=(z w) T 5 : τ 5 :=(w v) T 6 : τ 6 : =τ + τ Τ 7 : τ 7 := τ 3 + τ 4 Τ : τ :=τ 7 + τ 5 Τ 9 : τ 9 : =τ + τ 6 (Προφανώς τ=τ 9 ) Παρατηρούμε ότι για έναν οικονομικό υπολογισμό θα μπορούσε κάποιος να χρησιμοποιήσει το γράφημα προτεραιότητας της Εικόνας 4.4-

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 53 Τ 3 Τ 4 Τ 5 Τ 7 Τ Τ Τ Τ 6 Τ 9 Εικόνα 4.4- Αρχίζοντας με i=, όπως απαιτεί ο ΟΔΗΓΟΣ, δηλαδή με την κορυφή Τ, εφαρμόζουμε τον ΑΠΒ και βρίσκουμε το Δάσος της Εικόνας 4.4- με το συνηθισμένο συμβολισμό Τ i i 3 4 5 6 7 9 Εικόνα 4.4- Η σειρά μεταδιάταξης (διάνυσμα «εγκατ») είναι 9, 6,,,, 7, 3, 4, 5 και η αντίστροφη σειρά εγκατάλειψης (διάνυσμα «δείκτης») είναι 5, 4, 3, 7,,,, 6, 9, δηλαδή η κορυφή 5 αριθμείται τώρα με, ή 4 με κ.ο.κ. δίνοντας την Εικόνα 4.4-3.

54 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Τ 3 Τ Τ Τ 4 Τ 6 Τ 7 Τ 5 Τ Τ 9 Εικόνα 4.4-3 4.5 Ισχυρές Συνιστώσες Π4.4- Ένα υπογράφημα του διγραφήματος G που είναι ισχυρά συνεκτικό (.4) και «μέγιστο» ως προς αυτή την ιδιότητα, δηλαδή δεν περιέχεται σε άλλο ισχυρά συνεκτικό υπογράφημα, το καλούμε «ισχυρά συνεκτική συνιστώσα» ή απλά, ισχυρή συνιστώσα του G. Αν το G είναι ισχυρά συνεκτικό τότε έχει μόνο μια ισχυρή συνιστώσα, τον εαυτό του. Αν δύο κορυφές είναι στην ίδια ισχυρή συνιστώσα του G, τότε υπάρχουν διαδρομές από την μια στην άλλη και προς τις δύο κατευθύνσεις. Το ίδιο ισχύει κι αν αναστρέψουμε την φορά των τόξων του G, φτιάχνοντας έτσι ένα νέο γράφημα, το G. Ας υποθέσουμε τώρα ότι εφαρμόζουμε ΑΠΒ στο G. Επειδή δεν υπάρχουν διασυνδετικά τόξα που να έχουν φορά από αριστερά προς τα δεξιά, είναι βέβαιο ότι δύο κορυφές που ανήκουν στην ίδια ισχυρή συνιστώσα θα ανήκουν και στο ίδιο δέντρο του Δάσους ΑΠΒ. Το αντίστροφο δεν ισχύει. Κάθε δέντρο πρέπει επιπλέον να εξεταστεί ως προς την ισχυρή συνεκτικότητα και γενικά οι ισχυρές συνιστώσες προκύπτουν σαν παραπέρα διάσπαση, σαν υπογραφήματα, του κάθε δέντρου ΑΠΒ. Η εφαρμογή του ΑΠΒ παράγει το διάνυσμα «δείκτης» (του Λ4.4-), δηλαδή αρίθμηση των κορυφών με σειρά αντίστροφη από τη σειρά εγκατάλειψης τους. Ας εφαρμόσουμε εκ νέου τον ΑΠΒ, χρησιμοποιώντας την νέα αυτή αρίθμηση και το γράφημα G. Ας πάρουμε ένα δέντρο Δ στο νέο δάσος ΑΠΒ ρίζας V r και ας είναι V i μια τυχαία κορυφή του Δ. Ισχύει: ΛΗΜΜΑ Λ4.5-. i) Υπάρχει διαδρομή από V i σε V r στο G και

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 55 ii) Υπάρχει διαδρομή από V r σε V i στο G. Άρα, η ρίζα και μια τυχαία κορυφή ενός τυχαίου δέντρου Δ ανήκουν στην ίδια ισχυρή συνιστώσα του G. Απόδειξη: i) Υπάρχει διαδρομή από την ρίζα του V r του Δ στην V i, γιατί το Δ είναι δέντρο. Η ίδια διαδρομή υπάρχει και στο G γιατί το Δ είναι υπογράφημα του G. Από τον ορισμό του G ακολουθεί το συμπέρασμα. ii) Αφού η Vr είναι ρίζα του Δ, ο ΑΠΒ για το G την επισκέφτηκε πρώτη και την εγκατέλειψε τελευταία από όλες τις κορυφές του Δ. Η χρονική διαδοχή των γεγονότων ήταν δηλαδή: επίσκεψη σε V r επίσκεψη σε V i εγκατάλειψη της V i εγκατάλειψη της V r. Αυτό βέβαια σημαίνει και ότι δείκτης(r) < δείκτης(i), άρα και εγκατ(i) < εγκατ(r), δηλαδή κατά την εφαρμογή του ΑΠΒ για το G, η Vi εγκαταλείφθηκε πριν την V r. Άρα η παραπάνω διαδοχή των γεγονότων ίσχυσε και στον ΑΠΒ για το G, που σημαίνει ότι μέσα σε κάποιο δέντρο Δ του Δάσους AΠΒ για το G, η V i είναι απόγονος της V r. Άρα υπάρχει διαδρομή από V r σε V i μέσα στο Δ, το οποίο είναι υπογράφημα του G. Άρα ισχύει το (ii). Λ4.5- Από το Λ4.5- συμπεραίνουμε αμέσως ότι το τυχαίο Δ είναι ισχυρά συνεκτικό υπογράφημα του G, άρα όλες οι κορυφές του ανήκουν στην ίδια ισχυρή συνιστώσα του G. Αυτή η συνιστώσα δεν μπορεί να περιέχει και κορυφές εκτός Δ : μια οποιαδήποτε κορυφή της συνδέεται με κορυφές του Δ (και προς τις δυο κατευθύνσεις) άρα θα είχε προσαρτηθεί στο Δ κατά την εφαρμογή του ΑΠΒ για το G. Άρα η ισχυρή συνιστώσα συμπίπτει με το Δ. Δεν έχουμε λοιπόν παρά να βρούμε όλα τα δέντρα του Δάσους ΑΠΒ για G με χρήση του διανύσματος δείκτης. Αυτά θα είναι οι ισχυρές συνιστώσες του G. Από εδώ προκύπτει ο παρακάτω αλγόριθμος. Αλγόριθμος «Ισχυρές Συνιστώσες» ΑΠΒ για το G (* καθορισμός του διανύσματος «δείκτης» *). ΑΠΒ για το G (με σειρά προτεραιότητας, όπως καθορίζει ο δείκτης). ΠΑΡΑΔΕΙΓΜΑ Π4.5-. Να βρεθούν οι ισχυρές συνιστώσες του διγραφήματος της Εικόνας 4.5-. Πρώτη εφαρμογή του ΑΠΒ δίνει το δάσος της Εικόνας 4.5-. Η σειρά μεταδιάταξης τότε είναι, 9,, 0, 5, 4, 3,, 7, 6, άρα η σειρά προτεραιότητας που θα χρησιμοποιήσει ο ΑΠΒ για το G είναι πρώτα η 6, μετά η 7,..., τελευταία η. Η

56 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα σειρά αυτή αναγράφεται δίπλα στις κορυφές του G, στην Εικόνα 4.5-3, ενώ το δάσος για το G δίνεται στην Εικόνα 4.5-4. Τα δέντρα του είναι οι ισχυρές συνιστώσες του G. 3 4 5 6 7 9 0 Εικόνα 4.5-6 3 4 7 5 0 9 Εικόνα 4.5-

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 57 3 0 4 5 6 3 4 5 6 7 9 7 9 0 Εικόνα 4.5-3 6 7 0 9 4 5 3 Εικόνα 4.5-4

5 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Π4.5-4.6 Δισυνεκτικές Συνιστώσες Θεωρούμε τώρα ένα γράφημα G που δεν είναι διγράφημα. Υποθέτουμε ότι το G είναι συνεκτικό. «Εκδίωξη κορυφής» από το G σημαίνει την αφαίρεση από το G της κορυφής, καθώς και των πλευρών που συντρέχουν σ αυτήν. Υπάρχουν κορυφές που αν τις εκδιώξουμε δεν καταστρέφουν την συνεκτικότητα και άλλες που την καταστρέφουν, κόβοντας το G σε δύο ή περισσότερες συνεκτικές συνιστώσες. Μια κορυφή της δεύτερης περίπτωσης καλείται σημείο άρθρωσης ή σημείο κοπής. Ισοδύναμα, μια κορυφή V i, είναι σημείο άρθρωσης τότε και μόνο τότε όταν υπάρχουν δύο άλλες κορυφές, διαφορετικές μεταξύ τους και από την V i, τέτοιες ώστε η V i να βρίσκεται πάνω σε όλες τις διαδρομές που συνδέουν τις δύο αυτές κορυφές. Ένα γράφημα που δεν έχει σημεία άρθρωσης λέγεται διπλά συνεκτικό ή δισυνεκτικό. Το πρόβλημα που μας απασχολεί εδώ, είναι να βρούμε όλα τα σημεία άρθρωσης του G, οπότε μπορούμε να βρούμε και τις δισυνεκτικές συνιστώσες του, δηλαδή τα μέγιστα δισυνεκτικά του υπογραφήματα.

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 59 Ας υποθέσουμε ότι εφαρμόζουμε ΑΠΒ, οπότε έχουμε ένα μόνο δέντρο Τ στο δάσος, αφού το G είναι ήδη συνεκτικό. Αν δεν ήταν συνεκτικό θα δουλεύαμε με κάθε συνεκτική συνιστώσα του, με τον ίδιο τρόπο. Μπορούμε αμέσως να δούμε ότι η ρίζα του δέντρου είναι σημείο άρθρωσης τότε και μόνο τότε όταν έχει πάνω από ένα υποδέντρα. Επίσης, μπορούμε αμέσως να δούμε ότι ένα φύλλο δεν μπορεί να είναι σημείο άρθρωσης. Απομένει λοιπόν να εξετάσουμε κορυφές V i, που δεν είναι ούτε ρίζα ούτε φύλλο, δηλαδή που έχουν και γνήσιους προγόνους και μη κενά υποδέντρα Τ,...,Τ r, r. T* i T... Tr, r Εικόνα 4.6- Ας είναι Τ* το υπογράφημα του Τ (και G), που προκύπτει αν από το δέντρο διωχτεί η V i και όλα τα υπόδεντρά της. Δύο κορυφές του Τ* συνδέονται βέβαια μεταξύ τους χωρίς την παρεμβολή της V i. Το ίδιο συμβαίνει με δύο κορυφές που ανήκουν στο ίδιο υποδέντρο της V i. Για να υπάρχει λοιπόν περίπτωση η V i να βρίσκεται πάνω σε όλες τις διαδρομές που συνδέουν δύο κορυφές V j, V k, με j k, j i, k i, πρέπει κατ αρχήν: i) Μια από τις δύο, ας είναι η V j, να ανήκει στο Τ* και η άλλη, η V k, να ανήκει σ ένα από τα υποδέντρα, ή ii) Να ανήκουν σε δύο διαφορετικά υποδέντρα της V i, εφ όσον υπάρχουν. Μπορεί τώρα να συμβαίνει το (i) ή το (ii) χωρίς να είναι η V i σημείο άρθρωσης: Αν για κάθε υποδέντρο της V i υπάρχει πίσω τόξο, που συνδέει το υποδέντρο με κάποιο γνήσιο πρόγονο της V i (μέσα στο Τ*) τότε η V i δεν είναι σημείο άρθρωσης.

60 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Αυτό γιατί η V k, που ανήκει σε υποδέντρο, μπορεί με το αντίστοιχο πίσω τόξο να συνδεθεί μ έναν πρόγονο της V i. Η V j μπορεί επίσης να συνδεθεί μ έναν πρόγονο της V i, είτε επειδή ανήκει στο Τ*, το οποίο είναι συνεκτικό, είτε επειδή ανήκει σε υπόδεντρο, οπότε χρησιμοποιεί το αντίστοιχο πίσω τόξο. Έτσι υπάρχει διαδρομή μεταξύ V k και V j, από την «πίσω πόρτα», μέσω σύνδεσης με προγόνους της V i, χωρίς να παρεμβάλλεται η V i. Αντίστροφα, αν η V i δεν είναι σημείο άρθρωσης, τότε για κάθε υπόδεντρό της υπάρχει πίσω τόξο που το συνδέει με κάποιο πρόγονο της V i. Γιατί αν ένα από τα υποδέντρα δεν είχε πίσω τόξο, π.χ. το Τ, αν πάρουμε την V k στο Τ τότε είναι αδύνατο να συνδεθεί η V k με την V j, είτε η V j είναι στο Τ* είτε είναι σε άλλο υπόδεντρο. Γιατί ο μόνος τρόπος που απομένει για να συνδεθεί η V k με Τ * ή με άλλο υπόδεντρο, χωρίς την παρεμβολή της V i, είναι με διασυνδετικά τόξα. Τέτοια τόξα όμως δεν υπάρχουν από Λ4.-3. Άρα: ΛΗΜΜΑ Λ4.6-. Ας είναι η V i όχι ρίζα, όχι φύλλο. Τότε: η Vi είναι σημείο άρθρωσης υπάρχει υπόδεντρο της V i που δεν συνδέεται με γνήσιο πρόγονο της V i με πίσω τόξο. Λ4.6- Για να εφαρμόσουμε το Λ4.6- για την ανακάλυψη των σημείων άρθρωσης, υπενθυμίζουμε ότι οι δείκτες νεο(i), που παράγονται από ΑΠΒ, αντιστοιχούν στην σειρά επίσκεψης των κορυφών και στην αρίθμηση προδιάταξης (preorder) του δέντρου. Όσο πιο βαθιά στο δέντρο είναι μια κορυφή V i, τόσο πιο μεγάλο νεο(i) έχει, σε σχέση με τις άλλες κορυφές στο ίδιο υπόδεντρο. Αυτό μπορεί να παρατηρηθεί και στο παρακάτω παράδειγμα. ΠΑΡΑΔΕΙΓΜΑ Π4.6-. Η αρίθμηση προδιάταξης για το G της Εικόνας 4.6- παρέχεται στην Εικόνα 4.6-3, όπου φαίνεται και το δέντρο ΑΠΒ για το G. 3 4 6 7 5 9 0 Εικόνα 4.6-

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 6 7 3 3 6 4 7 9 9 0 4 5 5 6 0 Εικόνα 4.6-3 Π4.6- Ορίζουμε τώρα ένα νέο δείκτη, σ(i), με τον ακόλουθο τρόπο: i) αν η V i είναι φύλλο, τότε ο σ(i) είναι ο ελάχιστος μεταξύ νεο(i) και νεο(j) για όλα τα j, για τα οποία υπάρχει πίσω τόξο από V i σε V j. Για το Π4.6- επομένως: σ(5) = 4, σ(6) = min{νεο(6), νεο()} = min{5,} =, σ() = 0, σ() = min{νεο(), νεο(), νεο()} = min{,, 7} = ii) αν η V i δεν είναι φύλλο, οπότε έχει παιδιά, τότε ο σ(i), είναι ο ελάχιστος όχι μόνο μεταξύ των νεο(i) και όλων των νεο(j), όπως στο (i), αλλά και μεταξύ των σ(k) για όλα τα παιδιά V k της V i. Έτσι, για το Π4.6- ισχύει π.χ. σ(0) = min{νεο(0)=, σ()} = σ(9) = min{νεο(9)=9, σ()=0} = 9, κλπ. Παρατηρούμε ότι το διάνυσμα σ κατασκευάζεται επαγωγικά, αρχίζοντας από τα παιδιά προς τους προγόνους, άρα φυσιολογική σειρά κατασκευής είναι αυτή της μεταδιάταξης. ΠΑΡΑΔΕΙΓΜΑ Π4.6-. Οι δείκτες σ(i) παρέχονται στα δεξιά κάθε κορυφής στην Εικόνα 4.6-4 για το Π4.6-. Η σειρά κατασκευής τους είναι αυτή της μεταδιάταξης, δηλαδή 5, 6, 3, 4,, 7,, 9, 0,,. Το σ() είναι βέβαια πάντα ίσο με. Αναγνωρίζουμε αμέσως ότι η ρίζα είναι σημείο άρθρωσης, αφού έχει πάνω από ένα υποδέντρα.

6 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα 3 4 7 9 0 5 4 6 0 Εικόνα 4.6-4 Π4.6- Μπορούμε τώρα να παρατηρήσουμε τα παρακάτω: ΛΗΜΜΑ 4.6-. Για κάθε κορυφή V r που έχει παιδιά, ισχύει σ(r) σ(k), για όλα τα παιδιά V k της κορυφής. Απόδειξη: Από την κατασκευή του, ο σ(r) είναι ο ελάχιστος μεταξύ όλων των σ(k) καθώς και άλλων αριθμών. Λ4.6- ΛΗΜΜΑ Λ4.6-3. Ας είναι η V i όχι ρίζα, όχι φύλλο. Τότε: η Vi είναι σημείο άρθρωσης υπάρχει υπόδεντρο της V i τέτοιο ώστε σ(m) νεο(i) για όλες τις κορυφές Vm του υποδέντρου. Απόδειξη: Από Λ4.6- η V i είναι σημείο άρθρωσης υπάρχει υπόδεντρο της V i που για κάθε κορυφή του V m δεν υπάρχει πίσω τόξο που συνδέει την V m με πρόγονο V j της V i, (δηλαδή, αφού λείπουν τα διασυνδετικά τόξα, με V j τέτοιο ώστε νεο(j) < νεο(i)) υπάρχει υπόδεντρο της V i τέτοιο ώστε για κάθε κορυφή V m του υποδέντρου, δεν συμμετέχουν αριθμοί μικρότεροι του νεο(i) κατά το σχηματισμό του σ(m) υπάρχει υπόδεντρο της V i τέτοιο ώστε για κάθε κορυφή V m του υποδέντρου να ισχύει σ(m) νεο(i). Λ4.6-3

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 63 ΘΕΩΡΗΜΑ Θ4.6-4. Ας είναι η V i όχι ρίζα, όχι φύλλο. Τότε η Vi είναι σημείο άρθρωσης υπάρχει παιδί V j της V i τέτοιο ώστε σ(j) νεο(i). Απόδειξη: Αν η V i είναι σημείο άρθρωσης τότε ας πάρουμε για V j τη ρίζα του υποδέντρου που μας δίνει το Λ4.6-3, οπότε ισχύει: σ(j) νεο(i) (4.6-) Αντίστροφα, ας είναι η V j ένα παιδί της V i, για το οποίο ισχύει η (4.6-). Η V j είναι ρίζα ενός υποδέντρου της V i. Για κάθε παιδί V m της V j, ισχύει σ(m) σ(j), από Λ4.6-. Επαγωγικά αυτό ισχύει για όλες τις κορυφές του υποδέντρου, οπότε από την (4.6-) έχουμε και σ(m) νεο(i) για όλες τις κορυφές του υποδέντρου. Τότε από Λ4.6-3 η V i είναι σημείο άρθρωσης. Θ4.6-4 Από το Θ4.6-4 προκύπτει ο παρακάτω αλγόριθμος εύρεσης των δισυνεκτικών συνιστωσών. Αλγόριθμος Δισυν. Συν.. ΑΠΒ (παράγονται τα "νεο" και "εγκατ").. Επίσκεψη με αρίθμηση μεταδιάταξης (διάνυσμα εγκατ ) και παραγωγή του διανύσματος σ. 3. Τότε: Σημεία άρθρωσης είναι οι κορυφές που ικανοποιούν την συνθήκη του Θ4.6- και η ρίζα, αν αυτή έχει πάνω από ένα παιδί. Άρα, για την Εικόνα 4.6- τα σημεία κοπής είναι:,3,,9. 4.7 Ταιριάσματα και Διμερή Γραφήματα Ταίριασμα Τ ενός γραφήματος είναι ένα υποσύνολο των πλευρών του, που δεν περιέχει προσκείμενες πλευρές. Δηλαδή, δύο οποιεσδήποτε πλευρές του αποκλείεται να συντρέχουν στην ίδια κορυφή. Αυτό σημαίνει ότι οι κορυφές εκείνες που είναι άκρα πλευρών του Τ, είναι ταιριασμένες μεταξύ τους ανά δύο μέσω πλευράς του Τ και αποκλείεται μια κορυφή να έχει πάνω από ένα ταίρι. Όσο πιο πολλές πλευρές έχει το Τ τόσο «μεγαλύτερο» λέμε ότι είναι. Αυτό βέβαια δεν σημαίνει ότι αν το Τ είναι μεγαλύτερο του Τ τότε το Τ είναι υποσύνολο του Τ. Αν δεν υπάρχει ταίριασμα πιο μεγάλο από το Τ τότε λέμε ότι το Τ είναι «μέγιστο», δηλαδή έχουν βρεθεί ταίρια για όσο το δυνατό πιο πολλές κορυφές.

64 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Ένα γράφημα G μπορεί να έχει παραπάνω από ένα μέγιστα ταιριάσματα. Αν έχουν ταιριάξει όλες οι κορυφές, λέμε ότι το Τ είναι «τέλειο». Προφανώς, αν το Τ είναι τέλειο τότε είναι και μέγιστο, ενώ το αντίστροφο δεν είναι αναγκαστικά αλήθεια. Ένα γράφημα με μονό πλήθος κορυφών αποκλείεται να έχει ένα τέλειο ταίριασμα. Ας είναι F και H δύο ξένα σύνολα πλευρών. Λέμε ότι μια διαδρομή έχει πλευρές που εναλλάσσονται στα F και Η όταν οι πλευρές ανήκουν, με την σειρά που υπάρχουν μέσα στην διαδρομή, εναλλακτικά μια στο ένα και μια στο άλλο από τα σύνολα F και Η. Δεν μας ενδιαφέρει στο σημείο αυτό αν η πρώτη πλευρά ανήκει στο F ή στο Η. Ας θεωρήσουμε δύο ταιριάσματα Τ και Τ για το G. Ας είναι G :=(V,E ) το (γεννητικό) υπογράφημα του G όπου Ε είναι η συμμετρική διαφορά των δύο συνόλων Τ και Τ δηλαδή: Ε = : T T = ( T T ) ( T T ) Υπενθυμίζουμε ότι η συμμετρική διαφορά περιέχει όλα τα μη κοινά στοιχεία των δύο συνόλων και επομένως αντιστοιχεί στην πράξη «XOR» (Exclusive OR). Θα χρειαστούμε το παρακάτω: ΘΕΩΡΗΜΑ Θ4.7- i) Κάθε κύκλος του G :=(V, E ), αποτελείται από ζυγό πλήθος πλευρών, που εναλλάσσονται στα Τ- T και T -Τ. ii) Κάθε συνεκτική συνιστώσα του G που περιέχει κύκλο, συμπίπτει με τον κύκλο. iii) Κάθε συνεκτική συνιστώσα του G που δεν είναι κύκλος, είναι ένα από τα παρακάτω: α) μια απομονωμένη κορυφή ή β) μια απλή διαδρομή που, αν οι πλευρές της είναι πάνω από μια, τότε εναλλάσσονται στα Τ και T. Απόδειξη: Πρώτα παρατηρούμε ότι:. Δύο πλευρές που ανήκουν στο ίδιο ταίριασμα (Τ ή T ), αποκλείεται να συντρέχουν στην ίδια κορυφή (ορισμός ταιριάσματος). Άρα:. σε μια οποιαδήποτε κορυφή του V αποκλείεται να συντρέχουν πάνω από δύο πλευρές του Ε. Γιατί τότε δύο από αυτές θα ανήκαν στο ίδιο ταίριασμα. 3. Κάθε διαδρομή, κύκλος ή όχι, αποτελείται από πλευρές που εναλλάσσονται (από ). Το (i) έπεται αμέσως από το 3. Για το (ii), ας πάρουμε ένα κύκλο Κ, που περιέχεται σε μια συνεκτική συνιστώσα Σ του G. Αν η Σ περιείχε κάτι παραπάνω από τον Κ, κορυφή ή πλευρά, τότε, από την συνεκτικότητα, θα είχαμε πάνω από δύο πλευρές του Ε να συντρέχουν

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 65 σε μια κορυφή του Κ. Αυτό αντίκειται στο. Άρα Σ=Κ. Για το (iii), ας πάρουμε μια συνεκτική συνιστώσα Σ που δεν είναι κύκλος. Θα δείξουμε ότι αν δεν είναι μια απομονωμένη κορυφή κι αν δεν αποτελείται από μόνο μια πλευρά, τότε αναγκαστικά είναι (απλή) διαδρομή που οι πλευρές της εναλλάσσονται. Από την συνεκτικότητα, μπορούμε να φτιάξουμε μια διαδρομή Δ που περνάει από όλες τις κορυφές της Σ. Η Δ είναι απλή, γιατί αν περιείχε κύκλο τότε και η Σ θα ήταν κύκλος, από (ii). Οι πλευρές της Δ εναλλάσσονται, από 3. Αρκεί λοιπόν να δείξουμε ότι Σ=Δ. Αν δεν ίσχυε αυτό, τότε η Σ θα είχε και πλευρές (όχι όμως κορυφές) εκτός Δ. Μια τέτοια πλευρά ή θα είχε ένα άκρο σε κάποια εσωτερική κορυφή της Δ ή θα ένωνε τα άκρα της διαδρομής. Το πρώτο αποκλείεται από το, γιατί στην εσωτερική κορυφή θα συντρέχανε πάνω από δύο πλευρές του Ε. Το δεύτερο επίσης αποκλείεται γιατί τότε η Σ θα ήταν κύκλος. Θ4.7- Ας θεωρήσουμε ένα ταίριασμα Τ στο G. Αν υπάρχουν δύο διαφορετικές κορυφές του G, που δεν είναι ταιριασμένες από το Τ, κι αν υπάρχει διαδρομή που τις συνδέει με πλευρές που εναλλάσσονται στα Ε-Τ και Τ, δηλαδή μια εκτός Τ και μια στο Τ, τότε λέμε ότι υπάρχει μια «επαυξημένη διαδρομή (Ε.Δ) στο G, σε σχέση με το Τ». Προφανώς μια Ε.Δ. αρχίζει και τελειώνει με πλευρές εκτός Τ. Διαδρομές μιας πλευράς, που συνδέουν δύο μη ταιριασμένες κορυφές, τις θεωρούμε κι αυτές ότι είναι Ε.Δ. Αν συμβολίσουμε με Δ(Τ) το σύνολο των πλευρών μιας Ε.Δ. στο G, σε σχέση με το Τ, τότε προφανώς ισχύει: (i) Το πλήθος των πλευρών του Δ(Τ) είναι μονός αριθμός και (ii) Το Δ(Τ)-Τ έχει μια πλευρά παραπάνω από το Δ(Τ) Τ ΛΗΜΜΑ Λ4.7-. Αν υπάρχει Ε.Δ. στο G, σε σχέση μ ένα ταίριασμα Τ του G, τότε το σύνολο Τ :=Τ Δ(Τ) είναι επίσης ένα ταίριασμα του G, που έχει πλήθος πλευρών κατά ένα περισσότερο από το Τ. Απόδειξη: Ο ισχυρισμός του λήμματος για το πλήθος των πλευρών είναι προφανώς σωστός από το (ii), παραπάνω. Απομένει να δείξουμε ότι το Τ είναι ταίριασμα. Οι μόνες πλευρές του Τ που συντρέχουν στις κορυφές της Ε.Δ. είναι πλευρές του Δ(Τ)-Τ. Γιατί οι πλευρές του Τ που συνδέουν διαδοχικές εσωτερικές κορυφές της Ε.Δ. έχουν αποκλειστεί από το Τ (ορισμός του Τ ), ενώ στα άκρα της Ε.Δ. δεν συντρέχουν κορυφές του Τ (ορισμός της Ε.Δ.). Επίσης από τον ορισμό της Ε.Δ., στις κορυφές της Ε.Δ. αποκλείεται να συντρέχουν πάνω από μια πλευρές του Δ(Τ)-Τ, άρα και του Τ. Τώρα για τις κορυφές εκτός Ε.Δ., παρατηρούμε ότι οι μόνες πλευρές του Τ που μπορεί να συντρέχουν εκεί, είναι πλευρές του Τ, το οποίο είναι ταίριασμα. Άρα και εκεί αποκλείεται να συντρέχουν πάνω από μια πλευρά του Τ. Άρα το Τ είναι ταίριασμα. Λ4.7-

66 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Παρατηρούμε τώρα ότι για κάθε ταίριασμα Τ, εφ όσον μπορούμε να βρούμε μια Ε.Δ. στο G, σε σχέση με το Τ, μπορούμε να φτιάξουμε και ένα μεγαλύτερο ταίριασμα Τ. Αν δεν υπάρχει μια τέτοια Ε.Δ., μπορούμε να είμαστε βέβαιοι ότι το Τ είναι μέγιστο; ΘΕΩΡΗΜΑ Θ4.7-3. Ένα ταίριασμα Τ δεν είναι μέγιστο Υπάρχει Ε.Δ. στο G, σε σχέση με το Τ. Απόδειξη: Το είναι προφανές από το Λ4.7-. ( ): Αφού το Τ δεν είναι μέγιστο, υπάρχει ταίριασμα Τ που είναι μέγιστο και το Τ θα έχει πιο πολλές πλευρές από το Τ. Επίσης, από το σκέλος, δεν υπάρχει Ε.Δ. στο G σε σχέση με το Τ. Θεωρούμε το γράφημα G :=(V,E ), με E :=T Τ. Σύμφωνα με το Θ4.7-, αν δεν υπάρχουν συνεκτικές συνιστώσες του τύπου (iii)-(β) για το G, τότε τα Τ και Τ θα είχαν το ίδιο πλήθος πλευρών. Άρα υπάρχουν τέτοιες συνιστώσες κι ας είναι Δ μια απ αυτές, που έχει μια πλευρά παραπάνω για το Τ. Αν η Δ αποτελείται από μια μόνο πλευρά, τότε αυτή ανήκει στο Τ -Τ, άρα αποτελεί μια Ε.Δ. σε σχέση με το Τ και τελειώσαμε. Αν είναι μια απλή διαδρομή με πλευρές που εναλλάσσονται τότε, για να έχει μια πλευρά παραπάνω από το Τ, αρχίζει και τελειώνει με πλευρές από Τ -Τ. Άρα πάλι είναι μια Ε.Δ. σε σχέση με το Τ και επομένως πάλι τελειώσαμε. Θ4.7-3 Σύμφωνα με το Θ4.7-3 ένας αλγόριθμος που βρίσκει ένα μέγιστο ταίριασμα θα άρχιζε με ένα τυχαίο Τ, π.χ. Τ= στην χειρότερη περίπτωση και θα το μετέτρεπε σε μεγαλύτερο Τ, κάθε φορά που θα έβρισκε μια Ε.Δ., εφαρμόζοντας το αποτέλεσμα Τ Τ Δ(Τ) του Λ4.7-. Το πρόβλημα λοιπόν είναι να βρίσκει κανείς μια Ε.Δ., αν υπάρχει. Αυτό μπορεί να γίνει με τρόπο παρόμοιο με την ΑΠΒ, όπου όμως μπορεί να οδηγήσει σε υπερπολυωνυμικό αλγόριθμο. Για ένα ειδικό όμως τύπο γραφημάτων μπορούν να γίνουν σημαντικές απλοποιήσεις: Υπενθυμίζεται ότι διμερές λέγεται ένα γράφημα που οι κορυφές του μπορούν να χωριστούν σε δύο μη κενά σύνολα Α και Β:=V-A, με την ιδιότητα ότι όλες οι πλευρές του γραφήματος συνδέουν κορυφές μεταξύ Α και Β. Αν δηλαδή e ij E τότε αποκλείεται να είναι και οι δύο κορυφές V i και V j μέσα στο ίδιο σύνολο Α ή Β. Ας είναι Τ ένα γνωστό ταίριασμα σε ένα διμερές γράφημα G. Για να βρούμε μια Ε.Δ., αν υπάρχει, εισάγουμε διεύθυνση στα τόξα e ij του G δημιουργώντας έτσι ένα διευθυνόμενο γράφημα G. Ας είναι e ij ένα τόξο του G και έστω ότι από τις κορυφές V i, V j που συνδέει, αυτή που ανήκει στο Α είναι η V i, οπότε η V j ανήκει στο Β. Αν το τόξο ανήκει στο Τ ορίζουμε ως διεύθυνση του τόξου αυτήν από V i προς V j, αλλιώς ορίζουμε την αντίθετη της. Για να υπάρχει Ε.Δ. πρέπει να υπάρχει διαδρομή στο G μεταξύ δυο αταίριαστων κορυφών. Η εφαρμογή του ΑΠΒ (ή του ΑΠΠ, ή άλλου

4. ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 67 αντίστοιχου αλγορίθμου) θα ανακαλύψει την διαδρομή αυτή και σε χρόνο Ο(n+m) σύμφωνα με την 4.. Αν αυτό χρειαζόταν για κάθε μια από τις κορυφές του G, θα είχαμε στη χειρότερη περίπτωση χρόνο no(n+m)=o(n(n+m)). Μια βελτίωση (HoKa73) του απλοϊκού αυτού αλγορίθμου που βασίζεται στην ανεύρεση πολλών εναλλακτικών διαδρομών Ο n n + m. ( ) για κάθε εφαρμογή του ΑΠΒ περιορίζει την ΠΧΠ σε ( ) 4. Ασκήσεις 4. Να εφαρμοστεί ΑΠΠ και ΑΠΒ για το γράφημα της εικόνας που ακολουθεί 3 7 4 5 6 4. Δείξτε ότι σ ένα δέντρο του δάσους που παράγεται από την αναζήτηση πρώτα κατά πλάτος το μήκος μιας διαδρομής από τη ρίζα σε οποιοδήποτε κόμβο είναι και η απόσταση μεταξύ της ρίζας και του κόμβου στο αρχικό γράφημα. 4.3 Να γίνει τοπολογική διάταξη για το διγράφημα: 3 7 6 5 4 9 0

6 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα 4.4 Να βρεθούν οι ισχυρές συνιστώσες του διγραφήματος: 4 7 0 5 3 6 9 4.5 Να βρεθούν οι δισυνεκτικές συνιστώσες του γραφήματος της προηγούμενης άσκησης. 4.6 Σχεδιάστε ένα αλγόριθμο που ανακαλύπτει αν ένα γράφημα είναι διμερές και, αν είναι, βρίσκει τα δύο σύνολα της διαμέρισης των κορυφών. 4.7 Να εφαρμοστεί ο γνωστός αλγόριθμος για να βρεθεί ένα μέγιστο ταίριασμα για το γράφημα. 3 4 5 6 7 9 0 3 4 5 6 4. Ως μέση ( περιφέρεια μέσης ) του G ορίζεται το μικρότερο μήκος μεταξύ των κύκλων του G. Σχεδιάστε και αναλύστε ένα αλγόριθμο που βρίσκει τη μέση του G.