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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

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

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

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

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

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

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

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

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Διαδικασιακός Προγραμματισμός

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

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

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

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

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

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

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

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

Δυναμικός Προγραμματισμός

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

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

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

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

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

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

Ταξινόμηση. Σαλτογιάννη Αθανασία

Δυναμικός Προγραμματισμός

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Προγραμματισμός Ι (ΗΥ120)

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

Επαναληπτικές Ασκήσεις. Ρίζου Ζωή

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης

υναμικός Προγραμματισμός

σας φύλλο τον αριθμό της ερώτησης ακολουθούμενη από το γράμμα Σ (Σωστή) ή το γράμμα Λ (Λάθος).

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

Δυναμικός Προγραμματισμός

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

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

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

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

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Εργαστηριακή Άσκηση 1

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

Μη γράφετε στο πίσω μέρος της σελίδας

Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

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

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Περι-γράφοντας... βρόχους

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

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

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

ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΠΟΙΚΙΑΣ ΜΥΡΜΗΓΚΙΩΝ ANT COLONY OPTIMIZATION METHODS

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

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

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

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

Ακέραιος Γραμμικός Προγραμματισμός

υναμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

Fast Fourier Transform

Πίνακας Περιεχομένων

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΟΡΓΑΝΩΣΗΣ & ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ & ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Β ΕΤΟΣ Γ Εξάμηνο Δρ. Δημήτριος Κ. Κουκόπουλος Επίκουρος Καθηγητής Οκτώβριος 2016 1

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 Τίτλος: Επίλυση Πολυωνύμου με βάση τον Κανόνα του Horner Άσκηση n n 1 Δίνεται το πολυώνυμο p( x) anx an 1x a1x a0 και η τιμή x X. Ζητείται η τιμή p(x ) με βάση τον κανόνα του Horner. Παρατηρείστε ότι ο κανόνας του Horner χρησιμοποιεί επαναληπτικές παραγοντοποιήσεις σύμφωνα με το παράδειγμα 4 3 2 p ( x) a4x a3x a2x a1x a0 2 3 a x( a a x a x a ) 0 1 2 3 4x 2 0 x( a1 x( a2 a3x a4x 0 x( a1 x( a2 x( a3 a4x a )) a Ο υπολογισμός αρχίζει από την εσωτερική παρένθεση. i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου σας. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει αυτό το πρόβλημα. iii) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=4, x=5, a 0 3, a 2 1, a 2 5, a 3 6, a 1 4. ))) 2

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2 Τίτλος: Σχεδίαση και Ανάλυση του Αλγορίθμου της Δυαδικής Αναζήτησης Πρόβλημα αναζήτησης: Δίνονται ο φυσικός αριθμός n, τα n διατεταγμένα στοιχεία με αύξουσα σειρά x 1, x 2,, x n και ένα στοιχείο x του ίδιου τύπου με τα x i. Ζητείται να βρεθεί αν υπάρχει το x στη λίστα των n στοιχείων και να επιστραφεί η θέση του σε αυτή ή ο αριθμός 0 αν δεν υπάρχει. Αλγόριθμος της δυαδικής αναζήτησης Στην αναζήτηση αυτή συγκρίνεται το x με το μεσαίο στοιχείο της διατεταγμένης λίστας και ανάλογα με το αν είναι μικρότερο ή μεγαλύτερο επιλέγεται το ένα ή το άλλο μισό της λίστας για περαιτέρω αναζήτηση. Η διαδικασία της αναζήτησης συνεχίζεται είτε μέχρι να βρεθεί ότι το x είναι ίσο με κάποιο από τα μεσαία στοιχεία x, οπότε επιστρέφουμε το j, είτε μέχρι να καταλήξουμε σε μια υπολίστα με ένα j στοιχείο, οπότε η απόφαση είναι απλή. Αν δε βρεθεί κάποιο τότε επιστρέφουμε j 0. x j τέτοιο ώστε x x j, Άσκηση Δίνονται ο φυσικός αριθμός n, τα n διατεταγμένα στοιχεία x1 x2 xn και ένα ακόμα στοιχείο x, του ίδιου τύπου με τα x j, j 1 n. Ζητείται να βρεθεί αν το x είναι ίσο με κάποιο από τα διατεταγμένα στοιχεία x j, j 1 n χρησιμοποιώντας τον αλγόριθμο της δυαδικής αναζήτησης. i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει αυτό το πρόβλημα. iii) Υπολογίστε την πολυπλοκότητα μέσου όρου ΠΜΟ(n) (αριθμός εντολών που εκτελούνται ως συνάρτηση του n σε μια μέση περίπτωση από πλευράς εισόδου) και την πολυπλοκότητα χειρότερης περίπτωσης ΠΧΠ(n) (αριθμός εντολών που εκτελούνται ως συνάρτηση του n στη χειρότερη περίπτωση από πλευράς εισόδου) του αλγορίθμου που σχεδιάσατε. iv) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=10, x=5, x 5, x 6, x 10, x 12, x 20, x 40, 1 2 10 x 45 7, x 50 8, x 51, x 52. 9 3 4 5 6 3

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 Τίτλος: Σχεδίαση και Ανάλυση του Αλγορίθμου της Ταξινόμησης Παρεμβολής Άσκηση Δίνονται ο φυσικός αριθμός n και τα n στοιχεία x 1, x 2,, x n που μπορούμε να θεωρήσουμε ότι είναι τοποθετημένα σε έναν πίνακα L μήκους n έτσι ώστε L(i) = x ι για i=1..n. Ζητείται να διαταχθούν τα στοιχεία του πίνακα L σε αύξουσα σειρά χρησιμοποιώντας παρεμβολή και να επιστραφεί ο προκύπτων πίνακας. Στην παρεμβολή ο αλγόριθμος παρεμβάλει κάθε νέο στοιχείο σε έναν πίνακα συγκρίνοντας με τα στοιχεία που έχουν ήδη διαταχθεί, από δεξιά προς τα αριστερά, μέχρι να βρει τη σωστή του θέση. i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει αυτό το πρόβλημα. iii) Υπολογίστε την πολυπλοκότητα χειρότερης περίπτωσης ΠΧΠ(n) (αριθμός εντολών που εκτελούνται ως συνάρτηση του n στη χειρότερη περίπτωση από πλευράς εισόδου) του αλγορίθμου που σχεδιάσατε. iv) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=10, x 1 =30, x 2 =10, x 2 =15, x 3 =12, x 4 =31, x 5 =32, x 6 =40, x 7 = 9, x 8 =5, x 9 =1, x 10 =1. 4

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 Τίτλος: Ο Αλγόριθμος QuickSort και η Τεχνική Διαίρει και Βασίλευε Διαίρει και Βασίλευε Αντί να εξετάσουμε ένα πρόβλημα που αφορά ένα μεγάλο μέγεθος εισόδου άμεσα, διασπούμε την είσοδο σε μικρότερα κομμάτια, λύνουμε το πρόβλημα για κάθε μικρό κομμάτι ξεχωριστά και μετά πληρώνοντας ένα επιπλέον κόστος συνδέουμε τα επιμέρους αποτελέσματα για να δώσουμε λύση στο αρχικό μέγεθος εισόδου του προβλήματος. Υπάρχουν δυο περιπτώσεις εφαρμογής της μεθόδου: 1. Απαιτείται η λύση ενός μόνο από τα δυο υποπροβλήματα που προκύπτουν από μια διάσπαση (π.χ. δυαδική αναζήτηση). 2. Απαιτείται η λύση και των δυο υποπροβλημάτων που προκύπτουν από μια διάσπαση (π.χ. ταξινόμηση QuickSort). Πρόβλημα ταξινόμησης: Έστω L μια αρχική λίστα από n στοιχεία. Θέλω να τη διατάξω σε αύξουσα σειρά. Βασικός Κανόνας Αλγορίθμου QuickSort 1. Επιλέγω έναν από τους αριθμούς της λίστας, x, και διασπώ την αρχική λίστα L σε δυο υποπίνακες, ώστε όλες οι τιμές του L που είναι μικρότερες του x να βρίσκονται στον αριστερό υποπίνακα και όλες οι τιμές του L που είναι μεγαλύτερες του x να βρίσκονται στο δεξιό υποπίνακα. 2. Κάνω το ίδιο με καθέναν από τους δυο υποπίνακες, οπότε παίρνω 4 υποπίνακες, όπου οι τιμές του πρώτου υποπίνακα είναι μικρότερες από τις τιμές του δεύτερου, οι τιμές του δεύτερου είναι μικρότερες από τις τιμές του τρίτου και οι τιμές του τρίτου είναι μικρότερες από τις τιμές του τέταρτου υποπίνακα. 3. Η ίδια διαδικασία επαναλαμβάνεται για κάθε υποπίνακα μέχρι οι τιμές της λίστας να διαταχθούν σε αύξουσα σειρά. Παράδειγμα Ως παράδειγμα θεωρείστε τον πίνακα L={7,3,5,9,8,1,2,17}. Διαλέγουμε x=l[1]. Συγκρίνουμε το x με τα στοιχεία του L από αριστερά προς τα δεξιά μέχρι L[i]>x, που συμβαίνει για i=4. Κατόπιν συγκρίνουμε το x με τα στοιχεία του L από τα δεξιά προς τα αριστερά μέχρι L[j]<x, που συμβαίνει για j=7. Αν το j>i αντιμεταθέτουμε τα στοιχεία L[i] και L[j]. Εδώ αντιμεταθέτουμε τα L[4], L[7]. Ο νέος πίνακας είναι L={7,3,5,2,8,1,9,17}. Αυτό συνεχίζει μέχρι i>j. Τότε, συγκρίνοντας το x με τα στοιχεία του L από αριστερά προς τα δεξιά βρίσκουμε ότι για i=5, L[5]>x. Σταματούμε και συγκρίνουμε το x με τα στοιχεία του L από τα δεξιά προς τα αριστερά και βρίσκουμε ότι για j=6, L[j]<x. Αντιμεταθέτουμε τα στοιχεία L[5], L[6]. O νέος πίνακας γίνεται L={7,3,5,2,1,8,9,17}. 5

Όμως, (i=5)<(j=6), οπότε δεν έχουμε τελειώσει. Συγκρίνοντας το x με τα στοιχεία του L από τα αριστερά προς τα δεξιά βρίσκουμε ότι για i=6, L[6]>x. Σταματούμε και συγκρίνουμε το x με τα στοιχεία του L από τα δεξιά προς τα αριστερά και βρίσκουμε ότι για j=5, L[5]<x. Όμως, (i=6)>(j=5), οπότε δεν αντιμεταθέτουμε τα στοιχεία L[6] και L[5]. Εδώ έχουμε τελειώσει τη διάσπαση του πίνακα σε δυο μέρη και αντιμεταθέτουμε τα στοιχεία x και L[5]. Ο νέος πίνακας γίνεται L={1,3,5,2,7,8,9,17}. Παρατηρούμε ότι στο νέο πίνακα το 7 είναι στη σωστή του θέση. Στη συνέχεια εφαρμόζουμε αναδρομικά τον αλγόριθμο στους υποπίνακες {1,3,5,2} και {8,9,17}. Άσκηση Δίνονται ο φυσικός αριθμός n και ένας πίνακας L με n στοιχεία. Ζητείται να διαταχθούν τα στοιχεία του πίνακα σε αύξουσα σειρά χρησιμοποιώντας έναν αλγόριθμο που στηρίζεται στη μέθοδο διαίρει και βασίλευε (quicksort). i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει αυτό το πρόβλημα. iii) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=10 και L[10]={30,10,15,12,31,32,40,9,5,1}. 6

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 Τίτλος: Το Πρόβλημα του Πλανόδιου Πωλητή Μέθοδος της Απληστίας Η μέθοδος της απληστίας εφαρμόζεται σε προβλήματα όπου ζητείται μια βέλτιστη λύση ανάμεσα σε απαγορευτικό αριθμό περιπτώσεων. Η μέθοδος συνίσταται στη μεγιστοποίηση του κέρδους σε κάθε βήμα χωριστά, χωρίς εξέταση των επιπτώσεων που αυτό μπορεί να έχει στα επόμενα βήματα και επομένως στο τελικό αποτέλεσμα. Το κριτήριο σε κάθε επιλογή είναι η απόκτηση του μέγιστου κέρδους σε κάθε βήμα. Σε κάθε βήμα απορρίπτεται μεγάλος αριθμός υποψήφιων λύσεων περιορίζοντας έτσι τον αριθμό τους. Η μέθοδος της απληστίας είναι τοπική μέθοδος. Δεν παίρνει υπόψη τη συνολική εικόνα. Έτσι, δε δίνει πάντα το σωστό αποτέλεσμα, αλλά ένα αποτέλεσμα κοντά στο βέλτιστο. Άσκηση Ένας πωλητής πρέπει να επισκεφθεί n πόλεις (οι πόλεις αριθμούνται από 1 μέχρι n,όπου 1 είναι η πόλη-βάση του πωλητή), την κάθε μια ακριβώς μια φορά αρχίζοντας με μια από αυτές που είναι η βάση του και επιστρέφοντας σε αυτήν. Δίνεται ένας nxn πίνακας C τo στοιχείo c(i,j) του οποίου είναι το κόστος μετάβασης από την πόλη i στην πόλη j. Ζητείται να βρεθεί το πρόγραμμα του ταξιδιού, δηλαδή η σειρά επίσκεψης των πόλεων, ώστε το κόστος να είναι ελάχιστο, και το συνολικό κόστος με τη χρήση της μεθόδου της απληστίας. Σύμφωνα με τη μέθοδο της απληστίας, όταν ο πωλητής βρίσκεται στην πόλη i επιλέγει ως επόμενη πόλη εκείνη τη j για την οποία το κόστος c(i,j) είναι το μικρότερο μεταξύ όλων των c(i,k), όπου k είναι οι δείκτες των πόλεων που δεν έχει ακόμη επισκεφθεί ο πωλητής. Όταν από μια πόλη i δε μπορούμε να πάμε σε άλλη πόλη j τότε θέτουμε c(i,j)=1000. i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει αυτό το πρόβλημα. iii) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=5 και C[5][5] = {{1000,2,1000,5,1}, {3,1000,1,5,,1000}, {3,2,1000,5,1}, {4,3,1,1000,10}, {2,3,4,1,1000}}. 7

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ 6-7 Τίτλος: Το Πρόβλημα της Κατάταξης Έργων με Προθεσμίες και η μέθοδος της Απληστίας Πρόβλημα κατάταξης έργων με προθεσμίες: Δίνονται n έργα Ε 1,, Ε n. Σε κάθε Ε i αντιστοιχεί μια προθεσμία d i >0 που είναι ένας ακέραιος αριθμός χρονικών μονάδων, όπως και ένα κέρδος p i >0 που αποκτάται μόνο όταν το έργο εκτελείται εντός της προθεσμίας του. Η εκτέλεση κάθε έργου απαιτεί μια χρονική μονάδα. Ζητείται να βρεθεί με ποια σειρά πρέπει να εκτελεστούν τα έργα, ώστε να μεγιστοποιηθεί το συνολικό κέρδος με τη χρήση της μεθόδου της απληστίας. Βήματα αλγορίθμου επίλυσης του προβλήματος κατάταξης έργων με προθεσμίες: 1. Έστω αλγόριθμος απληστίας που αρχίζει με Λ={} και σε κάθε βήμα επιλέγει έργο με μεγαλύτερο δυνατό κέρδος και το εισάγει στο Λ, εφόσον αυτό συνεχίζει να δίνει μια εφικτή λύση. 2. Πρέπει να ελεγχθούν όλες οι δυνατές μεταθέσεις των έργων στο Λ για να πιστοποιηθεί ότι η προσαυξημένη λύση είναι η σωστή. Αλλά, αν έχω n έργα υπάρχουν n! δυνατές μεταθέσεις, γεγονός απαγορευτικό για έλεγχο. Όμως, από ισχύει ότι μια λύση Λ για το πρόβλημα της κατάταξης έργων με προθεσμίες είναι εφικτή αν και μόνο αν η εκτέλεση των έργων της Λ με αύξουσα σειρά προθεσμιών μπορεί να γίνει χωρίς παραβίαση των προθεσμιών (Λήμμα 1). Έτσι αρκεί να ελεγχθεί μόνο η μετάθεση με αύξουσα σειρά προθεσμιών. 3. Αν η σειρά εκτέλεσης που καθορίζεται από την μετάθεση με αύξουσα σειρά προθεσμιών παραβιάζει κάποια προθεσμία το νέο έργο δε μπαίνει στη λύση και από τα υπόλοιπα έργα επιλέγεται πάλι αυτό που δίνει το μέγιστο κέρδος. 4. Ο αλγόριθμος τερματίζει όταν δεν υπάρχουν άλλα προς εξέταση έργα. Άσκηση Δίνονται n έργα Ε 1,, Ε n. Σε κάθε Ε i αντιστοιχεί μια προθεσμία d i >0 που είναι ένας ακέραιος αριθμός χρονικών μονάδων, όπως και ένα κέρδος p i >0 που αποκτάται μόνο όταν το έργο εκτελείται εντός της προθεσμίας του. Η εκτέλεση κάθε έργου απαιτεί μια χρονική μονάδα. Ζητείται να βρεθεί με ποια σειρά πρέπει να εκτελεστούν τα έργα, ώστε να μεγιστοποιηθεί το συνολικό κέρδος με τη χρήση της μεθόδου της απληστίας. Στην άσκηση αυτή η μέθοδος της απληστίας μπορεί να βρει πεδίο εφαρμογής με δυο τρόπους. Ο ένας τρόπος είναι να διαλέγουμε κάθε φορά να εκτελέσουμε εκείνο το έργο που θα μας δώσει το μεγαλύτερο κέρδος. Ο άλλος τρόπος είναι να διαλέγουμε κάθε φορά να εκτελέσουμε εκείνο το έργο που έχει τη συντομότερη προθεσμία. 8

i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει το πρόβλημα εφαρμόζοντας τη μέθοδο της απληστίας σε σχέση με τις προθεσμίες και έναν αλγόριθμο που να λύνει το πρόβλημα εφαρμόζοντας τη μέθοδο της απληστίας σε σχέση με τα κέρδη.. iii) Υλοποιήστε τους αλγορίθμους που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=10, d[10]={4,3,5,6,10,7,1,2,3,11} και p[10]={1,4,3,5,1000,10,2,3,4,100}. iv) Συγκρίνετε τους δυο αλγορίθμους. 9

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 8 Τίτλος: Διάτρεξη Γραφήματος-Αλγόριθμος Αναζήτησης Πρώτα κατά Πλάτος Διάτρεξη (traversal) γραφήματος ονομάζεται η συστηματική επίσκεψη σε όλες τις κορυφές του γραφήματος, όχι αναγκαστικά μια μόνο φορά για κάθε κορυφή. Κάθε αλγόριθμος διάτρεξης παράγει μια διαδρομή που περιλαμβάνει όλες τις κορυφές τουλάχιστο μια φορά.. Η βασική εικασία είναι: Εικασία: Η πρώτη κορυφή που επισκεπτόμαστε είναι αυτή με το μικρότερο δείκτη. Ζητούμενο: Τιμές που αποθηκεύονται σε έναν πίνακα neo(), όπου neo(i)=j, όταν η κορυφή Vi κατέχει τη θέση j στη σειρά επίσκεψης. Υπάρχουν δυο μέθοδοι διάτρεξης ενός γραφήματος: η Αναζήτηση Πρώτα κατά Πλάτος (ΑΠΠ) και η Αναζήτηση Πρώτα κατά Βάθος (ΑΠΒ). Εδώ θα μελετήσουμε την πρώτη μέθοδο. Ο βασικός κανόνας της ΑΠΠ είναι ο εξής: 1. Αρχίζοντας με την κορυφή V 1, επισκεπτόμαστε πρώτα όλες τις κορυφές όπου μπορούμε να πάμε απευθείας από τη V 1. 2. Αφού έχουμε επισκεφτεί όλες τις γειτονικές κορυφές, ξεκινώντας από καθεμιά από αυτές επισκεπτόμαστε όλες τις κορυφές στις οποίες μπορούμε να πάμε απευθείας. 3. Σταματάμε όταν έχουμε επισκεφτεί όλες τις κορυφές του γραφήματος στις οποίες μπορούμε να πάμε. Πρέπει να έχουμε προκαθορίσει έναν κανόνα βάσει του οποίου να επιλύουμε περιπτώσεις ισοπαλίας. Ένας τέτοιος κανόνας είναι σε περιπτώσεις ισοπαλίας να προηγούνται οι κορυφές με το μικρότερο δείκτη. Άσκηση Δίνεται ένα διγράφημα με n κορυφές Α 1,, Α n. Η ύπαρξη μιας πλευράς ανάμεσα σε δυο κορυφές δίνεται από τον nxn πίνακα C όπου C(i,j)=1 αν υπάρχει πλευρά από το Α i στο Α j, αλλιώς C(i,j)=0. Ζητείται η σειρά επίσκεψης των κορυφών, όταν εφαρμόζεται ο αλγόριθμος αναζήτησης κατά πλάτος. i) Καθορίστε την είσοδο και την έξοδο του αλγορίθμου που επιλύει το πρόβλημα. 10

ii) Σχεδιάστε σε ψευδογλώσσα της δικιάς σας προτίμησης έναν αλγόριθμο που να λύνει το πρόβλημα. iii) Υλοποιήστε τον αλγόριθμο που σχεδιάσατε σε κάποια γλώσσα προγραμματισμού θεωρώντας ότι n=8 και C[8][8]={ {0, 1, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0}, {0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0}}. 11

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 9 Τίτλος: Μελέτη Αλγορίθμων Σχετικών με Θέματα Διαχείρισης Πολιτισμικού Περιβάλλοντος στην Πράξη Η Περίπτωση της Συμμετοχικής Πλατφόρμας Culture Gate Στη διεθνή βιβλιογραφία έχουν προταθεί διάφορες τεχνολογίες και ψηφιακές εφαρμογές/υπηρεσίες πληθοπορισμού (crowdsourcing) που σχετίζονται με τη διαχείριση και την διάχυση υλικού πολιτισμικού ενδιαφέροντος (EUROPEANA, MUSE, KORA κλπ.). Στόχος αυτών των υπηρεσιών είναι η δημιουργία συνεργατικών έργων όπου ο κάθε χρήστης δεν είναι απλά θεατής, αλλά συν-διαμορφωτής του υλικού που διαχειρίζεται η υπηρεσία. Κάθε χρήστης αντιμετωπίζεται ως ένας εν δυνάμει πάροχος υλικού. Τέτοιες εφαρμογές παρέχουν ποικίλες λύσεις για την επίλυση θεμάτων που σχετίζονται με τη διαφύλαξη, την αναζήτηση και τη διάχυση πολιτισμικού υλικού. Εδώ θα ασχοληθούμε με την πλατφόρμα παροχής crowdsourcing υπηρεσιών Culture Gate (www.culture-gate.com) που σχετίζονται με τη διάχυση υλικού σε ποικίλα πολιτισμικά περιβάλλοντα. Η πλατφόρμα αυτή έχει σχεδιαστεί και υλοποιηθεί στα πλαίσια διδακτορικής εργασίας στο Τμήμα μας, ενώ εμπλουτίζεται συνεχώς με νέες υπηρεσίες. Στα πλαίσια του εργαστηρίου θα γνωριστούμε με την πλατφόρμα και θα προσπαθήσουμε να μελετήσουμε τις αλγοριθμικές λύσεις που έχουν δοθεί σε προβλήματα διαχείρισης πολιτισμικού περιβάλλοντος, όπως η προσωποποιημένη αναζήτηση περιεχομένου, η εύρεση συναφούς περιεχομένου, η ταξινόμηση του υλικού και η εύρεση της συντομότερης διαδρομής μεταξύ σημείων κοινού ενδιαφέροντος. Η πλατφόρμα Culture Gate αποτελείται από δυο υποσυστήματα: μια εφαρμογή για κινητά (Culture Gate Mobile Application - CGMA) και ένα web portal (Culture Gate Online Web Portal - CGOWP). Η εφαρμογή CGMA τρέχει σε έξυπνα κινητά και επιτρέπει τη συλλογή πολιτισμικών δεδομένων από εξωτερικές θέσεις (μέσω κάμερας, μικροφώνου, μηχανισμού λήψης φωτογραφιών του κινητού). Το συλλεχθέν υλικό αποθηκεύεται προσωρινά στο κινητό μέχρι την αποστολή του στο σύστημα και την αποθήκευσή του στη βάση δεδομένων της πλατφόρμας. Το portal CGOWP επιτρέπει την αποστολή και τη διαχείριση δεδομένων στις βάσεις δεδομένων της πλατφόρμας. Στο Σχήμα 1 φαίνεται η αρχιτεκτονική του Culture Gate. 12

Σχήμα 1: Αρχιτεκτονική πλατφόρμας Στο εργαστήριο αυτό θα χρησιμοποιήσουμε το web portal CGOWP (http://www.culture-gate.com). Χρήση του Culture Gate Κατά την είσοδο στο portal του Culture Gate εμφανίζεται στην οθόνη η γραφική διεπαφή χρήστη (graphical user interface, GUI) που φαίνεται στο Σχήμα 2. Σχήμα 2: Γραφική διεπαφή χρήστη του Culture Gate Η διεπαφή του Culture Gate περιλαμβάνει δυο μενού εντολών (command menus) στο επάνω μέρος του παραθύρου. Προς το παρόν μας ενδιαφέρουν τα μενού Cultural 13

Map, User Registration και Login στο πρώτο μενού και Events Calendar στο δεύτερο μενού. Το μενού User Registration επιτρέπει την εγγραφή μας στο σύστημα. Το μενού Login την είσοδο μας στο σύστημα ως χρήστες που μπορούν να συνεισφέρουν περιεχόμενο. Το μενού Cultural Map μας επιτρέπει να δούμε το διαδραστικό χάρτη της πλατφόρμας όπου απεικονίζονται ως σημεία διάφορες πληροφορίες πολιτισμικού ενδιαφέροντος. Το μενού Events Calendar μας επιτρέπει την εισαγωγή ενός γεγονότος πολιτισμικού ενδιαφέροντος. Ερωτήσεις: 1. Μπείτε στην πλατφόρμα www.culture-gate.com. Ποιες κατηγορίες δεδομένων υποστηρίζει; Ποια είναι τα πλεονεκτήματά του (συμμετοχικότητα, δημοκρατία); Ποιες κατηγορίες χρηστών υποστηρίζει. Ποιες υπηρεσίες προσφέρει; Τι είσοδο περιμένει από τους χρήστες και τι έξοδο επιστρέφει σε κάθε περίπτωση. 2. Προσπαθήστε να ανακαλύψετε τους διαφορετικούς τρόπους αναζήτησης που επιτρέπει η πλατφόρμα. Σχολιάστε τους. Μελετήστε υλικό που αφορά τον Καβάφη. Ποιος τρόπος αναζήτησης έχει το γρηγορότερο χρόνο απόκρισης; 3. Η πλατφόρμα επιτρέπει την ταξινόμηση των εγγραφών στο γεωγραφικό χάρτη. Ποιος αλγόριθμος έχει επιλεγεί κατά τη γνώμη σας για αυτό το σκοπό; 4. Η πλατφόρμα επιτρέπει την εύρεση της συντομότερης διαδρομής μεταξύ σημείων στο χάρτη. Σχολιάστε το. 5. Εγγραφείτε ως χρήστες. Πηγαίνετε στην υπηρεσία Adding List. Δημιουργείστε τρία δικά σας σημεία που να αφορούν την πόλη του Αγρινίου χρησιμοποιώντας κείμενο, εικόνες, βίντεο ή ήχο. Δημοσιεύστε τα στην πλατφόρμα. Προσπαθήστε να μελετήσετε τον αλγόριθμο που χρησιμοποιείτε και σχετίζεται με την εμφάνιση τους στην πλατφόρμα. 6. Αξιολόγηση της αποδοχής του Culture Gate ως εκπαιδευτικού εργαλείου. 14