ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ



Σχετικά έγγραφα
Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

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

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

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

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

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

ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ

υναμικός Προγραμματισμός

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

υναμικός Προγραμματισμός

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

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

Ταξινόμηση με συγχώνευση Merge Sort

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

υναμικός Προγραμματισμός

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

Τεχνικές Σχεδιασμού Αλγορίθμων

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

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

Δομές Δεδομένων (Data Structures)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

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

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

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

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

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

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

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

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

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

Υπολογιστική Πολυπλοκότητα

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

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

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

ΓΕ0170 -Αλγόριθμοι και Προηγμένες Προγραμματικές Τεχνικές. Εισαγωγή. Νίκος Αθανάσης.

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

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

Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Ανάλυση Αλγόριθμων ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

Τεύχος Προτεινόµενων Πτυχιακών Εργασιών

Αλγόριθμοι Ταξινόμησης Μέρος 2

Διακριτά Μαθηματικά. Διαλέξεις : Άγγελος Κιαγιάς. Ασκήσεις : Ολγα Φουρτουνέλλη.

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

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

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

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

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

Αναδρομικοί Αλγόριθμοι

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

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

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

Προσεγγιστικοί Αλγόριθμοι

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

5.1. Προσδοκώμενα αποτελέσματα

Διακριτά Μαθηματικά. Άγγελος Κιαγιάς. aggelos. Τμήμα Πληροφορικής & Τηλεπικοινωνιών. π.

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

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

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

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

a 1 a 2 a n. 3. i = j 1 5. A[i + 1] = A[i] 6. i = i 1

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

Advanced Data Indexing

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

Δυναµικός Προγραµµατισµός (ΔΠ)

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Γ.1 Να γράψετε στο τετράδιό σας τους αριθµούς 1,2,3,4 από τη Στήλη Α και δίπλα το γράµµα α, β της Στήλης Β που δίνει το σωστό χαρακτηρισµό.

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

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

Transcript:

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός,, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας 0-006006 Σάββας Ηλίας Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός,, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας Γενικά περί αλγορίθµων Αλγόριθµος Περσία 85 µχ: Abu Ja far Mohammed ibn Musa al Khowarizmi Σύνολο (απλών) οδηγιών οι οποίες επιλύουν ένα συγκεκριµένο πρόβληµα 3x+5=0 ή µία κλάση προβληµάτων. ax+b=0

Αλγόριθµος Τεχνικές αλγορίθµων Είσοδος Καλά Ορισµένος ΑΛΓΟΡΙΘΜΙΚΗ ΓΛΩΣΣΑ Αλγόριθµος Πεπερασµένος Έξοδος Γενικός Αποτελεσµατικός Brute-Force Force, Αναδροµικοί, «ιαίρει και Βασίλευε», υναµικού Προγραµµατισµού, Άπληστοι, Παράλληλοι, Ευρεστικοί (Εύρηκα!!!) Και πολλές άλλες τεχνικές Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός,, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας Πολυπλοκότητα Αξιολόγηση αλγόριθµου: Ταχύτητα, Χρήση µνήµης, Χρήση πόρων δικτύου, Χρήση οποιονδήποτε υπολογιστικών πόρων. ΤΑΧΥΤΗΤΑ αλγόριθµου (σε συνάρτηση µε το πλήθος δεδοµένων εισόδου, έστω N): Χειρίστη περίπτωση, Μέση περίπτωση, Καλύτερη περίπτωση.

Μέτρηση πολυπλοκότητας f(n) Μεγάλο Όµικρον (big( Oh): f(n)=o(g(n)) δεν αυξάνει πιο γρήγορα από την g Μικρό όµικρον (little( oh): f(n)=o(g(n)) αυξάνει πιο αργά από την g Θήτα (theta): f(n)=θ(g(n)) (g(n)) f και g αυξάνουν µε τον ίδιο (περίπου) ρυθµό Ασυµπτωτικά: f(n)~g(n) g(n) f και g αυξάνουν µε τον ίδιο ρυθµό Ωµέγα (omega): f(n)=ω(g(n)) (g(n)) Άρνηση του µικρού όµικρον, η g αποτελεί κάτω όριο της f. Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός,, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας Τεχνική (?): Brute-Force Force Brute-Force Επίλυση µε τον πιο ΑΠΛΟ και ΠΡΟΦΑΝΗ τρόπο (χωρίς να σηµαίνει ότι είναι και ο πιο καλός, που σχεδόν σε όλες τις περιπτώσεις δεν είναι) Παράδειγµα: Α 6 Brute-Force: Α 6 = Α x A x A x x A (5( πολ/µοί µοί) αλλά Α 6 = (((Α ) ) ) (4 πολ/µοί µοί) Ταξινοµήσεις Brute-Force Force: Φυσαλίδα, Επιλογή, Εισαγωγή Πιο «έξυπνες τεχνικές»: Quick sort, Merge sort, Heap sort O(N ) O(Nlog(N)) 3

Συγκρίσεις Τεχνική: Αναδροµικοί αλγόριθµοι 00 90 80 70 60 f 50 40 30 lo g n n nlogn n^ ^n Επιλύει ένα πρόβληµα επιλύνοντας ένα ή περισσότερα µικρότερα κοµµάτια του ίδιου προβλήµατος. Τυπικό παράδειγµα: Ν! = Ν(Ν-)!, 0!= Ακέραια συνάρτηση Παραγοντικό(Ακέραια παράµετρος Ν) Αρχή Εάν Ν< Τότε Κριτήριο τέλους Επέστρεψε 0 Αλλιώς 0 0 3 4 5 6 7 8 9 0 n Τέλος Επέστρεψε Ν x Παραγοντικό(Ν-) Τέλος_Εάν Αναδροµικοί αλγόριθµοι Αναδροµικοί αλγόριθµοι Πολλά προβλήµατα επιλύονται µε αναδροµή!!! Παράδειγµα: Εύρεση του k-οστού άρτιου Ακέραια Συνάρτηση Άρτιος_k(Ακέραια παράµετρος k) Εάν k= Τότε Επέστρεψε 0 Αλλιώς Επέστρεψε + Άρτιος_k(k-) Τέλος_Εάν Αναδροµικός αλγόριθµος αναζήτησης σε αταξινόµητο πίνακα Ακέραια συνάρτηση Α_Αναζήτηση(Πίνκας Π, αρχή, τέλος, Χ) Εάν τέλος < αρχή Τότε Επέστρεψε - Αλλιώς Εάν Π[αρχή] = Χ Τότε Επέστρεψε αρχή Αλλιώς Επέστρεψε A_αναζήτηση(Π, αρχή+, τέλος, X) Τέλος_Εάν Τέλος_Εάν 4

Πύργοι Hanoi Μετακίνηση δίσκων: ) Επιτρέπεται η µεταφορά ενός δίσκου κάθε φορά, και ) Απαγορεύετε να βρεθούν δύο διαδοχικού δίσκοι στη ίδια κολόνα µε τον µικρότερο κάτω από τον µεγαλύτερο. Αναδροµικοί αλγόριθµοι Η αναδροµή δεν αποτελεί πάντα την βέλτιστη λύση, αλλά: Πολλά προβλήµατα επιλύονται µε µαθηµατική αναδροµή και κατά συνέπεια µπορούν να µεταφερθούν εύκολα σε έναν αλγόριθµο. Τεχνική: «ιαίρει και Βασίλευε» Πάγια τακτική των Ρωµαίων αυτοκρατόρων: ιαίρεσε τους εχθρούς σου, Νίκησέ τους έναν έναν.. ιαίρει (το πρόβληµα σε µικρότερα επιµέρους προβλήµατα),. Βασίλευε (λύνοντας το κάθε επιµέρους πρόβληµα εφαρµόζοντας αναδροµικά την ίδια τακτική), και τέλος 3. Συνένωσε (τις επιµέρους λύσεις σε µία καθολική λύση του προβλήµατος). ιαίρει και Βασίλευε: Merge Sort ιαδικασία MergeSort(πίνακας Α, ακέραιος p, ακέραιος r) Αρχή Εάν (p < r) Τότε q = (p+r) / MergeSort(A, p, q) MergeSort(A, q+, r) Merge(A, p, q, r) Τέλος Εάν Τέλος ιαδικασίας «MergeSort» 5

() ιαίρει, () Συγχώνευσε, (3) Βασίλευε. ιαίρει και Βασίλευε (εφαρµογές) Quick Sort, Κυρτό περίβληµα (convex( hull), Πολλά γεωµετρικά προβλήµατα (πχ ελάχιστες αποστάσεις), και πολλές άλλες. υναµικός Προγραµµατισµός Αυτή η τεχνική προϋποθέτει µία αναδροµική επίλυση προβληµάτων αλλά µε µία bottom-up εκτίµηση των λύσεων. Οι υπό-λύσεις συνήθως αποθηκεύονται για την επαναχρησιµοποίησή τους. Ο δυναµικός προγραµµατισµός χρησιµοποιείται κυρίως σε προβλήµατα βελτιστοποίησης τα οποία σχετίζονται µε πολλές λύσεις αλλά και µια τιµή κόστους για το κάθε ένα από αυτά. Τυπικό παράδειγµα αποτελεί η επίλυση της συνάρτησης Fibbonaci η οποία ορίζεται ως εξής: 6

υναµικός Προγραµµατισµός υναµικός Προγραµµατισµός f ( n ) + f ( n ), n > f ( n) = f () = f () = f ( 6 f ) f f ( 3 ) f ( 4 ) ( 5 ) f ( ) f ( ) f ( 3 ) f ( ) f ( ) f ( 3 ) ( 4 ) f ( ) f ( ) f f ( ) ( ) υναµικός Προγραµµατισµός ιαίρεση του προβλήµατος σε µικρότερα και απλούστερα µέρη. Αποθήκευση των λύσεων σε ένα πίνακα. Αυτό γίνεται γιατί πολλές αν όχι όλες από τις λύσεις των υπό-προβληµάτων προβληµάτων πρόκειται να ξαναχρησιµοποιηθούν και να συνδυασθούν και δεν ενδείκνυται το να επιλυθούν ξανά και ξανά. Συνδυασµός των επιµέρους λύσεων του προβλήµατος ώστε να οδηγήσουν στην συνολική λύση. υναµικός Προγραµµατισµός Πολλαπλασιασµός αλυσίδας πινάκων: Α 3x4 B 4x5 C 5x D x9.x IxJ String editing, Βιοπληροφορική, Χρονοπρογραµµατισµός εργασιών, Και πολλές άλλες. 7

Άπληστοι Αλγόριθµοι υναµικός Προγ/µός µός: : Ψάχνει ΟΛΕΣ τις πιθανές λύσεις Βέλτιστη λύση (µερικές φορές ασύµφορη). Απληστία: Επιλέγει µε καθαρά τοπικά κριτήρια τοπικά βέλτιστες λύσεις που ίσως οδηγήσουν σε καθολικά βέλτιστη λύση (όχι πάντα). Χαρακτηριστικό παράδειγµα: Επιστροφή ρέστων Επιστροφή µεγαλύτερου κέρµατος κάθε φορά και αφαίρεσέ το από το σύνολο ρέστων Άπληστοι Αλγόριθµοι Κάθε κλάσµα αναλύεται σε πεπερασµένο άθροισµα κλασµάτων µε αριθµητή µονάδα (Αιγυπτιακά κλάσµατα) 3 = + 6 87 0 = + 4 + 5 + 00 Αιγυπτιακά κλάσµατα Αιγυπτιακά κλάσµατα (a/r) 5 8 = + 8 Ακέραιος i {πρώτο πιθανό κλάσµα= ½, απληστία} Εφόσον (a 0) Εάν (a*i r) Τότε Εµφάνισε «/i» a a*i-r r r*i Τέλος_Εάν i i + Τέλος_Εφόσον 8

Χρονοπρογραµµατισµός εργασιών Χρονοπρογραµµατισµός εργασιών 8 7 6 5 4 3 0 3 4 5 6 7 8 9 0 3 4 8 7 6 5 4 3 0 3 4 5 6 7 8 9 0 3 4 Πρόβληµα σακιδίου Πρόβληµα σακιδίου 9

Heuristics Παράλληλοι αλγόριθµοι (SISD) Neighbor search, Simulated annealing, Tabu search, Artificial neural networks, Genetic algorithms, Lagrangean relaxation, Και άλλοι Παράλληλοι αλγόριθµοι (ΜISD) Παράλληλοι αλγόριθµοι (SIMD) 0

Παράλληλοι αλγόριθµοι (MIMD) Παράλληλος αλγόριθµος πρόσθεσης 00 αριθµών (P[00])( Παράλληλη Εκτέλεση (Επεξεργαστές Ε, Ε) (Π) Ε ΚΑΙ Ε: Ακέραιος i (Π) Ε: Αθροιστής S, Ε: Αθροιστής S E: Αθροιστής S (Π) E: S 0, E: S 0 (Π) E: Για i από µέχρι 50, E: Για i από 5 µέχρι 00 (Π) E: S S + P i, E: S S + P i (Π) Τέλος Για (i) E: Μεταφορά S Ε E: S S + S E: Επέστρεψε S Κόστος παράλληλων αλγόριθµων Περίγραµµα Επιτάχυνση = (Χειρότερος χρόνος του καλύτερου σειριακού αλγόριθµου) / (Χρόνος παράλληλου αλγόριθµου) Κόστος = (Επιτάχυνση) x (Αριθµός συµµετεχόντων CPU) Απόδοση = (Χειρότερος χρόνος του καλύτερου σειριακού αλγόριθµου) / (Κόστος παράλληλου αλγόριθµου) Εισαγωγή Στοιχεία Πολυπλοκότητας Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας

Κλάσεις πολυπλοκότητας Κλάση P: Ένας αλγόριθµος θεωρείται ότι είναι της κλάσης P εάν υπάρχει πολυώνυµο p τέτοιο ώστε f(n) = O(p(N)). ΟΡΙΣΜΟΙ: Το σύνολο των προσδιοριστικών αλγόριθµων απόφασης που επιλύονται σε πολυωνυµικό χρόνο, ανήκουν στην κλάση P. Το σύνολο των αλγόριθµων απόφασης που επιλύονται σε πολυωνυµικό χρόνο από µη προσδιοριστικούς αλγόριθµους, ανήκουν στην κλάση ΝP. P NP Παραµένει αναπόδεικτη η εικασία. Αυτό δείχνει την άγνοια του ότι ενώ είναι γνωστά προβλήµατα της κλάσης NP δεν µπορεί να αποδειχθεί ότι δεν µπορεί να βρεθούν κάποιοι καλύτεροι αλγόριθµοι για αυτά τα προβλήµαταώστεναανήκουν στην κλάση P. NP-hard, NP-complete Σε συνέχεια της προηγούµενης άγνοιας ΝP-complete : ανήκουν στην κλάση NP KAI εάν έστω και ένα αποδειχθεί ότι ανήκει στην κλάση P τότε όλα επιλύονται σε πολυωνυµικό χρόνο. Ένα πρόβληµα L θεωρείται ότι ανήκει στην κλάση NP-hard εάν η ικανοποίηση του προβλήµατος περιορίζει το L (ικανοποίηση L) Σχέσεις P, NP, NP-hard, NP- complete

Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Αλγόριθµοι (Brute-Force, Αναδροµικοί, ιαίρει και Βασίλευε, υναµικός Προγ/µός µός, Άπληστοι, Ευρεστικοί, ) Κλάσεις Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr 0-006006 Σάββας Ηλίας 3