Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
1 Στοιχεία Θεωρίας Συνόλων Πολυσύνολα. 2 Εισαγωγή •Σύνολο είναι μία συλλογή διακεκριμένων αντικειμένων •Ωστόσο, υπάρχουν περιπτώσεις στις οποίες συναντάμε.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 2: Μονοπάτια και Κύκλοι (Euler) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Αναγνώριση Προτύπων.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
Προσεγγιστικοί Αλγόριθμοι
1 Content Addressable Network Λίλλης Κώστας Καλλιμάνης Νικόλαος Αγάθος Σπυρίδων – Δημήτριος Σταθοπούλου Ευγενία Γεωργούλας Κώστας.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 1: Βασικές Έννοιες (ορισμοί) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 1: Βασικές Έννοιες (πράξεις) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 9: Αντιστοιχίσεις και καλύμματα Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 6: Χρωματισμός
Ουρά Προτεραιότητας: Heap
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 6 Ε ΠΙΠΕΔΙΚΟΤΗΤΑ Σταύρος Δ. Νικολόπουλος 1.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΘΕΩΡΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΚΕΦΑΛΑΙΑ 7.4 – 7.6 NP ΠΛΗΡΟΤΗΤΑ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Ελάχιστο Συνδετικό Δέντρο
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Επιπεδικότητα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 5: Επιπεδικότητα.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 2: Μονοπάτια και Κύκλοι (Hamilton) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
Δένδρα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Data Engineering Lab Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα 1.
Συνδεσμικότητα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 6: Χρωματισμός.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΤΕΙ Αθήνας: Σχολή ΤΕΦ: Τμήμα Ναυπηγικής Εφαρμογές Η/Υ στην Ναυπηγική ΙΙ ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ NA0703C39 Εξάμηνο Ζ’ Διδάσκων Κωνσταντίνος Β. Κώστας Παρουσίαση.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1.
Γράφημα είναι μία διμελής σχέση επί ενός συνόλου την οποία παριστάνουμε με γραφικό τρόπο.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
ΧΡΩΜΑΤΙΣΜΟΣ ΓΡΑΦΩΝ Δημοκρίτειο Πανεπιστήμιο Θράκης, Μαθηματικό Σπουδαστήριο Πολυτεχνικής Σχολής.
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
ΓΡΑΦΟΙ (GRAPHS).
Στοιχεία Θεωρίας Γραφημάτων
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
Μεταγράφημα παρουσίασης:

Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1

Ποιο είναι το καλύτερο δίκτυο από άποψη αντοχής σε λάθη; Εισαγωγή Μελέτη βαθμού συνδεσμικότητας ενός γράφου Εφαρμογές: σε οποιασδήποτε μορφής δίκτυα (τηλεπικοινωνιακά, συγκοινωνιακά κ.α.) Ποιο είναι το καλύτερο δίκτυο από άποψη αντοχής σε λάθη; Data Engineering Lab 2

Συνδεσμικότητα Κορυφών Σύνολο αποκοπτουσών κορυφών V΄ (vertex cut set, vertex separating set) ενός συνδεδεμένου γράφου G είναι το σύνολο των κορυφών ώστε ο γράφος G–V΄ να μην είναι συνδεδεμένος και να μην υπάρχει γνήσιο υποσύνολο του V΄ με την ίδια ιδιότητα Συνδεσμικότητα κορυφών (vertex connectivity), VC(G), είναι το ελάχιστο k=|V΄|, ώστε ο γράφος G να είναι συνδεδεμένος αν διαγραφούν λιγότερες από k κορυφές. Ο G λέγεται k-συνδεδεμένος k-connected αν VC(G)≥k Data Engineering Lab 3

Συνδεσμικότητα Κορυφών – Άσκηση Ποιά είναι η τιμή VC των γράφων N5, K5, S6, W6, C4, K4,3, κλωβός(5,3) ? Data Engineering Lab 4

Μερικά Θεωρήματα Θεώρημα: Μια κορυφή v ενός δένδρου είναι αποκόπτουσα αν και μόνον αν d(v)>1 Πόρισμα: Κάθε μη ασήμαντος απλός συνδεδεμένος γράφος έχει τουλάχιστον 2 κορυφές που δεν είναι αποκόπτουσες Θεώρημα: Μια κορυφή v είναι αποκόπτουσα αν και μόνον αν υπάρχουν 2 κορυφές u και w (u,w≠v), ώστε η v να βρίσκεται σε κάθε μονοπάτι από την u προς την w Data Engineering Lab 5

Συνδεσμικότητα Ακμών Σύνολο αποκοπτουσών ακμών Ε΄ – edge cut set, edge separating set – είναι το σύνολο των ακμών ώστε ο γράφος G-E΄ να μην είναι συνδεδεμένος, χωρίς να υπάρχει γνήσιο υποσύνολο του Ε΄ με την ίδια ιδιότητα Συνδεσμικότητα ακμών EC(G) – edge connectivity – ενός γράφου G είναι το ελάχιστο k=|E΄|, ώστε ο G να παραμένει συνδεδεμένος έπειτα από διαγραφή k-1 ακμών Ένας γράφος G λέγεται k-συνδεδεμένος ως προς τις ακμές – edge k-connected – αν EC(G)≥k Data Engineering Lab 6

Συνδεσμικότητα Ακμών – Άσκηση Ποιά είναι η τιμή ΕC των γράφων N5, K5, S6, W6, C4, K4,3, κλωβός(5,3) ? Data Engineering Lab 7

Μερικά Θεωρήματα Θεώρημα: Μια ακμή e είναι αποκόπτουσα αν και μόνον αν υπάρχουν 2 κορυφές u και w, τέτοιες ώστε η e να βρίσκεται σε κάθε μονοπάτι από την u προς την w. Θεώρημα: Μια ακμή είναι αποκόπτουσα αν και μόνον αν δεν περιέχεται σε κύκλο Θεώρημα Whitney: VC(G) ≤ EC(G) ≤ d(G) Πόρισμα: EC(G) ≤ floor(2m/n) Θεώρημα: Έστω 1≤λ≤n-1. Αν d(G)(n+λ-2)/2, τότε ο G είναι λ-συνδεδεμένος Data Engineering Lab 8

Παράδειγμα VC(G)=? ΕC(G)=? 1 8 2 7 3 6 4 5 Στους κανονικούς γράφους υπάρχει σχέση μεταξύ VC και EC; 5 Data Engineering Lab 9

Τεμάχια Γράφου Ένας δισυνδεδεμένος-biconnected γράφος δεν έχει αποκόπτουσες κορυφές. Ένας τέτοιος γράφος αποτελεί ένα τεμάχιο-block ή μια δισυνιστώσα-bicomponent (biconnected component) Τεμάχιο ενός γράφου λέγεται ένας υπογράφος που είναι δισυνδεδεμένος και έχει το μέγιστο αριθμό κορυφών. Πόσα τεμάχια έχει ο διπλανός γράφος? Data Engineering Lab 10

Τεμάχια Γράφου – συνέχεια Δύο τεμάχια ενός γράφου έχουν το πολύ μία κοινή κορυφή. Κάθε γράφος ταυτίζεται με την ένωση των τεμαχίων του. Τα τεμάχια ενός γράφου μπορούν να βρεθούν με DFS Data Engineering Lab 11

Τεμάχια Γράφου – συνέχεια Δεν μπορεί μία κορυφή να είναι κοινή σε δύο τεμάχια ενός γράφου. Τα τεμάχια ενός γράφου χωρίζουν τις ακμές σε ανεξάρτητα σύνολα. Data Engineering Lab 12

Εσωτερικά ξένα μονοπάτια Εσωτερικά ξένα μονοπάτια (internally disjoint paths) είναι δύο μονοπάτια με κοινές τερματικές κορυφές, χωρίς άλλες κοινές κορυφές. 2 5 7 1 8 9 3 4 6 Data Engineering Lab 13

Θεώρημα Whitney Θεώρημα: Ένας γράφος G με n≥3 είναι δι-συνδεδεμένος αν και μόνον αν δύο οποιεσδήποτε κορυφές του είναι συνδεδεμένες με τουλάχιστον δύο εσωτερικά ξένα μονοπάτια. Πόρισμα: Αν ένας γράφος G είναι δισυνδεδεμένος, τότε δύο οποιεσδήποτε κορυφές του ανήκουν σε έναν κύκλο. Πόρισμα: Αν ένας γράφος αποτελείται από ένα τεμάχιο με n≥3, τότε δύο οποιεσδήποτε ακμές του ανήκουν σε έναν κύκλο. Data Engineering Lab 14

Θεώρημα Menger Θεώρημα: Ο μέγιστος αριθμός εσωτερικά ξένων μονοπατιών από μία κορυφή u σε μια κορυφή v ενός συνδεδεμένου γράφου ισούται με τον ελάχιστο αριθμό κορυφών, που χωρίζουν τις κορυφές u και v. Θεώρημα Whitney: Ένας γράφος είναι k-συνδεδεμένος αν και μόνον αν όλα τα ζεύγη κορυφών ενώνονται με τουλάχιστον k εσωτερικά ξένα μονοπάτια. Data Engineering Lab 15

Πορίσματα (ως προς ακμές) Πόρισμα: Ο μέγιστος αριθμός εσωτερικά ξένων μονοπατιών από μία κορυφή u σε μια κορυφή v ενός συνδεδεμένου γράφου ισούται με τον ελάχιστο αριθμό ακμών, που χωρίζουν τις κορυφές u και v. Πόρισμα: Ένας γράφος G είναι k-συνδεδεμένος ως προς τις ακμές, αν και μόνον αν όλα τα ζεύγη κορυφών ενώνονται με τουλάχιστον k εσωτερικά ξένα μονοπάτια. Data Engineering Lab 16

Γενικευμένο πρόβλημα συνδέσμου Το λεγόμενο πρόβλημα του συνδέσμου αναφέρεται στο πρόβλημα της εύρεσης ελάχιστων ζευγνυόντων δένδρων. Ένα ελάχιστο ζευγνύον δένδρο με n≥3 έχει EC=VC=1. Το γενικευμένο πρόβλημα του συνδέσμου είναι “να βρεθεί υπογράφος δοθέντος γράφου με ελάχιστο βάρος, ώστε η συνδεσμικότητα να ισούται με l” Αν l=1, τότε τα προβλήματα ταυτίζονται. Ποιό είναι πιο αξιόπιστο ? VC=EC=4 VC=1 EC=3 Data Engineering Lab 17

Γενικευμένο πρόβλημα συνδέσμου Θα θεωρηθεί η περίπτωση μη ζυγισμένου γράφου. Σκοπός είναι η εύρεση ενός γράφου με n κορυφές και επιγραφές [0..n-1]), l-συνεδεδεμένου και με τον ελάχιστο αριθμό ακμών. Ο γράφος αυτός συμβολίζεται με Hl,n Διακρίνονται τρεις περιπτώσεις: l άρτιο (l=2r). l περιττό (l=2r+1), n άρτιο. l περιττό (l=2r+1), n περιττό. Data Engineering Lab 18

Γενικευμένο πρόβλημα συνδέσμου l άρτιο (l=2r). Δύο κόμβοι i και j είναι γειτονικοί, αν i–r ≤ j ≤ i+r l περιττό (l=2r+1), n άρτιο. Κατασκευάζεται ο γράφος H2r,n (όπως άνω). Επίσης δύο κόμβοι i και i+n/2 ενώνονται για 1≤i≤ n/2. l περιττό (l=2r+1), n περιττό. Κατασκευάζεται ο γράφος H2r,n. Επίσης ενώνεται ο κόμβος 0 με τους (n–1)/2 και (n+1)/2 και ο κόμβος i με τον κόμβο i+(n+1)/2 για 1≤i≤(n–1)/2. H4,8 H5,8 H5,9 Data Engineering Lab 19

Γενικευμένο πρόβλημα συνδέσμου Θεώρημα: Ο γράφος Ηl,n είναι l-συνδεδεμένος. Θεώρημα: Ο ελάχιστος αριθμός ακμών του γράφου Ηl,n είναι ceil(ln/2). H4,8 H5,8 H5,9 Data Engineering Lab 20

Ισομορφισμός Ορισμός: Δύο γράφοι G1=(V1,E1) και G2=(V2,E2) λέγονται ισομορφικοί-isomorphic αν υπάρχει μία αμφιμονοσήμαντη αντιστοιχία f από το το σύνολο V1 στο σύνολο V2 με την ιδιότητα ότι οι κορυφές a, b είναι γειτονικές στο G1 αν και μόνο αν οι κορυφές f(a), f(b) είναι γειτονικές στο G2, για κάθε ζεύγος a,b του V1. Η συνάρτηση f ονομάζεται ισομορφική- isomorphism. Data Engineering Lab 21

Διαπίστωση Ισομορφισμού – 1η λύση Αλγόριθμος ελέγχου ισομορφισμού: Είσοδος: γράφος G και γράφος Η Έξοδος: ΝΑΙ ή ΟΧΙ Αν |V(G)|≠ |V(H)|, τότε return OXI Θεωρούμε μία διάταξη των κορυφών του G Καταγράφουμε τον πίνακα γειτονίας ΑG του G Για κάθε διάταξη των κορυφών του H Καταγράφουμε τον πίνακα γειτονίας ΑH Αν ΑG=ΑH τότε return NAI return OXI Πολυπλοκότητα ? Data Engineering Lab 22

Διαπίστωση Ισομορφισμού – 2η λύση Έστω ότι οι γράφοι αναπαριστώνται με τη μέθοδο των πινάκων πρόσπτωσης (incidence matrix). Μπορεί ο ένας πίνακας πρόσπτωσης να μετασχηματισθεί στον άλλο μέσω αντιμεταθέσεων γραμμών ή/και στηλών. Επίσης μη αποτελεσματική λύση. Υπάρχουν αποτελεσματικοί αλγόριθμοι μόνο για ειδικές περιπτώσεις γράφων. Επίσης, μπορεί να είναι εύκολη η απόδειξη ότι δύο γράφοι δεν είναι ισομορφικοί Data Engineering Lab 23

Αμετάβλητες – invariants Συνθήκες για την εύκολη διαπίστωση αν δύο γράφοι δεν είναι ισομορφικοί: Ίδια τάξη? Ίδιο μέγεθος? Ίδια ακολουθία βαθμών? Ίδιος αριθμός συνιστωσών? Για κάθε συνιστώσα του (4) απαντώνται θετικά οι πρώτες τρεις ερωτήσεις; Έχουν οι δύο γράφοι το ίδιο χρωματικό πολυώνυμο; Για n<8, αν όλες οι ερωτήσεις απαντηθούν θετικά, τότε οι γράφοι είναι ισομορφικοί (έχει αποδειχθεί). Data Engineering Lab 24

Παραδείγματα - Άσκηση d a b c e f(a) = e f(b) = a f(c) = b f(d) = c f(e) = d d a b c e f(a) = 6 f(b) = 1 f(c) = 3 f(d) = 5 f(e) = 2 f(f) = 4 a b c d e f 1 6 2 3 4 5 Data Engineering Lab 25

Παραδείγματα - Άσκηση d a b c e a c d b e f g h d a b c e 2 3 5 6 7 8 Παραδείγματα - Άσκηση d a b c e a c d b e f g h d a b c e 2 3 5 6 7 8 1 4 Data Engineering Lab 26

Γενίκευση Ισομορφισμού Δύο γράφοι είναι 1-ισομορφικοί αν καθίστανται ισομορφικοί μετά την επανειλημμένη διάσπαση των αποκοπτουσών κορυφών. Τα τεμάχια ενός γράφου είναι ισομορφικά προς τις συνιστώσες ενός άλλου γράφου. Data Engineering Lab 27

Παράδειγμα Data Engineering Lab 28

Παράδειγμα – Άσκηση 8 8 9 9 1 7 1 7 7 2 3 5 1 7 4 6 2 3 3 5 5 4 6 Ποιός είναι ο 1-ισομορφικός με διάσπαση αποκοπτουσών κορυφών ? Data Engineering Lab 29

Γενίκευση Ισομορφισμού Αν ο γράφος αποτελείται από ένα τεμάχιο, τότε η έννοια της 1-ισομορφικότητας ταυτίζεται με την έννοια της ισομορφικότητας. Θεώρημα: Αν δύο γράφοι είναι 1-ισομορφικοί, τότε η σειρά και η μηδενικότητά τους είναι ίσες. Data Engineering Lab 30

Αντιστοιχία κύκλων Δύο γράφοι έχουν αντιστοιχία κύκλων – circuit correspondence, αν υπάρχει αμφιμονοσήμαντη αντιστοιχία ακμών και κύκλων, έτσι ώστε ένας κύκλος του πρώτου γράφου να έχει αντίστοιχο κύκλο στο δεύτερο γράφο, που αποτελείται από τις αντίστοιχες ακμές. Θεώρημα: Δύο 1-ισομορφικοί γράφοι έχουν αντιστοιχία κύκλων Data Engineering Lab 31

2-Ισομορφισμός Δύο γράφοι είναι 2-ισομορφικοί αν καθίστανται ισομορφικοί μετά την επανειλημμένη εφαρμογή μιας ή δύο από τις εξής πράξεις διαδοχική διάσπαση αποκοπτουσών κορυφών διαχωρισμός του ενός γράφου σε δύο ξένους υπογράφους, που έχουν 2 ζεύγη κοινών κορυφών και επανασύνδεση των υπογράφων ταυτοποιώντας τις κορυφές με διαφορετικό τρόπο Data Engineering Lab 32

2-Ισομορφισμός – Παράδειγμα Data Engineering Lab 33

2-Ισομορφισμός Δύο ισομορφικοί γράφοι είναι 1-ισομορφικοί, δύο 1-ισομορφικοί γράφοι είναι 2-ισομορφικοί. Το αντίθετο δεν ισχύει. Θεώρημα (Whitney): Δύο γράφοι είναι 2-ισομορφικοί αν και μόνον αν έχουν αντιστοιχία κύκλων Data Engineering Lab 34

Παράδειγμα 1 3 2 5 4 6 7 9 8 10 11 3 5 4 6 7 9 8 10 11 1 2 Data Engineering Lab 35

Αλγόριθμοι Αλγόριθμοι διάσχισης γράφων BFS, αναζήτηση κατά πλάτος DFS, αναζήτηση κατά βάθος Οι αλγόριθμοι αυτοί χρησιμοποιούνται για την εύρεση αποστάσεων από κάποια κορυφή για τη διαπίστωση αν γράφος είναι συνδεδεμένος για την εύρεση (ισχυρά συνδεδεμένων) συνιστωσών για την τοπολογική ταξινόμηση για την εύρεση των σημείων άρθρωσης για την εύρεση γεφυρών για τη διαπίστωση κύκλων για τη διαπίστωση επιπεδικότητας Data Engineering Lab 36

Η διαφορά έγκειται στη δομή δεδομένων! BFS vs DFS BFS 1959 Moore Επισκεπτόμαστε τον πιο ρηχό κόμβο Υλοποίηση με ουρά. DFS 1973 Hopcroft-Tarjan Επισκεπτόμαστε τον πιο βαθύ κόμβο Υλοποίηση με στοίβα. Η διαφορά έγκειται στη δομή δεδομένων! Data Engineering Lab 37

BFS σε δένδρο Data Engineering Lab 38

Ταυτίζεται με την προδιατεταγμένη (preorder) διάσχιση DFS σε δένδρο Ταυτίζεται με την προδιατεταγμένη (preorder) διάσχιση Data Engineering Lab 39

BFS vs DFS Visit ( vertex v) mark v as visited for each edge (v,w) dfs(G) list L = empty tree T = empty choose a starting vertex x visit(x) while(L nonempty) remove edge (v,w) from end of L if w not visited add (v,w) to T visit(w) bfs(G) list L = empty tree T = empty choose a starting vertex x visit(x) while(L nonempty) remove edge (v,w) from beginning of L if w not visited add (v,w) to T visit(w) Visit ( vertex v) mark v as visited for each edge (v,w) add edge (v,w) to end of L Data Engineering Lab 40

BFS – Εύρεση αποστάσεων Είσοδος: γράφος G με επιγραφές και κορυφή xV Έξοδος: οι αποστάσεις από την κορυφή x προς όλες τις κορυφές που είναι προσπελάσιμες από αυτήν Θέτουμε i0. Στην κορυφή x θέτουμε την επιγραφή i. Βρίσκουμε όλες τις κορυφές χωρίς επιγραφές που είναι γειτονικές προς τουλάχιστον μία κορυφή με επιγραφή i Αν δεν υπάρχει κάποια τέτοια κορυφή, τότε ο γράφος εξαντλήθηκε. Θέτουμε την επιγραφή i+1 σε όλες τις κορυφές που βρέθηκαν στο Βήμα 2 Θέτουμε ii+1. Πηγαίνουμε στο Βήμα 2 Data Engineering Lab 41

BFS – Εύρεση αποστάσεων, η ιδέα Σε κάθε χρονική στιγμή υπάρχει ένα “μέτωπο” κορυφών που τις έχουμε ανακαλύψει, αλλά δεν τις έχουμε ακόμη επεξεργασθεί Λαμβάνουμε διαδοχικά τις κορυφές του “μετώπου” και ανακαλύπτουμε τους γείτονες δημιουργώντας ένα νέο “μέτωπο” 3 2 1 s Άσπρες κορυφές: μη μαρκαρισμένες και εκτός ουράς Γκρι κορυφές: μαρκαρισμένες και εντός ουράς Μαύρες κορυφές: μαρκαρισμένες και εκτός ουράς Data Engineering Lab

Αναλυτικά: BFS – αρχικοποίηση Spring 1997 Αναλυτικά: BFS – αρχικοποίηση procedure BFS(G:graph; s:node; var color:carray; dist:iarray; parent:parray); for each vertex u do color[u]:=white; dist[u]:=∞; parent[u]:=nil; color[s]:=gray; dist[s]:=0; init(Q); enqueue(Q, s); (n) Data Engineering Lab 43 CS575 class/17

Αναλυτικά: BFS – main O(m) while not (empty(Q)) do u:=head(Q); Spring 1997 Αναλυτικά: BFS – main while not (empty(Q)) do u:=head(Q); for each v in adj[u] do if color[v]=white then color[v]:=gray; dist[v]:=dist[u]+1; parent[v]:=u; enqueue(Q,v); dequeue(Q); color[u]:=black; end BFS O(m) Data Engineering Lab 44 CS575 class/17

Παράδειγμα BFS r s t u r s t u ¥ ¥ ¥ 1 ¥ ¥ s w r ¥ ¥ ¥ ¥ 1 ¥ ¥ ¥ Spring 1997 Παράδειγμα BFS r s t u r s t u ¥ ¥ ¥ 1 ¥ ¥ s w r ¥ ¥ ¥ ¥ 1 ¥ ¥ ¥ v w x y v w x y r s t u r s t u 1 2 ¥ ¥ 1 2 r t x t x v ¥ 2 ¥ 2 ¥ 1 1 2 v w x y v w x y Data Engineering Lab 45 CS575 class/17

Παράδειγμα BFS – συνέχεια Spring 1997 Παράδειγμα BFS – συνέχεια r s t u r s t u 3 1 0. 3 2 1 2 x v u v u y 2 2 1 ¥ 2 1 2 3 v w x y v w x y r s t u r s t u 3 1 2 1 2 3 u y y 2 1 2 3 2 1 2 3 v w x y v w x y Τέλος, η κορυφή y βγαίνει από την ουρά και μαυρίζεται Data Engineering Lab 46 CS575 class/17

Πολυπλοκότητα του BFS Αρχικοποίηση Θ(n). Spring 1997 Πολυπλοκότητα του BFS Αρχικοποίηση Θ(n). Κάθε κόμβος μπαίνει στην ουρά μία φορά (από άσπρος γίνεται γκρι) και η λίστα γειτνίασης διασχίζεται μία φορά. Το πολύ, όλες οι λίστες διασχίζονται. Κάθε ακμή λαμβάνεται δύο φορές, οπότε ο βρόχος επαναλαμβάνεται το πολύ 2|E| φορές. Χειρότερη περίπτωση O(n+m) Αν ο γράφος είναι υλοποιημένος με πίνακα γειτνίασης, τότε η πολυπλοκότητα είναι Ο(n2). Data Engineering Lab 47 CS575 class/17

BFS tree 1 2 4 5 6 7 8 9 10 11 Graph G 1 4 2 5 6 7 8 9 11 10 BFS Tree 1 2 4 5 6 7 8 9 10 11 Graph G 1 4 2 5 6 7 8 9 11 10 BFS Tree Όσες ακμές του γράφου G παρουσιάζονται στο BFS tree ονομάζονται δενδρικές –tree edges, οι υπόλοιπες ονομάζονται διασταυρούμενες –cross edges. Data Engineering Lab 48

DFS – Αναζήτηση κατά βάθος Αλγόριθμος DFS των Hopcroft-Tarjan (1973): Είσοδος: γράφος G με επιγραφές και κορυφή xV Έξοδος: σύνολο Τ δενδρικών κορυφών και αρίθμηση dfi(v) Θέτουμε TØ, i1. Για κάθε vV, θέτουμε dfi(v)0 Για κάθε u με dfi(u) εκτελείται DFS(u). Στην έξοδο δίνεται το σύνολο Τ. Διαδικασία DFS(v) Θέτουμε dfi(v)i, ii+1 Για κάθε u N(v) εκτελούνται οι εντολές: Αν dfi(u)=0, τότε θέτουμε TTU{e}, όπου e=(u,v) μία μη χρησιμοποιημένη προσπίπτουσα ακμή, και l(e)used Καλούμε την DFS(u) Data Engineering Lab 49

DFS tree 1 4 2 5 6 7 8 9 11 10 DFS Tree 1 2 4 5 6 7 8 9 10 11 Graph G 1 4 2 5 6 7 8 9 11 10 DFS Tree 1 2 4 5 6 7 8 9 10 11 Graph G Όσες ακμές του γράφου G παρουσιάζονται στο DFS tree ονομάζονται δενδρικές –tree edges, οι υπόλοιπες ονομάζονται οπίσθιες –back edges. Data Engineering Lab 50

Οπίσθιες ακμές 1 2 4 5 6 7 8 9 10 11 Graph G 1 4 2 9 5 7 11 6 8 10 DFS Tree Θεώρημα: Κάθε οπίσθια ακμή (u,v) που προκύπτει κατά την αναζήτηση κατά βάθος (DFS) ενός μη κατευθυνόμενου γράφου ενώνει κορυφές που βρίσκονται σε σχέση απογόνου/προγόνου. Data Engineering Lab 51

Spring 1997 Αναλυτικά: DFS procedure DFS(G:graph; var color: carray; d,f:iarray; parent:parray); for each vertex u do color[u]:=white; parent[u]:=nil; time:=0; if color[u]=white then DFS-Visit(u); end DFS (n) Data Engineering Lab CS575 class/17 52

Αναλυτικά: DFS-visit(u) Spring 1997 Αναλυτικά: DFS-visit(u) color[u]:=gray; time:=time+1; d[u]:=time for each v in adj[u] do if color[v]=white then parent[v]:=u; DFS-Visit(v); color[u]:=black; time:=time+1; f[u]:=time; end DFS-Visit Data Engineering Lab CS575 class/17 53

Παράδειγμα DFS u v w u v w x y z x y z u v w u v w B x y z x y z 1/ 1/ Spring 1997 Παράδειγμα DFS u v w u v w 1/ 1/ 2/ x y z x y z u v w u v w 1/ 2/ 1/ 2/ B 3/ 4/ 3/ x y z x y z Data Engineering Lab CS575 class/17 54

Παράδειγμα DFS u v w u v w B B x y z x y z u v w x y z u v w F B B Spring 1997 Παράδειγμα DFS u v w u v w 1/ 2/ 1/ 2/ B B 4/5 3/ 4/5 3/6 x y z x y z u v w x y z u v w F 4/5 3/6 1/8 2/7 B 1/ 2/7 B 4/5 3/6 x y z Data Engineering Lab CS575 class/17 55

Παράδειγμα DFS u v w F B C u v w C F B x y z x y z u v w u v w F B C F Spring 1997 Παράδειγμα DFS u v w F 4/5 9 3/6 1/8 2/7 B C u v w 1/8 2/7 9 C F B 4/5 3/6 10 x y z x y z u v w u v w 1/8 2/7 9 1/8 2/7 9/12 F B C F B C 4/5 3/6 10/11 4/5 3/6 10/11 x y z x y z Data Engineering Lab CS575 class/17 56

Πολυπλοκότητα του DFS Αρχικοποίηση Θ(n). Spring 1997 Πολυπλοκότητα του DFS Αρχικοποίηση Θ(n). Η DFS-visit καλείται μία φορά για κάθε κόμβο v. Ο βρόχος for εκτελείται dv φορές. Συνολικά η DFS-visit καλείται Θ(m) φορές. Χειρότερη περίπτωση Θ(n+m) Data Engineering Lab CS575 class/17 57

Spring 1997 Εφαρμογές του DFS O γράφος G είναι συνδεδεμένος? Εκτελούμε DFS-Visit(v). Αν προσεγγίζουμε όλες τις κορυφές, τότε NAI, αλλιώς OXI. O(n+m) Ο γράφος G είναι δένδρο? Εκτελούμε DFS-Visit(v). Αν προσεγγίζουμε όλες τις κορυφές και δεν υπάρχουν οπίσθιες ακμές, τότε ΝΑΙ, αλλιώς OXI. O(n) Εύρεση τεμαχίων. Εκτελούμε DFS. Αναθέτουμε στις κορυφές ενός τεμαχίου ένα id. Θ(n+m) Εύρεση κύκλου. Εκτελούμε DFS. Αν υπάρχουν οπίσθιες ακμές, τότε NAI, αλλιώς ΟΧΙ. O(n) διότι προσεγγίζονται το πολύ n ακμές. Προσοχή: οι ακμές (u,v) και (v, u) δεν αποτελούν κύκλο. Data Engineering Lab CS575 class/17 58

Αλγόριθμος εύρεσης τεμαχίων με DFS Αρκεί να εντοπιστούν οι αποκόπτουσες κορυφές ως εξής: Αν μία αποκόπτουσα κορυφή v είναι η ρίζα του δένδρου DFS, τότε η v πρέπει να έχει περισσότερο από ένα γιο. Αν μία αποκόπτουσα κορυφή v δεν είναι ρίζα, τότε πρέπει η v να έχει ένα γιο s, του οποίου κάποιος απόγονος (συμπεριλαμβανομένου του s) να συνδέεται με έναν πρόγονο της v μέσω 1 οπίσθιας ακμής το πολύ. Για κάθε κορυφή v ορίζεται εκτός από τη d(v) και μία επιπλέον μεταβλητή, η l(v), που δηλώνει τη μικρότερη από τις επιγραφές d(v) και d(s), όπου s είναι είτε απόγονος της v, είτε πρόγονος μέσω μιας το πολύ οπίσθιας ακμής, που ενώνει τον πρόγονο αυτό με έναν απόγονο της v. Άρα η μέγιστη τιμή που μπορεί να πάρει η l(v) είναι d(v). Άρα για να ισχύει το 2, πρέπει l(s)d(v) Data Engineering Lab 59

Υπολογισμός παραμέτρου l(v) Αρχικά: l(v)=d(v). Ο υπολογισμός της l(v) γίνεται θέτοντας την τιμή της ίση με το ελάχιστο στοιχείο του συνόλου: {d(v)}{l(s) | s γιος της v}{d(w) | (s,w) μία οπίσθια ακμή} Η l(v) ενημερώνεται όποτε προσπελάζεται ένας γιος s, τέτοιος ώστε l(v)l(s) ή όποτε βρίσκεται μία οπίσθια ακμή. Αυτό μπορεί να επιτευχθεί με τη βοήθεια μιας στοίβας. Αποκόπτουσες κορυφές είναι όσες l(u)d(v) Data Engineering Lab 60

Αλγόριθμος Είσοδος: ένας γράφος G με επιγραφές και μία κορυφή Έξοδος: οι κορυφές σε κάθε τεμάχιο του G 1. Θέτουμε i1 και αδειάζουμε τη στοίβα. 2. Για κάθε vV θέτουμε d(v)0 3. Ενώ d(v)=0 για κάποιο v καλούμε την findblocks(v,0). Διαδικασία findblocks(v,w) 1. Θέτουμε, d(vi)1, l(vi) d(vi), ii+1 2.Για κάθε uN(v) Αν df i(v)=0, τότε εκτελούνται τα εξής βήματα Η ακμή (u,v) μπαίνει στη στοίβα αν δεν είναι ακόμη εκεί Καλείται η findblocks(u,0) Θέτουμε l(v)min(l(v),l(u)) Data Engineering Lab 61

Αλγόριθμος (συνέχεια) Αν l(u)≥dfi(v), τότε απωθούνται από τη στοίβα και δίνονται στην έξοδο όλες οι ακμές από την κορυφή της στοίβας μέχρι και την ακμή (u,v) (στο στάδιο αυτό η v είναι είτε ρίζα είτε αποκόπτουσα κορυφή) Αλλιώς, αν df i(u)<df i(v) και u ≠ w τότε εκτελούνται: Ωθούμε την ακμή (v,w) στη στοίβα Θέτουμε l(v)min(l(v),l(w)) Data Engineering Lab 62

Παράδειγμα Ξεκινωντας από την κορυφή 1, να δοθούν τα dfi και l για όλες τις κορυφές 1 2 3 4 5 6 7 8 Data Engineering Lab 63

Παράδειγμα Στο γράφο (α) ξεκινούμε από την κορυφή Α. Να εξηγηθούν διαδοχικά οι τιμές του dfi και l. Data Engineering Lab 64

Παράδειγμα Να εξηγηθούν οι τιμές dfi και l. v[l(v)] 1[1] 5[1] 2[2] 7[5] 1[1] 2[2] 4[2] 3[2] 5[1] 8[1] 6[5] v[l(v)] Data Engineering Lab 65