Αλγόριθμοι Αναζήτησης

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

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

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

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

Ουρά Προτεραιότητας: Heap

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

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Προχωρημένες έννοιες προγραμματισμού σε C

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

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

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

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

Εισαγωγή στον δομημένο προγραμματισμό

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

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

Αναζήτηση Κατά Πλάτος

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

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

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

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

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

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

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

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

Συντομότερες ιαδρομές

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

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

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

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

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

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

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

Θεωρία Πιθανοτήτων & Στατιστική

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

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

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

Ελάχιστο Συνδετικό έντρο

Συντομότερες ιαδρομές

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

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

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Νεκτάριος Κοζύρης ΑΡΙΘΜΗΤΙΚΕΣ ΠΡΑΞΕΙΣ

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

Ανάκτηση Πληροφορίας

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Θεωρία Πιθανοτήτων & Στατιστική

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

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

Εργαστήριο 6: Αναζήτηση, Ανάλυση Πολυπλοκότητας

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

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

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

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Ουρά Προτεραιότητας: Heap

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

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

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

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Μοντελοποίηση Λογικών Κυκλωμάτων

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

1 η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Ακ. έτος , 5ο Εξάμηνο, Σχολή ΗΜ&ΜΥ

Θεωρία Πιθανοτήτων & Στατιστική

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Επεξεργασία κειμένου και συμβολοσειρών σε C

Θεωρία Πιθανοτήτων & Στατιστική

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Σχολή Εφαρµοσµένων Μαθηµατικών και Φυσικών Επιστηµών Εθνικό Μετσόβιο Πολυτεχνείο. Στοχαστικές Ανελίξεις. Ασκήσεις Κεφαλαίου 2. Κοκολάκης Γεώργιος

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

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

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

Στατιστική Επιχειρήσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΧΩΡΟΤΑΞΙΑ ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑΤΟΣ. Αναστασία Στρατηγέα. Υπεύθυνη Μαθήματος

Transcript:

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

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

Γραμμική Αναζήτηση Μοναδικός τρόπος όταν: είτε όχι ταξινομημένος πίνακας, είτε μόνο σειριακή προσπέλαση (π.χ. αρχεία). int linearsearch(int A[], int n, int x) { for (int i = 0; i < n; i++) if (x == A[i]) return(i); return(-1); } Χρόνος χ.π. / αποτυχημένης αναζήτησης: Θ(n) (βέλτιστος). Χρόνος καλύτερης περίπτωσης: Θ(1). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 2

Γραμμική Αναζήτηση (μ.π.) Πιθανότητα αναζήτησης στοιχείου k = 1 / n Όλα τα στοιχεία αναζητούνται ισοπίθανα! Χρόνος μ.π. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 3

Γραμμική Αναζήτηση (μ.π.) Όχι ισοπίθανη αναζήτηση: Μπροστά στοιχεία με μεγαλύτερη συχνότητα αναζήτησης. εν γνωρίζουμε συχνότητες: Σταδιακή αναδιοργάνωση : μπροστά στοιχεία που ζητούνται. Move-to-Front : χρόνος 2 βέλτιστος, λίστα. Move-Forward : πίνακας, όχι βελτίωση αν μόνο δύο στοιχεία. Self-adjusting DS: «προσαρμόζεται» ώστε να είναι ταχύτερη στο μέλλον (βλ. splay trees). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 4

υαδική Αναζήτηση Ταξινόμηση και τυχαία προσπέλαση. Χρόνος Ο(log n) (βέλτιστοςωςπροςχ.π.). binarysearch(int A[], int n, int k) { int low = 0, up = n-1, mid; while (low <= up) { mid = (low + up) / 2; if (A[mid] == k) return(mid); else if (A[mid] > k) up = mid - 1; else low = mid + 1; } return(-1); } Αναζήτηση 30: Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 5

Ορθότητα Αν Α[ mid ] > k, k μπορεί να βρίσκεται μόνο αριστερά. Αν Α[ mid ] < k, k μπορεί να βρίσκεται μόνο δεξιά. Σε κάθε επανάληψη, πλήθος υποψήφιων στοιχείων μειώνεται (περίπου) στο μισό : Χρόνος Ο(log n): βέλτιστος (χειρότερη περίπτωση). Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 6

Χρόνος Εκτέλεσης υαδική αναπαράσταση θέσεων: κάθε σύγκριση προσδιορίζει ένα bit της θέσης του στοιχείου! υαδικό δέντρο συγκρίσεων έχει n φύλλα και log 2 n ύψος. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 7

Χρόνος Εκτέλεσης Για κάθε αλγόριθμο, χωρίς άλλη πληροφορία (π.χ. κατανομή στοιχείων), μία σύγκριση προσδιορίζει ένα bit θέσης στοιχείου. Αν δεν γνωρίζουμε κατανομή στοιχείων, κάθε αλγόριθμος αναζήτησης χρειάζεται χρόνο Ω(log n) στη χειρότερη περίπτωση. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 8

Αναζήτηση με Παρεμβολή Συνήθως έχουμε κάποια πληροφορία σχετικά με την κατανομή των στοιχείων (π.χ. όταν ψάχνουμε τον τηλεφωνικό κατάλογο δεν ανοίγουμε στη μέση). Παρεμβολή αξιοποιεί την πληροφορία κατανομής. Ταχύτερη (στη μέση περ.) από δυαδική. Αν ξέρουμε κατανομή, μια σύγκριση μπορεί να δίνει περισσότερο από ένα bit πληροφορίας για θέση στοιχείου. Αναμενόμενη θέση k στο Α[ low up ]: pos = low + (k Α[low]) / μέση αύξηση / ανά θέση Κατά τα άλλα ίδια με δυαδική. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 9

Αναζήτηση με Παρεμβολή Εκδοχή για ομοιόμορφη κατανομή σε διάστημα. Προσαρμόζεται σε οποιαδήποτε άλλη κατανομή. int interpolationsearch(int A[], int n, int k) { int low = 0, up = n-1, pos; while (low <= up) { if ((k < A[low]) (k > A[up])) return(-1); pos = low + (int) ((double) (up - low))* (((double) (k - A[low])) / ((double) (A[up] - A[low]))); if (A[pos] == k) return(pos); else if (A[pos] > k) up = pos - 1; else low = pos + 1; } return(-1); } Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 10

Αναζήτηση με Παρεμβολή Αναζήτηση 30: Αναζήτηση 30: Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 11

Αναζήτηση με Παρεμβολή Χρόνος μέσης περίπτωσης : Ο(loglog n) Αναζήτηση σε 1 τρισεκατ. στοιχεία με 6 συγκρίσεις! Χρόνος χειρότερης περίπτωσης : Ο(n) Χρόνος χειρότερης περίπτωσης βελτιώνεται με υαδική Αναζήτηση με Παρεμβολή. Πρώτη επανάληψη βρίσκει περιοχή με ακρίβεια. Επόμενες προσπελάσεις στην ίδια περιοχή. Καλή αξιοποίηση της cache memory. Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2015) Αλγόριθμοι Αναζήτησης 12

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.