Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Προχωρημένη επιμόρφωση για την αξιοποίηση και εφαρμογή των Τ.Π.Ε.

στη
διδακτική πράξη

Επιμόρφωση Β2 επιπέδου ΤΠΕ


Συστάδα: Β2.4 ΠΛΗΡΟΦΟΡΙΚΗ

ΕΠΙΜΟΡΦΩΤΙΚΟ ΥΛΙΚΟ

Πληροφορική χωρίς Η.Υ.


Υπολογιστική σκέψη
Πολυπλοκότητα Αλγορίθμων

Έκδοση 1η

Ιούλιος 2022
Πράξη: ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΓΙΑ ΤΗΝ ΑΞΙΟΠΟΙΗΣΗ ΚΑΙ
ΕΦΑΡΜΟΓΗ ΤΩΝ ΨΗΦΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΤΗ ΔΙΔΑΚΤΙΚΗ
ΠΡΑΞΗ (ΕΠΙΜΟΡΦΩΣΗ Β’ ΕΠΙΠΕΔΟΥ ΤΠΕ)/ Β’ Κύκλος

Φορείς Υλοποίησης: Δικαιούχος


φορέας:

Συμπράττων
φορέας:
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

ΠΕΡΙΕΧΟΜΕΝΑ
Προοίμιο ……………………………………………………………………………………………………………………………….4
1. Προοίμιο .................................................................................................................... 4
2.1 Δυαδικό σύστημα .................................................................................................. 9
2.2 Ψηφιοποίηση και κωδικοποίηση ............................................................................... 9
2.3 Κείμενα και η κωδικοποίησή τους ............................................................................10
2.3.1 Κώδικας ASCII και UNICODE............................................................................10
2.4 Εικόνες και η κωδικοποίησή τους ............................................................................12
2.5 Ήχοι και η κωδικοποίησή τους ................................................................................13
2.6 Κρυπτογράφηση και συμπίεση ................................................................................13
2.6.1 Κρυπτογράφηση .............................................................................................13
2.6.2 Συμπίεση .......................................................................................................14
2.7 Ζωγραφίζοντας χάρτες: ένα διδακτικό σενάριο .........................................................15
2.7.1 ΤΙΤΛΟΣ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ .......................................................................15
2.7.2 ΕΚΤΙΜΩΜΕΝΗ ΔΙΑΡΚΕΙΑ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ................................................15
2.7.3 ΕΝΤΑΞΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ &
ΠΡΟΑΠΑΙΤΟΥΜΕΝΕΣ ΓΝΩΣΕΙΣ ......................................................................................15
2.7.4 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ..............................................15
2.7.5 ΣΥΝΟΠΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ .........................................15
2.7.6 ΕΠΙΣΤΗΜΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΚΑΙ ΕΝΝΟΙΟΛΟΓΙΚΗ ΑΝΑΛΥΣΗ – ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ
ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ........................................................................................16
2.7.7 ΕΠΕΚΤΑΣΕΙΣ/ΔΙΑΣΥΝΔΕΣΕΙΣ ΤΩΝ ΕΝΝΟΙΩΝ ......................................................16
2.7.8 ΠΟΛΛΑΠΛΕΣ ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ – ΠΟΛΛΑΠΛΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ ............................16
2.7.9 ΠΡΟΒΛΕΨΗ ΔΥΣΚΟΛΙΩΝ ΣΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ ............................................16
2.7.10 ΓΙΑΤΙ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ Ο Η.Υ. .......................................................................17
2.7.11 ΔΙΔΑΚΤΙΚΟΣ ΘΟΡΥΒΟΣ ...................................................................................17
2.7.12 ΧΡΗΣΗ ΕΞΩΤΕΡΙΚΩΝ ΠΗΓΩΝ ...........................................................................17
2.7.13 ΥΠΟΚΕΙΜΕΝΗ ΘΕΩΡΙΑ ΜΑΘΗΣΗΣ .....................................................................17
2.7.14 ΕΠΙΣΗΜΑΝΣΗ ΜΙΚΡΟΜΕΤΑΒΟΛΩΝ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΚΑΙ ΣΤΟ
ΝΟΗΜΑ ΤΩΝ ΕΝΝΟΙΩΝ ...............................................................................................17
2.7.15 ΔΙΔΑΚΤΙΚΟ ΣΥΜΒΟΛΑΙΟ .................................................................................17
2.7.16 ΟΡΓΑΝΩΣΗ ΤΑΞΗΣ – ΕΦΙΚΤΟΤΗΤΑ ΣΧΕΔΙΑΣΗΣ ..................................................17
2.7.17 ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΤΩΝ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ – ΑΞΙΟΛΟΓΗΣΗ......................17
2.7.18 ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ ...........................................................................................18
2.7.19 Bιβλιογραφία – Δικτυογραφία – πρόσθετοι ψηφιακοί πόροι ..................................24
3. Υπολογιστική σκέψη – Computational Thinking ...............................................................24
4. Εισαγωγή στην πολυπλοκότητα αλγορίθμων ...................................................................27
4.1 Πολυπλοκότητα αλγορίθμων ..................................................................................27
4.2 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ............................................................................................27
4.3 ΣΥΝΟΠΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ...............................................27
4.4 Πολυπλοκότητα με συγκεκριμένα παραδείγματα........................................................28
4.4.1 Εύρεση Μεγίστου Στοιχείου σε Πίνακα ...............................................................28
4.4.2 Ανάλυση χειρότερης περίπτωσης ......................................................................29

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 2 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
4.4.3 Ασυμπτωτική συμπεριφορά ..............................................................................30
4.5 ΕΠΙΣΤΗΜΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΚΑΙ ΕΝΝΟΙΟΛΟΓΙΚΗ ΑΝΑΛΥΣΗ – ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ ΤΟΥ
ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ..................................................................................................32
4.6 Προβλήματα Βελτιστοποίησης.................................................................................32
4.7 Το πρόβλημα του περιοδεύοντος πωλητή .................................................................33
4.8 ΕΠΕΚΤΑΣΕΙΣ/ΔΙΑΣΥΝΔΕΣΕΙΣ ΤΩΝ ΕΝΝΟΙΩΝ ............................................................34
4.9 ΠΟΛΛΑΠΛΕΣ ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ – ΠΟΛΛΑΠΛΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ ...................................36
4.10 ΠΡΟΒΛΕΨΗ ΔΥΣΚΟΛΙΩΝ ΣΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ ..................................................38
4.11 ΧΡΗΣΗ ΕΞΩΤΕΡΙΚΩΝ ΠΗΓΩΝ .................................................................................38
4.11.1 ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΤΩΝ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ – ΑΞΙΟΛΟΓΗΣΗ......................38
4.12 ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ .................................................................................................39

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 3 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

1. Προοίμιο
Το παρόν επιμορφωτικό υλικό δημιουργήθηκε για να καλύψει τις ανάγκες της «Προχωρημένης
Επιμόρφωσης για την Αξιοποίηση και Εφαρμογή των Τ.Π.Ε. στη διδακτική πράξη» (Επιμόρφωση Β2
επιπέδου ΤΠΕ) που υλοποιείται σε Κέντρα Στήριξης Επιμόρφωσης (Κ.Σ.Ε.) σε όλη την Ελλάδα, για
εκπαιδευτικούς όλων των κλάδων και ειδικοτήτων. Η αρχική ανάπτυξη και στη συνέχεια, η
επικαιροποίηση και ο εμπλουτισμός του επιμορφωτικού υλικού έγινε αντίστοιχα στο πλαίσιο των
πράξεων «Επιμόρφωση Εκπαιδευτικών για την Αξιοποίηση και Εφαρμογή των Ψηφιακών
Τεχνολογιών στην Διδακτική Πράξη (Επιμόρφωση Β’ επιπέδου Τ.Π.Ε.)» και «Επιμόρφωση
Εκπαιδευτικών για την Αξιοποίηση και Εφαρμογή των Ψηφιακών Τεχνολογιών στην Διδακτική
Πράξη (Επιμόρφωση Β’ επιπέδου Τ.Π.Ε.)/ Β’ κύκλος», http://e-pimorfosi.cti.gr, του Επιχειρησιακού
Προγράμματος «Ανάπτυξη Ανθρώπινου Δυναμικού – Εκπαίδευση και Δια Βίου Μάθηση», με τη
συγχρηματοδότηση της Ευρωπαϊκής Ένωσης (Ευρωπαϊκό Κοινωνικό Ταμείο, ΕΣΠΑ 2014-2020) και
του Ελληνικού Δημοσίου.
Η επιμόρφωση Β2 επιπέδου Τ.Π.Ε. υλοποιείται σε ομάδες ενός κλάδου ή συναφών κλάδων
εκπαιδευτικών, δηλαδή σε 13 «συστάδες» ως εξής: Β2.1 «Φιλολογικά», Β2.2 «Φυσικές
Επιστήμες», Β2.3 «Μαθηματικά», Β2.4 «Πληροφορική», Β2.5 «Πρωτοβάθμια Εκπαίδευση -
Δάσκαλοι», Β2.6 Πρωτοβάθμια Εκπαίδευση - Νηπιαγωγοί», Β2.7 «Ξένες Γλώσσες», Β2.8 «Καλές
Τέχνες», Β2.9 «Φυσική Αγωγή και Υγεία», Β2.10 «Εκπαιδευτικοί Μηχανικοί», Β2.11 «Οικονομία,
Διοίκηση και Κοινωνικές Επιστήμες», Β2.12 «Επαγγέλματα Γης» και Β2.13 «Ειδική Αγωγή».
Το επιμορφωτικό υλικό Β2 επιπέδου Τ.Π.Ε. είναι διαφορετικό για κάθε συστάδα και περιλαμβάνει
υλικό μελέτης-αναφοράς και εκπαιδευτικές δραστηριότητες, ενώ εν γένει συνοδεύεται από
υποστηρικτικό και άλλο πρόσθετο υλικό (οδηγίες προς τους επιμορφωτές και προς τους
επιμορφούμενους, αρχεία παρουσιάσεων κ.ά.). Διατίθεται και αξιοποιείται στο πλαίσιο της
επιμόρφωσης με τη μορφή «μαθήματος»/ e-course (ένα ανά συστάδα), μέσω της πλατφόρμας
ηλεκτρονικής μάθησης του έργου, η οποία βασίζεται στο ελεύθερο λογισμικό ανοικτού κώδικα
moodle.
Συντάχθηκε υπό την επίβλεψη και στο πλαίσιο των αρμοδιοτήτων του ειδικού Επιστημονικού
Συμβουλίου1 του Ι.Τ.Υ.Ε. – «Διόφαντος», το οποίο έχει συσταθεί με την υπ’ αριθ.
Π568/28.07.2011 Απόφαση, και στην παρούσα Πράξη λειτουργεί ως εξειδικευμένο επιστημονικό
συμβουλευτικό όργανο του Ι.Τ.Υ.Ε. - «Διόφαντος», δικαιούχου φορέα υλοποίησης της Πράξης.
Συμπληρωματικά και για την κάλυψη των απαιτήσεων των «νέο»-εισερχόμενων στην επιμόρφωση
κλάδων / ειδικοτήτων εκπαιδευτικών (βλ. παραπάνω, συστάδες Β2.7 έως Β2.13), στο πλαίσιο της
παρούσας Πράξης λειτουργεί ευρύτερη Επιστημονική Επιτροπή, η οποία αποτελείται από τους
παρακάτω Καθηγητές, επιστημονικούς συνεργάτες του δικαιούχου (Ι.Τ.Υ.Ε. – «Διόφαντος»),
καθώς και του συμπράττοντα φορέα υλοποίησης της Πράξης (Ι.Ε.Π.):
 Χαράλαμπο Ζαγούρα, Πανεπιστήμιο Πατρών, ο οποίος έχει την ευθύνη συντονισμού των
εργασιών της Επιτροπής

1
Το Επιστημονικό Συμβούλιο του Ι.Τ.Υ.Ε.-«Διόφαντος» για την επιμόρφωση, αποτελείται από τους Καθηγητές: i)
Χαράλαμπο Ζαγούρα, Πανεπιστήμιο Πατρών, ο οποίος έχει την ευθύνη συντονισμού των εργασιών του Συμβουλίου, ii)
Βασίλειο Δαγδιλέλη, Πανεπιστήμιο Μακεδονίας, iii) Βασίλειο Κόμη, Πανεπιστήμιο Πατρών, iv) Δημήτριο Κουτσογιάννη,
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, v) Πολυχρόνη Κυνηγό, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών και vi)
Δημήτριο Ψύλλο, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 4 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
 Παναγιώτη Αντωνίου, Δημοκρίτειο Πανεπιστήμιο Θράκης, ως Επιστημονικά Υπεύθυνο για τη
Συστάδα «Φυσική Αγωγή και Υγεία»
 Βασίλειο Δαγδιλέλη, Πανεπιστήμιο Μακεδονίας, ως Επιστημονικά Υπεύθυνο για τη συστάδα
«Πληροφορική»
 Χαράλαμπο Καραγιαννίδη, Πανεπιστήμιο Θεσσαλίας, ως Επιστημονικά Υπεύθυνο για τη
συστάδα «Ειδική Αγωγή»
 Βασίλειο Κόμη, Πανεπιστήμιο Πατρών, ως Επιστημονικά Υπεύθυνο για τις συστάδες
«Πρωτοβάθμια Εκπαίδευση – Δάσκαλοι» και «Πρωτοβάθμια Εκπαίδευση – Νηπιαγωγοί»
 Δημήτριο Κουτσογιάννη, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, ως Επιστημονικά
Υπεύθυνο για τη συστάδα «Φιλολογικά»
 Πολυχρόνη Κυνηγό, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά
Υπεύθυνο για τη συστάδα «Μαθηματικά»
 Βασιλική Μητσικοπούλου, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά
Υπεύθυνη για τη συστάδα «Ξένες Γλώσσες»
 Σπύρο Παπαδόπουλο, Πανεπιστήμιο Θεσσαλίας, ως Επιστημονικά Υπεύθυνο για τη συστάδα
«Καλές Τέχνες»
 Κυπαρισσία Παπανικολάου, Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης
ως Επιστημονικά Υπεύθυνη για τη συστάδα «Εκπαιδευτικοί Μηχανικοί»
 Παναγιώτη Σιμιτζή, Γεωπονικό Πανεπιστήμιο Αθηνών ως Επιστημονικά Υπεύθυνο για τη
συστάδα «Επαγγέλματα Γης»
 Ιωάννη Τσίρμπα, Εθνικό Καποδιστριακό Πανεπιστήμιο Αθηνών, ως Επιστημονικά Υπεύθυνο
για τη συστάδα «Οικονομία, Διοίκηση και Κοινωνικές Επιστήμες»
 Δημήτριο Ψύλλο, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Επιστημονικά Υπεύθυνο για τη
συστάδα «Φυσικές Επιστήμες»
Ειδικότερα, το Επιμορφωτικό Υλικό Β2 επιπέδου ΤΠΕ της Συστάδας Β2.4: Πληροφορικής.
δημιουργήθηκε από συγγραφική ομάδα με επιστημονικώς υπεύθυνο τον κ. Βασίλειο Δαγδιλέλη αφ.
Καθηγητή του Πανεπιστημίου Μακεδονίας και συμμετέχοντες τους:
 Αλεξούδα Γεωργία, Πληροφορικό
 Λεύκο Ιωάννη, μέλος Ε.ΔΙ.Π. Πανεπιστημίου Μακεδονίας
 Μαλλιαράκης Χρήστο, Πληροφορικό
 Μαυροχαλυβίδη Γεώργιο
 Ξινόγαλος Στυλιανός, μέλος ΔΕΠ Πανεπιστημίου Μακεδονίας
 Παπαδάκη Σταμάτη, Πληροφορικό

Στο παρόν υλικό έχει κατάλληλα ενσωματωθεί ένα μικρό μέρος κοινού υλικού για όλες τις
συστάδες (Γενικό Μέρος2), που αναπτύχθηκε για την Εκπαίδευση Επιμορφωτών Β’ επιπέδου Τ.Π.Ε.

2
Στην αρχική του μορφή το Γενικό Μέρος του Επιμορφωτικού υλικού δημιουργήθηκε από
συγγραφική ομάδα, με επικεφαλής τον Βασίλη Δαγδιλέλη, Καθηγητή του Πανεπιστημίου
Μακεδονίας και συμμετέχοντες τους:
 Καψάλη Αχιλλέα, πρώην Καθηγητή στο Πανεπιστήμιο Μακεδονίας.
 Παπαδόπουλο Ιωάννη, Επίκουρο Καθηγητή στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης.
 Φαχαντίδη Νικόλαο, Αναπληρωτή Καθηγητή στο Πανεπιστήμιο Μακεδονίας.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 5 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
στο πλαίσιο της παραπάνω αναφερόμενης πράξης «Επιμόρφωση Εκπαιδευτικών για την Αξιοποίηση
και Εφαρμογή των Ψηφιακών Τεχνολογιών στην Διδακτική Πράξη (Επιμόρφωση Β’ επιπέδου
Τ.Π.Ε.)».
Το επιμορφωτικό υλικό Β2 επιπέδου Τ.Π.Ε., αποτελεί ιδιοκτησία του ΥΠΑΙΘ και καλύπτεται από
την ισχύουσα νομοθεσία για την προστασία των πνευματικών δικαιωμάτων των δημιουργών.

 Tαμπούρη Ευθύμιο, Καθηγητή στο Πανεπιστήμιο Μακεδονίας


Στην παρούσα έκδοση του Επιμορφωτικού Υλικού Γενικού Μέρους έχουν συμβάλει τα μέλη του
Επιστημονικού Συμβουλίου Βασίλειος Δαγδιλέλης, Βασίλειος Κόμης, Δημήτριος Κουτσογιάννης,
Πολυχρόνης Κυνηγός, Δημήτριος Ψύλλος, καθώς και οι εξής:
 Σταυρούλα Αντωνοπούλου, υποψήφια διδάκτωρ Εφαρμοσμένης Γλωσσολογίας, ΑΠΘ
 Μαριάνθη Γριζιώτη, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
 Ελισάβετ Καλογερία, εκπαιδευτικός ΠΕ03,
 Ελένη Κουστριάβα, Καθηγήτρια στο Πανεπιστήμιο Μακεδονίας,
 Χρήστος Μάλλιαρης, εκπαιδευτικός ΠΕ03,
 Μάριος Ξένος, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
 Γεώργιος Πανσεληνάς, εκπαιδευτικός ΠΕ86 (ΠΕ19/20),
 Γεώργιος Σκουντζής, εκπαιδευτικός ΠΕ70,
 Μάριος Σπάθης, εκπαιδευτικός ΠΕ03,
 Αθανάσιος Ταραμόπουλος, εκπαιδευτικός ΠΕ04
Κατά τη δημιουργία του υλικού αυτού, χρησιμοποιήθηκαν πόροι από το αντίστοιχο εκπαιδευτικό
και επιμορφωτικό υλικό της εκπαίδευσης των επιμορφωτών Β’ επιπέδου Τ.Π.Ε. στα ΠΑ.Κ.Ε. και
εκπαιδευτικών στα Κέντρα Στήριξης της Επιμόρφωσης (Κ.Σ.Ε.) που αναπτύχθηκε στο πλαίσιο
προηγούμενων σχετικών έργων επιμόρφωσης Β’ επιπέδου ΤΠΕ*. Επομένως, στη δημιουργία του
υλικού αυτού συνέβαλαν έμμεσα και όσοι είχαν συνεργαστεί στη δημιουργία του υλικού για την
εκπαίδευση των επιμορφωτών στα ΠΑ.Κ.Ε. και την επιμόρφωση των εκπαιδευτικών στα Κ.Σ.Ε. στο
πλαίσιο των έργων αυτών και οι οποίοι αναφέρονται αναλυτικά στα αντίστοιχα κείμενα
επιμορφωτικού υλικού που δημοσιεύονται στους αντίστοιχους κόμβους ενημέρωσης*.
* Πράξη: «Επιμόρφωση Εκπαιδευτικών στη χρήση και αξιοποίηση των Τεχνολογιών Πληροφορίας και Επικοινωνιών (ΤΠΕ)
στην εκπαιδευτική διδακτική διαδικασία", ΕΠΕΑΕΚ ΙΙ, Γ' ΚΠΣ, http://b-epipedo.cti.gr
Πράξεις: «Επιμόρφωση Εκπαιδευτικών για την αξιοποίηση και εφαρμογή των Τ.Π.Ε. στη Διδακτική πράξη», Επιχειρησιακό
Πρόγραμμα «Εκπαίδευση και Δια Βίου Μάθηση», ΕΣΠΑ 2007-2013, http://b-epipedo2.cti.gr

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 6 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

2. Πληροφορική χωρίς Η.Υ. - csunplugged


Στην παρούσα ενότητα παρουσιάζονται μια σειρά από δραστηριότητες οι οποίες τα τελευταία
χρόνια έχουν βρεθεί στο προσκήνιο των συζητήσεων για τη διδασκαλία της Πληροφορικής.
Πρόκειται για δραστηριότητες που προωθήθηκαν αρχικά από το site (και το αντίστοιχο βιβλίο)
csunplugged (http://www.csunplugged.com, τελευταία επίσκεψη Αύγουστο 2019) και οι οποίες
έχουν το κοινό χαρακτηριστικό ότι, παρόλο που έχουν καθαρά πληροφορικό χαρακτήρα, ωστόσο
δεν απαιτούν Η.Υ. ή άλλα ψηφιακά μέσα για την υλοποίησή τους – τουλάχιστον όχι με το συνήθη
τρόπο. Πολλές παρόμοιες ιδέες υπάρχουν στο site http://www.cs4fn.org (Computer Science For
Fun, τελευταία επίσκεψη Αύγουστο 2019), αλλά και σε άλλα sites και portals. Η ιδέα αποδείχθηκε
πολύ δημοφιλής, τόσο που η ονομασία csunplugged ενώ αρχικά σηματοδοτούσε τον σχετικό
ιστότοπο, σήμερα σημαίνει γενικά όλες τις δραστηριότητες που σχετίζονται με τη διδασκαλία
εννοιών της Πληροφορικής και ιδίως αλγοριθμικής και προγραμματισμού, χωρίς όμως
προγραμματισμό Η.Υ. Πίσω από την κίνηση αυτή φαίνεται να υπάρχει ένα πολλαπλό κίνητρο:
1. Η συνεχής και αδιάλειπτη χρήση του Η.Υ. στη διδασκαλία της Πληροφορικής προτρέπει
τους μαθητές συχνά σε ένα είδος «μαθησιακού ακτιβισμού», δηλαδή σε μια συνεχή
αλληλεπίδραση με το σύστημα, χωρίς να δίνει την ευκαιρία για βαθύτερη σκέψη και
κατανόηση των νέων εννοιών και μεθόδων που διδάσκονται. Αυτό, μεταξύ άλλων,
συμβάλλει και σε μια θεώρηση της Πληροφορικής ως μιας σειράς δεξιοτήτων στη χρήση
των εφαρμογών της.
2. Η Επιστήμη αναφοράς είναι η Πληροφορική και ως επιστήμη έχει έννοιες, θεωρίες, τεχνικές,
οι οποίες δεν εξαρτώνται από τους Η.Υ. με άμεσο τρόπο. Στις προτεινόμενες
δραστηριότητες, για παράδειγμα στο csunplugged, ο Η.Υ. απουσιάζει και το βάρος δίνεται
στις ίδιες τις δραστηριότητες και μεθόδους και στον αναστοχασμό των μαθητών πάνω στις
ίδιες τις δράσεις τους.
3. Οι μαθητές μπορούν πιο εύκολα και σχεδόν με βιωματικό τρόπο να κατανοήσουν μερικές
βασικές έννοιες, τεχνικές και μεθόδους της Πληροφορικής.
4.
Ωστόσο, αν και η υλοποίηση των πιο πολλών δεν απαιτεί τη χρήση κάποιου Η.Υ. ή γενικότερα
ψηφιακού συστήματος, για τις περισσότερες από τις ιδέες αυτές υπάρχει κάποιο «ισοδύναμο
λογισμικό», δηλαδή κάποια δημιουργία με λογισμικό που τις υποστηρίζει. Η χρήση των Τ.Π.Ε. στις
περιπτώσεις αυτές υποστηρίζει με ουσιαστικό τρόπο τις ιδέες ή τις έννοιες που πρόκειται να
διδαχθούν.
Για να γίνει κατανοητή αυτή η προσέγγιση, δίνουμε ένα παράδειγμα:
--------------------------------------------------------------------------------------------------
Τακτοποιώντας τις κρέπες (από ένα τεύχος «αλγοριθμικής» που υπάρχει στο πρόσθετο ψηφιακό
υλικό)
Κάποιος που φτιάχνει κρέπες και τις πουλάει, στο τέλος κάθε μέρας έχει έναν σωρό από κρέπες
πάνω στον πάγκο του ανακατεμένες. Έχει μικρές κρέπες, μεγαλύτερες κ.λπ. στο σωρό, άλλες με
την «καμμένη» πλευρά προς τα κάτω, άλλες με την «καμμένη» πλευρά προς τα επάνω (υποτίθεται
ότι μια πλευρά της κρέπας είναι πιο ψημένη από την άλλη).
Πριν κλείσει το κατάστημα του ωστόσο κάθε βράδυ, θέλει να τις τακτοποιήσει: να τις βάλει στο
σωρό έτσι ώστε όλες να είναι με την «καμμένη» πλευρά προς τα πάνω και να είναι τοποθετημένες
κατά φθίνουσα σειρά μεγέθους: κάτω-κάτω να είναι η πιο μεγάλη, από πάνω της η αμέσως
μικρότερη κ.λπ.
Έτσι στο τέλος της διαδικασίας θα τις έχει όλες με τη σωστή «φορά» και σε σχήμα «πυραμίδας». Η
παρακάτω εικόνα δίνει μια ιδέα μιας αρχικής και μιας τελικής κατάστασης:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 7 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Υποτίθεται ότι η συνεχής γραμμή δείχνει την «καμένη» πλευρά και η στικτή την «ωμή»
Η μόνη πράξη που είναι επιτρεπτή είναι το αναποδογύρισμα ενός μέρους του σωρού επί τόπου: ο
«κρεπιέρης» βάζει τη σπάτουλα ανάμεσα σε δυο κρέπες (ή ανάμεσα στην πρώτη κρέπα και τον
πάγκο) και αναποδογυρίζει τις κρέπες που είναι πάνω από τη σπάτουλα. Η παρακάτω εικόνα είναι
ενδεικτική:

Ο «κρεπιέρης» έβαλε τη σπάτουλα εκεί που τελειώνουν οι κόκκινες κρέπες και αρχίζουν οι μαύρες
και τις αναποδογύρισε επί τόπου.
Μπορείτε να βρείτε μια μέθοδο (έναν αλγόριθμο) ώστε ο «κρεπιέρης» να μπορεί κάθε βράδυ να
τακτοποιεί όλες τις κρέπες με τον τρόπο που περιγράψαμε;
Η απάντηση (μια απάντηση...) είναι η εξής:
1. Βρες τη μεγαλύτερη κρέπα και με ένα αναποδογύρισμα φέρτην στην κορυφή (εάν δεν είναι
ήδη – κατά τύχη)
2. Αν η μεγαλύτερη κρέπα στην κορυφή δεν είναι με την ανάποδη φορά (η «καμένη» πλευρά
προς τα πάνω) αναποδογύρισε την ώστε να τοποθετηθεί με την «καμένη» πλευρά προς τα
πάνω.
3. Αναποδογύρισε ολόκληρο το σωρό. Τώρα η μεγαλύτερη κρέπα είναι στην τελική της θέση
και μάλιστα με τη σωστή φορά.
4. Επανάλαβε τη διαδικασία για τις κρέπες που δεν είναι στην τελική τους θέση, μέχρις ότου
τακτοποιηθούν όλες.
Το μικρό αυτό παράδειγμα είναι ενδεικτικό του τρόπου με τον οποίο χωρίς Η.Υ. μπορούν να
διδαχθούν ορισμένες βασικές έννοιες της Πληροφορικής και μάλιστα βιωματικά και με παιγνιώδη
τρόπο (και ο αλγόριθμος έχει μάλιστα δομή τύπου repeat…until). Να σημειωθεί και η έννοια του
σωρού (stack), της ακολουθίας που οδηγεί σε λύση (αλγόριθμος) κ.ά. εισάγονται με έναν τρόπο
σχεδόν φυσικό και παιγνιώδη.
Στην τάξη, μπορούν να χρησιμοποιηθούν αντικείμενα (π.χ. κατάλληλα διαμορφωμένα χαρτόνια ή
κομμάτια από λεπτό νοβοπάν ή οποιοδήποτε άλλο ανάλογο υλικό). Αν πρόκειται για μεγαλύτερους
μαθητές μπορεί όλη διαδικασία να γίνει νοερά
Ακόμη, θα μπορούσαν να τεθούν και ερωτήματα του εξής είδους: στην παραπάνω μέθοδο
(αλγόριθμο) υποθέσαμε πως οι κρέπες είναι όλες άνισες μεταξύ τους. Τι αλλάζει (αν αλλάζει) εαν
υπάρχουν και κρέπες του ίδιυ μεγέθους. Και μια ακόμη (φαινομενικά ανόητη): τι θα άλλαζε στη
μέθοδο αν αντί για κρέπες είχαμε πίτσες; Δηλαδή τελικά ο αλγόριθμος ίναι η ουσία και όχι αυτά
καθαυτά τα «αντικείμενα», επί των οποίων εφαρμόζεται.
-----------------------------------------------------------------------------
Επειδή το πλήθος των σχετικών πεδίων και δραστηριοτήτων είναι μεγάλο, στο Υλικό Αναφοράς
παρουσιάζονται ορισμένες κατηγορίες δραστηριοτήτων csunplugged. Στις αντίστοιχες
«Δραστηριότητες» παρατίθεται ένα μεγάλο πλήθος δραστηριοτήτων από τις οποίες ο επιμορφωτής
θα επιλέξει όσες θεωρεί σημαντικές. Επίσης, στο «πρόσθετο Ψηφιακό Υλικό» υπάρχουν πολλές
αναφορές σε πρόσθετους ψηφιακούς πόρους.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 8 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

2.1 Δυαδικό σύστημα


Το δυαδικό σύστημα αποτελεί ένα από τα πεδία στα οποία υπάρχουν πολλές διδακτικές εφαρμογές
μέσα στο πλαίσιο των csunplugged.
Το θέμα της αναπαράστασης των αριθμών, της επινόησης και χρήσης των διαφόρων συστηματων
αρίθμησης είναι πολύ εκτεταμένο καθώς συνδέεται στενά με την ανάπτυξη του πολιτισμού, του
εμπορίου και των οικονομικών δραστηριοτήτων γενικότερα και φυσικά με την ανάπτυξη των
επιστημών και ειδικότερα των Μαθηματικών.
Είναι γνωστό ότι οι πολιτισμοί από τους πολύ αρχαίους χρόνους επινόησαν διάφορα συστήματα
αρίθμησης, άλλα λιγότερο και άλλα περισσότερο αποτελεσματικά.
Στοιχεία της ιστορίας των αριθμών και των συστημάτων αρίθμησης μπορούν να εντοπιστούν στο
Διαδίκτυο, για παράδειγμα στο http://www.tmth.gr/home/61-mathematics/834-arithmitika-
systimata-kai-politismoi καθώς και στη Wikipedia:

https://el.wikipedia.org/wiki/%CE%98%CE%B5%CF%83%CE%B9%CE%B1%CE%BA%CF%8C_
%CF%83%CF%8D%CF%83%CF%84%CE%B7%CE%BC%CE%B1

Η ιστορία των συστημάτων αρίθμησης προσφέρει πολλά στοιχεία κατάλληλα για διδακτική
εκμετάλλευση: για παράδειγμα, τα συστήματα των αρχαίων Ελλήνων (α,β,γ,δ,...) και των Ρωμαίων
(I, II, III, IV,…) είναι ακατάλληλα για εκτέλεση πράξεων, ενώ το παρόν θεσιακό σύστημα είναι
εξαιρετικό για το σκοπό αυτό. Τα συγκεκριμένα ψηφία 0,1,2,...,9 επινοήθηκαν από τους Άραβες (οι
οποίοι, ενδεχομένως, τα κληρονόμησαν από τους Ινδούς). Ιδιαίτερη αναφορά γίνεται στο «0»,
στην ιδέα δηλαδή ενός ιδιαίτερου συμβόλου που αναπαριστά το «τίποτε» (η Wikipedia αναφέρει
ότι το σύμβολο «0» ενδεχομένως προέρχεται από την αρχαία ελληνική λέξη «ουδέν»). Αυτή η
«καθυστέρηση» στην επινόηση του συμβόλου του μηδενός είναι ενδεικτική της τάσης, επί πολλούς
αιώνες οι αριθμοί να συνδέονται άμεσα με οικονομικές δραστηριότητες και όχι ως σύνολα με
συγκεκριμένες ιδιότητες. Σε αυτή τη λογική το «0» είναι περιττό (μπορώ να πω «δεν έχω κανένα
μήλο», αντι για «έχω μηδέν μήλα»). Κάτι ανάλογο ισχύει και για τους αρνητικούς αριθμούς (που
εισήχθησαν στα Μαθηματικά τον 12ο αιώνα).
Μέσα στο πλαίσιο αυτό και δεδομένης της μεγάλης εξοικείωσης, του αυτοματισμού, των μαθητών
με το δεκαδικό σύστημα οι μαθητές έχουν δυσκολίες να κατανοήσουν τη λειτουργία (αλλά και τη
χρησιμότητα) της αναπαράστασης των δεκαδικών αριθμών με βάση τις δυνάμεις του δέκα, του δυο
κ.λπ.
Οι σχετικές δρστηριότητες αποσκοπούν στην κατανόηση των εννοιών αυτών από τους μαθητές.

2.2 Ψηφιοποίηση και κωδικοποίηση


Η Πληροφορική θα μπορούσε να οριστεί ως η επιστήμη η οποία ασχολείται με την αποθήκευση,
επεξεργασία, διάδοση και χρήση της πληροφορίας. Είναι ίσως απαραίτητη μια διάκριση ανάμεσα
στην πληροφορία και τα δεδομένα. Τα δεδομένα, αποτελούν σύνολα από μηνύματα,
κωδικοποιημένα ή όχι. Όταν τα δεδομένα οργανωθούν σε λογικές ενότητες, σύμφωνα με κάποια
κριτήρια, τότε αυτά αποτελούν πληροφορίες.
Πιο συγκεκριμένα, το σχολικό βιβλίο (τουλάχιστον τα Βασικά Θέματα Πληροφορικής , Δ Λιάχνη, Σ
Μαντά κ.α , 2015-16 παράγραφος 1.2) αναφέρει:
∆εδομένο είναι το σύμβολο (τα σύμβολα) μιας συγκεκριμένης έννοιας, ενός αντικειμένου, ενός
στοιχειώδους μηνύματος ή γεγονότος, κωδικοποιημένου ή όχι, το οποίο αποτελεί το ακατέργαστο
υλικό που βρίσκεται σε μια τυποποιημένη μορφή, (και του οποίου) η κατάλληλη επεξεργασία του
από τον άνθρωπο ή από αυτόματα μέσα, βοηθάει στη λήψη σωστών αποφάσεων.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 9 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
Πληροφορία Η συλλογή, η οργάνωση, ο συσχετισμός και η επεξεργασία των δεδομένων μας δίνουν
την πληροφορία. Οι πληροφορίες μας μεταδίδουν κάποια επιπρόσθετη γνώση ή μας βοηθούν να
λαμβάνουμε αποφάσεις, να λύνουμε προβλήματα και να οργανώνουμε καλύτερα τις
δραστηριότητες μας. Οι πληροφορίες που παίρνουμε από την επεξεργασία δεδομένων μπορούν να
χρησιμοποιηθούν ως νέα δεδομένα και να δώσουν ως αποτέλεσμα νέες πληροφορίες.
Οι ΗΥ γνώρισαν μεγάλη διάδοση γιατί αποτελούν αξιόπιστες και «γρήγορες» μηχανές επεξεργασίας
συμβόλων και προσφέρουν στο χρήστη νέες δυνατότητες σε σχέση με τα παραδοσιακά μέσα. Τι
εννοείται με το ότι οι ΗΥ είναι μηχανές επεξεργασίας συμβόλων; Ουσιαστικά τα στοιχεία τα οποία
δίνονται στους ΗΥ για επεξεργασία είναι - κατά κανόνα - αριθμοί και λέξεις. Και τα δυο αποτελούν
συμβολικά συστήματα. Οι ΗΥ δεν είναι νοήμονες και προφανώς δεν αντιλαμβάνονται το νόημα
τους. Τα στοιχεία αυτά με τα οποία τροφοδοτείται ο εκάστοτε ΗΥ αποτελούν δεδομένα.
Για τον ΗΥ λοιπόν, όλα τα δεδομένα δε διακρίνονται το ένα από τα άλλα: αποτελούν όλα
συμβολοσειρές, δηλαδή ακολουθίες συμβόλων χωρίς προφανές μήνυμα. Το μήνυμα, το νόημα
καλύτερα, των δεδομένων το δίνει ο άνθρωπος. Όμως τα μοναδικά σύμβολα τα οποία μπορεί ο ΗΥ
να επεξεργαστεί είναι αριθμοί (και μάλιστα, όπως θα δούμε, εκφρασμένοι στο δυαδικό σύστημα).
Άρα θα πρέπει τα δεδομένα τα οποία εισάγουμε στον ΗΥ να αντιστοιχούν με αριθμούς. Η διαδικασία
της μετατροπής αυτής μπορεί να ονομαστεί ψηφιοποίηση και ο ιδιαίτερος τρόπος με τον οποίο
αντιστοιχούνται τα στοιχεία δυο συμβολικών συστημάτων αποτελεί μια κωδικοποίηση.

2.3 Κείμενα και η κωδικοποίησή τους


Με τον όρο ψηφιοποίηση, εννοούμε τις μεθόδους που μπορούμε να χρησιμοποιήσουμε για να
αντιστοιχίσουμε σύμβολα με αριθμούς - και μάλιστα με αριθμούς εκφρασμένους στο δυαδικό
σύστημα.
Η ψηφιοποίηση χαρακτήρων χρησιμοποιεί συνήθως τους κανόνες που υπαγορεύουν οι κώδικες
ASCII, EBCIDIC, UNICODE.
Τα αριθμητικά δεδομένα κωδικοποιούνται με διάφορες τεχνικές (BCD, δυνάμεις του δύο, αριθμοί
κινητής υποδιαστολής).
Με ανάλογους τρόπους ψηφιοποιούνται οι εικόνες, οι ήχοι κλπ.

2.3.1 Κώδικας ASCII και UNICODE


Ο κώδικας ASCII ( αρχικά των λέξεων American Standard Code for Information Interchange)
χρησιμοποιεί 8 (δυαδικά ψηφία) τα οποία χρησιμοποιούνται για την κωδικοποίηση γραμμάτων κι εν
γένει αλφαριθμητικών χαρακτήρων. Αρχικά από τους χαρακτήρες χρησιμοποιήθηκαν οι 7 για την
κωδικοποίηση κι ο 8ος ως ψηφίο ελέγχου. Στη συνέχεια χρησιμοποιήθηκαν και τα 8 δυαδικά
ψηφία για την κωδικοποίηση. Έτσι στον κώδικα ASCII μπορούν να κωδικοποιηθούν 256
διαφορετικοί χαρακτήρες. Από αυτούς:
οι 0-31 είναι χαρακτήρες ελέγχου
οι 32-63 αντιστοιχούν στα ψηφία, σύμβολα στίξης και σύμβολα πράξεων
οι 64-127 στα λατινικά γράμματα (κεφαλαία και μικρά) και ειδικά σύμβολα
οι 128-255 σε λοιπούς χαρακτήρες (π.χ. ελληνικά γράμματα) και ειδικά σύμβολα
Η κωδικοποίηση ASCII αποδείχθηκε ωστόσο ανεπαρκής και γι’ αυτό αντικαταστάθηκε από
συστήματα πλέον διευρυμένα. To σημερινό standard (που είναι διεθνώς αποδεκτό) είναι το σύνολο
χαρακτήρων UNICODE. To UNICODE αποτελεί ένα πολύ προηγμένο σύστημα (υπό διαρκή
ανάπτυξη) για την κωδικοποίηση των συμβόλων εκείνων που χρησιμοποιούνται για τη γραφή. Αν
λάβει κανείς υπόψη του το γεγονός ότι όχι μόνο τα βασικά σύμβολα (για παράδειγμα γράμματα,

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 10 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ιδεογράμματα, άλλα σύμβολα…) διαφέρουν ανάμεσα σε γλώσσες, αλλά ακόμη και ο τρόπος
γραφής (για παράδειγμα η γραφή στις Αραβικές γλώσσες είναι εξ αριστερών προς τα δεξιά),
αντιλαμβάνεται εύκολα την πολυπλοκότητα του εγχειρήματος της κωδικοποίησης όλων αυτών των
συμβόλων (την αντιστοίχισή τους με αριθμούς). Το όλο εγχείρημα καθίσταται πιο πολύπλοκο
ακόμη εξαιτίας της απαίτησης για δυνατότητα επεξεργασίας κειμένων που περιέχουν πολλαπλά
συστήματα συμβόλων ταυτόχρονα (για παράδειγμα ένα κείμενο που περιλαμβάνει ταυτόχρονα
λέξεις γραμμένες στα ελληνικά, αραβικά και λατινικά). Το σύστημα UNICODE προσφέρει ακριβώς
τη δυνατότητα αναπαράστασης και διαχείρισης κειμένων γραμμένων με διαφορετικά σύμβολα. Το
UNICODE δεν αποτελεί σύστημα κωδικοποίησης, αλλά σύνολο χαρακτήρων και προσφέρει σήμερα
ένα ρεπερτόριο με περισσότερους από 130.000 χαρακτήρες, τους οποίους αναπαριστά με ένα
βασικό, αφηρημένο τρόπο, χάρτες βασικής αναπαράστασης κάθε χαρακτήρα (χωρίς να ασχολείται
με τις διαφορετικές αναπαραστάσεις του ίδιου χαρακτήρα), μια μεθοδολογία κωδικοποίησης
χαρακτήρων (που περιλαμβάνει χαρακτηριστικά όπως το αν ο χαρακτήρας είναι κεφαλαίο γράμμα
ή πεζό κλπ), οδηγίες για την αναπαράσταση των χαρακτήρων και μια σειρά από πρόσθετα
χαρακτηριστικά.

Διαφορετικές αναπαραστάσεις (γλυφές) του «α» σε ένα σύστημα χαρακτήρων

Σταδιακά το σύστημα UNICODE εξελίχθηκε σε ένα εξαιρετικά σύνθετο σύνολο κανόνων και
σχέσεων που καλύπτει ένα σημαντικό μέρος αναγκών όχι μόνο της «συνήθους» γραφής, αλλά και
ιδιαίτερα σύμβολα όπως τα Μαθηματικά, σύμβολα της Χημείας, ή ακόμη και πολιτισμών οι οποίοι
υπήρξαν στο παρελθόν, αλλά σήμερα δεν υφίστανται πλέον (ιερογλυφικά ή σφηνοειδής γραφή).
Για τη χρήση του UNICODE χρησιμοποιούνται διάφορα σχήματα κωδικοποίησης με πλέον δημοφιλή
τα UTF-8, UTF-16 και UTF-32 (UTF = Unicode Transformation Format). O λόγος για τον οποίο
χρησιμοποιούνται διαφορετικά σχήματα κωδικοποίησης είναι ότι ορισμένα από αυτά είναι πολύ
κατάλληλα για μια κατηγορία γλωσσών (όπως τα Αγγλικά-Αμερικανικά), αλλά λιγότερο κατάλληλα
για άλλες γλώσσες (όπως οι Ασιατικές). To πρώτο εξ αυτών χρησιμοποιεί συνολικά 5 bytes, ενώ το
δεύτερο 6 bytes για την κωδικοποίηση χαρακτήρων. Και τα δυο έχουν προσφέρουν πλήρη
συμβατότητα με την κωδικοποίηση ΑSCII – δηλαδή ένα κείμενο με κωδικοποίηση ASCII έχει
ακριβώς την ίδια εμφάνιση και ιδιότητες (π.χ. ταξινομικές) με το κείμενο κωδικοποιημένο με
UNICODE.
Αξιοσημείωτο είναι ότι το Unicode Concortium, μια διεθνής επιτροπή που ασχολείται με την
κωδικοποίηση στο Unicode, έχει αποφασίσει να αποδώσει έναν κωδικό και σε πολλές
συναισθεικόνες (emoticons, emojis), καθώς η χρήση τους είναι πια γενικευμένη σε όλα τα
ψηφιακά μέσα. Μπορεί κανείς να δεί τις αντιστοιχίσεις μεταξύ των διαφόρων συμβόλων και του
Unicode στην ακόλουθη διεύθυνση: http://unicode.org/emoji/charts/full-emoji-list.html
(τελευταία επίσκεψη, Ιούλιος 2022).
Η απεικόνιση του αντίστοιχου συμβόλου δεν είναι πάντοτε η ίδια: ο κωδικός για ένα χαμογελαστό
πρόσωπο θα είναι ο ίδιος σε διάφορα μέσα (για παράδειγμα σε ένα iphone και στο Gmail), αλλά
στα δυο μέσα δε θα εμφανιστεί ακριβώς το ίδιο πρόσωπο.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 11 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

2.4 Εικόνες και η κωδικοποίησή τους


Η αναπαράσταση κι η ψηφιοποίηση είναι διαδικασίες οι οποίες βρίσκουν εφαρμογές και σε πεδία
ευρύτερα από εκείνα των αριθμών και των γραμμάτων. Σε τελευταία ανάλυση μπορεί να
κωδικοποιηθεί και να ψηφιοποιηθεί οιοδήποτε μέγεθος είναι μετρήσιμο.
Όταν οι τιμές της μεταβλητής ποσότητας είναι διακριτές, τότε η ψηφιοποίησή τους είναι εύκολη.
Προκειμένου περί συνεχών μεγεθών, ακολουθείται μια τεχνική προσεγγίσεων.

Το ίδιο σύνολο πληροφοριών σε μορφή αναλογική, διακριτή και ψηφιακή

Με ανάλογους τρόπους ψηφιοποιούνταικαι μεγέθη τα οποία εκ πρώτης όψεως δεν μπορούν να


γίνουν διακριτά, όπως για παράδειγμα μια εικόνα.
Έστω μια συγκεκριμένη εικόνα στην οθόνη του ΗΥ, όπως αυτή που ακολουθεί:

Τότε η μεγέθυνση της εικόνας δείχνει ότι στην πραγματικότητα η εικόνα απoτελείται από μικρά επί
μέρους στοιχεία: μικρά τετραγωνίδια τα οποία είναι μαυρισμένα ή όχι (τα λεγόμενα εικονοστοιχεία
ή pixels = picture elements). Άρα η εικόνα μπορεί να παρασταθεί ως ένα σύνολο μαυρισμένων ή
λευκών τετραγωνιδίων ενός πλέγματος. Η ψηφιοποίηση στη συνέχεια είναι εύκολη: αρκεί να τεθεί
0 σε κάθε λευκό τετραγωνίδιο και 1 σε κάθε μαυρισμένο.
00001110000
00111111100
01111111110
κλπ

Τότε η πρώτη σειρά αποτελεί έναν αριθμό εκφρασμένο στο δυαδικό σύστημα:
00001110000 = 1110000 = 112 του δεκαδικού
κι ανάλογα ισχύουν για τις υπόλοιπες σειρές. Η αντίστροφη διαδικασία είναι τελείως ανάλογη. Για
παράδειγμα στην τρίτη σειρά μπορεί να αντιστοιχεί ο αριθμός 478 του δεκαδικού, δηλαδή
478 = 11111000 = 00011111000 (επειδή αντιστοιχούν 11 ψηφία, τα κενά από αριστερά
συμπληρώνονται με μηδενικά), δηλαδή τα τετραγωνίδια της σειράς θα είναι ΛΛΛΜΜΜΜΜΛΛΛ
(όπου Λ ένα λευκό τετραγωνίδιο κι όπου Μ ένα μαυρισμένο)
Για τα χρώματα, ακολουθούνται οι κανόνες που ισχύουν για τη μείξη των βασικών χρωμάτων. Ως
βάση για τις οθόνες των Η.Υ. χρησιμοποιούνται τα βασικά χρώματα κόκκινο, μπλε, πράσινο (RGB),

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 12 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ενώ οι εκτυπωτές για καλύτερη ποιότητα χρησιμοποιούν τα χρώματα κυανό, μωβ, κίτρινο (CMY).
Στη διεύθυνση http://csfieldguide.org.nz/en/chapters/data-representation.html (τελευταία
επίσκεψη, Ιούλιος 2022) υπάρχουν δυο διαδραστικοί μείκτες ψηφιακών χρωμάτων και των δυο
τύπων. Στον ίδιο ιστοχώρο εξηγείται και γιατί η επιλογή των τριών βασικών χρωμάτων είναι
εναρμονισμένη και με τη φυσιολογία της ανθρώπινης όρασης
(https://en.wikipedia.org/wiki/Trichromacy) (τελευταία επίσκεψη, Ιούλιος 2022).
Στη διεύθυνση http://csfieldguide.org.nz/en/interactives/pixel-viewer/index.html (τελευταία
επίσκεψη, Ιούλιος 2022) μπορεί κανείς να μεταφορτώσει μια εικόνα και με διαδοχικά zoom να τη
δει αναλυμένη σε pixels.
Για κάθε pixel πρέπει να χρησιμοποιηθούν 3 αριθμοί και αν ο καθένας (για καθένα από τα βασικά
χρώματα) είναι μήκους 8 bits, συνολικά χρειάζονται 24 bits, που μπορούν να αντιπροσωπεύουν
28x28x28 = 224 = 16 777 216 διαφορετικές απoχρώσεις. Είναι ίσως περισσότερες από τις
αποχρώσεις που μπορεί να διακρίνει ένα ανθρώπινο μάτι. Εικόνες με λιγότερες απαιτήσεις μπορούν
συνολικά να χρησιμοποιούν μόνο 8 bits. Στην ιστοσελίδα
http://csfieldguide.org.nz/en/interactives/image-bit-comparer/index.html (τελευταία επίσκεψη,
Ιούλιος 2022) μπορεί κανείς να πειραματιστεί με τις αποχρώσεις και την «αίσθηση» που αποκομίζει
χρησιμοποιώντας διάφορα μοντέλα (8 bits, 24 κ.λπ.) bits, ενώ στην ιστοσελίδα:
http://csfieldguide.org.nz/en/interactives/colour-matcher/index.html (τελευταία επίσκεψη,
Ιούλιος 2022) μπορεί να δοκιμάσει την ευαισθησία του ματιού στην αντίληψη διαφόρων
αποχρώσεων.

2.5 Ήχοι και η κωδικοποίησή τους


Σχετικά με την κωδικοποίηση των ήχων υπάρχουν πολύ καλοί ψηφιακοί πόροι που πραγματεύονται
τα σχετικά θέματα.
Αναφέρονται σχετικά οι
https://repository.kallipos.gr/bitstream/11419/2048/1/02_chapter_3.pdf καθώς και
http://ebooks.edu.gr/modules/ebook/show.php/DSB103/173/1206,4409/ (το πρώτο τμήμα που
αναφέρεται στον ήχο).

2.6 Κρυπτογράφηση και συμπίεση


2.6.1 Κρυπτογράφηση
Σε μια διαδικασία κρυπτογράφησης/αποκρυπτογράφησης, έχουμε ένα αρχικό κείμενο (plaintext) το
οποίο κρυπτογραφείται με τη βοήθεια ενός προγράμματος κρυπτογράφησης και έτσι παράγεται το
κρυπτογραφημένο κείμενο (ciphertext). Με τη βοήθεια ειδικού προγράμματος
αποκρυπτογράφησης το κρυπτογραφημένο κείμενο μετασχηματίζεται και πάλι στο αρχικό.
Αν το κρυπτογραφημένο μήνυμα παραβιαστεί (crack, hacking), τότε μπορεί να γίνει κατανοητό
χωρίς να αποκρυπτογραφηθεί με τον τυπικό τρόπο.
Η μέθοδος του Καίσαρα, μια πολύ παλιά μέθοδος κρυπτογράφησης, συνίσταται στην
αντικατάσταση των γραμμάτων από κάποια άλλα, χάρη σε μια σταθερή αντιστοίχιση κάθε
γράμματος σε κάποιο άλλο με μετατόπιση. Έτσι το γράμμα Α μπορεί να αντικατασταθεί με το Δ, το
Β με το Ε κ.ο.κ. (μετατόπιση 3 «θέσεων»). Στον ιστοχώρο
http://csfieldguide.org.nz/en/chapters/coding-encryption.html (τελευταία επίσκεψη, Ιούλιος
2022) υπάρχουν πολλά βοηθητικά προγράμματα για την εφαρμογή της μεθόδου του Καίσαρα. Το
πρόβλημα είναι βέβαια ότι αν κανείς με κάποιο τρόπο, βρει το συντελεστή μετατόπισης, τότε το
κρυπτογραφημένο κείμενο αποκρυπτογραφείται πολύ εύκολα. Σημαντικό επίσης στοιχείο είναι ότι
αν το «κενό» δεν κρυπτογραφηθεί ως χαρακτήρας, στο κρυπτογραφημένο κείμενο οι λέξεις θα

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 13 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
έχουν ακριβώς την ίδια θέση και το ίδιο μέγεθος με το αρχικό κείμενο – πράγμα που μπορεί να
διευκολύνει την αναζήτηση του κλειδιού (συντελεστή μετατόπισης). Επίσης, για λόγους προφανείς,
ορισμένα σημεία στίξης καθώς και τα ψηφία θα μπορούσαν να κρυπτογραφούνται.
Η αποκρυπτογράφηση μπορεί να γίνει είτε με μετατόπιση «προς τα πίσω», είτε με κρυπτογράφηση
εκ νέου με νέο κλειδί 24-αρχικό κλειδί. Αν το αρχικό κλειδί είναι 12, τότε βέβαια ο ίδιος ακριβώς
μηχανισμός χρησιμεύει για την κρυπτογράφηση και την αποκρυπτογράφηση.
Είναι φανερό ότι η μέθοδος του Καίσαρα δεν είναι πολύ ασφαλής καθώς οι λέξεις με πολύ μικρό
μήκος (1 η 2 γράμματα) μπορούν εύκολα να αποκρυπτογραφηθούν και μια στατιστική ανάλυση
(βασισμένη στα γράμματα που συναντώνται με τη μεγαλύτερη συχνότητα, όπως το «Α») μπορεί να
βοηθήσει ουσιαστικά στην αποκρυπτογράφηση ενός κειμένου. Στη διεύθυνση
http://csfieldguide.org.nz/en/chapters/coding-encryption.html (τελευταία επίσκεψη, Ιούλιος
2022) υπάρχει μια απλή πλατφόρμα για τον υπολογισμό της συχνότητας με την οποία εμφανίζεται
κάθε γράμμα σε ένα κείμενο. Έτσι, χρησιμοποιούνται σήμερα μέθοδοι σημασιολογικώς ασφαλείς, οι
οποίες δηλαδή κρυπτογραφημένα κείμενα (ciphertext) που «αντέχουν» σε απλές αναλύσεις.
Φυσικά τα σύγχρονα συστήματα κρυπτογράφησης για πραγματικές εφαρμογές είναι εξαιρετικά
σύνθετα και χρησιμοποιούν πολύ προηγμένες μαθηματικές μεθόδους – όπως αυτή του δημόσιου
κλειδιού.
Ιδιαίτερο ενδιαφέρον παρουσιάζει βέβαια η μέθοδος (οι μέθοδοι ακριβέστερα) κρυπτογράφησης με
δημόσιο κλειδί, αλλά ενδεχομένως είναι αρκετά πολύπλοκοι ώστε να διδαχθούν στην πρωτοβάθμια
εκπαίδευση ή ακόμη και στο Γυμνάσιο.
Υπάρχουν πολλοί αξιόλογοι ψηφιακοί πόροι, όπως ο https://nrich.maths.org/2200.
Για μια (πολύ) γενική ιδέα για την κβαντική κρυπτογράφηση μπορεί κανείς να ξεκινήσει από εδώ:
http://www.physics4u.gr/news/2004/scnews1377.html (τελευταία επίσκεψη, Ιούλιος 2022) και
για μια πιο εκμηριωμένη προσέγγιση: http://users.uoa.gr/~wvkarag/files/wvk-
quantum_cryptography.pdf (τελευταία επίσκεψη, Ιούλιος 2022).

2.6.2 Συμπίεση
Η συμπίεση των δεδομένων συμβάλλει στη μείωση του χώρου που απαιτείται για να αποθηκευτεί
(άρα και να μεταφερθεί) μια πληροφορία ή ένα σύνολο πληροφοριών. Είναι μια πολύ συνηθισμένη
πρακτική για αρχεία εικόνων, ήχου, βίντεο.
Φυσικά η συμπίεση πολλές φορές υποβιβάζει την ποιότητα του αρχικού (ασυμπίεστου)
ντοκουμέντου (εικόνας, μουσικής,…), αλλά, κατά περίπτωση η υποβάθμιση της ποιότητας μπορεί
να είναι ανεκτή ή ακόμη και δυσδιάκριτη. Στο http://csfieldguide.org.nz/en/chapters/coding-
compression.html (τελευταία επίσκεψη, Ιούλιος 2022) υπάρχουν 2 εικόνες, εκ των οποίων η μία
έχει μέγεθος 135 ΚΒ, ενώ η άλλη 55 ΚΒ, αλλά η διαφορά μεταξύ τους είναι πράγματι πολύ μικρή.
Σε άλλες περιπτώσεις φυσικά (όπως η συμπίεση ενός αρχείου κειμένου, δεδομένων ή ενός
λογισμικού) καμιά αλλοίωση δεν είναι ανεκτή και το συμπιεσμένο αρχείο πρέπει να περιλαμβάνει
ακέραιη την πληροφορία του αρχικού (ασυμπίεστου) αρχείου.
Ένα ιδιαίτερο είδος format για αποθήκευση εικόνων με bits είναι το format .pbm. Στο πρόσθετο
ψηφιακό υλικό υπάρχει μια απλή εικόνα σε format .pbm και η μορφή του αντίστοιχου αρχείου (μια
διαδοχική σειρά από 0 και 1). Η τεχνική του μεταβλητού μήκους επιτρέπει τη συμπίεση εικόνων
καθώς αποθηκεύει όχι τα ίδια τα bits, αλλά τη διαδοχή τους στο αρχείο. Στο
http://csfieldguide.org.nz/en/interactives/run-length-encoding/index.html (τελευταία επίσκεψη,
Ιούλιος 2022) ένα κατάλληλο περιβάλλον επιτρέπει τις δοκιμές με αλληλεπιδραστικό τρόπο.
Οι κώδικες Huffman αποτελούν μια ιδιαίτερη τεχνική η οποία επιτρέπει την βελτιστοποίηση της
κωδικοποίησης διαφόρων δεδομένων ώστε να απαιτείται ελάχιστος χώρος αποθήκευσης. Οι
κώδικες εκμεταλλεύονται την απλή ιδέα ότι σε μια κωδικοποίηση μιας συμβολοσειράς (γράμματα,

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 14 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ψηφία, άλλα σύμβολα…) μπορούμε να κωδικοποιήσουμε με «οικονομικό τρόπο» (έστω και με ένα
ψηφίο) τα σύμβολα που εμφανίζονται συχνά, και με άλλους τρόπους τα πιο σπάνια. Στον ιστοχώρο
http://csfieldguide.org.nz/en/chapters/coding-compression.html (τελευταία επίσκεψη, Ιούλιος
2022) έχει μια πολύ απλή αλλά αναλυτική παρουσίαση των κωδίκων Huffman με πολλές ευκαιρίες
για διαδραστικές διερευνήσεις. Στο
http://csfieldguide.org.nz/en/interactives/huffman-tree/index.html (τελευταία επίσκεψη, Ιούλιος
2022)
μπορεί κανείς να δημιουργήσει, με διαδραστικό τρόπο δένδρα Huffman.
Ανάλογη είναι, στον ίδιο ιστοχώρο http://csfieldguide.org.nz/en/chapters/coding-
compression.html (τελευταία επίσκεψη, Ιούλιος 2022), η αναλυτική παρουσίαση των τεχνικών για
τη συμπίεση εικόνων, αλλά και αρχείων ήχου.

2.7 Ζωγραφίζοντας χάρτες: ένα διδακτικό σενάριο

2.7.1 ΤΙΤΛΟΣ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ


Ζωγραφίζοντας χάρτες

2.7.2 ΕΚΤΙΜΩΜΕΝΗ ΔΙΑΡΚΕΙΑ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ


2-3 διδακτικές ώρες.

2.7.3 ΕΝΤΑΞΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ ΣΤΟ ΠΡΟΓΡΑΜΜΑ


ΣΠΟΥΔΩΝ & ΠΡΟΑΠΑΙΤΟΥΜΕΝΕΣ ΓΝΩΣΕΙΣ
Το σενάριο προορίζεται για μαθητές των πρωτοβάθμιας εκπαίδευσης και Γυμνασίων, (αλλά με
κάποιες προσαρμογές, Λυκείων και ΕΠΑΛ) ως δραστηριότητα, στο πλαίσιο μαθημάτων εισαγωγής
στην αλγοριθμική σκέψη .

2.7.4 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ


Σκοπός του σεναρίου είναι οι μαθητές να εξοικειωθούν με ένα κλασσικό πρόβλημα (χρωματισμός
χαρτών) και μια εισαγωγή στα γραφήματα.
Οι ειδικότεροι στόχοι είναι:
Οι μαθητές μετά το τέλος της διδασκαλίας θα πρέπει να είναι σε θέση:
Να γνωρίζουν το πρόβλημα των τεσσάρων χρωμάτων και διάφορες παραλλαγές του
Να γνωρίζουν με ποιο τρόπο να αναπαραστήσουν/μοντελοποιήσουν έναν επίπεδο χάρτη με ένα
γράφημα.

2.7.5 ΣΥΝΟΠΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ


Ο εκπαιδευτικός προτείνει στους μαθητές διαφόρων ειδών χάρτες οι οποίοι απαιτούν διαφορετικό
πλήθος χρωμάτων προκειμένου να χρωματιστούν σύμφωνα με τον κανόνα «οι όμορες περιοχές
πρέπει να έχουν διαφορετικό χρώμα». Στη συνέχεια μοντελοποιεί τους χάρτες αυτούς με τη
βοήθεια γράφων (γραφημάτων). Στο τέλος μπορεί να ρωτήσει τους μαθητές και τις μαθήτριες αν
μπορούν να φτιάξουν ένα χάρτη που να χρειάζεται (με την έννοια που ορίσαμε παραπάνω)
περισσότερα από 4 χρώματα. Μετά την αποτυχία κατασκευής ενός τέτοιου χάρτη, ο Καθηγητής
μπορεί να τους αφηγηθεί τη συναρπαστική ιστορία του «θεωρήματος των τεσσάρων χρωμάτων»
και της απόδειξής του
(https://el.wikipedia.org/wiki/%CE%98%CE%B5%CF%8E%CF%81%CE%B7%CE%BC%CE%B1_

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 15 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
%CF%84%CF%89%CE%BD_%CF%84%CE%B5%CF%83%CF%83%CE%AC%CF%81%CF%89%
CE%BD_%CF%87%CF%81%CF%89%CE%BC%CE%AC%CF%84%CF%89%CE%BD).

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


ΑΝΑΛΥΣΗ – ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ
Στο σχετικό άρθρο της Wikipedia (ανωτέρω) υπάρχει η ιστορία ης απόδειξης του θεωρήματος των
τεσσάρων χρωμάτων. Σε αντίστοιχο άρθρο (http://light.physics.auth.gr/graphs/gr_history.html,
καθώς και https://thalesandfriends.org/el/2014/02/28/oi-gefires-tou-konigsberg/ υπάρχουν
στοιχεία για την ιστορία της θεωρίας γραφημάτων)

2.7.7 ΕΠΕΚΤΑΣΕΙΣ/ΔΙΑΣΥΝΔΕΣΕΙΣ ΤΩΝ ΕΝΝΟΙΩΝ


Μετά την ολοκλήρωση του σεναρίου ο διδάσκων θα μπορούσε να συνεχίσει προτείνοντας
προβλήματα που μπορούν να μοντελοποιηθούν με τη βοήθεια της θεωρίας γραφημάτων, όπως το
παρακάτω:

Μπορούν τα τρία σπίτια να συνδεθούν με τις τρεις υπηρεσίες (ηλ. ρεύμα κ.λπ.) χωρίς να τέμνονται
οι γραμμές τους); Παρεμπιπτόντως η απάντηση είναι ότι δε μπορούν. Περισσότερες λεπτομέρειες
υπάρχουν στις «Δραστηριότητες».

2.7.8 ΠΟΛΛΑΠΛΕΣ ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ – ΠΟΛΛΑΠΛΕΣ


ΠΡΟΣΕΓΓΙΣΕΙΣ
Είναι προφανές ότι όλα τα προτεινόμενα προβλήματα έχουν διάφορες προελεύσεις (π.χ. οι
γέφυρες του Koenigsberg) και η μοντελοποίησή τους συνιστά μια διαφορετική αναπαράσταση.

2.7.9 ΠΡΟΒΛΕΨΗ ΔΥΣΚΟΛΙΩΝ ΣΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ


Οι μαθητές θα δυσκολευτούν ενδεχομένως να δεχθούν την ιδέα ότι ορισμένα προβλήματα δεν
επιλύονται –ή ακριβέστερα ότι έχουν μια λύση εντελώς αντι-διαισθητική (όπως το πρόβλημα με τα
τρία σπίτια και τις συνδέσεις σε τρία δίκτυα – που μοιάζει εκ πρώτης όψεως τετριμμένο).

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 16 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

2.7.10 ΓΙΑΤΙ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ Ο Η.Υ.


Εδώ βέβαια δε χρησιμοποιείται.

2.7.11 ΔΙΔΑΚΤΙΚΟΣ ΘΟΡΥΒΟΣ


Δεν αναμένεται διδακτικός θόρυβος πέρα από τον συνήθη όταν οι μαθητές συνεργάζονται.

2.7.12 ΧΡΗΣΗ ΕΞΩΤΕΡΙΚΩΝ ΠΗΓΩΝ


http://www.alice.org/
https://academy.oracle.com/

2.7.13 ΥΠΟΚΕΙΜΕΝΗ ΘΕΩΡΙΑ ΜΑΘΗΣΗΣ


Το σενάριο στηρίζεται στη θεωρία του εποικοδομισμού (αν και ένα μέρος των φύλλων εργασίας
είναι σε μορφή tutorial, γιατί σκοπός τους είναι, οι μαθητές να εξοικειωθούν με το λογισμικό και τις
τεχνικές του αντικειμενοστρεφούς προγραμματισμού). Οι μαθητές ωθούνται να πειραματιστούν και
να οικοδομήσουν τη γνώση τους ανιχνεύοντας, διερευνώντας και αλληλεπιδρώντας μεταξύ τους.
Οι μαθητές ενθαρρύνονται να συζητούν τα προβλήματα που αντιμετωπίζουν και να συνεργάζονται
με τους συμμαθητές τους.
Ο ρόλος του εκπαιδευτικού είναι καθοδηγητικός, διαμεσολαβητικός και διευκολυντικός.

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


ΜΑΘΗΜΑΤΟΣ ΚΑΙ ΣΤΟ ΝΟΗΜΑ ΤΩΝ ΕΝΝΟΙΩΝ
Δεν αναφέρονται.

2.7.15 ΔΙΔΑΚΤΙΚΟ ΣΥΜΒΟΛΑΙΟ


Ο/Η εκπαιδευτικός παρακολουθεί και συντονίζει τις ομάδες στη διάρκεια εκτέλεσης των
δραστηριοτήτων και παρέχει όλες τις οδηγίες που θα διευκολύνουν τους μαθητές να
ολοκληρώσουν την εργασία τους. τα αποτελέσματα (δηλαδή να οι μαθητές επιτυγχάνουν το στόχο
του χρωματισμού ή όχι) καθίσταται φανερό αντικειμενικά. Τα φύλλα εργασίας είναι απλά και μέσα
στις δυνατότητες των μαθητών, οπότε το διδακτικό συμβόλαιο δεν αναμένεται να ανατραπεί.

2.7.16 ΟΡΓΑΝΩΣΗ ΤΑΞΗΣ – ΕΦΙΚΤΟΤΗΤΑ ΣΧΕΔΙΑΣΗΣ


Προτείνεται οι μαθητές να οργανωθούν σε ομάδες των 2-3 ατόμων. Η οργάνωση αυτή αφενός
ευνοεί την αλληλεπίδραση και τη συνεργασία μεταξύ των μαθητών οι οποίοι αντιμετωπίζουν την
επίλυση των προτεινομένων προβλημάτων ως ένα κοινό project, ως μια κοινή προσπάθεια και
αφετέρου δίνει τη δυνατότητα στον κάθε μαθητή να εξοικειωθεί ατομικά με το λογισμικό και τα
εργαλεία του.
Οι δραστηριότητες ψυχολογικής και γνωστικής προετοιμασίας, οι δραστηριότητες διδασκαλίας και
εμπέδωσης του αντικειμένου και η αξιολόγηση γίνονται στο σχολικό εργαστήριο, με τον κάθε
μαθητή να δουλεύει συνεργατικά με τους συμμαθητές του στον υπολογιστή του.

2.7.17 ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΤΩΝ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ –


ΑΞΙΟΛΟΓΗΣΗ
Οδηγίες για τα φύλλα εργασίας
Τονίζεται ότι, ανάλογα με την τάξη και το επίπεδο των μαθητών, ο χρωματισμός των χαρτών
μπορεί να γίνει είτε με το χέρι (π.χ. ξυλομπογιές), είτε με τη βοήθεια κάποιου προγράμματος

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 17 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ζωγραφικής. Αν οι χάρτες είναι ζωγραφισμένοι σε χαρτί, οι μαθητές και οι μαθήτριες μπορούν να
χρησιμοποιήσουν αντί για χρώματα διάφορα έγχρωμα μικροαντικείμενα (όπως χρωματιστά πούλια)
για να «χρωματίσουν» τις περιοχές του χάρτη. Έτσι η αλλαγή του «χρώματος» είναι πολύ πιο
εύκολη και διευκολύνεται η διερεύνηση διαφόρων λύσεων, η επιχειρηματολογία μεταξύ μαθητών
υπέρ κάποιας επιλογής χρώματος κ.λπ.
Ο εκπαιδευτικός δίνει στους μαθητές μερικούς απλούς χάρτες και ζητάει να τους χρωματίσουν,
αλλά με τον εξής απλό κανόνα: δυο «χώρες» (περιοχές του χάρτη) που συνορεύουν δεν πρέπει
να έχουν το ίδιο χρώμα («συνορεύουν» σημαίνει ότι έχουν περισσότερα από ένα σημεία στο κοινό
τους σύνορο).
Στο πρώτο φύλλο εργασίας οι μαθητές παίρνουν (σε ψηφιακή μορφή ή έντυπη) μερικούς απλούς
χάρτες οι οποίες παρουσιάζουν περιοχές που συνορεύουν.
Στην αρχή οι μαθητές απλώς ζωγραφίζουν αυτούς τους χάρτες ελεύθερα, χρησιμοποιώντας όσα
χρώματα θέλουν. Στη συνέχεια τους ζητείται να τους ζωγραφίσουν, χρησιμοποιώντας όσα λιγότερα
χρώματα μπορούν – στην προκειμένη περίπτωση 2 χρώματα είναι αρκετά.

Πολλές κατηγορίες χαρτών μπορούν να χρωματιστούν με 2 χρώματα (ακολουθώντας πάντοτε τον


κανόνα).
Στη συνέχεια ο εκπαιδευτικός διαπραγματεύεται τις περιπτώσεις χαρτών που απαιτούν τουλάχιστον
3 χρώματα, ή 4 χρώματα.

2.7.18 ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ


Φύλλο εργασίας 1
Χρωματισμός απλών χαρτών
Σας δίνονται δυο χάρτες και πρέπει να χρωματίσετε. Προσοχή όμως ! Δυο περιοχές που
συνορεύουν δεν πρέπει να έχουν το ίδιο χρώμα.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 18 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Τώρα θα πρέπει να χρωματίστε αυτούς τους δυο χάρτες χρησιμοποιώντας όσο μπορείτε λιγότερα
χρώματα. Πόσα χρώματα χρειάζεστε;
Χωρίς να χρωματίστε, προσπαθήστε να μαντέψετε πόσα χρώματα απαιτούνται για να χρωματιστεί
το παρακάτω:

Θεωρείτε πως είναι αρκετά 2 χρώματα για να χρωματιστεί οιοσδήποτε χάρτης; Δοκιμάστε να
χρωματίσετε τον ακόλουθο χάρτη:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 19 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Πόσα χρώματα εκτιμάτε ότι χρειάζονται;


Προσπαθήστε επίσης να χρωματίσετε τον ακόλουθο χάρτη:

Πόσα χρώματα εκτιμάτε ότι χρειάζονται;


Είναι σχετικά απλό να κατασκευάσουμε σχήματα (χάρτες) που χρειάζονται 3 ή 4 χρώματα:
Για παράδειγμα, τα παρακάτω σχήματα χρειάζονται οπωσδήποτε τρία χρώματα για να
χρωματιστούν. Βλέπετε για ποιο λόγο; Μήπως αυτό σας βοηθάει να εξηγήσετε γιατί ένας από τους
προηγούμενους χάρτες χρειάζεται τρία χρώματα;

Το παρακάτω σχήμα χρειάζεται οπωσδήποτε 4χρώματα.

Βλέπετε για ποιο λόγο χρειάζονται 4 χρώματα; Μήπως αυτό σας βοηθάει να εξηγήσετε γιατί ένας
από τους προηγούμενους χάρτες χρειάζεται τέσσερα χρώματα;

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 20 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
Είδαμε ως τώρα χάρτες που χρειάζονται για να χρωματιστούν 2 χρώματα, 3 χρώματα, 4 χρώματα.
Υπάρχουν άραγε χάρτες που χρειάζονται περισσότερα χρώματα 5,6 ή περισσότερα.
Δοκιμάστε να φτιάξετε ένα χάρτη που να χρειάζεται πέντε (τουλάχιστον) χρώματα.

Φύλλο εργασίας 2
Χάρτες και γραφήματα
Θεωρήστε το τελευταίο σχήμα του προηγούμενο φύλλου εργασίας

Μπορείτε φυσικά να το χρωματίσετε:

Μπορείτε ακόμη να μη βάψετε τις περιοχές, αλλά να τοποθετήσετε μια τελεία με το σχετικό χρώμα.

Συνδέοντας με γραμμές τις τελείες αυτές, παίρνουμε ένα σχήμα όπως το ακόλουθο:

Μπορούμε να παραλείψουμε το σχήμα και να αφήσουμε μόνο τις γραμμές που διασυνδέουν τις
τελείες:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 21 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Το σχήμα αυτό (ένα σύνολο από τελείες που διασυνδέονται με γραμμές) καλείται γράφημα. Οι
τελείες ονομάζονται κόμβοι ή κορυφές του γραφήματος και οι γραμμές που τις συνδέουν
ονομάζονται τόξα ή ακμές.
Το γράφημα αυτό αναπαριστά το σχήμα παραπάνω, με τη σύμβαση ότι μια κορυφή είναι μια
περιοχή του σχήματος (που έχει ένα χρώμα εάν χρωματίσουμε το σχήμα), ενώ οι ακμές συνδέουν
τις γειτονικές περιοχές.
Στο γράφημα αυτό, φαίνεται καθαρά γιατί χρειάζονται τέσσερα χρώματα: κάθε κόμβος του
συνδέεται με όλους τους άλλους.
Μπορείτε να κάνετε τα αντίστοιχα γραφήματα από τους παρακάτω χάρτες;
Θα διευκολυνθείτε πολύ αν δώσετε ένα όνομα σε κάθε περιοχή του χάρτη (για παράδειγμα:
Α,Β,Γ,.. ή 1,2,3,…) και δώσετε το ίδιο όνομα στους κόμβους (τελίτσες). Μετά ενώνετε τους
κόμβους με μια γραμμή αν οι αντίστοιχες περιοχές στο χάρτη συνορεύουν μεταξύ τους.

Αυτό το τελευταίο, ίσως είναι προτιμότερο να ο χρωματίσετε με ένα πρόγραμμα και ύστερα να
δημιουργήσετε το αντίστοιχο γράφημα.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 22 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
Προσπαθήστε να δημιουργήσετε τα γραφήματα από τους δυο παρακάτω «χάρτες»:

Τι παρατηρείτε;
Κάθε χάρτης έχει ένα αντίστοιχο γράφημα. Ωστόσο το αντίστροφο δεν είναι πάντα αληθές.
Δοκιμάστε να κατασκευάσετε ένα χάρτη που να αντιστοιχεί στο εξής γράφημα:

Είδαμε ότι ο «χάρτης»

Έχει ως αντίστοιχο γράφημα το:


Κάποιος ισχυρίζεται ότι το παραπάνω σχήμα έχει ως γράφημα το εξής:

ή ακόμη και το παρακάτω:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 23 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
Ποιο από όλα είναι το σωστό;

2.7.19 Bιβλιογραφία – Δικτυογραφία – πρόσθετοι ψηφιακοί πόροι


Περιλαμβάνονται αναφορές σε ψηφιακούς πόρους (αγγλόφωνους) για δραστηριότητες
Πληροφορικής και ο δυαδικό σύστημα ειδικότερα.
Στην ιστοσελίδα (δεξιά) https://community.computingatschool.org.uk/resources/199/single
υπάρχουν υπερδεσμοί για πολλούς ψηφιακούς πόρους, κατηγοριοποιημένους ανά ηλικία) για
παιδιά (τελευταία επίσκεψη, Δεκέμβριος 2022).
Στην ιστοσελίδα: https://community.computingatschool.org.uk/resources/3042/single (τελευταία
επίσκεψη, Δεκέμβριος 2022)
Υπάρχουν πολλοί ψηφιακοί πόροι του πλάνου QuickStart με 3 βιβλία, διάφορους πόρους, video
κ.ά.
Στην ιστοσελίδα http://courses.cs.vt.edu/~csonline/NumberSystems/Lessons/index.html
περιλαμβάνονται πολλά στοιχεία για το δυαδικό σύστημα και σχετικές δραστηριότητες (τελευταία
επίσκεψη, Δεκέμβριος 2022).

3. Υπολογιστική σκέψη – Computational Thinking


Με ένα συνοπτικό τρόπο, θα μπορούσαμε να ορίσουμε την υπολογιστική σκέψη ως την απόπειρα
επίλυσης προβλημάτων με τη βοήθεια υπολογιστικών συστημάτων. Η υπολογιστική σκέψη είναι
λοιπόν πολύ κοντά με τη λεγόμενη αλγοριθμική σκέψη.
Η υπολογιστική σκέψη είναι μια έννοια πολύ ευρεία και βρίσκεται τα τελευταία χρόνια στο
επίκεντρο του ενδιαφέροντος της διεθνούς κοινότητας που διερευνά τα θέματα διδασκαλίας της
Πληροφορικής (με την ευρύτερη έννοια) μαζί με το STEM και τη ρομποτική. Με ένα συνοπτικό
τρόπο, θα μπορούσαμε να ορίσουμε την υπολογιστική σκέψη ως την απόπειρα επίλυσης
προβλημάτων με τη βοήθεια υπολογιστικών συστημάτων. Η υπολογιστική σκέψη είναι λοιπόν πολύ
κοντά με τη λεγόμενη αλγοριθμική σκέψη.
Στη Wikipedia, υπάρχει ένας ορισμός ανάλογος με τον προηγούμενο: η υπολογιστική σκέψη είναι
ένα σύνολο από μεθόδους (θα λέγαμε γενικότερα: προσεγγίσεις) για την έκφραση προβλημάτων
και των λύσεων τους με τρόπο τέτοιο, ώστε ένας Η.Υ., ένα ψηφιακό σύστημα γενικότερα, θα
μπορούσε να τις εκτελέσει. Αυτός ο ορισμός δεν είναι ίσως αρκετά αναλυτικός, ώστε να είναι
άμεσα χρηστικός. Υπάρχουν αναλυτικότεροι ορισμοί.
Η ακόλουθη απεικόνιση δίνει ακριβώς μια γραφιστική περιγραφή μιας ευρείας ερμηνείας του όρου:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 24 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Εικόνα 1

Σύμφωνα με το άρθρο της wikipedia, η υπολογιστική σκέψη είναι (συνήθως) μια


επαναλαμβανόμενη διαδικασία βασισμένη σε τρείς πυλώνες:
 Την αφαίρεση (κατάλληλη διατύπωση ή μοντελοποίηση του προβλήματος)
 Τον αυτοματισμό (έκφραση της λύσης)
 Την ανάλυση (εκτέλεση της λύσης και αξιολόγησή της).

Στο Διαδίκτυο μπορεί κανείς να εντοπίσει πολλούς αναλυτικότερους ορισμούς της Υπολογιστικής
σκέψης, όπως ο ακόλουθος (ο οποίος περιγράφει λεκτικά την παραπάνω εικόνα 1). Στον ορισμό
αυτό η Υπολογιστική σκέψη περιγράφεται ως μια σύνθεση από 6 έννοιες και 5 προσεγγίσεις. Για
μια αναλυτικότερη μελέτη των εννοιών αυτών, με μια αφθονία παραδειγμάτων κυρίως για την
πρωτοβάθμια εκπαίδευση, μπορεί κανείς να κατευθυνθεί στο:
https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-
thinking/
Εύκολα μπορούν στο Διαδίκτυο να εντοπιστούν και αντίστοιχες πηγές για τη Δευτεροβάθμια
εκπαίδευση: για παράδειγμα, το άρθρο Computational Thinking in Secondary Education: Where
Does It Fit? A Systematic Literary Review (υπάρχει αντίγραφό του στο πρόσθετο ψηφιακό υλικό)
περιλαμβάνει πολλά σχετικά στοιχεία.
Οι βασικές έννοιες είναι:
1. Η Λογική (https://www.barefootcomputing.org/concepts-and-approaches/logic, τελευταία
επίσκεψη Δεκέμβριος 2022)
2. Οι αλγόριθμοι https://www.barefootcomputing.org/concepts-and-approaches/algorithms,
τελευταία επίσκεψη Δεκέμβριος 2022)
3. Η ανάλυση (στα επιμέρους, https://www.barefootcomputing.org/concepts-and-
approaches/decomposition, τελευταία επίσκεψη Δεκέμβριος 2012)

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 25 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
4. Αναγνώριση προτύπων (μοτίβων, https://www.barefootcomputing.org/concepts-and-
approaches/patterns, τελευταία επίσκεψη Δεκέμβριος 2018)
5. Η αφαίρεση (η αφαιρετική ικανότητα, https://www.barefootcomputing.org/concepts-and-
approaches/abstraction, τελευταία επίσκεψη Δεκέμβριος 2018)
6. Η αξιολόγηση (η εκτίμηση, https://www.barefootcomputing.org/concepts-and-
approaches/evaluation, τελευταία επίσκεψη Δεκέμβριος 2018).

Αντίστοιχα, οι προσεγγίσεις (δηλαδή ακριβέστερα: καλές πρακτικές και στάσεις) είναι οι εξής:
1. Το «σκάλισμα» (πρόχειρη αναζήτηση, tinkering,
https://www.barefootcomputing.org/concepts-and-approaches/tinkering, τελευταία
επίσκεψη Δεκέμβριος 2018)
2. H δημιουργικότητα (https://www.barefootcomputing.org/concepts-and-
approaches/creating, τελευταία επίσκεψη Δεκέμβριος 2018)
3. Η διόρθωση (debugging, https://www.barefootcomputing.org/concepts-and-
approaches/debugging, τελευταία επίσκεψη Δεκέμβριος 2018)
4. H επιμονή (https://www.barefootcomputing.org/concepts-and-approaches/persevering,
τελευταία επίσκεψη Δεκέμβριος 2018)
5. (https://www.barefootcomputing.org/concepts-and-approaches/collaborating, τελευταία
επίσκεψη Δεκέμβριος 2019).

Επίσης, η Διεθνής Εταιρεία για την τεχνολογία στην Εκπαίδευση (ISTE), σε συνεργασία με την
Ένωση των εκπαιδευτικών της Επιστήμης των Υπολογιστών επεξεργάστηκαν (με τη βοήθεια και
άλλων εμπειρογνωμόνων) έναν λειτουργικό ορισμό, ο οποίος υπέστη και την κρίση περίπου 700
ειδικών. Σύμφωνα με τον ορισμό αυτό, η υπολογιστική σκέψη είναι μια διαδικασία επίλυσης
προβλημάτων, που έχει τα εξής χαρακτηριστικά, τουλάχιστον:
 Η διατύπωση των προβλημάτων είναι τέτοια, ώσε να επιτρέπει τη χρήση Η.Υ. και άλλων
εργαλείων, για την επίλυση τους.
 Τα δεδομένα είναι λογικά οργανωμένα και αναλυμένα.
 Τα δεδομένα αναπαριστώνται μέσω αφαιρέσεων (γενικεύσεων), όπως τα μοντέλα και οι
προσομοιώσεις.
 Οι λύσεις είναι αυτοματοποιημένες μέσω αλγοριθμικής σκέψης (δηλαδή εκφρασμένες ως
πεπερασμένες σειρές ταξινομημένων βημάτων)
 Οι ενδεχόμενες λύσεις που προτείνονται ταυτοποιούνται, αναλύονται και εφαρμόζονται με
στόχο την επίτευξη του πιο αποτελεσματικού συνδυασμού βημάτων και πόρων.
 Η διαδικασία επίλυσης τους συγκεκριμένου προλήματος μπορεί να γενικευτεί και να
εφαρμοστεί και σε άλλα προβλήματα, ενός ευρέος φάσματος.
Αυτές οι δεξιότητες υποστηρίζονται και επαυξάνονται από μια σειρά βασικών ικανοτήτων και
στάσεων, όπως:
 αυτοπεποίθηση στην αντιμετώπιση της πολυπλοκότητας
 επιμονή στην επεξεργασία δύσκολων προβλημάτων
 ανοχή στην αμφισημία
 ικανότητα στην αντιμετώπιση ανοιχτών προβλημάτων
 ικανότητα επικοινωνίας και συνεργασίας με άλλους για ένα κοινό στόχο ή κοινή λύση σε ένα
πρόβλημα.

Τόσο απευθείας με αναζήτηση μέσω του Διαδικτύου, όσο και από την παρατιθέμενη βιβλιογραφία
είναι εύκολο να εντοπιστούν πολλές βιβλιογραφικές αναφορές σχετικές με την υπολογιστική σκέψη
και να χρησιμοποιηθούν στην δημιουργία σχετικών σεναρίων, όπως οι παρακάτω:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 26 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
https://barefootcas.org.uk/barefoot-primary-computing-resources/concepts/computational-
thinking/ (τελευταία επίσκεψη Δεκέμβριος 2022)
https://edu.google.com/resources/programs/exploring-computational-thinking/

4. Εισαγωγή στην πολυπλοκότητα αλγορίθμων

4.1 Πολυπλοκότητα αλγορίθμων


Το νέο Αναλυτικό Πρόγραμμα Σπουδών για την Πληροφορική του Λυκείου αναφέρει ότι οι μαθητές
πρέπει να διερευνούν ευρετικούς και κλασικούς αλγορίθμους και να τους αξιολογούν. Κάνει επίσης
ρητή αναφορά στην πολυπλοκότητα αλγορίθμων.
Για τη μελέτη της παρούσας ενότητας δεν υπάρχουν προαπαιτούμενες γνώσεις (εκτός των βασικών
προγραμματιστικών γνώσεων). Μια βασική γνώση μίας γλώσσας προγραμματισμού θα ήταν
χρήσιμη, αλλά όχι απαραίτητη.
Στο παρακάτω περιγράφεται ένα μη πλήρες σενάριο για την πολυπλοκότητα, για λόγους
οικονομίας χρόνου. Πολλά από τα παραδείγματα και τις αναλύσεις του παρόντος προ’ερχονται από
το https://discrete.gr/complexity/?el.

4.2 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ


Ο γενικότερος σκοπός του παρόντος είναι η κατανόηση του υπολογιστικού κόστους και της
πολυπλοκότητας στον προγραμματισμό.
Πιο συγκεκριμένα, αναμένεται ότι οι επιμορφούμενοι θα γνωρίσουν τα βασικά διδακτικά
χαρακτηριστικά της πολυπλοκότητας και του τρόπου υπολογισμού της και θα είναι σε θέση να
δημιουργήσουν δικά τους σενάρια ή δραστηριότητες για τη διδασκαλία θεμάτων της
πολυπλοκότητας.
Το ίδιο το διδακτικό σενάριο αναμένεται να συμβάλει στην καλλιέργεια των εξής οριζοντίων
ικανοτήτων:
ανάπτυξη της Υπολογιστικής σκέψης, την αντίληψη για την αλγοριθμική ανάπτυξη προγραμμάτων,
ανάπτυξη και αξιοποίηση υπολογιστικών συναρτήσεων και την ενίσχυση της δημιουργικότητας των
μαθητών συνδυάζοντας τον προγραμματισμό με κλασικά προβλήματα γρίφων.
Οι μαθητές, αναμένεται:
1. Να γνωρίσουν ότι οι αλγόριθμοι πρέπει να συγκριθούν με κριτήρια απόδοσης.
2. Να κατανοήσουν τη σημασία του χρόνου εκτέλεσης στην ανάλυση αλγορίθμων.
3. Να διακρίνουν και να βρίσκουν τη χρονική πολυπλοκότητα ενός αλγορίθμου.
4. Οι μαθητές να εφαρμόζουν τρόπους υπολογισμού του απαιτούμενου χρόνου είτε με
αλγεβρικό τρόπο, είτε μέσω συγκεκριμένων παραδειγμάτων.

4.3 ΣΥΝΟΠΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ


Η πολυπλοκότητα αλγορίθμων είναι βασισμένη στη σύγκριση δύο αλγορίθμων στο επίπεδο της
ιδέας, δηλαδή της μεθόδου επίλυσης του αντίστοιχου προβλήματος αγνοώντας λεπτομέρειες
χαμηλού επιπέδου, όπως η γλώσσα προγραμματισμού υλοποίησης, το υλικό πάνω στο οποίο τρέχει
ο αλγόριθμος ή το σύνολο εντολών του επεξεργαστή. Θέλουμε να συγκρίνουμε αλγορίθμους
ακριβώς για αυτό που είναι: ιδέες, μέθοδοι για το πώς κάτι υπολογίζεται. Το να μετράμε
milliseconds δεν μας βοηθά σε αυτό. Είναι αρκετά πιθανό ένας κακός αλγόριθμος γραμμένος σε μία

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 27 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
γλώσσα χαμηλού επιπέδου, όπως η assembly, να τρέχει πολύ πιο γρήγορα απ' ό,τι ένας καλός
αλγόριθμος υλοποιημένος σε μία γλώσσα υψηλού επιπέδου, όπως η Python ή η Ruby. Πρέπει
λοιπόν, να ορίσουμε τι είναι πραγματικά ένας «καλός αλγόριθμος».
Καθώς οι αλγόριθμοι υλοποιούνται ως προγράμματα που πραγματοποιούν έναν υπολογισμό, και
όχι άλλα συνήθη πράγματα με τα οποία καταπιάνονται οι υπολογιστές, όπως εργασίες δικτύου ή
είσοδος και έξοδος προς τον χρήστη, η ανάλυση πολυπλοκότητας μας επιτρέπει να μετρήσουμε
πόσο γρήγορο είναι ένα πρόγραμμα όταν εκτελεί υπολογισμούς. Παραδείγματα διαδικασιών που
είναι καθαρά υπολογιστικές περιλαμβάνουν αριθμητικές πράξεις κινητής υποδιαστολής, όπως η
πρόσθεση και ο πολλαπλασιασμός, η αναζήτηση σε μία βάση δεδομένων που χωράει στη μνήμη για
μία δεδομένη τιμή, ο προσδιορισμός της διαδρομής που θα ακολουθήσει ένας χαρακτήρας τεχνητής
νοημοσύνης σε ένα βιντεοπαιχνίδι, έτσι ώστε να χρειάζεται να περπατήσει μόνο μικρή απόσταση
μέσα στον εικονικό κόσμο, ή η εκτέλεση μίας κανονικής έκφρασης για να ελέγξουμε αν αντιστοιχεί
σε κάποιο αλφαριθμητικό. Ξεκάθαρα, ο υπολογισμός (με τη γενική έννοια του όρου) είναι πάντα
παρών στα προγράμματα υπολογιστών.
Η ανάλυση πολυπλοκότητας είναι επίσης ένα εργαλείο που μας επιτρέπει να εξηγήσουμε πώς
συμπεριφέρεται ένας αλγόριθμος καθώς το πλήθος δεδομένων που εισάγονται στο σύστημα
μεγαλώνει. Αν του δώσουμε διαφορετική είσοδο δεδομένων (περισσότερα ή λιγότερα δεδομένα),
πώς θα συμπεριφερθεί ο αλγόριθμος; Αν ο αλγόριθμός μας χρειάζεται 1 δευτερόλεπτο για να τρέξει
σε είσοδο με μέγεθος 1000, πώς θα συμπεριφερθεί αν διπλασιάσω το μέγεθος της εισόδου; Θα
τρέξει το ίδιο γρήγορα, με τη μισή ταχύτητα ή τέσσερις φορές πιο αργά; Στον προγραμματισμό
στην πράξη, αυτό είναι σημαντικό, καθώς μας επιτρέπει να προβλέψουμε πώς ο αλγόριθμός μας θα
συμπεριφερθεί καθώς η το πλήθος των δεδομένων που εισάγονται μεγαλώνει.

4.4 Πολυπλοκότητα με συγκεκριμένα παραδείγματα

4.4.1 Εύρεση Μεγίστου Στοιχείου σε Πίνακα


Ας ξεκινήσουμε με ένα απλό παράδειγμα: την εύρεση του μεγίστου στοιχείου ενός πίνακα.
Το μέγιστο στοιχείο σε έναν πίνακα μπορεί να βρεθεί χρησιμοποιώντας ένα απλό τμήμα κώδικα
όπως αυτό το κομμάτι κώδικα Python. Δεδομένης εισόδου ενός πίνακα A μεγέθους n:

#Αν θέλετε να το δοκιμάσετε, αφαιρέστε τα σχόλια


#A = [3, 5, 8]
M = A[0]
for i in range(0, n) :
if (A[i] >= M) :
M = A[i]
#print(M)

Τώρα, το πρώτο πράγμα που θα κάνουμε είναι να μετρήσουμε πόσες βασικές εντολές εκτελεί αυτό
το τμήμα κώδικα. Αυτό θα το κάνουμε μόνο μία φορά και στη συνέχεια δεν θα είναι απαραίτητο
καθώς αναπτύσσουμε τη θεωρία μας. Καθώς αναλύουμε αυτό το τμήμα κώδικα, θέλουμε τη δομή
επανάληψης να την μετατρέψουμε σε απλές εντολές, εντολές δηλαδή που μπορούν να
εκτελεστούν από τον επεξεργαστή άμεσα. Θα υποθέσουμε ότι ο επεξεργαστής μας μπορεί να
εκτελέσει τη κάθε μία από τις ακόλουθες διεργασίες ως μία εντολή:
 Την ανάθεση μιας τιμής σε κάποια μεταβλητή.
 Την εύρεση της τιμής ενός συγκεκριμένου στοιχείου σε ένα πίνακα.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 28 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
 Τη σύγκριση δύο τιμών.
 Την αύξηση κάποια τιμής.
 Τις βασικές αριθμητικές πράξεις, όπως η πρόσθεση και ο πολλαπλασιασμός.
Θα υποθέσουμε ότι η διακλάδωση (η επιλογή ανάμεσα στο τμήμα κώδικα if, αφότου υπολογιστεί
η συνθήκη του if) γίνεται στιγμιαία και δεν θα μετρήσουμε αυτές τις εντολές. Στον παραπάνω
κώδικα, η πρώτη γραμμή είναι:
M = A[0].
Αυτό απαιτεί 2 εντολές: Μία για την εύρεση του A[ 0 ] και μία για την ανάθεση της τιμής στο M
(υποθέτουμε ότι το n είναι πάντα τουλάχιστον 1). Αυτές οι δύο πράξεις χρειάζονται πάντα από τον
αλγόριθμο. Ο κώδικας αρχικοποίησης του for πρέπει επίσης να τρέξει πάντα. Αυτό μας δίνει δύο
επιπλέον εντολές, μία ανάθεση και μία σύγκριση:

i = 0 και
i<n
Αυτές θα τρέξουν πριν από την πρώτη επανάληψη του for. Μετά από κάθε επανάληψη του for,
χρειάζεται να τρέξουμε δύο επιπλέον εντολές, μία αύξηση του i και μία σύγκριση, για να δούμε αν
θα παραμείνουμε μέσα στον βρόχο:
i = i + 1 και
i<n
Συνεπώς, αν αγνοήσουμε το σώμα του βρόχου, ο αριθμός των εντολών που χρειάζεται αυτός ο
αλγόριθμος είναι 4 + 2n. Δηλαδή 4 εντολές στην αρχή του for και 2 εντολές στο τέλος κάθε
επανάληψης, εκ των οποίων έχουμε n. Μπορούμε τώρα να ορίσουμε μία μαθηματική συνάρτηση
f(n) που, δοθέντος ενός n, μας δίνει τον αριθμό των εντολών που χρειάζεται ο αλγόριθμος. Για ένα
for με άδειο σώμα, έχουμε f( n ) = 4 + 2n. (https://discrete.gr/complexity/?el)

4.4.2 Ανάλυση χειρότερης περίπτωσης


Αν δούμε προσεκτικότερα το σώμα της for, έχουμε μία εντολή εύρεσης στοιχείου πίνακα και μία
σύγκριση που λαμβάνουν χώρα πάντοτε:
if (A[i] >= M):
Αυτές είναι δύο εντολές από μόνες τους. Όμως το σώμα του if μπορεί να τρέξει ή μπορεί και όχι,
ανάλογα με το τι τιμές έχει πραγματικά ο πίνακας. Αν συμβεί και είναι A[ i ] >= M, τότε θα
τρέξουμε αυτές τις δύο επιπλέον εντολές — μία εύρεση στοιχείου πίνακα και μία ανάθεση:
M = A[ i ]
Όμως τώρα δεν μπορούμε να ορίσουμε μία f( n ) τόσο εύκολα, επειδή ο αριθμός των εντολών δεν
εξαρτάται αποκλειστικά από το n αλλά και από την είσοδο. Για παράδειγμα, για A = [ 1, 2, 3, 4 ] ο
αλγόριθμος θα χρειαστεί περισσότερες εντολές απ' ό,τι για A = [ 4, 3, 2, 1 ].
Όταν αναλύουμε αλγόριθμους, συχνά λαμβάνουμε υπόψιν τη χειρότερη περίπτωση. Ποιο είναι το
χειρότερο πράγμα που μπορεί να συμβεί στον αλγόριθμό μας; Πότε χρειάζεται ο αλγόριθμός μας
τις περισσότερες εντολές για να ολοκληρωθεί; Στην περίπτωσή μας, αυτό συμβαίνει όταν έχουμε
έναν πίνακα με στοιχεία σε αύξουσα σειρά όπως το A = [ 1, 2, 3, 4 ]. Σε αυτήν την περίπτωση, το
M πρέπει να αντικαθίσταται κάθε φορά και έτσι αυτό οδηγεί στον μέγιστο αριθμό εντολών. Οι
επιστήμονες των υπολογιστών έχουν ένα φανταχτερό όνομα για αυτό και το λένε ανάλυση
χειρότερης περίπτωσης ή worst-case analysis· αυτό δεν είναι τίποτε άλλο από το να λαμβάνουμε
απλώς υπόψιν την περίπτωση που είμαστε άτυχοι. Άρα, στη χειρότερη περίπτωση, έχουμε 4
εντολές να τρέξουμε μέσα στο σώμα του for, οπότε έχουμε f( n ) = 4 + 2n + 4n = 6n + 4. Αυτή η
συνάρτηση f, δεδομένου του μεγέθους του προβλήματος n, μας δίνει τον αριθμό των εντολών που
θα χρειαζόμαστε στη χειρότερη περίπτωση (https://discrete.gr/complexity/?el)

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 29 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

4.4.3 Ασυμπτωτική συμπεριφορά


Έχοντας μία τέτοια συνάρτηση, έχουμε μία αρκετά καλή ιδέα για το πόσο γρήγορος είναι ο
αλγόριθμός μας. Όμως, δεν χρειάζεται να περνάμε από την επίπονη διαδικασία τού να μετράμε
εντολές στο πρόγραμμά μας. Εξάλλου, ο αριθμός των πραγματικών εντολών του επεξεργαστή που
χρειάζονται για κάθε εντολή σε κάθε γλώσσα προγραμματισμού εξαρτάται από τον μεταγλωττιστή
της γλώσσας προγραμματισμού μας και το σύνολο διαθέσιμων εντολών επεξεργαστή (π.χ. αν είναι
ένας AMD ή ένας Intel στο PC σας ή ένας επεξεργαστής MIPS στο Playstation) και είπαμε ότι κάτι
τέτοιο θα το αγνοήσουμε. Θα περάσουμε τώρα τη συνάρτηση "f" μέσα από ένα «φίλτρο» το οποίο
θα μας βοηθήσει να αποφύγουμε αυτές τις μικρές λεπτομέρειες που οι επιστήμονες των
υπολογιστών προτιμούν να αγνοούν.
Στη συνάρτησή μας, 6n + 4, έχουμε δύο όρους: το 6n και το 4. Στην ανάλυση πολυπλοκότητας
μας ενδιαφέρει μόνο τι συμβαίνει στη συνάρτηση μέτρησης εντολών όσο η είσοδος του
προγράμματος (n) μεγαλώνει. Αυτό στην πραγματικότητα ταιριάζει με τις προηγούμενες ιδέες της
συμπεριφοράς "στη χειρότερη περίπτωση": Μας ενδιαφέρει πώς ο αλγόριθμός μας συμπεριφέρεται
όταν τον κακομεταχειριζόμαστε, όταν δηλαδή τον προκαλούμε με κάτι δύσκολο. Σημειώστε ότι
αυτό είναι πραγματικά χρήσιμο όταν συγκρίνουμε αλγορίθμους. Αν ένας αλγόριθμος είναι πιο
αποδότικος από έναν άλλον για μεγάλη είσοδο, τότε κατά πάσα πιθανότητα ο γρηγορότερος
αλγόριθμος παραμένει γρηγορότερος, όταν του δώσουμε μία ευκολότερη, μικρότερη είσοδο. Από
τους όρους που λαμβάνουμε υπόψιν, θα αγνοήσουμε όλους εκείνους τους όρους που
αυξάνονται αργά και θα διατηρήσουμε μόνο εκείνους τους όρους που αυξάνονται
γρήγορα όσο το n αυξάνει. Ξεκάθαρα το 4 παραμένει 4 όσο το n μεγαλώνει, όμως το 6n
συνεχίζει να αυξάνεται, οπότε τείνει να παίζει όλο και μεγαλύτερο ρόλο για μεγαλύτερα
προβλήματα. Συνεπώς, αγνοούμε το 4 και απμένει η συνάρτηση f( n ) = 6n.

Αυτό, αν το σκεφτείτε, βγάζει νόημα καθώς το 4 είναι απλώς μία «σταθερά αρχικοποίησης».
Διαφορετικές γλώσσες προγραμματισμού μπορεί να έχουν διαφορετικές απαιτήσεις χρόνου, για να
ξεκινήσουν να τρέχουν. Για παράδειγμα, η Java χρειάζεται κάποιον χρόνο για να αρχικοποιήσει την
εικονική της μηχανή. Καθώς αγνοούμε τις διαφορές στο επίπεδο των γλωσσών προγραμματισμού,
είναι λογικό να αγνοήσουμε αυτή την τιμή.
Το δεύτερο πράγμα που θα αγνοήσουμε είναι η πολλαπλασιαστική σταθερά μπροστά από το n, και
έτσι η συνάρτησή μας θα γίνει f( n ) = n. Όπως βλέπετε, τούτο απλοποιεί πολύ τα πράγματα. Και
πάλι, βγάζει νόημα το ότι πετάμε αυτή τη σταθερά, αν σκεφτούμε με ποιον τρόπο οι διαφορετικές
γλώσσες προγραμματισμού μεταγλωττίζονται. Η πράξη της "εύρεσης στοιχείου πίνακα" μπορεί να
μεταγλωττίζεται σε διαφορετικές εντολές σε διαφορετικές γλώσσες προγραμματισμού. Για
παράδειγμα, στη C, όταν κάνουμε A[ i ] η γλώσσα δεν ελέγχει ότι το i είναι εντός των δηλωμένων
ορίων του πίνακα, ενώ στην Pascal αυτός ο έλεγχος γίνεται. Συνεπώς, ο ακόλουθος κώδικας σε
Pascal:
M := A[ i ]
είναι ισοδύναμος με τον ακόλουθο κώδικα σε C:
if (i >= 0 && i < n) {
M = A[i];
}
Οπότε είναι λογικό να περιμένουμε ότι οι διαφορετικές γλώσσες προγραμματισμού θα οδηγήσουν
σε διαφορετικούς συντελεστές όταν μετράμε τις εντολές τους. Στο παράδειγμά μας, όπου
χρησιμοποιούμε έναν «χαζό» μεταγλωττιστή για την Pascal ο οποίος δεν ξέρει τίποτα για πιθανές
βελτιστοποιήσεις, η Pascal χρειάζεται 3 εντολές για κάθε πρόσβαση σε στοιχείο πίνακα αντί για την
μία εντολή που χρειάζεται η C. Το ότι αγνοούμε αυτόν τον συντελεστή είναι συμβατό με την ιδέα

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 30 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ότι αγνοούμε τις διαφορές ανάμεσα σε συγκεκριμένες γλώσσες προγραμματισμού και
μεταγλωττιστές και αναλύουμε μόνο την ιδέα του ίδιου του αλγορίθμου.
Αυτό το φίλτρο της "απόρριψης όλων των συντελεστών" και της "διατήρησης μόνο του όρου που
αυξάνει πιο γρήγορα" όπως περιγράφεται παραπάνω είναι αυτό που λέμε ασυμπτωτική
συμπεριφορά. Άρα η ασυμπτωτική συμπεριφορά του f( n ) = 2n + 8 περιγράφεται από τη
συνάρτηση f( n ) = n. Από μαθηματικής σκοπιάς, αυτό που λέμε εδώ είναι ότι μας ενδιαφέρει το
όριο της συνάρτησης f καθώς το n τείνει στο άπειρο. (Ως παρατήρηση, σε ένα αυστηρό μαθηματικό
περιβάλλον, δεν θα μπορούσαμε να πετάξουμε απλώς τις πολλαπλασιαστικές σταθερές στο όριο,
όμως για τις χρήσεις της επιστήμης των υπολογιστών, θέλουμε να μπορούμε να κάνουμε κάτι
τέτοιο για τους λόγους που περιγράφονται παραπάνω). Ας δουλέψουμε πάνω σε μερικά
παραδείγματα για να εξοικειωθούμε με την ιδέα.
Από τη Wikipedia:

Eίναι φανερό ότι μετά από κάποιον αριθμό (το 10), η πράσινη συνάρτηση f(x)=2x ξεπερνάει τη
μπλε συνάρτηση f(χ)=χ3 και αυξάνεται πολύ ταχύτερα από αυτήν.
Επίσης, στο ακόλουθο παράδειγμα:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 31 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Η συνάρτηση n3, που απεικονίζεται με μπλε χρώμα, ξεπερνά τη συνάρτηση 1999n, που
απεικονίζεται με κόκκινο χρώμα, στο n = 45. Από αυτό το σημείο και μετά, παραμένει μεγαλύτερη
για πάντα. Στοιχεία από https://discrete.gr/complexity/?el.

Ας βρούμε την ασυμπτωτική συμπεριφορά των συναρτήσεων στα ακόλουθα παραδείγματα


διαγράφοντας τους σταθερούς συντελεστές και κρατώντας τους όρους που μεγαλώνουν
γρηγορότερα.
1. Η f( n ) = 5n + 12 δίνει f( n ) = n.
Χρησιμοποιώντας ακριβώς την ίδια λογική με παραπάνω.
2. Η f( n ) = 109 δίνει f( n ) = 1.
Δεν χρειαζόμαστε τον πολλαπλασιαστή 109 * 1, αλλά χρειάζεται να κρατήσουμε μόνο το 1 στην
περίπτωση αυτήν, ώστε να δείξουμε ότι αυτή η συνάρτηση έχει μη μηδενική τιμή.
3. Η f( n ) = n2 + 3n + 112 δίνει f( n ) = n2
Εδώ, η n2 μεγαλώνει γρηγορότερα από την 3n για αρκετά μεγάλα n, οπότε αυτό θα κρατήσουμε.
4. Η f( n ) = n3 + 1999n + 1337 δίνει f( n ) = n3
Παρόλο που ο συντελεστής μπροστά από το n είναι μεγάλος, μπορούμε να βρούμε ένα αρκετά
μεγάλο n, τέτοιο ώστε το n3 να γίνει μεγαλύτερο του 1999n. Καθώς μας ενδιαφέρει η συμπεριφορά
για πολύ μεγάλες τιμές του n, κρατάμε μόνο το n3.
5. Η f( n ) = n + δίνει f( n ) = n
Τούτο προκύπτει, διότι το n μεγαλώνει γρηγορότερα από το καθώς αυξάνουμε το n.

4.5 ΕΠΙΣΤΗΜΟΛΟΓΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΚΑΙ ΕΝΝΟΙΟΛΟΓΙΚΗ ΑΝΑΛΥΣΗ –


ΘΕΜΑΤΑ ΘΕΩΡΙΑΣ ΤΟΥ ΔΙΔΑΚΤΙΚΟΥ ΣΕΝΑΡΙΟΥ
Όπως είναι εύλογο, πηγή η μάλλον κίνητρο για την εξεύρεση και βελτίωση των αλγορίθμων,
αποτελούν προβλήματα τα οποία επιθυμούμε να επιλύσουμε με όσο το δυνατόν πιο
αποτελεσματικό τρόπο (το ταχύτερο δυνατόν, αλλά μέσα σε ορισμένα όρια διαθέσιμου χώρου
κ.λπ.).

4.6 Προβλήματα Βελτιστοποίησης


Βασικό στοιχείο στην επιστήμη των Πληροφορικής είναι η εύρεση λύσεων. Για παράδειγμα εάν
θεωρήσουμε πως έχουμε ένα πρόβλημα για να βρούμε με ποιο μέσο μπορούμε να μεταβούμε από
την πόλη Α, στην πόλη Β, τότε υπάρχουν πολλές πιθανές λύσεις για να το επιτύχουμε. Για
παράδειγμα, μπορούμε να μεταβούμε με ποδήλατο, με αυτοκίνητο, με τρένο ή με αεροπλάνο. Αν

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 32 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
ωστόσο θέσουμε έναν περιορισμό, ότι θέλουμε να μεταβούμε σε 2 ώρες τότε αυτομάτως οι
επιλογές μας θα λιγοστέψουν. Αν θέσουμε ως δεύτερο περιορισμό το κόστος μετάβασης, τότε
αυτομάτως μετατρέπεται το πρόβλημα, σε ένα πρόβλημα βελτιστοποίησης. Πρέπει να βρούμε το
μέσο που θα μας επιτρέψει να μεταβούμε από την πόλη Α, στην πόλη Β, με το ελάχιστο κόστος
μετάβασης.

4.7 Το πρόβλημα του περιοδεύοντος πωλητή


Το πρόβλημα του περιοδεύοντος πωλητή είναι ιδιαίτερα διαδεμένο στην επιστήμη της
Πληροφορικής. Βασίζεται στην υπόθεση ότι ένας πωλητής επιθυμεί να μεταβεί σε ορισμένες πόλεις.
Με ποια σειρά πρέπει να επισκεφτεί τις πόλεις και να επιστρέψει στη δική του διανύοντας τη
μικρότερη δυνατή απόσταση;
Έστω για παράδειγμα ότι βρίσκεται στην Αθήνα και επιθυμεί να μεταβεί στις 15 μεγαλύτερες πόλεις
της Αθήνας και στο τέλος να επιστρέψει πάλι σε αυτήν. Ποια είναι η διαδρομή που πρέπει να
ακολουθήσει για να ελαχιστοποιήσει το κόστος.

Χάρτης της Ελλάδας με τις 15 μεγαλύτερες πόλεις

Το πρόβλημα του περιπλανώμενου πωλητή ανήκει στην κατηγορία προβλημάτων συνδυαστικής


βελτιστοποίησης, αναζητώντας δηλαδή τη βέλτιστη λύση σε ένα σύνολο πιθανών λύσεων. Το
πρόβλημα μπορεί να αναχθεί σε ένα πρόβλημα γράφων, όπου με δεδομένη μία λίστα από πόλεις
και των αποστάσεων τους, ζητείται να βρεθεί η συντομότερη διαδρομή που θα περιλαμβάνει κάθε
πόλη μόνο μία φορά. Για παράδειγμα:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 33 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

Το πρόβλημα του περιπλανώμενου πωλητή ανήκει στην κατηγορία των NP-προβλημάτων3, δηλαδή
των προβλημάτων που μπορεί να επαληθευτεί εύκολα και γρήγορα ότι υπάρχει λύση, χωρίς να
μπορεί να βρεθεί το ίδιο εύκολα ποια είναι αυτή η λύση. Η εύρεση λύσης στα NP-προβλήματα
εξαρτάται από το μέγεθος του προβλήματος. Με άλλα λόγια, όσο αυξάνεται το μέγεθος του
προβλήματος, τόσο αυξάνεται και η δυσκολία εύρεση λύσης στο πρόβλημα. Ενώ λοιπόν στα NP
προβλήματα είναι εύκολο να εντοπιστεί εάν μία προτεινόμενη λύση αποτελεί βέλτιστη λύση του
προβλήματος ή όχι, η εύρεση ενός γενικευμένου αλγορίθμου εύρεσης λύση δεν είναι εύκολο να
καθοριστεί.

4.8 ΕΠΕΚΤΑΣΕΙΣ/ΔΙΑΣΥΝΔΕΣΕΙΣ ΤΩΝ ΕΝΝΟΙΩΝ

Υπολογίζοντας την πολυπλοκότητα σε αλγορίθμους με επαναληπτικές διαδικασίες

Ας δούμε ένα πρόγραμμα σε Python το οποίο προσθέτει δύο στοιχεία ενός πίνακα μαζί και στη
συνέχεια αποθηκεύει αυτό το άθροισμα σε μία άλλη μεταβλητή:
v = a[ 0 ] + a[ 1 ]
Εδώ έχουμε ένα σταθερό πλήθος εντολών, οπότε προκύπτει f( n ) = 1.
Το ακόλουθο πρόγραμμα σε Python ελέγχει αν ένα πίνακας που ονομάζεται A, μεγέθους n, περιέχει
δύο ίδιες τιμές οπουδήποτε μέσα του:

# Εισάγουμε τον πίνακα Α με όσα στοιχεία θέλουμε


A = [3, 5, 2, 4, 5]

3
Για τις ανάγκες της Επιμόρφωσης θα δεχτούμε εδώ αυτήν την πρώτη, απλοποιημένη προσέγγιση των ΝΡ-προβλημάτων. Ο
ακριβής ορισμός και η ανάλυση τους ξεπερνάει τα όρια του παρόντος επιμορφωτικού υλικού.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 34 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
# Η συνάρτηση len(A) επιστρέφει το πλήθος των στοιχείων του πίνακα Α
n = len(A)
duplicate = False;
for i in range(0, n):
for j in range(0, n):
if (i != j and A[i] == A[j]) :
duplicate = True
break;
if (duplicate) :
print("FOUND")
break;

Καθώς εδώ έχουμε δύο φωλιασμένους βρόχους τον ένα μέσα στον άλλο, θα έχουμε ασυμπτωτική
συμπεριφορά που περιγράφεται από την f( n ) = n2.
Εμπειρικός κανόνας: Τα απλά προγράμματα μπορούν να αναλυθούν μετρώντας τους
φωλιασμένους βρόχους που υπάρχουν στο πρόγραμμα. Ένας απλός βρόχος που διασχίζει n
στοιχεία δίνει f( n ) = n. Ένας βρόχος μέσα σε έναν βρόχο δίνει f( n ) = n2. Ένας βρόχος μέσα σε
έναν βρόχο μέσα σε έναν βρόχο δίνει f( n ) = n3.
Αν έχουμε ένα πρόγραμμα που καλεί μια συνάρτηση μέσα σε έναν βρόχο και ξέρουμε τον αριθμό
των εντολών που χρειάζεται η συνάρτηση που καλείται, είναι εύκολο να αποφανθούμε για τον
αριθμό των εντολών ολόκληρου του προγράμματος. Πράγματι, ας δούμε αυτό το παράδειγμα σε
Python:

for i in range(0, n):


f(n)

Αν ξέρουμε ότι η f(n) είναι μία συνάρτηση που πραγματοποιεί ακριβώς n εντολές, μπορούμε να
ξέρουμε ότι ο αριθμός των εντολών όλου του προγράμματος θα είναι ασυμπτωτικά n 2, καθώς η
συνάρτηση καλείται ακριβώς n φορές.
Εμπειρικός κανόνας: Αν έχουμε μία σειρά από βρόχους τον ένα μετά τον άλλο, ο πιο αργός από
αυτούς καθορίζει την ασυμπτωτική συμπεριφορά του προγράμματος. Δύο φωλιασμένοι βρόχοι
ακολουθούμενοι από έναν απλό βρόχο είναι ασυμπτωτικά το ίδιο σαν να είχαμε μόνο τους
φωλιασμένους βρόχους, επειδή οι φωλιασμένοι βρόχοι υπερισχύουν έναντι του απλού.

Ένας συμβολισμός για την πολυπλοκότητα


Τώρα ας αρχίσουμε να χρησιμοποιούμε την κάπως ιδιότροπη γλώσσα που χρησιμοποιούν οι
επιστήμονες των υπολογιστών. Όταν έχουμε βρει την ακριβή f ασυμπτωτικά, θα λέμε ότι το
πρόγραμμά μας είναι Θ( f( n ) ).
Για παράδειγμα, τα παραπάνω προγράμματα είναι Θ( 1 ), Θ( n 2 ) και Θ( n2 ) αντίστοιχα. Το Θ(n)
διαβάζεται "θήτα του εν". Μερικές φορές λέμε ότι η f( n ), η αρχική συνάρτηση που μετρούσε τις
εντολές μας, συμπεριλαμβανομένων και των σταθερών όρων, είναι Θ(κάτι ). Έτσι, λ.χ., μπορούμε
να πούμε ότι η f( n ) = 2n είναι μία συνάρτηση που είναι Θ( n ) — τίποτα καινούργιο προς το
παρόν. Μπορούμε, επίσης, να γράφουμε 2n ∈ Θ( n ), το οποίο διαβάζεται "το δύο εν είναι θήτα του
εν".
Μην μπερδεύεστε με αυτά τα σύμβολα: Το μόνο που λένε είναι ότι, αν μετρήσαμε τον αριθμό
εντολών ενός προγράμματος και αυτές είναι 2n, τότε η ασυμπτωτική συμπεριφορά του αλγορίθμου
μας περιγράφεται από το n, το οποίο βρίσκουμε πετώντας τις σταθερές. Δεδομένου αυτού του
τρόπου γραφής, τα παρακάτω είναι μερικές αληθείς μαθηματικές προτάσεις:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 35 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
1. n6 + 3n ∈ Θ( n6 )
2. 2n + 12 ∈ Θ( 2n )
3. 3n + 2n ∈ Θ( 3n )
4. nn + n ∈ Θ( nn )

Καλούμε αυτή τη συνάρτηση, δηλαδή αυτό που βάζουμε Θ( εδώ ), χρονική


πολυπλοκότητα ή, απλώς, πολυπλοκότητα του αλγορίθμου μας. Οπότε ένας αλγόριθμος με
Θ( n ) έχει πολυπλοκότητα n. Έχουμε επίσης ειδικά ονόματα για τα Θ( 1 ), Θ( n ), Θ( n 2 ) και Θ(
log( n ) ) επειδή εμφανίζονται ιδιαίτερα συχνά. Λέμε ότι ένας Θ( 1 ) αλγόριθμος είναι ένας
αλγόριθμος σταθερού χρόνου, ένας Θ( n ) είναι γραμμικός, ένας Θ( n2 ) είναι τετραγωνικός και
ένας
Θ( log( n ) ) είναι λογαριθμικός (μην ανησυχείτε αν δεν ξέρετε ακόμα τι είναι οι λογάριθμοι – θα
επιστρέψουμε σε αυτό σε ένα λεπτό).
Εμπειρικός κανόνας: Προγράμματα με μεγαλύτερο Θ τρέχουν πιο αργά από προγράμματα με
μικρότερο Θ (https://discrete.gr/complexity/?el).

4.9 ΠΟΛΛΑΠΛΕΣ ΑΝΑΠΑΡΑΣΤΑΣΕΙΣ – ΠΟΛΛΑΠΛΕΣ ΠΡΟΣΕΓΓΙΣΕΙΣ

Ο υπολογισμός της πολυπλοκότητας έχει τουλάχιστον 2 διαφορετικούς τρόπους αναπαράστασης:


(1) Με βάση τον κώδικα (σε γλώσσα καθαρά αλγοριθμική ή προγραμματισμού)
(2) Με βάση προσομοιώσεις της εκτέλεσης του προγράμματος (αυτοματοποιημένες, ή «με το
χέρι»), ο χρήστης μπορεί να παρακολουθήσει την εξέλιξη της εκτέλεσης αυτής.
Η κάθε μια προσέγγιση προφέρει μιa διαφορετική «οπτική» του υπολογισμού της πολυπλοκότητας.
Επιπρόσθετα, δραστηριότητες όπως ο υπολογισμός των απαιτούμενων κινήσεων κ.ά. συμβάλλουν
ουσιαστικά στην κατανόηση του υπολογισμούς της πολυπλοκότητας.
Για παράδειγμα, ένα διάσημο πρόβλημα (για την ακρίβεια: κατηγορία προβλημάτων) που οι
επιστήμονες των υπολογιστών χρησιμοποιούν για να διδάξουν αλγορίθμους, είναι το πρόβλημα της
ταξινόμησης. Σε ένα τυπικό πρόβλημα ταξινόμησης θεωρούμε μάς δίνεται ένας πίνακας A μεγέθους
n και μας ζητείται να γράψουμε ένα πρόγραμμα που ταξινομεί αυτόν τον πίνακα. Το πρόβλημα
αυτό είναι ενδιαφέρον, διότι είναι ένα ρεαλιστικό πρόβλημα σε πραγματικά συστήματα.
Για παράδειγμα, ένας περιηγητής αρχείων χρειάζεται να ταξινομήσει τα αρχεία που εμφανίζει με
βάση το όνομα, έτσι ώστε ο χρήστης να μπορεί να πλοηγηθεί με ευκολία.

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 36 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
Στην παραπάνω εικόνα ένας παίκτης, που βρίσκεται στην κίτρινη τελεία, δεν βλέπει τις σκιασμένες
περιοχές. Ένας τρόπος να λύσουμε το πρόβλημα της ορατότητας είναι χωρίζοντας τον κόσμο σε
μικρά κομματάκια και ταξινομώντας τα με βάση την απόστασή τους σε σχέση με τον παίκτη.
https://discrete.gr/complexity/?el

Ή, ως ένα ακόμη παράδειγμα, ένα βιντεοπαιχνίδι χρειάζεται να ταξινομήσει τα 3D αντικείμενα που


εμφανίζει στον κόσμο με βάση τις αποστάσεις τους από το μάτι του παίκτη μέσα στον εικονικό
κόσμο, έτσι ώστε να αποφανθεί τι είναι ορατό και τι δεν είναι, κάτι που ονομάζεται Πρόβλημα
Ορατότητας. Τα αντικείμενα που βρίσκουμε ότι είναι κοντύτερα στον παίκτη είναι εκείνα που
εμφανίζονται, ενώ εκείνα που είναι πιο απομακρυσμένα ενδέχεται να αποκρύπτονται από τα
αντικείμενα που βρίσκονται μπροστά τους. Η ταξινόμηση είναι, επίσης, ενδιαφέρουσα, επειδή
υπάρχουν πολλοί αλγόριθμοι για να επιτευχθεί, κάποιοι από τους οποίους είναι χειρότεροι από
άλλους. Είναι επιπλέον ένα πρόβλημα με εύκολο ορισμό και εύκολη εξήγηση. Οπότε ας γράψουμε
ένα τμήμα κώδικα που ταξινομεί έναν πίνακα.
Εδώ παρουσιάζεται ένας μη αποδοτικός τρόπος να υλοποιήσει κανείς την ταξινόμηση ενός πίνακα
σε Ruby. (Φυσικά, η Ruby υποστηρίζει ενσωματωμένες μεθόδους για την ταξινόμηση πινάκων, τις
οποίες θα πρέπει να χρησιμοποιείτε αντ᾽ αυτής και οι οποίες είναι σίγουρα γρηγορότερες από αυτά
που θα δούμε εδώ. Ωστόσο, εδώ το παραθέτουμε για επεξηγηματικούς λόγους.)

# Ταξινόμηση Επιλογής
# Πολυπλοκότητα n2
def selectionSort(array, size):

for ind in range(size):


min_index = ind

for j in range(ind + 1, size):


# επιλέγουμε το ελάχιστο στοιχείο σε κάθε επανάληψη
if array[j] < array[min_index]:
min_index = j
# αντιμεταθέτουμε τα στοιχεία για να ταξινομήσουμε τον πίνακα
(array[ind], array[min_index]) = (array[min_index], array[ind])

arr = [-2, 45, 0, 11, -9,88,-97,-202,747]


size = len(arr)
selectionSort(arr, size)
print('Ο πίνακας ταξινομημένος σε αύξουσα διάταξη είναι ο ακόλουθος:')
print(arr)

Αυτή είναι μία μέθοδος που ονομάζεται ταξινόμηση επιλογής. Βρίσκει το ελάχιστο στοιχείο του
πίνακά μας (ο πίνακας παραπάνω σημειώνεται ως array και ο δείκτης της ελάχιστης τιμής ως
min_index), το τοποθετεί στο τέλος ενός νέου πίνακα και το διαγράφει από τον αρχικό πίνακα. Στη
συνέχεια, βρίσκει το ελάχιστο ανάμεσα στις τιμές που απομένουν στον αρχικό μας πίνακα,
προσθέτει αυτή την τιμή στον νέο μας πίνακα, έτσι ώστε τώρα να περιέχει δύο στοιχεία, και το
αφαιρεί από τον αρχικό πίνακα. Συνεχίζει αυτή την εργασία, έως ότου όλα τα στοιχεία να έχουν
αφαιρεθεί από τον αρχικό πίνακα και να έχουν προστεθεί στο νέο πίνακα, που σημαίνει ότι ο
πίνακας έχει ταξινομηθεί.
Στο συγκεκριμένο παράδειγμα, βλέπουμε ότι έχουμε δύο φωλιασμένους βρόχους. Ο εξωτερικός

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 37 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
βρόχος τρέχει n φορές και ο εσωτερικός βρόχος τρέχει μία φορά για κάθε στοιχείο του πίνακα a.
Παρόλο που ο πίνακας a έχει αρχικά n στοιχεία, αφαιρούμε ένα στοιχείο από τον πίνακα σε κάθε
επανάληψη. Οπότε ο εσωτερικός βρόχος επαναλαμβάνεται n κατά την πρώτη επανάληψη του
εξωτερικού βρόχου, στη συνέχεια n - 1 φορές, μετά n - 2 φορές και ούτω καθ᾽ εξής, έως την
τελευταία επανάληψη του εξωτερικού βρόχου κατά την οποία τρέχει μόνο μία φορά.
Είναι ελαφρώς δυσκολότερο να υπολογίσουμε την πολυπλοκότητα αυτού του προγράμματος,
καθώς θα χρειαζόταν να βρούμε το άθροισμα 1 + 2 + ... + (n - 1) + n. Αλλά μπορούμε σίγουρα
να βρούμε ένα "άνω φράγμα" της. Δηλαδή, μπορούμε να αλλάξουμε το πρόγραμμά μας (αυτό
μπορείτε να το κάνετε στο μυαλό σας, όχι στον καθεαυτό κώδικα) κάνοντάς το χειρότερο απ᾽ ό,τι
είναι και στη συνέχεια βρίσκοντας την πολυπλοκότητα αυτού του νέου προγράμματος το οποίο
έχουμε παραγάγει. Αν μπορούμε να βρούμε την πολυπλοκότητα του χειρότερου προγράμματος
που φτιάξαμε, τότε γνωρίζουμε ότι το αρχικό μας πρόγραμμα είναι το πολύ τόσο κακό ή ίσως και
καλύτερο. Με αυτόν τον τρόπο, αν βρούμε μία κάπως καλή πολυπλοκότητα για το αλλαγμένο μας
πρόγραμμα, το οποίο είναι χειρότερο από το αρχικό μας, μπορούμε να ξέρουμε ότι το αρχικό μας
θα έχει επίσης κάπως καλή πολυπλοκότητα – είτε όσο καλή όσο το αλλαγμένο μας πρόγραμμα ή
και ακόμα καλύτερη (https://discrete.gr/complexity/?el).

4.10 ΠΡΟΒΛΕΨΗ ΔΥΣΚΟΛΙΩΝ ΣΤΟ ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ

Όπως έχει αναφερθεί και παραπάνω, ο υπολογισμός της πολυπλοκότητας γενικά μια τεχνική που
απαιτεί κατανόηση από την πλευρά του προγραμματιστή – μαθητή.
Αυτό, αναμένεται να λειτουργήσει ως το πιο μεγάλο εμπόδιο για τους μαθητές, οι οποίοι δεν είναι
εύκολο να αντιληφθούν τον τρόπο με τον οποίο ο Η.Υ. με ελάχιστο πλήθος εντολών εκτελεί ένα
μεγάλο πλήθος πολύπλοκων «κινήσεων».

4.11 ΧΡΗΣΗ ΕΞΩΤΕΡΙΚΩΝ ΠΗΓΩΝ

 Μαλλιαράκης Χρήστος (2018). Αλγοριθμιάδα. Ελληνοεκδοτική, Αθήνα. ISBN: 978-960-


563-202-1
 https://classic.csunplugged.org/activities/minimal-spanning-trees/ - CsUnplugged
 https://nrich.maths.org/2325 - Travelling Salesman
 https://www.youtube.com/watch?v=7O4SvFHgR3A – Προβλήματα P,NP και P=NP
 https://www.youtube.com/watch?v=qbu4ZeVPG64 – Το πρόβλημα του Κινέζου
Ταχυδρόμου και του Περιοδεύοντος Πωλητή
 https://discrete.gr/complexity/?el - Μια Εύπεπτη Εισαγωγή στην Ανάλυση Πολυπλοκότητας
Αλγορίθμων
 Cormen, Leiserson, Rivest, Stein. Εισαγωγή στους Αλγορίθμους, MIT Press.
 Dasgupta, Παπαδημητρίου, Vazirani. Αλγόριθμοι, McGraw-Hill Press.
 Φωτάκης. Μάθημα Διακριτών Μαθηματικών στο Εθνικό Μετσόβιο Πολυτεχνείο.
 Φωτάκης. Μάθημα Αλγορίθμων και Πολυπλοκότητας στο Εθνικό Μετσόβιο Πολυτεχνείο.

4.11.1 ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΤΩΝ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ –
ΑΞΙΟΛΟΓΗΣΗ

Το φύλλο εργασίας 1 είναι εισαγωγικό και έχει ως στόχο την εξοικείωση των μαθητών με την

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 38 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
πολυπλοκότητα αλγορίθμων.
Η δραστηριότητα 1 είναι καθοδηγούμενη. Οι μαθητές/τριες καλούνται να λύσουν ένα εύκολο
πρόβλημα από την καθημερινότητά τους, αλλά στη συνέχεια θα πρέπει να αλγοριθμοποιήσουν τη
λύση τους και να σκεφτούν ποια είναι η πολυπλοκότητα της λύσης τους. Η 2 η δραστηριότητα
σχετίζεται με τους κύκλους Hamilton και η 3η δραστηριότητα με το πρόβλημα του περιοδεύοντος
πωλητή.
Το φύλλο εργασίας 2 επεκτείνει τις δραστηριότητες του 1ου φύλλου εργασίας και έχει ως στόχο
την περαιτέρω εξοικείωση των μαθητών με την πολυπλοκότητα αλγορίθμων, τους κύκλος
Hamilton και την επίλυση του προβλήματος του περιοδεύοντος πωλητή.
Ο εκπαιδευτικός κατά τη διάρκεια της υλοποίησης των δραστηριοτήτων αξιολογεί διαμορφωτικά
τους μαθητές. Μετά το πέρας των δραστηριοτήτων κάνει μια συνολική αποτίμηση, εξετάζοντας αν
υλοποιήθηκε χωρίς παρεκκλίσεις ή λάθη το σενάριο, αν το σενάριο ήταν προσαρμοσμένο στη
νοητική ικανότητα και ηλικία των μαθητών και αν εντοπίστηκαν τυχόν δυσκολίες στους μαθητές
κατά την υλοποίηση του σεναρίου. Στο σενάριο θα αξιοποιηθεί η ομότιμη αξιολόγηση, η οποία θα
δώσει τη δυνατότητα στους μαθητές να εξετάσουν κριτικά τις λύσεις των συμμαθητών τους, οι
οποίες πιθανόν να είναι διαφορετικές από τις δικές τους.

4.12 ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ

Φύλλο εργασίας 1

Δραστηριότητα 1
Φανταστείτε μια τάξη n μαθητών στην οποία δώσατε το στυλό σας σε ένα άτομο. Πρέπει να βρεις
αυτό το στυλό χωρίς να ξέρεις σε ποιον το έδωσες.
Ποιος πιστεύετε είναι ο πιο αποδοτικός τρόπος και γιατί;
Ακολουθούν μερικοί τρόποι για να βρείτε το στυλό και με την αντίστοιχη πολυπλοκότητα.
• Πολυπλοκότητα n2. Πηγαίνεις και ρωτάς τον πρώτο στην τάξη αν έχει το στυλό. Επίσης, ρωτάτε
αυτό το άτομο για τα άλλα 99 άτομα στην τάξη εάν έχουν αυτό το στυλό και ούτω καθεξής,
Αυτό είναι αυτό που ονομάζουμε O(n2).
• Πολυπλοκότητα n. Το να πηγαίνεις και να ρωτάς κάθε μαθητή ξεχωριστά.
• Πολυπλοκότητα logn: Τώρα χωρίζω την τάξη σε δύο ομάδες και μετά ρωτάω: «Είναι στην
αριστερή πλευρά ή στη δεξιά πλευρά της τάξης;» Μετά παίρνω αυτή την ομάδα και τη χωρίζω στα
δύο και ξαναρωτάω, και ούτω καθεξής. Επαναλάβετε τη διαδικασία μέχρι να μείνετε με έναν
μαθητή που έχει το στυλό σας. Η πολυπλοκότητα αυτής της διαδικασίας είναι logn.
Ίσως χρειαστεί να κάνω:
• Τη διαδικασία αναζήτησης με την πολυπλοκότητα n2 αν υπάρχει ο περιορισμός ότι μόνο ένας
μαθητής γνωρίζει σε ποιον μαθητή είναι κρυμμένο το στυλό.
• Τη διαδικασία αναζήτησης με την πολυπλοκότητα n αν ένας μαθητής είχε το στυλό και μόνο
αυτός το γνώριζε.
• Τη διαδικασία αναζήτησης με την πολυπλοκότητα logn εάν όλοι οι μαθητές γνωρίζουν, αλλά θα
μου απαντούσαν μόνο στην ερώτηση αναφορικά με το αν μάντεψα τη σωστή πλευρά.

Δραστηριότητα 2

Εύρεση Κύκλων Hamilton


Ένα κύκλωμα Hamilton (που πήρε το όνομά του από τον Ιρλανδό μαθηματικό Sir William Rowan
Hamilton) είναι μια συνεχής διαδρομή σε ένα γράφημα που διέρχεται από κάθε μια από τις

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 39 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
κορυφές ακριβώς μία φορά και επιστρέφει στην αφετηρία του.
Πόσα κυκλώματα Hamilton μπορείτε να βρείτε σε αυτά τα γραφήματα;

Δραστηριότητα 3

Ένας πωλητής ζει μέσα πόλη Α και πρέπει να επισκεφτεί τις πόλεις Β, Γ και Δ. Οι αποστάσεις
μεταξύ των πόλεων είναι: AB = 120, AC=140, AD=180, BC=70, BD=100, CD=110. Βρείτε τη
συντομότερη διαδρομή μετ' επιστροφής από την πόλη Α στις άλλες τρεις πόλεις.
Αρχικά, για τους κύκλους Hamilton, το σημείο εκκίνησης δεν έχει σημασία και οποιοδήποτε σημείο
θα μπορούσε να θεωρηθεί ως το σημείο εκκίνησης. Για το πρώτο κύκλωμα θεωρούμε το Α ως
σημείο εκκίνησης. Βρίσκουμε τα ακόλουθα 6 κυκλώματα Hamilton (3 βρόχους που μπορούν να
διανυθούν σε δύο κατευθύνσεις ο καθένας):

A-B-C-F-E-D-A
A-D-E-F-C-B-A
A - B - D - E - F - C - A
A - C - F - E - D - B - A

A - C - B - D - E - F - A
A-F-E-D-B-C-A
Εάν το σημείο εκκίνησης και η κατεύθυνση έχουν σημασία, τότε υπάρχουν 3 x 2 x 6 = 36
κυκλώματα
(x 2 επειδή υπάρχουν 2 κατευθύνσεις σε κάθε μονοπάτι,
και x 6επειδή υπάρχουν 6 πιθανές αφετηρίες).
Για το δεύτερο κύκλωμα, βρήκα τις ακόλουθες πίστες Hamiltonian που ξεκινούν από το Α:

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 40 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

A>B>C>D>H>F>G>E>A
A>B>C>D>H>G>F>E>A
A>B>C>G>F>E>H>D>A
A>B>C>G>E>F>H>D>A
A>B>F>E>H>G>C>D>A
A>B>F>G>C>D>H>E>A
A>B>F>H>D>C>G>E>A
A>B>F>H>E>G>C>D>A
A>B>G>C>D>H>F>E>A
A>D>C>B>F>G>H>E>A
A>D>C>B>F>H>G>E>A
A>D>C>B>G>F>H>E>A
A>D>C>B>G>H>F>E>A
A>D>C>G>B>F>H>E>A
A>D>C>G>E>H>F>B>A
A>D>C>G>H>E>F>B>A
A>D>H>E>F>G>C>B>A
A>D>H>F>B>C>G>E>A
A>D>H>F>E>G>C>B>A
A>D>H>G>C>B>F>E>A
A>E>F>B>C>G>H>D>A
A>E>F>G>H>D>C>B>A
A>E>F>H>D>C>G>B>A
A>E>F>H>G>B>C>D>A
A>E>G>C>B>F>H>D>A
A>E>G>C>D>H>F>B>A
A>E>G>F>H>D>C>B>A
A>E>G>H>F>B>C>D>A
A>E>H>D>C>G>F>B>A
A>E>H>F>B>G>C>D>A
A>E>H>F>G>B>C>D>A
A>E>H>G>F>B>C>D>A
(16 διακριτοί βρόχοι που μπορούν να διανυθούν σε δύο κατευθύνσεις ο καθένας).
Εάν ληφθούν υπόψη η κατεύθυνση και το σημείο εκκίνησης, τότε υπάρχουν 16 x 2 x 8 = 256
κυκλώματα Hamilton.
Τώρα, για το πρόβλημα του πωλητή, πρέπει να επιστρέψει σπίτι, δηλαδή στο σημείο εκκίνησης.
Επειδή συνήθως υπάρχουν πολλές πόλεις προς επίσκεψη, και κατά συνέπεια πολλές διαδρομές (αν
n είναι ο αριθμός των πόλεων, τότε υπάρχουν (n-1)!/2 διαδρομές, όπως εξηγείται στο τέλος της
λύσης), είναι αδύνατο να διερευνήσει κανείς όλα τα κλειστά μονοπάτια, όπου τα σημεία αφετηρίας
και τερματισμού είναι τα ίδια, να μετρήσει αποστάσεις και να επιλέξει.
Υπάρχουν ορισμένοι αλγόριθμοι για αυτό το είδος προβλημάτων που μπορούν να βοηθήσουν. Θα
εφαρμόσουμε τον αλγόριθμο του πλησιέστερου γείτονα και θα συγκρίνουμε το αποτέλεσμα με τις
μετρημένες αποστάσεις.
Ο αλγόριθμος του πλησιέστερου γείτονα λειτουργεί ως εξής:
1. Επιλέξτε οποιαδήποτε πόλη ως αφετηρία. Ονομάστε αυτή την πόλη «Α».
2. Επισκεφθείτε την πλησιέστερη πόλη στην πόλη 'Α', την οποία θα ονομάσουμε πόλη 'Β'. Η πόλη
«Β» γίνεται η «τρέχουσα πόλη».

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 41 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό
3. Επισκεφθείτε την πλησιέστερη πόλη στην πόλη 'Β' που δεν έχουμε ακόμη επισκεφτεί - την πόλη
'Γ'. Η πόλη «Γ» είναι πλέον η «τρέχουσα πόλη».
4. Σύμφωνα με το βήμα 3, επισκέπτεστε επανειλημμένα την πλησιέστερη πόλη έως ότου όλες οι
πόλεις να έχουν επισκεφθεί μία φορά.
5. Μόλις επισκεφθείτε όλες τις πόλεις μία φορά, επιστρέψτε από την τελευταία πόλη που έχετε
επισκεφτεί στην πόλη εκκίνησης - πόλη 'Α'.

Σημείο εκκίνησης: Α
AB 120
π.Χ. 70
CD 110
DA 180
--------------
Σύνολο: 480

Χρησιμοποιώντας τον αλγόριθμο του πλησιέστερου γείτονα βρήκαμε μια ελάχιστη απόσταση 480
μονάδων.
Για αυτό το πρόβλημα, υπάρχουν 3! = 6 πιθανά κυκλώματα Hamilton που ξεκινούν από το Α και
δεν είναι τόσο δύσκολο να τα μετρήσουμε όλα:
ABCDA = ADCBA 480
ABDCA = ACDBA 470
ACBDA = ADBCA 490
Το συντομότερο ταξίδι είναι το ABDCA ή το ACDBA, δηλαδή 470 μονάδες.
Ο αριθμός των διακριτών διαδρομών για n πόλεις είναι (n-1)!/2. Αυτό συμβαίνει επειδή για το
πρώτο βήμα του ταξιδιού ο πωλητής έχει (n-1) πιθανές διαδρομές. Για το επόμενο υπάρχουν (n-2)
κ.ο.κ. Αυτό δίνει ένα σύνολο (n-1)!. Όμως, οι μισές διαδρομές θα είναι αντίστροφες από τις
υπόλοιπες, οπότε πρέπει να διαιρέσουμε με το 2. Για 4 πόλεις αυτό σημαίνει 3!/2 = 3 μονοπάτια.

Φύλλο εργασίας 2

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1
Πόσοι κύκλοι Hamilton υπάρχουν στους ακόλουθους γράφους και ποιοι;

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 42 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 2
Πόσες μετακινήσεις δίσκων χρειάζεται ο πύργος τυ Ανόι;
Προσπαθήστε να υπολογίσετε το πλήθος των κινήσεων που απαιτούνται για 0,1,2,3,4,5,...
δίσκους.
Σκεφθείτε ότι η «επίλυση» του πύργου για Ν δίσκους, χρειάζεται 1 + 2*(Ν-1) κινήσεις.
Επαληθεύστε ότι αυτό ισχύει για μικρές τιμές του Ν.
Μήπως θα μποορύσατε νς βρείτε κάποιο αναλυτικό τύπο για τον απευθείας υπολογισμό του
αριθμού των κινήσεων;

ΔΡΑΣΤΗΡΙΟΤΗΤΑ 3
Ένας πωλητής βρίσκεται στην Αθήνα και θέλει να επισκεφτεί όλες τις μεγάλες πόλεις της Ελλάδος
για να πουλήσει το εμπόρευμά του. Θέλει να ελαχιστοποιήσει τις αποστάσεις που θα διανύσει,
περνώντας από κάθε πόλη μόνο μία φορά και φυσικά να επιστρέψει στο σπίτι του. Μπορείτε να τον
βοηθήσετε;
Ο αλγόριθμος που προτείνετε τι πολυπλοκότητα έχει;

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 43 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ
ΠΑΚΕΤΟ 6: Πληροφορική χωρίς Η.Υ. - Πολυπλοκότητα Αλγορίθμων
Επιμορφωτικό Υλικό

ΕΠΙΜΟΡΦΩΣΗ Β2 ΕΠΙΠΕΔΟΥ ΤΠΕ Σελίδα 44 από 44 ΙΤΥΕ “ΔΙΟΦΑΝΤΟΣ”


Συστάδα: B2.4 Πληροφορικής ΔΙΕΥΘΥΝΣΗ ΕΠΙΜΟΡΦΩΣΗΣ &
ΠΙΣΤΟΠΟΙΗΣΗΣ

You might also like