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

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

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

Κεφα λαιο 3 Στοιχειώδεις Δομές Δεδομένων

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

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

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

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Ασκήσεις (2) Άσκηση 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

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

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

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

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

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

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

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

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

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

a n = 3 n a n+1 = 3 a n, a 0 = 1

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

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

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

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

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

Φροντιστήριο #4 Λυμένες Ασκήσεις Μαθηματική Επαγωγή 13/3/2018

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

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

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

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων

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

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

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

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

2 n N: 0, 1,..., n A n + 1 A

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

1η Σειρά Γραπτών Ασκήσεων

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

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

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

Παράδειγμα δομικής επαγωγής Ορισμός δομικής επαγωγής Συμβολοσειρές Γλώσσες Δυαδικά δένδρα Μαθηματικά Πληροφορικής 3ο Μάθημα Αρχικός συγγραφέας: Ηλίας

1 Arq thc Majhmatik c Epagwg c

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

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

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

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

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

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

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

ΔΙΑΦΟΡΑ ΘΕΜΑΤΑ. Ως «γειτονικά» ορίζονται τα κελιά που συγγενεύουν οριζόντια, κάθετα και διαγώνια. Για παράδειγμα γειτονικά του Α[3,3] είναι τα:

Ουρά Προτεραιότητας (priority queue)

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

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

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

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

max & min Μεθοδολογία - 1 Τα βήματα που συνήθως ακολουθούμε στις τεχνικές εύρεσης max & min είναι τα εξής:

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

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

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

Εργαστήριο 2: Πίνακες

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

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

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

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

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

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Δυναμικός προγραμματισμός για δέντρα

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων

Στοχαστικές Στρατηγικές. διαδρομής (1)

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

Transcript:

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Λυμένες Ασκήσεις Σετ Α: Ανάλυση Αλγορίθμων Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του χρόνου εκτέλεσης τριών αλγόριθμων και λάβαμε τα παρακάτω αποτελέσματα: αλγόριθμος Α Β Γ μέγεθος εισόδου 512 1024 2048 226 320 452 54 208 836 356 621 1214 Οι ασυμπτωτικοί χρόνοι εκτέλεσης αυτών των αλγόριθμων είναι κατά φθίνουσα σειρά, και. Αντιστοιχήστε τον κάθε αλγόριθμο με την καταλληλότερη από τις παραπάνω πολυπλοκότητες. Δικαιολογείστε τις απαντήσεις σας. Έστω, και οι χρόνοι εκτέλεσης των αλγορίθμων Α, Β και Γ αντίστοιχα. Υπολογίζουμε τον ρυθμό αύξησης του κάθε χρόνου εκτέλεσης καθώς διπλασιάζεται το και τον συγκρίνουμε με τnν αντίστοιχη αύξηση των συναρτήσεων και. Ισχύει Για έχουμε ενώ για έχουμε Αντιστοιχώντας τους χρόνους, και στις συναρτήσεις που παρουσιάζουν παρόμοια αύξηση λαμβάνουμε, και. Άσκηση 2 Διατάξτε τις παρακάτω συναρτήσεις ως προς το ρυθμό αύξησης, από τη μικρότερη ως τη μεγαλύτερη.,,, και [1 από 6]

Έχουμε, για. Επιπλέον επειδή Άρα. Για έχουμε άρα, επειδή Για τις και έχουμε Δηλαδή. Τέλος Δηλαδή. Άρα η διάταξη από το μικρότερο προς το μεγαλύτερο ρυθμό αύξησης είναι. [2 από 6]

Άσκηση 3 Λύστε την παρακάτω αναδρομική σχέση με την μέθοδο της αντικατάστασης. με αρχική συνθήκη. Υποθέτουμε ότι το είναι δύναμη του, δηλαδή για κάποιο θετικό ακέραιο. Έχουμε Μετά από αντικαταστάσεις λαμβάνουμε Επιπλέον,, άρα Άσκηση 4 Έστω ότι ο χρόνος εκτέλεσης ενός αλγορίθμου ικανοποιεί την παρακάτω αναδρομική σχέση με αρχική συνθήκη. Δείξτε με χρήση επαγωγής ότι. Θα δείξουμε πρώτα με επαγωγή, ότι υπάρχουν σταθερές και τέτοιες ώστε για κάθε. Για τη βάση της επαγωγής, από την αρχική συνθήκη έχουμε το οποίο ισχύει για. Η επαγωγική υπόθεση είναι ότι για κάθε,. Για το επαγωγικό βήμα πρέπει να δείξουμε ότι. Από την αναδρομική σχέση και την επαγωγική υπόθεση, [3 από 6]

αφού για, και. Τώρα θα δείξουμε με επαγωγή ότι υπάρχουν σταθερές και τέτοιες ώστε για κάθε. Για τη βάση της επαγωγής, από την αρχική συνθήκη έχουμε το οποίο ισχύει για. Η επαγωγική υπόθεση είναι ότι για κάθε,. Για το επαγωγικό βήμα πρέπει να δείξουμε ότι. Από την αναδρομική σχέση και την επαγωγική υπόθεση, το οποίο ισχύει για. Άσκηση 5 Μία ακολουθία αριθμών ονομάζεται μονοκόρυφη εάν για κάποιο με, έχουμε και. Θέλουμε να βρούμε το μέγιστο στοιχείο μιας μονοκόρυφης ακολουθίας, διαβάζοντας όσο το δυνατό λιγότερα στοιχεία της. Σχεδιάστε έναν αποδοτικό αλγόριθμο για αυτό το πρόβλημα και αναλύστε τον ασυμπτωτικό χρόνο εκτέλεσης του. Υποθέστε ότι η ακολουθία είναι αποθηκευμένη σε έναν πίνακα, οπότε η προσπέλαση ενός στοιχείου της γίνεται σε χρόνο. Μια τέτοια ακολουθία έχει τη μορφή του παρακάτω σχήματος: Μπορούμε να βρούμε το μέγιστο στοιχείο σε βήματα με ακολουθιακή αναζήτηση, δηλαδή ξεκινάμε από τη θέση και αυξάνουμε το κατά εάν, διαφορετικά έχουμε. Για να πετύχουμε καλύτερο χρόνο χρησιμοποιούμε δυαδική αναζήτηση ως εξής. Θέτουμε και ελέγχουμε τη σχέση των και. Υπάρχουν τρεις περιπτώσεις: [4 από 6]

α) και. Τότε το είναι το μέγιστο στοιχείο. β). Τότε το μέγιστο στοιχείο βρίσκεται στην ακολουθία, οπότε επαναλαμβάνουμε την ίδια διαδικασία για την. γ). Τότε το μέγιστο στοιχείο βρίσκεται στην ακολουθία, οπότε επαναλαμβάνουμε την ίδια διαδικασία για την. Ο χρόνος εκτέλεσης του παραπάνω αλγορίθμου είναι ασυμπτωτικά ίσος με το χρόνο δυαδικής αναζήτησης, δηλαδή. Άσκηση 6 H παρακάτω μέθοδος υπολογίζει τα αθροίσματα για όλα τα και τέτοια ώστε, όπου ένας μονοδιάστατος πίνακας ακέραιων. Τα αθροίσματα αποθηκεύονται σε ένα διδιάστατο πίνακα ακεραίων. (Υποθέτουμε ότι κάθε έχει ήδη αρχικοποιηθεί με την τιμή.) void partialsums(int[] A, int[][] B) { int N = A.length; for (int i=0; i<=n-1; i++) for (int j=i; j<=n-1; j++) for (int k=i; k<=j; k++) B[i][j] += A[k]; } α) Ποίος είναι ο ασυμπτωτικός χρόνος εκτέλεσης της partialsums; β) Δώστε ένα βελτιωμένο τρόπο υπολογισμού του πίνακα, με ασυμπτωτικά καλύτερο χρόνο εκτέλεσης. Δηλαδή θέλουμε. α) Ο χρόνος εκτέλεσης της partialsums είναι ανάλογος του αριθμού των προσθέσεων που εκτελεί. Για τον υπολογισμό του εκτελεί προσθέσεις, επομένως κάνει προσθέσεις για το, προσθέσεις για τα και, προσθέσεις για τα, και κ.ο.κ. Δηλαδή συνολικά [5 από 6]

β) Παρατηρούμε ότι και για,. Έτσι λαμβάνουμε την παρακάτω βελτιωμένη μέθοδο void partialsums(int[] A, int[][] B) { int N = A.length; for (int i=0; i<=n-1; i++) B[i][i] = A[i]; } for (int i=0; i<=n-1; i++) for (j=i+1; j<=n-1; j++) B[i][j] = B[i][j-1]+A[j]; Ο χρόνος εκτέλεσης είναι ανάλογος του αριθμού των προσθέσεων, που είναι ίσος με τον αριθμό των με, δηλαδή [6 από 6]