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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αναδρομικοί Αλγόριθμοι
Advertisements

Πιθανοκρατικοί Αλγόριθμοι
Εισαγωγή στους Αλγόριθμους Ταξινόμησης
Αλγόριθμοι «διαίρει και βασίλευε»
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Αλγόριθμοι Ι Κάθε καλώς ορισμένη υπολογιστική διαδικασία, η οποία καλείται να επιλύσει ένα συγκεκριμένο πρόβλημα εντός πεπερασμένου χρόνου. Αλγόριθμος.
Αλγόριθμοι Ταξινόμησης
Γιάννης Σταματίου Μη αποδοτική αναδρομή και η δυναμική προσέγγιση Webcast 8.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν διάσπαση πρόβλημα.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου.
Αλγόριθμοι και Πολυπλοκότητα
Γράφοι: Προβλήματα και Αλγόριθμοι
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα
Ουρά Προτεραιότητας: Heap
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Συντομότερες Διαδρομές
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Γιάννης Σταματίου Αναδρομή και αναδρομικές σχέσεις
Μηχανές Turing και Υπολογισιμότητα
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Ταξινόμηση και Αναζήτηση
Αλγόριθμοι Ταξινόμησης
Χωρικοί-χρονικοί συμβιβασμοί
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ελάχιστο Συνδετικό Δέντρο
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
Υπολογιστική Πολυπλοκότητα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Χρονική Πολυπλοκότητα και Μοντέλα
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ασυμπτωτικός Συμβολισμός
ΔιαΙρεςη και κυριαρχια
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Χρονική Πολυπλοκότητα
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
8-1 ΜΑΘΗΜΑ 8 ο Εισαγωγή στους Αλγόριθμους Ταξινόμησης.
Αναζήτηση σε πίνακα Αναζήτηση σε πίνακα που περιέχει ακέραιους αριθμούς.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Δυναμικός Κατακερματισμός
9η Διάλεξη Ταξινόμηση Ε. Μαρκάκης
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αλγόριθμοι για ανάθεση συχνοτήτων και έλεγχο αποδοχής κλήσεων σε κυψελικά ασύρματα δίκτυα (μέρος ΙIΙ)
Η ΕΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
Φοιτητής: Τσακίρης Αλέξανδρος Επιβλέπων: Ευάγγελος Ούτσιος
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Στοιχεία Χωρικής Πολυπλοκότητας
Μεταγράφημα παρουσίασης:

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

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 2 Πρόβλημα Επιλογής  Πίνακας Α[ ] με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1  k  n.  Υπολογισμός του k-οστού μικρότερου στοιχείου (στοιχείο θέσης A[ k ] αν Α ταξινομημένος). k = 1 : ελάχιστο. k = n : μέγιστο. k = n / 2 : ενδιάμεσο (median).

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 3 Εφαρμογές  Υπολογισμός στατιστικού ενδιάμεσου (median). Χρήσιμες πληροφορίες για κατανομή. Ανήκει η Ελλάδα στο φτωχότερο 25% των χωρών ΕΕ; Ανήκει κάποιος φοιτητής στο καλύτερο 10% του έτους του;  Ισομερής διαίρεση (partition) πίνακα σε ομάδες «ταξινομημένες» μεταξύ τους.  Ενδιαφέρον αλγοριθμικό πρόβλημα!

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 4 Μέγιστο / Ελάχιστο  Μέγιστο (ελάχιστο) εύκολα σε χρόνο Θ(n), με n – 1 συγκρίσεις μεταξύ στοιχείων.  Μέγιστο και ελάχιστο με συγκρίσεις ! Πώς; int maximum(int A[], int n) { int max = A[0], i; for (i = 1; i < n; i++) if (A[i] > max) max = A[i]; return(max); }

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 5 Κάτω Φράγμα για Μέγιστο  Κάθε ντετερμινιστικός συγκριτικός αλγόριθμος χρειάζεται  n – 1 συγκρίσεις για μέγιστο (ελάχιστο). «Πρωτάθλημα» μεταξύ στοιχείων. Σύγκριση στοιχείων : αγώνας όπου κερδίζει μεγαλύτερο. Κάθε «αήττητο» στοιχείο είναι υποψήφιο μέγιστο. Για μοναδικό μέγιστο, πρέπει τα υπόλοιπα να «ηττηθούν». Κάθε αγώνας δίνει ένα «ηττημένο» στοιχείο  n – 1 αγώνες / συγκρίσεις για μοναδικό μέγιστο.

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 6  Σε χρόνο Ο(n log n) με ταξινόμηση.  Μέγιστο (k = 1), ελάχιστο (k = n) : χρόνος Θ(n).  Άλλες τιμές k : χρόνος Ο(n log n) ή Ο(n);  Επιλογή σε γραμμικό χρόνο με διαίρει-και-βασίλευε βασισμένη σε διαχωρισμό της quicksort !

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 7 Πιθανοτική Quickselect  Έστω υπο-πίνακας A[l…r] και αναζητούμε k-οστό στοιχείο.  Τυχαίο στοιχείο διαχωρισμού (pivot).  Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες: Στοιχεία αριστερής [l…q] υπο-ακολ.  στοιχείο διαχωρισμού. Στοιχεία δεξιάς [q+1…r] υπο-ακολ.  στοιχείο διαχωρισμού.  Αν k  q – l + 1, αναδρομική λύση (Α[l…q], k) Αν k > q – l + 1, αναδρομική λύση (Α[q+1…r], k – (q – l + 1))

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 8 Ορθότητα Quickselect  Τερματισμός : μέγεθος υπο-ακολουθιών  n – 1.  Επαγωγικά υποθέτω ότι 1  k  right – left + 1. Πλήθος στοιχείων στα αριστερά: m = q – left + 1. Αν k  m, δεξιά στοιχεία «αποκλείονται». Αν m < k, αριστερά στοιχεία «αποκλείονται» και k μειώνεται αντίστοιχα (k’ = k – m).

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 9 Πιθανοτική Quickselect int RQuickSelect(int A[], int left, int right, int k) { if (left == right) return(A[left]); // 1 στοιχείο pivot = random(left, right); // τυχαίο pivot swap(A[left], A[pivot]); q = partition(A, left, right); // διαίρεση nel = q – left + 1; // #στοιχείων στο αριστερό μέρος if (k <= nel) return(RQuickSelect(A, left, q, k)); else return(RQuickSelect(A, q+1, right, k - nel)); }

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 10 Χρόνος Εκτέλεσης (χ.π.)  Χρόνος εκτελ. αναδρομικών αλγ. με διατύπωση και λύση αναδρομικής εξίσωσης λειτουργίας.  Τ(n) : χρόνος (χ.π.) για επιλογή από n στοιχεία.  Χρόνος εκτέλεσης partition(n στοιχεία) : Θ(n)  Χειρότερη περίπτωση : ένα στοιχείο «αποκλείεται» σε κάθε διαίρεση!  Πιθανοτικός αλγ.: χειρότερη περίπτωση έχει εξαιρετικά μικρή πιθανότητα να συμβεί (για κάθε είσοδο) !

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 11 Χρόνος Εκτέλεσης (μ.π.)  Καλή περίπτωση : διαίρεση (n / 4, 3n / 4) ή καλύτερη. Τουλάχιστον n / 4 στοιχεία «αποκλείονται».  Πιθανότητα «καλής περίπτωσης»  1/2 ! Κατά «μέσο όρο», μία «κακή διαίρεση» πριν από «καλή διαίρεση» που μειώνει στοιχεία από n σε  3n /4.  Λύση αναδρομής: Γεωμετρική σειρά :

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 12 Χρόνος Εκτέλεσης (μ.π.)  Τυχαίο στοιχείο σαν στοιχείο χωρισμού (pivot).  Για κάθε, πιθανότητα διαίρεσης (i, n – i) =  Λύση αναδρομής :

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 13 Ντετερμινιστική Επιλογή  «Καλή διαίρεση» ντετερμινιστικά: Χρήση pivot κοντά στο ενδιάμεσο: πρόβλημα επιλογής! Φαύλος κύκλος : γρήγορη επιλογή → καλή διαίρεση → γρήγορη επιλογή.  Προσεγγιστική επιλογή : όχι «ενδιάμεσο» αλλά «κοντά στο ενδιάμεσο» για pivot. Επιλογή κατάλληλου δείγματος (π.χ. n / 5 στοιχεία). Ενδιάμεσο δείγματος είναι «κοντά στο ενδιάμεσο» για σύνολο στοιχείων. Αναδρομικά ενδιάμεσο στοιχείο του δείγματος. Ενδιάμεσο δείγματος για pivot εγγυάται «καλή διαίρεση».

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 14 Ντετερμινιστική Επιλογή  Δείγμα: Χωρίζουμε στοιχεία σε 5άδες. Βρίσκουμε ενδιάμεσο κάθε 5άδας: n / 5 στοιχεία. Χρόνος : Θ(n).  Αναδρομικά, ενδιάμεσο στοιχείο δείγματος. Χρόνος : Τ(n / 5)  Διαίρεση με ενδιάμεσο δείγματος σαν pivot. Χρόνος : Θ(n). Μεγαλύτερος υποπίνακας έχει  Αναδρομική επιλογή: χρόνος T(7n / 10)

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 15 Ντετερμινιστική Επιλογή  Χρόνος χειρότερης περίπτωσης:  Λύση αναδρομής :  Ντετερμινιστική επιλογή σε γραμμικό χρόνο!

Επιλογή 16 Ενδιάμεσο Δείγματος  Διαίρεση με ενδιάμεσο δείγματος σαν pivot. Μεγαλύτερος υποπίνακας  7n / 10 στοιχεία. Μικρότερος υποπίνακας  3n / 10 στοιχεία.  Ταξινομούμε 5αδες και βάζουμε σε αύξουσα σειρά των ενδιάμεσων στοιχείων τους (δείγματος).  Ενδιάμεσος δείγματος στη (n / 10)-οστή στήλη.  Ενδιάμεσος δείγματος στοιχεία. Ενδιάμεσος δείγματος στοιχεία.

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 17 Σύνοψη  Γρήγορη επιλογή (quickselect): Πιθανοτικός αλγόριθμος με γραμμικό χρόνο (μ.π.) Ντετερμινιστικός αλγόριθμος με γραμμικό χρόνο (χ.π.) Ντετερμινιστικός αλγόριθμος με «bootstrapping»:  Για να βρω ενδιάμεσο για πολλά στοιχεία, βρίσκω «σχεδόν ενδιάμεσο» για λίγα.  Αυτό βοηθάει να βρω ενδιάμεσο για περισσότερα, …

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 18 Ασκήσεις  Τροποποίηση quicksort ώστε Ο(n log n) χρόνο σε χειρότερη περίπτωση. Είναι πρακτικό;  Στον ντετερμινιστικό αλγόριθμο, χωρίζω στοιχεία σε 3άδες (7άδες). Τι συμβαίνει;  Α και Β δύο ταξινομημένοι πίνακες με n διαφορετικά στοιχεία ο καθένας. Σε χρόνο Ο(log n), το ενδιάμεσο της ένωσης των Α και Β.

Αλγόριθμοι & Πολυπλοκότητα (Χειμώνας 2011)Επιλογή 19 Ασκήσεις  Τροποποίηση quicksort ώστε Ο(n log n) χρόνο σε χειρότερη περίπτωση. Είναι πρακτικό;   Στον ντετερμινιστικό αλγόριθμο, χωρίζω στοιχεία σε 3άδες (7άδες). Τι συμβαίνει;  Α και Β δύο ταξινομημένοι πίνακες με n διαφορετικά στοιχεία ο καθένας. Σε χρόνο Ο(log n), το ενδιάμεσο της ένωσης των Α και Β.