Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Order of Adjectives 1.Opinionγνώμη 2.Sizeμέγεθος 3.Ageηλικία 4.Shapeσχήμα 5.Colourχρώμα 6.Originκαταγωγή 7.Materialυλικό 8.Purposeσκοπός 9.+ Objectτο αντικείμενο,
Advertisements

ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 Δείκτες σε συναρτήσεις Δείκτης σε συνάρτηση – Περιέχει τη διεύθυνση του κώδικα της συνάρτησης – Ό π ως ένας.
8-1 ΜΑΘΗΜΑ 8 ο Εισαγωγή στους Αλγόριθμους Ταξινόμησης.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Small spaces Big ideas! ΜΙΚΡΑ ΔΙΑΜΕΡΙΣΜΑΤΑ. ΠΟΛΛΕΣ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ ΤΑΥΤΟΧΡΟΝΑ ΕΝΙΑΙΟΣ ΧΩΡΟΣ/ΔΙΑΧΩΡΙΣΤΙΚΑ ΧΡΗΣΗ ΤΟΥ ΥΨΟΥΣ ΤΩΝ ΔΩΜΑΤΙΩΝ ΠΡΑΚΤΙΚΟΤΗΤΑ ΕΝΑΝΤΙΟΝ.
ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΤΗΝ ΚΟΙΝΟΤΗΤΑ Γκζα Αναστασία Α. Μ
ONLINE ΠΑΙΧΝΙΔΙΑ Παρουσιάζουν οι μαθητές: Γ Ι Ο Υ Λ Η Λ Ι Ο Υ Ν Η Ι Α Σ Ω Ν Α Σ Τ Α Σ Σ Η Σ.
ZΕπίδοση αλγορίθμων zΠολυπλοκότητα αλγορίθμων Κεφάλαιο 5 : Ανάλυση Αλγορίθμων.
Τούλα Πατσάλη Διεύθυνση Διαρθρωτικών Ταμείων και Ταμείου Συνοχής Γραφείο Προγραμματισμού ΕΝΔΕΙΚΤΙΚΟ ΠΛΑΝΟ ΑΞΙΟΛΟΓΗΣΕΩΝ ΣΥΝΑΝΤΗΣΗ ΤΗΣ ΚΑΘΟΔΗΓΗΤΙΚΗΣ ΕΠΙΤΡΟΠΗΣ.
Τι είναι η Ακολουθία Φιμπονάτσι και ποιος ο ρόλος της στην Επιστήμη, στη βιολογία και στην τέχνη; 1o ΠΡΟΤΥΠΟ ΠΕΙΡΑΜΑΤΙΚΟ ΓΥΜΝΑΣΙΟ ΠΛΑΚΑΣ ΤΜΗΜΑ B΄3 ΘΕΜΑ.
ΦΙΛΟΣΟΦΙΑ ΓΕΝΙΚΟ ΛΥΚΕΙΟ ( ΗΜΕΡΗΣΙΟ - ΕΣΠΕΡΙΝΟ ) Τάξη Β ΄ Ι. Π. Αμπελάς, Δρ Φιλοσοφίας Αναδιάρθρωση και εξορθολογισμός διδακτέας ύλης.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το εσωτερικό του Υπολογιστή Β΄ τάξη Λέξεις Κλειδιά: Μητρική πλακέτα, κάρτες επέκτασης, κάρτα οθόνης, κάρτα ήχου, τροφοδοτικό, Κεντρική.
Οι Δομές Δεδομένων Ουρά και Στοίβα
Kant: Ηθική Φιλοσοφία Ενότητα 5η: Η υποθετική προστακτική της σύνεσης
Ορισμοί Ιεραρχικός Μη γραμμικός τύπος δεδομένων Γονέας – Παιδιά
Επεξεργασία Ομιλίας & Ήχου
Η γυναίκα ως «Άλλος» στη λογοτεχνία
5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθμων Ε. Μαρκάκης
Η ΕΙΔΙΚΟΤΗΤΑ ΤΗΣ ΕΡΓΟΘΕΡΑΠΕΙΑΣ
Εξέλιξη των ιδεών στις Φυσικές Επιστήμες
«Δημότης Αμαρουσίου» η τεχνολογία στην υπηρεσία του Πολίτη
ΚΥΤΤΑΡΑ ΤΗΣ ΦΥΣΙΚΗΣ ΜΗ ΕΙΔΙΚΗΣ ΑΝΟΣΙΑΣ
Περιορισμοί Αλγοριθμικής Ισχύος – Κατηγοριοποίηση πολυπλοκοτήτων
Εισαγωγή στον Προγ/μό Υπολογιστών
Ταξινόμηση Φυσσαλίδας (bubblesort)
Kant: Ηθική Φιλοσοφία Ενότητα 4η: Η υποθετική προστακτική της επιδεξιότητας Παύλος Κόντος Σχολή Ανθρωπιστικών & Κοινωνικών Επιστημών Τμήμα Φιλοσοφίας.
Κεντρική Μονάδα Επεξεργασίας
Διαχείριση Έργου Συστήματα Παραγωγής Σύγχρονες Τεχνολογίες Παραγωγής
Βασικά στοιχεία της θεωρίας πιθανοτήτων
ΠΡΟΓΡΑΜΜΑ ΚΑΘΗΜΕΡΙΝΌΤΗΤΑΣ
H μεγαλη εκρηξη.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 1: Ο Υπολογιστής και η Επεξεργασία των Δεδομένων
Ο άνθρωπος πάντα αισθανόταν εγκλωβισμένος στη γη…
1ο ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΦΛΩΡΙΝΑΣ
Δύναμη και κίνηση Γιατί το κιβώτιο σταματά;
Μνήμη RAM, rom, cache ….
Να ζωογονούν το ανθρώπινο πνεύμα με την παροχή βιβλίων
Άσκηση 4 (7η Άσκηση εργαστηριακού οδηγού) Β Γυμνασίου
ΔΙΑΣΤΗΜΑ Πληροφορίες, εικόνες και άλλα σχετικά.
Κολοκάσι Σωτήρας Κολοκάσι-Πούλλες Σωτήρας
Απ’ το ΚΕΔΔΥ στο ΚΕΔΔΥ Ξάνθη 21/3/2017.
Ένα ταξίδι με πολύ φαντασία
Εικόνα 2.1: Η Κεντρική Μονάδα.
Διαδικτυακός εκφοβισμός
Οι Δομές Δεδομένων Ουρά και Στοίβα
Άσκηση 3 Σώμα μάζας m=2kg ηρεμεί σε οριζόντιο επίπεδο. Κάποια στιγμή ασκούνται ταυτόχρονα στο σώμα δύο δυνάμεις F1=10N και F2=5N, όπως φαίνεται στο σχήμα.
Εικόνα 2.1: Η Κεντρική Μονάδα.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
ΕΚΣΤΡΑΤΕΙΑ ΕΝΗΜΕΡΩΣΗΣ ΓΙΑ ΤΗΝ ΧΡΗΣΗ ΨΗΦΙΑΚΩΝ ΤΕΧΝΟΛΟΓΙΩΝ
Πολυπλοκότητα Αλγορίθμων
Εισαγωγή στους Η/Υ και στο περιβάλλον της Compaq Visual Fortran
Λύση προβλημάτων και Δημιουργικότητα
Отпор кретању тела.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ
Η ΔΗΜΙΟΥΡΓΙΑ ΤΟΥ ΣΥΜΠΑΝΤΟΣ.
Τεχνολογία Εστιατορικής Τέχνης
תרגול 3 - רקורסיות 3 שיטות עיקריות לפתור נוסחאות זמן ריצה רקורסיביות:
THIẾT KẾ VÀ ĐÁNH GIÁ THUẬT TOÁN
«Προώθηση οίνων σε αγορές τρίτων χωρών»
Δομές Δεδομένων (Data Structures)
Εισήγηση 5ης εβδομάδας – κατά παραγγελία κοστολόγηση
17/2/2019 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ (2) Ενότητα A1.1 β Ο Δάσκαλος.
ΔΗΜΙΟΥΡΓΙΚΗΣ ΕΡΓΑΣΙΑ Κατασκευή “προσομοιώσεων βαρών” ενός σώματος στην επιφάνεια των πλανητών του Ηλιακού Συστήματος 1ο ΓΕΛ Αγίου Δημητρίου Σχολικό έτος.
Δομές Δεδομένων (Data Structures)
Immanuel Kant Αξιολογική θεμελίωση της πολιτικής
Σάββατο 8 Ιουνίου 2019 Εθνική Βιβλιοθήκη της Ελλάδος
Το συνεχές και ο χρόνος.
Ηλεκτρονικές εφαρμογές Φορολογίας Κεφαλαίου
Μεταγράφημα παρουσίασης:

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ Κεφάλαιο 5: Ανάλυση Αλγορίθμων 5.1 Επίδοση Αλγορίθμων 5.1.1 Χειρότερη περίπτωση ενός αλγορίθμου 5.1.2 Μέγεθος εισόδου ενός αλγορίθμου 5.1.3 Χρόνος εκτέλεσης προγράμματος ενός αλγορίθμου 5.1.4 Αποδοτικότητα αλγορίθμου 5.3 Πολυπλοκότητα Αλγορίθμων

5.1 Επίδοση Αλγορίθμων Επίδοση Αλγορίθμου (performance) Αποδοτικότητα Αλγορίθμου (efficiency) Ερωτήματα: Πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; Πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι αλγόριθμοι; Πώς μπορεί να γνωρίζει κανείς αν ένας αλγόριθμος είναι "βέλτιστος";

5.1.1 Χειρότερη περίπτωση αλγορίθμου Αφορά στο μέγιστο κόστος εκτέλεσης του αλγορίθμου Μετράται σε υπολογιστικούς πόρους. Κρίνει την επιλογή και το σχεδιασμό Συνήθως χρησιμοποιείται η μέτρηση του αριθμού των βασικών πράξεων που θα πρέπει να εκτελέσει ο αλγόριθμος στη χειρότερη περίπτωση. Βασικές πράξεις μπορεί να είναι: Ανάθεση τιμής, Σύγκριση μεταξύ δύο μεταβλητών, ή Οποιαδήποτε αριθμητική πράξη μεταξύ δύο μεταβλητών.

5.1.1 Χειρότερη περίπτωση αλγορίθμου Χειρότερη περίπτωση: Οι τιμές εισόδου που οδηγούν στην εκτέλεση μέγιστου αριθμού βασικών πράξεων: Χειρότερη περίπτωση όταν γίνουν 10 επαναλήψεις (n=0)

5.1.2 Μέγεθος εισόδου αλγορίθμου Μέγεθος (size) του αλγορίθμου: Οι μεταβλητές που απεικονίζουν τους διαφορετικούς συνδυασμούς τιμών που κρίνουν τη συμπεριφορά ενός αλγορίθμου και δίνονται ως δεδομένα στον αλγόριθμο. Τα δεδομένα συνιστούν το μέγεθος της εισόδου ενός αλγορίθμου. (π.χ. η μεταβλητή n στο προηγούμενο παράδειγμα εκφράζει το πλήθος των επαναλήψεων του βασικού βρόχου του αλγορίθμου).

5.1.2 Μέγεθος εισόδου αλγορίθμου

5.1.3 Χρόνος εκτέλεσης προγράμματος Να υπολογιστεί η επίδοση του αλγορίθμου με βάση τον αριθμό των πράξεων που θα εκτελεσθούν

5.1.3 Χρόνος εκτέλεσης προγράμματος Ο βρόχος θα εκτελεστεί 5 φορές. Με βάση αυτό προκύπτει η ανάλυση:

5.1.3 Χρόνος εκτέλεσης προγράμματος Γενικά, για εκτέλεση του βρόχου n φορές έχουμε:

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

5.1.4 Αποδοτικότητα αλγορίθμου Ο χρόνος εκτέλεσης ενός αλγορίθμου εξαρτάται από: Τύπος ηλεκτρονικού υπολογιστή που θα εκτελέσει το πρόγραμμα του αλγορίθμου, Γλώσσα προγραμματισμού που θα χρησιμοποιηθεί, Δομή προγράμματος και δομές δεδομένων που χρησιμοποιούνται, Χρόνος για πρόσβαση στο δίσκο και στις ενέργειες εισόδου-εξόδου, Είδος συστήματος, ενός χρήστη ή πολλών χρηστών.

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

5.3 Πολυπλοκότητα Αλγορίθμων (1/7) Τρόποι μέτρησης της επίδοσης ενός αλγορίθμου: Εμπειρικός (empirical) ή εκ των υστέρων (a posteriori). Ο αλγόριθμος υλοποιείται και εφαρμόζεται σε ένα σύνολο δεδομένων, ώστε να υπολογισθεί ο απαιτούμενος χρόνος επεξεργασίας (processing time) και η χωρητικότητα μνήμης (memory space). Μειονεκτήματα: Είναι δύσκολο να προβλεφθεί η συμπεριφορά του αλγορίθμου για κάποιο άλλο σύνολο δεδομένων Ο χρόνος επεξεργασίας εξαρτάται από το υλικό, τη γλώσσα προγραμματισμού και το μεταφραστή και προ πάντων από τη δεινότητα του προγραμματιστή. Έτσι μπορεί να συναχθούν λανθασμένες εκτιμήσεις για την επίδοση του αλγορίθμου.

5.3 Πολυπλοκότητα Αλγορίθμων (2/7) Τρόποι μέτρησης της επίδοσης ενός αλγορίθμου: Θεωρητικός (theoretical) ή εκ των προτέρων (a priori). Εισάγεται μία μεταβλητή n, που εκφράζει το μέγεθος (size) του προβλήματος, ώστε η μέτρηση της αποδοτικότητας του αλγορίθμου να ισχύει για οποιοδήποτε σύνολο δεδομένων. Η σημασία της μεταβλητής αυτής εξαρτάται από το πρόβλημα, που πρόκειται να επιλυθεί. Παράδειγμα: Αν το πρόβλημα είναι η ταξινόμηση k στοιχείων τότε n=k. Στη συνέχεια ο χρόνος επεξεργασίας και ο απαιτούμενος χώρος μνήμης εκτιμώνται με τη βοήθεια μίας συνάρτησης f(n) που εκφράζει τη: τη χρονική πολυπλοκότητα (time complexity) την πολυπλοκότητα χώρου (space complexity)

5.3 Πολυπλοκότητα Αλγορίθμων (3/7) Σε πολλές περιπτώσεις όμως δεν ενδιαφέρουν οι επακριβείς τιμές αλλά μόνο η γενική συμπεριφορά των αλγορίθμων, δηλαδή η τάξη του αλγορίθμου. Για το λόγο αυτό εισάγεται ο λεγόμενος συμβολισμός Ο (O-notation), όπου το Ο είναι το αρχικό γράμμα της αγγλικής λέξης order και διαβάζεται “όμικρον κεφαλαίο” (big-O).

5.3 Πολυπλοκότητα Αλγορίθμων (4/7) Παράδειγμα: Έστω ότι η πολυπλοκότητα ενός αλγορίθμου δίνεται από το πολυώνυμο f(n) = 2n3 + 5n2 – 4n + 3. Ο πιο σημαντικός όρος του πολυωνύμου είναι η τρίτη δύναμη καθώς το x αυξάνεται (και τείνει στο άπειρο) ο όρος αυτός συνεχώς καθίσταται σημαντικότερος, ενώ η σημασία των υπολοίπων όρων σταδιακά μειώνεται. Επιπλέον, αγνοείται ο συντελεστής 2 της τρίτης δύναμης Έτσι προκύπτει ότι g(n) = n3. Τελικά η πολυπλοκότητα του αλγορίθμου είναι O(n3). Η έκφραση αυτή εκφράζει την ποιοτική και όχι την ποσοτική συμπεριφορά του αλγορίθμου.

5.3 Πολυπλοκότητα Αλγορίθμων (5/7) Ο συμβολισμός Ο δίνει ένα άνω φράγμα για την πολυπλοκότητα ενός αλγορίθμου, δηλαδή δίνει ένα μέτρο, που ποτέ δεν πρόκειται να ξεπεράσει ο αλγόριθμος προς τα επάνω. Κατηγορίες χρονικής πολυπλοκότητας αλγορίθμων πρακτικού ενδιαφέροντος: Ο(1) σταθερής πολυπλοκότητας. O(logn) λογαριθμικής πολυπλοκότητας. (με "log" συμβολίζεται ο δυαδικός λογάριθμος, ενώ με "In« συμβολίζεται ο φυσικός λογάριθμος. O(n) γραμμικής πολυπλοκότητας (καλύτερη επίδοση για έναν αλγόριθμο που πρέπει να εξετάσει ή να δώσει στην έξοδο n στοιχεία). Ο(n logn) (διαβάζεται όπως ακριβώς γράφεται (n logn)). Ο(n2) τετραγωνικής πολυπλοκότητας. Ο(n3) κυβικής πολυπλοκότητας. Ο(2n) εκθετικής πολυπλοκότητας.

5.3 Πολυπλοκότητα Αλγορίθμων (6/7) Παραδείγματα: Ταξινόμηση ευθείας ανταλλαγής (bubblesort): Άρα η πολυπλοκότητα είναι Ο(n2) Σειριακή (γραμμική) αναζήτηση: Άρα η πολυπλοκότητα είναι Ο(n)

5.3 Πολυπλοκότητα Αλγορίθμων (7/7)