Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων"

Transcript

1 Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Ενότητα 4 1 / 45

2 Ενότητα 4 Πειραµατική Αξιολόγηση Αλγορίθµων Σχεδιασµός Πειραµάτων Μετρολογία Αξιολόγηση Απόδοσης 2 / 45

3 Σχεδιασµός Πειραµάτων Πείραµα - Βασικό κριτήριο 3 / 45

4 Σχεδιασµός Πειραµάτων Πείραµα - Βασικό κριτήριο Πρέπει να απαντά σε συγκεκριµένες ερωτήσεις 3 / 45

5 Σχεδιασµός Πειραµάτων Πείραµα - Βασικό κριτήριο Πρέπει να απαντά σε συγκεκριµένες ερωτήσεις Να ακολουθεί την «επιστηµονική µέθοδο» [Popper] Προσδιορισµός υπόθεσης ή ερωτήµατος Συλλογή δεδοµένων για δοκιµή Εξασφάλιση επανάληψης (αναπαραγωγής) και σπουδαιότητας πειράµατος 3 / 45

6 Σχεδιασµός Πειραµάτων Πείραµα - Βασικό κριτήριο Πρέπει να απαντά σε συγκεκριµένες ερωτήσεις Να ακολουθεί την «επιστηµονική µέθοδο» [Popper] Προσδιορισµός υπόθεσης ή ερωτήµατος Συλλογή δεδοµένων για δοκιµή Εξασφάλιση επανάληψης (αναπαραγωγής) και σπουδαιότητας πειράµατος 3 / 45

7 Σχεδιασµός Πειραµάτων ιαδικαστικοί Κανόνες 4 / 45

8 Σχεδιασµός Πειραµάτων ιαδικαστικοί Κανόνες Προσδιορισµός ξεκάθαρων στόχων: Ποια ερωτήµατα ϑέτονται ; Τι ακριβώς ϑέλουµε να ελέγξουµε ; 4 / 45

9 Σχεδιασµός Πειραµάτων ιαδικαστικοί Κανόνες Προσδιορισµός ξεκάθαρων στόχων: Ποια ερωτήµατα ϑέτονται ; Τι ακριβώς ϑέλουµε να ελέγξουµε ; Συλλογή δεδοµένων εισόδου Οχι µετατροπές έως ότου συλλεχθούν όλα τα δεδοµένα, προς αποφυγή δηµιουργίας πολωτικών ϕαινοµένων 4 / 45

10 Σχεδιασµός Πειραµάτων ιαδικαστικοί Κανόνες Προσδιορισµός ξεκάθαρων στόχων: Ποια ερωτήµατα ϑέτονται ; Τι ακριβώς ϑέλουµε να ελέγξουµε ; Συλλογή δεδοµένων εισόδου Οχι µετατροπές έως ότου συλλεχθούν όλα τα δεδοµένα, προς αποφυγή δηµιουργίας πολωτικών ϕαινοµένων Ανάλυση (πειραµατικών) δεδοµένων για απάντηση αρχικών στόχων Θεωρήστε σε επόµενη ϕάση πώς ένας νέος κύκλος πειραµάτων µπορεί να αυξήσει την κατανόησή σας 4 / 45

11 Σχεδιασµός Πειραµάτων Σύνολα δεδοµένων 5 / 45

12 Σχεδιασµός Πειραµάτων Σύνολα δεδοµένων Τυχαία στιγµιότυπα µέση συµπεριφορά 5 / 45

13 Σχεδιασµός Πειραµάτων Σύνολα δεδοµένων Τυχαία στιγµιότυπα µέση συµπεριφορά Συνθετικά στιγµιότυπα συγκεκριµένη συµπεριφορά (π.χ., ΠΧΠ) 5 / 45

14 Σχεδιασµός Πειραµάτων Σύνολα δεδοµένων Τυχαία στιγµιότυπα µέση συµπεριφορά Συνθετικά στιγµιότυπα συγκεκριµένη συµπεριφορά (π.χ., ΠΧΠ) Πραγµατικά στιγµιότυπα πρακτική συµπεριφορά Πολύ χρήσιµα, αλλά συχνά δύσκολο να ϐρεθούν Σύνολα δεδοµένων που δηµιουργήθηκαν από πραγµατικά δεδοµένα µέσω τυχαίων µεταθέσεων ή µέσω πιθανοτικών εκτιµήσεων µπορεί να αποδειχθούν χρήσιµα στη ϕάση δοκιµής 5 / 45

15 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι 6 / 45

16 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι Επιλογή του υπολογιστικού περιβάλλοντος (λανθάνουσα µνήµη, διευθυνσιοδότηση, µετακίνηση δεδοµένων) 6 / 45

17 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι Επιλογή του υπολογιστικού περιβάλλοντος (λανθάνουσα µνήµη, διευθυνσιοδότηση, µετακίνηση δεδοµένων) Επιλογή γλώσσας προγραµµατισµού (χειρισµός καταχωρητών, ενσωµατωµένοι τύποι) και µεταγλωττιστή (ποιότητα ϐελτιστοποίησης και παραγωγής κώδικα) 6 / 45

18 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι Επιλογή του υπολογιστικού περιβάλλοντος (λανθάνουσα µνήµη, διευθυνσιοδότηση, µετακίνηση δεδοµένων) Επιλογή γλώσσας προγραµµατισµού (χειρισµός καταχωρητών, ενσωµατωµένοι τύποι) και µεταγλωττιστή (ποιότητα ϐελτιστοποίησης και παραγωγής κώδικα) Ποιότητα προγραµµατισµού (ικανότητα και συνέπεια προγρ/στών, χρήση ϐιβλιοθηκών) 6 / 45

19 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι Επιλογή του υπολογιστικού περιβάλλοντος (λανθάνουσα µνήµη, διευθυνσιοδότηση, µετακίνηση δεδοµένων) Επιλογή γλώσσας προγραµµατισµού (χειρισµός καταχωρητών, ενσωµατωµένοι τύποι) και µεταγλωττιστή (ποιότητα ϐελτιστοποίησης και παραγωγής κώδικα) Ποιότητα προγραµµατισµού (ικανότητα και συνέπεια προγρ/στών, χρήση ϐιβλιοθηκών) Συλλογή ή παραγωγή στιγµιοτύπων δεδοµένων (ποικιλία τύπων και µεγάλα µεγέθη για διασφάλιση σπουδαιότητας) 6 / 45

20 Σχεδιασµός Πειραµάτων Ενδεχόµενοι κίνδυνοι Επιλογή του υπολογιστικού περιβάλλοντος (λανθάνουσα µνήµη, διευθυνσιοδότηση, µετακίνηση δεδοµένων) Επιλογή γλώσσας προγραµµατισµού (χειρισµός καταχωρητών, ενσωµατωµένοι τύποι) και µεταγλωττιστή (ποιότητα ϐελτιστοποίησης και παραγωγής κώδικα) Ποιότητα προγραµµατισµού (ικανότητα και συνέπεια προγρ/στών, χρήση ϐιβλιοθηκών) Συλλογή ή παραγωγή στιγµιοτύπων δεδοµένων (ποικιλία τύπων και µεγάλα µεγέθη για διασφάλιση σπουδαιότητας) Μέθοδος ανάλυσης πειραµατικών δεδοµένων (ελαχιστοποίηση επίπτωσης από την επιλογή υπολογιστικού περιβάλλοντος) 6 / 45

21 Σχεδιασµός Πειραµάτων Τυπικά λάθη 7 / 45

22 Σχεδιασµός Πειραµάτων Τυπικά λάθη Μη ενδιαφέρουσα πειραµατική µελέτη σύγκριση γλωσσών προγ/σµού ή (ανόµοιων) υπολογιστικών περιβαλλόντων σύγκριση αλγορίθµων µε τελείως διαφορετική συµπεριφορά 7 / 45

23 Σχεδιασµός Πειραµάτων Τυπικά λάθη Μη ενδιαφέρουσα πειραµατική µελέτη σύγκριση γλωσσών προγ/σµού ή (ανόµοιων) υπολογιστικών περιβαλλόντων σύγκριση αλγορίθµων µε τελείως διαφορετική συµπεριφορά Κακός σχεδιασµός Πειράµατα µέχρι κάποιο χρόνο ή χώρο χωρίς επαλήθευση ασυµπτωτικής πολυπλοκότητας Χρήση πολύ λίγων στιγµιοτύπων εισόδου Χρήση κώδικα χωρίς ϐελτιστοποίηση Χρήση έτοιµου κώδικα χωρίς τεκµηρίωση Αγνοια ϐιβλιοθηκών και τυποποιηµένων δεδοµένων δοκιµής (benchmarks) 7 / 45

24 Σχεδιασµός Πειραµάτων Τυπικά λάθη Μη ενδιαφέρουσα πειραµατική µελέτη σύγκριση γλωσσών προγ/σµού ή (ανόµοιων) υπολογιστικών περιβαλλόντων σύγκριση αλγορίθµων µε τελείως διαφορετική συµπεριφορά Κακός σχεδιασµός Πειράµατα µέχρι κάποιο χρόνο ή χώρο χωρίς επαλήθευση ασυµπτωτικής πολυπλοκότητας Χρήση πολύ λίγων στιγµιοτύπων εισόδου Χρήση κώδικα χωρίς ϐελτιστοποίηση Χρήση έτοιµου κώδικα χωρίς τεκµηρίωση Αγνοια ϐιβλιοθηκών και τυποποιηµένων δεδοµένων δοκιµής (benchmarks) Κακή ανάλυση ή παρουσίαση δεδοµένων Απόρριψη µη αναµενόµενων αποτελεσµάτων χωρίς συστηµατική διερεύνηση/επεξήγηση Παρουσίαση όλων των αποτελεσµάτων χωρίς ανάλυση/δοµή Σύγκριση µε όχι καλώς ορισµένα πρότυπα (π.χ. µε την ϱουτίνα ταξινόµησης του συστήµατος) 7 / 45

25 Μετρολογία 8 / 45

26 Μετρολογία Τι µετράµε ; 8 / 45

27 Μετρολογία Τι µετράµε ; Πώς το µετράµε ; 8 / 45

28 Μετρολογία Τι µετράµε ; Πώς το µετράµε ; Πώς εξασφαλίζουµε ότι οι µετρήσεις δεν αλληλεπιδρούν µε τα πειράµατα ; 8 / 45

29 Μετρολογία Τι µετράµε ; Πώς το µετράµε ; Πώς εξασφαλίζουµε ότι οι µετρήσεις δεν αλληλεπιδρούν µε τα πειράµατα ; Καθολική Συµβουλή Πάντοτε να κοιτάτε πέρα από τις προφανείς µετρήσεις! 8 / 45

30 Μετρολογία Τι µετράµε Πειραµατικές µελέτες που αφορούν στην ποιότητα της (προσεγγιστικής) λύσης: 9 / 45

31 Μετρολογία Τι µετράµε Πειραµατικές µελέτες που αφορούν στην ποιότητα της (προσεγγιστικής) λύσης: Χρόνο µε δοµηµένο τρόπο (π.χ. αριθµός επαναλήψεων) 9 / 45

32 Μετρολογία Τι µετράµε Πειραµατικές µελέτες που αφορούν στην ποιότητα της (προσεγγιστικής) λύσης: Χρόνο µε δοµηµένο τρόπο (π.χ. αριθµός επαναλήψεων) Ρυθµός σύγκλισης στην τελική λύση 9 / 45

33 Μετρολογία Τι µετράµε Πειραµατικές µελέτες που αφορούν στην ποιότητα της (προσεγγιστικής) λύσης: Χρόνο µε δοµηµένο τρόπο (π.χ. αριθµός επαναλήψεων) Ρυθµός σύγκλισης στην τελική λύση Οπου είναι δυνατόν, προσδιορισµός της ϐέλτιστης λύσης (µε ωµή ϐία, αν είναι αναγκαίο) 9 / 45

34 Μετρολογία Τι µετράµε Πειραµατικές συγκριτικές µελέτες που αφορούν αλγορίθµους επιλύσιµων προβληµάτων: 10 / 45

35 Μετρολογία Τι µετράµε Πειραµατικές συγκριτικές µελέτες που αφορούν αλγορίθµους επιλύσιµων προβληµάτων: Πάντοτε το χρόνο εκτέλεσης! π.χ. σε δευτερόλεπτα 10 / 45

36 Μετρολογία Τι µετράµε Πειραµατικές συγκριτικές µελέτες που αφορούν αλγορίθµους επιλύσιµων προβληµάτων: Πάντοτε το χρόνο εκτέλεσης! π.χ. σε δευτερόλεπτα οµικές µετρικές (αριθµός προσπελάσεων στην µνήµη, αριθµός συγκρίσεων, αριθµός κορυφών/πλευρών που εξετάστηκαν, µετακινήσεις πλοκάδων δεδοµένων, κλπ) 10 / 45

37 Μετρολογία Τι µετράµε Πειραµατικές συγκριτικές µελέτες που αφορούν αλγορίθµους επιλύσιµων προβληµάτων: Πάντοτε το χρόνο εκτέλεσης! π.χ. σε δευτερόλεπτα οµικές µετρικές (αριθµός προσπελάσεων στην µνήµη, αριθµός συγκρίσεων, αριθµός κορυφών/πλευρών που εξετάστηκαν, µετακινήσεις πλοκάδων δεδοµένων, κλπ) "Profiling" (πού και σε ποια ποσότητα αναλώθηκε ο χρόνος ;) 10 / 45

38 Μετρολογία Τι µετράµε Πειραµατικές συγκριτικές µελέτες που αφορούν αλγορίθµους επιλύσιµων προβληµάτων: Πάντοτε το χρόνο εκτέλεσης! π.χ. σε δευτερόλεπτα οµικές µετρικές (αριθµός προσπελάσεων στην µνήµη, αριθµός συγκρίσεων, αριθµός κορυφών/πλευρών που εξετάστηκαν, µετακινήσεις πλοκάδων δεδοµένων, κλπ) "Profiling" (πού και σε ποια ποσότητα αναλώθηκε ο χρόνος ;) Καθορισµός τιµών αναφοράς για (µελλοντική) κανονικοποίηση 10 / 45

39 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων 11 / 45

40 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων ιασφάλιση αναπαραγωγής (επανάληψης) πειράµατος 11 / 45

41 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων ιασφάλιση αναπαραγωγής (επανάληψης) πειράµατος Οχι απόρριψη «ανωµαλιών», αλλά διαλεύκανσή τους (όσο είναι δυνατόν) 11 / 45

42 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων ιασφάλιση αναπαραγωγής (επανάληψης) πειράµατος Οχι απόρριψη «ανωµαλιών», αλλά διαλεύκανσή τους (όσο είναι δυνατόν) Χρήση κατάλληλων στατιστικών µετρικών 11 / 45

43 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων ιασφάλιση αναπαραγωγής (επανάληψης) πειράµατος Οχι απόρριψη «ανωµαλιών», αλλά διαλεύκανσή τους (όσο είναι δυνατόν) Χρήση κατάλληλων στατιστικών µετρικών Ελαχιστοποίηση επίδρασης υπολογιστικής πλατφόρµας, κώδικα, λανθάνουσας µνήµης, κλπ, µε αντιπαραβολή και κανονικοποίηση 11 / 45

44 Μετρολογία Αναπαράσταση και ανάλυση δεδοµένων ιασφάλιση αναπαραγωγής (επανάληψης) πειράµατος Οχι απόρριψη «ανωµαλιών», αλλά διαλεύκανσή τους (όσο είναι δυνατόν) Χρήση κατάλληλων στατιστικών µετρικών Ελαχιστοποίηση επίδρασης υπολογιστικής πλατφόρµας, κώδικα, λανθάνουσας µνήµης, κλπ, µε αντιπαραβολή και κανονικοποίηση Οχι παρουσίαση ακατέργαστων δεδοµένων όταν είναι δυνατή η κανονικοποίηση αποτέλεσµα επίλυσης / ϐέλτιστη λύση χρόνος εκτέλεσης / χρόνος εκτέλεσης ϱουτίνας αναφοράς 11 / 45

45 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι 12 / 45

46 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι [Kruskal 1956] 12 / 45

47 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι [Kruskal 1956] [Prim 1958] (χρησιµοποιώντας δυαδικούς σωρούς και σωρούς pairing, Fibonacci, relaxed) 12 / 45

48 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι [Kruskal 1956] [Prim 1958] (χρησιµοποιώντας δυαδικούς σωρούς και σωρούς pairing, Fibonacci, relaxed) [Cheriton & Tarjan, 1976] 12 / 45

49 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι [Kruskal 1956] [Prim 1958] (χρησιµοποιώντας δυαδικούς σωρούς και σωρούς pairing, Fibonacci, relaxed) [Cheriton & Tarjan, 1976] [Fredman & Tarjan, 1987] 12 / 45

50 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Υλοποιηµένοι Αλγόριθµοι [Kruskal 1956] [Prim 1958] (χρησιµοποιώντας δυαδικούς σωρούς και σωρούς pairing, Fibonacci, relaxed) [Cheriton & Tarjan, 1976] [Fredman & Tarjan, 1987] [Gabow, Galil, Spence, & Tarjan, 1986] 12 / 45

51 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικό περιβάλλον και αρχικοποίηση 13 / 45

52 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικό περιβάλλον και αρχικοποίηση Τρεις διαφορετικές υπολογιστικές πλατφόρµες 13 / 45

53 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικό περιβάλλον και αρχικοποίηση Τρεις διαφορετικές υπολογιστικές πλατφόρµες ιαφορετικές γλώσσες προγ/σµού και µεταγλωττιστές, αλλά ένας προγραµµατιστής 13 / 45

54 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικό περιβάλλον και αρχικοποίηση Τρεις διαφορετικές υπολογιστικές πλατφόρµες ιαφορετικές γλώσσες προγ/σµού και µεταγλωττιστές, αλλά ένας προγραµµατιστής ιερεύνηση Ϲητηµάτων χαµηλού-επιπέδου (δείκτες vs αριθµοδείκτες, µετακινήσεις δεδοµένων vs έµµεση διευθυνσιοδότηση, κλπ) πριν την τελική απόφαση των υλοποιήσεων 13 / 45

55 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου 14 / 45

56 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου Πέντε διαφορετικές οικογένειες γραφηµάτων 14 / 45

57 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου Πέντε διαφορετικές οικογένειες γραφηµάτων Συγκεκριµένες συνθετικές οικογένειες γραφηµάτων χειρότερης περίπτωσης (µε συνθήκες αντιπαλότητας) 14 / 45

58 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου Πέντε διαφορετικές οικογένειες γραφηµάτων Συγκεκριµένες συνθετικές οικογένειες γραφηµάτων χειρότερης περίπτωσης (µε συνθήκες αντιπαλότητας) Ολες οι οικογένειες συµπεριελάµβαναν πολύ µεγάλα γραφήµατα (έως 10 6 κορυφές και άνω των 10 6 ακµών) 14 / 45

59 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου Πέντε διαφορετικές οικογένειες γραφηµάτων Συγκεκριµένες συνθετικές οικογένειες γραφηµάτων χειρότερης περίπτωσης (µε συνθήκες αντιπαλότητας) Ολες οι οικογένειες συµπεριελάµβαναν πολύ µεγάλα γραφήµατα (έως 10 6 κορυφές και άνω των 10 6 ακµών) Εκτέλεση τουλάχιστον 20 στιγµιοτύπων κάθε µεγέθους, ελέγχοντας την συνέπεια των αποτελεσµάτων σε ανεξάρτητες σειρές πειραµάτων 14 / 45

60 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Σύνολα δεδοµένων εισόδου Πέντε διαφορετικές οικογένειες γραφηµάτων Συγκεκριµένες συνθετικές οικογένειες γραφηµάτων χειρότερης περίπτωσης (µε συνθήκες αντιπαλότητας) Ολες οι οικογένειες συµπεριελάµβαναν πολύ µεγάλα γραφήµατα (έως 10 6 κορυφές και άνω των 10 6 ακµών) Εκτέλεση τουλάχιστον 20 στιγµιοτύπων κάθε µεγέθους, ελέγχοντας την συνέπεια των αποτελεσµάτων σε ανεξάρτητες σειρές πειραµάτων Προληπτικά µέτρα εξ αρχής για ελαχιστοποίηση προβληµάτων µεταφοράς δεδοµένων από τη δευτερεύουσα στην κύρια µνήµη (εύκολο) καθώς και αστοχιών λανθάνουσας µνήµης (δύσκολο) 14 / 45

61 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Στόχοι πειραµατικής µελέτης 15 / 45

62 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Στόχοι πειραµατικής µελέτης Ελαχιστοποίηση επίδρασης λανθάνουσας µνήµης και άλλων εξαρτήσεων της υπολογιστικής πλατφόρµας 15 / 45

63 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Στόχοι πειραµατικής µελέτης Ελαχιστοποίηση επίδρασης λανθάνουσας µνήµης και άλλων εξαρτήσεων της υπολογιστικής πλατφόρµας Κανονικοποίηση χρόνων εκτέλεσης σε όλες τις υπολογιστικές πλατφόρµες 15 / 45

64 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Στόχοι πειραµατικής µελέτης Ελαχιστοποίηση επίδρασης λανθάνουσας µνήµης και άλλων εξαρτήσεων της υπολογιστικής πλατφόρµας Κανονικοποίηση χρόνων εκτέλεσης σε όλες τις υπολογιστικές πλατφόρµες Εκτίµηση της επιρροής των όρων χαµηλής-τάξης και επαλήθευση της ασυµπτωτικής συµπεριφοράς 15 / 45

65 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Στόχοι πειραµατικής µελέτης Ελαχιστοποίηση επίδρασης λανθάνουσας µνήµης και άλλων εξαρτήσεων της υπολογιστικής πλατφόρµας Κανονικοποίηση χρόνων εκτέλεσης σε όλες τις υπολογιστικές πλατφόρµες Εκτίµηση της επιρροής των όρων χαµηλής-τάξης και επαλήθευση της ασυµπτωτικής συµπεριφοράς Αµεση οπτική εικόνα της σχετικής αποδοτικότητας κάθε αλγορίθµου για κάθε τύπο και µέγεθος γραφήµατος 15 / 45

66 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Επίτευξη στόχων 16 / 45

67 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Επίτευξη στόχων Απλή στρατηγική κανονικοποίησης ανά υπολογιστική πλατφόρµα: Κανονικοποίηση µετρούµενων χρόνων εκτέλεσης των αλγορίθµων ΕΓ µέσω του χρόνου εκτέλεσης µιας απλής διαδικασίας γραµµικού χρόνου, µε παρόµοιο πρότυπο προσπέλασης µνήµης ιαδικασία: µέτρηση του αριθµού των ακµών του γραφήµατος διατρέχοντας τις λίστες γειτονικότητας 16 / 45

68 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Επίτευξη στόχων Απλή στρατηγική κανονικοποίησης ανά υπολογιστική πλατφόρµα: Κανονικοποίηση µετρούµενων χρόνων εκτέλεσης των αλγορίθµων ΕΓ µέσω του χρόνου εκτέλεσης µιας απλής διαδικασίας γραµµικού χρόνου, µε παρόµοιο πρότυπο προσπέλασης µνήµης ιαδικασία: µέτρηση του αριθµού των ακµών του γραφήµατος διατρέχοντας τις λίστες γειτονικότητας Το παρόµοιο πρότυπο προσπέλασης µνήµης απάλειψε τις περισσότερες αστοχίες της λανθάνουσας µνήµης 16 / 45

69 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Επίτευξη στόχων Απλή στρατηγική κανονικοποίησης ανά υπολογιστική πλατφόρµα: Κανονικοποίηση µετρούµενων χρόνων εκτέλεσης των αλγορίθµων ΕΓ µέσω του χρόνου εκτέλεσης µιας απλής διαδικασίας γραµµικού χρόνου, µε παρόµοιο πρότυπο προσπέλασης µνήµης ιαδικασία: µέτρηση του αριθµού των ακµών του γραφήµατος διατρέχοντας τις λίστες γειτονικότητας Το παρόµοιο πρότυπο προσπέλασης µνήµης απάλειψε τις περισσότερες αστοχίες της λανθάνουσας µνήµης Η παρόµοια αποαναφοροποίηση δεικτών απάλειψε τις περισσότερες εξαρτήσεις από την υπολογιστική πλατφόρµα 16 / 45

70 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Επίτευξη στόχων Απλή στρατηγική κανονικοποίησης ανά υπολογιστική πλατφόρµα: Κανονικοποίηση µετρούµενων χρόνων εκτέλεσης των αλγορίθµων ΕΓ µέσω του χρόνου εκτέλεσης µιας απλής διαδικασίας γραµµικού χρόνου, µε παρόµοιο πρότυπο προσπέλασης µνήµης ιαδικασία: µέτρηση του αριθµού των ακµών του γραφήµατος διατρέχοντας τις λίστες γειτονικότητας Το παρόµοιο πρότυπο προσπέλασης µνήµης απάλειψε τις περισσότερες αστοχίες της λανθάνουσας µνήµης Η παρόµοια αποαναφοροποίηση δεικτών απάλειψε τις περισσότερες εξαρτήσεις από την υπολογιστική πλατφόρµα Η άµεση σύγκριση µε το κάτω ϕράγµα της διαδικασίας γραµµικού χρόνου κατέδειξε αµέσως την ασυµπτωτική συµπεριφορά και ανέδειξε τη σχετική αποδοτικότητα κάθε αλγορίθµου 16 / 45

71 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Χρήσιµα πειραµατικά επακόλουθα 17 / 45

72 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Χρήσιµα πειραµατικά επακόλουθα Αρχικές υλοποιήσεις µε σωρούς Fibonacci και relaxed έδειχναν µη ανταγωνιστικές 17 / 45

73 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Χρήσιµα πειραµατικά επακόλουθα Αρχικές υλοποιήσεις µε σωρούς Fibonacci και relaxed έδειχναν µη ανταγωνιστικές Υιοθέτηση ιδέας των [Driscoll et al, 1988]: οµαδοποίηση κορυφών σε µεγάλες µονάδες («σάκους») έτσι ώστε αλλαγές τιµής κλειδιών να επιλύονται συνήθως εντός της µονάδας και να µην απαιτείται η αναδόµηση του σωρού 17 / 45

74 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Χρήσιµα πειραµατικά επακόλουθα Αρχικές υλοποιήσεις µε σωρούς Fibonacci και relaxed έδειχναν µη ανταγωνιστικές Υιοθέτηση ιδέας των [Driscoll et al, 1988]: οµαδοποίηση κορυφών σε µεγάλες µονάδες («σάκους») έτσι ώστε αλλαγές τιµής κλειδιών να επιλύονται συνήθως εντός της µονάδας και να µην απαιτείται η αναδόµηση του σωρού Υλοποίηση σωρών µε σάκους: αποδείχθηκε µια πολύ κρίσιµη απόφαση! 17 / 45

75 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικά αποτελέσµατα 18 / 45

76 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικά αποτελέσµατα Ο απλούστερος αλγόριθµος ήταν µακράν ο ταχύτερος: αλγόριθµος Prim υλοποιηµένος µε σωρό pairing ή απλό δυαδικό σωρό 18 / 45

77 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικά αποτελέσµατα Ο απλούστερος αλγόριθµος ήταν µακράν ο ταχύτερος: αλγόριθµος Prim υλοποιηµένος µε σωρό pairing ή απλό δυαδικό σωρό Ούτε οι πιο εκλεπτυσµένες υλοποιήσεις για λογικά µεγέθη γραφηµάτων, αλλά ούτε και οι πιο εκλεπτυσµένοι αλγόριθµοι απέδωσαν (στην πράξη) την αναµενόµενη αποδοτικότητα 18 / 45

78 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικά αποτελέσµατα Ο απλούστερος αλγόριθµος ήταν µακράν ο ταχύτερος: αλγόριθµος Prim υλοποιηµένος µε σωρό pairing ή απλό δυαδικό σωρό Ούτε οι πιο εκλεπτυσµένες υλοποιήσεις για λογικά µεγέθη γραφηµάτων, αλλά ούτε και οι πιο εκλεπτυσµένοι αλγόριθµοι απέδωσαν (στην πράξη) την αναµενόµενη αποδοτικότητα Η τελικές υλοποιήσεις του αλγορίθµου Prim µε σωρούς Fibonacci ήταν σχεδόν 10 ϕορές ταχύτερες από την αρχική (λόγω των σάκων) 18 / 45

79 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] Πειραµατικά αποτελέσµατα Ο απλούστερος αλγόριθµος ήταν µακράν ο ταχύτερος: αλγόριθµος Prim υλοποιηµένος µε σωρό pairing ή απλό δυαδικό σωρό Ούτε οι πιο εκλεπτυσµένες υλοποιήσεις για λογικά µεγέθη γραφηµάτων, αλλά ούτε και οι πιο εκλεπτυσµένοι αλγόριθµοι απέδωσαν (στην πράξη) την αναµενόµενη αποδοτικότητα Η τελικές υλοποιήσεις του αλγορίθµου Prim µε σωρούς Fibonacci ήταν σχεδόν 10 ϕορές ταχύτερες από την αρχική (λόγω των σάκων) Οι πολυλογαριθµικοί παράγοντες δεν παίζουν σηµαντικό ϱόλο 18 / 45

80 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] ιδάγµατα 19 / 45

81 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] ιδάγµατα Είναι αναγκαία η εκτέλεση πειραµάτων σε διαφορετικές υπολογιστικές πλατφόρµες και µεταγλωττιστές 19 / 45

82 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] ιδάγµατα Είναι αναγκαία η εκτέλεση πειραµάτων σε διαφορετικές υπολογιστικές πλατφόρµες και µεταγλωττιστές Μια πολύ µεγάλη ποικιλία µεγεθών είναι ουσιώδης 19 / 45

83 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] ιδάγµατα Είναι αναγκαία η εκτέλεση πειραµάτων σε διαφορετικές υπολογιστικές πλατφόρµες και µεταγλωττιστές Μια πολύ µεγάλη ποικιλία µεγεθών είναι ουσιώδης Χρειάζεται εξαιρετικά µεγάλη προσοχή στην παραγωγή στιγµιοτύπων εισόδου 19 / 45

84 Μελέτη Περίπτωσης: Ελάχ. Γεννητικά ένδρα [Moret & Shapiro, 1995] ιδάγµατα Είναι αναγκαία η εκτέλεση πειραµάτων σε διαφορετικές υπολογιστικές πλατφόρµες και µεταγλωττιστές Μια πολύ µεγάλη ποικιλία µεγεθών είναι ουσιώδης Χρειάζεται εξαιρετικά µεγάλη προσοχή στην παραγωγή στιγµιοτύπων εισόδου Η κανονικοποίηση µέσω µιας κατάλληλης ϱουτίνας ϐάσης είναι πολύ επιτυχής στην εξοµάλυνση των διαφόρων διακυµάνσεων που οφείλονται στην αρχιτεκτονική και την λανθάνουσα µνήµη, όπως και στην ανάδειξη της ασυµπτωτικής συµπεριφορας και της σχετικής αποδοτικότητας των ανταγωνιστικών αλγορίθµων 19 / 45

85 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Μεταβατική κλειστότητα (transitive closure), ή προσπελασιµότητα (reachability): δεδοµένου ενός κατευθυνόµενου γραφήµατος G, να προσδιοριστεί, u, v G, εάν η v είναι προσπελάσιµη από την u ( µια διαδροµή u-v) Πλήρως δυναµικό πρόβληµα: διατήρηση µεταβατικής κλειστότητας όταν το G υφίσταται µεταβολές (εισαγωγές νέων ακµών και διαγραφές υπαρχόντων ακµών) 20 / 45

86 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Υλοποιηµένοι Αλγόριθµοι 21 / 45

87 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Υλοποιηµένοι Αλγόριθµοι Πλήρως δυναµικοί [King 1999] [King & Thorup, 2001] [Roditty & Zwick, 2002] [Roditty 2003] [Roditty & Zwick, 2004] [Demetrescu & Italiano, 2000] (όχι αποκλειστικά συνδυαστικός) 21 / 45

88 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Υλοποιηµένοι Αλγόριθµοι Πλήρως δυναµικοί [King 1999] [King & Thorup, 2001] [Roditty & Zwick, 2002] [Roditty 2003] [Roditty & Zwick, 2004] [Demetrescu & Italiano, 2000] (όχι αποκλειστικά συνδυαστικός) Ψευδο-πλήρως δυναµικοί RZ-Opt ϐασισµένος στον µειωτικό αλγόριθµο των [Roditty & Zwick, 2002] Ital-Gen [Frigioni,Miller,Nanni, & Zaroliagis 1998;2001] 21 / 45

89 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Υλοποιηµένοι Αλγόριθµοι Πλήρως δυναµικοί [King 1999] [King & Thorup, 2001] [Roditty & Zwick, 2002] [Roditty 2003] [Roditty & Zwick, 2004] [Demetrescu & Italiano, 2000] (όχι αποκλειστικά συνδυαστικός) Ψευδο-πλήρως δυναµικοί RZ-Opt ϐασισµένος στον µειωτικό αλγόριθµο των [Roditty & Zwick, 2002] Ital-Gen [Frigioni,Miller,Nanni, & Zaroliagis 1998;2001] Απλοϊκοί [Frigioni,Miller,Nanni, & Zaroliagis 1998;2001] 21 / 45

90 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Αλγόριθµος Αναφορά Επιµερ. Χρόνος Ενηµέρωσης Ερώτηµα Χώρος Ital-Gen [FMNZ,01] O(n) per ins O(m) per del O(1) O(n 2 ) RZ-Opt [KZ, 05;08] O(m) per ins O(n) per del O(1) O(n 2 ) RZ-1 [RZ,02] O(m n) O( n) O(n 2 ) Rod [R,03] O(n 2 ) O(1) O(n 2 ) Rod-Opt [KZ, 05;08] O(n 2 ) O(1) O(n 2 ) RZ-P [RZ,04] O(m + n log n) O(n) O(nm) King-1 [K,99] O(n 2 log n) O(1) O(n 2 log n) King-2 [KZ, 05;08] O(n 2 log n) O(1) O(n 2 log n) King-3 [KZ, 05;08] O(n 2 D) O(1) O(n 2 ) DI [DI,00] O(n 2 ) O(1) O(n 2 ) Simple [FMNZ,01] O(1) O(n + m) O(n + m) m = m 0 + m (m 0 : αρχικός αριθµός ακµών) m = Θ(m) εισαγωγές/διαγραφές ακµών D : διάµετρος γραφήµατος 22 / 45

91 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικό περιβάλλον και αρχικοποίηση 23 / 45

92 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικό περιβάλλον και αρχικοποίηση C++ µε χρήση της LEDA και του LEDA Extension Package on Dynamic Graph Algorithms (LEP-DGA) 23 / 45

93 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικό περιβάλλον και αρχικοποίηση C++ µε χρήση της LEDA και του LEDA Extension Package on Dynamic Graph Algorithms (LEP-DGA) Υπολογιστικά περιβάλλοντα: (ι) Sun UltraSparc II µε 4 επεξεργαστές στα 300 MHz, λειτουργικό σύστηµα Solaris 7, 1.2GB κύρια µνήµη, και 2ΜΒ λανθάνουσας µνήµης L2 ανά επεξεργαστή (ιι) Intel Pentium 4 (P4) στα 1.6 GHz, µε λειτουργικό σύστηµα linux SUSE 7.3, 512MB κύρια µνήµη, και 512KB λανθάνουσα µνήµη L2 (ιιι) AMD Athlon στα 1.9 GHz, µε λειτουργικό σύστηµα linux Mandrake 10, 512MB κύρια µνήµη, και 256KB λανθάνουσα µνήµη L2 23 / 45

94 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Σύνολα δεδοµένων εισόδου 24 / 45

95 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Σύνολα δεδοµένων εισόδου Τυχαία στιγµιότυπα εισόδου n [100, 700], m 0 {0, n/2, n, n log n, n 1.5, n 2 / log n, n 2 /4} Ακολουθία δυναµικών λειτουργιών σ: σ [500, 50000] οµοιόµορφα αναµεµειγµένες ενηµερώσεις (εισ/διαγ) µε ερωτήµατα οµοιόµορφα αναµεµειγµένες εισαγωγές, διαγραφές, και ερωτήµατα 24 / 45

96 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Σύνολα δεδοµένων εισόδου Τυχαία στιγµιότυπα εισόδου n [100, 700], m 0 {0, n/2, n, n log n, n 1.5, n 2 / log n, n 2 /4} Ακολουθία δυναµικών λειτουργιών σ: σ [500, 50000] οµοιόµορφα αναµεµειγµένες ενηµερώσεις (εισ/διαγ) µε ερωτήµατα οµοιόµορφα αναµεµειγµένες εισαγωγές, διαγραφές, και ερωτήµατα Συνθετικά (χειρότερης περίπτωσης) στιγµιότυπα εισόδου: n/k κλίκες K k 24 / 45

97 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Σύνολα δεδοµένων εισόδου Τυχαία στιγµιότυπα εισόδου n [100, 700], m 0 {0, n/2, n, n log n, n 1.5, n 2 / log n, n 2 /4} Ακολουθία δυναµικών λειτουργιών σ: σ [500, 50000] οµοιόµορφα αναµεµειγµένες ενηµερώσεις (εισ/διαγ) µε ερωτήµατα οµοιόµορφα αναµεµειγµένες εισαγωγές, διαγραφές, και ερωτήµατα Συνθετικά (χειρότερης περίπτωσης) στιγµιότυπα εισόδου: n/k κλίκες K k Πραγµατικά δεδοµένα εισόδου Τµήµα του διαδικτυακού γραφήµατος προσπελάσιµο από το RIPE (1259 κορυφές, 5101 ακµές) Οδικό δίκτυο των ΗΠΑ (576 κορυφές, 1762 ακµές) 24 / 45

98 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Στόχοι πειραµατικής µελέτης 25 / 45

99 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Στόχοι πειραµατικής µελέτης Ελλειψη πρακτικής αξιολόγησης µιας πληθώρας νέων ϑεωρητικών (και πολύπλοκων) αλγορίθµων 25 / 45

100 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Στόχοι πειραµατικής µελέτης Ελλειψη πρακτικής αξιολόγησης µιας πληθώρας νέων ϑεωρητικών (και πολύπλοκων) αλγορίθµων Επίτευξη καλύτερου αποτελέσµατος από την τετριµµένη λύση (επανυπολογισµός εξ αρχής) 25 / 45

101 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικά αποτελέσµατα 26 / 45

102 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικά αποτελέσµατα Αδόµητα (τυχαία & πραγµατικά) στιγµιότυπα εισόδου: οι ψευδο-πλήρως δυναµικοί υπερτερούν RZ-Opt < 2 3 DBFS < 8 Ital-Gen < 3 5 RZ-1 < 3 7 RZ-P < 3 Rod-Opt Μακράν οι χειρότεροι: Rod-Opt < 1.5 Rod 10 DI < 2.5 King-3 < 2 King-2 < 2 King-1 DI: µικρότερο ποσοστό αστοχιών λανθάνουσας µνήµης από κάθε άλλο αλγόριθµο 26 / 45

103 Μελέτη Περίπτωσης: Πλήρως υναµική Μεταβατική Κλειστότητα [Krommidas & Zaroliagis, 2005;2008] Πειραµατικά αποτελέσµατα Αδόµητα (τυχαία & πραγµατικά) στιγµιότυπα εισόδου: οι ψευδο-πλήρως δυναµικοί υπερτερούν RZ-Opt < 2 3 DBFS < 8 Ital-Gen < 3 5 RZ-1 < 3 7 RZ-P < 3 Rod-Opt Μακράν οι χειρότεροι: Rod-Opt < 1.5 Rod 10 DI < 2.5 King-3 < 2 King-2 < 2 King-1 DI: µικρότερο ποσοστό αστοχιών λανθάνουσας µνήµης από κάθε άλλο αλγόριθµο οµηµένα (συνθετικα) στιγµιότυπα εισόδου: πλήρως δυναµικοί αλγόριθµοι έχουν πολύ καλή απόδοση (αλλά είναι σχεδόν πάντοτε χειρότεροι των απλοϊκών) 26 / 45

104 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου 27 / 45

105 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου Ασχολείται µε την µέτρηση και την αξιολόγηση των πραγµατικών χρονικών απαιτήσεων ενός προγράµµατος 27 / 45

106 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου Ασχολείται µε την µέτρηση και την αξιολόγηση των πραγµατικών χρονικών απαιτήσεων ενός προγράµµατος Ο πραγµατικός χρόνος εξαρτάται σε µεγάλο ϐαθµό από τον συγκεκριµένο µεταγλωττιστή και τις επιλογές του, καθώς και από το υπολογιστικό σύστηµα πάνω στο οποίο εκτελείται το πρόγραµµα 27 / 45

107 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου 28 / 45

108 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου Η C++ παρέχει έναν µηχανισµό ϱολογιού που χρησιµοποιεί Την συνάρτηση clock() (επιστρέφει τον αριθµό των «χτύπων» από τη στιγµή που το πρόγραµµα άρχισε να εκτελείται) Την µεταβλητή CLOCKS_PER_SEC (προσδιορίζει τη σχέση µεταξύ «χτύπων» ϱολογιού και δευτερολέπτων) 28 / 45

109 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου Η C++ παρέχει έναν µηχανισµό ϱολογιού που χρησιµοποιεί Την συνάρτηση clock() (επιστρέφει τον αριθµό των «χτύπων» από τη στιγµή που το πρόγραµµα άρχισε να εκτελείται) Την µεταβλητή CLOCKS_PER_SEC (προσδιορίζει τη σχέση µεταξύ «χτύπων» ϱολογιού και δευτερολέπτων) Πραγµατικός χρόνος (sec) = Αριθµός «Χτύπων» CLOCKS_PER_SEC 28 / 45

110 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση Συνάρτηση ενθετικής ταξινόµησης template<class T> void InsertionSort(T a[], int n) { // Sort a[0:n-1] for (int i = 1; i < n; i++) { // insert a[i] into a[0:i-1] T t = a[i]; int j; for (j = i-1; j >= 0 && t < a[j]; j--) a[j+1] = a[j]; a[j+1] = t; } } Χρονική ΠΧΠ: O(n 2 ) 29 / 45

111 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 30 / 45

112 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση Στόχος: µέτρηση των πραγµατικών χρονικών απαιτήσεων ΧΠ της συνάρτησης InsertionSort 30 / 45

113 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση Στόχος: µέτρηση των πραγµατικών χρονικών απαιτήσεων ΧΠ της συνάρτησης InsertionSort Προσδιορισµός Μεγέθους εισόδου n Σύνολα δεδοµένων που αναγκάζουν την InsertionSort να αναδείξει την ΠΧΠ της 30 / 45

114 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 31 / 45

115 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση Ποιο στιγµιότυπο εισόσου είναι στιγµιότυπο ΧΠ για την InsertionSort ; 31 / 45

116 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση Ποιο στιγµιότυπο εισόσου είναι στιγµιότυπο ΧΠ για την InsertionSort ; Μια ϕθίνουσα ακολουθία 31 / 45

117 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 1η προσπάθεια #include <iostream> #include <time.h> #include "insort.h" int main() { int a[100000], step = 1000; clock_t start, finish; float seconds; cout << "CLOCKS_PER_SEC = " << CLOCKS_PER_SEC << endl; } for (int n = 0; n <= ; n += step) { // get time for size n for (int i = 0; i < n; i++) a[i] = n - i; // initialization start = clock( ); InsertionSort(a, n); finish = clock( ); seconds = float(finish - start) / CLOCKS_PER_SEC; cout << n << << finish - start << << seconds << endl; if (n == 10000) step = 10000; } return 0; 32 / 45

118 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 1η προσπάθεια Αποτελέσµατα (CLOCKS_PER_SEC = ) n Clocks Χρόνος / 45

119 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 1η προσπάθεια Αποτελέσµατα (CLOCKS_PER_SEC = ) Ακρίβεια: µόνο έως 0.01 secs n Clocks Χρόνος / 45

120 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 1η προσπάθεια Αποτελέσµατα (CLOCKS_PER_SEC = ) Ακρίβεια: µόνο έως 0.01 secs Μπορούµε να πετύχουµε καλύτερη ακρίβεια ; n Clocks Χρόνος / 45

121 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 2η προσπάθεια #include <iostream> #include <time.h> #include "insort.h" int main() { int a[100000], n, i, step = 1000; long counter; float seconds; clock_t start, finish; for (n = 0; n <= ; n += step) { // get time for size n start = clock( ); counter = 0; while (clock( ) - start < 10*CLOCKS_PER_SEC) { counter++; for (i = 0; i < n; i++) a[i] = n - i; // initialize InsertionSort(a, n); } finish = clock( ); seconds = float(finish - start) / CLOCKS_PER_SEC; cout << n << << counter << << seconds << << seconds / counter << endl; if (n == 10000) step = 10000; } return 0; } 34 / 45

122 Αξιολόγηση Απόδοσης Μελέτη Περίπτωσης: ενθετική ταξινόµηση 2η προσπάθεια Αποτελέσµατα (CLOCKS_PER_SEC = ) n Επαναλήψεις Συνολικός Χρόνος Χρόνος µιας Ταξινόµησης / 45

123 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου στην LEDA Η συνάρτηση used_time της LEDA float used_time(): επιστρέφει τον τρέχοντα χρόνο CPU σε δευτερόλεπτα float used_time(float& T): επιστρέφει τον χρόνο CPU που χρειάστηκε το πρόγραµµα από τη χρονική στιγµή Τ µέχρι αυτή τη στιγµή και καταχωρεί τον τρέχοντα χρόνο CPU στην µεταβλητή Τ 36 / 45

124 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου στην LEDA Το ακόλουθο τµήµα κώδικα... #include<leda/basic.h>... float T = used_time(); // sets T to the current CPU time // experiment 1... cout << used_time(t); // experiment 2... cout << used_time(t); // sets T to the current CPU time // and returns the difference to // the previous value of T εκτυπώνει τον CPU χρόνο που χρειάστηκε για κάθε ένα από τα δύο πειράµατα 37 / 45

125 Αξιολόγηση Απόδοσης Ενθετική ταξινόµηση used_time (1) #include <iostream> #include <LEDA/system/basic.h> #include "insort.h" int main() { int a[100000], step = 1000; float T1, T2 ; } for (int n = 0; n <= ; n += step) { // get time for size n for (int i = 0; i < n; i++) a[i] = n - i; // initialize T1=leda::used_time(); cout << T1 << ; InsertionSort(a, n); T2=leda::used_time(T1); cout << T1 << ; cout << n << << T2 << endl; if (n == 10000) step = 10000; } return 0; 38 / 45

126 Αξιολόγηση Απόδοσης Ενθετική ταξινόµηση used_time (1) Αποτελέσµατα T 1 (πριν) T 1 (µετά) n T / 45

127 Αξιολόγηση Απόδοσης Ενθετική ταξινόµηση used_time (2) #include <iostream> #include <LEDA/system/basic.h> #include "insort.h" int main() { int a[100000], step = 1000, iters = 10; float T1, T2 ; } for (int n = 0; n <= ; n += step) { T2=0; for (int j = 0; j < iters; j++) { // get time for size n for (int i = 0; i < n; i++) a[i] = n - i; // initialize T1 = leda::used_time(); cout << "T1= " << T1 << ; InsertionSort(a, n); T2 = T2 + leda::used_time(t1); cout << "T2= " << T2 << ; } cout << endl; cout << n << << "Avg(T2) = " << T2/iters << endl; if (n == 10000) step = 10000; } return 0; 40 / 45

128 Αξιολόγηση Απόδοσης Ενθετική ταξινόµηση used_time (2) Αποτελέσµατα n Avg(T 2) = 10 i=1 T2(i)/ / 45

129 Αξιολόγηση Απόδοσης Μέτρηση πραγµατικού χρόνου στην LEDA Αλλα βοηθητικά προγράµµατα για µέτρηση χρόνου Κλάση timer (δείτε το εγχειρίδιο της LEDA) 42 / 45

130 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων 43 / 45

131 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Σαφώς προσδιορισµένοι στόχοι 43 / 45

132 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Σαφώς προσδιορισµένοι στόχοι οκιµή ευρείας κλίµακας, τόσο ως προς το µέγεθος των στιγµιοτύπων εισόδου, όσο και ως προς τον αριθµό των στιγµιοτύπων που χρησιµοποιούνται για κάθε µέγεθος 43 / 45

133 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Σαφώς προσδιορισµένοι στόχοι οκιµή ευρείας κλίµακας, τόσο ως προς το µέγεθος των στιγµιοτύπων εισόδου, όσο και ως προς τον αριθµό των στιγµιοτύπων που χρησιµοποιούνται για κάθε µέγεθος Μίξη πραγµατικών, τυχαίων και συνθετικών στιγµιοτύπων εισόδου, συµπεριλαµβανοµένων τυχόν τυποποιηµένων δεδοµένων δοκιµής (benchmarks) όπου υπάρχουν 43 / 45

134 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Σαφώς προσδιορισµένοι στόχοι οκιµή ευρείας κλίµακας, τόσο ως προς το µέγεθος των στιγµιοτύπων εισόδου, όσο και ως προς τον αριθµό των στιγµιοτύπων που χρησιµοποιούνται για κάθε µέγεθος Μίξη πραγµατικών, τυχαίων και συνθετικών στιγµιοτύπων εισόδου, συµπεριλαµβανοµένων τυχόν τυποποιηµένων δεδοµένων δοκιµής (benchmarks) όπου υπάρχουν Σαφώς καθορισµένοι παράµετροι, συµπεριλαµβανοµένων εκείνων που προσδιορίζουν τεχνητά στιγµιότυπα εισόδου καθορίζουν την συλλογή δεδοµένων καθορίζουν το περιβάλλον δοκιµής (υπολογιστές, µεταγλωττιστές, κλπ) 43 / 45

135 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων 44 / 45

136 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Στατιστική ανάλυση των αποτελεσµάτων και προσπάθεια συσχέτισής τους µε την ϕύση των αλγορίθµων και των δεδοµένων δοκιµής 44 / 45

137 Συµπεράσµατα Χαρακτηριστικά γνωρίσµατα καλών πειραµάτων Στατιστική ανάλυση των αποτελεσµάτων και προσπάθεια συσχέτισής τους µε την ϕύση των αλγορίθµων και των δεδοµένων δοκιµής Αναπαραγωγή: δηµόσια διάθεση των στιγµιοτύπων εισόδου και των γεννητόρων τους (προκειµένου άλλοι επιστήµονες να µπορούν να εκτελέσουν τους δικούς τους αλγόριθµους στα ίδια στιγµιότυπα) του κώδικα των αλγορίθµων (επιθυµητό) 44 / 45

138 Ερωτήσεις ; 45 / 45

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 4 1 / 51 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 2 1 / 26 Ενότητα 2 Τεχνολογίες Υλοποίησης Αλγορίθµων

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 2 1 / 33 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 25 Ενότητα 3 οκιµή Προγραµµάτων (Program Testing)

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας.

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Ουρά Προτεραιότητας: Heap

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

Διαβάστε περισσότερα

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Δομές Δεδομένων Ουρά Προτεραιότητας: Heap Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο (Αναπαράσταση,)

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Εισαγωγή στους Αλγορίθμους Ενότητα 11η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Δυναμικός Προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμός

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Ελάχιστα Γεννητικά Δένδρα Ελάχιστο Γεννητικό

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX. Χρονομέτρηση

Προγραμματισμός συστημάτων UNIX/POSIX. Χρονομέτρηση Προγραμματισμός συστημάτων UNIX/POSIX Χρονομέτρηση Χρονομέτρηση (Ι) Πρώτα από όλα, τι ακριβώς θέλουμε να μετρήσουμε; Μας ενδιαφέρει ο χρόνος που ο επεξεργαστής αφιέρωσε σε ένα πρόγραμμα ή σε ένα συγκεκριμένο

Διαβάστε περισσότερα

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

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

Διαβάστε περισσότερα

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ομές εδομένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση Επίδοση Αλγορίθμων Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση πώς υπολογίζεται ο χρόνος εκτέλεσης

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα

Διαβάστε περισσότερα

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

Διαβάστε περισσότερα

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00 Χρήστος. Ζαρολιάγκης Τεχνολογίες Υλοποίησης Αλγορίθµων : Άσκηση 1 1 Ασκηση 1 [16.03.2016] Παράδοση : Τετάρτη 13.04.2016, 13:00 Η παρούσα άσκηση αφορά στον έλεγχο διµερότητας ενός γραφήµατος. Σκοπός της

Διαβάστε περισσότερα

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Κεφάλαιο 5 Ανάλυση Αλγορίθμων Κεφάλαιο 5 Ανάλυση Αλγορίθμων 5.1 Επίδοση αλγορίθμων Τα πρωταρχικά ερωτήματα που προκύπτουν είναι: 1. πώς υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 2. πώς μπορούν να συγκριθούν μεταξύ τους οι διάφοροι

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

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

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα 8: Ψηφιακή Αριθμητική Βασίλης Παλιουράς Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Γιατί μας ενδιαφέρει το δυαδικό Αριθμητικές

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η σειρά ασκήσεων (μέρος 2). Κοζάνη, 14 Δεκεμβρίου 2007. Κάθε πρόγραμμα εξαρτάται από αλγόριθμους και δομές δεδομένων, αλλά μόνο λίγα απαιτούν

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

Διαβάστε περισσότερα

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και Παύλος Εφραιμίδης 1 περιεχόμενα ενθετική ταξινόμηση ανάλυση αλγορίθμων σχεδίαση αλγορίθμων 2 ενθετική ταξινόμηση 3 ενθετική ταξινόμηση Βασική αρχή: Επιλέγει ένα-έναταστοιχείατηςμηταξινομημένης ακολουθίας

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ακαδηµαϊκό Έτος 2003-2004, Εαρινό Εξάµηνο ιδάσκων

Διαβάστε περισσότερα

Ελάχιστα Γεννητορικά ένδρα

Ελάχιστα Γεννητορικά ένδρα λάχιστα Γεννητορικά ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος του Prim και ο αλγόριθµος του Kruskal για εύρεση λάχιστων Γεννητορικών ένδρων ΠΛ 23 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Δομές Δεδομένων. Λουκάς Γεωργιάδης. Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 1

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 6 1 / 35 Ενότητα 6 - Συντοµότερες

Διαβάστε περισσότερα

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

Διαβάστε περισσότερα

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

Διαβάστε περισσότερα

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ : Θεωρία υπολογισµών. Συναρτήσεις και ο υπολογισµός τους. Μηχανές Turig.3 Καθολικές γλώσσες προγραµµατισµού.4 Μια µη υπολογίσιµη συνάρτηση.5 Πολυπλοκότητα προβληµάτων.6 Κρυπτογραφία δηµόσιου κλειδιού.

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Παρασκευή - 17/12/10 (08:30-11:30)

Διαβάστε περισσότερα

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 2 ο Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αλγόριθµοι Ορισµός Παράδειγµα Ασυµπτωτική

Διαβάστε περισσότερα

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 32 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 3η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Απλοί Αλγόριθμοι & Δομές Δεδομένων Δύο Απλές

Διαβάστε περισσότερα

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός Επιμέλεια διαφανειών: Δημήτρης Φωτάκης (λίγες προσθήκες: Άρης Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

http://www.cslab.ece.ntua.gr/diplom/

http://www.cslab.ece.ntua.gr/diplom/ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr/ ιπλωµατική

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

Αξιολόγηση Ευριστικών Αλγορίθµων

Αξιολόγηση Ευριστικών Αλγορίθµων Προσεγγιστικοί Αλγόριθµοι Πολλές ϕορές η εύρεση της ϐέλτιστων λύσεων προβληµάτων ακέραιου γραµµικού προγραµµατισµού είναι µια χρονοβόρα διαδικασία (εκθετική πολυπλοκότητα) Προσεγγιστικοί Αλγόριθµοι Πολλές

Διαβάστε περισσότερα

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

Δομές Δεδομένων Ενότητα 2 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

Διαβάστε περισσότερα

Υπολογιστική Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθµου Α: Ποσότητα υπολογιστικών πόρων που απαιτεί Α ως αύξουσα συνάρτηση µεγέθους στιγµιότυπου εισόδου. Χρόνος, µνήµη, επεξεργαστές, επικοινωνία,

Διαβάστε περισσότερα

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

Διαβάστε περισσότερα

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 11-1 Μη- οµηµένος Προγραµµατισµός Το πρόγραµµα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δοµή). Όλη η λειτουργικότητα

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

Διαβάστε περισσότερα

viii 20 Δένδρα van Emde Boas 543

viii 20 Δένδρα van Emde Boas 543 Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

Διαβάστε περισσότερα

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Κ Ο Τ Ι Ν Η Ι Σ Α Β Ε Λ Λ Α Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Π Ε 8 6 Ν Ε Ι Ρ Ο Σ Α Ν Τ Ω ΝΙ Ο Σ Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

Διαβάστε περισσότερα

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

Διαβάστε περισσότερα

Είδη Μεταβλητών. κλίµακα µέτρησης

Είδη Μεταβλητών. κλίµακα µέτρησης ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1 Εισαγωγικές Έννοιες 19 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Η Μεταβλητότητα Η Στατιστική Ανάλυση Η Στατιστική και οι Εφαρµοσµένες Επιστήµες Στατιστικός Πληθυσµός και Δείγµα Το στατιστικό

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Αρχές

Διαβάστε περισσότερα

Συναρτήσεις και Πίνακες

Συναρτήσεις και Πίνακες Συναρτήσεις και Πίνακες Συναρτήσεις καθιερωμένης βιβλιοθήκης της C++ Συναρτήσεις οριζόμενες από τον χρήστη Μεταβίβαση κατ αξία Συναρτήσεις void και λογικές συναρτήσεις Μεταβίβαση κατ αναφορά Επιστροφή

Διαβάστε περισσότερα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα