ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

Slides:



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

Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
ΓΡΑΜΜΑΤΙΚΕΣ ΧΩΡΙΣ ΣΥΜΦΡΑΖΟΜΕΝΑ I
Ασκήσεις Συνδυαστικής
ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Γιάννης Σταματίου Μη αποδοτική αναδρομή και η δυναμική προσέγγιση Webcast 8.
Ο Αλγόριθμος FP-Growth. Αλγόριθμος FP-Growth Ο αλγόριθμος χρησιμοποιεί μια συμπιεσμένη αναπαράσταση της βάσης των συναλλαγών με τη μορφή ενός FP-δέντρου.
Η Μέθοδος RSA  Υποθέτουμε πως δυο άτομα ο Α και ο Β θέλουν να ανταλλάξουν μεταξύ τους κάποιο μήνυμα Μ, το οποίο θέλουν να κρυπτογραφήσουν για λόγους ασφαλείας.
Αλγόριθμοι και Πολυπλοκότητα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Εισηγητής:Στέφανος Μέτης
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Διαίρει-και-Βασίλευε
Δυναμικός Προγραμματισμός
Προσεγγιστικοί Αλγόριθμοι
Προβλήματα πολλαπλασιαστικών δομών
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
4. Συνδυαστική Λογική 4.1 Εισαγωγή
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου 2015Κυριακή, 11 Ιανουαρίου.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο1 Διαίρει και Βασίλευε γνωστότερη Η γνωστότερη μέθοδος σχεδιασμού αλγορίθμων: Διαιρούμε.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Γιάννης Σταματίου Αναδρομή και αναδρομικές σχέσεις
ΘΕΩΡΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΚΕΦΑΛΑΙΑ 7.4 – 7.6 NP ΠΛΗΡΟΤΗΤΑ.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Δουλεύει για όλους τους αριθμούς! Η δεύτερη ΓΡΑΨΕ δεν θα εκτελεστεί ποτέ!
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Παρασκευή, 3 Απριλίου 2015Τμ.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Εξίσωση ευθείας. Παράδειγμα I Υποθέτουμε:Α = (0,1) και Β = (5,4) Τότε: m = (4-1)/(5-0)= 0.6 και b = 1, όπου 0  m  1 (1 o ογδοημόριο). Άρα:y = 0.6 x.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Άσκηση Διεύθυνσης Μνήμης με cache Νεκτάριος Κοζύρης Άρης Σωτηρόπουλος Νίκος Αναστόπουλος.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
Διακριτά Μαθηματικά Ι Γιώργος Γεωργιάδης (σύμφωνα με τις παραδόσεις του Λευτέρη Κυρούση) Σημειώσεις του μαθήματος Διάλεξη 1η.
Ένα δείγμα προβλημάτων στα Αριθμητικά του Διόφαντου
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
8-1 ΜΑΘΗΜΑ 8 ο Εισαγωγή στους Αλγόριθμους Ταξινόμησης.
JPEG Μια τεχνική συμπίεσης ακίνητης εικόνας. Η Τεχνική JPEG Αφορά συμπίεση ακίνητων εικόνων Είναι τεχνική συμπίεσης με απώλειες Το πρόβλημα είναι η εκάστοτε.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παραδείγματα Ανοικτών Δικτύων Ουρών Κλειστά Δίκτυα Ουρών Β. Μάγκλαρης Σ. Παπαβασιλείου.
Πανεπιστήμιο Βόλου Παιδαγωγικό Τμήμα Δημοτικής Εκπαίδευσης «Αρχαία Ελληνική και Βυζαντινή Ιστορία και Πολιτισμός» Μάθημα 3 ο (Μυκηναϊκός Πολιτισμός – Γεωμετρική.
Παίρνω μία σοκολάτα. Την χωρίζω σε δύο ίσα κομμάτια. Παίρνω το αριστερό κομμάτι. Έχω πάρει το 1/2 της σοκολάτας. Χωρίζω το κάθε κομμάτι σε τρία ίσα μέρη.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ.
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Ασκήσεις WEKA Νευρωνικά δίκτυα.
Γιώργος Δημητρίου Μάθημα 11-12: Σύνθετες Πράξεις
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Η ΠΡΑΞΗ ΤΗΣ ΔΙΑΙΡΕΣΗΣ Διαιρετέος: Ακέραιος διαιρέτης: Ακέραιος
ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ
ΠΑΡΑΔΕΙΓΜΑΤΑ ΔΙΑΓΡΑΜΜΑΤΩΝ BODE ΜΕΤΡΟΥ ΚΑΙ ΦΑΣΗΣ
Μαθηματικά Α' ΓΥΜΝΑΣΙΟΥ
ΕΚΡΕΜΜΕΣ.
Τεστ στα Μαθηματικά πολλαπλασιασμοί & διαιρέσεις 10, 100, 1000.
Γραφικές παραστάσεις με το Excel 2007
Γραφικές παραστάσεις με το Excel 2007
Πανεπιστήμιο Βόλου Παιδαγωγικό Τμήμα Δημοτικής Εκπαίδευσης
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΠΟΛΛΑΠΛΑΣΙΑ ΕΝΟΣ ΦΥΣΙΚΟΥ ΑΡΙΘΜΟΥ
ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ
Βασικές έννοιες (Μάθημα 2) Τίτλος: Η Συσκευή
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
ΙΝΣΤΙΤΟΥΤΟ ΕΛΛΗΝΙΚΟΥ ΓΑΛΑΚΤΟΣ
Δυναμικός Κατακερματισμός
Γραφικές παραστάσεις με το Excel 2007
Μεταγράφημα παρουσίασης:

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

Πολλαπλασιασμός: μπορούμε καλύτερα; Διαισθητικά, επειδή ο πολλαπλασιασμός φαίνεται να απαιτεί άθροιση περίπου n πολλαπλασίων μιας από τις εισόδους, και δεδομένου ότι κάθε πρόσθεση απαιτεί γραμμικό χρόνο, φαίνεται οι n2 bit λειτουργίες να μη γίνεται να μειωθούν Παραδόξως: μπορούμε να κάνουμε πολύ καλύτερα!

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Χρησιμοποιούμε (1) την τεχνική διαίρει και βασίλευε (divide and conquer) 1. Σπάμε το πρόβλημα σε υποπροβλήματα που αποτελούν μικρότερου μεγέθους στιγμιότυπα του δοσμένου προβλήματος 2. Αναδρομικά λύνουμε τα υποπροβλήματα 3. Συνδυάζουμε κατάλληλα τις λύσεις τους για να πάρουμε τη λύση του αρχικού προβλήματος Φανταστείτε ότι έχω να πλύνω μια στολή που αποτελείται από πουκάμισο, γιλέκο και παντελόνι… και (2) το θεώρημα του Gauss bc + ad = (a + b)(c + d)-ac-bd

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Δίνονται n-bit ακέραιοι αριθμοί x, y και ζητείται το x*y Χωρίζουμε τους x, y στο αριστερό και δεξί τους τμήμα (το καθένα έχει n/2 bits) Τότε:

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Δίνονται n-bit ακέραιοι αριθμοί x, y και ζητείται το x*y Χωρίζουμε τους x, y στο αριστερό και δεξί τους τμήμα (το καθένα έχει n/2 bits) Τότε: Αν x = 10110110 τότε xL = 1011 και xR = 0110 και x = 1011*24 + 0110

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Δίνονται n-bit ακέραιοι αριθμοί x, y και ζητείται το x*y Χωρίζουμε τους x, y στο αριστερό και δεξί τους τμήμα (το καθένα έχει n/2 bits) Τότε: Αν x = 10110110 τότε xL = 1011 και xR = 0110 και x = 1011*24 + 0110 Γραμμικός χρόνος: Ο(n)

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Δίνονται n-bit ακέραιοι αριθμοί x, y και ζητείται το x*y Χωρίζουμε τους x, y στο αριστερό και δεξί τους τμήμα (το καθένα έχει n/2 bits) Τότε: Αν x = 10110110 τότε xL = 1011 και xR = 0110 και x = 1011*24 + 0110 Γραμμικός χρόνος: Ο(n) Xρόνος: 4*T(n/2) Συνολικός χρόνος: 4*Τ(n/2)+O(n)=O(n2) με τη γνωστή τεχνική πολλαπλασιασμού…

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος Δίνονται n-bit ακέραιοι αριθμοί x, y και ζητείται το x*y Χωρίζουμε τους x, y στο αριστερό και δεξί τους τμήμα (το καθένα έχει n/2 bits) Τότε: Αν x = 10110110 τότε xL = 1011 και xR = 0110 και x = 1011*24 + 0110 Γραμμικός χρόνος: Ο(n) Xρόνος: 3*T(n/2) Συνολικός χρόνος: 3*Τ(n/2)+O(n)O(n1.59) με χρήση της τεχνικής του Gauss…

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος ΑΛΓΟΡΙΘΜΟΣ ΓΙΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΤΕΧΝΙΚΗΣ ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

Κάθε πρόβλημα διαιρείται σε 3 υποπροβλήματα Η αναδρομική διαδικασία k=0 k=logn Τελικά: 3k υποπροβλήματα, μεγέθους το καθένα n/2k: χρόνος 3k *Ο(n/2k)= (3/2)k*O(n)

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος (τεχνική διαίρει και βασίλευε) Δεδομένα: 2 ακέραιοι a και b με n ψηφία ο καθένας Ζητούμενο: γινόμενο a επί b Παράδειγμα: Με βάση τον αλγόριθμο για πολλαπλασιασμό που είδαμε ήδη και απαιτεί χρόνο O(n2) 1980 = a x 2315 = b ---------------- 9900 1980 5940 + 3960 4583700 = a x b

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος (τεχνική διαίρει και βασίλευε) Διαιρούμε το πρόβλημα: Χωρίζουμε τους ακεραίους στα δύο τους μισά: Ο αλγόριθμος πρέπει να υπολογίσει τα 4 γινόμενα και μετά να τα αθροίσει, δηλ., 15*80+(15*19+23*80)*102+23*19*104= 1200+212500+4370000=4583700 Απαιτούμενος χρόνος: T(n)  4*T(n / 2) + O(n)  T(n) = O(n2) *104 *102 *100

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος (τεχνική διαίρει και βασίλευε) Διαιρούμε το πρόβλημα: Χωρίζουμε τους ακεραίους στα δύο τους μισά: Με λίγη εξυπνάδα… ο αλγόριθμος μπορεί να υπολογίσει μόνο 3 γινόμενα: x1 = aL*bL, x2 = aR*bR και x3 = (aL + aR)*(bL + bR) Αφού: aL aR x bL bR ------------------------------------------- aL bL aL bR + aR bL aR bR x1 x3 - x1 - x2 x2 Τώρα ο αλγόριθμος πρέπει να υπολογίσει 3 γινόμενα: x1, x2, και x3, να υπολογίσει το x3 - x1 - x2, και να αθροίσει: x1*104 + (x3 - x1 – x2)*102 + x2 = 437*104 + (3762 - 437 – 1200)*102 + 1200= 437*104 + 2125*102 + 1200=4583700 Απαιτούμενος χρόνος: T(n)  3*T(n / 2) + O(n)  T(n)  O(n1.59) *104 *102 *100 Αλγόριθμος Karatsuba

Πολλαπλασιασμός: βελτιωμένος αλγόριθμος (τεχνική διαίρει και βασίλευε) (aL+aR)*(bL+bR)=aL*bL+aL*b*R+aR*bL+aR*bR  aL*b*R+aR*bL=(aL+aR)*(bL+bR)-aL*bL-aR*bR  aL*b*R+aR*bL=x3-x1-x2 Διαιρούμε το πρόβλημα: Χωρίζουμε τους ακεραίους στα δύο τους μισά: Με λίγη εξυπνάδα… ο αλγόριθμος μπορεί να υπολογίσει μόνο 3 γινόμενα: x1 = aL*bL, x2 = aR*bR και x3 = (aL + aR)*(bL + bR) Αφού: aL aR x bL bR ------------------------------------------- aL bL aL bR + aR bL aR bR x1 x3 - x1 - x2 x2 Τώρα ο αλγόριθμος πρέπει να υπολογίσει 3 γινόμενα: x1, x2, και x3, να υπολογίσει το x3 - x1 - x2, και να αθροίσει: x1*104 + (x3 - x1 – x2)*102 + x2 = 437*104 + (3762 - 437 – 1200)*102 + 1200= 437*104 + 2125*102 + 1200=4583700 Απαιτούμενος χρόνος: T(n)  3*T(n / 2) + O(n)  T(n)  O(n1.59) *104 *102 *100 Αλγόριθμος Karatsuba