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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

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

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

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

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

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

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

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

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

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

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

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

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

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

Μάρκετινγκ Αγροτικών Προϊόντων

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

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

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

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

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Τεχνικό Σχέδιο - CAD

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

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

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

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

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

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

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

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

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

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

Τεχνικό Σχέδιο - CAD

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Εκκλησιαστικό Δίκαιο

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

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

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

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

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

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

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

Δυναμική και Έλεγχος E-L Ηλεκτρομηχανικών Συστημάτων

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

Transcript:

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

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

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

Γραφήματα - Προκαταρκτικά 4

Μη κατευθυνόμενα γραφήματα Μη κατευθυνόμενο γράφημα. 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 5

Κατευθυνόμενα γραφήματα Κατευθυνόμενο γράφημα. 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 6

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

Δένδρα με ρίζα Δένδρο με ρίζα. Δεδομένου ενός δένδρου 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 8

Διάτρεξη Γραφήματος 9

Αναζήτηση πρώτα κατά Πλάτος (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 εμφανίζεται σε κάποιο επίπεδο. 10

Αναζήτηση πρώτα κατά Πλάτος (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 } 11

Αναζήτηση πρώτα κατά Βάθος (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 12

Αναζήτηση πρώτα κατά Βάθος (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; // T = T (u,v) DFS-Visit(v); } } t = t + 1; f[u] = t; // χρόνος εγκατάλειψης } 13

Αναζήτηση πρώτα κατά Πλάτος (BFS) Άσκηση 1: Στο μη κατευθυνόμενο γράφημα του παρακάτω σχήματος να δώσετε το επίπεδο (level) κάθε κόμβου σε μία Αναζήτηση Πρώτα κατά Πλάτος (ΑΠΠ), η οποία αρχίζει από την κορυφή a. b d a s c f e g h 14

Αναζήτηση πρώτα κατά Βάθος (DFS) Άσκηση 2: Στο κατευθυνόμενο γράφημα του παρακάτω σχήματος να δώσετε τους χρόνους ανακάλυψης (πρώτης επίσκεψης) και εγκατάλειψης σε μία Αναζήτηση Πρώτα κατά Βάθος (ΑΠΒ), η οποία αρχίζει από την κορυφή a. Οι χρόνοι να γραφούν πάνω στο σχήμα, στο εσωτερικό κάθε κορυφής, αριστερά ο χρόνος ανακάλυψης και δεξιά ο χρόνος εγκατάλειψης. α b c d / / / / / / / / e f g h 15

Αναζήτηση πρώτα κατά Βάθος (DFS) Άσκηση 3: Να κατηγοριοποιήσετε τις ακμές (τόξα) του κατευθυνόμενου γραφήματος σύμφωνα με την ΑΠΒ της Άσκησης 2. Η κατηγοριοποίηση να γραφεί δίπλα σε κάθε ακμή του σχήματος χρησιμοποιώντας τα γράμματα Δ (ακμή δένδρου), Π (πίσω ακμή), Ε (εμπρός ακμή) και Σ (διασυνδετική ακμή). α b c d / / / / / / / / e f g h 16

Αναζήτηση πρώτα κατά Πλάτος (BFS) Άσκηση 4: Στο μη κατευθυνόμενο γράφημα του παρακάτω σχήματος να δώσετε το επίπεδο (level) κάθε κόμβου σε μία Αναζήτηση Πρώτα κατά Πλάτος (ΑΠΠ), η οποία αρχίζει από την κορυφή a. α d e g b c f 17

Αναζήτηση πρώτα κατά Βάθος (DFS) Άσκηση 5: Δίνεται κατευθυνόμενο γράφημα G(V,E). Βρείτε έναν αλγόριθμο γραμμικού χρόνου που να ελέγχει αν το G έχει κύκλο. 18

Συνεκτικότητα 19

Συνεκτικότητα Συνεκτικότητα κατευθυνόμενων γραφημάτων. Ένα κατευθυνόμενο γράφημα είναι Ασθενώς συνεκτικό, αν για κάθε ζευγάρι κόμβων 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 20

Συνεκτικότητα Άσκηση 6: Βρείτε το είδος συνεκτικότητας των παρακάτω κατευθυνόμενων γραφημάτων G 1, G 2, G 3, G 4 και G 5. a b a d e c e d G 1 b c G 2 a c f a d e a d e b d G 5 e b c G 3 b c G 4 21

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

Συνεκτικότητα Άσκηση 7: Βρείτε αν το παρακάτω κατευθυνόμενο γράφημα είναι ισχυρά συνεκτικό ή όχι, χρησιμοποιώντας Αναζήτηση Πρώτα κατά Πλάτος (BFS). a b d c 23

Τέλος Φροντιστηρίου 24

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

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

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

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