Αλγόριθμοι Συμβολοσειρών

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

Download "Αλγόριθμοι Συμβολοσειρών"

Transcript

1 12 Αλγόριθμοι Συμβολοσειρών Περιεχόμενα Κεφαλαίου 12.1 Ορισμός Προβλήματος και Αλγόριθμος Ωμής Βίας Αλγόριθμος Rabin-Karp Αλγόριθμος Boyer-Moore-Horspool Πολλαπλά Πρότυπα και Προσεγγιστικό Ταίριασμα Βιβλιογραφική Συζήτηση Ασκήσεις

2 348 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών Ένα από τα κλασικότερα προβλήματα σχετικά με τη διαχείριση κειμένου είναι αυτό του ταιριάσματος συμβολοσειρών (string matching). Στην απλούστερη έκφανση του προβλήματος ένας αλγόριθμος ταιριάσματος συμβολοσειρών λαμβάνει ως είσοδο μια συμβολοσειρά και ένα πρότυπο και επιστρέφει Αληθές, αν το πρότυπο εμφανίζεται τουλάχιστον μία φορά μέσα στη συμβολοσειρά και Ψευδές σε αντίθετη περίπτωση. Εναλλακτικά, ο αλγόριθμος είναι δυνατό να επιστρέψει τη θέση μιας ταύτισης μέσα στη συμβολοσειρά, το πλήθος των συνολικών ταυτίσεων ή να πραγματοποιήσει αναζήτηση με πολλαπλά πρότυπα. Το ταίριασμα συμβολοσειρών βρίσκει εφαρμογή σε ένα πλήθος πεδίων και αντικειμένων, όπως επεξεργαστές κειμένου, βιοπληροφορική, υπολογιστική βιολογία, συστήματα εντοπισμού εισβολών κ.α. Στο συγκεκριμένο κεφάλαιο, θα δώσουμε αρχικά έναν τυπικό ορισμό του προβλήματος συνοδευόμενο από έναν απλοϊκό αλγόριθμο που το επιλύει. Στη συνέχεια, θα περιγράψουμε δύο χαρακτηριστικούς αλγορίθμους: τον αλγόριθμο Rabin-Karp και τον αλγόριθμο Horspool. Τέλος, θα συνοψίσουμε με μια αναφορά σε τεχνικές ταύτισης για πολλαπλά πρότυπα και σε τεχνικές προσεγγιστικής ταύτισης Ορισμός Προβλήματος και Αλγόριθμος Ωμής Βίας Αρχικά, ορίζουμε ως αλφάβητο ένα σύνολο Σ μεγέθους σ = Σ το οποίο αποτελείται από ένα πεπερασμένο πλήθος συμβόλων και συμβολίζουμε με Σ το σύνολο όλων των πεπερασμένων συμβολοσειρών που σχηματίζονται με βάση τα σύμβολα του Σ. Παραδείγματα αλφάβητων αποτελούν το ελληνικό αλφάβητο {α, β, γ,..., ω}, το δυαδικό αλφάβητο {0, 1}, το αλφάβητο των αζωτούχων βάσεων των νουκλετιδίων {A, G, C, T } κ.α. Στη συνέχεια, παραθέτουμε έναν τυπικό ορισμό για το πρόβλημα του ταιριάσματος συμβολοσειρών. Ορισμός Έστω T [1..n], T Σ ένα κείμενο (text) μεγέθους n = T και P [1..m], P Σ ένα πρότυπο (pattern) μεγέθους m = P. Στο πρόβλημα του ταιριάσματος συμβολοσειρών σκοπός είναι να βρεθούν όλες οι θέσεις s, 0 s n m στο T, έτσι ώστε να ισχύει T [s + 1..s + m] = P [1..m]. Για παράδειγμα, για το κείμενο T = abrarabraba και το πρότυπο P = bra υπάρχουν δύο ταυτίσεις και συγκεκριμένα στις θέσεις 2 και 7 του T. Ίσως ο πιο απλός τρόπος για να επιλυθεί το πρόβλημα είναι με έναν αλγόριθμο Ωμής Βίας ο οποίος λειτουργεί ως εξής: Πρώτα από όλα, η αρχή του προτύπου τοποθετείται στην ίδια θέση με την αρχή του κειμένου και συγκρίνονται ένας-ένας οι χαρακτήρες του κειμένου και του προτύπου για να διαπι-

3 12.1. Ορισμός Προβλήματος και Αλγόριθμος Ωμής Βίας 349 PLACEHOLDER FOR ch12_bruteforcestring Σχήμα 12.1: Παράδειγμα εκτέλεσης του αλγορίθμου ταιριάσματος συμβολοσειρών Ωμής Βίας, όπου T = abbrrab και P = br. στωθεί αν υπάρχει ταύτιση. Αν υπάρχει ταύτιση, επιστρέφεται η θέση του T στην οποία αυτή συνέβη και ο αλγόριθμος συνεχίζει μετατοπίζοντας το πρότυπο κατά μία θέση δεξιά. Σε περίπτωση που κατά τις συγκρίσεις διαπιστωθεί μία ασυμφωνία χαρακτήρων ο αλγόριθμος μετατοπίζει το πρότυπο κατά μία θέση δεξιά και επαναλαμβάνει τα ίδια βήματα. Η διαδικασία τερματίζεται όταν έχουν ελεγχθεί όλοι οι χαρακτήρες του κειμένου με το πρότυπο. Παρακάτω παρουσιάζεται ο ψευδοκώδικας του αλγορίθμου, ενώ ένα παράδειγμα εκτέλεσης βρίσκεται στο Σχήμα Προσέξτε ότι με το συγκεκριμένο ψευδοκώδικα επιστρέφεται η θέση του κειμένου που συμβαίνει μόνο το πρώτο ταίριασμα και -1 αν δεν υπάρχει κάποιο ταίριασμα. Με τις κατάλληλες αλλαγές (γραμμές 5-6) είναι δυνατό ο ψευδοκώδικας να επιστρέφει τις θέσεις όλων των ταιριασμάτων. Algorithm BruteForceSM(T[1..n], P[1..m]) 1. for (i=1; i<=n-m+1; i++) 2. j=1; 3. while (j<=m && T[i+j-1]==P[j]) 4. j++; 5. if (j==m+1) 6. return i; 7. return -1; Ο αλγόριθμος Ωμής Βίας απαιτεί O(nm) συνολικό χρόνο, καθώς υπάρχουν O(n) πιθανές μετακινήσεις του προτύπου σε σχέση με το κείμενο και σε κάθε μια μετακίνηση πραγματοποιούνται O(m) συγκρίσεις χαρακτήρων. Ως εκ τούτου, η επίδοση του δεν είναι ιδιαίτερα γρήγορη και γι αυτό το λόγο η χρήση του συνίσταται, όταν το μέγεθος του κειμένου και του προτύπου είναι σχετικά μικρά. Στη συνέχεια, θα εξετάσουμε αλγορίθμους που είτε επιταχύνουν τη σύγκριση μεταξύ προτύπου και κειμένου είτε μετακινούν το πρότυπο με πιο αποδοτικό τρόπο.

4 350 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών 12.2 Αλγόριθμος Rabin-Karp Μια πρώτη βελτίωση σε σχέση με τον αλγόριθμο Ωμής Βίας είναι ο αλγόριθμος Rabin-Karp ο οποίος και πάλι μεταφέρει το πρότυπο κατά μία θέση δεξιά σε κάθε επανάληψη, αλλά φιλοδοξεί επίσης να εκτελέσει τις συγκρίσεις κειμένου και προτύπου με έξυπνο τρόπο. Για να το πετύχει αυτό, ο αλγόριθμος εκμεταλλεύεται το γεγονός ότι κάθε συμβολοσειρά είναι δυνατό να αναπαρασταθεί ως ένας αριθμός (τιμή) με τη χρήση μιας συνάρτησης κατακερματισμού και ότι δύο ίδιες συμβολοσειρές έχουν ίσους αριθμούς για την ίδια συνάρτηση κατακερματισμού. Πιο συγκεκριμένα, ο αλγόριθμος ακολουθεί την ίδια διαδικασία με τον αλγόριθμο Ωμής Βίας αλλά αντί να συγκρίνει αυτούσιες συμβολοσειρές, συγκρίνει τους αριθμούς που προκύπτουν ως αποτέλεσμα της εφαρμογής μιας συνάρτησης κατακερματισμού. Αρχικά, υπολογίζει έναν αριθμό για τη συμβολοσειρά του προτύπου και σε κάθε βήμα υπολογίζει έναν αριθμό για την υποσυμβολοσειρά του κειμένου που εξετάζεται εκείνη τη στιγμή. Αν οι δύο αριθμοί είναι ίσοι, τότε οι δύο συμβολοσειρές εξετάζονται χαρακτήρα προς χαρακτήρα καθώς είναι δυνατό και δύο διαφορετικές συμβολοσειρές να αντιστοιχηθούν στον ίδιο αριθμό. Αν οι δύο συμβολοσειρές είναι ίδιες, τότε ο αλγόριθμος αναφέρει την ταύτιση, ενώ σε αντίθετη περίπτωση η διαδικασία επαναλαμβάνεται στο υπόλοιπο μέρος του κειμένου. Ο ψευδοκώδικας του αλγορίθμου Rabin-Karp αναγράφεται παρακάτω. Algorithm RabinKarpSM(T[1..n], P[1..m]) 1. hash_pattern = hash(p[1..m]); 2. hash_string = hash(t[1..m]); 3. for (i=1; i<=n-m+1; i++) 4. if hash_string == hash_pattern then 5. j=1; 6. while (j<=m && T[i+j-1]==P[j]) 7. j++; 8. if (j==m+1) then 9. return i; 10. hash_string = hash(t[i+1..i+m]); 11. return -1; Για την εφαρμογή μιας συνάρτησης κατακερματισμού σε μια συμβολοσειρά μήκους m χαρακτήρων απαιτείται O(m) χρόνος. Παρατηρείστε ότι και αυτός ο αλγόριθμος έχει O(nm) πολυπλοκότητα στη χειρότερη περίπτωση κα-

5 12.2. Αλγόριθμος Rabin-Karp 351 θώς, αν επιλέξουμε μια «κακή» συνάρτηση κατακερματισμού η οποία αντιστοιχίζει συμβολοσειρές σε ένα μικρό σύνολο αριθμών 1, η γραμμή 4 θα επαληθεύεται συχνά με αποτέλεσμα οι γραμμές 5-9, που έχουν συνολικό κόστος O(m), να εκτελεστούν πολλές φορές. Στη πράξη, αυτό μπορεί να αποφευχθεί με τη χρήση συναρτήσεων κατακερματισμού οι οποίες προσφέρουν ικανοποιητική διακριτική ικανότητα μεταξύ των συμβολοσειρών. Προτού μελετήσουμε το είδος των συναρτήσεων κατακερματισμού που μπορούν να χρησιμοποιηθούν από τον αλγόριθμο, πρέπει να αναφερθούμε στη γραμμή 10 και στην εφαρμογή της συνάρτησης κατακερματισμού στην εκάστοτε υποσυμβολοσειρά T [i + 1..m + i]. Αν σε κάθε επανάληψη υπολογίζεται εκ νέου η τιμή για κάθε συμβολοσειρά, αυτό θα έχει ως αποτέλεσμα η πολυπλοκότητα του αλγορίθμου να είναι ίση με O(nm). Αυτό μπορούμε να το αποφύγουμε, παρατηρώντας ότι ανά πάσα στιγμή η τιμή hash_string για τη συμβολοσειρά T [i + 1..i + m] μπορεί να βασιστεί στη τιμή hash_string της συμβολοσειράς T [i..m + i 1], η οποία έχει ήδη υπολογιστεί στο προηγούμενο βήμα της επανάληψης. Πιο συγκεκριμένα, μπορούμε να χρησιμοποιήσουμε ένα είδος κυλιόμενης συνάρτησης κατακερματισμού (rolling hash function), η οποία αντιστοιχίζει σε κάθε χαρακτήρα της συμβολοσειράς μια τιμή που εξαρτάται από τη θέση του μέσα στη συμβολοσειρά. Για παράδειγμα, η συμβολοσειρά S= abra μπορεί να αναπαρασταθεί από την τιμή hash(abra) = ( ) + ( ) + ( ) + ( ) = 38968, όπου 97, 98, 114 είναι οι ASCII αναπαραστάσεις των χαρακτήρων a, b, r αντίστοιχα και ο αριθμός 7 αντιστοιχεί σε μια βάση στην οποία εκφράζεται η τιμή hash(abra) 2. Έστω ότι στην επόμενη επανάληψη του αλγορίθμου προκύπτει η συμβολοσειρά brab. Τότε, για να υπολογίσουμε την τιμή hash(brab), θα αφαιρέσουμε από την τιμή hash(abra) την ποσότητα που αντιστοιχεί στο πρώτο a, θα πολλαπλασιάσουμε το υπόλοιπο με τη βάση και τέλος θα προσθέσουμε τη ποσότητα που αντιστοιχεί στο τελευταίο b. Αναλυτικότερα: hash(brab) = [38968 ( )] 7 + ( ) = Με αυτό τον τρόπο, η γραμμή 10 απαιτεί O(1) χρόνο σε κάθε επανάληψη, καθώς η τιμή hash(t [i+1..i+m]) θα υπολογιστεί με βάση την τιμή hash(t [i..i+ m 1]) που έχει υπολογιστεί στο αμέσως προηγούμενο βήμα της επανάληψης. 1 Ένα ακραίο παράδειγμα θα ήταν μια συνάρτηση hash(string) = c, c R η οποία αποδίδει σε κάθε συμβολοσειρά string την ίδια σταθερά c. 2 Συνήθως ως βάση επιλέγεται ένας πρώτος αριθμός

6 352 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών 12.3 Αλγόριθμος Boyer-Moore-Horspool Οι αλγόριθμοι που παρουσιάστηκαν μέχρι αυτό το σημείο είχαν ως κοινό γνώρισμα τη μετατόπιση του προτύπου μία θέση δεξιά κατά τις διαδοχικές συγκρίσεις με το κείμενο. Στη συγκεκριμένη ενότητα θα αναλύσουμε τον αλγόριθμο Boyer-Moore-Horspool, ο οποίος κάνει χρήση ενός κανόνα για τη μετακίνηση του προτύπου σε σχέση με το κείμενο κατά περισσότερες από μία θέσεις. Ο αλγόριθμος τοποθετεί την αρχή του προτύπου στην ίδια θέση με την αρχή του κειμένου και συγκρίνει διαδοχικά τους χαρακτήρες τους. Αν διαπιστωθεί ταύτιση τότε αυτή αναφέρεται, ενώ σε αντίθετη περίπτωση το πρότυπο μετατοπίζεται κάτα ένα πλήθος θέσεων δεξιότερα. Σκοπός του αλγορίθμου είναι να μετατοπίσει το πρότυπο κατά όσο το δυνατόν περισσότερες θέσεις χωρίς να παραλειφθεί κάποιο ενδεχόμενο ταίριασμα. Οι μετατοπίσεις πραγματοποιούνται από τα αριστερά προς τα δεξιά, ενώ οι συγκρίσεις των συμβολοσειρών του προτύπου και του κειμένου από τα δεξιά προς τα αριστερά (δηλαδή από το τέλος του προτύπου προς την αρχή). Έστω ότι κατά τη διάρκεια των συγκρίσεων μεταξύ των υποσυμβολοσειρών του προτύπου και του κειμένου διαπιστωθεί μια ασυμφωνία χαρακτήρων. Τότε, αν με το σύμβολο c συμβολίζουμε τον χαρακτήρα του κειμένου που είναι ευθυγραμμισμένος με τον τελευταίο χαρακτήρα του προτύπου, διακρίνουμε τέσσερις περιπτώσεις: Περίπτωση 1 Η ασυμφωνία προκύπτει στον χαρακτήρα c και δεν υπάρχουν χαρακτήρες με την τιμή του c στο πρότυπο. Σε αυτή την περίπτωση μετακινούμε το πρότυπο κατά m θέσεις. c T[1].. W..T[n] EXAMPLE EXAMPLE Περίπτωση 2 Η ασυμφωνία προκύπτει στον χαρακτήρα c και υπάρχουν χαρακτήρες με την τιμή του c στο πρότυπο. Σε αυτή την περίπτωση μετακινούμε το πρότυπο, έτσι ώστε να ευθυγραμμιστεί η δεξιότερη εμφάνιση του c στο πρότυπο με το c του κειμένου.

7 12.3. Αλγόριθμος Boyer-Moore-Horspool 353 c T[1].. P..T[n] PROPOSAL PROPOSAL Περίπτωση 3 Η ασυμφωνία προκύπτει αριστερότερα του c και το c δεν υπάρχει στους m 1 πρώτους χαρακτήρες του προτύπου. Αυτή η περίπτωση είναι αντίστοιχη με την Περίπτωση 1 και το πρότυπο θα μετακινηθεί κατά m θέσεις. c T[1].. ASAL..T[n] PROPOSAL PROPOSAL Περίπτωση 4 Η ασυμφωνία προκύπτει αριστερότερα του c και το c υπάρχει στους m 1 πρώτους χαρακτήρες του προτύπου. Αυτή η περίπτωση είναι αντίστοιχη με την Περίπτωση 2 και το πρότυπο θα μετακινηθεί με τέτοιο τρόπο, ώστε να ευθυγραμμιστεί η δεξιότερη εμφάνιση του c στο πρότυπο με το c του κειμένου. c T[1].. VER..T[n] STRANGER STRANGER Οι παραπάνω περιπτώσεις μπορούν να κωδικοποιηθούν εύκολα με ένα προεπεξεργαστικό βήμα κατά το οποίο υπολογίζεται το πλήθος των θέσεων μετατόπισης ανάλογα με τον χαρακτήρα c του κειμένου. Αναλυτικότερα, δημιουργούμε έναν πίνακα μετατοπίσεων σ θέσεων, στον οποίο το κάθε κελί αντιστοιχεί σε έναν χαρακτήρα από το αλφάβητο. Έπειτα, αρχικοποιούμε κάθε κελί με την τιμή m και για κάθε χαρακτήρα που εμφανίζεται στις m 1 πρώτες θέσεις του προτύπου, τοποθετούμε στο κελί του το πλήθος των θέσεων που απέχει η δεξιότερη εμφάνισή του από τον τελευταίο χαρακτήρα του προτύπου. Για παράδειγμα για το αλφάβητο {A, G, C, T } και το πρότυπο AAGATATTAG έχουμε τον Πίνακα Ο αλγόριθμος κατασκευής του πίνακα μετατοπίσεων αναγράφεται παρακάτω.

8 354 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών Algorithm GenerateShiftTable(P[1..m]) 1. for (i=1; i<=m; i++) do 2. table[i] = m; 3. for (j=1; j<=m-1; j++) do 4. table[p[j]] = m-j; 5. return table; A G C T Πίνακας 12.1: Πίνακας μετατοπίσεων για το αλφάβητο {A, G, C, T } και το πρότυπο AAGATATTAG Με βάση όλα τα παραπάνω ο αλγόριθμος Boyer-Moore-Horspool παίρνει την ακόλουθη μορφή: Algorithm Boyer-Moore-HorspoolSM(T[1..n], P[1..m]) 1. table = GenerateShiftTable(P[1..m]); 2. i = m; 3. while i<=n do 4. k=0; 5. while k<=m-1 and P[m-k]=T[i-k] do 6. k=k+1; 7. if k==m then 8. return i-m+1; 9. else 10. i = i+table[t[i]] 11. return -1; Αρχικά δημιουργείται ο πίνακας μετατοπίσεων σε O(σ + m) χρόνο και ευθυγραμμίζεται η αρχή του προτύπου με την αρχή του κειμένου. Στη συνέχεια, εκτελούνται οι συγκρίσεις από τα δεξιά στα αριστερά και όποτε διαπιστωθεί ασυμφωνία η μετατόπιση γίνεται με βάση τον πίνακα μετατοπίσεων (γραμμή 10). Ένα παράδειγμα εκτέλεσης για Σ = {a, b, r}, T = abbrrab και P = rab παρουσιάζεται στο Σχήμα Ο αλγόριθμος Boyer-Moore-Horspool απαιτεί O(nm) χρόνο στη χειρότερη περίπτωση, ωστόσο είναι δυνατό να αποδειχθεί ότι ο μέσος αριθμός συγκρίσεων για ένα χαρακτήρα είναι μεταξύ 1/σ και 2/(σ + 1).

9 12.4. Πολλαπλά Πρότυπα και Προσεγγιστικό Ταίριασμα 355 PLACEHOLDER FOR ch12_horspool Σχήμα 12.2: Παράδειγμα εκτέλεσης του αλγορίθμου ταιριάσματος συμβολοσειρών Boyer-Moore-Horspool, όπου Σ = {a, b, r}, T = abbrrab και P = rab Πολλαπλά Πρότυπα και Προσεγγιστικό Ταίριασμα Στη συγκεκριμένη ενότητα θα κάνουμε μια σύντομη αναφορά σε παραλλαγές και επεκτάσεις του προβλήματος ταιριάσματος συμβολοσειρών το οποίο εξετάσαμε μέχρι τώρα. Μια επέκταση στο αρχικό πρόβλημα είναι η ύπαρξη πολλαπλών προτύπων αντί ενός. Πιο συγκεκριμένα, στο πρόβλημα της ταύτισης πολλαπλών προτύπων δίνεται ένα κείμενο και ένα σύνολο προτύπων και ζητείται να επιστραφούν οι θέσεις του κειμένου στις οποίες πραγματοποιείται ταύτιση με κάποιο από τα πρότυπα. Ένας απλοϊκός τρόπος επίλυσης θα ήταν να εκτελεστεί ένας αλγόριθμος ταιριάσματος συμβολοσειρών για κάθε πρότυπο και στο τέλος να συγκεντρωθούν και να επιστραφούν όλες οι λύσεις. Ωστόσο, μπορούμε να προσαρμόσουμε τον αλγόριθμο Rabin-Karp, για να πετύχουμε το ίδιο αποτέλεσμα με τον εξής τρόπο: Αντί, αρχικά, να εφαρμόζουμε την συνάρτηση κατακερματισμού σε μία συμβολοσειρά-πρότυπο, την εφαρμόζουμε σε κάθε ένα από τα πολλαπλά πρότυπα και συλλέγουμε όλες τις τιμές σε μια δομή συνόλου. Έτσι, σε κάθε βήμα ο αλγόριθμος ελέγχει αν η τιμή για το τμήμα του κειμένου που εξετάζει εκείνη τη στιγμή είναι ίση με κάποια από τις τιμές μέσα στο σύνολο και συνεχίζει τη διαδικασία κατά το γνωστό τρόπο. Μια παραλλαγή στο κλασικό πρόβλημα είναι αυτή του προσεγγιστικού ταιριάσματος συμβολοσειρών κατά το οποίο σκοπός είναι να βρεθούν συμβολοσειρές σε ένα κείμενο οι οποίες ταιριάζουν προσεγγιστικά με ένα πρότυπο. Μια μετρική για το πόσο ταιριάζουν δύο συμβολοσειρές είναι η Απόσταση Μετασχηματισμού (edit distance) η οποία μετράει το πλήθος των ενεργειών (εισαγωγή χαρακτήρα, διαγραφή χαρακτήρα, αλλαγή χαρακτήρα) που πρέπει να εφαρμοστούν στη μία συμβολοσειρά, έτσι ώστε να προκύψει η άλλη. Για παράδειγμα, η απόσταση μετασχηματισμού μεταξύ των συμβολοσειρών example και excellent είναι 5. Τότε ένας τυπικός ορισμός για το πρόβλημα είναι: Για ένα κείμενο T [1..n] και ένα πρότυπο P [1..m] να βρεθεί η υποσυμβολοσειρά T [i..j] η οποία έχει την ελάχιστη απόσταση μετασχηματισμού από το P σε σχέση με όλες τις υποσυμβολοσειρές του T. Τη λύση στο πρόβλημα μπορεί να τη δώσει ένας αλγόριθ-

10 356 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών μος Ωμής Βίας κατά τον οποίον υπολογίζεται η απόσταση μετασχηματισμού του P από κάθε υποσυμβολοσειρά του T και επιλέγεται η ελάχιστη. Ωστόσο, αν δεχθούμε ότι ο υπολογισμός της απόστασης μετασχηματισμού μεταξύ δύο συμβολοσειρών απαιτεί O(nm) χρόνο, ο παραπάνω αλγόριθμος Ωμής Βίας θα απαιτούσε O(n 3 m) χρόνο συνολικά. Στη βιβλιογραφία έχουν προταθεί λύσεις οι οποίες βασίζονται στις γνωστές τεχνικές σχεδίασης (π.χ. δυναμικό προγραμματισμό) και πετυχαίνουν καλύτερη απόδοση Βιβλιογραφική Συζήτηση Ο αλγόριθμος Rabin-Karp προτάθηκε στο [6], ενώ ο αλγόριθμος Boyer-Moore- Horspool, ο οποίος αποτελεί παραλλαγή του αλγορίθμου Boyer-Moore [3], προτάθηκε στο [5]. Άλλοι αλγόριθμοι για ταίριασμα συμβολοσειρών είναι οι αλγόριθμοι των Knuth-Morris-Pratt [7] και των Apostolico-Giancarlo [2]. Πειραματικά αποτελέσματα σχετικά με την απόδοση των αλγορίθμων έχουν παρουσιαστεί από τον Lecroq [8]. Για το ταίριασμα πολλαπλών προτύπων, πέρα από τον αλγόριθμο Rabin- Karp, έχουν προταθεί οι αλγόριθμοι Aho-Corasick [1] και Commentz-Walter [4], ενώ μια καλή αφετηρία στο πρόβλημα του προσεγγιστικού ταιριάσματος είναι η εργασία του Navarro [9] Ασκήσεις 1. Για κείμενο T = , πρότυπο P = 71 και συνάρτηση κατακερματισμού η οποία αντιστοιχίζει κάθε υποσυμβολοσειρά με το άθροισμα των χαρακτήρων της (π.χ. hash(t [1..2]) = T [1]+T [2] = 5+6 = 11) να εκτελέσετε τον αλγόριθμο Rabin-Karp. Πόσες φορές επαληθεύεται η γραμμή 4 στον ψευδοκώδικα της Ενότητας 12.2 χωρίς πράγματι να υπάρχει ταύτιση; 2. Για αλφάβητο Σ = {A, G, C, T }, κείμενο T = AAGTTACTAAGAGGCTA και πρότυπο P = AGA να εκτελέσετε τον αλγόριθμο Ωμής Βίας και τον αλγόριθμο Horspool. Πόσες μετακινήσεις του προτύπου και πόσες συγκρίσεις χαρακτήρων μέχρι την πρώτη ταύτιση θα γίνουν για κάθε αλγόριθμο; 3. Να δώσετε ένα παράδειγμα εισόδου χειρότερης περίπτωσης για τον αλγόριθμο Horspool.

11 12.6. Ασκήσεις Να προσαρμόσετε τον ψευδοκώδικα του αλγορίθμου Rabin-Karp (Ενότητα 12.2), έτσι ώστε να υποστηρίζει πολλαπλά πρότυπα. Με ποιον τρόπο θα ελέγχατε αποδοτικά την ύπαρξη μιας συγκεκριμένης τιμής μέσα στη δομή συνόλου;

12 358 Κεφάλαιο 12. Αλγόριθμοι Συμβολοσειρών

13 Βιβλιογραφία [1] Alfred V. Aho and Margaret J. Corasick. Efficient string matching: An aid to bibliographic search. Commun. ACM, 18(6): , [2] Alberto Apostolico and Raffaele Giancarlo. The boyer-moore-galil string searching strategies revisited. SIAM J. Comput., 15(1):98 105, [3] Robert S. Boyer and J. Strother Moore. A fast string searching algorithm. Commun. ACM, 20(10): , [4] Beate Commentz-Walter. A string matching algorithm fast on the average. In Automata, Languages and Programming, 6th Colloquium, Graz, Austria, July 16-20, 1979, Proceedings, pages , [5] R. Nigel Horspool. Practical fast searching in strings. Softw., Pract. Exper., 10(6): , [6] Richard M. Karp and Michael O. Rabin. Efficient randomized pattern-matching algorithms. IBM Journal of Research and Development, 31(2): , [7] Donald E. Knuth, James H. Morris Jr., and Vaughan R. Pratt. Fast pattern matching in strings. SIAM J. Comput., 6(2): , [8] Thierry Lecroq. Experimental results on string matching algorithms. Softw., Pract. Exper., 25(7): , [9] Gonzalo Navarro. A guided tour to approximate string matching. ACM Comput. Surv., 33(1):31 88,

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Χωρικοί-χρονικοί συμβιβασμοί http://delab.csd.auth.gr/courses/algorithms/ Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Χωρικοί-χρονικοί συμβιβασμοί Σε πολλά προβλήματα, ο επιπλέον χώρος

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 7: Χωρικοί Χρονικοί Συμβιβασμοί. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 7: Χωρικοί Χρονικοί Συμβιβασμοί. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 7: Χωρικοί Χρονικοί Συμβιβασμοί Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης

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

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Ωμή Βία http://delab.csd.auth.gr/courses/algorithms/ auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ωμή Βία Είναι μία άμεση προσέγγιση που βασίζεται στην εκφώνηση του προβλήματος και

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΛΕΤΗ ΚΙ ΥΛΟΠΟΙΗΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΝΑΖΗΤΗΣΗΣ ΠΡΟΤΥΠΟΥ ΣΕ ΚΕΙΜΕΝΟ Διπλωματική Εργασία του Πέτρου Δούνου ΑΜ: 0714 Θεσσαλονίκη,

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

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

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

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

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Πρώτο Σύνολο Ασκήσεων 2014-2015 Κατερίνα Ποντζόλκοβα, 5405 Αθανασία Ζαχαριά, 5295 Ερώτημα 1 Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n. Ο αλγόριθμος εύρεσης

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Συμβολοσειρές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Συμβολοσειρές Συμβολοσειρές και προβλήματα που αφορούν συμβολοσειρές εμφανίζονται τόσο συχνά που

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

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου Συμπίεση Η συμπίεση δεδομένων ελαττώνει το μέγεθος ενός αρχείου : Εξοικονόμηση αποθηκευτικού χώρου Εξοικονόμηση χρόνου μετάδοσης Τα περισσότερα αρχεία έχουν πλεονασμό στα δεδομένα τους Είναι σημαντική

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 3: Ωμή Βία. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 3: Ωμή Βία. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: Ωμή Βία Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

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

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

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

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

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

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

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

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

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 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα

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

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

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος

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

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

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

Προγραμματιστικές Τεχνικές

Προγραμματιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης

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

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Έλεγχος πληρότητας: Πρέπει να καταχωρούνται στα δεδομένα ο αριθμός της αίθουσας καθώς και ο όροφος στον οποίο βρίσκεται ώστε να μην υπάρχουν αμφιβολίες σε ποια αίθουσα αντιστοιχεί το εμβαδόν που υπολογίστηκε.

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2014 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2014 1 / 42 Αριθμητικές Μέθοδοι

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

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

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

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q,

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δημιουργία Δυαδικών Δέντρων Αναζήτησης Δημιουργία Δυαδικών Δέντρων Αναζήτησης Τα Δυαδικά δέντρα αναζήτησης είναι διατεταγμένα δυαδικά δέντρα όπου έχει σημασία η διάταξη των παιδιών κάθε κόμβου. Συγκεκριμένα για τα Δυαδικά δέντρα αναζήτησης,

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

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: ΑΕσΠΠ 1 / 8 I. ΑΛΓΟΡΙΘΜΟΣ 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: i. Είσοδος : χρήση μιας μεταβλητής που δεν έχει πάρει προηγουμένως τιμή. ii. Έξοδος : ο αλγόριθμος δεν εμφανίζει

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

συµβολοσειρών µε εφαρµογές στα βιολογικά δεδοµένα

συµβολοσειρών µε εφαρµογές στα βιολογικά δεδοµένα Aλγόριθµοι αναγνώρισης συµβολοσειρών µε εφαρµογές στα βιολογικά δεδοµένα ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Χρήστος Τζόκας Θεσσαλονίκη Oκτώβριος 2008 Τµήµα Πληροφορικής Α.Π.Θ. 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...3 2. Περίληψη.....4

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Καθηγητής: Περικλής

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

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

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { w w = (ab) 2m b m (ba) m, m 0 } (β) Να διατυπώσετε

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

Βάσεις Δεδομένων ΙΙ Ενότητα 8

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

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ Γ Λυκείου Κατεύθυνσης Mike Trimos Βήματα Ανάπτυξης ενός Συστήματος 1.Ορισμός και κατανόηση του προβλήματος 2.Ανάλυση του προβλήματος 3.Σχεδιασμός Αλγοριθμικής Λύσης 4.Κωδικοποίηση 5.Διόρθωση

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής ΕΠΛ 232 Προγραμματιστικές Τεχνικές και Εργαλεία ΑΣΚΗΣΗ 2 Σύγκριση Ακολουθιών DNΑ με Δείκτες Διδάσκων: Δημήτρης Ζεϊναλιπούρ Υπεύθυνος Εργαστηρίου: Παύλος Αντωνίου

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

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

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

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

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

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

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

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

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

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

Μηχανές Turing (T.M) I

Μηχανές Turing (T.M) I Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο

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

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων Κεφάλαιο 1 Εισαγωγή Περιεχόμενα 1.1 Αλγόριθμοι και Δομές Δεδομένων... 9 1.2 Διατήρηση Διατεταγμένου Συνόλου... 12 1.3 Ολοκληρωμένη Υλοποίηση σε Java... 15 Ασκήσεις... 18 Βιβλιογραφία... 19 1.1 Αλγόριθμοι

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

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

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

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

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

ΣΥΜΒΟΛΟΣΕΙΡΕΣ (Strings) Ο ΑΤΔ Συµβολοσειρά Μία συµβολοσειρά είναι µία ακολουθία χαρακτήρων. Bασικές πράξεις : 1. Δηµιουργία. 2. Μήκος. 3.

ΣΥΜΒΟΛΟΣΕΙΡΕΣ (Strings) Ο ΑΤΔ Συµβολοσειρά Μία συµβολοσειρά είναι µία ακολουθία χαρακτήρων. Bασικές πράξεις : 1. Δηµιουργία. 2. Μήκος. 3. ΣΥΜΒΟΛΟΣΕΙΡΕΣ (Strings) Ο ΑΤΔ Συµβολοσειρά Μία συµβολοσειρά είναι µία ακολουθία χαρακτήρων Bασικές πράξεις : 1. Δηµιουργία 2. Μήκος 3. Ανάκτηση 4. Προσάρτηση 5. Διαγραφή 6. Αντιγραφή 7. Συνένωση 8. Αναζήτηση

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

Εθνικό Μετσόβιο Πολυτεχνείο

Εθνικό Μετσόβιο Πολυτεχνείο Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία PROJECT Συνοπτική Παρουσίαση του Κβαντικού Αλγόριθμου Παραγοντοποίησης

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

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗ ΕΠΑΛ (ΟΜΑΔΑ Α ) & ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 08/04/2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΟΚΤΩ (8) ΘΕΜΑ Α ΑΠΑΝΤΗΣΕΙΣ Α1. Α2. α-

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

Τεχνικές Αναζήτησης Προτύπων σε Αρχεία Κειµένου

Τεχνικές Αναζήτησης Προτύπων σε Αρχεία Κειµένου ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ & ΙΚΤΥΩΝ Τεχνικές Αναζήτησης Προτύπων σε Αρχεία Κειµένου Διπλωματική Εργασία του Οδυσσέα Ε. Καλαμιώτη Επιβλέπων: Παναγιώτης Μποζάνης, Επίκουρος

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

L A P. w L A f(w) L B (10.1) u := f(w)

L A P. w L A f(w) L B (10.1) u := f(w) Κεφάλαιο 10 NP -πληρότητα Σύνοψη Οι γλώσσες στην κλάση πολυπλοκότητας P μπορούν να αποφασίζονται σε πολωνυμικό χρόνο. Οι επιστήμονες πιστεύουν, αν και δε μπορούν να το αποδείξουν ότι η P είναι ένα γνήσιο

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ» ΗΜΕΡ.ΑΝΑΘΕΣΗΣ: Δευτέρα 21 Δεκεμβρίου 2015 ΗΜΕΡ.ΠΑΡΑΔΟΣΗΣ: Δευτέρα 25 Ιανουαρίου 2016 Διδάσκοντες:

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

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

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

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

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

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου 2013 Θέµα 1 (α') Η απάντηση είναι λάθος. Αν χρησιµοποιήσουµε την µακροεντολή, για παράδειγµα, στην έκφραση 24/CUBE(2) η έκφραση

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ Πεπερασμένα Αυτόματα (ΠΑ) Τα πεπερασμένα αυτόματα είναι οι απλούστερες «υπολογιστικές μηχανές». Δεν έχουν μνήμη, μόνο μία εσωτερική μονάδα με πεπερασμένο αριθμό καταστάσεων. Διαβάζουν τη συμβολοσειρά εισόδου

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή

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

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη

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

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙ Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος. Στο παρόν κεφάλαιο παρουσιάζονται προβλήματα τα οποία αφορούν κυρίως τις εντολές της C οι οποίες ελέγχουν την ροή εκτέλεσης

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

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

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

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

ΕΦΑΡΜΟΓΗ Q-LEARNING ΣΕ GRID WORLD ΚΑΙ ΕΞΥΠΝΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ LEARNING RATE ΛΑΘΙΩΤΑΚΗΣ ΑΡΗΣ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ 2011-12

ΕΦΑΡΜΟΓΗ Q-LEARNING ΣΕ GRID WORLD ΚΑΙ ΕΞΥΠΝΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ LEARNING RATE ΛΑΘΙΩΤΑΚΗΣ ΑΡΗΣ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ 2011-12 ΕΦΑΡΜΟΓΗ Q-LEARNING ΣΕ GRID WORLD ΚΑΙ ΕΞΥΠΝΟΣ ΧΕΙΡΙΣΜΟΣ ΤΟΥ LEARNING RATE ΛΑΘΙΩΤΑΚΗΣ ΑΡΗΣ ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ 2011-12 ΣΚΟΠΟΣ ΕΡΓΑΣΙΑΣ Στα πλαίσια του μαθήματος Αυτόνομοι Πράκτορες μας ζητήθηκε να αναπτύξουμε

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

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

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

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

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

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

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

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6 Εισαγωγή στην Επιστήμη των Υπολογιστών 3η ενότητα: Αυτόματα και Τυπικές Γραμματικές http://www.corelab.ece.ntua.gr/courses/ Αυτόματα Τρόπος κωδικοποίησης αλγορίθμων. Τρόπος περιγραφής συστημάτων πεπερασμένων

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: μέθοδοι μονοδιάστατης ελαχιστοποίησης Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 6 η /2017 Τι παρουσιάστηκε

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης Στη C++ υπάρχουν 3 διαφορετικές εντολές επανάληψης: while for do-while 1 2 ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολή while Παράδειγμα #1 Κατασκευάστε πρόγραμμα που για

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

Τεχνητή Νοημοσύνη. 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η έκδοση, Β. Γκιούρδας

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

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

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

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

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

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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