Εισαγωγή στην πληροφορική Ενότητα 5: ΑΛΓΟΡΙΘΜΟΙ Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Η κατανόηση και εξοικείωση με την έννοια του αλγορίθμου και τις βασικές μεθόδους προσέγγισης βηματικής επίλυσης προβλήματος. 4
Περιεχόμενα ενότητας Η έννοια του αλγόριθμου. Αναπαράσταση αλγορίθμων. Ανακάλυψη αλγορίθμων. Δομές επανάληψης. Δομές αναδρομής. Αποδοτικότητα και ορθότητα. 5
1. Η έννοια του αλγόριθμου (1/6) Γνωστά παραδείγματα. Τι είναι Αλγόριθμος; Ορισμός. Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση μιας εργασίας. Δέχεται ως είσοδο μια λίστα δεδομένων και δημιουργεί ως έξοδο μια άλλη λίστα δεδομένων. Η αφαιρετική φύση των αλγορίθμων. 6
1. Η έννοια του αλγόριθμου (2/6) Εικόνα 1: Η έννοια του αλγόριθμου. Πηγή: BROOKSHEAR (2008). 7
1. Η έννοια του αλγόριθμου (3/6) Εικόνα 2 : Η έννοια του αλγόριθμου. Πηγή: BROOKSHEAR (2008). 8
1. Η έννοια του αλγόριθμου (4/6) Εικόνα 3: Η έννοια του αλγόριθμου. Πηγή: BROOKSHEAR (2008). 9
1. Η έννοια του αλγόριθμου (5/6) Εικόνα 4: Η έννοια του αλγόριθμου. Πηγή: BROOKSHEAR (2008). 10
1. Η έννοια του αλγόριθμου - βασικές δομές Εικόνα 5: Η έννοια του αλγόριθμου - βασικές δομές. Πηγή: BROOKSHEAR (2008). 11
1. Η έννοια του αλγόριθμου (6/6) Αλγόριθμοι: επίπεδα αφαίρεσης. Ένα πρόβλημα αποτελεί το κίνητρο για την επινόηση ενός αλγόριθμου. Ο αλγόριθμος είναι μια διαδικασία επίλυσης του προβλήματος αυτού. Συνήθως μία διαδικασία από πολλές πιθανές. Η αναπαράσταση είναι η επαρκής περιγραφή ενός αλγορίθμου για τη μετάδοσή του στο επιθυμητό κοινό. Πάντα μία περιγραφή από πολλές πιθανές. 12
2. Αναπαράσταση αλγορίθμων (1/10) Αρχέτυπα (primitives). Ένα σύνολο καλά ορισμένων δομών από το οποίο μπορεί να κατασκευαστεί μια αλγοριθμική αναπαράσταση. Αποτελείται από συντακτικό και σύμβολα. Αρχέτυπα και κανόνες συνδυάζονται για την κατασκευή γλωσσών προγραμματισμού. 13
2. Αναπαράσταση αλγορίθμων (2/10) Εικόνα 6: Αναπαράσταση αλγορίθμων. Πηγή: BROOKSHEAR (2009). 14
2. Αναπαράσταση αλγορίθμων (3/10) Εικόνα 7: Αναπαράσταση αλγορίθμων. Πηγή: BROOKSHEAR (2009). 15
2. Αναπαράσταση αλγορίθμων Διαγράμματα ροής. (4/10) Το διάγραμμα ροής αποτελεί τη σχηματική αναπαράσταση ενός αλγορίθμου. Ψευδοκώδικας. Ο ψευδοκώδικας είναι μια αναπαράσταση ενός αλγορίθμου σε φυσική γλώσσα. Ονοματοδοσία. 16
2. Αναπαράσταση αλγορίθμων (5/10) Εικόνα 8: Αναπαράσταση αλγορίθμων. Πηγή: Διδάσκων (2015). 17
2. Αναπαράσταση αλγορίθμων (6/10) Εικόνα 9: Αναπαράσταση αλγορίθμων. Πηγή: Διδάσκων (2015). 18
2. Αναπαράσταση αλγορίθμων (7/10) Μέσος Όρος Δύο Αριθμών. Είσοδος: Δύo αριθμοί. 1.Πρόσθεσε τους δύο αριθμούς. 2.Διαίρεσε το αποτέλεσμα με το 2. 3.Επέστρεψε το αποτέλεσμα του βήματος 2. Τέλος. 19
2. Αναπαράσταση αλγορίθμων (8/10) ΑξιολόγησηΒαθμολογίας. Είσοδος: Αριθμός. 1. αν (αριθμός είναι μεγαλύτερος ή ίσος με το 5) τότε: 1.1 Όρισε αξιολόγηση σε προάγεται αλλιώς. 1.2 Όρισε αξιολόγηση σε απορρίπτεται τέλος αν. 2. Επέστρεψε αξιολόγηση. Τέλος. 20
2. Αναπαράσταση αλγορίθμων (9/10) ΕύρεσηΜέγιστου. Είσοδος: Λίστα θετικών ακεραίων. 1. Όρισε Μέγιστο στο 0. 2. όσο (υπάρχουν άλλοι ακέραιοι). 2.1 αν ( ακέραιος είναι μεγαλύτερος από Μέγιστο) τότε: 2.1.1 Όρισε Μέγιστο στην τιμή του ακέραιου. τέλος αν. Τέλος όσο. 3. Επέστρεψε Μέγιστο. Τέλος. 21
2. Αναπαράσταση αλγορίθμων (10/10) Εύρεση Μέγιστου. Είσοδος: 1.000 θετικοί ακέραιοι. 1. Όρισε Μέγιστο στο 0. 2. Όρισε Μετρητή στο 0. 3. όσο (Μετρητής είναι μικρότερος από 1.000). 3.1 αν (ακέραιος είναι μεγαλύτερος από Μέγιστο) τότε: 3.1.1 Όρισε Μέγιστο στην τιμή του ακέραιου. Τέλος αν. 3.2 Αύξησε Μετρητή. Τέλος όσο. 4. Επέστρεψε Μέγιστο. Τέλος. 22
3. Ανακάλυψη Αλγορίθμων (1/6) Η τέχνη της επίλυσης προβλήματος. Οι φάσεις του Polya. Κατανόηση του προβλήματος. Κατάστρωση σχεδίου επίλυσης. Εκτέλεση σχεδίου. Αξιολόγηση της λύσης (ακρίβεια-επέκταση). 23
3. Ανακάλυψη Αλγορίθμων (2/6) Οι φάσεις του Polya (μετασχηματισμός). Κατανόηση του προβλήματος. Σχηματισμός ιδέας πιθανής αλγοριθμικής επίλυσης. Σχηματισμός του αλγορίθμου και αναπαράσταση σε γλώσσα προγραμματισμού. Αξιολόγηση της λύσης (ακρίβεια-επέκταση). 24
3. Ανακάλυψη Αλγορίθμων (3/6) Βηματική Εκλέπτυνση. Είναι η τεχνική που ακολουθούμε όταν δεν στοχεύουμε να διεκπεραιώσουμε μια ολόκληρη εργασία (σε όλες τις λεπτομέρειες) με την πρώτη προσέγγιση. Είναι μια αναλυτική μεθοδολογία που η οποία προχωράει από το γενικό στο ειδικό. 25
3. Ανακάλυψη Αλγορίθμων (4/6) Το παράδειγμα ηλικιών των τριών παιδιών: 1. Γινόμενο 36. 2. Άθροισμα γνωστό. 3. Το μεγαλύτερο παίζει πιάνο. Ποιος συνδυασμός απαιτεί το τρίτο δεδομένο; 26
3. Ανακάλυψη Αλγορίθμων (5/6) Πριν οι Α, Β, Γ και Δ διαγωνισθούν σε μια κούρσα ταχύτητας, έκαναν τις ακόλουθες προβλέψεις: Ο Α προέβλεψε ότι θα νικούσε ο Β. Ο Β προέβλεψε ότι ο Δ θα ήταν τελευταίος. Ο Γ προέβλεψε ότι ο Α θα ήταν τρίτος. Ο Δ προέβλεψε ότι η πρόβλεψη του Α θα ήταν σωστή. Μόνο μια από τις προβλέψεις αυτές ήταν σωστή και αυτή έγινε από τον νικητή. Με ποια σειρά τερμάτισαν την κούρσα οι Α, Β, Γ, και Δ. 27
3. Ανακάλυψη Αλγορίθμων (6/6) Το πρώτο βήμα Χωρισμός του προβλήματος σε επιμέρους. Top-down -> εξειδίκευση. Bottom-up -> γενίκευση. Το παράδειγμα του ποταμού. 28
4. Δομές επανάληψης (1/13) Βασικοί Αλγόριθμοι. 1. Άθροιση. 2. Γινόμενο. 3. Ελάχιστο και Μέγιστο. 4. Ταξινόμηση. 5. Αναζήτηση. 29
4. Δομές επανάληψης (2/13) Εικόνα 10: Δομές επανάληψης. Πηγή: Διδάσκων (2015). 30
Εικόνα: Δομές επανάληψης Εικόνα 11: Δομές επανάληψης. Πηγή: Διδάσκων (2015). 31
4. Δομές επανάληψης (4/13) Η εύρεση του ελάχιστου από μια λίστα αριθμών είναι παρόμοια με την εύρεση μεγίστου που παρουσιάστηκε πριν, με δύο μικρές διαφορές: Πρώτον, χρησιμοποιούμε μια δομή απόφασης που να βρίσκει τον μικρότερο από δύο αριθμούς. Δεύτερον, χρησιμοποιούμε ως αρχική τιμή έναν πολύ μεγάλο αριθμό αντί για έναν πολύ μικρό. 32
4. Δομές επανάληψης (5/13) Ταξινομήσεις. Επιλογή. Φυσαλίδα. Παρεμβολή. 33
4. Δομές επανάληψης (6/13) Εικόνα 12: Δομές επανάληψης. Πηγή: BROOKSHEAR (2008). 34
4. Δομές επανάληψης φυσαλίδα Εικόνα 13: Δομές επανάληψης φυσαλίδα. Πηγή: BROOKSHEAR (2008). 35
4. Δομές επανάληψης παρεμβολή Εικόνα 14: Δομές επανάληψης παρεμβολή. Πηγή: BROOKSHEAR (2008). 36
4. Δομές επανάληψης (7/13) Αναζήτηση σειριακή ψευδοκώδικας. 37
4. Δομές επανάληψης (8/13) Αναζήτηση δυαδική. Χρειάζεται αναδρομική διαδικασία. Σειριακή αναζήτηση. χρησιμοποιείται για τις μη ταξινομημένες λίστες. Δυαδική αναζήτηση. χρησιμοποιείται για τις ταξινομημένες λίστες. 38
5. Δομές αναδρομής (9/13) Ένας επαναληπτικός αλγόριθμος χρησιμοποιεί μόνο τις παραμέτρους και όχι τον ίδιο τον εαυτό του. Ένας αναδρομικός αλγόριθμος χρησιμοποιεί τον ίδιο τον εαυτό του. Αναδρομή (recursion) ονομάζεται η διαδικασία κατά την οποία ένας αλγόριθμος καλεί τον εαυτό του. 39
5. Δομές αναδρομής (10/13) Εικόνα 15: Δομές αναδρομής. Πηγή: Διδάσκων (2015). 40
5. Δομές αναδρομής (11/13) Εικόνα 16: Δομές αναδρομής. Πηγή: BROOKSHEAR (2008). 41
5. Δομές αναδρομής (12/13) 42
5. Δομές αναδρομής (13/13) Εικόνα 17: Δομές αναδρομής. Πηγή: BROOKSHEAR (2008). 43
6. Αποδοτικότητα και ορθότητα (1/4) Μέτρηση επαναλήψεων. Χειρότερη καλύτερη περίπτωση. Γραμμική, εκθετική, λογαριθμική απόδοση. Επαλήθευση λογισμικού. 44
6. Αποδοτικότητα και ορθότητα Επαλήθευση λογισμικού. (2/4) Ένας ταξιδιώτης με μια χρυσή αλυσίδα επτά κρίκων πρέπει να μείνει σε ένα ξενοδοχείο για 7 νύκτες. Το ενοίκιο μιας νύχτας είναι ένας κρίκος και πρέπει να το πληρώνει κάθε πρωί προκαταβολικά. Ποιος ο μικρότερος αριθμός κρίκων που πρέπει να κοπούν; 45
6. Αποδοτικότητα και ορθότητα (3/4) Εικόνα 18: Αποδοτικότητα και ορθότητα. Πηγή: BROOKSHEAR (2009). 46
6. Αποδοτικότητα και ορθότητα (4/4) Εικόνα 19: Αποδοτικότητα και ορθότητα. Πηγή: BROOKSHEAR (2009). 47
Τέλος Ενότητας
Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Δημοσθένης Πασχαλίδης. «ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ». Έκδοση: 1.0. Θεσσαλονίκη 2015. 49
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 50
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 51
Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες. http://www.geekstogo.com/forum/uploads/monthly_04_ 2009/post-280673-1240224864.jpg. http://blog.photoshopit.com/wp-content/uploads/blog- Image-2.jpg. http://blog.photoshopit.com/wp-content/uploads/blog- Image-2.jpg. http://s.hswstatic.com/gif/bytes-ch.jpg. 52