ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου.

Slides:



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

Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
27 Ιουνίου 2014 ΔΙΑΦΑΝΕΙΑ 1 ΤΥΠΙΚΕΣ ΜΕΘΟΔΟΙ ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. – ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ ΑΥΤΟΜΑΤΑ Ι Αυτόματο ελέγχου πρόσβασης με.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Δευτέρα, 30 Ιουνίου 2014Τμ.
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι
ΕΠΛ231 – Δομές Δεδομένων και Αλγόριθμοι
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Εισαγωγή στην επιστήμη των υπολογιστών
Αλγόριθμοι Ι Κάθε καλώς ορισμένη υπολογιστική διαδικασία, η οποία καλείται να επιλύσει ένα συγκεκριμένο πρόβλημα εντός πεπερασμένου χρόνου. Αλγόριθμος.
Αλγόριθμοι Ταξινόμησης
Γιάννης Σταματίου Μη αποδοτική αναδρομή και η δυναμική προσέγγιση Webcast 8.
Σχεδίαση Αλγορίθμων Προτεινόμενα βιβλία:
Αλγόριθμοι και Πολυπλοκότητα
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Αναγνώριση Προτύπων.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
Αριθμητικές Μέθοδοι Βελτιστοποίησης Θεωρία & Λογισμικό Τμήμα Πληροφορικής - Πανεπιστήμιο Ιωαννίνων Ι. Η. Λαγαρής.
Μάθημα 2 ο : Βασικές έννοιες 1 Ακαδημαϊκό Έτος
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν διάσπαση πρόβλημα.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Είσοδος & Έξοδος στη C++ Ι
Τεστ κινηματικής 11 Οκτωβρίου
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής,
Η ΠΛΗΡΟΦΟΡΙΚΗ στην ΕΚΠΑΙΔΕΥΣΗ Αδάμ Κ. Αγγελής Παιδαγωγικό Ινστιτούτο.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
31 Μαρτίου 2015 ΔΙΑΦΑΝΕΙΑ 1 ΤΥΠΙΚΕΣ ΜΕΘΟΔΟΙ ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. – ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ ΚΑΤΗΓΟΡΗΜΑΤΙΚΟΣ ΛΟΓΙΣΜΟΣ Ι Για τον προτασιακό.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Αλγόριθμοι Ταξινόμησης
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
Τίτλος Ενδιάμεση Εξέταση Πτυχιακής Εργασίας >. 2 Αντικείμενο της εργασίας Ο σκοπός της εργασίας είναι να κατασκευασθεί ένα σύστημα > Οδηγία: customize.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Ενότητα 1.2 Αναδρομικές Σχέσεις Σχεδίαση & Ανάλυση Αλγορίθμων.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τμ.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
Διδακτική Μαθηματικών Ι
Ασυμπτωτικός Συμβολισμός
 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον:  Τεχνικές Διδασκαλίας.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 3 Ιουνίου 2015Τετάρτη, 3 Ιουνίου 2015Τετάρτη, 3 Ιουνίου 2015Τετάρτη, 3 Ιουνίου 2015Τμ. Πληροφορικής,
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
8-1 ΜΑΘΗΜΑ 8 ο Εισαγωγή στους Αλγόριθμους Ταξινόμησης.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Η συλλογιστική για το σχεδιασμό. Για το μάθημαΙ  « Παραδοτέα :  Ασκήσεις  Σχεδιασμός και κατασκευή ενός λογισμικού με το Αβάκιο  Ένα κείμενο
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Προσαρμοστικοί Αλγόριθμοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων:
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
F(x,y,y΄, y΄΄, y΄΄΄,y΄΄΄΄, …, y(n)) = 0
Εφαρμογές Πληροφορικής
Διαφορικές εξισώσεις τάξης ανώτερης της πρώτης
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)
Στοιχεία Δομημένου Προγραμματισμού
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Προσαρμοστικοί Αλγόριθμοι Υλοποίησης Βέλτιστων Ψηφιακών Φίλτρων:
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.1 Διαίρει και βασίλευε Ι Είναι μία τεχνική για σχεδίαση αλγορίθμων που βασίζονται στη διάσπαση της προς επίλυση περίπτωσης σε μικρότερες υποπεριπτώσεις του ίδιου προβλήματος, στη διαδοχική και ανεξάρτητη επίλυση αυτών και στο συνδυασμό των επί μέρους λύσεων με τέτοιο τρόπο, ώστε να σχηματισθεί η λύση της αρχικής περίπτωσης. Ας υποθέσουμε ότι κάποιος αλγόριθμος Α απαιτεί χρόνο τετραγωνικής πολυπλοκότητας. Έστω c μία σταθερά έτσι ώστε για κάποια υλοποίηση του αλγορίθμου t A (n)  cn 2. Έστω επίσης ότι διαπιστώνουμε ότι η συγκεκριμένη περίπτωση μπορεί επίσης να επιλυθεί διασπώντας τη σε τρεις υποπεριπτώσεις μεγέθους  n/2 , επιλύνοντάς τις και συνδυάζοντας τις επί μέρους λύσεις.

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.2 Διαίρει και βασίλευε ΙΙ Είναι επίσης d μια σταθερά, έτσι ώστε ο απαιτούμενος χρόνος για τη διάσπαση του προβλήματος και το συνδυασμό των επί μέρους λύσεων είναι t(n)  dn. Τότε, ο συνολικός χρόνος του νέου αλγόριθμου B είναι Άρα ο νέος αλγόριθμος B εξακολουθεί να έχει πολυπλοκότητα n 2, αν και έχει επιτευχθεί μία βελτίωση κατά 25%. Αν όμως οι υποπεριπτώσεις έχουν αρκετά μεγάλο μέγεθος τι θα γινόταν αν το πρόβλημα επιλύονταν με αναδρομή; Τότε ο απαιτούμενος χρόνος εκτέλεσης θα δινόταν από τη σχέση

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.3 Διαίρει και βασίλευε ΙΙΙ με πολυπλοκότητα n lg3 που είναι περίπου n Αυτή είναι μια αρκετά καλή βελτίωση που γίνεται πιο σημαντική όσο μεγαλώνει το n. Πως καθορίζεται το n 0 ?? DQ(x) {//Γενική μορφή αλγορίθμων divide & conquer if (x αρκετά μικρό) return ADHOC(x); διάσπαση της περίπτωσης σε υποπεριπτώσεις x 1, x 2, …, x k for (i=1; i<=k; i++) y i =DQ(x i ); συνδυασμός των y i για το σχηματισμό της λύσης y του x return y }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.4 Διαίρει και βασίλευε ΙV Σε κάποιες περιπτώσεις προτιμάται η αντικατάσταση της αναδρομής από έναν επαναληπτικό βρόχο.Τότε μπορεί να επιτευχθεί ίσως μία περιορισμένη βελτίωση σε ότι αφορά το χρόνο εκτέλεσης, αλλά από την άλλη μεριά μία αλλαγή στην τάξη μεγέθους του χώρου μνήμης, που χρησιμοποιείται. Για τον καθορισμό του βέλτιστου n 0 κάνουμε τα εξής: καθορίζουμε με θεωρητική ανάλυση τη μορφή των αναδρομικών εξισώσεων του χρόνου εκτέλεσης και στη συνέχεια προσπαθούμε να καθορίσουμε τις σταθερές που χρησιμοποιούνται σε αυτές τις εξισώσεις για μια συγκεκριμένη υλοποίηση του αλγορίθμου. Τότε το βέλτιστο n 0 καθορίζεται από τον υπολογισμό του n, που δε διαφοροποιεί την απόδοση μιας περίπτωσης μεγέθους n αν γίνει απευθείας εφαρμογή του αλγορίθμου ή αν θα χρησιμοποιηθεί ένα επιπλέον επίπεδο αναδρομής.

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.5 Δυαδική αναζήτηση I Έστω Τ[n] ένας πίνακας ταξινομημένος κατά αύξουσα σειρά στοιχείων, δηλ. 0  i<j  n-1  T[i]  T[j] και έστω ένα στοιχείο x, που αναζητάμε. Αν το στοιχείο x δεν περιέχεται μέσα στον πίνακα, τότε μας ενδιαφέρει να βρούμε τη θέση, όπου θα μπορούσαμε να το εισάγουμε. ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ int sequential(T[n],x) { for (i=0;i<n;i++) if (T[i]>x) return i-1; return n; }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.6 Δυαδική αναζήτηση II Χειρότερη περίπτωση: Θ(n) Μέση περίπτωση: απαιτούνται κατά μέσο όρο (1+2+…+n)/n συγκρίσεις, δηλ. (n(n+1)/2)/n, δηλαδή (n+1)/2. Άρα, ο αλγόριθμος είναι O(n). ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ int binsearch(T[n], x) { if (n=1 || x<T[0]) return O; return binrec(T, x); } int binrec(T[i..j], x) { //η συνάρτηση αυτή καλείται αν T[i]  x<T[j+1] και i  j if (i = j) return i; int k=(i+j+1) / 2; if (x<T[k]) return binrec(T[i..k-1], x); else return binrec(T[k..j], x); }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.7 Δυαδική αναζήτηση III

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.8 Δυαδική αναζήτηση IV Άρα στη χειρότερη περίπτωση ο βρόχος εκτελείται log 2 n φορές. Επομένως ο αλγόριθμος είναι Ο(log 2 n). ΜΗ ΑΝΑΔΡΟΜΙΚΗ ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ int iterbin(T[n], x) { if (n=1 || x<T[0]) return O; i=0; j=n-1; while (i<j) { //αν T[i]  x < T[j+1] int k=(i+j+1)/2; if (x<T[k]) j=k-1; else i=k; } return i; }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.9 Δυαδική αναζήτηση V int iterbin2(T[n], x) { if (n=1 || x<T[0]) return O; i=0; j=n-1; while (i<j) { //αν T[i]  x<T[j+1] int k=(i+j+1) / 2; if (x<T[k]) j=k-1; else if (x  T[k+1]) i=k+1; else {i=k; j=k;} } return i; } Έχει αποδειχθεί ότι για αρκετά μεγάλο n ο iterbin2 είναι πιο αποδοτικός από τον iterbin.

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.10 Ταξινόμηση με συγχώνευση Ι Έστω Τ[n] ένας πίνακας από n στοιχεία. Μας ενδιαφέρει να ταξινομηθούν τα στοιχεία αυτά κατά αύξουσα σειρά. Μία προσέγγιση διαίρει και βασίλευε είναι να διαιρέσουμε τον πίνακα σε δύο μέρη περίπου ίσα, να ταξινομηθούν αυτά με αναδρομικές κλήσεις και να συγχωνευθούν οι επί μέρους λύσεις με τη σωστή σειρά. mergesort(T[n]) { if (n είναι μικρό) insert(T); else U=T[0..  n/2  ]; V=T[1+  n/2 ..n]; mergesort(U); mergesort(V) merge(T, U, V) }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.11 Ταξινόμηση με συγχώνευση ΙI Ο συγκεκριμένος αλγόριθμος είναι ένα κλασσικό παράδειγμα με όλα τα χαρακτηριστικά του διαίρει και βασίλευε. Όταν ο αριθμός των προς ταξινόμηση στοιχείων είναι μικρός, τότε χρησιμοποιείται κάποιος άλλος απλός αλγόριθμος, διαφορετικά η περίπτωση διασπάται σε δύο υποπεριπτώσεις και η ίδια συνάρτηση καλεί τον εαυτό της για κάθε μία από αυτές και συγχωνεύει τις επί μέρους λύσεις. Αποδεικνύεται ότι ο αλγόριθμος έχει αποδοτικότητα Θ(n logn) Αν όμως χρησιμοποιήσουμε αλγόριθμο που διασπά την κάθε περίπτωση σε μη ίσες υποπεριπτώσεις, τότε αποδεικνύεται ότι Θ(n 2 ).

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.12 Επιλογή στοιχείου Ι Θέλουμε να επιλέξουμε τη διάμεσο, δηλ. το στοιχείο εκείνο που στον πίνακα υπάρχουν τόσα μεγαλύτερα στοιχεία, όσα και μικρότερα. Μία λύση είναι να προηγηθεί ταξινόμηση του πίνακα κατά αύξουσα σειρά και να πάρουμε το μεσαίο στοιχείο. Αυτό θα απαιτούσε χρόνο O(nlogn). Μήπως γίνεται και πιο γρήγορα; Θεωρούμε το γενικότερο πρόβλημα, το πρόβλημα της επιλογής: Έστω Τ ένας πίνακας από n στοιχεία και έστω k ένας ακέραιος μεταξύ 0 και n-1. Το k-στο πιο μικρό στοιχείο του Τ είναι η τιμή m για την οποία ισχύει

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.13 Επιλογή στοιχείου ΙΙ int selection(T[n], k) { if (n αρκετά μικρό) { sort T; return T[k]} p=κάποιο στοιχείο του Τ[n]; u=#{i  [0..n-1]|T[i]<p}; v=#{i  [0..n-1]|T[i]  p}; if (k  u) { πίνακας U[0..u-1]  τα στοιχεία του T που είναι μικρότερα από το p return selection(U,k)} if (k  v) return p; else {//k>v πίνακας V[0..n-v-1]  τα στοιχεία του T που είναι μεγαλύτερα από το p return selection(V,k-v)} }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.14 Επιλογή στοιχείου ΙΙI Μπορεί να αποδειχθεί ότι αν χρησιμοποιούμε ως στοιχείο pivot τη διάμεσο και η εύρεσή της έχει μοναδιαίο κόστος, τότε ο αλγόριθμος είναι O(n). Εναλλακτικά, αν επιλέγουμε κάθε φορά το πρώτο στοιχείο του πίνακα μπορούμε πάλι να χρησιμοποιήσουμε τη μέθοδο ελπίζοντας ότι τα μεγέθη των επί μέρους πινάκων θα είναι ισορροπημένα (αυτό εξαρτάται από την τυχαιότητα των στοιχείων). Τότε, στη χειρότερη περίπτωση ο αλγόριθμος θα είναι Ο(n 2 ). ΛΥΣΗ: Μία γρήγορη προσέγγιση της διαμέσου

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.15 Επιλογή στοιχείου ΙV pseudomed(T[n]) { int s=n / 5; πίνακας S[s]; for (i=1;i<=s;i++) S[i]=adhocmed5(T[5i i]); return selection(S,[(s+1) / 2]) } όπου adhocmed αλγόριθμος ειδικά σχεδιασμένος για να βρίσκει τη διάμεσο μεταξύ πέντε στοιχείων Όταν χρησιμοποιείται μια προσέγγιση όπως η προαναφερόμενη τότε ο αλγόριθμος επιλογής είναι Ο(n).

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.16 Πράξεις μεγάλων αριθμών Ι Σε όσους αλγορίθμους χρησιμοποιήσαμε μέχρι τώρα θεωρήσαμε τις προσθέσεις και τους πολλαπλασιασμούς ως στοιχειώδεις πράξεις με την έννοια ότι ο χρόνος που απαιτείται για την εκτέλεση της κάθε μιας είναι άνω φραγμένος από μια σταθερά, που εξαρτάται μόνο από την ταχύτητα των κυκλωμάτων του υπολογιστή. Αυτό όμως είναι αλήθεια μόνο όταν το μέγεθος των τελεστέων είναι αρκετά μικρό, ώστε να μπορεί να αναπαρασταθεί απευθείας στο hardware. Τι γίνεται ας πούμε όταν έχουμε πολλαπλασιασμό πολύ μεγάλων ακεραίων, που δεν μπορούν να αναπαρασταθούν στη μηχανή; Χρειαζόμαστε μια αποδοτική αναπαράσταση σε επίπεδο λογισμικού!! Εφαρμογή: Κρυπτογραφία

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.17 Πράξεις μεγάλων αριθμών ΙΙ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ: 45Χ19 ΚΛΑΣΣΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ45 Χ   855 ΡΩΣΙΚΟΣ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ πλεονέκτημα: γίνεται μόνο με προσθέσεις, που σε επίπεδο hardware έχουν μικρότεροκόστος από τους πολλαπλασιασμούς

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.18 Πράξεις μεγάλων αριθμών ΙΙΙ Και οι δύο αλγόριθμοι έχουν τετραγωνική πολυπλοκότητα. Μπορεί αυτό να βελτιωθεί; ΝΑΙ με διαίρει και βασίλευε. Διασπάμε τον καθένα από τους τελεστέους σε δύο μέρη, περίπου του ιδίου μεγέθους: u=10 s w+x και v=10 s y+z, όπου 0  x<10 s, 0  z<10 s και Επομένως οι ακέραιοι w και y έχουν και οι δύο από ψηφία. Το γινόμενο δίνεται ως:

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.19 Πράξεις μεγάλων αριθμών ΙV long int mult(u,v:long int) { n=μικρότερος ακέραιος έτσι ώστε τόσο ο u όσο και ο v να έχουν μέγεθος n; if (n είναι μικρό) { πολλαπλασίασε το u με το v χρησιμοποιώντας ένα κλασσικό αλγόριθμο return το γινόμενο} s = [n / 2]; w=[u / 10 s ]; x=u mod 10 s ; y=[v / 10 s ]; z=v mod 10 s ; return mult(w,y) X 10 2s + (mult(w,z)+mult(x,y)) X 10 s + mult(x,z); }

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.20 Πράξεις μεγάλων αριθμών V Ο προηγούμενος αλγόριθμος επίσης έχει τετραγωνική πολυπλοκότητα και άρα δεν πετύχαμε καμιά βελτίωση. Αν όμως αντικατασταθεί η τελευταία του εντολή από τις r=mult(w+x,y+z); p=mult(w,y); q=mult(x,z); return 10 2s p+10 s (r-p-q)+q τότε μπορεί να αποδειχθεί ότι ο αλγόριθμος γίνεται, που είναι περίπου O(n 1.59 ) και αυτό είναι μια βελτίωση

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.21 Πολλαπλασιασμός πινάκων Ι Ο κλασσικός αλγόριθμος για τον πολλαπλασιασμό δύο τετραγωνικών πινάκων Α και B διαστάσεων nXn είναι: Αφού κάθε στοιχείο του C υπολογίζεται σε χρόνο τάξης n και για το γινόμενο απαιτούνται n 2 τέτοιοι υπολογισμοί, o αλγόριθμος έχει πολυπλοκότητα Θ(n 3 ). Μπορούμε αυτό να το βελτιώσουμε; ΝΑΙ σύμφωνα με τον αλγόριθμο που εφευρέθηκε το 1960 από τον Strassen

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.22 Πολλαπλασιασμός πινάκων ΙI Έστω δύο πίνακες 2Χ2 Α και Β: Θεωρούμε τις ακόλουθες πράξεις: m 1 =(α 21 +α 22 -α 11 )(b 22 -b 12 +b 11 ) m 2 =α 11 b 11 m 3 =α 12 b 21 m 4 =(α 11 -α 21 )(b 22 -b 12 ) m 5 =(α 21 +α 22 )(b 12 -b 11 ) m 6 =(α 12 -α 21 +α 11 -α 22 )b 22 m 7 =α 22 (b 11 +b 22 -b 12 -b 21 )

ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Τμ. Πληροφορικής, Α.Π.Θ.23 Πολλαπλασιασμός πινάκων ΙII Τότε, το γινόμενο δίνεται από τον πίνακα και άρα μπορούμε να υπολογίσουμε το γινόμενο χρησιμοποιώντας μόνο 7 πολλαπλασιασμούς Αν αντικαταστήσουμε κάθε στοιχείο των A και B με πίνακα nXn, τότε φτιάχνουμε έναν αλγόριθμο έναν αλγόριθμο για πολλαπλασιασμό πινάκων 2nX2n με επτά πολλαπλασιασμούς πινάκων nXn και έναν αριθμό προσθέσεων και αφαιρέσεων. Πολυπλοκότητα Ο(n 2.81 )