Skip to main content

Στόχοι Μαθήματος: Το μάθημα εισάγει τις θεμελιώδεις αρχές σχεδιασμού και ανάλυσης αλγορίθμων, εστιάζοντας τόσο στις πρακτικές τεχνικές επίλυσης υπολογιστικών προβλημάτων όσο και στις θεωρητικές βάσεις της αλγοριθμικής πολυπλοκότητας.

Μαθησιακά Αποτελέσματα: Στο τέλος του μαθήματος οι φοιτητές θα μπορούν: (α) να επιλέγουν σωστά μεταξύ διαφόρων αλγορίθμων και μεθοδολογιών αλγορίθμων για την επίλυση προγραμματιστικών προβλημάτων. (β) να σχεδιάσουν και να υλοποιήσουν νέους αλγόριθμους για την επίλυση υπολογιστικών προβλημάτων χρησιμοποιώντας διάφορες μεθοδολογίες όπως διαίρει και κυρίευε, δυναμικός προγραμματισμός και άπληστοι αλγόριθμοι. (γ) να αναλύσουν την πολυπλοκότητα αλγορίθμων και να εκτιμάται το υπολογιστικό κόστος του λογισμικού τους.

Περιεχόμενο Μαθήματος: Το μάθημα καλύπτει τα εξής θέματα: ανάλυση αλγορίθμων, ο ασυμπτωτικός συμβολισμός, οι αναδροµικές σχέσεις, οι αλγόριθμοι διαίρει και κυρίευε, ο δυναμικός προγραμματισμός, οι άπληστοι αλγόριθμοι, η αναπαράσταση γραφημάτων, η αναζήτηση σε γραφήματα, τα ελαφρύτατα συνδετικά δένδρα, οι ελαφρύτατες διαδρομές, η μέγιστη ροή δικτύων, η NP-πληρότητα, και οι προσεγγιστικοί αλγόριθμοι.