ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

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

Φιλοσοφία της Ιστορίας και του Πολιτισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γενική Φυσική Ενότητα: Ταλαντώσεις

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

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

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

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

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

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

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

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

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

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

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

Έλεγχος Ποιότητας Φαρμάκων

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

Εισαγωγή στη Μουσική Τεχνολογία Ενότητα: Ελεγκτές MIDI μηνυμάτων (Midi Controllers)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

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

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

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

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

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

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

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

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

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

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

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

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

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

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

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

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

Εισαγωγή στις Επιστήμες της Αγωγής

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

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

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

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

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

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

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

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

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

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

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

Χριστιανική και Βυζαντινή Αρχαιολογία

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

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

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

Ποιοτική μεθοδολογία έρευνας στη Διδακτική των Μαθηματικών Ενότητα: Η διαχείριση του λάθους στην τάξη των μαθηματικών

Τίτλος Μαθήματος. Ενότητα 1: Γενικά περί λογικού προγραμματισμού

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Παιδαγωγική ή Εκπαίδευση ΙΙ

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Ποιοτική μεθοδολογία έρευνας στη Διδακτική των Μαθηματικών Ενότητα 7: Συγγραφή μιας εργασίας

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

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

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

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

Παιδαγωγικά. Ενότητα Β: Γενικοί σκοποί της διδασκαλίας και διδακτικοί στόχοι. Ζαχαρούλα Σμυρναίου Σχολή Φιλοσοφίας Τμήμα Παιδαγωγικής και Ψυχολογίας

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

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

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

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

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

Έννοιες Φυσικών Επιστημών Ι

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

Transcript:

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών

Αναδροµή 24 Αναδροµή Πληροφορική Ι Μ. ρακόπουλος 24 Αναδροµικές µέθοδοι Μια µέθοδος καλεί τον εαυτό της (άµεσα ή έµµεσα). Παραλλαγή του διαίρει και ϐασίλευε. Σπάσε το πρόβληµα σε υποπροβλήµατα µε την ίδια δοµή. Επίλυσε αναδροµικά τα υποπροβλήµατα µε την ίδια µέθοδο. Συνδύασε τις λύσεις για τη λύση του αρχικού προβλήµατος. Πολλά σηµαντικά προβλήµατα επιλύονται άµεσα αναδροµικά. Στενή σχέση αναδροµής και επαγωγής. Πληροφορική Ι Μ. ρακόπουλος 25 8

Αναδροµικός αλγόριθµος n! n! = n (n 1)!, 0! = 1 function y = factorial(n) if n == 0 y = 1; else y = n*factorial(n-1); end Βασική περίπτωση: Επιστρέφει τιµή χωρίς αναδροµική κλίση. Αναδροµικό βήµα: n*factorial(n-1) Η ακολουθία των παραµέτρων πρέπει να συγκλίνει στη ϐασική περίπτωση (το n ϑα γίνει τελικά 0). Πληροφορική Ι Μ. ρακόπουλος 26 Αναδροµικός αλγόριθµος n! (συνεχ.) factorial(5) factorial(4) factorial(3) factorial(2) factorial(1) factorial(0) return 1 return 1*1 = 1 return 2*1 = 2 return 3*2 = 6 return 4*6 = 24 return 5*24 = 120 Πληροφορική Ι Μ. ρακόπουλος 27 Αναδροµικός αλγόριθµος του Ευκλείδη { p gcd(p, q) = gcd(q, p mod q) αν q = 0 (ϐασική περίπτωση) διαφορετικά (αναδροµικό ϐήµα) function m = gcd(p, q) if q == 0 m = p; else m = gcd(q, rem(p,q)); end Πληροφορική Ι Μ. ρακόπουλος 28 9

Οι πύργοι του Hanoi Για n = 5 δίσκους: A B C Ξεκινώντας από τη παραπάνω διάταξη, τοποθέτησε όλους τους δίσκους σε κάποιο από τους άλλους στύλους σύµφωνα µε τους παρακάτω κανόνες: Μόνο ένας δίσκος µπορεί να µετακινείται κάθε ϕορά. Ενας δίσκος µπορεί να τοποθετηθεί είτε σε άδειο στύλο είτε πάνω σε µεγαλύτερο δίσκο. Πληροφορική Ι Μ. ρακόπουλος 29 10

Οι πύργοι του Hanoi (αναδροµική λύση) A B C A B C A B C Πληροφορική Ι Μ. ρακόπουλος 30 11

Αλγόριθµος για πύργους Hanoi Αν n == 1 µετακίνησε το δίσκο απο start σε finish. Αν n > 1 διαίρεσε το πρόβληµα σε 3 υποπροβλήµατα: 1. Με τον ίδιο αλγόριθµο, µετακίνησε τους πάνω n-1 δίσκους απο start σε temp. Στο ϐήµα αυτό, ο στύλος finish χρησιµοποιείται ϐοηθητικά. 2. Μετακίνησε τον τελευταίο δίσκο από start σε finish. 3. Μετακίνησε τους πάνω n-1 δίσκους απο temp σε finish. Στο ϐήµα αυτό, ο στύλος start χρησιµοποιείται ϐοηθητικά. Πληροφορική Ι Μ. ρακόπουλος 31 Αναδροµική µέθοδος για πύργους Hanoi function movetower(n, start, finish, temp) if n == 1 fprintf( %s -> %s\n, start, finish); else movetower(n-1, start, temp, finish); fprintf( %s -> %s\n, start, finish); movetower(n-1, temp, finish, start); end Παράδειγµα κλήσης για n = 5: movetower(5, A, B, C ); Πληροφορική Ι Μ. ρακόπουλος 32 Αλφαριθµητικά δεδοµένα (strings) Τα αλφαριθµητικά (strings) είναι µη-αριθµητικά δεδοµένα (= αλληλουχίες από χαρακτήρες). Π.χ. A Pliroforiki I C3PO r2d2 Μπορούν να ανατεθούν κανονικά σε µεταβλητές. Π.χ. x = MATLAB rulez ; y = Linux 4 ever ; Για την εκτύπωση strings µε την fprintf χρησιµοποιείται ο κώδικας %s. Πληροφορική Ι Μ. ρακόπουλος 32 α 12

Ο ϑρύλος των πύργων του Hanoi Το τέλος του κόσµου ϑα έρθει όταν µια οµάδα µοναχών καταφέρει να µετακινήσει 64 χρυσούς δίσκους σε 3 διαµαντένους στύλους. Εστω T n το πλήθος των µετακινήσεων για n δίσκους, τότε: T n = 2T n 1 + 1 για n > 1, µε T 1 = 1 αποδεικνύεται επαγωγικά ότι T n = 2 n 1 Αν οι µοναχοί µετακινούν 1 δίσκο/sec, τότε χρειάζονται: για 20 δίσκους, περισσότερο από 1 ϐδοµάδα για 30 δίσκους, περισσότερα από 31 χρόνια για 40 δίσκους, 348 αιώνες για 64 δίσκους, περισσότερο από 1.4 εκατοµµύρια αιώνες! Υπολογιστής που εκτελεί 10 9 πράξεις/sec χρειάζεται αιώνες! Πληροφορική Ι Μ. ρακόπουλος 33 Προβλήµατα µε αναδροµή Ο n-αρµονικός αριθµός H n = 1 + 1/2 + 1/3 + + 1/n: function h = H(n) if n == 1 h = 1; else h = H(n-1) + 1.0/n; end Παράλλειψη ϐασικής περίπτωσης: Stack Overflow Error Μεγάλες απαιτήσεις µνήµης. Μετά από κάποιο n τελικά ϑα πάρουµε Stack Overflow Error. Αντίθετα, ο αντίστοιχος επαναληπτικός αλγόριθµος χρειάζεται ελάχιστη µνήµη. Πληροφορική Ι Μ. ρακόπουλος 34 13

Προβλήµατα µε αναδροµή (συνεχ.) Περιττή επανάληψη υπολογισµων. Π.χ. ο αναδροµικός αλγόριθµος για αριθµούς Fibonacci F n = F n 1 + F n 2, n > 2 µε F 1 = 1, F 2 = 2. function fibo = F(n) if n == 1 fibo = 1; elseif n == 2 fibo = 2; else fibo = F(n-1) + F(n-2); end Πληροφορική Ι Μ. ρακόπουλος 35 Προβλήµατα µε αναδροµή (συνεχ.) Για τον υπολογισµό του F 50 µε αναδροµή: F(50) F(49) F(48) F(48) F(47) F(47) F(46) F(47) F(46) F(46) F(45) F(46) F(45) F(45) F(44) η F(1) καλείται F 50 = 20, 365, 011, 074 ϕορές. Πληροφορική Ι Μ. ρακόπουλος 36 14

Σημειώματα Σημείωμα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Μιχάλης Δρακόπουλος, 2014. Μιχάλης Δρακόπουλος. «Πληροφορική Ι. Ενότητα 9: Αναδρομή». Έκδοση: 1.0. Αθήνα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://opencourses.uoa.gr/modules/document/?course=math105. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες Εικόνα 1. Lógica, Epistemologia e Filosofia das Ciências. Copyrighted. Πηγή: http://www.investigacoesfilosoficas.com/ii-congreso-colombiano-de-logica-epistemologia-y-filosofiade-la-ciencia/

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