ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Επαναληπτικό Μάθημα ΑΕΠΠ
Advertisements

Βασικές έννοιες αλγορίθμων
Τι είναι ο προγραμματισμός
Εισαγωγή στους Αλγορίθμους
Εισαγωγή στους Αλγορίθμους
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανάλυση προβλημάτων και Αλγόριθμοι
ΑΛΓΟΡΙΘΜΟΙ.
ΑΕΠΠ 2ο Κεφάλαιο: Βασικές Έννοιες Αλγορίθμων
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Ενότητα Η Δομή Επανάληψης
Σαρημπαλίδης Ιωάννης Εισαγωγή στους Αλγορίθμους. Γεια σας.
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.1 Τι είναι αλγόριθμος
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Κεφάλαιο 2. Τι είναι αλγόριθμος  Η λέξη αλγόριθμος προέρχεται από μελέτη του Πέρση μαθηματικού Abu Ja’far Mohammed ibn al Khowarizmi  Στα λατινικά ξεκινούσε.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ» Β΄ τάξης Γενικού Λυκείου
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Κεφ.1 Εισαγωγη στην εννοια του Αλγοριθμου και στον Προγραμματισμο
Αλγοριθμική Μία εισαγωγή στον αλγοριθμικό τρόπο σκέψης.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Ενότητα Α.4. Δομημένος Προγραμματισμός
Μάθημα: Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών Β’ Τάξη ΕΠΑ
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Αλγόριθμοι 2.1.1,
1.5 Γλώσσες Προγραμματισμού
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ. ΥΠΟΛΟΓΙΣΤΗΣ Μηχανή που μπορεί να φέρει σε πέρας πνευματικές εργασίες ρουτίνας με μεγάλη ταχύτητα.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
Ασυμπτωτικός Συμβολισμός
Ερωτήσεις & Φύλλο εργασίας
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΚΕΦΑΛΑΙΟ ΑΛΓΟΡΙΘΜΟΙ Αλγόριθμος Η έννοια του αλγορίθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής. Πχ συνταγή.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΟ 2 Βασικές Έννοιες Αλγορίθμων.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
ΕΝΟΤΗΤΑ 1. ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΚΕΦΑΛΑΙΟ 1.1 ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ 1.
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Αναπαράσταση Αλγορίθμου
Επανάληψη.
ΦΑΣΕΙΣ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ – ΑΝΑΠΤΥΞΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΑΛΓΟΡΙΘΜΟΣ.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Βασικές έννοιες αλγορίθμων
Αναπαράσταση Αλγορίθμου
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Β.ΕΠΑΛ-Γενικής Παιδείας  ΜΑΘΗΜΑ: Εισαγωγή στης αρχές Επιστήμης των Η/Υ  ΚΕΦΑΛΑΙΟ 4: Γλώσσες Αναπαράστασης Αλγορίθμων  ΕΝΟΤΗΤΑ 4.2: Δομή Ακολουθίας 
οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες…
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Κυριάκου Νικόλαος Πληροφορικής ΠΕ-20
Κεφάλαιο 2ο: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Μεταγράφημα παρουσίασης:

ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2

Ορισμός αλγορίθμου Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος Η λέξη προέρχεται από τον Πέρση Μαθηματικό Μοχάμεντ Ιμπν Μπουσά Αλ Χουαρίζμι (825 πχ) Δε συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής (πχ Αλγόριθμος δεσίματος γραβάτας – δεν είναι μοναδικός διάφοροι τρόποι για το δέσιμο της γραβάτας)

ΠΑΡΑΔΕΙΓΜΑ Να βρεθεί ο Μέγιστος Κοινός Διαιρέτης 2 θετικών αριθμών x και y (x≠0 ή y ≠ 0) Θέσε στο z τον διαιρέτη Αν z=0 τότε ΜΚΔ είναι ο x Αν z≠0 τότε διαίρεσε το x με το y, και έστω z το υπόλοιπο. Επανάλαβε τη διαίρεση με τους ακέραιους y και z μέχρι το z να γίνει 0

Αλγόριθμος του Ευκλείδη xmody υπόλοιπο διαίρεσης x δια του y x←y εκχωρείται η τιμή του δεξιού μέλους στη μεταβλητή του αριστερού μέλους

Στιγμιότυπο του προβλήματος : να βρεθεί ο ΜΚΔ των 27 και 78

Χαρακτηριστικά αλγορίθμου… Καθοριστικότητα (Definiteness) Κάθε εντολή ενός αλγορίθμου χρειάζεται να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της πχ κατά τη διαίρεση 2 αριθμών η καθοριστικότητα ικανοποιείται αν ληφθεί υπόψη και η περίπτωση που ο διαιρέτης είναι 0 Περατότητα (Finiteness) Κάθε αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του (να προσδιορίζει τη λύση ενός προβλήματος μετά από συγκεκριμένο αριθμό βημάτων και να μην εκτελείται ατέρμονα)

…Χαρακτηριστικά αλγορίθμου Αποτελεσματικότητα (Effectiveness) Κάθε εντολή ενός αλγορίθμου χρειάζεται να είναι διατυπωμένη απλά και κατανοητά, ώστε να μπορεί να εκτελεστεί επακριβώς και σε πεπερασμένο μήκος χρόνου πχ κατά τη διαίρεση 2 ακεραίων πληρείται η αποτελεσματικότητα γιατί οι ακέραιοι αναπαρίστανται ακριβώς και υπάρχει αλγόριθμος για τη διαίρεση τους (ευκλείδια διαίρεση) σε πεπερασμένο χρόνο. Κατά τη διαίρεση πραγματικών αριθμών που αναπαρίστανται με άπειρα δεκαδικά, ο αλγόριθμος δε διαθέτει το χαρακτηριστικό της αποτελεσματικότητας γιατί δεν μπορεί να αναπαρασταθεί πλήρως και να εκτελεστεί ακριβώς η συγκεκριμένη διαίρεση

…Χαρακτηριστικά αλγορίθμου Είσοδος (Input) Κάθε αλγόριθμος χρειάζεται να δέχεται ένα σύνολο μεταβλητών εισόδου (που μπορεί να είναι και το κενό σύνολο), οι οποίες αποτελούν τα δεδομένα του αλγορίθμου πχ Διάβασε x, y Η εντολή εκχώρησης δημιουργεί δεδομένα μέσα στον αλγόριθμο Έξοδος (Output) Κάθε αλγόριθμος χρειάζεται να δημιουργεί κάποιο αποτέλεσμα πχ Εμφάνισε x

Θεωρία Υπολογισμού (Theory Of Computation) Είναι το πεδίο της πληροφορικής που ασχολείται με : την ύπαρξη λύσης ενός προβλήματος την αποδοτικότητα των αλγορίθμων για την επίλυση των προβλημάτων με βάση ένα δεδομένο μοντέλο υπολογισμού Διαιρείται σε 2 κλάδους : Θεωρία Υπολογισιμότητας (Computational Theory) Ερευνά αν και πόσο αποδοτικά κάποια προβλήματα μπορούν να επιλυθούν με συγκεκριμένα υπολογιστικά μοντέλα Θεωρία Πολυπλοκότητας (Computational Complexity Theory) Μελετά τους πόρους που απαιτούνται για την επίλυση ενός προβλήματος βάσει ενός συγκεκριμένου αλγορίθμου

Για κάθε αλγόριθμο απαιτείται ανάλυση : που τεκμηριώνει την ορθότητά του, δηλ αν κάνει τη δουλειά για την οποία έχει σχεδιαστεί που μετρά ποσοτικά την απόδοσή του σε σχέση με τους υπολογιστικούς πόρους (χρόνος και μνήμη) Η ανάλυση ενός αλγορίθμου είναι η εκτίμηση του πλήθους των υπολογιστικών πόρων που απαιτεί η εκτέλεσή του πχ ο ευκλείδιος αλγόριθμος χρησιμοποιεί τόση μνήμη όση χρειάζεται για να αποθηκευτούν οι 3 ακέραιοι x, y, z και για να υπολογίσει τον ΜΚΔ των x, y κάνει 4xlogx βήματα (δηλ Ο(logx))

Η πολυπλοκότητα ενός αλγορίθμου δίνει ένα μέτρο της χρονικής καθυστέρησης του αλγορίθμου για την επίλυση ενός προβλήματος n μέγεθος του προβλήματος Πχ αν ζητείται να ταξινομηθούν k αριθμοί, τότε το μέγεθος του προβλήματος είναι k, δηλ n=k

Μετά την επίλυση ενός προβλήματος με έναν αλγόριθμο γίνεται προσπάθεια να σχεδιαστεί νέος αλγόριθμος με μεγαλύτερη ταχύτητα εύρεσης της λύσης του προβλήματος πχ ένας αλγόριθμος ταξινόμησης που περιγράφεται σε επόμενο κεφάλαιο απαιτεί Ο(n2) συγκρίσεις. Υπάρχουν ταχύτεροι αλγόριθμοι όπως η QuickSort που απαιτεί Ο(nlogn) συγκρίσεις. Η μελέτη αυτού του ζητήματος γίνεται στο πλαίσιο της Θεωρίας Πολυπλοκότητας

Βασικοί τύποι αλγορίθμων Σειριακοί λέγονται οι αλγόριθμοι που χρησιμοποιούν μία κεντρική μονάδα επεξεργασίας και οι εντολές τους εκτελούνται σε σειρά η μία μετά την άλλη Η ύπαρξη προβλημάτων στα οποία απαιτείται πολύ μεγάλος χρόνος για τον υπολογισμό της λύσης, δημιούργησε την ανάγκη εύρεσης αλγορίθμων, όπου ορισμένα ή μια σειρά από βήματα εκτελούνται ταυτόχρονα Παράλληλοι χαρακτηρίζονται οι αλγόριθμοι που χρησιμοποιούν πολλαπλές κεντρικές μονάδες επεξεργασίας όπου ορισμένες ή μία σειρά από εντολές εκτελούνται παράλληλα (ταυτόχρονα)

Παράδειγμα : έστω ένας πίνακας που έχει ως περιεχόμενο τους αριθμούς που ακολουθούν. Στόχος η αύξουσα ταξινόμηση των αριθμών Σειριακά Εντοπίζεται το μικρότερο στοιχείο (3) και αντιμετατίθεται με το στοιχείο της 1ης θέσης. Εντοπίζεται το μικρότερο (6) από τα υπόλοιπα στοιχεία και αντιμετατίθεται με το στοιχείο της 2ης θέσης. Εντοπίζεται το μικρότερο (8) από τα υπόλοιπα στοιχεία (είναι το στοιχείο της 3ης θέσης)

παράλληλα Συγκρίνονται ταυτόχρονα με 2 επεξεργαστές το 1ο με το 2ο στοιχείο και το 3ο με το 4ο . Αν δεν είναι σωστά διατεταγμένα, αντιμετατίθενται. Συγκρίνονται ταυτόχρονα με 2 επεξεργαστές το 1ο με το 3ο στοιχείο και το 2ο με το 4ο . Αν δεν είναι σωστά διατεταγμένα, αντιμετατίθενται. Τώρα το μικρότερο από όλα τα στοιχεία είναι στην 1η θέση και το μεγαλύτερο στην 4η . Τα μεσαία στοιχεία δεν είναι βέβαιο ότι είναι σωστά διατεταγμένα. Οπότε απαιτείται άλλη μία σύγκριση αυτών των 2 με έναν επεξεργαστή και ολοκληρώνεται η ταξινόμηση. Δεν μπορούν να λυθούν όλα τα προβλήματα με χρήση παράλληλου υπολογισμού

Βασικοί τύποι αλγορίθμων Επαναληπτικοί Τα περισσότερα προβλήματα απαιτούν την εκτέλεση ορισμένων συγκεκριμένων βημάτων πολλές φορές. Παραδείγματα Ευκλείδιος αλγόριθμος Αλγόριθμος ταξινόμησης με επιλογή Αλγόριθμος υπολογισμού του παραγοντικού του αριθμού Ν Ν! = 1.2.3. … . (Ν-1).Ν Πχ 5! = 1.2.3.4.5 = 120

Βασικοί τύποι αλγορίθμων Αναδρομικοί Αλγόριθμοι που υλοποιούν μία αναδρομική σχέση, αποκαλούνται αναδρομικοί. Παραδείγματα Αλγόριθμος υπολογισμού του παραγοντικού του αριθμού Ν 0! = 1 (1) Ν! = Ν. (Ν-1)! Για Ν>=1 (2) Από τη σχέση (2) φαίνεται ότι το παραγοντικό του Ν ορίζεται χρησιμοποιώντας το παραγοντικό του Ν-1. Έτσι για να βρεθεί η τιμή του Ν! πρέπει να βρεθεί η τιμή του (Ν-1)!, η τιμή του οποίου χρειάζεται την τιμή του (Ν-2)! κοκ Πχ 5! = 5.4!= 5.4.3! = 5.4.3.2!= 5.4.3.2.1! = 5.4.3.2.1.0! = 5.4.3.2.1.1 = 120

Αναπαράσταση αλγορίθμου… Φυσική γλώσσα Η αναπαράσταση γίνεται με την ομιλούμενη γλώσσα μέσω της οποίας περιγράφονται τα βήματα επίλυσης του προβλήματος. Ωστόσο μπορούν να παρατηρηθούν ασάφειες στις οδηγίες. Ψευδοκώδικα ή ψευδογλώσσα Είναι υποθετική γλώσσα για την αναπαράσταση αλγορίθμων με στοιχεία από κάποιες γλώσσες προγραμματισμού, παραλείποντας λεπτομέρειες που δεν είναι ουσιαστικές για την ανθρώπινη κατανόηση του αλγορίθμου

… Αναπαράσταση αλγορίθμου Γλώσσα προγραμματισμού Είναι μία τεχνητή γλώσσα που έχει αναπτυχθεί για να εκφράζει προγράμματα για τον υπολογιστή. Οπτικές γλώσσες προγραμματισμού η αναπαράσταση των αλγορίθμων γίνεται μέσα από γραφικό χειρισμό προγραμματιστικών στοιχείων Κειμενικές γλώσσες προγραμματισμού η αναπαράσταση των αλγορίθμων γίνεται με τη χρήση σειρών κειμένου που περιλαμβάνουν λέξεις, αριθμούς και σημεία στίξης

… Αναπαράσταση αλγορίθμου Μεθοδολογίες διαγραμματικής αναπαράστασης Η πιο διαδεδομένη είναι το διάγραμμα ροής, όπου η περιγραφή και η αναπαράσταση των αλγορίθμων γίνεται με τη χρήση γεωμετρικών σχημάτων – συμβόλων, όπου το καθένα δηλώνει μία συγκεκριμένη ενέργεια ή λειτουργία

Παράδειγμα Να αναπτυχθεί αλγόριθμος με φυσική γλώσσα, με διάγραμμα ροής και με ψευδογλώσσα, ο οποίος θα διαβάζει τις τιμές 2 μεταβλητών και θα αντιμεταθέτει το περιεχόμενό τους. Στη συνέχεια θα εμφανίζει το περιεχόμενο των μεταβλητών μετά την αντιμετάθεση Φυσική γλώσσα Αφού εισαχθούν οι τιμές 2 μεταβλητών α και β, να δώσεις το περιεχόμενο της μεταβλητής α σε μία νέα μεταβλητή temp. Μετά να δώσεις το περιεχόμενο της β στην α και τέλος το περιεχόμενο της temp στη β.