ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι. Εαρινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ

Σχετικά έγγραφα
Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

10. Πίνακες Κατακερματισμού

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Ελαφρύτατες διαδρομές

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

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

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING

Φροντιστήριο 2 Λύσεις

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Διδάσκων: Παναγιώτης Ανδρέου

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Φροντιστήριο 8 Λύσεις

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

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

Άσκησηη 1. (α) Το αυτόματο. (γ) Να δείξετε όλα aabbb. Λύση. λέξεις. αυτόματο. (β) Τυπικά. μεταβάσεων δ. ορίζεται. (γ) Θα δείξουμε τα.

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

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

Φροντιστήριο 9 Λύσεις

Φροντιστήριο 11 Λύσεις

Προβλήµατα. 1st International Olympiad in Informatics Held in Pravetz, Bulgaria May 16-19, 1989.

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

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

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

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

Φροντιστήριο 8 Λύσεις

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

Κατακερματισμός (Hashing)

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1

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

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Φροντιστήριο 7 Λύσεις

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

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

1 Το πρόβλημα της συντομότερης διαδρομής

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Α.Ο.Θ. ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

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

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

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

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

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

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

Φροντιστήριο 2 Λύσεις

Διδάσκων: Παναγιώτης Ανδρέου

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

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

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

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

Φροντιστήριο 10 Λύσεις

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

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

x < A y f(x) < B f(y).

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

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

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

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

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

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

Δυναμικός Κατακερματισμός

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com)

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ31: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 013 Φροντιστήριο 10 ΛΥΣΕΙΣ Άσκηση 1 Να δείξετε όλα τα στάδια της εκτέλεσης του αλγορίθμου του Dijkstra για εύρεση βραχύτατων μονοπατιών από την πηγή s προς όλες τις κορυφές στον πιο κάτω γράφο. 13 A 1 B 8 s 4 Ε Γ 5 Δ Εκτέλεση S d(s) d(α) d(β) d(γ) d(δ) d(ε) 1 S= 0 S={s} 0 13 3 S={s,Γ} 0 13 1 7 4 S={s,Γ,B} 0 9 1 7 11 5 S={s,Γ,B,Δ} 0 9 1 7 9 S={s,Γ,B,Δ,Α} 0 9 1 7 9 7 S={s,Γ,B,Δ,Α,Ε} 0 9 1 7 9

(β) Nα δώσετε ένα παράδειγμα το οποίο να δείχνει την ακαταλληλότητα του αλγόριθμου του Dijkstra σε γράφους με αρνητικά βάρη. Ο πιο κάτω γράφος δείχνει την ακαταλληλότητα του αλγόριθμου του Dijkstra σε γράφους με αρνητικά βάρη. Το πρόβλημα οφείλεται στο γεγονός ότι η ύπαρξη αρνητικών βαρών επιτρέπει σενάρια στα οποία ενώ μια κορυφή έχει ήδη υποστεί επεξεργασίας (π.χ. η Γ στο παράδειγμα), να διαπιστωθεί βραχύτερο μονοπάτι προς αυτήν μέσω ακμών με αρνητικό βάρος (το ΑΒΓ στο παράδειγμα). Αυτό έχει ως δυνατή συνέπεια, βραχύτερα μονοπάτια προς τους γείτονες της συγκεκριμένης κορυφής να μην γίνουν αντιληπτά. 4 B 3 A Γ Δ Εκτέλεση S d(α) d(β) d(γ) d(δ) 1 S= 0 S={Α} 0 4 3 S={Α,Γ} 0 4 8 4 S={Α,Γ,B} 0 4 1 8 5 S={Α,Γ,B,Δ} 0 4 1 8 Έτσι ο αλγόριθμος δίνει d(δ)=8 ενώ θα έπρεπε d(δ)=7.

Άσκηση Έστω το σύνολο {9, 1, 8, 5,, 1, 13}. Οι αριθμοί του συνόλου έχουν εισαχθεί σε ένα πίνακα κατακερματισμού μεγέθους 13 χρησιμοποιώντας τη συνάρτηση κατακερματισμού h(x) = x mod 13, και αντιμετωπίζοντας οποιεσδήποτε συγκρούσεις με τη μέθοδο της γραμμικής αναζήτησης ανοικτής διεύθυνσης. Το αποτέλεσμα των εισαγωγών, των οποίων η σειρά δεν μας είναι γνωστή, φαίνεται πιο κάτω: 0 1 3 4 5 7 8 9 10 11 1 13 5 8 1 9 1 Θεωρήστε τις πιο κάτω προτάσεις: A. Ο αριθμός 5 εισήχθηκε τελευταίος. B. Τουλάχιστον τρεις αριθμοί εισήχθηκαν πριν από τον αριθμό 5. C. Ο αριθμός 8 εισήχθηκε πριν από τον αριθμό 1. D. Ο αριθμός 9 εισήχθηκε πριν από τον αριθμό 8. Για κάθε μια από τις πιο πάνω προτάσεις, να αποφασίσετε κατά πόσον ισχύει i. σε οποιαδήποτε σειρά εισαγωγής των στοιχείων που δημιουργεί τον πιο πάνω πίνακα. ii. σε καμία σειρά εισαγωγής των στοιχείων που δημιουργεί τον πιο πάνω πίνακα iii. σε κάποιες αλλά όχι όλες τις σειρές εισαγωγής των στοιχείων που δημιουργούν τον πιο πάνω πίνακα. Να αιτιολογήσετε τις απαντήσεις σας. Θεωρούμε τους αριθμούς του συνόλου και συγκεκριμένα την ακολουθία θέσεων που δοκιμάστηκαν πριν την εισαγωγή τους στον πίνακα: 9 : 9, 10 1 : 8, 9 8 : 8 5 : 1, 0, 1, : 0, 1 1 : 1 13 : 0 Αυτό υποδεικνύει ότι τα στοιχεία 9, 1, 8 εισήχθησαν με τη σειρά 8, 1, 9 ενώ τα στοιχεία 5,, 1, 13 εισήχθησαν με τη σειρά το 13 πριν από το το 5 μετά από τα, 1, 13. Κατά συνέπεια: (α) Ο αριθμός 5 εισήχθηκε τελευταίος σε κάποιες αλλά όχι κατ ανάγκη όλες τις σειρές εισαγωγής των στοιχείων που θα μπορούσαν να δημιουργήσουν τον εν λόγω πίνακα. (Για παράδειγμα, η σειρά εισαγωγών, 1, 13, 5, 8, 1, 9, δημιουργεί τον πίνακα αλλά το στοιχείο 5 δεν εισάγεται τελευταίο.) Επομένως, ισχύει η πρόταση (iii).

(β) Τουλάχιστον τρεις αριθμοί εισήχθηκαν πριν από τον αριθμό 5 σε όλες τις σειρές εισαγωγής στοιχείων που θα μπορούσαν να δημιουργήσουν τον εν λόγω πίνακα. Είναι οι, 1, 13. Επομένως ισχύει το (i). (γ) Ο αριθμός 8 εισήχθηκε πριν από τον αριθμό 1 σε κάποιες αλλά όχι κατ ανάγκη σε όλες τις σειρές στοιχείων που θα μπορούσαν να δημιουργήσουν τον εν λόγω πίνακα. Για παράδειγμα η σειρά εισαγωγών, 1, 13, 5, 8, 1, 9, δημιουργεί τον πίνακα αλλά το στοιχείο 1 εισάγεται πριν από το στοιχείο 8. Επομένως ισχύει η πρόταση (iii). (δ) Οποιαδήποτε σειρά εισαγωγής των στοιχείων όπου ο αριθμός 9 εισάγεται πριν από τον αριθμό 8 θα τοποθετήσει το στοιχείο 9 στη θέση 9 και όχι στη θέση 10. Αυτό οφείλεται στο γεγονός ότι ακόμα και αν η εισαγωγή προβλέπει εισαγωγή του 1 πριν από το 9, το 1 θα καταλάβει τη θέση 8, και η θέση 9 θα παραμείνει στη διάθεση του στοιχείου 8. Επομένως ισχύει η πρόταση (ii).

Άσκηση 3 Σε ορισμένες περιπτώσεις, η δευτεροβάθμια αναζήτηση ανοικτής διεύθυνσης δεν επιτυγχάνει εύρεση κενής θέσης για κλειδί, ακόμα και αν ο πίνακας κατακερματισμού δεν είναι γεμάτος. Για πίνακα μεγέθους 13 και συνάρτηση κατακερματισμού, 13 να βρείτε μια ακολουθία εισαγωγών για την οποία να είναι αδύνατη η εισαγωγή του τελευταίου κλειδιού. Υποθέστε ότι τα κλειδιά προς εισαγωγή είναι ακέραιοι αριθμοί. Θεωρήστε τις εισαγωγές των στοιχείων 13, 1, 3, 4, 9, 10, και 1. Μετά επιχειρήστε εισαγωγή του στοιχείου 0. Για την εισαγωγή αυτή γίνεται μία αλυσίδα ανεπιτυχών προσπαθειών για εύρεση κενής θέσης ως εξής: f(0,0) = 0 f(0,1) = 1 f(0,) = 4 f(0,3) = 9 f(0,4) = 3 f(0,5) = 1 f(0,) = 10 f(0,7) = 10 f(0,8) = 1 f(0,9) = 3 Αυτή η αλυσίδα δημιουργεί την υποψία ότι η διαδικασία εισαγωγής δεν θα καταφέρει να εντοπίσει μια από τις κενές θέσεις του πίνακα, δηλαδή, ότι, για κάθε i>= 0, f(0,i) {0, 1, 3, 4, 9, 10, 1}, ή i² mod 13 {0, 1, 3, 4, 9, 10, 1}, ή υπάρχουν d και r τέτοια ώστε i² = 13d + r, όπου r {0, 1, 3, 4, 9, 10, 1}. Για την απόδειξη της εικασίας αρχικά παρατηρούμε ότι κάθε θετικός ακέραιος i μπορεί να γραφτεί ως: i = 13k + a, 0 a 1 Επομένως, i² = 13 (13k² + ak) + a². Τέλος, υπολογίζοντας την τιμή a² για 0 a 1, παρατηρούμε ότι a² mod 13 {0, 1, 3, 4, 9, 10, 1} που δίνει το επιθυμητό αποτέλεσμα. (Για παράδειγμα, για a = 9: i² = 13 (k² + ak) + 81 = 13 (k² + ak) + 13 + 3 = 13 (k² + ak + ) + 3 που σημαίνει πως για κάθε i = 13k + 9, i² mod 13 = 3.)