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

Σχετικά έγγραφα
Αλγόριθμοι και Πολυπλοκότητα

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

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός ΙΙΙ - Java

ιακριτές Μέθοδοι για την Επιστήμη των Υπολογιστών

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

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

οµηµένος Προγραµµατισµός ΙΙΙ - Java

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

Αλγόριθμοι. Μάρθα Σιδέρη. epl333 lect

Κλάσεις Πολυπλοκότητας

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

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

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

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

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

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

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

Αλγοριθμική Θεωρία Παιγνίων

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

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

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

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

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

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

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

Αλγόριθµοι Προσέγγισης για NP- ύσκολα Προβλήµατα

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

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

για NP-Δύσκολα Προβλήματα

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

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

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

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αποτίµηση εκπαιδευτικού έργου

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

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

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

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

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

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

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

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

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

Διαλογικά Συσ τήματα Αποδείξεων Διαλογικά Συστήματα Αποδείξεων Αντώνης Αντωνόπουλος Κρυπτογραφία & Πολυπλοκότητα 17/2/2012

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

«Η Αλγοριθμική Πολυπλοκότητα στο Γενικό Λύκειο»

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

ιαφάνειες παρουσίασης #3

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Fast Fourier Transform

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

L A P. w L A f(w) L B (10.1) u := f(w)

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

(Γραμμικές) Αναδρομικές Σχέσεις

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

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

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

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

Ψευδο-τυχαιότητα. Αριθµοί και String. Μονόδροµες Συναρτήσεις 30/05/2013

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

Προσεγγιστικοί Αλγόριθμοι βασισμένοι σε Γραμμικό Προγραμματισμό

Θεωρία Υπολογισμού και Πολυπλοκότητα ΕΙΣΑΓΩΓΉ ΣΤΟ ΜΑΘΗΜΑ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

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

Διαδικαστικά του μαθήματος

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

Transcript:

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

Οργανωτικά ιδάσκοντες:. Φωτάκης και. Σούλιου (και Σ. Ζάχος στις πρόσθετες διαλέξεις για µεταπτυχιακό) Βοηθοί διδασκαλίας Υ..: Σ. Σκουλάκης, Λ. Κάβουρας, Π. Πατσιλινάκος, Ελ. Ψαρουδάκη 4 ώρες θεωρία (και ασκήσεις) ευτέρα 15:15 17:00, αµφ. 1, νέο κτ. ΣΗΜΜΥ και Πέµπτη 17:15 19:00, αµφ. 4, νέο κτ. ΣΗΜΜΥ Βαθµολογία: 80% τελική εξέταση (ασκήσεις). Τουλάχιστον 3.5 στα 8. 15% γραπτές ασκήσεις (4 σειρές) 15% προγραµµατιστικές ασκήσεις (4 σειρές) Ιστοσελίδα: http://www.corelab.ece.ntua.gr/courses/algorithms/ Υποβολή Ασκήσεων: www.corelab.ntua.gr/moodle/ Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 2

Γραπτές Ασκήσεις Ατοµικές γραπτές ασκήσεις: 4 σειρές γραπτών ασκήσεων. Περίπου 2 εβδοµάδες για κάθε σειρά ασκήσεων. Εκφώνηση στο site. Υποβολή στο moodle. 1 η γραπτή: υποβολή 2 εβδοµάδες µετά την ανακοίνωση. Λύσεις: συζήτηση στο µάθηµα (και ανακοίνωση σχεδίου λύσεων) Σηµαντικές γιατί οδηγούν σε βαθύτερη κατανόηση, επεκτείνουν γνώσεις και προετοιµάζουν για τις εξετάσεις! Ένα-δύο από τα θέµατα των εξετάσεων παρόµοια µε γραπτές (ή παλαιότερες λυµένες) ασκήσεις. (Μόνο) οι «περυσινοί» µπορούν «κρατήσουν» βαθµούς ασκήσεων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 3

Προγραµµατιστικές Ασκήσεις Ατοµικές προγραµµατιστικές ασκήσεις: 4 σειρές προγραµµατιστικών ασκήσεων. Περίπου 2 εβδοµάδες για κάθε σειρά ασκήσεων. Εγγραφή στο moodle, αµέσως µόλις «ανοίξει». Το login και το password µε το οποίο θα εγγραφείτε στο moodle, θα χρησιµοποιούνται στον grader. Παράδοση µε υποβολή κώδικα στον grader. 1 η προγραµµατιστική: δύο εβδοµάδες µετά την γραπτή (Μόνο) οι «περυσινοί» µπορούν «κρατήσουν» βαθµούς ασκήσεων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 4

Αλγόριθµοι και... Γιατί κάποια υπολογιστικά προβλήµατα είναι εύκολο και κάποια άλλα είναι δύσκολο να λυθούν από υπολογιστικές µηχανές. «Εύκολα» προβλήµατα: επιλύονται από αλγόριθµους που απαιτούν εύλογη ποσότητα υπολογιστικών πόρων (χρόνος, µνήµη, επικοινωνία). Βασικές έννοιες και βασικές δοµές δεδοµένων (επιλεκτικά). Βασικές τεχνικές σχεδιασµού και ανάλυσης αλγορίθµων: ιαίρει-και-βασίλευε Απληστία υναµικός προγραµµατισµός Εφαρµογή: αλγόριθµοι γραφηµάτων Ελάχιστο συνδετικό δέντρο Συντοµότερα µονοπάτια Μέγιστη ροή Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 5

«ύσκολα» Προβλήµατα Τι κάνουµε όταν ένα πρόβληµα φαίνεται «δύσκολο»; «ύσκολο»: µετά από µεγάλη προσπάθεια, δεν βρίσκουµε αποδοτικό αλγόριθµο (πολυωνυµικού χρόνου). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 6

«ύσκολα» Προβλήµατα Τι κάνουµε όταν ένα πρόβληµα φαίνεται «δύσκολο»; «ύσκολο»: µετά από µεγάλη προσπάθεια, δεν βρίσκουµε αποδοτικό αλγόριθµο (πολυωνυµικού χρόνου). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 7

«ύσκολα» Προβλήµατα Τι κάνουµε όταν ένα πρόβληµα φαίνεται «δύσκολο»; «ύσκολο»: µετά από µεγάλη προσπάθεια, δεν βρίσκουµε αποδοτικό αλγόριθµο (πολυωνυµικού χρόνου). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 8

«ύσκολα» Προβλήµατα Τι κάνουµε όταν ένα πρόβληµα φαίνεται «δύσκολο»; «ύσκολο»: µετά από µεγάλη προσπάθεια, δεν βρίσκουµε αποδοτικό αλγόριθµο (πολυωνυµικού χρόνου). Θεωρία NP-πληρότητας. NP-πλήρη: κλάση εξαιρετικά σηµαντικών προβληµάτων που είτε όλα επιλύονται σε πολυωνυµικό χρόνο είτε κανένα. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 9

... και Πολυπλοκότητα Υπολογιστική (Χρονική) Πολυπλοκότητα: Ντετερµινιστικές µηχανές Turing Κλάσεις πολυπλοκότητας, αναγωγή, πληρότητα. Χρονική Πολυπλοκότητα και κλάση P («εύκολα» προβλήµατα). Μη-ντετερµινιστικές µηχανές Turing και κλάση NP. Πολυωνυµική αναγωγή και NP-πληρότητα («δύσκολα» προβλήµατα) Σχέση κλάσεων P και NP. Προσεγγιστικοί αλγόριθµοι για NP-δύσκολα προβλήµατα. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 10

Βιβλιογραφία Σ. Ζάχος. Αλγόριθµοι και Πολυπλοκότητα. Σηµειώσεις ΕΜΠ. Φωτάκης. Αλγόριθµοι και Πολυπλοκότητα. Σηµειώσεις http://www.softlab.ntua.gr/~fotakis/data/algorithms.pdf Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms. MIT, 2001. Kleinberg, Tardos. Algorithm Design. Add.-Wesl., 2006. Dasgupta, Papadimitriou, Vazirani. Algorithms. ΜcGraw-Hill, 2008. J. Edmonds. How to Think About Algorithms. Cambridge, 2008. Papadimitriou. Computational Complexity. Add.-Wesl., 1994. Πολλά-πολλά άλλα βιβλία και ιστοσελίδες µαθηµάτων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Εισαγωγή 11