Εισαγωγή στο Σχεδιασμό και Ανάλυση Αλγορίθμων

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

Download "Εισαγωγή στο Σχεδιασμό και Ανάλυση Αλγορίθμων"

Transcript

1 Θ. Σ. ΠΑΠΑΘEOΔΩPOY Καθηγητής Πανεπιστημίου Πατρών Σημειώσεις για το μάθημα: Εισαγωγή στο Σχεδιασμό και Ανάλυση Αλγορίθμων Μάρτιος 998

2 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα

3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα. Εισαγωγή Κύριος στόχος του κεφαλαίου αυτού είναι η ανάπτυξη του απαραίτητου υπόβαθρου και η κατανόηση σημαντικών παραγόντων που χαρακτηρίζουν την συμπεριφορά και ανάλυση αλγορίθμων. Ορίζεται πρώτα η έννοια του αλγορίθμου διαισθητικά (.) και παρέχονται κάποια πρώτα παραδείγματα (.3), κυρίως για προετοιμασία των επομένων θεμάτων. Απαραίτητο και στοιχειώδες υπόβαθρο παρέχεται στις.4 (Γραφήματα),.5 (Δέντρα) και.6 (Ασυμπτωτικοί συμβολισμοί). Στην.7 θίγεται το θέμα της ορθότητας των αλγορίθμων. Οι σημαντικοί παράγοντες της συμπεριφοράς των αλγορίθμων περιγράφονται στην.8. Εκεί ορίζονται και συγκεκριμένες ποσότητες, γνωστές και ως πολυπλοκότητες, που αποτελούν ενδεικτικά μεν, αλλά έγκυρα μέτρα για το πόσο καλός είναι ένας αλγόριθμος. Όταν δεν μπορεί να υπάρξει αλγόριθμος που να έχει καλύτερη πολυπλοκότητα από κάποιο αλγόριθμο Α τότε ο Α είναι βέλτιστος, με κριτήριο πάντα την συγκεκριμένη αυτή πολυπλοκότητα (.9). Είναι βέβαια χρήσιμο να γνωρίζουμε αν ο καλύτερος γνωστός αλγόριθμος για ένα συγκεκριμένο πρόβλημα, είναι βέλτιστος. Επομένως χρειαζόμαστε τον υπολογισμό πολυπλοκοτήτων, τόσο για να γνωρίζουμε την αναμενόμενη συμπεριφορά του συγκεκριμένου αλγορίθμου, όσο και για να αποφασίσουμε αν ο αλγόριθμος είναι βέλτιστος ή πρέπει να αναζητηθεί νέος καλύτερος αλγόριθμος. Στην.0 παρέχονται αρκετά παραδείγματα υπολογισμού πολυπλοκοτήτων. Ταυτόχρονα, τα παραδείγματα αυτά εξυπηρετούν και το σκοπό της εισαγωγής αρκετών αλγορίθμων που λύνουν κάποια σημαντικά προβλήματα. Η ανάλυση αλγορίθμων βασίζεται και στην επίτευξη φραγμάτων για τις πολυπλοκότητες, τα οποία ισχύουν γενικά για μια ευρεία κατηγορία αλγορίθμων που λύνουν το ίδιο πρόβλημα. Εάν π.χ. ένας γνωστός αλγόριθμος έχει πολυπλοκότητα ίση με ένα κάτω φράγμα τότε σίγουρα είναι βέλτιστος ως προς την συγκεκριμένη πολυπλοκότητα. Μια γενική προσέγγιση για την επίτευξη φραγμάτων, που βασίζεται στην χρήση δέντρων, αναλύεται με δυο χρήσιμα παραδείγματα στην.. Ένα παράδειγμα βέλτιστου αλγορίθμου για το πρόβλημα της διάταξης λίστας, που βασίζεται στα θεωρητικά αποτελέσματα της., παρέχεται στην.. Άλλα παραδείγματα βέλτιστων αλγορίθμων παρουσιάζονται σε άλλα κεφάλαια. Για πολλά και σημαντικά προβλήματα δεν γνωρίζουμε αλγόριθμο που τα λύνει σε κάποιο λογικό χρονικό διάστημα. Εδώ εντάσσονται και μεγάλα προβλήματα βελτιστοποίησης, όπου υπάρχουν πολλές λύσεις ανάμεσα από τις οποίες πρέπει να επιλεγεί μια βέλτιστη. Ο αριθμός όμως των λύσεων είναι τόσο μεγάλος που η εξέταση όλων των υποψηφίων θα απαιτούσε πολλούς αιώνες συνεχούς υπολογισμού. Στην τελευταία παράγραφο (.3) επιχειρούμε μια πρώτη γνωριμία με τα θέματα αυτά. Συμβολισμός: Σε όλα τα θέματα το σύμβολο log χρησιμοποιείται για τον log, τον αλγόριθμο με βάση.

5 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 3. Τι είναι αλγόριθμος; Ο ορισμός που χρησιμοποιούμε χρειάζεται διευκρινήσεις (που ακολουθούν) και δεν είναι αυστηρός, όμως καλύπτει αρκετά τις ανάγκες που έχουμε εδώ: αλγόριθμος είναι ένας συνδυασμός ενεργειών, που λύνει κάθε στιγμιότυπο ενός δοσμένου προβλήματος και μπορεί να προγραμματιστεί σε κάποια υπολογιστική μηχανή. Όταν δίνεται ένα σύνολο πληροφοριών (είσοδος, εισαγόμενα, δεδομένα, iput) και ζητείται ένα νέο (έξοδος, εξαγόμενα, αποτελέσματα, ζητούμενα, οutput), λέμε ότι έχουμε ένα «στιγμιότυπο» κάποιου προβλήματος. Διαφορετικά στιγμιότυπα, των οποίων τα δεδομένα και τα εξαγόμενα έχουν τις ίδιες αυστηρά προκαθορισμένες ιδιότητες, αποτελούν στιγμιότυπα του ίδιου προβλήματος, το οποίο και ορίζεται σε κάποια γενική μορφή, από τις κοινές αυτές ιδιότητες. Παράδειγμα: Όταν δίνεται ο και η λίστα των ακεραίων {-6,5}, ή όταν δίνεται ο 4 και η λίστα ακεραίων {, -3, 0, 8} και όταν και στις δύο περιπτώσεις ζητείται να βρεθεί ο μέγιστος ακέραιος στην αντίστοιχη λίστα, τότε μπορούμε να πούμε ότι έχουμε δύο διαφορετικά στιγμιότυπα του ίδιου προβλήματος, που είναι: «δίνεται ο ακέραιος και η λίστα ακεραίων L={x,...,x } και ζητείται να βρεθεί ένα x L τέτοιο ώστε x k x i, i=,...,». Σύνολο εισαγομένων που δεν έχει τις αυστηρά προκαθορισμένες ιδιότητες δεν είναι «νόμιμο», ενώ αν τις έχει καλείται «νόμιμο», «παραδεκτό» κλπ. Έτσι, αν μιλάμε για το πρόβλημα του παραπάνω παραδείγματος, μια νόμιμη είσοδος δεν μπορεί να έχει =0, ούτε x =3/, ούτε x =A όπου Α δεν είναι ορισμένο, ούτε = με L={6,0,5}. Η απαίτηση του ορισμού μας ότι ο αλγόριθμος «λύνει κάθε στιγμιότυπο ενός δοσμένου προβλήματος» σημαίνει ότι ο αλγόριθμος δέχεται κάθε νόμιμο σύνολο εισαγομένων για το δοσμένο πρόβλημα, το επεξεργάζεται με κάποιο συγκεκριμένο τρόπο και παράγει ένα σύνολο εξαγομένων (που δεν είναι κατ ανάγκη σωστό). Σημειώνουμε ότι για το ίδιο πρόβλημα, γενικά, νόμιμα σύνολα εισαγομένων υπάρχουν άπειρα. Ακόμα, για να αποφύγουμε συζητήσεις για το αν ένας αλγόριθμος «μπορεί να πέσει σε άπειρη ανακύκλωση» και να μη τερματίσει, δεχόμαστε ότι η λέξη «λύνει», του ορισμού μας, αποκλείει την περίπτωση να επεξεργάζεται ο αλγόριθμος το νόμιμο σύνολο εισαγομένων «επ άπειρον», αλλά, σίγουρα, μετά από πεπερασμένο χρόνο ο αλγόριθμος θα βγάλει ένα (σωστό ή λανθασμένο) σύνολο εξαγομένων. Για να μπορεί ο αλγόριθμος «να προγραμματιστεί σε κάποια υπολογιστική μηχανή», όπως απαιτεί ο ορισμός, πρέπει να είναι δυνατή η διατύπωση του με εντολές, που μπορούν να προγραμματιστούν στην μηχανή, σε κάποια γλώσσα προγραμματισμού. Η μηχανή του ορισμού μπορεί να είναι υπαρκτή, ή να είναι θεωρητικό μοντέλο υπολογισμού. Το πιο συνηθισμένο ήταν να θεωρούμε δοσμένη την μηχανή και να σχεδιάζουμε τον αλγόριθμο γι αυτήν. Τώρα όμως, όλο και πιο πολύ, ισχύει και το αντίστροφο, δηλαδή σχεδιάζονται και υλοποιούνται υπολογιστικά συστήματα για δοσμένους αλγορίθμους. Αυτό φαίνεται καλύτερα στην μελέτη των παράλληλων υπολογιστών και παράλληλων αλγορίθμων. Τα ονόματα κατηγοριών μηχανών και κατηγοριών αλγορίθμων είναι αντίστοιχα. Έτσι έχουμε ακολουθιακούς αλγορίθμους, που μπορούν να υλοποιηθούν στους ακολουθιακούς (τους

6 4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα συνηθισμένους) υπολογιστές, παράλληλους αλγορίθμους, που μπορούν να τρέξουν σε υπαρκτούς (υπερ)υπολογιστές, σε συστήματα πολλών μικροεπεξεργαστών, ή ακόμα σε παράλληλα συστήματα που δεν έχουν ακόμα κατασκευαστεί, καθώς και μη αιτιοκρατικούς (o determiistic) αλγορίθμους, που «τρέχουν» σε θεωρητικά μοντέλα αντιστοίχων μηχανών και αλλά βοηθούν στην ανάλυση αλγορίθμων για υπαρκτές μηχανές. Και οι εντολές αλγορίθμων και μηχανών, παρομοίως, βρίσκονται σε αντιστοιχία. Για παράδειγμα, ένας ακολουθιακός αλγόριθμος, για να τρέξει σε ακολουθιακό υπολογιστή, πρέπει να αποτελείται από εντολές που η σειρά τους είναι αυστηρά προκαθορισμένη. Προφανώς, ένας αυστηρός ορισμός του αλγορίθμου θα βασίζεται στο συγκεκριμένο μοντέλο υπολογισμού (μηχανή) που χρησιμοποιείται κατά περίπτωση. Το πιο θεμελιώδες μοντέλο υπολογισμού είναι η καλούμενη μηχανή Turig. Η τυπική προσέγγιση στα θέματα που διαπραγματευόμαστε εδώ και οι αυστηροί ορισμοί αρκετών εννοιών καλύπτονται με χρήση της μηχανής Turig. Εδώ πάντως ακολουθούμε μια πιο διαισθητική προσέγγιση. Δεν θα αναφερθούμε σε λεπτομέρειες, πρέπει όμως να σημειωθεί ότι πολλά άλλα μοντέλα υπολογισμού είναι ισοδύναμα με την μηχανή Turig (όπως π.χ. οι καλούμενες μηχανές τυχαίας πρόσβασης, radom access machies) και ότι οι τυπικές αυτές προσεγγίσεις παρέχουν την δυνατότητα αναλύσεων και αποδείξεων θεμελιωδών ζητημάτων του υπολογισμού. Η λέξη Αλγόριθμος αποδίδεται στο όνομα του Πέρση Αλ Χοαρίζμι, που έγραψε ένα βιβλίο μαθηματικών ( Al Jabr ) γύρω στο 85 π.χ. Το όνομά του σημαίνει «από το Χοαραζάμ» την σημερινή Κίβα του Ουζμπεκιστάν. Ο πρώτος διάσημος αλγόριθμος αποδίδεται στον Ευκλείδη και αφορά την εύρεση του μέγιστου κοινού διαιρέτη (βλ. Παράδειγμα Π.0-4)..3. Παραδείγματα Ακολουθούν μερικά πρώτα παραδείγματα τα οποία θα χρησιμεύσουν στη συζήτηση που θα ακολουθήσει. Για να περιγράψουμε αλγορίθμους χρησιμοποιούμε μια πρόχειρη «γλώσσα», που μοιάζει με διάφορες γλώσσες προγραμματισμού, έτσι ώστε τα πράγματα να είναι σαφή και κατανοητά. Άλλες φορές χρησιμοποιούμε μια απλή περιγραφή ή μια εικόνα. ΠΑΡΑΔΕΙΓΜΑ Π.3-. Πρόβλημα μερικών αθροισμάτων ("prefix"). Δίνονται ο φυσικός αριθμός και οι αριθμοί x,...,x. Να υπολογιστούν τα μερικά αθροίσματα. a j = j = i x i j=,...,

7 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 5 ΕΙΣΟΔΟΣ: ΕΞΟΔΟΣ: Αλγόριθμος "Μερικά Αθροίσματα"- και διάνυσμα Χ μήκους, που περιέχει τα x i, δηλαδή Χ(i)=x i. διάνυσμα A μήκους, που περιέχει τα ζητούμενα, δηλαδή Α(j)=aj. for j to do A(j) 0 for i to j do A(j) A(j) + X(i) ed (i-loop) ed (j-loop) Το ίδιο πρόβλημα λύνει και ο ΕΙΣΟΔΟΣ: ΕΞΟΔΟΣ: Αλγόριθμος "Μερικά Αθροίσματα"- ίδια με τον προηγούμενο αλγόριθμο ίδια με τον προηγούμενο αλγόριθμο if > the begi for j to do A(j) A(j-) + X(j) ed (j-loop) ed (if-the) Και οι δύο παραπάνω αλγόριθμοι είναι ακολουθιακοί. Και οι δύο είναι σωστοί, δηλαδή για κάθε νόμιμο σύνολο δεδομένων υπολογίζουν τα σωστά a j, j=,...,. Και οι δύο τερματίζουν μετά από πεπερασμένο χρόνο, για κάθε νόμιμο σύνολο δεδομένων. Και οι δύο είναι εξίσου απλοί. Όμως ο πρώτος εκτελεί (+)/ προσθέσεις, ενώ ο δεύτερος εκτελεί - προσθέσεις. Αν επομένως θεωρήσουμε ότι κατά τα άλλα οι δύο αλγόριθμοι είναι περίπου ίδιοι, μπορούμε να πούμε ότι ο δεύτερος τερματίζει γρηγορότερα και ότι η διαφορά χρόνου θα είναι σημαντική για μεγάλα. Η πιο συστηματική αξιολόγηση αλγορίθμων είναι ένα από τα κύρια θέματα που θα μας απασχολήσουν. Ας υποθέσουμε τώρα ότι έχουμε στην διάθεσή μας προσθετές, που μπορούν να επικοινωνούν μεταξύ τους και μ έναν «κεντρικό» υπολογιστή, που παίζει τον ρόλο του συντονιστή. Μια τέτοια υπόθεση δεν είναι ρεαλιστική για μεγάλα, μας διευκολύνει όμως να βγάλουμε μερικά συμπεράσματα για πιο πρακτικές περιπτώσεις. Υποθέτουμε για απλότητα ότι ο (μεγάλος) αριθμός είναι δύναμη του, δηλαδή = p ή p=log. Επειδή τώρα έχουμε προσθετές, μπορούμε να έχουμε την εκτέλεση μέχρι και προσθέσεων ταυτόχρονα (παράλληλα), οπότε λέμε ότι έχουμε μια παράλληλη μηχανή και, αντίστοιχα, ένα παράλληλο αλγόριθμο. Ας κατασκευάσουμε έναν παράλληλο αλγόριθμο: Χωρίζουμε τις εντολές σε φάσεις ή βήματα. Στην αρχή κάθε φάσης κάθε προσθετής μπορεί να δέχεται δύο στοιχεία (από άλλους προσθετές ή από τον συντονιστή), να τα προσθέτει και να στέλνει το αποτέλεσμα σε κάποιον άλλο προσθετή. Δεχόμαστε επίσης, ότι κάθε προσθετής μπορεί να συσσωρεύει το αποτέλεσμα της πρόσθεσης που εκτελεί. Στον παρακάτω παράλληλο αλγόριθμο, οι προσθετές / επεξεργαστές συμβολίζονται με Ε, Ε,..., Ε.

8 6 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα ΕΙΣΟΔΟΣ: ΕΞΟΔΟΣ: Αλγόριθμος "Μερικά Αθροίσματα"-3 και το διάνυσμα Χ μήκους. Τα Χ(i)=x i είναι αποθηκευμένα στο συντονιστή. Το διάνυσμα X, όπου τώρα Χ(i) = ai, περιέχει τα ζητούμενα και αποθηκεύεται στον συντονιστή. Δεχόμαστε για απλούστευση της περιγραφής, ότι αν για κάποιο δείκτη j συμβεί j 0, τότε x j =0 και Ε j είναι ο συντονιστής. Φάση : (αρχική) Ο Ε i δέχεται τα x i-, x i από τον συντονιστή, i=,...,. Ο Ei εκτελεί x i x i- + x i και συσσωρεύει το x i. Φάση : Ο Ε i δέχεται το x i- από τον Ε i-, i=,...,. Ο Ei εκτελεί x i x i- + x i και συσσωρεύει το x i.... Φάση k: Ο E i δέχεται το x j, όπου j=i- k- από τον Ε j, i=,...,. Ο Ei εκτελεί x i x j + x i και συσσωρεύει το x i.... Φάση p: Ο E i δέχεται το x j, όπου j=i- p- από τον Ε j, i=,...,. (τελική) Ο Ei εκτελεί x i x j + x i και στέλνει το x i =Χ(i) στο συντονιστή. Τι έχει συσσωρευτεί για x στον Ε i μετά την φάση k = ; Ισχύει x i x i- + x i = (από φάση ) (x i-3 + x i- ) + (x i- + x i ) = x i-3 + x i- + x i- + x i Γενικότερα, μπορούμε να δούμε ότι, μετά την φάση k, ισχύει: x x + + x + x i=,...,. i k i + i i Επειδή τώρα x j =0 όταν j 0, και επειδή p =, θα έχουμε μετά την τελική φάση p: x i x x i = a i i =,...,. Άρα ο αλγόριθμος (φαίνεται να) είναι σωστός. Αν συνεχίσουμε να μετράμε μόνο τον χρόνο των προσθέσεων, επειδή οι προσθέσεις κάθε φάσης εκτελούνται ταυτόχρονα, ο αλγόριθμος θα τερματίσει σε

9 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 7 χρόνο p=log προσθέσεων, που είναι πολύ μικρότερος από τους χρόνους των προηγούμενων δυο αλγορίθμων, ιδιαίτερα όταν ο είναι πολύ μεγάλος. Από την άλλη μεριά πρέπει κανείς να είναι ιδιαίτερα προσεκτικός σε τέτοιες περιπτώσεις, όπου μπορεί ο χρόνος επικοινωνίας μεταξύ επεξεργαστών να είναι υπολογίσιμος. Μάλιστα υπάρχουν περιπτώσεις, που ο χρόνος αυτός είναι πιο μεγάλος από τον χρόνο των πράξεων, ιδιαίτερα όταν η επικοινωνία γίνεται με το συντονιστή. Άλλες φορές δημιουργούνται συμφορήσεις στην ροή των στοιχείων, ουρές κλπ. Επιπλέον το κόστος μιας αρχιτεκτονικής, που να ικανοποιεί απαιτήσεις όπως αυτές του αλγορίθμου μας είναι απαγορευτικό για την υλοποίησή της. Τέλος, παρατηρούμε ότι ο αλγόριθμος, παρόλο που τερματίζει σε μικρότερο χρόνο από τους δύο προηγούμενους, εκτελεί p=log προσθέσεις, που είναι φυσικά πιο πολλές από τις - προσθέσεις του δεύτερου. Π.3- Στο Π.3- ο αριθμός των εντολών που εκτελούνται εξαρτάται από την τιμή του, που αντιπροσωπεύει το μέγεθος της εισόδου σε κάθε στιγμιότυπο. Το είδος της εισόδου, αν π.χ. x = 3. αντί για x = 4.47, δεν έχει εδώ σημασία. Γενικά όμως, όχι μόνο το μέγεθος της εισόδου (που αντιπροσωπεύεται από έναν ή και πιο πολλούς αριθμούς) αλλά και το είδος της (δηλαδή οι συγκεκριμένες τιμές), παίζουν σημαντικό ρόλο για τον συνολικό αριθμό εντολών, που θα εκτελεσθούν σε κάθε στιγμιότυπο. ΠΑΡΑΔΕΙΓΜΑ Π.3-. Διαδοχική Αναζήτηση Λίστας. Δίνονται ο φυσικός, τα διαταγμένα στοιχεία x... x και ένα ακόμα στοιχείο x, του ίδιου τύπου με τα x i. Ζητείται να βρεθεί αν το x «είναι στην λίστα», δηλαδή αν υπάρχει τουλάχιστον ένα j για το οποίο x=x j. Αν ναι, να δοθεί ένα τέτοιο j. Αν όχι, να δοθεί η τιμή j=0, σαν μήνυμα ότι το x δεν είναι στην λίστα. Ένας απλός αλγόριθμος προκύπτει με διαδοχική αναζήτηση: εξετάζουμε τα στοιχεία της λίστας ένα-ένα, με την σειρά, αρχίζοντας από το x. Αν συναντήσουμε κάποιο στοιχείο, που είναι ίσο με το x, τερματίζουμε. Αν εξαντληθούν όλα τα x i και δεν βρεθεί τέτοιο στοιχείο, θέτουμε j=0. Παρατηρούμε ότι αυτός ο αλγόριθμος δεν χρησιμοποιεί την πληροφορία ότι η λίστα είναι διαταγμένη. Επομένως μπορεί να βελτιωθεί (βλ. και Παράδειγμα Π.0-3). ΕΙΣΟΔΟΣ: ΕΞΟΔΟΣ: Αλγόριθμος "Διαδοχική Αναζήτηση", array L μήκους, [όπου L(i)=x i και L()... L()] και x του ίδιου τύπου με τα L(i), i=,...,. j {,...,}, αν υπάρχει L(j)=x, αλλιώς j=0. j while j ad L(j) x do j j+ ed (of while) if j > the j 0 exit j

10 8 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Ας δεχτούμε ότι ο αλγόριθμος είναι σωστός, δηλαδή για κάθε νόμιμη είσοδο παράγει το σωστό j. Η πιο χρονοβόρα εντολή είναι η σύγκριση L(j) με x. Επιπλέον η συχνότητα εμφάνισής της είναι αντιπροσωπευτική και για το πόσες φορές θα εμφανιστούν και άλλες εντολές (σύγκριση j, j j+), οι οποίες πάντως είναι αρκετά πιο γρήγορες από την σύγκριση. Οι υπόλοιπες εντολές ( j και if j> the j 0 ) εκτελούνται πάντα μια φορά και θα τις αγνοήσουμε. Ποιος είναι ο αριθμός των συγκρίσεων L(j) με x; Βλέπουμε αμέσως ότι ο αριθμός αυτός δεν εξαρτάται μόνο από το μέγεθος της εισόδου, που θα έχουμε σε κάποιο στιγμιότυπο, αλλά και από το είδος: για κάποιο στιγμιότυπο μπορεί να είμαστε αρκετά «τυχεροί» και να συμβαίνει x=x, οπότε ο αλγόριθμος θα τερματίσει μετά από μόνο συγκρίσεις. Αν όμως, για κάποιο άλλο στιγμιότυπο, συμβεί x=x, ή συμβεί ο x να μην είναι στη λίστα, τότε θα χρειαστούν συγκρίσεις. Από εδώ προκύπτει η ανάγκη να ξεχωρίσουμε περιπτώσεις, π.χ. τι θα συμβεί στην καλύτερη περίπτωση, τι στην χειρότερη, τι σε μια «τυπική» περίπτωση, τι θα συμβεί κατά μέσο όρο. Π.3- ΠΑΡΑΔΕΙΓΜΑ Π.3-3. Διάταξη λίστας και παρεμβολή. Στο πρόβλημα της διάταξης δίνεται ένα σύνολο από ομοειδή στοιχεία και ζητείται να διαταχθεί το σύνολο αυτό (με κάποια σειρά, π.χ. αύξουσα, αλφαβητική,...). Τα στοιχεία αυτά μπορεί π.χ. να είναι αριθμοί, ονόματα ή μεγάλα αρχεία. Σε όλες τις περιπτώσεις δεχόμαστε ότι περιέχουν κάποια απλή ειδική πληροφορία, π.χ. έναν αριθμό ή ένα όνομα, που την καλούμε αντιπρόσωπο ή κλειδί και η διάταξη γίνεται στο σύνολο των αντιπροσώπων. Για να είναι αυτό δυνατό πρέπει οι αντιπρόσωποι να είναι στοιχεία ενός γραμμικά διαταγμένου συνόλου. Η βασική πράξη θα είναι η σύγκριση αντιπροσώπων και η διαταγμένη λίστα στην περίπτωση μας θα είναι σε αύξουσα σειρά. Το υπό διάταξη σύνολο θα αναφέρεται ως λίστα ή διάνυσμα L=[x,...,x ] Τ, αλλά θα δούμε ότι και άλλες δομές, (όπως ο σωρός / heap ) είναι κατάλληλες. Όταν οι αντιπρόσωποι x i είναι οι δείκτες από έως, και αυτό μπορεί να γίνει δεκτό χωρίς βλάβη της γενικότητας για την ανάλυση αλγορίθμων διάταξης, τότε προφανώς το πρόβλημα είναι ισοδύναμο με το εξής: δίνεται μια μετάθεση, των δεικτών και ζητείται να εφαρμοσθεί η αντίστροφη μετάθεση ώστε η λίστα να μετασχηματισθεί στην αύξουσα σειρά,...,. Εξετάζουμε τώρα έναν απλό αλγόριθμο για διάταξη, για τον οποίο είναι πάλι προφανής η εξάρτηση από τα δεδομένα. Παρεμβολή (isertiosort). Ο αλγόριθμος παρεμβάλλει κάθε νέο στοιχείο στην λίστα συγκρίνοντας το με τα στοιχεία που ήδη έχουν διαταχθεί, από δεξιά προς τ' αριστερά, μέχρι να βρει την σωστή του θέση. Ας εξετάσουμε τον αλγόριθμο για την όχι και τόσο καλή λίστα

11 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 9 και για την σχεδόν έτοιμη λίστα α) Τοποθετείται το πρώτο στοιχείο: 3 Α={3, 5, 0, 8,, 4} Β={, 3, 5, 4, 7, 6} Τοποθέτηση του 5: Συγκρίνεται με το 3 3, 5 «0: Συγκρίνεται με το 5 3, 5, 0 «8: Συγκρίνεται με το 0, μετά με το 5, μετά με το 3 8, 3, 5, 0 «: Συγκρίνεται με το 0, μετά με το 5, το 3 και το 8, 8, 3, 5, 0 «4: Συγκρίνεται με το 0, μετά με το 5, το 3, το 8 και το, 4, 8, 3, 5, 0 β) Για την σχεδόν έτοιμη λίστα {, 3, 5, 4, 7, 6}, όπου το μόνο που χρειάζεται είναι δύο εναλλαγές (5 4, 7 6): Τοποθετείται το πρώτο στοιχείο: Τοποθέτηση του 3: Συγκρίνεται με το, 3 «5: Συγκρίνεται με το 3, 3, 5 «4: Συγκρίνεται με 5 και μετά με 3, 3, 4, 5 «7: Συγκρίνεται μόνο με το 5, 3, 4, 5, 7 «6: Συγκρίνεται με 7 και 5, 3, 4, 5, 6, 7 Παρατηρούμε ότι όσο πολύ εκτός σειράς είναι ένα στοιχείο τόσο πιο πολλές συγκρίσεις χρειάζονται. Τότε ο αλγόριθμος μπορεί να προτιμηθεί (.6) σε περιπτώσεις που επεξεργάζεται σχεδόν έτοιμες λίστες. Π Γραφήματα Γράφημα (Graph ) είναι ένα μαθηματικό μοντέλο σχέσεων: κάποια στοιχεία ενός προβλήματος συμβολίζονται με κορυφές και η ύπαρξη μιας πλευράς μεταξύ δυο κορυφών συμβολίζει την ύπαρξη μίας σχέσης μεταξύ των αντίστοιχων στοιχείων. Για παράδειγμα οι κόμβοι μπορεί να συμβολίζουν χώρες και μια πλευρά μεταξύ δυο χωρών ότι αυτές βρίσκονται σε κάποια σχέση, π.χ. ότι συνορεύουν. Τυπικά τότε: Χρησιμοποιείται και ο όρος "γράφος", που όμως απαντάται στην Ελληνική μόνο ως β συνθετικό (π.χ. ζωγράφος, τυπογράφος,...) και με ενεργητική σημασία η οποία δεν υπάρχει στην έννοια του όρου graph

12 0 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Γράφημα ονομάζουμε ένα ζεύγος πεπερασμένων συνόλων G = (V, E), όπου το μεν σύνολο V περιέχει τις «κορυφές» ή «κόμβους» του G, το δε Ε τις «ακμές», ή «τόξα», ή «πλευρές» του. Για τις κορυφές θα γράφουμε V={V,...,V } και < θα συμβολίζει το πλήθος τους. Τα στοιχεία του συνόλου Ε θα τα συμβολίζουμε με e ij όπου οι δείκτες i, j ανήκουν στο {,...,}. Δεν είναι απαραίτητο να υπάρχει η πλευρά e ij E για όλα τα i,j {,...,}. Αν συμβαίνει και αυτό τότε έχουμε ένα πλήρες γράφημα. Συμβολίζουμε με K το πλήρες γράφημα των κορυφών. Το K έχει m=(-)/ πλευρές. Υπογράφημα του G = (V, E) είναι ένα γράφημα G = ( V, E ) με V V και E E. Αν V = V τότε το G λέγεται γεννητικό υπογράφημα του G. Αν για κάποιο ζεύγος (i,j) υπάρχει e ij E, τότε λέμε ότι υπάρχει πλευρά (ή ακμή, ή τόξο) από την κορυφή V i στην κορυφή V j ή ότι υπάρχει πλευρά που συνδέει την V i με την V j. Στην περίπτωση αυτή οι V i, V j λέγονται «γειτονικές», ή «προσκείμενες», ενώ η πλευρά e ij λέμε ότι «συντρέχει» στην κορυφή V i ή/και V j. Πλευρές που συντρέχουν στην ίδια κορυφή καλούνται επίσης γειτονικές ή προσκείμενες. Είναι δυνατόν να μην είναι ισότιμος ο ρόλος δύο προσκείμενων κορυφών στη σχέση που συμβολίζεται από την πλευρά που τις συνδέει. Για παράδειγμα, μπορεί οι κορυφές να συμβολίζουν αριθμητικές πράξεις και η πλευρά e ij να συμβολίζει το γεγονός ότι η εκτέλεση της V i πρέπει να προηγηθεί αυτής της V j, επειδή η V j χρειάζεται δεδομένα που εξάγει η V i.τότε υπάρχει μεν η e ij E, όχι όμως και η e ji. Στην περίπτωση αυτή λέμε ότι η e ij έχει φορά από i προς j, ότι μπορούμε να πάμε από την V i στην V j και ότι το G είναι διευθυνόμενο γράφημα ή διγράφημα (directed graph, digraph). Η γεωμετρική αναπαράσταση ενός γραφήματος είναι προφανής. Αν η e ij έχει φορά τότε συμβολίζεται με βέλος από i προς j. Πάντως, το ίδιο G μπορεί να εμφανίζεται με διαφορετικές γεωμετρικές "μεταμφιέσεις". Για παράδειγμα, αν V={,, 3, 4, 5, 6}, όπου συχνά γράφουμε μόνο τον δείκτη i αντί της κορυφής V i, τότε όλα τα γραφήματα της Εικόνας.4- αναπαριστούν το ίδιο G=(V, E) Εικόνα.4- Τρεις γεωμετρικές αναπαραστάσεις του ίδιου γραφήματος.

13 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Η τρίτη αναπαράσταση οφείλεται στην αναγνώριση ότι οι κορυφές με τους μονούς δείκτες συνδέονται με όλες τις κορυφές με τους ζυγούς δείκτες και αντιστρόφως. Πρόκειται για παράδειγμα διμερούς (bipartite) γραφήματος: Ένα γράφημα είναι διμερές όταν το σύνολο των κορυφών του είναι η ένωση δύο ξένων μεταξύ τους και μη κενών υποσυνόλων και δεν υπάρχουν πλευρές μεταξύ κορυφών του ίδιου υποσυνόλου. Συμβολίζουμε με Κ i, j το διμερές γράφημα με i κορυφές στο ένα σύνολο και j στο άλλο και με όλες τις κορυφές μεταξύ των δυο συνόλων να συνδέονται. Το Κ i, j έχει =i+j κορυφές και m=ij πλευρές. Παρατηρούμε από την Εικόνα.4- ότι δυο γραφήματα G=(V, E) και G'=(V', E') μπορεί να είναι "ίδια", αν και αυτό συχνά δεν είναι εμφανές και, μάλιστα, μπορεί να είναι εξαιρετικά δύσκολο να εξακριβωθεί. Κατ' αρχήν πρέπει τα σύνολα V και V', να έχουν τον ίδιο αριθμό στοιχείων, όπως και τα Ε, Ε'. Επιπλέον, πρέπει να υπάρχει μια ένα προς ένα αντιστοιχία μεταξύ των κορυφών που να διατηρεί τις πλευρές. Αυστηρότερα, τα G και G' καλούνται ισόμορφα όταν υπάρχει μια απεικόνιση μεταξύ των συνόλων των κορυφών τους, h: V V', με τις ιδιότητες (i) η h είναι "ένα-προςένα" και "επί" και (ii) υπάρχει η πλευρά μεταξύ των V i, V j στο Ε εάν και μόνον εάν υπάρχει πλευρά μεταξύ h(v i ), h(v j ) στο Ε'. ΠΑΡΑΔΕΙΓΜΑ Π.4-. Το γράφημα G=(V, E) της Εικόνας.4- δείχνει τα δρομολόγια μιας αεροπορικής εταιρείας. Οι κορυφές συμβολίζουν πόλεις και οι πλευρές συμβολίζουν την ύπαρξη πτήσεων μεταξύ δυο πόλεων. Στο γράφημα G'=(V', E') οι κορυφές συμβολίζουν χώρες και μια πλευρά μεταξύ δυο κορυφών συμβολίζει ότι οι αντίστοιχες δυο χώρες συνορεύουν Γ Β Α Ε G Δ G' Εικόνα.4- Όμως η απεικόνιση κορυφών που ορίζεται από τις σχέσεις h() = B, h() = Δ, h(3) =Γ, h(4) =A, h(5) =E είναι ένα προς ένα από το V επί του V' και επιπλέον διατηρεί τις πλευρές, π.χ. η πλευρά μεταξύ και 3 αντιστοιχεί στην πλευρά μεταξύ h() και h(3) δηλαδή την ΔΑ. Π.4-

14 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Το πλήθος των πλευρών που συνδέουν την V i με άλλες κορυφές (που συντρέχουν στην V i ) είναι ο βαθμός της V i. Αν έχουμε διγράφημα τότε διακρίνουμε και βαθμό εισόδου (πλευρές e ij, που «φτάνουν» στην V i ) και εξόδου (πλευρές e ij, που «φεύγουν» από την V i ). Εύκολα μπορούμε να διαπιστώσουμε ότι σε διευθυνόμενο γράφημα το άθροισμα των βαθμών εισόδου για όλες τις κορυφές ισούνται με το άθροισμα των βαθμών εξόδου και με τον συνολικό αριθμό των πλευρών του γραφήματος. Αν όλες οι κορυφές έχουν τον ίδιο βαθμό β τότε το γράφημα καλείται β-κανονικό. Ισχύει ότι: ΘΕΩΡΗΜΑ Θ.4- (Euler). Το άθροισμα των βαθμών όλων των κορυφών ενός γραφήματος είναι ίσο με το διπλάσιο του αριθμού των πλευρών του. Απόδειξη: Σε κάθε πλευρά αντιστοιχούν οι δύο προσκείμενες κορυφές και όταν αθροίζουμε τους βαθμούς για όλες τις κορυφές προσμετράμε κάθε πλευρά δύο φορές, μια για κάθε κορυφή της. Θ.4- Προκύπτουν τότε αμέσως τα παρακάτω: ΠΟΡΙΣΜΑ.4-. Αν το G είναι β-κανονικό τότε ο αριθμός των πλευρών του είναι ίσος με β/, όπου είναι ο αριθμός των κορυφών. ΠΟΡΙΣΜΑ.4-3. Για κάθε γράφημα ο αριθμός των κορυφών με μονό βαθμό είναι ζυγός. Μια ακολουθία, όπως η {V 3, e 37, V 7, e 76, V 6, e 68,V 8 } που αρχίζει με κορυφή, τελειώνει με κορυφή και ανάμεσα από δύο κορυφές περιέχει πλευρά που τις ενώνει (και που πρέπει η πλευρά να υπάρχει, να είναι δηλαδή στοιχείο του Ε), λέγεται διαδρομή από την πρώτη προς την τελευταία κορυφή. Σε ένα γράφημα που δεν είναι διγράφημα, μια διαδρομή, αν υπάρχει, εννοείται ότι υπάρχει και προς τις δύο κατευθύνσεις, οπότε απλά μιλάμε για διαδρομή που ενώνει τις δυο κορυφές. Προφανώς, σ ένα διγράφημα μπορεί να υπάρχει διαδρομή από V i προς V j χωρίς να υπάρχει διαδρομή από V j σε V i. Ο συμβολισμός της διαδρομής μπορεί να απλουστευτεί χωρίς παρανοήσεις, είτε γράφοντας μόνο τις κορυφές, π.χ. {V 3, V 7, V 6, V 8 }, εννοώντας ότι οι απαραίτητες πλευρές e 37, e 76, e 68 υπάρχουν στο Ε, είτε γράφοντας μόνο τις πλευρές, π.χ. { e 37, e 76, e 68 }. Σε μια διαδρομή μπορεί να επανεμφανίζεται η ίδια κορυφή όχι όμως και η ίδια η πλευρά. Όταν το G είναι μη διευθυνόμενο, καλείται συνεκτικό αν για οποιεσδήποτε δυο κορυφές του, υπάρχει διαδρομή που τις ενώνει. Για διγραφήματα υπάρχουν διάφορα είδη συνεκτικότητας. Όταν υπάρχει διαδρομή είτε προς την μια είτε προς την άλλη κορυφή (για οποιοδήποτε ζεύγος κορυφών) το G

15 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 3 λέγεται μονομερώς συνεκτικό. Αν επιπλέον, για κάθε ζεύγος κορυφών, υπάρχει διαδρομή και προς τις δύο κατευθύνσεις, τότε λέγεται ισχυρά συνεκτικό. Το διγράφημα λέγεται ασθενώς συνεκτικό ή απλά συνεκτικό αν για κάθε ζεύγος κορυφών υπάρχει μια ημιδιαδρομή μεταξύ τους (semiwalk), δηλαδή στην ακολουθία {V i, e ik, V k,..., V j } να είναι δυνατό να μην υπάρχει η πλευρά e rm μεταξύ V r και V m αλλά να υπάρχει η e mr. Η Εικόνα.4-3 δείχνει τις περιπτώσεις. Όταν η πρώτη και η τελευταία κορυφή μιας διαδρομής συμπίπτουν και υπάρχουν πάνω από μια διαφορετικές κορυφές τότε η διαδρομή καλείται κύκλος. Αν ο κύκλος σχηματίζεται από διευθυνόμενες πλευρές λέγεται κύκλωμα. Μια διαδρομή λέγεται απλή όταν όλες οι κορυφές της είναι διαφορετικές, εκτός ίσως από την πρώτη και την τελευταία οι οποίες μπορεί να συμπίπτουν. Απλό κύκλο ή απλό κύκλωμα έχουμε όταν ο κύκλος ή το κύκλωμα ως διαδρομή είναι απλή. Μια διαδρομή που περιέχει όλες τις πλευρές του G και μόνο μία φορά καλείται διαδρομή Euler. Αν η διαδρομή είναι και κύκλος ή κύκλωμα καλείται κύκλος ή κύκλωμα Euler ή γύρος Euler. Μια απλή διαδρομή (αντίστοιχα κύκλος) που περιέχει όλες τις κορυφές και μόνο μια φορά καλείται διαδρομή (αντίστοιχα κύκλος) Hamilto. Αν δεν υπάρχουν κύκλοι το γράφημα λέγεται άκυκλο. Όπως θα δούμε ένα άκυκλο μη διευθυνόμενο γράφημα είναι δέντρο. Το ακρωνύμιο ΔΑΓ χρησιμοποιείται για το Διευθυνόμενο Άκυκλο Γράφημα (DAG, Directed Acyclic Graph). Μήκος μιας διαδρομής καλείται το πλήθος των πλευρών της. Απόσταση μεταξύ δυο κορυφών είναι το ελάχιστο μήκος μεταξύ των διαδρομών που τις συνδέουν. Διάμετρος ενός γραφήματος είναι η μέγιστη απόσταση για όλα τα δυνατά ζεύγη κορυφών. Ένα γράφημα καλείται επίπεδο αν μπορεί να βρεθεί μια γεωγραφική του αναπαράσταση στο επίπεδο όπου δυο οποιεσδήποτε πλευρές του δεν τέμνονται. Διαφορετικά καλείται μη-επίπεδο. Προφανώς το G της Εικόνας.4- είναι επίπεδο αφού μπορεί να απεικονιστεί στο ισόμορφο του γράφημα G το οποίο προφανώς είναι επίπεδο. Τα γραφήματα Κ 5 και Κ 3,3 είναι μη-επίπεδα. Εάν ένα γράφημα G προκύπτει από ένα γράφημα G με αντικατάσταση μιας ή περισσοτέρων πλευρών του G από μια διαδρομή μεταξύ των ίδιων κορυφών, τότε το G καλείται μια εκλέπτυνση ή υποδιαίρεση του G. Ένα παράδειγμα παρέχει η Εικόνα.4-4. Προφανώς κάθε γράφημα είναι εκλέπτυνση του εαυτού του. Αν ένα γράφημα είναι μη-επίπεδο τότε, προφανώς, και κάθε εκλέπτυνση του θα είναι ένα μηεπίπεδο υπογράφημα. Προφανώς επίσης, ένα γράφημα που περιέχει ένα μη-επίπεδο υπογράφημα θα είναι και το ίδιο μη-επίπεδο. Αν λοιπόν ένα γράφημα έχει σαν υπογράφημα το K 5 ή το K 3,3 (ή κάποια ισόμορφο με αυτά γραφήματα) θα είναι μηεπίπεδο. Ισχύει όμως και το αντίστροφο (!) σύμφωνα με το παρακάτω θεώρημα του οποίου την απόδειξη παραλείπουμε.

16 4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα V V 3 V V 4 V 5 (α): (ασθενώς) συνεκτικό Δεν υπάρχει π.χ. διαδρομή από V σε V 5 ή από V 5 σε V, υπάρχει όμως η ημιδιαδρομή {V, e, V, e 5, V 5 } V V3 V V4 V5 (β): Μονομερώς συνεκτικό π.χ. δεν υπάρχει διαδρομή στην κατεύθυνση από V σε V 5 V V3 V V4 V5 (γ): Ισχυρά συνεκτικό Οποιεσδήποτε δύο κορυφές συνδέονται με διαδρομές και προς τις δύο κατευθύνσεις. Εικόνα.4-3 Συνεκτικότητα σε διγραφήματα

17 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 5 G G Εικόνα.4-4 Εκλέπτυνση (υποδιαίρεση) γραφήματος ΘΕΩΡΗΜΑ.4-4 (Kuratowski). Ένα γράφημα G είναι μη-επίπεδο τότε και μόνο τότε όταν έχει ένα υπογράφημα που είναι ισόμορφο με μια εκλέπτυνση του Κ 5 ή του Κ 3,3. Κλίκα μεγέθους μ είναι πλήρες υπογράφημα του G με μ κόμβους. Θεωρούμε όλες τις κλίκες του G και τα μεγέθη τους και ας είναι Μ το μέγιστο από αυτά τα μεγέθη. Δεν γνωρίζουμε αλγόριθμο k που να απαιτεί πολυωνυμικό αριθμό βημάτων (π.χ. 5, , κ.λ.π.) για την ανεύρεση του Μ. Το συμπλήρωμα G του G είναι το γράφημα που προκύπτει αν παραλείψουμε τις πλευρές του G και εισάγουμε πλευρές μεταξύ κορυφών εκεί που δεν υπήρχαν ή, που είναι το ίδιο, από το πλήρες γράφημα K, όπου ο αριθμός των κορυφών του G, αν παραλείψουμε τις πλευρές του G. Ένα υποσύνολο κορυφών του G λέγεται ανεξάρτητο αν δεν υπάρχουν πλευρές που συνδέουν οποιοσδήποτε δυο κορυφές του, σε αντίθεση με την κλίκα όπου όλες οι κορυφές συνδέονται ανά δύο. Το μέγιστο μεταξύ των μεγεθών όλων των ανεξαρτήτων συνόλων του G καλείται δείκτης ανεξαρτησίας του G. Προκύπτει αμέσως ότι το μέγιστο μέγεθος κλίκας του G είναι ίσο με το δείκτη ανεξαρτησίας του G. Ένα υποσύνολο κορυφών καλύπτει το G αν δεν υπάρχουν πλευρές του G που να μην συντρέχουν σε μία από τις κορυφές του. Εύκολα μπορούμε να αποδείξουμε ότι τα παρακάτω είναι ισοδύναμα: (α) Το υποσύνολο κορυφών S V είναι κλίκα στο G=(V,E). (β) Το ίδιο υποσύνολο είναι ανεξάρτητο στο συμπλήρωμα G. (γ) Το σύνολο V-S καλύπτει το G.

18 6 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Εκτός αν τονίσουμε κάτι διαφορετικό, θα εννοούμε ότι ένα γράφημα είναι συνεκτικό και μη διευθυνόμενο, ότι οι διαδρομές είναι απλές και οι κύκλοι είναι απλοί. Σε πολλές εφαρμογές χρειάζεται να αντιστοιχήσουμε διάφορες πληροφορίες στις πλευρές ή ακόμα και κορυφές ενός γραφήματος. Συχνά αντιστοιχούμε αριθμούς που υποδηλώνουν κάποιο κόστος. Τότε το γράφημα καλείται και δίκτυο, οπότε συνηθίζονται και οι όροι κόμβος, για τις κορυφές και τόξο για τις πλευρές. Αναπαράσταση Γραφημάτων. Εκτός από την προφανή γεωμετρική αναπαράσταση, για να εκφράσουμε σαφέστερα τους σχετικούς αλγορίθμους και για να υλοποιηθούν οι αλγόριθμοι στον υπολογιστή χρειαζόμαστε και άλλες αναπαραστάσεις. (Ι) Πίνακας Γειτονικότητας C Αυτός έχει διάσταση και τα στοιχεία του είναι C(i,j)= αν e ij Ε, αλλιώς C(i,j)=0. Όταν υπάρχει συνάρτηση κόστους c, δηλαδή σε κάθε πλευρά e ij Ε αντιστοιχεί ένας αριθμός c(e ij ), τότε ορίζουμε C(i,j):= c(i,j), για e ij Ε. Αν e ij Ε τότε τα αντίστοιχα στοιχεία του C ορίζονται σύμφωνα με τις απαιτήσεις του αλγορίθμου, π.χ. (βλ.. 5.4) C(i,j) = για i j και e ij Ε. (ΙΙ) Λίστες γειτονικότητας ΛΓ Σε κάθε κορυφή V αντιστοιχεί και μια συνδεδεμένη λίστα (liked list) με τον επικεφαλής δείκτη να είναι ΛΓ(i). Τα υπόλοιπα στοιχεία της λίστας τα συμβολίζουμε με ζεύγος κορ Lk όπου: κορ = δείκτης κορυφής που συνδέεται με V i, δηλαδή κορ = j υπάρχει e ij Ε και lk = δείκτης (poiter), που συνδέει με το επόμενο στοιχείο της λίστας (βλ. Εικόνα.4-5) Εικόνα.4-5

19 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 7 Για γραφήματα με κόστος, στις λίστες περιλαμβάνεται και το κόστος των πλευρών: Κορ c(e) lk όπως δείχνει και η Εικόνα Εικόνα Δέντρα Υπάρχουν ελεύθερα δέντρα καθώς και δέντρα με ρίζα. Θα είναι κάθε φορά σαφές σε ποιο από τα δύο είδη αναφερόμαστε. Ελεύθερο δέντρο είναι ένα άκυκλο συνεκτικό γράφημα. Μπορεί να αποδειχθεί το παρακάτω. ΘΕΩΡΗΜΑ Θ.5-. Ας θεωρήσουμε ένα γράφημα G με κορυφές. Οποιεσδήποτε δυο από τις παρακάτω συνθήκες συνεπάγονται την τρίτη και ότι το G είναι (ελεύθερο) δέντρο:. Το G είναι συνεκτικό.. Το G έχει - πλευρές. 3. Το G είναι άκυκλο. Θ.5- Δέντρο με ρίζα είναι ένα δέντρο με μια ειδικά επιλεγμένη κορυφή, τη ρίζα του δέντρου. Σ ένα δέντρο με ρίζα μπορούμε να ιεραρχήσουμε τις κορυφές σε επίπεδα ως εξής: στο πρώτο επίπεδο τοποθετείται η ρίζα. Αναδρομικά, για κάθε κορυφή που ήδη έχει τοποθετηθεί σε κάποιο επίπεδο, τοποθετούνται στο επόμενο επίπεδο τα παιδιά της, δηλαδή όλες οι κορυφές που συνδέονται με αυτήν και δεν έχουν ήδη τοποθετηθεί σε κάποιο προηγούμενο επίπεδο, εφόσον υπάρχουν. Αν αριθμήσουμε τα επίπεδα που έτσι δημιουργούνται, αρχίζοντας με τον δείκτη μηδέν στην ρίζα, τελειώνουμε με κάποιο δείκτη d που καλείται «βάθος» (ή και «ύψος») του δέντρου. Η Εικόνα.5- δείχνει ένα ελεύθερο δέντρο και ένα δέντρο με ρίζα βάθους 3, που προκύπτει από αυτό αν πάρουμε για ρίζα την κορυφή R. Εάν από μια κορυφή V υπάρχει διαδρομή προς μια άλλη κορυφή W που όμως δεν επιστρέφει σε προηγούμενο επίπεδο, χρησιμοποιούμε και τον όρο ότι η V είναι πρόγονος της W, ή

20 8 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα ότι η W είναι απόγονος της V. Έτσι στην ίδια εικόνα, η Β είναι πρόγονος της D, όχι όμως της L. Προφανώς, πρόγονος όλων είναι η ρίζα. F H R 0 A B E I L B J C D R J K M N H E I C A D F L K M N 3=d Εικόνα.5- Μια κορυφή που δεν έχει παιδιά λέγεται φύλλο, αλλιώς λέγεται εσωτερική κορυφή ή εσωτερικός κόμβος. Αν κάθε εσωτερικός κόμβος έχει μέχρι δυο παιδιά τότε έχουμε ένα δυαδικό δέντρο. Όταν τα φύλλα του δυαδικού δέντρου είναι όλα στο τελευταίο επίπεδο, και όλοι οι κόμβοι στα προηγούμενα επίπεδα έχουν δυο παιδιά, τότε έχουμε ένα πλήρες δυαδικό δέντρο. Ισοδύναμος είναι και ο εξής αναδρομικός ορισμός: Δυαδικό δέντρο είναι ένα γράφημα G=(V, E), που είτε είναι κενό (V= οπότε και Ε= ) είτε υπάρχει μια ειδική κορυφή που καλείται ρίζα και ισχύει ότι: το γράφημα που προκύπτει αν από το G αφαιρεθούν η ρίζα και οι πλευρές που συντρέχουν σ αυτή, μπορεί να χωριστεί δε δύο ξένα μεταξύ τους υπογραφήματα, καθένα από τα οποία είναι δυαδικό δέντρο (και καλούνται το αριστερό και το δεξιό υποδέντρο αντίστοιχα). Παραθέτουμε και τρεις γενικά γνωστές αριθμήσεις ή τρόπους επίσκεψης στους κόμβους των δέντρων. Για κάθε μια εννοείται ότι αν ένα δέντρο είναι κενό είναι ήδη «αριθμημένο» κι αν έχει μόνο μια κορυφή τότε αυτή αριθμείται πρώτη και τελειώνουμε. Έτσι θεωρούμε δέντρα που έχουν μη κενά υποδέντρα. Η Εικόνα.5- δείχνει ένα τέτοιο δέντρο, με ρίζα ρ και υποδέντρα Τ,...,Τ r αριθμημένα από αριστερά προς τα δεξιά, με r. Ο ορισμός των τριών αριθμήσεων είναι αναδρομικός. Αρίθμηση Προδιάταξης (preoder): είναι πρώτα αρίθμηση της ρίζας και μετά αρίθμηση προδιάταξης των υποδέντρων με την σειρά Τ,...,Τ r. Αρίθμηση Μεταδιάταξης (postorder): είναι πρώτα αρίθμηση μεταδιάταξης των υποδέντρων με την σειρά Τ,...,Τ r, ακολουθούμενη από την αρίθμηση της ρίζας. Αρίθμηση Εσωδιάταξης (iorder): είναι πρώτα αρίθμηση εσωδιάταξης του Τ ακολουθούμενη από την ρίζα και μετά από αρίθμηση εσωδιάταξης των υποδέντρων Τ,...,Τ r, με αυτή την σειρά, αν υπάρχουν.

21 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 9 ρ... Τ Τ r Εικόνα.5- Ο γνωστός γρήγορος και πρακτικός τρόπος για να γίνουν οι αριθμήσεις, είναι να ξεκινήσουμε από την ρίζα και να παραπλεύσουμε το δέντρο με φορά αντίστροφη των δεικτών του ρολογιού, παραμένοντας όσο πιο κοντά στο δέντρο γίνεται (Εικόνα.5-3). Εικόνα.5-3 Για την προδιάταξη, αριθμούμε κάθε κορυφή αμέσως μόλις την πρωτοσυναντήσουμε (Εικόνα.5-4(α)). Για την μεταδιάταξη, την αριθμούμε την τελευταία φορά που την συναντάμε, όπως δηλαδή την εγκαταλείπουμε για να βαδίσουμε προς τον "γονέα" της (Εικόνα.5-4(β)). Τέλος, για την εσωδιάταξη, αριθμούμε τα φύλλα όταν τα πρωτοσυναντάμε και τις υπόλοιπες κορυφές (συμπεριλαμβανομένης και της ρίζας) την δεύτερη φορά που τις συναντάμε (Εικόνα.5-4 (γ)).

22 0 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα (α) Προδιάταξη (Preorder) (β) Μεταδιάταξη (Postorder) (γ) Εσωδιάταξη (Iorder) Εικόνα.5-4

23 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ.6 Ασυμπτωτικοί Συμβολισμοί Μας ενδιαφέρει η συμπεριφορά ποσοτήτων όταν το μέγεθος των δεδομένων αυξάνει απεριόριστα. Ας δεχθούμε εδώ ότι το μέγεθος αυτό αντιπροσωπεύεται από μια μεταβλητή, που είναι φυσικός αριθμός και μπορεί να γίνει απεριόριστα μεγάλος. Επομένως, θα εξετάσουμε συναρτήσεις του, όταν, ή όταν > o για κάποιο o που θα υπάρχει κατά περίπτωση, δηλαδή «ασυμπτωτικά». Για παράδειγμα, όταν ο αυξηθεί αρκετά θα ισχύει > (0,000,000) άρα, ασυμπτωτικά, όροι όπως οι, 5, 6 +5 είναι περίπου ισοδύναμοι και αυξάνουν «όπως ο» και είναι χειρότεροι από όρους όπως 00, ( 5 ), που αυξάνουν «όπως ο». Η φράση «για αρκετά μεγάλα ισχύει...» σημαίνει, ακριβέστερα, ότι υπάρχει κάποιος φυσικός o έτσι ώστε «για o ισχύει...», ή ισοδύναμα, «όταν ισχύει...». Κεφαλαίο Όμικρον. Γράφουμε f()=ο(g()) ή f() O(g()), όταν υπάρχει κάποια θετική σταθερά c, έτσι ώστε για αρκετά μεγάλα να ισχύει: f() c g(). Χρήσιμο είναι να θυμόμαστε ότι για αρκετά μεγάλα η ιεραρχία είναι «log», «σε δύναμη», «σταθερά > με εκθέτη», δηλαδή ισχύει c log < c < c 3 c, c,c,c 3 > 0 c >, ανεξάρτητα από το πόσο μικρά ή μεγάλα είναι τα c i. Επίσης ισχύει c 4 k < c 5 c, c 4,c 5 > 0, c>, ανεξάρτητα από το πόσο μικρά ή μεγάλα είναι τα c 4, c 5, αλλά και ανεξάρτητα από το πόσο μεγάλος είναι ο εκθέτης k του, πάντοτε για αρκετά μεγάλα. Ένα πολυώνυμο του είναι Ο(μεγαλύτερη δύναμη του ), π.χ , 00 3, , είναι όλα Ο( 3 ) Απόδειξη: a + a a + a a + a a + a p p p p p o p p a a + a = c, όπου c = a + a a + a p p p o p p p p p o o Σε μια παράσταση ο κυρίαρχος όρος δίνει την τάξη Ο, π.χ.: (log) (log) 4 = Ο( 5 ) log = Ο( 5 log) (.) = Ο[(.) ]

24 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Ο κανόνας του l' Hospital από την Μαθηματική Ανάλυση είναι αρκετές φορές χρήσιμος: Έστωσαν f, g δυο πραγματικές συναρτήσεις της πραγματικής μεταβλητής x. Αν και τα δυο όρια lim f ( x) lim g( x) είναι ίσα με μηδέν, ή και τα δύο είναι ίσα με τότε x, x lim[ f ( x) / g( x) ] lim[ f ' ( x) / g' ( x) ] x =. x ΠΑΡΑΔΕΙΓΜΑ Π.6-. Ισχύει log = O( a ) αλλά a δεν είναι O(log), για a>0. Αφού log / L = : lim = a lim = a lim = = a 0 0 a a a συμπεραίνουμε ότι "τελικά" θα ισχύει log c a και μάλιστα για οποιοδήποτε c>0, a αρκεί ο να γίνει αρκετά μεγάλος. Επίσης, αφού L=0, ισχύει log άρα είναι αδύνατο να ισχύει a clog για μεγάλα και για κάποιο c>0. Π.6- Κεφαλαίο Ωμέγα. Γράφουμε f()=ω(g()) ή f() Ω(g()), όταν υπάρχει κάποια θετική σταθερά c, έτσι ώστε για μεγάλα να ισχύει: f ( ) c g( ) Έτσι έχουμε 0,00=Ω(log), =Ω( ) κλπ. Αν g()=ο(f()) τότε g( ) c f ( ), τότε (επειδή c>0) f ( ) c g( ) = c g( ) με c >0, άρα τότε f()=ω(g()). Ισχύει και το αντίστροφο. Άρα: f ( ) = Ω( g( )) g( ) = Ο ( f ( )) Κεφαλαίο Θήτα. Γράφουμε f()=θ(g()) ή f() Θ(g()), όταν συμβαίνουν και τα δύο: f()=ο(g()) και g()=ο(f()). Ισοδύναμα: όταν υπάρχουν θετικές σταθερές c, c τέτοιες ώστε, για αρκετά μεγάλα, να ισχύει: c g( ) f ( ) c g( ). Ισοδύναμα: να υπάρχουν θετικές σταθερές c 3, c 4, τέτοιες ώστε, για αρκετά μεγάλα να ισχύει:

25 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 3 c f ( ) g( ) c f ( ). 3 4 Αν π.χ. f() = 5-3, g() = 0 +, τότε για όλα τα ισχύει f() g() και για όλα τα ισχύει f ( ) g( ). 5 Άρα για ισχύει g( ) f ( ) g( ) και επομένως 5 f() = Θ(g()) ή και g()=θ(f()). Έχουμε ήδη διαπιστώσει ότι f()=ο(g()), σημαίνει ότι οι f και g έχουν τον ίδιο κυρίαρχο όρο, ανεξάρτητα από το μέγεθος του συντελεστή, που πολλαπλασιάζει αυτόν τον όρο. Ο παρακάτω συμβολισμός απαιτεί και οι συντελεστές να είναι ίδιοι. Μικρό Θήτα ή. Γράφουμε f()=θ(g()) ή f() θ(g()) ή f() g(), όταν lim( f ( ) g( )) =, ισοδύναμα όταν lim( g( ) f ( )) =. Αν π.χ. f() = , g()=6 3, τότε βέβαια f()=ο(g()) = Ο( 3 ) = Ο(00 3 ) = Ο(8 3 ) και επειδή lim( f ( ) g( )) =, δεν ισχύει f() = θ(g()). Ισχύει όμως και f ( ) = θ ( g( )) = θ (3 3 g( ) = θ ( f ( )) = θ (6 ). 3 ).7 Ορθότητα Ένας αλγόριθμος ικανοποιεί το κριτήριο της ορθότητας και λέμε ότι είναι σωστός, αν λύνει σωστά όλα τα στιγμιότυπα του προβλήματος, για το οποίο σχεδιάστηκε, δηλαδή παράγει το σωστό αποτέλεσμα για όλα τα νόμιμα σύνολα εισαγομένων. Αφού όμως δεν γνωρίζουμε από πριν ποιο είναι το σωστό αποτέλεσμα για κάθε νόμιμο σύνολο εισαγομένων (αν το γνωρίζαμε, δεν θα υπήρχε λόγος να ασχοληθούμε με τον αλγόριθμο), πώς θα κρίνουμε αν ο αλγόριθμος είναι σωστός; Μια επιλογή είναι να το αποδεικνύουμε μαθηματικά αυτό όμως συχνά απαιτεί αρκετά προχωρημένες έννοιες. Υπάρχει κι ο εμπειρικός τρόπος: πειραματιζόμαστε με πολλά στιγμιότυπα για τα οποία το αποτέλεσμα είναι γνωστό. Αν έχουμε επιτυχία σε όλα τα πειράματα, κι αν αυτά είναι αντιπροσωπευτικά των περιπτώσεων που θα εμφανιστούν στην πράξη, τότε ελπίζουμε ότι ο αλγόριθμος είναι σωστός.

26 4 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα Για την εξέταση της ορθότητας, η διάρθρωση του αλγορίθμου σε υποαλγορίθμους (του προγράμματος σε υποπρογράμματα) είναι αρκετά χρήσιμη: αν τα μικρότερα αυτά τμήματα είναι αρκετά απλά, ίσως μπορέσουμε να αποδείξουμε - ή πειραματικά να πεισθούμε - ότι το καθένα τους είναι σωστό. Αυτό βοηθάει να επιτύχουμε το ίδιο συμπέρασμα και για την συναρμολόγηση των τμημάτων, δηλαδή τον αρχικό αλγόριθμο..8 Πόσο καλός είναι ένας αλγόριθμος; Σαν κύρια κριτήρια για την αξιολόγηση αλγορίθμων θεωρούμε το κόστος για την κατασκευή και για κάθε εκτέλεση ενός αντίστοιχου προγράμματος. Αυτό όμως εξαρτάται και από ειδικές συνθήκες, που αλλάζουν με τον τόπο και τον χρόνο, όπως το διαθέσιμο υλικό και λογισμικό, η γλώσσα προγραμματισμού, οι ικανότητες και το στυλ των προγραμματιστών, το γενικότερο υπολογιστικό περιβάλλον κλπ. Τέτοιοι παράγοντες είναι μεν σημαντικοί για το κόστος, όμως: () δεν μπορούμε να τους ξέρουμε ακριβώς, αφού το μόνο που έχουμε είναι ο αλγόριθμος, () δεν μας ενδιαφέρει να τους συνυπολογίσουμε με λεπτομέρεια, γιατί θέλουμε τα συμπεράσματά μας να ισχύουν ανεξάρτητα από τις ειδικές αυτές συνθήκες, και (3) δεν μας είναι ιδιαίτερα χρήσιμο να τους πάρουμε υπόψη: τα συμπεράσματά μας θα χρησιμοποιηθούν κυρίως για σύγκριση αλγορίθμων, οπότε ελπίζουμε ότι η επίδραση των μεταβλητών αυτών παραγόντων θα είναι περίπου ή ίδια για όλους τους ανταγωνιζόμενους αλγορίθμους. Έτσι, τις πιο πολλές φορές είναι δυνατόν και δεν βλάπτει ν αγνοούμε τις ειδικές αυτές συνθήκες. Αντίστοιχα, τα αποτελέσματά μας θα είναι γενικά, ενδεικτικά ή προσεγγιστικά και, τις πιο πολλές φορές, ικανοποιητικά. Δυο κύρια στοιχεία του κόστους είναι ο χρόνος κατασκευής και δοκιμής ενός σωστού προγράμματος και ο χρόνος που το πρόγραμμα αυτό θα απαιτεί για να εκτελεσθεί, κάθε φορά που παρουσιάζεται ένα νέο στιγμιότυπο. Ιδιαίτερα ο χρόνος εκτέλεσης εξαρτάται από το πλήθος των εντολών που εκτελούνται για κάθε στιγμιότυπο, καθώς και από τις επιβαρύνσεις, που οφείλονται στο σχεδιασμό, τη πιθανή συμφόρηση στην ροή των πληροφοριών, κλπ. Οι δυο αυτοί παράγοντες είναι αλληλένδετοι, όχι μόνο μεταξύ τους, αλλά και με ένα ακόμα στοιχείο κόστους: το ποσό μνήμης, που θα απαιτεί ένα πρόγραμμα υλοποίησης του αλγορίθμου και που μπορεί να διαγνωστεί από τον ίδιο τον αλγόριθμο. Ας συζητήσουμε λίγο αυτούς τους παράγοντες και πως αλληλεπιδρούν, έχοντας υπόψη και τα παραδείγματα της.3. Ο ρόλος του πλήθους των εντολών που εκτελούνται είναι προφανής: Γενικά, μπορούμε να πούμε ότι όσο πιο λίγες εντολές εκτελεί ο αλγόριθμος, τόσο πιο γρήγορα τερματίζει (αυτό δεν ισχύει για παράλληλους αλγορίθμους, όπως είδαμε στο Π.3-). Σημασία επίσης έχει και το είδος των εντολών: πολλές απλές πράξεις μπορούν ίσως να εκτελεστούν πιο γρήγορα από λιγότερες αλλά αργές πράξεις. Έπειτα, «σύνθετες» εντολές κρύβουν μέσα τους την εκτέλεση κι άλλων εντολών, επιβαρύνσεις επικοινωνίας και αύξηση του ποσού μνήμης.

27 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 5 Ένας φαινομενικά απλός σχεδιασμός (όπως συμβαίνει με τη χρήση αναδρομικότητας) ελαττώνει το χρόνο κατασκευής του προγράμματος. Όμως μπορεί να κρύβει πολλές επιβαρύνσεις και αυξάνει την μνήμη και τον χρόνο εκτέλεσης. Συχνές απαιτήσεις για ανταλλαγή πληροφοριών με την μνήμη - που πολλές φορές δεν είναι εμφανείς στην διατύπωση του προγράμματος - επιβαρύνουν τον χρόνο τρεξίματος σημαντικά. Υπάρχουν περιπτώσεις, όπου συμφέρει να αυξηθεί ο αριθμός των πράξεων (αύξηση του χρόνου) προκειμένου να χρησιμοποιηθεί λιγότερη μνήμη και να ελαχιστοποιηθεί η επικοινωνία με αυτή. Έτσι, αντί να υπολογίσουμε μερικές πληροφορίες μια φορά και να τις αποθηκεύσουμε για κάθε μελλοντική χρήση, συμφέρει να τις ξαναϋπολογίζουμε κάθε φορά που τις χρειαζόμαστε. Άλλες φορές συμφέρει το αντίθετο. Στην παράλληλη επεξεργασία, οι επικοινωνίες (με τον συντονιστή, με την μνήμη, μεταξύ επεξεργαστών, ) αποτελούν συχνά την πιο σημαντική επιβάρυνση στον χρόνο εκτέλεσης. Εκεί, το ποσό μνήμης και ο τρόπος χρήσης της μνήμης αποτελούν καθοριστικούς παράγοντες, σε σημείο που το πλήθος των πράξεων μπορεί να περάσει σε δεύτερη μοίρα. Είναι πάντως πολλά τα σοβαρά προβλήματα, με σημαντικές εφαρμογές, όπου το πλήθος, των πράξεων είναι καθοριστικό. Γενικά, μπορούμε να πούμε ότι οι παράγοντες, που θέλουμε να ελαχιστοποιήσουμε, είναι μεταξύ τους «εχθρικοί» και δεν γίνεται να μειώσουμε έναν απ αυτούς πολύ, χωρίς να αυξηθεί ένας άλλος σ επιβλαβές σημείο. Σε πολλές περιπτώσεις, ένας από αυτούς γίνεται ο κύριος παράγοντας και πρέπει να ελαχιστοποιηθεί, ακόμα κι αν αυτό επιβαρύνει τους άλλους. Ο χρόνος εκτέλεσης δεν είναι σημαντικός μόνο για το κόστος, αλλά και για την χρησιμότητα του αλγορίθμου. Όταν χρειάζονται αιώνες για να τρέξει το καλύτερο πρόγραμμα που μπορούμε να κατασκευάσουμε για τον αλγόριθμο, ο αλγόριθμος μας είναι άχρηστος. Όταν ο μέσος χρόνος είναι μόνο ", αλλά χρειαζόμαστε αποτελέσματα για διάφορα σύνολα εισαγομένων κάθε 0", μπορεί ο αλγόριθμος των " να είναι ο καλύτερος που υπάρχει, για μας όμως εξακολουθεί να είναι άχρηστος. Υπάρχουν κι άλλα στοιχεία, που γίνονται κατά περίπτωση καθοριστικά και που δεν θα τα συζητήσουμε εδώ. Ένα πάντως πολύ σημαντικό παράδειγμα δίνεται όταν ο αλγόριθμος πρόκειται να υλοποιηθεί σε chip. Εκεί, μεγάλη σημασία έχει και το εμβαδόν που θα χρειαστεί για το «άπλωμα» (layout) των κυκλωμάτων. Από την προηγούμενη συζήτηση, καταλήγουμε ότι υπάρχουν σημαντικά στοιχεία που πρέπει να αναλύονται με εξέταση του ίδιου του αλγορίθμου, χωρίς να απαιτείται κάποιο πρόγραμμά του. Στα στοιχεία αυτά περιλαμβάνονται: (i) Ορθότητα. (Βλ..7) Γενικά, μόνο σωστοί αλγόριθμοι είναι αποδεκτοί. Υπάρχουν όμως περιπτώσεις προβλημάτων, όπου οι μόνοι σωστοί αλγόριθμοι που ξέρουμε δεν τρέχουν σε ικανοποιητικό χρόνο και μας είναι άχρηστοι. Σε τέτοιες περιπτώσεις μπορεί να δεχθούμε και αλγορίθμους, που δίνουν σωστό αποτέλεσμα όχι όλες, αλλά «σχεδόν όλες» τις φορές, ή που δίνουν ικανοποιητικές προσεγγίσεις στο σωστό αποτέλεσμα.

28 6 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα (ii) Απλότητα. Ένας αλγόριθμος, που είναι πιο εύκολα κατανοητός από έναν άλλο, θεωρείται πιο απλός. Το ίδιο συμβαίνει όταν ο λογικός του σχεδιασμός δημιουργεί λιγότερες επιβαρύνσεις (κι αυτό μπορεί να είναι σε αντίθεση με το πρώτο, όπως π.χ. στην περίπτωση της αναδρομικότητας). Ένας απλός αλγόριθμος δείχνει πιο εύκολα τα πλεονεκτήματα και μειονεκτήματά του, άρα και τι θα μπορούσε να γίνει για να κατασκευασθεί ένας ακόμα καλύτερος αλγόριθμος. Ένας απλός αλγόριθμος, αναδρομικός ή μη αναδρομικός, σίγουρα περιορίζει το κόστος κατασκευής και δοκιμών ενός σωστού προγράμματος. Επίσης, περιορίζει αρκετές από τις επιβαρύνσεις, εκτός αν είναι αναδρομικός, οπότε αυξάνει σημαντικά μερικές επιβαρύνσεις. Συχνά ξεκινάμε μεν με αναδρομικό σχεδιασμό (που, εκτός των άλλων, διευκολύνει και την ανάλυση του αλγορίθμου), αλλά, σαν τελευταίο βήμα πριν κατασκευάσουμε το πρόγραμμα, τον μετατρέπουμε σε μη αναδρομικό. (iii) Μνήμη ή χώρος. Το σύνολο εισαγομένων, ήδη απαιτεί κάποιο χώρο από μόνο του, που εξαρτάται από το μέγεθός του και από την δομή αναπαράστασης των πληροφοριών (δέντρα, διανύσματα, ουρές, λίστες, στοίβες,...). Αυτός κατά κανόνα είναι αναγκαίος χώρος, φυσιολογικά απαραίτητος για όλους τους αλγορίθμους, που λύνουν το ίδιο πρόβλημα. Κυρίως μας απασχολεί ο επιπλέον χώρος, που μπορεί να απαιτείται για κάποιον αλγόριθμο. Αν αυτός ο παραπάνω χώρος είναι σταθερός, δηλαδή δεν αυξάνει όταν αυξάνει το μέγεθος των εισαγομένων, τότε λέμε ότι ένας αλγόριθμος ενεργεί μέσα στον φυσιολογικά απαραίτητο χώρο, «i place». Η μέτρηση του χώρου μπορεί να γίνει σε κάποιες μονάδες μνήμης, χωρίς κατά κανόνα να χρειάζεται να καθορίσουμε ακριβώς αν πρόκειται για bits, bytes, λέξεις,... (iv) Επιβαρύνσεις που συνήθως καθορίζονται από άλλα στοιχεία, όπως απλότητα, αναδρομικότητα, επικοινωνίες, βρόχοι, «μεταπηδήσεις» (π.χ. «GOTO»), κλήσεις υποπρογραμμάτων, κλπ. Συνήθως είναι περίπου οι ίδιες για τους ακολουθιακούς αλγορίθμους που λύνουν το ίδιο πρόβλημα, οπότε μπορούν συγκριτικά να αγνοηθούν. Έχουν όμως ιδιαίτερη σημασία στους παράλληλους αλγορίθμους, όπου ο ρυθμός ροής πληροφοριών παίζει μεγάλο ρόλο στον χρόνο εκτέλεσης και όπου οι απαιτήσεις του αλγορίθμου μπορεί να αυξάνουν πολύ το κόστος του υλικού (διακόπτες, πύλες κλπ.) (v) Πλήθος εντολών που εκτελούνται (όπου, όπως είδαμε, δεν πρέπει να αγνοείται και το είδος τους). Στα παραδείγματα της.3, διαπιστώσαμε ότι αυτό εξαρτάται από το μέγεθος και από το είδος των εισαγομένων. Έτσι είμαστε υποχρεωμένοι να μετράμε το πλήθος των εντολών για διάφορες περιπτώσεις (τυπική, μέσος όρος, χειρότερη, καλύτερη). Επίσης, (βλ. πάλι..3), παράγουμε μια ενδεικτική εκτίμηση του πλήθους των εντολών που εκτελούνται, μετρώντας πόσες φορές εκτελείται μια (ή και πιο πο λές) κύρια ή βασική εντολή, που λίγο-πολύ αντιπροσωπεύει όλες τις άλλες και ως προς το χρόνο εκτέλεσης και ως προς το πόσες φορές εκτελείται η κάθε μια. Το μέγεθος των εισαγομένων, αντιπροσωπεύεται από μια ή πιο πολλές παραμέτρους, όπως ο στα παραδείγματα της.3.

29 . ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 7 Το πλήθος των εντολών που εκτελούνται (ή και άλλων επιβαρύνσεων αν χρειαστεί) το υπολογίζουμε σαν συνάρτηση αυτών των παραμέτρων, δηλαδή σαν συνάρτηση του μεγέθους των εισαγομένων. Αν οι παράμετροι αυτές είναι οι,,..., k (στα παραδείγματα της.3 είχαμε μόνο =) διακρίνουμε ιδιαίτερα: το πλήθος ΠΜΟ (,..., k ) των εντολών, που εκτελούνται κατά μέσον όρο, για όλα τα πιθανά νόμιμα εισαγόμενα και το ονομάζουμε «πολυπλοκότητα μέσου όρου», καθώς και το πλήθος ΠΧΠ(,..., k ) των εντολών, που εκτελούνται στην χειρότερη περίπτωση και το ονομάζουμε «πολυπλοκότητα χειρότερης περίπτωσης». Τρόποι υπολογισμού των συναρτήσεων αυτών θα δοθούν στα επόμενα. Βέβαια ισχύει: για όλες τις τιμές των παραμέτρων,..., k. 0 ΠΜΟ(,..., k ) ΠΧΠ(,..., k ) (.8-) Στους ακολουθιακούς αλγορίθμους οι ΠΜΟ και ΠΧΠ εκπροσωπούν τον χρόνο εκτέλεσης ενός αντίστοιχου προγράμματος γι αυτό και αναφέρονται και ως «πολυπλοκότητες χρόνου»..9 Το βέλτιστο των αλγορίθμων Έχοντας επιτύχει κάποιους καλούς ή κακούς αλγορίθμους για κάποιο πρόβλημα, ένα φυσιολογικό ερώτημα είναι αν η αναζήτηση κάποιου νέου καλύτερου αλγορίθμου θα πρέπει να συνεχιστεί, ή αν δεν υπάρχει περίπτωση να βρεθεί κάποιος καλύτερος αλγόριθμος. Βέλτιστος (optimal) είναι ένας αλγόριθμος για τον οποίον δεν υπάρχει άλλος καλύτερος, που βέβαια να λύνει το ίδιο πρόβλημα. Επιτρέπεται όμως να υπάρχουν άλλοι αλγόριθμοι που να είναι εξ ίσου καλοί. Πρέπει να έχει καθορισθεί το κριτήριο σύγκρισης, που θα μπορούσε να είναι μία από τις γνωστές μας πολυπλοκότητες. Ας δεχθούμε για απλότητα ότι το μέγεθος της εισόδου αντιπροσωπεύεται από μια παράμετρο και ότι θέλουμε να εξετάσουμε αν ένας αλγόριθμος Β είναι βέλτιστος ως προς π.χ. την πολυπλοκότητα χειρότερης περίπτωσης, η οποία για τον Β είναι ΠΧΠ Β (). Πρώτα καθορίζουμε μια όσο το δυνατόν ευρύτερη κατηγορία αλγορίθμων Q που λύνουν το ίδιο πρόβλημα, τέτοια ώστε B Q. Η Q ορίζεται μέσω κάποιων ιδιοτήτων τις οποίες πρέπει να έχουν όλοι οι αλγόριθμοι της, π.χ. όλοι να είναι σωστοί, όλοι να κάνουν συγκρίσεις αν πρόκειται για διάταξη, κ.ά. Αν η Q είναι

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΚΑΙ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3 ΘΕΜΑ: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ ΓΡΑΦΗΜΑΤΑ Επίκουρος Καθηγητής ΠΕΡΙΕΧΟΜΕΝΟ

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

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

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

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

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

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

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

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

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

ΔΙΑΤΡΕΞΗ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ

ΔΙΑΤΡΕΞΗ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 4 ΔΙΑΤΡΕΞΗ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΡΑΦΗΜΑΤΩΝ 40 ΑΛΓΟΡΙΘΜΟΙ: εισαγωγικά θέματα και παραδείγματα 4. Εισαγωγή Όπως είναι γνωστό, τα γραφήματα αποτελούν μοντέλα σχέσεων για πολλές και σημαντικές εφαρμογές. Ορισμένες

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών ΠΕΡΙΕΧΟΜΕΝΟ

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

Βασικές Έννοιες Θεωρίας Γραφημάτων Βασικές Έννοιες Θεωρίας Γραφημάτων Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

u v 4 w G 2 G 1 u v w x y z 4

u v 4 w G 2 G 1 u v w x y z 4 Διάλεξη :.0.06 Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος. Εισαγωγικοί ορισμοί Ορισμός. Γράφημα G καλείται ένα ζεύγος G = (V, E) όπου V είναι το σύνολο των κορυφών (ή κόμβων) και E

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

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ ΜΑΘΗΜΑΤΙΚΑ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΘΕΤΙΚΩΝ ΣΠΟΥΔΩΝ ΚΑΙ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ (Α ΜΕΡΟΣ: ΣΥΝΑΡΤΗΣΕΙΣ) Επιμέλεια: Καραγιάννης Ιωάννης, Σχολικός Σύμβουλος Μαθηματικών

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

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία. Αλγόριθμοι Μάρθα Σιδέρη epl333 lect 011 1 ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 0% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία. Οι πρόοδοι είναι προαιρετικές και το ποσοστό μετράει

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

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

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

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

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας Διανύσματα Καστοριά,

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

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1 ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1 ΣΥΝΑΡΤΗΣΕΙΣ Η έννοια της συνάρτησης είναι θεμελιώδης στο λογισμό και διαπερνά όλους τους μαθηματικούς κλάδους. Για το φοιτητή είναι σημαντικό να κατανοήσει πλήρως αυτή

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

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

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

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

ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΣΥΝΟΠΤΙΚΗ ΘΕΩΡΕΙΑ ΜΕΘΟΔΟΛΟΓΙΑ ΛΥΜΕΝΑ ΠΑΡΑΔΕΙΓΜΑΤΑ ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΣΥΝΟΠΤΙΚΗ ΘΕΩΡΕΙΑ ΜΕΘΟΔΟΛΟΓΙΑ ΛΥΜΕΝΑ ΠΑΡΑΔΕΙΓΜΑΤΑ Φροντιστήριο Μ.Ε. «ΑΙΧΜΗ» Κ.Καρτάλη 8 Βόλος Τηλ. 43598 ΠΊΝΑΚΑΣ ΠΕΡΙΕΧΟΜΈΝΩΝ 3. Η ΕΝΝΟΙΑ ΤΗΣ ΠΑΡΑΓΩΓΟΥ... 5 ΜΕΘΟΔΟΛΟΓΙΑ ΛΥΜΕΝΑ ΠΑΡΑΔΕΙΓΜΑΤΑ...

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς Καστοριά, Ιούλιος 14 A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

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

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Ο αλγόριθμος Floyd-Warshall για την έυρεση όλων των αποστάσεων σε ένα γράφημα με βάρη στις ακμές Συνεχίσαμε σήμερα το θέμα της προηγούμενης Τετάρτης. Έχουμε ένα γράφημα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

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

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX ΚΕΦΑΛΑΙΟ 3 ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX 3.1 Εισαγωγή Ο αλγόριθμος Simplex θεωρείται πλέον ως ένας κλασικός αλγόριθμος για την επίλυση γραμμικών προβλημάτων. Η πρακτική αποτελεσματικότητά του έχει

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος Περιγραφή μαθήματος Θεωρία Υπολογισμού Άρτιοι ΑΜ Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας (Θεωρία Αλγορίθμων). Διδάσκων: Σταύρος Κολλιόπουλος

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

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Θεωρία Υπολογισμού Άρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Περιγραφή μαθήματος Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ 8Α ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ A ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ Πότε μια συνάρτηση λέγεται συνεχής σε ένα σημείο του πεδίου ορισμού o της ; Απάντηση : ( ΟΜΟΓ, 6 ΟΜΟΓ, 9 Β, ΟΜΟΓ, 5 Έστω μια συνάρτηση και ένα σημείο του πεδίου

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

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

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

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

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

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

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

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

Ας θεωρήσουμε δύο πραγματικούς αριθμούς. Είναι γνωστό ότι:,. Αυτό σημαίνει ότι: «=», «

Ας θεωρήσουμε δύο πραγματικούς αριθμούς. Είναι γνωστό ότι:,. Αυτό σημαίνει ότι: «=», « .1 Στη παράγραφο αυτή θα γνωρίσουμε μερικές βασικές έννοιες της Λογικής, τις οποίες θα χρησιμοποιήσουμε στη συνέχεια, όπου αυτό κρίνεται αναγκαίο, για τη σαφέστερη διατύπωση μαθηματικών εννοιών, προτάσεων

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

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

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

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

A. ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ 8Α ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ A ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ Πότε μια συνάρτηση λέγεται συνεχής σε ένα σημείο του πεδίου ορισμού o της ; Απάντηση : ( ΟΜΟΓ, 6 ΟΜΟΓ, 9 Β, ΟΜΟΓ, 5 Έστω μια συνάρτηση και ένα σημείο του πεδίου

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

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

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

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

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ 3 η Διάλεξη Μονοπάτια και Κύκλοι Μήκη και αποστάσεις Κέντρο και μέσο γράφου. Ακτίνα και Διάμετρος Δυνάμεις Γραφημάτων Γράφοι Euler.

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

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος Μορφές αποδείξεων Μαθηματικά Πληροφορικής ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης.

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

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

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

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

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

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

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

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

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

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

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

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

2 ) d i = 2e 28, i=1. a b c

2 ) d i = 2e 28, i=1. a b c ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ ΓΡΑΦΩΝ (1) Εστω G απλός γράφος, που έχει 9 κορυφές και άθροισμα βαθμών κορυφών μεγαλύτερο του 7. Αποδείξτε ότι υπάρχει μια κορυφή του G με βαθμό μεγαλύτερο ή ίσο του 4. () Αποδείξτε ότι

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

ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ. a β a β.

ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ. a β a β. ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ Ε.1 ΤΟ ΛΕΞΙΛΟΓΙΟ ΤΗΣ ΛΟΓΙΚΗΣ Στη παράγραφο αυτή θα γνωρίσουμε μερικές βασικές έννοιες της Λογικής, τις οποίες θα χρησιμοποιήσουμε στη συνέχεια, όπου αυτό κρίνεται αναγκαίο, για τη σαφέστερη

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

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

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

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

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα Δένδρα Δένδρα Ειδική κατηγορία γραφημάτων: συνεκτικά γραφήματα που δεν περιέχουν απλά κυκλώματα [1857] Arthur Cayley: για απαρίθμηση ορισμένων ειδών χημικών ενώσεων Χρησιμοποιούνται σε πληθώρα προβλημάτων,

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 2: Μαθηματικό Υπόβαθρο Τι θα κάνουμε σήμερα Συναρτήσεις & Σχέσεις (0.2.3) Γράφοι (Γραφήματα) (0.2.4) Λέξεις και Γλώσσες (0.2.5) Αποδείξεις (0.3) 1

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012) ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012) Τμήμα Θ. Αποστολάτου & Π. Ιωάννου 1 Σειρές O Ζήνων ο Ελεάτης (490-430 π.χ.) στη προσπάθειά του να υποστηρίξει

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014 Περιεχόμενα 1 Εισαγωγή 2 2 Μεγιστικός τελέστης στην μπάλα 2 2.1 Βασικό θεώρημα........................ 2 2.2 Γενική περίπτωση μπάλας.................. 6 2.2.1 Στο

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

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

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

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

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Αλγόριθμος (algorithm) λέγεται μία πεπερασμένη διαδικασία καλά ορισμένων βημάτων που ακολουθείται για τη λύση ενός προβλήματος. Το διάγραμμα ροής

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

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

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

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

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

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

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

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

Για να εκφράσουμε τη διαδικασία αυτή, γράφουμε: :

Για να εκφράσουμε τη διαδικασία αυτή, γράφουμε: : Η θεωρία στα μαθηματικά προσανατολισμού Γ υκείου Τι λέμε συνάρτηση με πεδίο ορισμού το σύνολο ; Έστω ένα υποσύνολο του Ονομάζουμε πραγματική συνάρτηση με πεδίο ορισμού το μία διαδικασία (κανόνα), με την

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου»

(18 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΝΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» (8 ο ) ΚΛΑΣΜΑΤΙΚΗ ΑΑΓΩΓΗ - ΙI: «διάμεσος &θεσιακή επιλογή στοιχείου» Το πρόβλημα του διαμέσου στοιχείου: ένα θεμελιακό πρόβλημα Συναντήσαμε ήδη αρκετές φορές το πρόβλημα του να «κόψουμε» ένα σύνολο στοιχείων

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