Αλγόριθμοι Ισχυρά συνεκτικές συνιστώσες Εφαρμογές, BFS

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

Αλγόριθμοι Eλάχιστα μονοπάτια

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

Αλγόριθμοι Επανάληψη για πρόοδο

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Διάλεξη 18: Γράφοι I - Εισαγωγή

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Γράφοι: κατευθυνόμενοι και μη

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

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

(elementary graph algorithms)

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

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Δομές Δεδομένων Ενότητα 6

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Διάλεξη 20: Γράφοι I - Εισαγωγή

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

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Λύσεις 4ης Σειράς Ασκήσεων

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Συνεκτικότητα Γραφήματος

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Ασκήσεις μελέτης της 8 ης διάλεξης

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

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

ιαφάνειες παρουσίασης #11

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

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

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

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

Υπολογιστική Πολυπλοκότητα

(elementary graph algorithms)

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

NP-complete problems. IS, 4-Degree IS,CLIQUE, NODE COVER, MAX CUT, MAX BISECTION, BISECTION WIDTH. NP-complete problems 1 / 30

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική

Διάλεξη 18: Γράφοι I Εισαγωγή

Υπολογιστική Πολυπλοκότητα

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

Συντομότερες Διαδρομές

Chapter 7, 8 : Time, Space Complexity

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

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Chapter 7, 8 : Completeness

Συντομότερες Διαδρομές

Αλγόριθμοι Τυφλής Αναζήτησης

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ

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

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

Μη Ντετερμινισμός και NP-Πληρότητα

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Δυναμικός προγραμματισμός για δέντρα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Transcript:

Αλγόριθμοι Ισχυρά συνεκτικές συνιστώσες Εφαρμογές, BFS Μάρθα Σιδέρη Προτεινόμενη βιβλιογραφία: ββ S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani «Αλγόριθμοι» Κλειδάριθμος 2009 Κεφάλαιο 3. http://www.cs.berkeley.edu/~vazirani/algorithms/chap3.pdf epl333 lect5 20 Έως τώρα στα προηγούμενα μαθήματα είπαμε Καθοδική ιερεύνηση (Depth First Search, dfs) Γρήγορος τρόπος Θ(n) για να εξερευνήσουμε ένα γράφημα (να δούμε όλους τους κόμβους και τις ακμές του). Υπολογίζουμε για κάθε κόμβο v: πότε τον είδαμε πρώτη φορά pre(v) και ποτέ τον είδαμε τελευταία φορά post(v) και χωρίζουμε τις ακμές σε 4 κατηγορίες (tree, back, cross,forward )που χρησιμεύουν σε άλλους αλγορίθμους. Γραφήματα δίχως κύκλους, ακυκλικά (Directed Acyclic Graphs, DAGs). Περιγράφουν διάταξη, ο αλγόριθμος που βρίσκει τη διάταξη λέγεται τοπολογική ταξινόμηση: (α) με DFS ή (β) βάσει του ορισμού των DAG. Αποσύνθεση γραφημάτων: Χώρισε το γράφημα σε συνεκτικές συνιστώσες (τμήματα που για κάθε ζεύγος (u,v) μπορείς να πας από u στο v ). Πως γίνεται? Με δύο DFS, για να αποδείξουμε ορθότητα βασιζόμαστε στο ότι το γράφημα των συνιστωσών είναι DAG epl333 lect5 20 2

Στο προηγούμενο μάθημα: Συζητήσαμε τη χρήση του DFS για να χωρίσουμε το γράφημα σε Ισχυρά Συνεκτικές Συνιστώσες (SCC). Εξηγήσαμε γιατί χρειαζόμαστε 2 DFS: Το πρώτο DFS χρησιμεύει μόνο για να μας δώσει τη σειρά, με την οποία θα καλούμε την explore στο δεύτερο DFS (για να βρούμε τη σωστή σειρά δουλεύουμε στο ανάστροφο γράφημα). Aν κάθε φορά που από το DFS καλούμε την explore me τη συγκεκριμένη σειρά κόμβων, η explore πάει σε όλους τους κόμβους μιας SCC και μόνο σε αυτούς. epl333 lect5 20 3 A,B,D, E C,F K G,H,I,J L epl333 lect5 20 4 2

είτε παράδειγμα εκτέλεσης αλγορίθμου εύρεσης ισχυρά συνεκτικών συνιστωσών http://eclass.aueb.gr/modules/doc ument/file.php/inf6/examples% 2020/SCC3.pps epl333 lect5 20 5 Κατασκευάζουμε το ανάστροφο epl333 lect5 20 6 3

8 9 2 3 20 2 7 0 4 5 6 9 3 6 4 5 7 8 Κατατάσσουμε κατά φθίνουσα σειρά post 2 22 Και κάνουμε DFS L,K,G,I,J,H,C,F,A,D,B,E 23 24 Και κάνουμε epl333 DFS lect5 στο 20αρχικό 7 γράφημα με βάση αυτή τη σειρά L,K,G,I,J,H,C,F,A,D,B,E A,B,D, E C,F K G,H,I,J L epl333 lect5 20 8 4

L K G I J H C F A D B E 2 5 2 3 4 6 7 8 9 0 7 24 3 6 8 23 4 5 9 22 epl333 lect5 20 20 2 9 Άρα οι SCC θα είναι A,B,D, E C,F K G,H,I,J L epl333 lect5 20 0 5

Αλγόριθμος για ισχυρά συνεκτικές συνιστώσες: απόδειξη ορθότητας Αρχικός αλγόριθμος repeat Βρες οποιοδήποτε κόμβο v σε συνεκτική συνιστώσα, η οποία είναι καταβόθρα (sink). Κάλεσε την explore(v) Όλοι οι κόμβοι για τους οποίους καλείται αναδρομικά η explore(v) ανήκουν στην ίδια ισχυρά χρ συνεκτική συνιστώσα με τον v-- σβήσε τους κόμβους αυτούς και τον v από το γράφημα Until να σβηστούν όλοι οι κόμβοι. epl333 lect5 20 Βρες οποιοδήποτε κόμβο v σε συνεκτική συνιστώσα, η οποία είναι καταβόθρα. Πως???? Ξέρουμε ότι: Ο κόμβος που βγήκε τελευταίος από τη στοίβα (ο κόμβοςμε το μεγαλύτερο post) ανήκει σε ισχυρά συνεκτική συνιστώσα, η οποία είναι πηγή (source). (Στον κόμβο αυτό προσπίπτουν μόνο ακμές back.) epl333 lect5 20 2 6

Θέλαμε κόμβο σε sink ισχυρά συνεκτική συνιστώσα. Ο DFS μας δίνει κόμβο σε source ισχυρά συνεκτική συνιστώσα???? Τι να κάνουμε? Τα G, G-transpose έχουν τις ίδιες ισχυρά συνεκτικές συνιστώσες. και η συνιστώσα που ειναι sourse στο G-traspose είναι sink στο G. Για να βρούμε κόμβο σε sink ισχυρά συνεκτική συνιστώσα κάνουμε DFS στο G-transpose. epl333 lect5 20 3 Πως συνεχίζουμε; Πώς θα βρούμε την δεύτερη συνιστώσα; Οταν σβήσουμε όλους τους κόμβους μιας συνεκτικής συνιστώσας που είναι πηγή, τότε ο κόμβος, ο οποίος έχει το μεγαλύτερο post από τους υπόλοιπους κόμβους, ανήκει σε νέα πηγή συνεκτική συνιστώσα. epl333 lect5 20 4 7

Stronlgy connected components(g=(v, E): graph). Υπολόγισε το ανάστροφο γράφημα G T. (Tο G T περιλαμβάνει την ακμή (u, v) ανν το G περιλαμβάνει την (v, u)) 2. Κάνε DFS στο G T 3. Διάταξε τους κόμβους του G κατά φθίνουσα σειρά post από το βήμα 2. 4. Κάνε DFS στο G. Οι κόμβοι εξετάζονται με τη σειρά, ηοποία καθορίστηκε στο βήμα 3. Κάθε φορά που καλείται λί η explore() από το DFS γράψε: «νέα ισχυρά συνεκτική συνιστώσα». Κάθε φορά που καλείται η previsit για κάποιο κόμβο v γράψε: «κόμβος» v. epl333 lect5 20 5 Πρόβλημα SAT satisfiability Γιατί μας ενδιαφέρει?? ( x x x )( x x )( x x )( x x )( x x x ) 2 3 2 2 3 3 2 3 Literals--στοιχεία x, True αν x, x, x True αν x 0 Clauses---συνθήκες. Πρέπει να κάνουμε TRUE ένα (τουλάχιστον) στοιχείο σε κάθε clause. Μας δίνουν τις clauses (και τις μεταβλητές):υπάρχουν τιμές των μεταβλητών που ικανοποιούν (satisfy) όλες τις clauses? epl333 lect5 20 6 8

( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 epl333 lect5 20 7 ( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 epl333 lect5 20 8 9

( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 0 0 epl333 lect5 20 9 ( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 0 0 0 0 epl333 lect5 20 20 0

( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 0 0 0 0 0 0 0 epl333 lect5 20 2 ( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 0 0 0 0 0 0 0 0 epl333 lect5 20 22

( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 x x2 x3 0 0 0 0 0 0 0 0 0 0 0 0 epl333 lect5 20 23 ( x x x)( x x)( x x)( x x)( x x x) 2 3 2 2 3 3 2 3 ΟΧΙ!! x x2 x3 0 0 0 0 0 0 0 0 0 0 0 0 2 n epl333 lect5 20 24 2

x: o A. είναι αθώος y: o A. έχει άλλοθι στις 8μμ z: o φόνος έγινε στις 8μμ x : o A. δεν είναι αθώος z y x ( z, y, x) Ειδική περίπτωση Horn Λογικός προγραμματισμός w: o B. είναι αθώος v: o Γ. είναι αθώος ( x, wv, ) Δεν μπορεί να είναι όλοι αθώοι epl333 lect5 20 25 SAT γιατί μας ενδιαφέρει? Ιστορικά το πρώτο ΝP-πλήρες πρόβλημα Το πρώτο «δύσκολο» πρόβλημα εν ξέρουμε γρήγορο αλγόριθμο. Gödel 954 S. Cook 97 P και ΝΡ Αρχικά προτάθηκε από τον Gödel to 954, Stephen Cook, D. Karp 97, 972 D. Karp 972 epl333 lect5 20 26 3

SAT SAT (SATisfiability, πρόβλημα ικανοποιησιμότητας): ίδεται σύνολο από μεταβλητές και σύνολο από συνθήκες (clauses) στις μεταβλητές αυτές. Κάθε συνθήκη περιλαμβάνει ένα σύνολο από στοιχεία (literals) δηλαδή μεταβλητές ή αρνήσεις μεταβλητών. (Tουλάχιστον ένα από τα στοιχεία που περιλαμβάνει κάθε συνθήκη πρέπει να έχει την τιμή.) Eρώτημα υπάρχει απόδοση τιμών αληθείας (truth assignment) στις μεταβλητές, με την οποία να ικανοποιούνται όλες οι συνθήκες; Το SAT ήταν το πρώτο NP-πλήρες πρόβλημα. epl333 lect5 20 27 Πρόβλημα 3-SAT 3-satisfiability ΟΧΙ Μήπως η κατάσταση είναι ευκολότερη αν είχαμε το πολύ 3 στοιχεία σε κάθε παρένθεση? ( x x x )( x x )( x x )( x x )( x x x ) 2 3 2 2 3 3 2 3 epl333 lect5 20 28 4

Πρόβλημα 2-SAT 2-satisfiability ΝΑΙ Μήπως η κατάσταση είναι ευκολότερη αν είχαμε το πολύ (η ακριβώς) 2 στοιχεία σε κάθε παρένθεση? Παράδειγμα : δεν υπάρχει απόδοση τιμών αληθείας που το ικανοποιεί. ( x x2 )( x x2 )( x2 x3)( x3 x )( x x2 ) Παράδειγμα 2: ικανοποιείται από την,, ( x x2 )( x x2 )( x2 x3)( x3 x )( x x2 ) epl333 lect5 20 29 Υπάρχει γρήγορος αλγόριθμος για το 2-SAT!. Από τις clauses φτιάχνω γράφημα. ΠΩΣ?? 2. Το χωρίζω σε SCC. 3. Αποφασίζω αν η πρόταση είναι ικανοποιήσιμη. ΠΩΣ?? epl333 lect5 20 30 5

Αλγόριθμος 2-SAT. /* Από τις clauses φτιάχνω γράφημα*/ 2-SAT σε G(V, E). V: για κάθε μεταβλητή x κατασκευάζω δύο κόμβους (x και ^x). Ε: Για κάθε συνθήκη (x, y) δύο ακμές στο σύνολο E των ακμών. Μια από το ^x στο y και μια από το ^y στο x. 2. Υπολογίζουμε ισχυρά συνεκτικές συνιστώσες στο G(V, E). 3. /* Αποφασίζω αν η πρόταση είναι ικανοποιήσιμη.*/ Αν το x και ^x βρεθούν στην ίδια συνιστώσα, η πρόταση δεν είναι ικανοποιήσιμη, αλλιώς είναι. ( x x2 )( x x2 )( x2 x3 )( x3 x )( x x2 ) ( x x )( x x )( x x )( x x ) 2 2 2 3 3 epl333 lect5 20 3 είτε παράδειγμα εκτέλεσης αλγορίθμου, με τον οποίο αποφασίζουμε εάν μια πρόταση 2-SAT είναι ικανοποιήσιμη. http://eclass.aueb.gr/modules/doc ument/file.php/inf6/examples% 2020/2SAT_.ppsx epl333 lect5 20 32 6

x x x x x x x x Για κάθε μεταβλητή x 2 2 2 3 3 κατασκευάζω δύο κόμβους, x και x x x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 2 x 2 x 3 x 3 epl333 lect5 20 33 x x x x x x x x Για κάθε μεταβλητή x 2 2 2 3 3 κατασκευάζω δύο κόμβους, x και x x x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 2 x 2 x 3 x 3 epl333 lect5 20 34 7

x x x x x x x x Για κάθε μεταβλητή x 2 2 2 3 3 κατασκευάζω δύο κόμβους, x και x x x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 2 x 2 x 3 x 3 epl333 lect5 20 35 x x x x x x x x Για κάθε μεταβλητή x 2 2 2 3 3 κατασκευάζω δύο κόμβους, x και x x x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 2 x 2 x 3 x 3 epl333 lect5 20 36 8

x x x x x x x x 2 2 2 3 3 Και υπολογίζουμε τις SCC. x x x 2 x 2 x 3 x 3 epl333 lect5 20 37 x x x x x x x x 2 2 2 3 3 Κατασκευάζουμε το ανάστροφο x x 2 5 0 Και κάνουμε DFS για να πάρουμε τη φθίνουσα σειρά post των κόμβων 2 x 2 x 2 7 8 x 3 x 3 3 4 6 9 epl333 lect5 20 38 9

x x x x x x x x 2 2 2 3 3 x x 6 7 2 Και κάνουμε DFS στο κανονικό διάγραμμα με βάση τη σειρά αυτή x, x, x, x, x, x 2 3 2 3 x 2 3 4 x 2 8 x 3 x 3 2 5 9 0 epl333 lect5 20 39 x x x x x x x x 2 2 2 3 3 Επομένως θα έχουμε 2 SCC x, x2, x x 3, x2, x3 Πηγή SCC, Όλα = 0 Και από τη στιγμή που xi και x i δε βί βρίσκονται στην ίδια SCC η πρόταση είναι ικανοποιήσιμη Βρείτε μια αποτίμηση που ικανοποιεί την πρόταση! (,,) epl333 lect5 20 40 20

είτε δεύτερο παράδειγμα εκτέλεσης αλγορίθμου, με τον οποίο αποφασίζουμε εάν μια πρόταση 2-SAT είναι ικανοποιήσιμη. http://eclass.aueb.gr/modules/doc ument/file.php/inf6/examples% 2020/2SAT_2.ppsx epl333 lect5 20 4 x x x x x x x x x x 2 2 2 3 3 2 x x x 2 x 2 Για κάθε μεταβλητή x κατασκευάζω δύο κόμβους, x και x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 3 x 3 epl333 lect5 20 42 2

x x x x x x x x x x 2 2 2 3 3 2 x x x 2 x 2 Για κάθε μεταβλητή x κατασκευάζω δύο κόμβους, x και x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 3 x 3 epl333 lect5 20 43 x x x x x x x x x x 2 2 2 3 3 2 x x x 2 x 2 Για κάθε μεταβλητή x κατασκευάζω δύο κόμβους, x και x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 3 x 3 epl333 lect5 20 44 22

x x x x x x x x x x 2 2 2 3 3 2 x x x 2 x 2 Για κάθε μεταβλητή x κατασκευάζω δύο κόμβους, x και x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 3 x 3 epl333 lect5 20 45 x x x x x x x x x x 2 2 2 3 3 2 x x x 2 x 2 Για κάθε μεταβλητή x κατασκευάζω δύο κόμβους, x και x Και για κάθε ακμή (x,y) κατασκευάζω δύο ακμές, μια από το x y και μια από το y x x 3 x 3 epl333 lect5 20 46 23

x x x x x x x x x x 2 2 2 3 3 2 Και υπολογίζουμε τις SCC. x x x 2 x 2 x 3 x 3 epl333 lect5 20 47 x x x x x x x x x x 2 2 2 3 3 2 Κατασκευάζουμε το ανάστροφο 2 x x x 2 2 5 0 x 2 7 8 Και κάνουμε DFS για να πάρουμε τη φθίνουσα σειρά post των κόμβων x 3 x 3 3 4 6 9 epl333 lect5 20 48 24

x x x x x x x x x x 2 2 2 3 3 2 x x 2 4 7 Και κάνουμε DFS στο κανονικό διάγραμμα με βάση τη σειρά αυτή x, x, x, x, x, x 2 3 2 3 x 2 5 6 x 2 2 9 x 3 x 3 0 3 8 epl333 lect5 20 49 x x x x x x x x x x 2 2 2 3 3 2 Επομένως θα έχουμε SCC x, x, x, x, x, x 2 3 2 3 Και από τη στιγμή που xi και x i βί βρίσκονται στην ίδια SCC η πρόταση δεν είναι ικανοποιήσιμη epl333 lect5 20 50 25

Τελειώσαμε επιτέλους με τις διερευνήσεις γραφημάτων? Όχι! epl333 lect5 20 5 Πως συλλέγονται οι σελίδες από τις search engines? Google Crawler (Brin and Page, 998) is described in some detail.there is a URL server that sends lists of URLs to be fetched by several crawling processes. During parsing, the URLs found were passed to a URL server that checked if the URL have been previously seen. If not, the URL was added to the queue of the URL server. Παρατηρείστε: χρησιμοποιείται ουρά (queue) όχι στοίβα Γιατί??? epl333 lect5 20 52 26

Μη αναδρομική DFS procedure explore(s : vertex) 2 { S: stack of nodes; 3 push(s); 4 while S nonempty do 5 { v=pop(s); 6 if (visited(v)=false) { 7 previsit(v); 8 for each edge (v, w) out of v do 9 if visited(w)=false then 0 push(w);} }} 0 procedure previsit(v: vertex) {visited(v)=true; pre(v)=clock++;} epl333 lect5 20 53 είτε παράδειγμα εκτέλεσης αλγορίθμου μη αναδρομικής DFS (αναζήτησης σε βάθος). http://eclass.aueb.gr/modules/doc ument/file.php/inf6/examples% 2020/nonRecDFS_.pps epl333 lect5 20 54 27

BFS, ελάχιστα μονοπάτια epl333 lect5 20 55 Αναζήτηση κατά πλάτος Breadth First Search, BFS procedure BFS_explore(s : vertex) 2 { Q: queue of nodes; 3 enqueue(s); 4 dist(s)=0; 5 while Q nonempty do 6 { v=dequeue(q); 7 previsit(v); 8 for each edge (v, w) out of v { 9 if dist(w)=undefined then 0 {dist(w)=dist(v)+; enqueue(w);}}}} epl333 lect5 20 56 28

είτε παράδειγμα εκτέλεσης αλγορίθμου ΒFS (αναζήτησης κατά πλάτος). http://eclass.aueb.gr/modules/doc ument/file.php/inf6/examples% 2020/BFS.ppsx epl333 lect5 20 57 dista=0 A epl333 lect5 20 58 29

distb= dista=0 disth= distg= AB G H epl333 lect5 20 59 distb= dista=0 2 disth= distg= distf=2 3 B GH HF epl333 lect5 20 60 30

distb= dista=0 distc=3 disth= distg= distf=2 2 3 4 C H F 5 epl333 lect5 20 6 distb= dista=0 distc=3 distd=4 disth= distg= distf=2 2 3 4 DC 5 6 epl333 lect5 20 62 3

distb= dista=0 distc=3 distd=4 disth= distg= distf=2 diste=5 2 3 4 DE 5 6 7 epl333 lect5 20 63 distb= dista=0 distc=3 distd=4 disth= distg= distf=2 diste=5 2 3 4 E 5 6 8 7 epl333 lect5 20 64 32