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



Σχετικά έγγραφα
ΥΠΟΣΤΗΡΙΖΟΜΕΝΗ ΑΠΑΣΧΟΛΗΣΗ ΣΤΗΝ ΕΛΕΥΘΕΡΗ ΑΓΟΡΑ ΕΡΓΑΣΙΑΣ

2 Η απασχόληση στον τομέα του εμπορίου: Διάρθρωση και εξελίξεις

ΔΕΗ Ανανεώσιμες: Το μέλλον της ΔΕΗ Ομιλία του κ. Τάκη Αθανασόπουλου Προέδρου & Διευθύνοντος Συμβούλου ΔΕΗ Α.Ε

ΠΡΟΣΧΕΔΙΟ ΝΟΜΟΥ «ΕΓΓΥΗΣΕΙΣ ΚΑΤΑ ΤΗΣ ΕΡΓΑΣΙΑΚΗΣ ΑΝΑΣΦΑΛΕΙΑΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ» ΑΡΘΡΟ 1 ΕΙΔΙΚΕΣ ΜΟΡΦΕΣ ΑΠΑΣΧΟΛΗΣΗΣ

Στον Πανούλη. Γιάννης

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

ΠΑΓΚΥΠΡΙΑ ΟΡΓΑΝΩΣΗ ΕΛΛΗΝΩΝ ΔΑΣΚΑΛΩΝ (ΠΟΕΔ) ΟΔΗΓΙΕΣ ΠΡΟΣ ΤΑ ΜΕΛΗ ΜΕ ΤΗΝ ΕΝΑΡΞΗ ΤΗΣ ΝΕΑΣ ΣΧΟΛΙΚΗΣ ΧΡΟΝΙΑΣ

ΤΟ ΤΑΞΙΔΙ ΕΙΝΑΙ Η ΑΦΟΡΜΗ

591 Κ.Ι\ ΘΕΜΑ: ΚΑΩΣΤΟΥΦΑΝΤΟΥΡΓΙΑ & ΠΕΡΙΒΑλλΟΝ ΕΙΣΗΓΗΤΗΣ: ΤΜΗΜΑ ΚΛΩΣΤΟΥΦΑΝΤΟΥΡΓΙΑΣ. Τ.Ε.Ι Πειραιά για την απόκτηση του πτυχίου.

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ - ΕΣΠΑ

74 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Θεσσαλονίκη, Δεκεμβρίου 2013

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

Κατανόηση γραπτού λόγου

ΜΕΡΟΣ Α ΒΙΒΛΙΟ ΕΡΓΑΣΙΩΝ ΟΝΟΜΑ.. ΤΑΞΗ...

7. ΠΕΙΡΑΜΑΤΙΣΜΟΣ ΚΑΙ ΚΡΙΤΙΚΗ ΑΠΟ ΤΟΝ ΙΔΙΟ ΤΟΝ ΔΗΜΙΟΥΡΓΟ, ΣΕ ΚΑΘΕ ΒΗΜΑ ΤΟΥ ΣΧΕΔΙΑΣΜΟΥ. Μακέτα εργασίας 1/50.


ΔΕΥΤΕΡΟΣ ΕΠΕΡΩΤΩΝ ΕΥΑΓΓΕΛΟΣ ΜΠΑΣΙΑΚΟΣ (ΑΓΡΟΤΙΚΟ ΕΙΣΟΔΗΜΑ)

ΠΡΟΓΡΑΜΜΑ ΔΡΑΣΗΣ ΤΕΕ ΤΜΗΜΑ ΜΑΓΝΗΣΙΑΣ

Παρράσιο Πάρκο Πολιτιστικής Κληρονομιάς: Σχέδιο της Πρότασης

ΤΕΧΝΟΛΟΓΙΚΟ ΕΡΓΟ ΣΤΟ ΜΑΘΗΜΑ ΤΗΣ «ΤΕΧΝΟΛΟΓΙΑΣ» ΤΕΧΝΟΛΟΓΙΚΗ ΕΝΟΤΗΤΑ «ΜΕΤΑΦΟΡΕΣ-ΕΠΙΚΟΙΝΩΝΙΕΣ» ΕΡΓΟ:ΑΕΡΟΣΤΑΤΟ

Συνήγορος του Καταναλωτή Νομολογία ΠολΠρωτΑθ 2960/1996

ΠΕΡΙΦΕΡΕΙΑ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΘΡΑΚΗΣ. Πρόταση σχεδιασμού και κατάρτισης αναπτυξιακού προγραμματισμού περιόδου

ΣΗΜΕΙΩΣΕΙΣ ΑΝΑΤΟΜΙΑΣ (Φύλλα διδασκαλίας) για Τμήματα: Εργοθεραπείας, ημόσιας Υγείας και Νοσηλευτικής. (Γεώργιος. Μπαμπλέκος.)

Ε.Ε. Π α ρ.ι(i), Α ρ.4083, 20/4/2006 ΝΟΜΟΣ ΠΟΥ ΠΡΟΝΟΕΙ ΓΙΑ ΤΗΝ ΕΓΚΑΘΙΔΡΥΣΗ ΑΝΕΞΑΡΤΗΤΗΣ ΕΠΙΤΡΟΠΗΣ ΓΙΑ

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

Μουσειολογική Μελέτη για τη Μόνιμη Έκθεση της Συλλογής Ιστορίας Παιδικού Παιχνιδιού και Βιβλίου

E.E., Παρ. 5, 21 Ν. 8/91 Αρ. 2573,1.2.91

ΕΛΛΗΝΙΚΗ ΠΟΔΟΣΦΑΙΡΙΚΗ ΟΜΟΣΠΟΝΔΙΑ. Παράρτημα Β Διατάξεις Εφαρμογής Κανονισμού για τους Ερασιτέχνες Ποδοσφαιριστές

Μπορούμε να πούμε ότι η δεύτερη δύναμη είναι πολύ πιο ισχυρή από την πρώτη.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Τμήμα Εφαρμοσμένης Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών Εφαρμοσμένης Πληροφορικής

ΕΜΦΥΤΕΥΣΙΜΟΙ ΚΑΡΔΙΟΜΕΤΑΤΡΟΠΕΙΣ- ΑΠΙΝΙΔΩΤΕΣ. ΤΙ ΠΡΕΠΕΙ ΝΑ ΓΝΩΡΙΖΟΥΜΕ.

ΕΙΔΙΚΗ ΘΕΜΑΤΙΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ Β'ΛΥΚΕΙΟΥ 1ου ΕΠΑΛ ΚΙΑΤΟΥ

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

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

Νικόλαος Τεντολούρης. Αθηνών και Διαβητολογικό Κέντρο, Γ.Ν.Α. Λαϊκό. πληθυσμού. Η συχνότητα του διαβήτη τύπου 2 εμφανίζει μεγάλη αύξηση σε παγκόσμια

Μεταμόσχευση νεφρού. Τι είναι οι νεφροί;

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΕΒΡΟΥ ΔΗΜΟΣ ΣΟΥΦΛΙΟΥ ΤΕΧΝΙΚΗ ΥΠΗΡΕΣΙΑ ΑΡ.ΜΕΛ: 74/2013

Αξιολόγηση ομών ήμου Αθηναίων Θεόδωρος Λιβάνιος, ΓενικόςΓραμματέας ήμου Αθηναίων Σεπτέμβριος 2013

3. ΠΕΡΙΓΡΑΦΙΚΟ ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ

3. ΠΕΡΙΓΡΑΦΙΚΟ ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΔΗΜΟΤΙΚΟ ΛΙΜΕΝΙΚΟ ΤΑΜΕΙΟ ΡΕΘΥΜΝΟΥ ΔΙΟΙΚΗΤΙΚΟ ΣΥΜΒΟΥΛΙΟ Αριθμ.Μελών κατά Νόμο

Γ31/2960/ ΠΡΟΚΗΡΥΞΗ ΔΗΜΟΣΙΟΥ ΠΛΕΙΟΔΟΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΕΚΜΙΣΘΩΣΗ ΙΔΙΟΚΤΗΤΟΥ ΟΙΚΟΠΕΔΟΥ ΣΤΗ ΛΑΡΙΣΑ ΩΣ ΥΠΑΙΘΡΙΟΥ ΧΩΡΟΥ ΣΤΑΘΜΕΥΣΗΣ.

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Καβάλας Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανολογίας ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Λυμπεράκης Δημήτριος Α.Μ.

Ο ρόλος του Σύγχρονου ιεπιστηµονικού Τεχνικού Πανεπιστηµίου. H Παιδεία ως θεµελιακής σηµασίας πρωτογενής αναπτυξιακή διαδικασία * 1991

Έκθεση Εσωτερικής Αξιολόγησης

Πρακτικό 24/2013 της συνεδρίασης της Οικονομικής Επιτροπής του Δήμου Λήμνου, της 23 ης Οκτωβρίου 2013

ΡΕΜΑ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ

1 Εισαγωγή στην Ανάλυση των Κατασκευών 1.1 Κατασκευές και δομοστατική

ΘΕΜΑ: Παροχή οδηγιών για την εφαρµογή των διατάξεων (άρθρα 1 11) του ν.3259/2004 που αναφέρονται στη περαίωση εκκρεµών φορολογικών υποθέσεων.

Θεωρία Δυαδικότητας ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου. Επιχειρησιακή Έρευνα

ΑΠΟΨΕΙΣ - ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΗ ΛΕΙΤΟΥΡΓΙΑ ΤΩΝ ΑΝΩΝΥΜΩΝ ΕΤΑΙΡΕΙΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΗΜΟΣΙΩΝ ΕΡΓΩΝ ΠΟΥ ΥΠΑΓΟΝΤΑΙ ΣΤΗ Γ.Γ.Δ.Ε.

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Αριθµ. Απόφασης 542/2011 ΝΟΜΟΣ ΗΡΑΚΛΕΙΟΥ ΗΜΟΣ ΧΕΡΣΟΝΗΣΟΥ ιεύθυνση ιοικητικών Υπηρεσιών

ΚΥΡΙΟΙ ΔΕΙΚΤΕΣ ΑΠΟΔΟΣΗΣ ΚΑΙ ΕΚΘΕΣΗ ΠΡΟΟΔΟΥ ΣΧΕΔΙΟΥ ΑΝΑΔΙΑΡΘΡΩΣΗΣ ΣΥΝΕΡΓΑΤΙΚΟΥ ΠΙΣΤΩΤΙΚΟΥ ΤΟΜΕΑ ΓΙΑ ΤΟ ΕΝΝΙΑΜΗΝΟ ΠΟΥ ΕΛΗΞΕ ΣΤΙΣ 30 ΣΕΠΤΕΜΒΡΙΟΥ 2015

ΑΤΕΙ ΚΡΗΤΗΣ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΓΝΩΣΕΙΣ ΚΑΙ ΣΤΑΣΕΙΣ ΤΩΝ ΣΠΟΥΔΑΣΤΡΙΩΝ ΝΟΣΗΛΕΥΤΙΚΗΣ ΑΠΕΝΑΝΤΙ ΣΤΗΝ ΔΙΑΚΟΠΗ ΤΗΣ ΚΥΗΣΗΣ

Η Πρόταση του ΣΥΡΙΖΑ-ΕΚΜ για τη ΔΙΑΧΕΙΡΙΣΗ ΑΠΟΡΡΙΜΜΑΤΩΝ Βιώσιμη και δίκαιη οικονομικά και οικολογικά λύση

ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΓΙΑ ΤΗΝ ΜΙΣΘΩΣΗ ΑΚΙΝΗΤΟΥ Ο ΔΗΜΑΡΧΟΣ ΒΟΛΒΗΣ. γ) την αριθ. 316/2012 Απόφαση του Δημοτικού Συμβουλίου για τη μίσθωση ακινήτου

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος

ΠΡΟΣΩΡΙΝΗ ΥΠΟΣΤΥΛΩΣΗ - ΑΝΤΙΣΤΗΡΙΞΗ ΚΑΙ ΑΠΌΦΟΡΤΙΣΗ ΣΤΟΙΧΕΙΩΝ ΒΛΑΜΜΕΝΩΝ ΑΠΌ ΣΕΙΣΜΟ ΠΑΠΑΔΗΜΑΤΟΥ ΠΑΡΑΣΚΕΥΗ ΠΑΠΑΓΙΑΝΝΟΠΟΥΛΟΣ ΓΕΩΡΓΙΟΣ

ΘΕΜΑ: «Συγκέντρωση και μετάδοση των αποτελεσμάτων των δημοτικών και περιφερειακών εκλογών της 18 ης Μαΐου 2014». ΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ

Βενιζέλου 55 - Καβάλα Τηλ Fax Πληροφορίες: Μυστακίδης Ζαφείρης , zafmis@gmail.

18 ος Πανελλήνιος Μαθητικός

ΠΟΛ:1230 Ταχ. Δ/νση : Χανδρή 1 & Θεσ/νίκης Τ.Κ. : ΜΟΣΧΑΤΟ Τηλέφωνο :

Α Π Ο Σ Π Α Σ Μ Α. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΒΟΙΩΤΙΑΣ ΔΗΜΟΣ ΟΡΧΟΜΕΝΟΥ Αρ.Πρωτ.: 298/

«ΕΦΑΡΜΟΓΗ ΚΟ ΣΕ ΜΟΝΑΔΑ ΠΑΡΑΓΩΓΗΣ ΛΙΚΕΡ»

Κοινωνική Οικονομία: Μια βιώσιμη εναλλακτική?

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΟΙΚΟΝΟΜΙΑΣ. Πτυχια<η Εργασία. του σπουδαστή ΚΟΥΓΙΟΥΜΤΖΙΔΗ ΠΑΝΑΓΙΩΤΗ. Εισηγητής

ΣΥΝΔΕΣΜΟΣ ΣΥΝΤΑΞΙΟΥΧΩΝ

ΠΡΟΣ: Ως Π.Δ. Άρθρο 75 Πρόστιμα για παραβάσεις του Κώδικα Βιβλίων και Στοιχείων Κυρώσεις Ποινές

ΠΡΟΣΚΛΗΣΗ ΕΝΔΙΑΦΕΡΟΝΤΟΣ

ΕΡΓΟ: 3ο 2/θέσιο & 21ο 2/θέσιο Ολοήμερο Ν/Γ Αγρινίου, με τη μέθοδο της προκατασκευής

ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΣΥΜΒΑΣΗ

Το μετόχι ως συνιστώσα παραγωγής του αγροτικού χώρου στην Κρήτη.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΑΠΟΚΑΤΑΣΤΑΣΗ ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΚΤΙΡΙΟΥ ΣΤΗΝ ΠΕΝΤΕΛΗ ( «ΞΕΝΩΝΑΣ» ΤΗΣ ΔΟΥΚΙΣΣΑΣ ΤΗΣ ΠΛΑΚΕΝΤΙΑΣ)

Πρακτικό 1/2014 της συνεδρίασης της Οικονομικής Επιτροπής του Δήμου Λήμνου, της 10 ης Ιανουαρίου 2014

ΠΡΟΟΔΟΣ ΠΡΟΣΚΟΠΟΥ. Οι διακρίσεις αυτές συνοδεύονται από αντίστοιχο διακριτικό για τη στολή, όπως αυτά

ΚΟΙΝΗ ΑΓΡΟΤΙΚΗ ΠΟΛΙΤΙΚΗ

Συνέδριο ΤΕΕ «Ενέργεια: Σημερινή εικόνα Σχεδιασμός Προοπτικές» Ομιλία του Μιχάλη Κιούση, προέδρου της Ομοσπονδίας Βενζινοπωλών Ελλάδος

ΘΕΜΑ: Κάλυψη κενών θέσεων τακτικού προσωπικού σε νησιωτικούς δήμους. Δυόμισι χρόνια μετά την εφαρμογή του Προγράμματος Καλλικράτης και την

Η ΕΡΤ ΤΗΣ ΕΠΟΜΕΝΗΣ ΗΜΕΡΑΣ «ΠΟΙΑ ΕΡΤ ΘΕΛΟΥΜΕ»

Β ΜΕΡΟΣ. Παρουσίαση της καλύτερης διδασκαλίας. Μάθημα: Φυσική ( θερμοκρασία και θερμότητα σελ.42)

Το σχεδιαστικό μέρος της αποτύπωσης παράγεται και υλοποιείται μέσω δύο ειδών σχεδίων:

ΠΡΟΦΟΡΙΚΗ ΑΡΙΘΜΗΣΗ: ΜΙΑ ΒΑΣΙΚΗ ΚΑΙ ΧΡΗΣΙΜΗ ΓΝΩΣΗ ΠΟΥ Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΝ ΑΓΝΟΕΙ. Εισαγωγή

ΕΦΗΜΕΡΙΣ ΤΗΣ ΚΥΒΕΡΝΗΣΕΩΣ

Επιμέλεια εργασίας: Ιωάννης Τραγουδάρας Αριθμός Μητρώου

Ένας πρακτικός οδηγός για επενδύσεις στα φωτοβολταϊκά μετά την ψήφιση του νέου νόμου (Ν.3851/2010) για τις ΑΠΕ

Αργοστόλι, Αριθμ. Πρωτ.: Οίκ /5881

Ο ΕΚΠΑΙ ΕΥΤΙΚΟΣ ΩΣ ΥΠΑΛΛΗΛΟΣ ΚΑΙ ΤΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΕΡΓΟ

ΝΕΟΕΛΛΗΝΙΚΗ ΙΣΤΟΡΙΑ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΤΑΞΗΣ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ 2002

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΘΗΝΑ,

Αρχαίοι Έλληνες μαθηματικοί. τους στη θετική σκέψη. Ερευνητική εργασία (Project)

Σεισμοί και Σχολεία. ΤΑ ΕΚΠΑΙΔΕΥΤΙΚΑ τεύχος

Η ΠΡΟΣΩΡΙΝΗ ΑΠΑΣΧΟΛΗΣΗ

Πρωτ. Από τα επίσηµα Πρακτικά της ΡΙΒ, 4 Μαΐου 2010, Συνεδρίασης της Ολοµέλειας της Βουλής, στην οποία ψηφίστηκε το παρακάτω σχέδιο νόµου:

ΣΥΣΤΗΜΑΤΑ ΠΟΔΟΣΦΑΙΡΟΥ

Φυσικό αέριο, χρήσεις, ασφάλεια και οικονομία Ομάδα Μαθητών: Συντονιστές Καθηγητές: Λύκειο Αγίου Αντωνίου Θεωρητικό υπόβαθρο Το Φυσικό αέριο

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

ΙΣΤΟΡΙΚΟ ΛΕΞΙΚΟ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΟΡΩΝ

Θέμα: Η ΑΓΟΡΑ ΣΤΟΝ ΚΑΠΙΤΑΛΙΣΜΟ

Transcript:

Αλγόριθμοι και Πολυπλοκότητα Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Γραφήματα 1 Μη Κατευθυνόμενο Γράφημα G(V, E) V σύνολο κόμβων E σύνολο ακμών (ζεύγοι κόμβων) 2 4 3 5 6 Κωδικοποίηση των σχέσεων ανά ζεύγη μεταξύ των αντικειμένων ενός συνόλου. Παράμετροι Μεγέθους. n = V, m = E V = {1, 2, 3, 4, 5, 6} E = {{1, 2}, {1, 3}, {1, 4}, {2, 4}, {4, 3}, {2, 5}, {4, 5}, {4, 6}} n = 6 m = 8 Χαροκόπειο Πανεπιστήμιο 2/56

Κατευθυνόμενα Γραφήματα 1 Κατευθυνόμενο Γράφημα G(V, E) V σύνολο κόμβων E σύνολο ακμών (διατεταγμένα ζεύγη κόμβων) n = V, m = E 3 2 4 5 6 V = {1, 2, 3, 4, 5, 6} E = {(1, 2), (3, 1), (4, 1), (2, 4), (3, 4), (5, 2), (5, 4), (4, 6)} n = 6 m = 8 Χαροκόπειο Πανεπιστήμιο 3/56

Παραδείγματα Παγκόσμιος Ιστός Κατευθυνόμενο γράφημα όπου κόμβοι είναι οι σελίδες (webpages) ακμές είναι οι σύνδεσμοι (hyperlinks) Χαροκόπειο Πανεπιστήμιο 4/56

Παραδείγματα Δίκτυα Επικοινωνιών Κατευθυνόμενο γράφημα όπου κόμβοι είναι οι υπολογιστές ακμές που συνδέουν κόμβους u και v εαν υπάρχει άμεση φυσική σύνδεση μεταξύ τους Χαροκόπειο Πανεπιστήμιο 5/56

Παραδείγματα Κοινωνικά Δίκτυα (social networks) Κατευθυνόμενο γράφημα όπου κόμβοι είναι οι άνθρωποι ακμές συνδέουν κόμβους u και v εαν υπάρχει κάποια σχέση, π.χ φιλία, επαγγελματική σχέση, συνεργασία, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 6/56

Ορισμοί σε (μη κατευθυνόμενα) Γραφήματα διαδρομή (path). Μια ακολουθία P από κόμβους v 1, v 2,..., v k 1, v k όπου κάθε διαδοχικό ζευγάρι v i, v i+1 συνδέεται με μια ακμή. 1 2 4 3 8 7 0 5 6 P = v 0, v 2, v 4, v 3, v 8 Χαροκόπειο Πανεπιστήμιο 7/56

Ορισμοί σε (μη κατευθυνόμενα) Γραφήματα απλή διαδρομή (simple path). Μια διαδρομή ονομάζεται απλή αν όλες οι κορυφές της είναι διακριτές η μία από την άλλη. 1 2 4 3 8 7 0 5 6 απλή διαδρομή και μη απλή διαδρομή v 0, v 2, v 1, v 4, v 3, v 8 v 0, v 2, v 1, v 4, v 2, v 1, v 3, v 8 Χαροκόπειο Πανεπιστήμιο 8/56

Ορισμοί σε (μη κατευθυνόμενα) Γραφήματα κύκλος (cycle). Μια διαδρομή v 1, v 2,..., v k 1, v k στην οποία k > 2, οι πρώτοι k 1 κόμβοι είναι όλοι διακριτοί και v 1 = v k. 1 2 4 3 8 7 0 5 6 π.χ κύκλος v 2, v 1, v 3, v 4, v 2 Χαροκόπειο Πανεπιστήμιο 9/56

Σε Κατευθυνόμενα Γραφήματα; Οι ορισμοί μεταφέρονται φυσιολογικά στα κατευθυνόμενα γραφήματα φροντίζοντας να διατρέχουμε τις ακμές ως προς τον προσανατολισμό τους. 1 2 4 3 8 7 0 5 6 π.χ διαδρομή v 0, v 2, v 5, v 4, v 3, v 1 Χαροκόπειο Πανεπιστήμιο 10/56

Συνεκτικότητα Γραφήματος Μη-κατευθυνόμενα. Ένα μη-κατευθυνόμενο γράφημα είναι συνεκτικό ή συνδεδεμένο (connected) αν, για κάθε ζευγάρι κόμβων u και v, υπάρχει διαδρομή από το u στο v. Κατευθυνόμενα. Πιο πολύπλοκος ορισμός αφού γίνεται να υπάρχει διαδρομή από το u στον v αλλά όχι από το v στο u. Ένα κατευθυνόμενο γράφημα είναι αυστηρά συνεκτικό (strongly connected) αν, για κάθε ζευγάρι κόμβων u και v, υπάρχει διαδρομή από το u στο v και διαδρομή από το v στο u. Χαροκόπειο Πανεπιστήμιο 11/56

Απόσταση Απόσταση. Η απόσταση (distance) μεταξύ δύο κόμβων u και v είναι ο ελάχιστος αριθμός ακμών σε μια διαδρομή u v. Άπειρη απόσταση. Εάν δεν υπάρχει διαδρομή μεταξύ δύο κόμβων χρησιμοποιούμε το σύμβολο για να το συμβολίσουμε. 1 2 4 3 8 7 0 5 6 Η απόσταση του v 5 και του v 7 είναι 3 αφού η συντομότερη διαδρομή είναι v 5, v 4, v 6, v 7. Χαροκόπειο Πανεπιστήμιο 12/56

Δέντρα Ένα μη-κατευθυνόμενο γράφημα είναι δέντρο (tree) αν είναι συνεκτικό και δεν περιέχει κύκλο. 1 2 4 3 8 7 0 5 6 Η αφαίρεση οποιασδήποτε ακμής από το δέντρο θα το αποσυνδέσει (δεν θα είναι πλέον συνδεδεμένο ή συνεκτικό). Χαροκόπειο Πανεπιστήμιο 13/56

Δέντρα δέντρο με ρίζα (rooted tree) Ορίζουμε ένα κόμβο ως ρίζα. Συνήθως ζωγραφίζουμε αυτόν τον κόμβο πιο ψηλά. ϱίζα Χαροκόπειο Πανεπιστήμιο 14/56

Δέντρα Μεταξύ ενός κόμβου v και της ρίζας r υπάρχει ένα μοναδικό μονοπάτι. ϱίζα r κόµβος v Ο αριθμός των ακμών του μονοπατιού αυτού καθορίζει το ύψος του κόμβου v στο δέντρο. Χαροκόπειο Πανεπιστήμιο 15/56

Δέντρα Έστω ένας κόμβος v και η ρίζα r. ϱίζα r γονέας κόµβος v αδελφός παιδί ϕύλλο Ο κόμβος ακριβώς πριν τον v στο μονοπάτι r v λέγεται πατέρας του v. Χαροκόπειο Πανεπιστήμιο 16/56

Δέντρα Έστω ένας κόμβος v και η ρίζα r. ϱίζα r γονέας κόµβος v αδελφός παιδί ϕύλλο Οι κόμβοι ακριβώς κάτω από τον v είναι τα παιδιά του v. Χαροκόπειο Πανεπιστήμιο 16/56

Δέντρα Έστω ένας κόμβος v και η ρίζα r. ϱίζα r γονέας κόµβος v αδελφός παιδί ϕύλλο Κόμβος χωρίς απογόνους λέγεται φύλλο (leaf). Χαροκόπειο Πανεπιστήμιο 16/56

Δέντρα ϱίζα Λήμμα Κάθε δέντρο με n κόμβους έχει ακριβώς n 1 ακμές. Χαροκόπειο Πανεπιστήμιο 17/56

Συνεκτικότητα Γραφήματος Πρόβλημα προσδιορισμού συνεκτικότητας s t. Δεδομένου ενός γραφήματος G(V, E) και δύο κόμβων s και t υπάρχει διαδρομή από τον s στον t στο γράφημα; Χαροκόπειο Πανεπιστήμιο 18/56

Συνεκτικότητα Γραφήματος Πρόβλημα προσδιορισμού συνεκτικότητας s t. Δεδομένου ενός γραφήματος G(V, E) και δύο κόμβων s και t υπάρχει διαδρομή από τον s στον t στο γράφημα; Λαβύρινθος. Φανταστείτε ένα λαβύρινθο όπου κάθε κόμβος του γραφήματος είναι ένα δωμάτιο και κάθε ακμή ένας διάδρομος που ενώνει κόμβους (δωμάτια). Θέλουμε να βρούμε μια διαδρομή από ένα δωμάτιο s σε ένα άλλο δωμάτιο t. Χαροκόπειο Πανεπιστήμιο 18/56

Συνεκτικότητα Γραφήματος Πρόβλημα προσδιορισμού συνεκτικότητας s t. Δεδομένου ενός γραφήματος G(V, E) και δύο κόμβων s και t υπάρχει διαδρομή από τον s στον t στο γράφημα; Πόσο αποδοτικά μπορούμε να λύσουμε το παραπάνω πρόβλημα; Θα δούμε σε υψηλό επίπεδο δύο φυσικούς αλγορίθμους για το πρόβλημα:.1 αναζήτηση πρώτα κατά πλάτος (breadth-first search, BFS).2 αναζήτηση πρώτα κατά βάθος (depth-first search, DFS) Χαροκόπειο Πανεπιστήμιο 18/56

Αναζήτηση Πρώτα Κατά Πλάτος Breadth-First Search, BFS Επίπεδα. Εξερευνούμε από τον s προς όλες τις κατευθύνσεις προσθέτοντας κάθε φορά κόμβους κατά "επίπεδα". Αλγόριθμος..1 ξεκινάμε με τον κόμβο s.2 συμπεριλαμβάνουμε στο πρώτο επίπεδο αναζήτησης όλους τους κόμβους που συνδέονται με τον s με ακμή.3 περιλαμβάνουμε όλους τους επιπρόσθετους κόμβους που συνδέονται με ακμή με οποιονδήποτε κόμβο του πρώτου επιπέδου -- αυτό είναι το δεύτερο επίπεδο..4 συνεχίζουμε μέχρι να μην συναντήσουμε άλλους κόμβους Χαροκόπειο Πανεπιστήμιο 19/56

Αναζήτηση Πρώτα Κατά Πλάτος Παράδειγμα BFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 20/56

Αναζήτηση Πρώτα Κατά Πλάτος Παράδειγμα BFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13.1 κόμβος v 1 ως s Χαροκόπειο Πανεπιστήμιο 20/56

Αναζήτηση Πρώτα Κατά Πλάτος Παράδειγμα BFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13.1 κόμβος v 1 ως s.2 πρώτο επίπεδο αναζήτησης {v 2, v 3} Χαροκόπειο Πανεπιστήμιο 20/56

Αναζήτηση Πρώτα Κατά Πλάτος Παράδειγμα BFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13.1 κόμβος v 1 ως s.2 πρώτο επίπεδο αναζήτησης {v 2, v 3}.3 δεύτερο επίπεδο αναζήτησης {v 4, v 5, v 7, v 8 } Χαροκόπειο Πανεπιστήμιο 20/56

Αναζήτηση Πρώτα Κατά Πλάτος Παράδειγμα BFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13.1 κόμβος v 1 ως s.2 πρώτο επίπεδο αναζήτησης {v 2, v 3}.3 δεύτερο επίπεδο αναζήτησης {v 4, v 5, v 7, v 8 }.4 τρίτο επίπεδο αναζήτησης {v 6 } Χαροκόπειο Πανεπιστήμιο 20/56

Αναζήτηση Πρώτα Κατά Πλάτος Επίπεδα Αναζήτησης Επίπεδο L 0. Ορίζουμε ως επίπεδο μηδέν το σύνολο {s} που περιέχει μόνο τον κόμβο s. Επίπεδο L j+1. Αν έχουμε ορίσει τα επίπεδα L 0, L 1,..., L j, τότε το επίπεδο L j+1 αποτελείται από όλους τους κόμβους που.1 δεν ανήκουν σε προηγούμενο επίπεδο και.2 διαθέτουν ακμή με κόμβο του επιπέδου L j. Χαροκόπειο Πανεπιστήμιο 21/56

Αναζήτηση Πρώτα Κατά Πλάτος Αποστάσεις Λόγω κατασκευής του αλγορίθμου καταλήγουμε στο εξής αποτέλεσμα: Λήμμα Για κάθε j 0, το επίπεδο L j που παράγεται από τον αλγόριθμο BFS αποτελείται από όλους τους κόμβους που έχουν ακριβώς απόσταση j από τον κόμβο s. Υπάρχει διαδρομή από τον κόμβο s προς τον κόμβο t αν και μόνον αν ο t εμφανίζεται σε κάποιο επίπεδο. Χαροκόπειο Πανεπιστήμιο 22/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Παραγωγή Δέντρου. Ο αλγόριθμος BFS παράγει με πολύ φυσικό τρόπο ένα δέντρο T με ρίζα τον κόμβο s για το σύνολο των κόμβων που μπορούν να προσεγγιστούν από τον s. για κάθε κόμβο v s θεωρήστε την στιγμή όπου για πρώτη φορά "ανακαλύπτεται" ο v από τον αλγόριθμο BFS. συμβαίνει όταν εξετάζεται κάποιος κόμβος u του επιπέδου L j και διαπιστώνεται πως υπάρχει ακμή (u, v) προς τον κόμβο v, ο οποίος δεν έχει φανεί μέχρι τότε. την στιγμή αυτή προσθέτουμε την ακμή (u, v) στο δέντρο T, δηλαδή ο u γίνεται γονέας του v. Χαροκόπειο Πανεπιστήμιο 23/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Χαροκόπειο Πανεπιστήμιο 24/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Απόδειξη Χαροκόπειο Πανεπιστήμιο 24/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Χαροκόπειο Πανεπιστήμιο 24/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Ας υποθέσουμε πως τα i και j διαφέρουν περισσότερο από 1, συγκεκριμένα ότι i < j 1. Χαροκόπειο Πανεπιστήμιο 24/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Ας υποθέσουμε πως τα i και j διαφέρουν περισσότερο από 1, συγκεκριμένα ότι i < j 1. Θεωρήστε τώρα το σημείο του αλγορίθμου BFS που εξετάζονται οι ακμές του κόμβου x. Επειδή ο x ανήκει στο L i, οι μόνοι κόμβοι που ανακαλύπτονται από το x ανήκουν στο επίπεδο L i+1 και σε προηγούμενα από αυτό. Χαροκόπειο Πανεπιστήμιο 24/56

Αναζήτηση Πρώτα Κατά Πλάτος Δέντρο Αναζήτησης BFS Λήμμα Έστω T ένα δέντρο αναζήτησης πρώτα κατά πλάτος, και έστω x και y κόμβοι του T που ανήκουν στα επίπεδα L i και L j αντίστοιχα, και (x, y) μια ακμή του G. Τότε τα i και j διαφέρουν το πολύ κατά 1. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Ας υποθέσουμε πως τα i και j διαφέρουν περισσότερο από 1, συγκεκριμένα ότι i < j 1. Θεωρήστε τώρα το σημείο του αλγορίθμου BFS που εξετάζονται οι ακμές του κόμβου x. Επειδή ο x ανήκει στο L i, οι μόνοι κόμβοι που ανακαλύπτονται από το x ανήκουν στο επίπεδο L i+1 και σε προηγούμενα από αυτό. Αφού ο y είναι γειτονικός κόμβους του x, θα πρέπει να ανήκει στο επίπεδο L i+1 ή σε προηγούμενο και άρα j i + 1 που είναι άτοπο. Χαροκόπειο Πανεπιστήμιο 24/56

Συνεκτική Συνιστώσα Connected Component Ορισμός. Το σύνολο των κόμβων που ανακαλύπτονται από τον BFS είναι οι κόμβοι που μπορούν να προσεγγιστούν από τον κόμβο αφετηρίας s. Θα ονομάσουμε το σύνολο αυτό R συνεκτική συνιστώσα (connected component) του G που περιέχει τον s. Χαροκόπειο Πανεπιστήμιο 25/56

Αναζήτηση Πρώτα Κατά Βάθος Depth-First Search, DFS Τι προσέγγιση θα ακολουθούσατε αν το γράφημα ήταν πραγματικά ένας λαβύρινθος και περπατούσατε σε αυτόν; θα ξεκινούσατε από τον s, και θα δοκιμάζατε την πρώτη ακμή έξω από αυτόν, στον κόμβο v. θα συνεχίζατε έτσι μέχρι να φτάσετε σε κάποιο "αδιέξοδο", έναν κόμβο του οποίου έχετε εξερευνήσει όλους του γείτονες κατόπιν θα γυρίζατε προς τα πίσω μέχρι να φτάσετε σε κάποιον κόμβο με ανεξερεύνητο γείτονα, και θα συνεχίζατε από εκεί. Χαροκόπειο Πανεπιστήμιο 26/56

Αναζήτηση Πρώτα Κατά Βάθος Depth-First Search, DFS DFS(u) Σημείωσε ότι το u "εξερευνήθηκε" και πρόσθεσε το u στην συνεκτική συνιστώσα R for κάθε ακμή (u, v) do if ο κόμβος v δεν έχει "εξερευνηθεί" then κάλεσε αναδρομικά την DFS(v) end end Συνεκτικότητα s t. Θέτουμε για όλους τους κόμβους πως δεν έχουν εξερευνηθεί και καλούμε την DFS(s). Χαροκόπειο Πανεπιστήμιο 27/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναζήτηση Πρώτα Κατά Βάθος Παράδειγμα DFS από κόμβο v 1 1 7 9 11 2 3 4 5 8 10 12 6 13 Χαροκόπειο Πανεπιστήμιο 28/56

Αναπαράσταση Γραφημάτων Ως τώρα έχουμε δει τα γραφήματα ως μαθηματικά αντικείμενα. Αναπαράσταση. Πως όμως αναπαριστάμε γραφήματα στον υπολογιστή; Πίνακες και Λίστες. Θα χρησιμοποιήσουμε πίνακες και λίστες για διάφορες αναπαραστάσεις. Χαροκόπειο Πανεπιστήμιο 29/56

Αναπαράσταση Γραφημάτων Δύο βασικές λύσεις. Υπάρχουν δύο βασικές αναπαραστάσεις ενός γραφήματος G(V, E) στον υπολογιστή:.1 μήτρα γειτνίασης (adjacency matrix).2 λίστα γειτνίασης (adjacency list) Γιατί όχι μια αναπαράσταση; Έστω ένα γράφημα G(V, E) με n = V και m = E. Ανάλογα με την σχέση των n και m, κάθε αναπαράσταση έχει άλλα πλεονεκτήματα και μειονεκτήματα. Αριθμός ακμών. Εαν δεν επιτρέπουμε πολλές ακμές μεταξύ ενός ζευγαριού κόμβων, ο αριθμός ακμών σε ένα γράφημα είναι το πολύ ( n 2) n 2. Επίσης πολλές φορές εργαζόμαστε με συνδεδεμένα γραφήματα όπου m n 1. Χαροκόπειο Πανεπιστήμιο 30/56

Αναπαράσταση Γραφημάτων Μήτρα Γειτνίασης (adjacency matrix) Έστω το γράφημα G(V, E) όπου V = {0, 1,..., n 1}. διδιάστατος πίνακα A με διαστάσεις n n η θέση του πίνακα i, j υποδηλώνει την ύπαρξη ή όχι της ακμής (i, j) εαν e = (i, j) E τότε A[i][j] = 1 αλλιώς 0 για μη-κατευθυνόμενα γραφήματα ο A είναι συμμετρικός 2 1 3 0 A = 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 Χαροκόπειο Πανεπιστήμιο 31/56

Αναπαράσταση Γραφημάτων Μήτρα Γειτνίασης (adjacency matrix) Έστω το γράφημα G(V, E) όπου V = {0, 1,..., n 1}. διδιάστατος πίνακα A με διαστάσεις n n η θέση του πίνακα i, j υποδηλώνει την ύπαρξη ή όχι της ακμής (i, j) εαν e = (i, j) E τότε A[i][j] = 1 αλλιώς 0 για μη-κατευθυνόμενα γραφήματα ο A είναι συμμετρικός 2 1 3 0 A = 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 Χαροκόπειο Πανεπιστήμιο 31/56

Ιδιότητες Ερώτημα ύπαρξης ακμής. Μπορούμε να ελέγξουμε την ύπαρξη μιας δεδομένης ακμής e = (u, v) σε σταθερό χρόνο O(1). Εξέταση προσκείμενων ακμών. Για να εξετάσουμε διαδοχικά όλες τις ακμές που είναι προσκείμενες σε ένα κόμβο u, πρέπει να ελέγξουμε για κάθε κομβου στο σύνολο V \ {u} την τιμή του πίνακα A. Χρειαζόμαστε δηλαδή χρόνο O(n). Η λειτουργία αυτή είναι πολύ συνήθης στους αλγορίθμους γραφημάτων. Χώρος. Η αναπαράσταση αυτή χρειάζεται χώρο O(n 2 ). Ακόμη και όταν ο αριθμός των ακμών m είναι μικρότερος από n 2. Χαροκόπειο Πανεπιστήμιο 32/56

Αναπαράσταση Γραφημάτων Λίστα Γειτνίασης (adjacency list) Έστω το γράφημα G(V, E) όπου V = {0, 1,..., n 1}. μονοδιάστατος πίνακα A με μια θέση για κάθε κόμβο κάθε θέση του πίνακα A είναι μια λίστα ακμών που εξέρχονται από τον αντίστοιχο κόμβο 0 1 1 1 3 0 2 3 1 0 1 2 3 Χαροκόπειο Πανεπιστήμιο 33/56

Ιδιότητες Ορισμός. Ορίζουμε τον βαθμό ενός κόμβου u συμβολίζοντας τον ως d u το πλήθος των εξερχόμενων ακμών του κόμβου u. Ερώτημα ύπαρξης ακμής. Ο έλεγχος ύπαρξης της ακμής e = (u, v) δεν είναι πλέον σταθερός, χρειάζεται διάσχιση της λίστας εξερχόμενων ακμών του κόμβου u. Χρειαζόμαστε χρόνο O(d u ). Χαροκόπειο Πανεπιστήμιο 34/56

Ιδιότητες Ορισμός. Ορίζουμε τον βαθμό ενός κόμβου u συμβολίζοντας τον ως d u το πλήθος των εξερχόμενων ακμών του κόμβου u. Ερώτημα ύπαρξης ακμής. Ο έλεγχος ύπαρξης της ακμής e = (u, v) δεν είναι πλέον σταθερός, χρειάζεται διάσχιση της λίστας εξερχόμενων ακμών του κόμβου u. Χρειαζόμαστε χρόνο O(d u ). Εξέταση προσκείμενων ακμών. Μπορούμε αποδοτικά διασχίζοντας την λίστα εξερχόμενων ακμών του κόμβου u σε χρόνο O(d u ). Χαροκόπειο Πανεπιστήμιο 34/56

Ιδιότητες Ορισμός. Ορίζουμε τον βαθμό ενός κόμβου u συμβολίζοντας τον ως d u το πλήθος των εξερχόμενων ακμών του κόμβου u. Ερώτημα ύπαρξης ακμής. Ο έλεγχος ύπαρξης της ακμής e = (u, v) δεν είναι πλέον σταθερός, χρειάζεται διάσχιση της λίστας εξερχόμενων ακμών του κόμβου u. Χρειαζόμαστε χρόνο O(d u ). Εξέταση προσκείμενων ακμών. Μπορούμε αποδοτικά διασχίζοντας την λίστα εξερχόμενων ακμών του κόμβου u σε χρόνο O(d u ). Χώρος. Η αναπαράσταση αυτή χρειάζεται χώρο O(n + m). O(n) για τον πίνακα O(m) για τις λίστες, αφού κάθε κόμβος έχει d u εξερχόμενες ακμές και d v = 2m = O(m). v V Χαροκόπειο Πανεπιστήμιο 34/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Πλάτος Με την χρήση ουράς FIFO Δομές. Μια ουρά Q, ένας πίνακας discovered με θέση για κάθε κόμβο και ένα δέντρο T. Algorithm 2: BFS(u) T = ; discovered[s] = true; for v V \ {s} do discovered[u] = false; end Q = {s}; while Q έχει στοιχεία do αφαίρεσε το στοιχείο u από την ουρά Q; for κάθε ακμή (u, v) do if discovered[v] = false then discovered[v] = true; πρόσθεσε την ακμή (u, v) στο BFS δέντρο T; πρόσθεσε τον κόμβο v στην ουρά Q; end end end Χαροκόπειο Πανεπιστήμιο 35/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Πλάτος Χρόνος Εκτέλεσης Αρχικοποίηση. Η αρχικοποίηση του πίνακα discovered χρειάζεται O(n) χρόνο. Η ουρά και το δέντρο αρχικοποιούνται σε σταθερό χρόνο. Χρόνος ανά κόμβο. Για κάθε κόμβο v V κάνουμε κάτι που πέρνει σταθερό χρόνο για κάθε εξερχόμενη ακμή και άρα χρειαζόμαστε χρόνο όσο και ο βαθμός του, δηλαδή O(d v ). Ξέρουμε όμως πως v Vd v = 2m = O(m). Συνολικός χρόνος O(n + m). Χαροκόπειο Πανεπιστήμιο 36/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Βάθος Η υλοποίηση της αναζήτησης πρώτα κατά βάθος (DFS) μπορεί να γίνει είτε με στοίβα είτε χρησιμοποιώντας αναδρομή. Υλοποίηση Αναδρομής. Θυμηθείτε πως για να υποστηρίξουν αναδρομή οι γλώσσες προγραμματισμού χρησιμοποιούν μία στοίβα (call stack). Χαροκόπειο Πανεπιστήμιο 37/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Βάθος Με την χρήση στοίβας Δομές. Μια στοίβα S και ένας πίνακας explored με θέση για κάθε κόμβο. Algorithm 3: DFS(s) for v V do explored[u] = false; end όρισε την S ως στοίβα με ένα στοιχείο s; while S έχει στοιχεία do αφαίρεσε το στοιχείο u από την στοίβα S; if explored[u] = false then explored[u] = true; for κάθε ακμή (u, v) do πρόσθεσε τον κόμβο v στην στοίβα S; end end end Χαροκόπειο Πανεπιστήμιο 38/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Βάθος Χρόνος Εκτέλεσης Αρχικοποίηση. Η αρχικοποίηση του πίνακα explored χρειάζεται O(n) χρόνο. Η αρχικοποίηση της στοίβας χρειάζεται O(1) χρόνο. Λειτουργίες Στοίβας. Οι λειτουργίες της στοίβας (PUSH, POP) χρειάζονται σταθερό χρόνο. Για να βρούμε λοιπόν τον χρόνο πρέπει να βρούμε πόσες τέτοιες λειτουργίες κάνουμε. Προσθήκη στην Στοίβα. Αρκεί να μετρήσουμε πόσες φορές προσθέτουμε ένα στοιχείο στην στοίβα καθώς κάθε κόμβος πρέπει να προστεθεί μια φορά για κάθε φορά που μπορεί να διαγραφεί από την στοίβα. Χαροκόπειο Πανεπιστήμιο 39/56

Υλοποίηση Αναζήτησης Πρώτα Κατά Βάθος Χρόνος Εκτέλεσης Χρόνος ανά κόμβο. Κάθε κόμβος v V προστίθεται κάθε φορά που γίνεται εξερεύνηση ενός από τους d v γειτονικούς κόμβους του. Ο συνολικός αριθμός κόμβων που προστίθενται στη στοίβα είναι το πολύ d v = 2m = O(m). v V Συνολικός χρόνος O(n + m). Χαροκόπειο Πανεπιστήμιο 40/56

Σύνολο Συνεκτικών Συνιστωσών Connected Components Έχοντας ορίσει την συνεκτική συνιστώσα ενός συγκεκριμένου κόμβου s, μπορούμε πλέον να μιλήσουμε για το σύνολο των συνεκτικών συνιστωσών (connected components). Λήμμα Για οποιουσδήποτε δύο κόμβους s και t σε ένα γράφημα, οι συνεκτικές συνιστώσες τους είναι είτε ταυτόσημες ή ξένες. Μπορούμε να βρούμε σε γραμμικό χρόνο O(n + m) όλες τις συνεκτικές συνιστώσες εκτελώντας πολλές φορές έναν αλγόριθμο διάσχισης από διαφορετικούς κόμβους. Χαροκόπειο Πανεπιστήμιο 41/56

Σύνολο Συνεκτικών Συνιστωσών Connected Components 1 7 9 11 2 3 4 5 8 10 12 6 13 Αρκούν 3 διασχίσεις π.χ DFS(v 1 ), DFS(v 9 ), DFS(v 11 ) Χαροκόπειο Πανεπιστήμιο 42/56

Κατευθυνόμενα Γραφήματα Directed Graphs Φυσικά ανάλογα. Οι αλγόριθμοι που είδαμε ως τώρα έχουν φυσικά ανάλογα σε κατευθυνόμενα γραφήματα. Αναπαράσταση. Πολλές φορές αναπαριστάμε τα κατευθυνόμενα γραφήματα με μια ενισχυμένη μορφή της λίστας γειτνίασης. Για κάθε κόμβο κρατάμε δύο λίστες, τις εξερχόμενες ακμές και τις εισερχόμενες ακμές. Διάσχιση. Οι αλγόριθμοι BFS και DFS υλοποιούνται με τον ίδιο τρόπο, αρκεί να προσέχουμε να διασχίζουμε ακμές μόνο προς την σωστή κατεύθυνση. Χαροκόπειο Πανεπιστήμιο 43/56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα Directed Graphs Εκτελώντας μια διάσχιση από ένα κόμβο s σε ένα κατευθυνόμενο γράφημα G(V, E) βρίσκουμε όλους τους κόμβους προς τους οποίους υπάρχει διαδρομή από τον s. 1 2 4 3 5 6 π.χ εκτελώντας DFS(v 1 ) βρίσκουμε τους κόμβους v 2, v 4, και v 6. Χαροκόπειο Πανεπιστήμιο 44/56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα Directed Graphs Εκτελώντας μια διάσχιση από ένα κόμβο s σε ένα κατευθυνόμενο γράφημα G(V, E) βρίσκουμε όλους τους κόμβους προς τους οποίους υπάρχει διαδρομή από τον s. 1 2 4 3 5 6 π.χ εκτελώντας DFS(v 1 ) βρίσκουμε τους κόμβους v 2, v 4, και v 6. Χαροκόπειο Πανεπιστήμιο 44/56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα Directed Graphs Για να βρούμε τους κόμβους που έχουν διαδρομή προς ένα κόμβο s σε ένα κατευθυνόμενο γράφημα G(V, E), μπορούμε να αντιστρέψουμε όλες τις ακμές ώστε να λάβουμε το γράφημα G rev. 1 2 4 3 5 6 Χαροκόπειο Πανεπιστήμιο 45/56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα Directed Graphs Για να βρούμε τους κόμβους που έχουν διαδρομή προς ένα κόμβο s σε ένα κατευθυνόμενο γράφημα G(V, E), μπορούμε να αντιστρέψουμε όλες τις ακμές ώστε να λάβουμε το γράφημα G rev. 1 2 4 3 5 6 Χαροκόπειο Πανεπιστήμιο 45/56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα Directed Graphs Για να βρούμε τους κόμβους που έχουν διαδρομή προς ένα κόμβο s σε ένα κατευθυνόμενο γράφημα G(V, E), μπορούμε να αντιστρέψουμε όλες τις ακμές ώστε να λάβουμε το γράφημα G rev. 1 2 4 3 5 6 π.χ εκτελώντας DFS(v 1 ) βρίσκουμε τους κόμβους v 2, v 3, v 4, και v 5. Χαροκόπειο Πανεπιστήμιο 45/56

Ισχυρή Συνεκτικότητα Θυμηθείτε πως ένα κατευθυνόμενο γράφημα είναι ισχυρά συνδεδεμένο (strongly connected) αν, για κάθε ζεύγος κόμβων u και v, υπάρχει διαδρομή από το u στο v και διαδρομή από το v στο u. Αμοιβαία Προσπελάσιμοι. Θα λέμε δύο κόμβους u και v, αμοιβαία προσπελάσιμους (mutually reachable) εαν u v και v u. Λήμμα Εαν οι κόμβοι u και v είναι αμοιβαία προσπελάσιμοι και οι κόμβοι v και w είναι αμοιβαία προσπελάσιμοι, τότε οι κόμβοι u και w είναι αμοιβαία προσπελάσιμοι. Απόδειξη Απλά φτιάξτε τις διαδρομές... Χαροκόπειο Πανεπιστήμιο 46/56

Ισχυρή Συνεκτικότητα Πως μπορούμε να βρούμε εάν ένα κατευθυνόμενο γράφημα είναι ισχυρά συνδεδεμένο; Γραμμικός Αλγόριθμος..1 διάλεξε ένα τυχαίο κόμβο s V.2 τρέξε BFS από τον s στο γράφημα G και στο G rev.3 εάν μια από τις δύο αναζητήσεις αποτύχει να προσπελάσει όλους τους κόμβους, τότε προφανώς το G δεν είναι ισχυρά συνδεδεμένο.4 αλλιώς είναι, αφού για οποιοδήποτε ζευγάρι κόμβων u και v ισχύει u s και s v και άρα u v v s και s u και άρα v u Η αντιστροφή του γραφήματος γίνεται σε γραμμικό χρόνο. Το ίδιο και οι δύο BFS αναζητήσεις. Χαροκόπειο Πανεπιστήμιο 47/56

Κατευθυνόμενο Ακυκλικό Γραφήμα Directed Acyclic Graph (DAG) Όταν ένα κατευθυνόμενο γράφημα δεν έχει κύκλους, ονομάζεται κατευθυνόμενο ακυκλικό γράφημα. Χαροκόπειο Πανεπιστήμιο 48/56

Κατευθυνόμενο Ακυκλικό Γραφήμα Directed Acyclic Graph (DAG) Χρησιμότητα. Τα κατευθυνόμενα ακυκλικά γραφήματα είναι ιδανικά για να εκφράσουν σχέσεις προτεραιότητας και εξαρτήσεις. Παράδειγμα. ένα σύνολο από εργασίες με ετικέτες {1, 2,..., n} που πρέπει να εκτελεστούν εξαρτήσεις εργασιών όπου για ορισμένα ζευγάρια i και j η εργασία i πρέπει να πραγματοποιηθεί πριν από την εργασία j Χαροκόπειο Πανεπιστήμιο 49/56

Κατευθυνόμενο Ακυκλικό Γραφήμα Directed Acyclic Graph (DAG) Χρησιμότητα. Τα κατευθυνόμενα ακυκλικά γραφήματα είναι ιδανικά για να εκφράσουν σχέσεις προτεραιότητας και εξαρτήσεις. Φτιάχνουμε ένα γράφημα όπου υπάρχει ένας κόμβος για κάθε εργασία υπάρχει μια κατευθυνόμενη ακμή (i, j) κάθε φορά που η εργασία i πρέπει να εκτελεστεί πριν από την εργασία j Για να έχει κάποιο νόημα η σχέση προτεραιότητας, το γράφημα που προκύπτει πρέπει να είναι ένα DAG. Σε αυτή την περίπτωση μας ενδιαφέρει μια σειρά εκτέλεσης των εργασιών. Χαροκόπειο Πανεπιστήμιο 49/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Ορισμός. Για ένα κατευθυνόμενο γράφημα G, λέμε ότι η τοπολογική διάταξη (topological ordering) του G είναι μια ταξινόμηση των κόμβων σε μορφή v 1, v 2,..., v n έτσι ώστε για κάθε ακμή (v i, v j ) να ισχύει i < j. Με άλλα λόγια όλες οι ακμές δείχνουν "προς τα εμπρός" στην διάταξη. Χαροκόπειο Πανεπιστήμιο 50/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Ορισμός. Για ένα κατευθυνόμενο γράφημα G, λέμε ότι η τοπολογική διάταξη (topological ordering) του G είναι μια ταξινόμηση των κόμβων σε μορφή v 1, v 2,..., v n έτσι ώστε για κάθε ακμή (v i, v j ) να ισχύει i < j. Χαροκόπειο Πανεπιστήμιο 50/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Ορισμός. Για ένα κατευθυνόμενο γράφημα G, λέμε ότι η τοπολογική διάταξη (topological ordering) του G είναι μια ταξινόμηση των κόμβων σε μορφή v 1, v 2,..., v n έτσι ώστε για κάθε ακμή (v i, v j ) να ισχύει i < j. 2 3 6 5 4 7 1 Χαροκόπειο Πανεπιστήμιο 50/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Ορισμός. Για ένα κατευθυνόμενο γράφημα G, λέμε ότι η τοπολογική διάταξη (topological ordering) του G είναι μια ταξινόμηση των κόμβων σε μορφή v 1, v 2,..., v n έτσι ώστε για κάθε ακμή (v i, v j ) να ισχύει i < j. 1 2 3 4 5 6 7 Χαροκόπειο Πανεπιστήμιο 50/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Χαροκόπειο Πανεπιστήμιο 51/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Απόδειξη Χαροκόπειο Πανεπιστήμιο 51/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Χαροκόπειο Πανεπιστήμιο 51/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Έστω πως το G έχει μια τοπολογική διάταξη v 1, v 2,..., v n και ένα κύκλο C. Χαροκόπειο Πανεπιστήμιο 51/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Έστω πως το G έχει μια τοπολογική διάταξη v 1, v 2,..., v n και ένα κύκλο C. Έστω επίσης v i ο κόμβος με τον μικρότερο δείκτη στον κύκλο C και v j ο κόμβος ακριβώς πριν από τον v i στον κύκλο. Χαροκόπειο Πανεπιστήμιο 51/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G διαθέτει τοπολογική διάταξη, τότε το G είναι γράφημα DAG. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Έστω πως το G έχει μια τοπολογική διάταξη v 1, v 2,..., v n και ένα κύκλο C. Έστω επίσης v i ο κόμβος με τον μικρότερο δείκτη στον κύκλο C και v j ο κόμβος ακριβώς πριν από τον v i στον κύκλο. Λόγω της υπόθεσης υπάρχει η ακμή (v j, v i ) C και άρα λόγω της τοπολογικής διάταξης j < i. Όμως το i είναι ο κόμβος με τον μικρότερο δείκτη, άτοπο. Χαροκόπειο Πανεπιστήμιο 51/56

Υπολογισμός Τοπολογικής Διάταξη Αρχικός Κόμβος. Μπορούμε να χαρακτηρίσουμε κάπως τον πρώτο κόμβο μιας τοπολογικής διάταξης; Χαροκόπειο Πανεπιστήμιο 52/56

Υπολογισμός Τοπολογικής Διάταξη Αρχικός Κόμβος. Μπορούμε να χαρακτηρίσουμε κάπως τον πρώτο κόμβο μιας τοπολογικής διάταξης; Λήμμα Σε κάθε DAG G υπάρχει κόμβος v χωρίς εισερχόμενες ακμές. Χαροκόπειο Πανεπιστήμιο 52/56

Υπολογισμός Τοπολογικής Διάταξη Αρχικός Κόμβος. Μπορούμε να χαρακτηρίσουμε κάπως τον πρώτο κόμβο μιας τοπολογικής διάταξης; Λήμμα Σε κάθε DAG G υπάρχει κόμβος v χωρίς εισερχόμενες ακμές. Απόδειξη Έστω πως κάθε κόμβος έχει τουλάχιστον μια εισερχόμενη ακμή. Διάλεξε ένα κόμβο στην τύχη και άρχισε να πηγαίνεις ανάποδα ακολουθώντας μία εισερχόμενη ακμή. Επειδή όλοι οι κόμβοι έχουν τέτοια ακμή, μπορούμε να κάνουμε αυτή την διαδικασία επ' αόριστον. Επειδή οι κόμβοι είναι n, μετά από n + 1 βήματα θα έχουμε επισκεπτεί κάποιον κόμβο 2 φορές και άρα θα έχουμε βρει ένα κύκλο. Χαροκόπειο Πανεπιστήμιο 52/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Θα το αποδείξουμε με επαγωγή στον αριθμό των κόμβων. Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Θα το αποδείξουμε με επαγωγή στον αριθμό των κόμβων. Προφανώς ισχύει για ένα γράφημα με 1 ή 2 κόμβους. Έστω λοιπόν πως ισχύει για ένα γράφημα με n κόμβους. Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Θα το αποδείξουμε με επαγωγή στον αριθμό των κόμβων. Προφανώς ισχύει για ένα γράφημα με 1 ή 2 κόμβους. Έστω λοιπόν πως ισχύει για ένα γράφημα με n κόμβους. Έστω λοιπόν ένα DAG με n + 1 κόμβους. Ξέρουμε πως υπάρχει κόμβος v χωρίς εισερχόμενες ακμές. Τοποθετούμε τον v πρώτο στην τοπολογική διάταξη. Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Θα το αποδείξουμε με επαγωγή στον αριθμό των κόμβων. Προφανώς ισχύει για ένα γράφημα με 1 ή 2 κόμβους. Έστω λοιπόν πως ισχύει για ένα γράφημα με n κόμβους. Έστω λοιπόν ένα DAG με n + 1 κόμβους. Ξέρουμε πως υπάρχει κόμβος v χωρίς εισερχόμενες ακμές. Τοποθετούμε τον v πρώτο στην τοπολογική διάταξη. Το γράφημα G {v} είναι DAG αφού η διαγραφή κόμβου δεν μπορεί να δημιουργήσει κύκλους που δεν υπάρχουν ήδη. Λόγω επαγωγικής υπόθεσης έχει τοπολογική διάταξη. Βάζουμε μετά τον v τους υπόλοιπους κόμβους με την σειρά αυτής της διάταξης. Χαροκόπειο Πανεπιστήμιο 53/56

Τοπολογική Διάταξη Directed Acyclic Graph (DAG) Λήμμα Εάν ένα γράφημα G είναι DAG τότε έχει τοπολογική διάταξη. Απόδειξη Θα το αποδείξουμε με επαγωγή στον αριθμό των κόμβων. Προφανώς ισχύει για ένα γράφημα με 1 ή 2 κόμβους. Έστω λοιπόν πως ισχύει για ένα γράφημα με n κόμβους. Έστω λοιπόν ένα DAG με n + 1 κόμβους. Ξέρουμε πως υπάρχει κόμβος v χωρίς εισερχόμενες ακμές. Τοποθετούμε τον v πρώτο στην τοπολογική διάταξη. Το γράφημα G {v} είναι DAG αφού η διαγραφή κόμβου δεν μπορεί να δημιουργήσει κύκλους που δεν υπάρχουν ήδη. Λόγω επαγωγικής υπόθεσης έχει τοπολογική διάταξη. Βάζουμε μετά τον v τους υπόλοιπους κόμβους με την σειρά αυτής της διάταξης. Το αποτέλεσμα είναι τοπολογική διάταξη για τον G. Χαροκόπειο Πανεπιστήμιο 53/56

Αλγόριθμος Τοπολογική Διάταξη Η απόδειξη είναι ουσιαστικά και ένας αλγόριθμος κατασκευής. Algorithm 4: Υπολογισμός Τοπολογικής Διάταξης G Βρες ένα κόμβο v χωρίς εισερχόμενες ακμές και τοποθέτησε τον στην πρώτη θέση.; Διέγραψε τον v από το G.; Υπολόγισε αναδρομικά μια τοπολογική διάταξη του G {v} και πρόσθεσε αυτή την διάταξη μετά τον κόμβο v.; Χρόνος. Ο παραπάνω αλγόριθμος τρέχει σε χρόνο O(n 2 ) αφού ψάχνει να βρει ένα κόμβο χωρίς εισερχόμενες ακμές σε χρόνο O(n) κάνει αυτή τη διαδικασία για όλους τους κόμβος, το πολύ O(n) φορές Χαροκόπειο Πανεπιστήμιο 54/56

Αλγόριθμος Τοπολογική Διάταξη 2 3 6 5 4 7 1 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 2 3 6 5 4 7 1 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 2 3 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 2 3 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 3 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 3 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 5 4 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 5 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 5 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 6 7 Χαροκόπειο Πανεπιστήμιο 55/56

Αλγόριθμος Τοπολογική Διάταξη 7 Χαροκόπειο Πανεπιστήμιο 55/56

Γραμμικός Αλγόριθμος Τοπολογική Διάταξη Algorithm 5: Υπολογισμός Τοπολογικής Διάταξης G αρχικοποίησε ένα πίνακα d που περιέχει το αριθμό των εισερχόμενων ακμών κάθε κόμβου.; αρχικοποίηση μιας λίστας S με τους κόμβους v V που έχουν d[v] = 0.; έστω μετρητής i = 1; while η λίστα S δεν είναι άδεια do αφαίρεσε τον πρώτο κόμβο u S από την λίστα S.; δώσε στον u το νούμερο i και αύξησε το i κατά ένα.; for κάθε εξερχόμενη ακμή (u, v) do μείωσε κατά ένα το d[v]; if d[v] = 0 then πρόσθεσε τον v στην λίστα S; end end διέγραψε τον u. end Χρόνος. Ο παραπάνω αλγόριθμος τρέχει σε χρόνο O(m + n) αφού κάνει σταθερή δουλειά ανά ακμή. Η αρχικοποίηση θέλει και αυτή γραμμικό χρόνο. Χαροκόπειο Πανεπιστήμιο 56/56