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

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

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

Διοικητική Λογιστική

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

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

Βάσεις Περιβαλλοντικών Δεδομένων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Ψηφιακή Επεξεργασία Εικόνων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Βέλτιστος Έλεγχος Συστημάτων

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Διδακτική Πληροφορικής

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ιστορία της μετάφρασης

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

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

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

Διδακτική της Πληροφορικής

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

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

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Κβαντική Επεξεργασία Πληροφορίας

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

Διοικητική Λογιστική

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΗΛΕΚΤΡΟΤΕΧΝΙΑ-ΗΛΕΚΤΡΟΝΙΚΗ ΕΡΓΑΣΤΗΡΙΟ

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

Ψηφιακή Επεξεργασία Εικόνων

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στην πληροφορική

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Διδακτική Πληροφορικής

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Βάσεις Περιβαλλοντικών Δεδομένων

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Μηχανολογικό Σχέδιο Ι

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Transcript:

Εισαγωγή στους Αλγορίθμους Ενότητα 6η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοποί ενότητας Παράθεση βασικών ορισμών και κατηγοριών των γραφημάτων Παρουσίαση των βασικών δομών αναπαράστασης και τρόπων διάτρεξης των γραφημάτων Περιγραφή και ανάλυση των αλγορίθμων αναζήτησης κατά πλάτος (BFS) και κατά βάθος (DFS) Ορισμός και έλεγχος της συνεκτικότητας των γραφημάτων Ορισμός και έλεγχος της διμερότητας των γραφημάτων 4

Περιεχόμενα ενότητας Γραφήματα και δομές αναπαράστασης τους Αναζήτηση πρώτα κατά Πλάτος (BFS) Αναζήτηση πρώτα κατά βάθος (DFS) Συνεκτικότητα γραφήματων Διμερότητα γραφημάτων 5

Γραφήματα Βασικές Έννοιες και Εφαρμογές Βασικοί Αλγόριθμοι Διάτρεξη Γραφήματος Αλγόριθμοι Συνεκτικότητας

Γραφήματα Βασικές Έννοιες και Εφαρμογές Εικόνα 1 7

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

Κατευθυνόμενα γραφήματα Κατευθυνόμενο γράφημα. G = (V, E) V = κόμβοι ή κορυφές E = ακμές (ή πλευρές) μεταξύ ζευγαριών κόμβων E: διακριτές, δυαδικές, ασύμμετρες σχέσεις μεταξύ αντικειμένων Παράμετροι μεγέθους γραφήματος: n = V, m = E Η ακμή e = (u, v) κατευθύνεται από τον κόμβο u στον κόμβο v εξέρχεται τoυ u και εισέρχεται στον v αρχική κορυφή ή ουρά u e v τελική κορυφή ή κεφαλή a b c f e d 9

Παραδείγματα γραφημάτων Εικόνα 2 Γράφημα Οδικά δίκτυα Κόμβοι Διασταυρώσεις δρόμων Ακμές Τμήματα δρόμων Δίκτυα επικοινωνιών Υπολογιστές Καλώδια οπτικών ινών Παγκόσμιος Ιστός Ιστοσελίδες Υπερσύνδεσμοι Κοινωνικά δίκτυα Άνθρωποι Σχέσεις Τροφική αλυσίδα Είδος οργανισμού Θηρευτής-θήραμα Συστήματα λογισμικού Συναρτήσεις Κλήσεις συναρτήσεων Χρονοπρογραμματισμός Εργασίες Περιορισμοί προτεραιότητας Κυκλώματα Θύρες Καλώδια 10

Οδικά Δίκτυα Εικόνα 3 11

Οδικά Δίκτυα Εικόνα 4 12

Οδικά Δίκτυα Γράφημα Οδικού Δικτύου. Κόμβος: διασταύρωση Ακμή: τμήμα δρόμου (από μια διασταύρωση στην αμέσως επόμενη) 13

Οδικά Δίκτυα Γράφημα Οδικού Δικτύου. Κόμβος: διασταύρωση Ακμή: τμήμα δρόμου (από μια διασταύρωση στην αμέσως επόμενη) Η κατεύθυνση στο γράφημα είναι σημαντική (μονόδρομοι) 14

Γράφημα Παγκόσμιου Ιστού. Κόμβος: ιστοσελίδα Παγκόσμιος Ιστός Ακμή: υπερσύνδεσμος από μια ιστοσελίδα σε άλλη Η κατεύθυνση στο γράφημα είναι σημαντική Οι σύγχρονες μηχανές αναζήτησης εκμεταλλεύονται την δομή των υπερσυνδέσμων για να ιεραρχήσουν τις ιστοσελίδες με βάση το πόσο σημαντικές είναι. cnn.com Εικόνα 5 netscape.com novell.com cnnsi.com timewarner.com hbo.com sorpranos.com 15

Κοινωνικά Δίκτυα Γράφημα κοινωνικού δικτύου. Κόμβος: άνθρωποι Ακμή: σχέση μεταξύ δύο ατόμων Εικόνα 7 Εικόνα 6 Εικόνα 8 16

Οικολογική Τροφική Αλυσίδα Γράφημα τροφικής αλυσίδας. Κόμβος= είδος οργανισμού Ακμή = από θήραμα σε θηρευτή Εικόνα 9 Εικόνα 10 17

Γραφήματα πως ξεκίνησαν όλα? 18

Θεωρία Γραφημάτων Leonhard Euler (1707-1783) Κλάδος των μαθηματικών Υπό συστηματική μελέτη από τον 18 ο μ.χ. αιώνα Πρόβλημα των γεφυρών του Koenigsberg: Υπάρχει διαδρομή που να περνάει από κάθε γέφυρα ακριβώς μία φορά και να επιστέφει στο αρχικό σημείο; Εικόνα 12 Λύση Euler (1736): πρώτη δημοσίευση στη θεωρία γραφημάτων Εικόνα 11 19

Υπογράφημα ενός γραφήματος G = (V, E): Βασικοί Ορισμοί γράφημα G = (V,E ) τέτοιο ώστε V V και Ε Ε Επαγώμενο υπογράφημα ενός γραφήματος G = (V, E): υπογράφημα G = (V,E ) τέτοιο ώστε E = { (x,y) E: x V y V } 1 8 1 2 3 2 3 4 5 7 4 5 6 20

Υπογράφημα ενός γραφήματος G = (V, E): Βασικοί Ορισμοί γράφημα G = (V,E ) τέτοιο ώστε V V και Ε Ε Επαγώμενο υπογράφημα ενός γραφήματος G = (V, E): υπογράφημα G = (V,E ) τέτοιο ώστε E = { (x,y) E: x V y V } 1 8 1 1 2 3 2 3 2 3 4 5 7 4 5 4 5 6 21

Βασικοί Ορισμοί Ημιδιαδρομή σε ένα (κατευθυνόμενο) γράφημα G = (V, E): ακολουθία P = (v 1, v 2,, v k-1, v k ) κορυφών έτσι ώστε για κάθε διαδοχικό ζεύγος v i, v i+1, 1 i k-1, είτε (v i, v i+1 ) Ε, είτε (v i+1,v i ) Ε Διαδρομή σε ένα γράφημα G = (V, E): ακολουθία P = (v 1, v 2,, v k-1, v k ) κορυφών έτσι ώστε για κάθε διαδοχικό ζεύγος v i, v i+1, 1 i k-1, (v i, v i+1 ) Ε Απλή διαδρομή: διαδρομή στην οποία όλες οι κορυφές της είναι διακριτές Κύκλος: απλή διαδρομή (v 1, v 2,, v k-1, v k ) στην οποία v 1 = v k, k > 2 1 8 a b c 2 3 4 5 7 f e d 6 22

Βασικοί Ορισμοί Μη κατευθυνόμενο γράφημα Βαθμός κορυφής u deg(u): αριθμός προσκείμενων ακμών στην u Κατευθυνόμενο γράφημα Βαθμός εισόδου κορυφής u indeg(u): αριθμός «εισερχόμενων» ακμών στην u Βαθμός εξόδου κορυφής u outdeg(u): αριθμός «εξερχόμενων» ακμών από την u 1 8 a b c 2 3 4 5 7 f e d 6 Βαθμός εισόδου θεμελιώδης στον Αλγόριθμο PageRank Εικόνα 5 23

Βασική Ιδιότητα Θεώρημα Εuler. (α) Σε ένα μη κατευθυνόμενο γράφημα G = (V,E): u V deg(u) = 2m (β) Σε ένα κατευθυνόμενο γράφημα G = (V,E): u V indeg(u) = u V outdeg(u) = m 1 8 a b c 2 3 4 5 7 f e d 6 24

Βασικοί Ορισμοί Συνεκτικότητα. Ένα μη κατευθυνόμενο γράφημα είναι συνεκτικό αν για κάθε ζευγάρι κόμβων u και v, υπάρχει διαδρομή μεταξύ των u και v. 1 8 9 11 2 3 4 5 7 10 12 6 13 25

Βασικοί Ορισμοί Συνεκτικότητα κατευθυνόμενων γραφημάτων. Ένα κατευθυνόμενο γράφημα είναι Ασθενώς συνεκτικό, αν για κάθε ζευγάρι κόμβων u και v, υπάρχει ημιδιαδρομή από τον u στον v Μονομερώς συνεκτικό, αν για κάθε ζευγάρι κόμβων u και v, είτε υπάρχει διαδρομή από τον u στον v, είτε υπάρχει διαδρομή από τον v στον u Ισχυρά συνεκτικό, αν για κάθε ζευγάρι κόμβων u και v, υπάρχει διαδρομή από τον u στον v a b a b a b c c c e d e d e d 26

Αναπαράσταση γραφημάτων: Μητρώο γειτνίασης Μητρώο γειτνίασης γραφήματος G = (V,E). Μητρώο nxn με A(u,v) = 1, αν (u, v) Ε, αλλιώς A(u,v) = 0. Δύο αναπαραστάσεις για κάθε ακμή Χώρος = Θ(n 2 ) Ο έλεγχος αν μια ακμή (u, v) Ε εκτελείται σε χρόνο (1) Ο προσδιορισμός όλων των ακμών εκτελείται σε χρόνο (n 2 ) 1 2 3 4 5 6 8 7 1 2 3 4 5 6 7 8 1 0 1 1 0 0 0 0 0 2 1 0 1 1 1 0 0 0 3 1 1 0 0 1 0 1 1 4 0 1 0 0 1 0 0 0 5 0 1 1 1 0 1 0 0 6 0 0 0 0 1 0 0 0 7 0 0 1 0 0 0 0 1 8 0 0 1 0 0 0 1 0 27

Αναπαράσταση γραφημάτων: Λίστες γειτνίασης Λίστες γειτνίασης γραφήματος G = (V,E). Πίνακας λιστών δεικτοδοτημένος με κόμβους. Δύο αναπαραστάσεις για κάθε ακμή Χώρος = Θ(m + n) Ο έλεγχος αν μια ακμή (u, v) Ε εκτελείται σε χρόνο O(deg(u)) Ο προσδιορισμός όλων των ακμών εκτελείται σε χρόνο (m + n) 1 2 3 8 1 2 3 2 3 1 3 4 5 1 2 5 7 8 4 2 5 5 2 3 4 6 4 5 7 6 5 7 3 8 6 8 3 7 28

Δένδρα Ορισμός. Ένα μη κατευθυνόμενο γράφημα είναι δένδρο αν είναι συνεκτικό και δεν περιέχει κύκλο. Θεώρημα. Έστω G ένα μη κατευθυνόμενο γράφημα με n κόμβους. Οποιεσδήποτε δύο από τις ακόλουθες προτάσεις συνεπάγονται την τρίτη: Το G είναι συνεκτικό. Το G δεν περιέχει κύκλο. Το G έχει n-1 ακμές. 4 3 2 9 6 5 1 7 8 29

Δένδρα με ρίζα Δένδρο με ρίζα. Δεδομένου ενός δένδρου T, διαλέξτε έναν κόμβο r ως ρίζα και προσανατόλισε κάθε ακμή έτσι ώστε να απομακρύνεται από τον r. Σημασία. Μοντελοποιεί μια ιεραρχική δομή. 4 ρίζα r 1 γονέας του v 3 2 9 1 7 2 5 7 v 6 5 8 3 4 6 8 9 τέκνο του v ένα (ελεύθερο) δένδρο το ίδιο δένδρο, με ρίζα τον 1 30

Φυλογενετικά Δένδρα Φυλογενετικά Δένδρα. Περιγραφή εξελικτικής ιστορίας των ειδών. Εικόνα 13 31

Ιεραρχία γραφικού περιβάλλοντος διεπαφής (GUI) Ιεραρχία γραφικού περιβάλλοντος διεπαφής. Περιγραφή οργάνωσης γραφικών αντικειμένων. Εικόνα 14 32

Γραφήματα Βασικοί Αλγόριθμοι Διάτρεξη Γραφήματος

Διάτρεξη Γραφήματος Συστηματικός τρόπος επίσκεψης (ανακάλυψης) κορυφών και ακμών γραφήματος. Βασική ιδέα. Διατήρηση ενός συνόλου κόμβων R που έχουμε ήδη επισκεφθεί, ξεκινώντας από κάποιον κόμβο s Διατρέχουμε ακμές «διέλευσης» (u,v): u R και v R s R u v 34

Διάτρεξη Γραφήματος Εφαρμογές Προσδιορισμός συνεκτικότητας s-t. Δεδομένων δύο κόμβων s και t, υπάρχει διαδρομή από τον s στον t; Πρόβλημα συντομότερης διαδρομής s-t. Δεδομένων δύο κόμβων s και t, ποιό είναι το μήκος της συντομότερης (σε αριθμό ακμών) διαδρομής από τον s στο t? Εφαρμογές. Επίλυση Λαβυρίνθου. Ελάχιστος αριθμός ενδιάμεσων κόμβων σε ένα τηλεπικοινωνιακό δίκτυο. 1 8 2 3 4 5 6 7 35

Αναζήτηση πρώτα κατά Πλάτος (BFS) BFS διαισθητικά. Εξερεύνηση από τον s με προτεραιότητα «πλάτους», δηλ. προς όλες τις πιθανές κατευθύνσεις, προσθέτοντας κόμβους ένα "επίπεδο" κάθε φορά. Ο αλγόριθμος BFS. L 0 = { s }. L 1 = όλοι οι γείτονες του L 0. s L 1 L 2 L n-1 L 2 = όλοι οι κόμβοι που δεν ανήκουν στο L 0 ή στο L 1, και έχουν μια ακμή προς ένα κόμβο στο L 1. L i+1 = όλοι οι κόμβοι που δεν ανήκουν σε ένα προηγούμενο επίπεδο, και έχουν μια ακμή προς ένα κόμβο στο L i. Ιδιότητα. Για κάθε i, το L i αποτελείται από όλους τους κόμβους σε απόσταση ακριβώς i από τον s. Υπάρχει διαδρομή από τον s στον t αν και μόνο αν ο t εμφανίζεται σε κάποιο επίπεδο. 36

Αναζήτηση πρώτα κατά Πλάτος (BFS) BFS(s){ forall v є V {Discovered(v)=false; π[v]=0;} Discovered(s)= true; L[0]={s}; i=0; // T = Ø while L[i] Ø { αρχικοποίηση κενής λίστας L[i+1] forall u L[i] { forall (u,v) E { if Discovered(v)=false then { Discovered(v)=true; π[v] = u; // T = T (u,v) L[i+1] = L[i+1] {v} } } } i = i + 1 } 37

Αναζήτηση πρώτα κατά Πλάτος (BFS) - Παράδειγμα 1 8 2 3 4 5 7 6 1 1 1 L 0 2 3 2 3 2 3 L 1 4 5 7 8 4 5 7 8 L 2 6 L 3 38

Αναζήτηση πρώτα κατά Πλάτος (BFS) BFS(s){ forall v є V {Discovered(v)=false; π[v]=0;} Discovered(s)= true; L[0]={s}; i=0; // T = Ø while L[i] Ø { αρχικοποίηση κενής λίστας L[i+1] forall u L[i] { forall (u,v) E { if Discovered(v)=false then { Discovered(v)=true; π[v] = u; // T = T (u,v) L[i+1] = L[i+1] {v} } } } i = i + 1 } Παρατήρηση: αρκεί μια λίστα L FIFO (ουρά) για την υλοποίηση των L[0], L[1], Δηλ. L = L[0] L[1] 39

Αναζήτηση πρώτα κατά Πλάτος (BFS) BFS(s){ forall v є V {Discovered(v)=false; π[v]=0; d[v]= + ;} Discovered(s) = true; L = {s}; d[s] = 0; // T = Ø while L Ø { πάρε το πρώτο στοιχείο u L; forall (u,v) E { if Discovered(v)=false then { Discovered(v)=true; d[v] = d[u] + 1; π[v] = u; // T = T (u,v) L = L {v}; // ένθεση στο τέλος } } L = L {u}; // διαγραφή του u } 40

Αναζήτηση πρώτα κατά Πλάτος (BFS) Ιδιότητα. Έστω T ένα δένδρο BFS του G = (V, E), και έστω (x, y) μια ακμή του G. Τότε τα επίπεδα των x και y διαφέρουν το πολύ κατά 1. 1 8 2 3 4 5 6 7 1 1 1 L 0 2 3 2 3 2 3 L 1 4 5 7 8 4 5 7 8 L 2 6 L 3 41

Αναζήτηση πρώτα κατά Πλάτος (BFS) Ιδιότητα. Έστω G = (V, E) ένα συνεκτικό γράφημα. Τότε, το γράφημα T = (V, u V (π(u),u) ) είναι δένδρο (δένδρο BFS του G). Απόδειξη. G συνεκτικό αλγόριθμος θα επισκεφθεί όλες τις κορυφές Τ συνεκτικό. Το Τ έχει n-1 πλευρές (π[v] 0, v V {s}), άρα T δένδρο. 1 8 2 3 4 5 6 7 1 1 1 L 0 2 3 2 3 2 3 L 1 4 5 7 8 4 5 7 8 L 2 6 L 3 42

Αναζήτηση πρώτα κατά Πλάτος (BFS): Ανάλυση Θεώρημα. Η παραπάνω υλοποίηση του αλγορίθμου BFS τρέχει σε χρόνο O(m + n), αν το γράφημα δίνεται με την αναπαράσταση λιστών γειτνίασης. Απόδειξη. Εύκολο να αποδειχτεί χρόνος εκτέλεσης O(n 2 ): Το πολύ n λίστες L[i] Κάθε κόμβος υπάρχει το πολύ σε μια λίστα, ο βρόχος for εκτελείται n φορές Όταν εξετάζουμε έναν κόμβο u, υπάρχουν n προσκείμενες ακμές (u,v), και ξοδεύουμε O(1) χρόνο για την εξέταση κάθε ακμής Στην πραγματικότητα εκτελείται σε χρόνο O(m + n): Όταν εξετάζουμε έναν κόμβο u, υπάρχουν deg(u) προσκείμενες ακμές (u,v) Για κάθε τέτοια ακμή, ξοδεύουμε O(1) χρόνο Συνολικός χρόνος εξέτασης ακμών: u V O(deg(u)) = O( u V deg(u)) = O(m) 43

Συνεκτικές Συνιστώσες Μη κατευθυνόμενα γραφήματα Συνεκτική συνιστώσα: Μέγιστο συνεκτικό υπογράφημα του G. 1 8 9 11 2 3 4 5 7 10 12 6 13 Συνεκτικές συνιστώσες: { 1, 2, 3, 4, 5, 6, 7, 8 }, {9,10}, {11,12,13} 44

Εφαρμογή Γέμισμα Περιοχών με Χρώμα Γέμισμα περιοχών με χρώμα. Δεδομένων πράσινων εικονοστοιχείων σε μια εικόνα, άλλαξε το χρώμα ολόκληρης της επιφάνειας των γειτονικών πράσινων εικονοστοιχείων σε μπλέ. Κόμβος: εικονοστοιχεία. Ακμή: δύο γειτονικά πράσινα εικονοστοιχεία. Επιφάνεια: συνεκτική συνιστώσα των πράσινων εικονοστοιχείων. Άλλαξε το χρώμα της επιφάνειας από πράσινο σε μπλέ Εικόνα 15 45

Εφαρμογή Γέμισμα Περιοχών με Χρώμα Γέμισμα περιοχών με χρώμα. Δεδομένων πράσινων εικονοστοιχείων σε μια εικόνα, άλλαξε το χρώμα ολόκληρης της επιφάνειας των γειτονικών πράσινων εικονοστοιχείων σε μπλέ. Κόμβος: εικονοστοιχεία. Ακμή: δύο γειτονικά πράσινα εικονοστοιχεία. Επιφάνεια: συνεκτική συνιστώσα των πράσινων εικονοστοιχείων. Άλλαξε το χρώμα της επιφάνειας από πράσινο σε μπλέ Εικόνα 16 46

Συνεκτικές Συνιστώσες Μη κατευθυνόμενα γραφήματα Συνεκτική συνιστώσα. Εύρεση όλων των κόμβων που μπορούμε να επισκεφθούμε από κάποιο κόμβο s. s R u v Είναι ασφαλές να προσθέσουμε τον v Θεώρημα. Με τον τερματισμό, το R είναι η συνεκτική συνιστώσα που περιέχει τον s. BFS = εξερεύνηση με σειρά απόστασης από τον s. DFS = εξερεύνηση με διαφορετικό τρόπο. 47

Αναζήτηση πρώτα κατά Βάθος (DFS) DFS διαισθητικά. Εξερεύνηση από κάποιον κόμβο u με προτεραιότητα «βάθους»: ακολουθούμε ακμή (u,v), ανακαλύπτοντας τον v, μετά ακολουθούμε ακμή (v,z), ανακαλύπτοντας τον z, κοκ. Ο αλγόριθμος DFS (R: σύνολο κόμβων που έχουν ανακαλυφθεί). DFS(u): Σημείωσε ότι το u "Εξερευνήθηκε" και πρόσθεσε το u στην R For κάθε ακμή (u, v) που πρόσκειται στον κόμβο u If ο κόμβος v δεν έχει σημειωθεί ότι "Εξερευνήθηκε" then Κάλεσε αναδρομικά την DFS(v) Endif Endfor 48

Αναζήτηση πρώτα κατά Βάθος (DFS) DFS(G){ forall u V {Discovered(u)=false; π[u]=0;} t=0; // καθολικός μετρητής χρόνου forall u V {if Discovered(u)=false then DFS-Visit(u)} } DFS-Visit(u) Discovered(u)= true; t=t+1; d[u]=t; forall (u,v) E { if Discovered(v)=false then { Discovered(v)=true; π[v] = u; DFS-Visit(v); } } t = t + 1; f[u] = t; } // χρόνος ανακάλυψης // T = T (u,v) // χρόνος εγκατάλειψης 49

Αναζήτηση πρώτα κατά Βάθος (DFS) Παράδειγμα. y z s t x w v u 50

Αναζήτηση πρώτα κατά Βάθος (DFS): Ανάλυση Θεώρημα. Η παραπάνω υλοποίηση του αλγορίθμου DFS τρέχει σε χρόνο O(m + n), αν το γράφημα δίνεται με την αναπαράσταση λιστών γειτνίασης. Απόδειξη. Παρόμοια με εκείνη του BFS. 51

Αναζήτηση πρώτα κατά Βάθος (DFS) Κατηγοριοποίηση Ακμών. 1. Ακμές δένδρου: ακμές (π[v],v) 2. Πίσω ακμές: συνδέουν μια κορυφή με πρόγονό της σε ένα δένδρο DFS 3. Εμπρός ακμές: συνδέουν μια κορυφή με απόγονό της σε ένα δένδρο DFS 4. Διασυνδετικές ακμές: όλες οι υπόλοιπες 52

Αναζήτηση πρώτα κατά Βάθος (DFS) Παράδειγμα (συνέχεια). y z s t 3/6 2/9 1/10 11/16 4/5 7/8 12/13 14/15 x w v u 53

54 Αναζήτηση πρώτα κατά Βάθος (DFS) Παράδειγμα (μη κατευθυνόμενο γράφημα). (α) (β) (γ) (δ) (ε) (στ) (ζ) 1 2 3 5 4 6 8 7 1 2 3 5 4 6 7 1 2 3 5 4 6 1 2 3 5 4 1 2 3 5 1 2 3 1 2 1 2 3 8 7 5 6 4

Αναζήτηση πρώτα κατά Βάθος (DFS) Ιδιότητα DFS σε μη κατευθυνόμενα γραφήματα. Aν G είναι ένα μη κατευθυνόμενο γράφημα, τότε σε μια αναζήτηση πρώτα κατά βάθος κάθε ακμή του G είναι είτε ακμή δένδρου, είτε πίσω ακμή. 55

Εύρεση Συνεκτικών Συνιστωσών μέσω DFS σε μη κατευθυνόμενο γράφημα DFS(G){ forall u V {Discovered(u)=false; π[u]=0; CC[u]=0;} t=0; c=0; // καθολικός μετρητής χρόνου & ΣΣ forall u V {if Discovered(u)=false then c=c+1; DFS-Visit(u)} } DFS-Visit(u) Discovered(u)=true; t=t+1; d[u]=t; CC[u]=c; //χρόνος ανακάλυψης forall (u,v) E { if Discovered(v)=false then { Discovered(v)=true; π[v] = u; // T = T (u,v) DFS-Visit(v); } } t = t + 1; f[u] = t; // χρόνος εγκατάλειψης } 56

Συνεκτικότητα σε Κατευθυνόμενα Γραφήματα

Διάτρεξη Κατευθυνόμενων Γραφημάτων Κατευθυνόμενη προσπελασιμότητα. Δεδομένου ενός κόμβου s, βρείτε όλους τους κόμβους που είναι προσπελάσιμοι από τον s. Πρόβλημα συντομότερης κατευθυνόμενης διαδρομής s-t. Δεδομένων δύο κόμβων s και t, ποιό είναι το μήκος της συντομότερης διαδρομής μεταξύ του s και του t; Σαρωτής παγκόσμιου ιστού (web crawler). Ξεκινήστε από την ιστοσελίδα s. Βρείτε όλες τις ιστοσελίδες που είναι προσπελάσιμες από την s, είτε άμεσα είτε έμμεσα. Διάτρεξη (αναζήτηση) γραφήματος. Οι BFS και DFS επεκτείνονται με ανάλογο τρόπο σε κατευθυνόμενα γραφήματα. 58

Ισχυρή Συνεκτικότητα Ορισμός. Οι κόμβοι u και v είναι αμοιβαία προσπελάσιμοι αν υπάρχει μια διαδρομή από τον u στον v και επίσης μια διαδρομή από τον v στον u. Ορισμός. Ένα γράφημα είναι ισχυρά συνεκτικό αν κάθε ζευγάρι κόμβων είναι αμοιβαία προσπελάσιμο. Λήμμα. Έστω s οποιοσδήποτε κόμβος. Το G είναι ισχυρά συνεκτικό αν και μόνο αν κάθε κόμβος είναι προσπελάσιμος από τον s, και ο s είναι προσπελάσιμος από κάθε κόμβο. Απόδειξη. Από τον ορισμό. Απόδειξη. Διαδρομή από τον u στον v: συνένωσε την διαδρομή u-s με την διαδρομή s-v. Διαδρομή από τον v στον u: συνένωσε την διαδρομή v-s με την διαδρομή s-u. s v u Δεν υπάρχει πρόβλημα αν οι διαδρομές έχουν κοινούς κόμβους 59

Ισχυρή Συνεκτικότητα Αλγόριθμος Θεώρημα. Μπορεί να καθοριστεί αν το G είναι ισχυρά συνεκτικό σε χρόνο O(m+n). Απόδειξη. Επέλεξε οποιονδήποτε κόμβο s. Εκτέλεσε BFS από τον s στο G. Εκτέλεσε BFS από τον s στον G rev. Αντιστροφή κατεύθυνσης κάθε ακμής του G Επέστρεψε «αληθές» αν και μόνο αν έγινε προσπέλαση όλων των κόμβων σε κάθε εκτέλεση του BFS. Η ορθότητα είναι συνέπεια του προηγούμενου λήμματος. Ισχυρά συνεκτικό Όχι ισχυρά συνεκτικό 60

Έλεγχος διμερότητας

Διμερή γραφήματα Ορισμός. Ένα μη κατευθυνόμενο γράφημα G = (V, E) είναι διμερές αν οι κόμβοι μπορούν να χρωματιστούν κόκκινοι ή μπλέ έτσι ώστε κάθε ακμή να έχει ένα κόκκινο και ένα μπλέ άκρο. Εφαρμογές. Ευσταθές ταίριασμα: άνδρες = κόκκινο, γυναίκες = μπλέ. Χρονοπρογραμματισμός: μηχανές = κόκκινο, εργασίες = μπλέ. Ένα διμερές γράφημα 62

Έλεγχος διμερότητας Έλεγχος διμερότητας. Δεδομένου ενός γραφήματος G, είναι αυτό διμερές; Πολλά προβλήματα γραφημάτων γίνονται: Εύκολα αν το υποκείμενο γράφημα είναι διμερές (ταίριασμα) Επιλύσιμα αν το υποκείμενο γράφημα είναι διμερές (ανεξάρτητο σύνολο) Πριν προσπαθήσουμε να σχεδιάσουμε έναν αλγόριθμο, πρέπει να καταλάβουμε την δομή των διμερών γραφημάτων. v 2 v 3 v 2 v 1 v 4 v 6 v 5 v 4 v 3 v 5 v 6 v 7 v 1 v 7 Ένα διμερές γράφημα G Μια άλλη απεικόνιση του G 63

Ένα εμπόδιο για την διμερότητα Λήμμα. Αν ένα γράφημα G είναι διμερές, δεν μπορεί να περιέχει κύκλο περιττού μήκους. Απόδειξη. Δεν είναι δυνατόν να δι-χρωματίσουμε έναν περιττό κύκλο, πόσο μάλλον το G. διμερές (2-χρωματιζόμενο) Μη διμερές (όχι 2-χρωματιζόμενο) 64

Διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από τον αλγόριθμο BFS ξεκινώντας από τον κόμβο s. Ακριβώς ένα από τα παρακάτω ισχύει. (i) Καμία ακμή στο G δεν ενώνει δύο κόμβους ίδιου επιπέδου, και το G είναι διμερές. (ii) Μια ακμή του G ενώνει δύο κόμβους στο ίδιο επίπεδο, και το G περιέχει έναν κύκλο περιττού μήκους (κατά συνέπεια δεν είναι διμερές). Περίπτωση (i) L 1 L 2 L 3 L 1 L 2 L 3 Περίπτωση (ii) 65

Διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από τον αλγόριθμο BFS ξεκινώντας από τον κόμβο s. Ακριβώς ένα από τα παρακάτω ισχύει. (i) Καμία ακμή στο G δεν ενώνει δύο κόμβους ίδιου επιπέδου, και το G είναι διμερές. (ii) Μια ακμή του G ενώνει δύο κόμβους στο ίδιο επίπεδο, και το G περιέχει έναν κύκλο περιττού μήκους (κατά συνέπεια δεν είναι διμερές). Απόδειξη. (i) Έστω ότι καμία ακμή δεν συνδέει κόμβους στο ίδιο επίπεδο. Από ιδιότητα BFS (επίπεδα άκρων ακμής 1), αυτό σημαίνει ότι όλες οι ακμές συνδέουν κόμβους γειτονικών επιπέδων. Διμερότητα: κόκκινο = κόμβοι σε περιττό επίπεδο, μπλέ = κόμβοι σε άρτιο επίπεδο. Περίπτωση (i) L 1 L 2 L 3 66

Διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από τον αλγόριθμο BFS ξεκινώντας από τον κόμβο s. Ακριβώς ένα από τα παρακάτω ισχύει. (i) Καμία ακμή στο G δεν ενώνει δύο κόμβους ίδιου επιπέδου, και το G είναι διμερές. (ii) Μια ακμή του G ενώνει δύο κόμβους στο ίδιο επίπεδο, και το G περιέχει έναν κύκλο περιττού μήκους (κατά συνέπεια δεν είναι διμερές). Απόδειξη. (ii) Έστω (x, y) μια ακμή με x, y στο ίδιο επίπεδο L j. Έστω z = lca(x, y) = χαμηλότερος κοινός πρόγονος. Έστω L i το επίπεδο που περιέχει τον z. Θεωρούμε τον κύκλο που αποτελείται από την ακμή (x,y), τη διαδρομή από τον y στον z, και την διαδρομή από τον z στον x. Επίπεδο L j Το μήκος του είναι 1 + (j-i) + (j-i), που είναι περιττό. s Επίπεδο L i x z = lca(x, y) z y (x, y) Διαδρομή από y στον z Διαδρομή από z στον x 67

Ένα εμπόδιο για την διμερότητα Πόρισμα. Ένα γράφημα G είναι διμερές αν και μόνο αν δεν περιέχει κύκλο περιττού μήκους. 5-κύκλος C διμερές (2-χρωματιζόμενο) Μη διμερές (όχι 2-χρωματιζόμενο) 68

Βιβλιογραφία 1. J. Kleinberg and E. Tardos, Σχεδιασμός Αλγορίθμων, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 2. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Εισαγωγή στους Αλγορίθμους, ελληνική έκδοση, Πανεπιστημιακές Εκδόσεις Κρήτης, 2012 3. K. Mehlhorn and P. Sanders, Αλγόριθμοι και Δομές Δεδομένων Τα βασικά εργαλεία, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2014 4. S. Dasgupta, C. Papadimitriou, and U. Vazirani, Αλγόριθμοι, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 5. Θ. Παπαθεοδώρου, Αλγόριθμοι: Εισαγωγικά Θέματα και Παραδείγματα, Εκδόσεις Πανεπιστημίου Πατρών, 1999 69

Τέλος Ενότητας 70

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 71

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Χρήστος Ζαρολιάγκης, 2014. «Εισαγωγή στους Αλγορίθμους». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1083 72

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγα Έργα 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 73

Πηγές εικόνων - Χρήση Έργων Τρίτων Εικόνα 1: σελ. 6, http://commons.wikimedia.org/wiki/file:graph_betweenness.svg Εικόνα 2: σελ. 9, http://upload.wikimedia.org/wikipedia/commons/e/e9/1885_west_end_street_railway_ma p.png Εικόνα 3, 4: σελ. 10, 11, Game: Sim City 2000, Developers: Maxis, Full Fat (GBA), Publishers: Maxis, Electronic Arts DSI Games/Zoo Digital (GBA) http://desciclopedia.org/wiki/imagem:sim_city.jpg Εικόνα 5: σελ. 14, 22, http://en.wikipedia.org/wiki/pagerank#mediaviewer/file:pagerank-hi-res.png 74

Πηγές εικόνων - Χρήση Έργων Τρίτων Εικόνα 6: σελ. 15, http://commons.wikimedia.org/wiki/file:social_network.png Εικόνα 7: σελ. 15, cc by, https://www.flickr.com/photos/psd/5385341107/ Εικόνα 8: σελ. 15, cc by, https://www.flickr.com/photos/marc_smith/4618279087 Εικόνα 9: σελ. 16, http://upload.wikimedia.org/wikipedia/commons/0/0e/chesapeake_waterbird_food_web.j pg Εικόνα 10: σελ. 16, http://commons.wikimedia.org/wiki/file:foodchain.svg 75

Πηγές εικόνων - Χρήση Έργων Τρίτων Εικόνα 11: σελ. 18, http://en.wikipedia.org/wiki/seven_bridges_of_k%c3%b6nigsberg#mediaviewer/file:konig sberg_bridges.png Εικόνα 12: σελ. 18, http://commons.wikimedia.org/wiki/file:leonhard_euler_2.jpg Εικόνα 13: σελ. 30, http://commons.wikimedia.org/wiki/file:phylogenetic_tree_of_theropods_respiratory_syst em_01.jpg Εικόνα 14: σελ. 31, http://en.wikipedia.org/wiki/unified_modeling_language#mediaviewer/file:uml_diagrams _overview.svg 76

Πηγές εικόνων - Χρήση Έργων Τρίτων Εικόνα 15: σελ. 44, www.tuxpaint.org/ Εικόνα 16: σελ. 45, www.tuxpaint.org/ 77

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 78