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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

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

Εισαγωγή στους Υπολογιστές

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

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

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

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

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

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

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

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

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

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

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

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

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

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

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

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

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

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

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

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

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

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

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

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

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

Διδακτική των εικαστικών τεχνών Ενότητα 1

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

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

Transcript:

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

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

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

Δυαδικός σωρός 4

Σωρός (Heap) Ορισμός: ισοστασθμισμένο δυαδικό δένδρο. Συνδυάζει πλεονεκτήματα ταξινομημένου πίνακα και λίστας. Το κλειδί κάθε κόμβου είναι τουλάχιστον τόσο μεγάλο όσο αυτό του γονέα του. Διάταξη σωρού: για κάθε στοιχείο v, σε έναν κόμβο i, το στοιχείο w στο γονέα του i ικανοποιεί τη σχέση: key(w) key(v) Για κάθε κόμβο στη θέση i: parent(i) = Li/2, leftchild(i) = 2i, rightchild(i) = 2i+1 5

Η διαδικασία Heapify-up Στόχος: διόρθωση ενός σχεδόν σωρού με μετακίνηση ενός στοιχείου προς τη ρίζα Σχεδόν σωρός με πολύ μικρό κλειδί στη θέση H[i] : το στοιχείο v στη θέση i, έχει πολύ μικρό κλειδί H[i], που πιθανόν παραβιάζει την ιδιότητα διάταξης σωρού. Heapify-up(H, i): If i > 1 then έστω j = parent(i) = i/2 If key[h[i]] < key[h[j]] then Κάνε εναλλαγή των στοιχείων H[i] και H[j] Heapify-up(H, j) Endif Endif Χρόνος Heapify-up: Ο(log n) Εισαγωγή στοιχείου: τοποθέτηση του νέου στοιχείου ως τελευταίο στον σωρό και κλήση της Heapify-up. Χρόνος: O(log n) 6

Η διαδικασία Heapify-down Στόχος: διόρθωση ενός σχεδόν σωρού με μετακίνηση ενός στοιχείου προς τa φύλλα Σχεδόν σωρός με πολύ μεγάλο κλειδί στη θέση H[i]: το στοιχείο v στη θέση i, έχει πολύ μεγάλο κλειδί H[i], που πιθανόν παραβιάζει την ιδιότητα διάταξης σωρού. Heapify-down(H, i): Έστω n = length(h) If 2i > n then Τερμάτισε με αμετάβλητο H Else if 2i < n then Έστω left = 2i, και right = 2i+1 Έστω j ο δείκτης που ελαχιστοποιεί τα key[h[left]] και key[h[right]] Else if 2i = n then Έστω j = 2i Endif If key[h[j]] < key[h[i]] then Κάνε εναλλαγή των στοιχείων πίνακα H[i] και H[j] Heapify-down(H, j) Endif Χρόνος Heapify-down: Ο(log n) Διαγραφή στοιχείου v: αντικατάσταση του v με το τελευταίο στοιχείο του σωρού και κλήση της Heapify-down. Χρόνος: O(log n) 7

Κατασκευή Σωρού Άσκηση 1: Δίνεται το διάνυσμα Α = [50, 15, 20, 30, 10, 40, 12, 3, 8, 25, 7]. Εκτελέστε αναλυτικά τον αλγόριθμο κατασκευής σωρού. 8

Μέθοδοι Επίλυσης Αναδρομικών Σχέσεων 9

Βασικό Θεώρημα Αναδρομών Έστω Τότε, για 10

Μέθοδοι Επίλυσης Αναδρομικών Σχέσεων Άσκηση 2: Να δοθεί ο κλειστός τύπος, σε ασυμπτωτικό συμβολισμό, της αναδρομικής σχέσης T(n 2 ) = 3T(n 2 /3) + n, εφαρμόζοντας το Βασικό Θεώρημα. 11

Μέθοδοι Επίλυσης Αναδρομικών Σχέσεων Άσκηση 3: Να δοθεί ο κλειστός τύπος, σε ασυμπτωτικό συμβολισμό, της αναδρομικής σχέσης T(n) = 16T(n/8) + n 2/3, εφαρμόζοντας το Βασικό Θεώρημα. 12

Μέθοδοι Επίλυσης Αναδρομικών Σχέσεων Άσκηση 4: Να δοθεί ο κλειστός τύπος, σε ασυμπτωτικό συμβολισμό, της αναδρομικής σχέσης T(n) = 2T(n/2) + n 2, εφαρμόζοντας το Βασικό Θεώρημα. 13

Μέθοδοι Επίλυσης Αναδρομικών Σχέσεων Άσκηση 5: Έστω, Α 1 και Α 2, δυο αναδρομικοί αλγόριθμοι που χρησιμοποιούν τη μέθοδο «Διαίρει & Βασίλευε». Α 1 : Διαιρεί το πρόβλημα Π μεγέθους n σε 3 υποπροβλήματα το καθένα μεγέθους n/3 και συνδυάζει τις λύσεις των υποπροβλημάτων σε χρόνο nlogn. Α 2 : Διαιρεί το πρόβλημα Π μεγέθους n σε 4 υποπροβλήματα το καθένα μεγέθους n/4 και συνδυάζει τις λύσεις των υποπροβλημάτων σε χρόνο n. a) Βρείτε τις αναδρομικές σχέσεις για τους χρόνους εκτέλεσης Τ 1 (n) και T 2 (n), αντίστοιχα των αλγορίθμων Α 1 και Α 2. β) Εφαρμόστε το Βασικό Θεώρημα για να βρείτε τη χρονική πολυπλοκότητα των Τ 1 (n) και T 2 (n). γ) Ποιος αλγόριθμος από τους Α 1 και Α 2 είναι πιο αποδοτικός; 14

Σύγκριση Ρυθμού Αύξησης 15

Σύγκριση Ρυθμού Αύξησης Άσκηση 6: Ταξινομήστε την παρακάτω λίστα συναρτήσεων σε αύξουσα σειρά ως προς το ρυθμό αύξησης. T 1 (n) = Ο(n 2 ) T 2 (n) = O(logn) T 3 (n) = Ο(n 3 ) T 4 (n) = Ο(2 n ) 16

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

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

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

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

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