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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25. 2. Βασικά στοιχεία ανάλυσης αλγορίθμων... 57. 3. Γραφήματα..."

Transcript

1

2

3 Περιεχόμενα Σχετικά με τους συγγραφείς...3 Πρόλογος Πρόλογος της ελληνικής έκδοσης Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα Ένα πρώτο πρόβλημα: Ευσταθές Ταίριασμα Πέντε αντιπροσωπευτικά προβλήματα...37 Λυμένες ασκήσεις...45 Ασκήσεις...49 Σημειώσεις και πρόσθετα αναγνώσματα Βασικά στοιχεία ανάλυσης αλγορίθμων Υπολογιστική επιλυσιμότητα Ασυμπτωτικός ρυθμός αύξησης Υλοποίηση του αλγορίθμου Ευσταθούς Ταιριάσματος με λίστες και πίνακες Μια επισκόπηση συνηθισμένων χρόνων εκτέλεσης Μια πιο πολύπλοκη δομή: ουρές προτεραιότητας...87 Λυμένες ασκήσεις...95 Ασκήσεις...97 Σημειώσεις και πρόσθετα αναγνώσματα Γραφήματα Βασικοί ορισμοί και εφαρμογές Συνεκτικότητα γραφήματος και διάτρεξη γραφήματος Υλοποίηση διάτρεξης γραφήματος με τη χρήση ουρών και στοιβών Έλεγχος διμερότητας: Μια εφαρμογή της αναζήτησης πρώτα κατά πλάτος Συνεκτικότητα σε κατευθυνόμενα γραφήματα...129

4 6 Περιεχόμενα 3.6 Κατευθυνόμενα ακυκλικά γραφήματα και τοπολογική διάταξη Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Άπληστοι αλγόριθμοι Χρονοπρογραμματισμός διαστημάτων: Ο άπληστος αλγόριθμος υπερτερεί Χρονοπρογραμματισμός για ελαχιστοποίηση καθυστέρησης: ένα επιχείρημα ανταλλαγής Βέλτιστη κρυφή μνήμη: ένα πιο περίπλοκο επιχείρημα ανταλλαγής Συντομότερες διαδρομές σε ένα γράφημα Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου Υλοποίηση του αλγορίθμου του Kruskal: η δομή δεδομένων Union-Find Δημιουργία συστάδων Κώδικες Huffman και συμπίεση δεδομένων *4.9 Δενδροειδή ελάχιστου κόστους: Ένας άπληστος πολυφασικός αλγόριθμος Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Διαίρει και βασίλευε Μια πρώτη αναδρομή: Ο αλγόριθμος Mergesort Περαιτέρω αναδρομικές σχέσεις Μέτρηση αντιστροφών Εύρεση του πλησιέστερου ζεύγους σημείων Πολλαπλασιασμός ακεραίων Συνελίξεις και ο ταχύς μετασχηματισμός Fourier Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Δυναμικός προγραμματισμός Σταθμισμένος Χρονοπρογραμματισμος Διαστημάτων: Μια αναδρομική διαδικασία Αρχές δυναμικού προγραμματισμού Τμηματοποιημένα ελάχιστα τετράγωνα: Πολλαπλές επιλογές Αθροίσματα υποσυνόλων και σακίδια: Προσθήκη μιας μεταβλητής Δευτερεύουσα δομή RNA: Δυναμικός προγραμματισμός σε διαστήματα Ευθυγράμμιση ακολουθίας...319

5 Περιεχόμενα Ευθυγράμμιση ακολουθίας σε γραμμικό χώρο μέσω "διαίρει και βασίλευε" Συντομότερες διαδρομές σε ένα γράφημα Συντομότερες διαδρομές και πρωτόκολλα διανύσματος απόστασης *6.10 Αρνητικοί κύκλοι σε ένα γράφημα Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Ροή δικτύου Το πρόβλημα της Μέγιστης Ροής και ο αλγόριθμος Ford-Fulkerson Μέγιστες ροές και ελάχιστες αποκοπές σε ένα δίκτυο Επιλογή καλών διαδρομών επαύξησης *7.4 Ο αλγόριθμος Μέγιστης Ροής με Προροή-Προώθηση Μια πρώτη εφαρμογή: Το πρόβλημα του Διμερούς Ταιριάσματος Ασύνδετες διαδρομές σε κατευθυνόμενα και μη κατευθυνόμενα γραφήματα Επεκτάσεις στο πρόβλημα Μέγιστης Ροής Σχεδιασμός διεξαγωγής έρευνας Χρονοπρογραμματισμός αεροπορικών δρομολογίων Τμηματοποίηση εικόνας Επιλογή έργων Αποκλεισμός στο μπέιζμπολ *7.13 Μια πρόσθετη κατεύθυνση: Προσθήκη κόστους στο πρόβλημα Ταιριάσματος Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα ΝΡ και υπολογιστική δυσεπιλυσιμότητα Αναγωγές πολυωνυμικού χρόνου Αναγωγές μέσω "μικροεργαλείων": Το πρόβλημα της Ικανοποιησιμότητας Αποδοτική πιστοποίηση και ο ορισμός του ΝΡ NP-πλήρη προβλήματα Προβλήματα καθορισμού ακολουθίας Προβλήματα διαμέρισης Χρωματισμός γραφήματος Αριθμητικά προβλήματα Co-ΝΡ και η ασυμμετρία του ΝΡ Μερική κατηγοριοποίηση δύσκολων προβλημάτων...556

6 8 Περιεχόμενα Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα PSPACE: Μια κλάση προβλημάτων πέρα από το ΝΡ PSPACE Μερικά δύσκολα προβλήματα του PSPACE Επίλυση ποσοτικοποιημένων προβλημάτων και παιχνιδιών σε πολυωνυμικό χώρο Επίλυση του προβλήματος Σχεδιασμού σε πολυωνυμικό χώρο Απόδειξη προβλημάτων ότι είναι PSPACE-πλήρη Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Επέκταση των ορίων της επιλυσιμότητας Εύρεση μικρών Καλύψεων Κορυφών Επίλυση ΝΡ-δύσκολων προβλημάτων σε δένδρα Χρωματισμός ενός συνόλου κυκλικών τόξων *10.4 Δενδρική Διάσπαση Γραφημάτων *10.5 Κατασκευή μιας δενδρικής διάσπασης Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Προσεγγιστικοί αλγόριθμοι Άπληστοι αλγόριθμοι και όρια του βέλτιστου: Το πρόβλημα Εξισορρόπησης Φορτίου Το πρόβλημα της Επιλογής Κέντρων Κάλυψη Συνόλου: Μια γενική άπληστη ευρετική μέθοδος Η μέθοδος τιμολόγησης: Κάλυψη κορυφών Μεγιστοποίηση μέσω της μεθόδου τιμολόγησης Γραμμικός προγραμματισμός και στρογγυλοποίηση: Μια εφαρμογή της Κάλυψης Κορυφών *11.7 Και πάλι η Εξισορρόπηση Φορτίου: Μια πιο προηγμένη εφαρμογή ΓΠ Αυθαίρετα καλές προσεγγίσεις: Το πρόβλημα του Σακιδίου Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα...727

7 Περιεχόμενα Τοπική αναζήτηση Το τοπίο ενός προβλήματος βελτιστοποίησης Ο αλγόριθμος Metropolis και η Προσομοιωμένη Ανόπτηση Μια εφαρμογή της τοπικής αναζήτησης στα νευρωνικά δίκτυα Hopfield Προσέγγιση Μέγιστης Αποκοπής μέσω τοπικής αναζήτησης Επιλογή της σχέσης γειτνίασης *12.6 Κατηγοριοποίηση μέσω τοπικής αναζήτησης Δυναμική της καλύτερης αντίδρασης και ισορροπίες Nash Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Τυχαιοποιημένοι αλγόριθμοι Μια πρώτη εφαρμογή: Επίλυση ανταγωνισμού Εύρεση της καθολικής ελάχιστης αποκοπής Οι τυχαίες μεταβλητές και οι μέσες τιμές τους Ένας τυχαιοποιημένος προσεγγιστικός αλγόριθμος για το MAX 3-SAT Τυχαιοποιημένη μέθοδος Διαίρει και Βασίλευε: Διάμεσο στοιχείο & Quicksort Κατακερματισμός: Μια τυχαιοποιημένη υλοποίηση λεξικών Εύρεση του πλησιέστερου ζεύγους σημείων: Μια τυχαιοποιημένη προσέγγιση Τυχαιοποιημένη κρυφή μνήμη Όρια Chernoff Εξισορρόπηση φορτίου Δρομολόγηση πακέτων Υπόβαθρο: Μερικοί βασικοί ορισμοί πιθανοτήτων Λυμένες ασκήσεις Ασκήσεις Σημειώσεις και πρόσθετα αναγνώσματα Επίλογος: Αλγόριθμοι που εκτελούνται για πάντα Βιβλιογραφία Λεξικό όρων Ευρετήριο...905

8

9 4.4 Συντομότερες διαδρομές σε ένα γράφημα 171 με τον αλγόριθμο του Απώτατου Μελλοντικού Στοιχείου. Θα εξετάσουμε αυτή την ανάλυση, καθώς και την ανάλυση μιας τυχαιοποιημένης παραλλαγής της αρχής LRU, όταν θα επιστρέψουμε στο πρόβλημα της χρήσης κρυφής μνήμης στο Κεφάλαιο Συντομότερες διαδρομές σε ένα γράφημα Κάποιοι από τους βασικούς αλγορίθμους για γραφήματα βασίζονται σε αρχές άπληστου σχεδιασμού. Στην ενότητα αυτή θα εφαρμόσουμε έναν άπληστο αλγόριθμο στο πρόβλημα της εύρεσης των συντομότερων διαδρομών, ενώ στην επόμενη ενότητα θα εξετάσουμε την κατασκευή γεννητικών δένδρων ελάχιστου κόστους. Το πρόβλημα Όπως έχουμε δει, τα γραφήματα χρησιμοποιούνται συχνά για τη μοντελοποίηση δικτύων στα οποία ταξιδεύει κανείς από το ένα σημείο στο άλλο διασχίζοντας μια ακολουθία λεωφόρων μέσω κόμβων, ή διασχίζοντας μια ακολουθία συνδέσμων επικοινωνίας μέσω ενδιάμεσων δρομολογητών. Κατά συνέπεια, ένα βασικό αλγοριθμικό πρόβλημα είναι ο προσδιορισμός της συντομότερης διαδρομής μεταξύ των κόμβων ε- νός γραφήματος. Μπορεί να το θέσουμε αυτό ως ερώτηση σημείου προς σημείο: Δεδομένων των κόμβων u και v, ποια είναι η συντομότερη διαδρομή u-v; Ή μπορεί να ζητήσουμε περισσότερες πληροφορίες: Δεδομένου ενός κόμβου εκκίνησης s, ποια είναι η συντομότερη διαδρομή από τον s προς κάθε άλλο κόμβο; Η συγκεκριμένη διευθέτηση του προβλήματος συντομότερης διαδρομής είναι η εξής. Μας δίνεται ένα κατευθυνόμενο γράφημα G = (V, E), με έναν καθορισμένο κόμβο εκκίνησης s. Υποθέτουμε ότι ο s διαθέτει διαδρομή προς όλους τους κόμβους του γραφήματος G. Κάθε ακμή e έχει μήκος l e 0, το οποίο δηλώνει το χρόνο (ή την απόσταση, ή το κόστος) που απαιτείται για τη διάσχιση της ακμής e. Για μια διαδρομή P, το μήκος της P που συμβολίζεται με l(p) είναι το άθροισμα των μηκών όλων των ακμών της P. Ο σκοπός μας είναι να προσδιορίσουμε τη συντομότερη διαδρομή από τον s προς οποιονδήποτε άλλον κόμβο του γραφήματος. Θα πρέπει να αναφέρουμε ότι, αν και το πρόβλημα καθορίζεται για ένα κατευθυνόμενο γράφημα, μπορούμε να χειριστούμε την περίπτωση του μη κατευθυνόμενου γραφήματος αντικαθιστώντας απλώς κάθε μη κατευθυνόμενη ακμή e = (u, v) μήκους l e με δύο κατευθυνόμενες ακμές (u, v) και (v, u), κάθε μία μήκους l e. Σχεδιασμός του αλγορίθμου Το 1959 ο Edsger Dijkstra πρότεινε έναν πολύ απλό άπληστο αλγόριθμο για την επίλυση του προβλήματος των συντομότερων διαδρομών μίας αφετηρίας (single-source shortest-paths). Θα ξεκινήσουμε με την περιγραφή ενός αλγορίθμου ο οποίος απλώς προσδιορίζει το μήκος της συντομότερης διαδρομής από τον s προς οποιονδήποτε

10 172 Κεφάλαιο 4 Άπληστοι αλγόριθμοι άλλον κόμβο του γραφήματος. κατόπιν είναι εύκολο να παραγάγουμε και τις ίδιες τις διαδρομές. Ο αλγόριθμος διατηρεί ένα σύνολο S από κορυφές u για τις οποίες έχουμε προσδιορίσει την απόσταση της συντομότερης διαδρομής d(u) από τον κόμβο s. αυτό είναι το "εξερευνημένο" τμήμα του γραφήματος. Αρχικά S = {s} και d(s) = 0. Τώρα, για κάθε κόμβο v V S, προσδιορίζουμε τη συντομότερη διαδρομή που μπορεί να κατασκευαστεί αν διατρέξουμε μια διαδρομή μέσω του εξερευνημένου τμήματος S προς κάποιον κόμβο u S, και στη συνέχεια ακολουθήσουμε την ακμή (u, v). Με άλλα λόγια, εξετάζουμε την ποσότητα d'(v) = min e=(u, v):u S d(u) + l e. Επιλέγουμε τον κόμβο v V S για τον οποίο αυτή η ποσότητα είναι η ελάχιστη, προσθέτουμε τον v στο S, και ορίζουμε ότι το d(v) είναι η τιμή d'(v). Αλγόριθμος του Dijkstra (G, l) Έστω S το σύνολο των εξερευνημένων κόμβων For each u S, αποθηκεύουμε μια απόσταση d(u) Αρχικά S = {s} και d(s) = 0. While S V Διάλεξε έναν κόμβο v S με τουλάχιστον μία ακμή από το S για τον οποίο το d'(v) = min d(u) + l e=(u,v):u S είναι όσο το δυνατόν μικρότερο e Πρόσθεσε το v στο S και όρισε d(v) = d'(v) EndWhile Είναι εύκολο να παραγάγουμε τις διαδρομές s-u που αντιστοιχούν στις αποστάσεις τις οποίες βρίσκει ο αλγόριθμος του Dijkstra. Καθώς κάθε κόμβος v προστίθεται στο σύνολο S, καταγράφουμε απλώς την ακμή (u, v) με την οποία επιτυγχάνεται η τιμή min e=(u, v):u S d(u) + l e. Η διαδρομή P v αναπαριστάνεται έμμεσα από τις ακμές αυτές: αν (u, v) είναι η ακμή που έχουμε αποθηκεύσει για τον κόμβο v, τότε η P v είναι απλώς (αναδρομικά) η διαδρομή P u ακολουθούμενη από την ακμή (u, v). Με άλλα λόγια, για να κατασκευάσουμε την P v, ξεκινάμε απλώς από τον κόμβο v. ακολουθούμε την ακμή που έχουμε αποθηκεύσει για τον v κατά την αντίστροφη κατεύθυνση, ώστε να φτάσουμε στον κόμβο u. μετά ακολουθούμε προς την αντίστροφη κατεύθυνση την ακμή που έχουμε αποθηκεύσει για τον κόμβο u ώστε να φτάσουμε στον πρόκατοχό του, κ.ο.κ. μέχρι να φθάσουμε στον s. Σημειώστε ότι θα πρέπει να φτάσουμε τελικά στον κόμβο s, επειδή η αντίστροφη πορεία μας από τον κόμβο v επισκέπτεται συνεχώς κόμβους που έχουμε προσθέσει σε προηγούμενα βήματα στο S. Για να αποκτήσουμε μια καλύτερη αίσθηση για το τι κάνει ο αλγόριθμος, εξετάστε το στιγμιότυπο εκτέλεσής του που φαίνεται στην Εικόνα 4.7. Στο σημείο που φαίνεται στην εικόνα έχουν εκτελεστεί δύο επαναλήψεις: η πρώτη πρόσθεσε τον κόμβο u και η δεύτερη πρόσθεσε τον κόμβο v. Στην επανάληψη που πρόκειται να εκτελεστεί θα προστεθεί ο κόμβος x, επειδή επιτυγχάνει την μικρότερη απόσταση d'(x). χάρη στην ακμή (u, x) έχουμε d'(x) = d(u) + l ux = 2. Παρατηρήστε ότι η προσπάθεια να προστεθεί ο κόμβος y ή ο κόμβος z στο σύνολο S σε αυτό το σημείο θα οδηγήσει σε λανθασμένη τιμή για τις αποστάσεις των συντομότερων διαδρομών τους. τελικά, οι κόμβοι αυτοί θα προστεθούν λόγω των ακμών τους από τον κόμβο x.

11 4.4 Συντομότερες διαδρομές σε ένα γράφημα y 1 u 1 1 s 4 x 2 2 Σύνολο S: κόμβοι που έχουν ήδη v εξερευνηθεί 3 2 Εικόνα 4.7 Ένα στιγμιότυπο της εκτέλεσης του αλγορίθμου του Dijkstra. Ο επόμενος κόμβος που θα προστεθεί στο σύνολο S είναι ο x, λόγω της διαδρομής μέσω του u. Ανάλυση του αλγορίθμου Σε αυτό το παράδειγμα βλέπουμε ότι ο αλγόριθμος του Dijkstra κάνει το σωστό και αποφεύγει τις συνεχείς παγίδες: η επαύξηση του συνόλου S με λανθασμένο κόμβο μπορεί να οδηγήσει σε υπερεκτίμηση της απόστασης συντομότερης διαδρομής προς αυτόν τον κόμβο. Το ερώτημα είναι το ακόλουθο: Είναι πάντοτε αληθές ότι, όταν ο αλγόριθμος του Dijkstra προσθέτει έναν κόμβο v, παίρνουμε πραγματικά την απόσταση της συντομότερης διαδρομής προς τον v; Θα απαντήσουμε τώρα σε αυτό το ερώτημα αποδεικνύοντας την ορθότητα του αλγορίθμου, και δείχνοντας ότι οι διαδρομές P u είναι πράγματι οι συντομότερες διαδρομές. Ο αλγόριθμος του Dijkstra είναι άπληστος, με την έννοια ότι πάντοτε σχηματίζουμε τη νέα συντομότερη διαδρομή s-v που μπορούμε να δημιουργήσουμε από μια διαδρομή του S που ακολουθείται από μία μόνο ακμή. Θα αποδείξουμε την ορθότητα του αλγορίθμου αυτού χρησιμοποιώντας μια παραλλαγή του πρώτου μας στυλ ανάλυσης: θα δείξουμε ότι ο αλγόριθμος "υπερτερεί" από όλες τις άλλες λύσεις αποδεικνύοντας επαγωγικά ότι κάθε φορά που επιλέγει μία διαδρομή προς έναν κόμβο v, αυτή η διαδρομή είναι η συντομότερη από κάθε άλλη δυνατή διαδρομή προς τον κόμβο v. (4.14) Θεωρήστε το σύνολο S σε κάθε σημείο της εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s-u. Σημειώστε ότι αυτό το γεγονός αποδεικνύει αμέσως την ορθότητα του αλγορίθμου του Dijkstra, καθώς μπορούμε απλώς να το εφαρμόσουμε στο σημείο τερματισμού του αλγορίθμου, όπου το S περιλαμβάνει όλους τους κόμβους. Απόδειξη. Θα αποδείξουμε αυτήν την πρόταση με επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη, αφού τότε έχουμε S = {s} και d(s) = 0. Υποθέστε z

12 174 Κεφάλαιο 4 Άπληστοι αλγόριθμοι ότι ο ισχυρισμός ισχύει όταν S = k για κάποια τιμή k 1. αυξάνουμε τώρα το μέγεθος του S σε k + 1 με την προσθήκη του κόμβου v. Έστω ότι (u, v) είναι η τελική ακμή της διαδρομής s-v P v. Λόγω της υπόθεσης της επαγωγής, η P u είναι η συντομότερη διαδρομή s-u για οποιοδήποτε u S. Θεωρήστε τώρα κάθε άλλη διαδρομή s-v P. θέλουμε να δείξουμε ότι έχει τουλάχιστον το ίδιο μήκος με την P v. Για να φθάσει στον κόμβο v, αυτή η διαδρομή P πρέπει κάπου να αφήσει το σύνολο S. έστω ότι y είναι ο πρώτος κόμβος της P που δεν ανήκει στο S, και έστω x S ο κόμβος ακριβώς πριν από τον y. Η κατάσταση αυτή φαίνεται στην Εικόνα 4.8, και η ουσία της απόδειξης είναι πολύ απλή: η P δεν μπορεί να είναι συντομότερη από την P v επειδή έχει ήδη τουλάχιστον το ίδιο μήκος με την P v τη στιγμή που άφησε το σύνολο S. Πράγματι, στην επανάληψη k+1 ο αλγόριθμος του Dijkstra πρέπει να έχει εξετάσει την προσθήκη του κόμβου y στο σύνολο S μέσω της ακμής (x, y) και απέρριψε αυτή την επιλογή έναντι της προσθήκης του v. Αυτό σημαίνει ότι δεν υπάρχει διαδρομή από τον s στον y μέσω του x που να είναι συντομότερη από την P v. Όμως η μερική διαδρομή της P μέχρι τον κόμβο y είναι μια τέτοια διαδρομή, οπότε αυτή η μερική διαδρομή έχει τουλάχιστον το ίδιο μήκος με την P v. Επειδή τα μήκη των ακμών δεν είναι αρνητικά, η πλήρης διαδρομή P έχει τουλάχιστον το ίδιο μήκος με την P v. Εικόνα 4.8 Η συντομότερη διαδρομή P v και μία εναλλακτική s-v διαδρομή P μέσω του κόμβου y. Αυτό μας δίνει την πλήρη απόδειξη. μπορούμε να διατυπώσουμε τον ισχυρισμό της προηγούμενης παραγράφου χρησιμοποιώντας τις ακόλουθες ανισότητες. Έστω P' η μερική διαδρομή της P από τον κόμβο s στον κόμβο x. Επειδή x S, γνωρίζουμε από την υπόθεση της επαγωγής ότι η P x είναι η συντομότερη διαδρομή s-x (μήκους d(x)), οπότε l(p') l(p x ) = d(x). Έτσι η μερική διαδρομή της P από τον κόμβο y έχει μήκος l(p') + l(x, y) d(x) + l(x, y) d'(y), και η πλήρης διαδρομή P έχει τουλάχιστον το ίδιο μήκος με αυτή τη μερική διαδρομή. Τέλος, επειδή ο αλγόριθμος του Dijkstra επέλεξε τον κόμβο v σε αυτή την επανάληψη, γνωρίζουμε ότι d'(y) d'(v) = l(p v ). Ο συνδυασμός αυτών των ανισοτήτων δείχνει ότι l(p) l(p') + l(x, y) l(p v ). Ας αναφέρουμε δύο παρατηρήσεις σχετικά με τον αλγόριθμο του Dijkstra και την ανάλυσή του. Πρώτον, ο αλγόριθμος δεν βρίσκει πάντοτε τις συντομότερες διαδρομές αν κάποιες από τις ακμές μπορούν να έχουν αρνητικά μήκη. (Βλέπετε σε ποιο σημείο "χαλάει" η απόδειξη;) Πολλές εφαρμογές συντομότερης διαδρομής περιλαμβάνουν αρ-

13 4.4 Συντομότερες διαδρομές σε ένα γράφημα 175 νητικά μήκη ακμών, και σε αυτή την περίπτωση απαιτείται ένας πιο πολύπλοκος αλγόριθμος αυτός των Bellman και Ford. Θα δούμε αυτόν τον αλγόριθμο όταν θα εξετάσουμε το θέμα του δυναμικού προγραμματισμού. Η δεύτερη παρατήρηση είναι ότι ο αλγόριθμος του Dijkstra είναι, κατά μία έννοια, ακόμη απλούστερος απ' ό,τι τον περιγράψαμε εδώ. Ο αλγόριθμος του Dijkstra είναι στην πραγματικότητα μια "συνεχής" εκδοχή του αλγορίθμου αναζήτησης πρώτα κατά πλάτος για τη διάσχιση ενός γραφήματος, και το κίνητρό του είναι η ακόλουθη φυσική διαισθητική ιδέα. Υποθέστε ότι οι ακμές του γραφήματος G σχηματίζουν ένα σύστημα σωληνώσεων γεμάτων με νερό, που συνδέονται στους κόμβους. κάθε ακμή e έχει μήκος l e και σταθερή διατομή. Υποθέστε τώρα ότι πέφτει μία ακόμα σταγόνα νερού στον κόμβο s και ξεκινά ένα κύμα από τον s. Καθώς το κύμα επεκτείνεται από τον κόμβο s με σταθερή ταχύτητα, η διογκούμενη σφαίρα του μετώπου του κύματος φθάνει στους κόμβους κατά αύξουσα σειρά της απόστασής τους από τον s. Είναι εύκολο να πιστέψουμε (και ισχύει φυσικά) ότι η διαδρομή που ακολούθησε το μέτωπο του κύματος για να πάει σε κάποιον κόμβο v είναι η συντομότερη διαδρομή. Πράγματι, είναι εύκολο να δούμε ότι αυτή ακριβώς είναι η διαδρομή προς τον v που βρίσκει ο αλγόριθμος του Dijkstra, και ότι οι κόμβοι που ανακαλύπτονται από το "διογκούμενο νερό" είναι στην ίδια σειρά με αυτήν που ανακαλύπτονται από τον αλγόριθμο του Dijkstra. Υλοποίηση και χρόνος εκτέλεσης Για να ολοκληρώσουμε την ανάλυσή μας για τον αλγόριθμο του Dijkstra, θα εξετάσουμε το χρόνο εκτέλεσής του. Υπάρχουν n-1 επαναλήψεις του βρόχου While για ένα γράφημα με n κόμβους, καθώς κάθε επανάληψη προσθέτει ένα νέο κόμβο v στο S. Η επιλογή του σωστού κόμβου v με αποδοτικό τρόπο είναι ένα πιο δύσκολο ζήτημα. Η πρώτη εντύπωση είναι ότι κάθε επανάληψη θα πρέπει να εξετάσει κάθε κόμβο v S, και να διατρέξει όλες τις ακμές μεταξύ του S και του v για να προσδιορίσει την ελάχιστη ποσότητα min e=(u, v):u S d(u) + l e, έτσι ώστε να μπορεί να επιλέξει τον κόμβο v για τον οποίο αυτή η ποσότητα είναι η μικρότερη. Για ένα γράφημα με m ακμές ο υπολογισμός αυτών των ελάχιστων τιμών μπορεί να χρειαστεί O(m) χρόνο, οπότε αυτό θα οδηγήσει σε μία υλοποίηση που εκτελείται σε O(mn) χρόνο. Μπορούμε όμως να τα πάμε καλύτερα αν χρησιμοποιήσουμε τις σωστές δομές δεδομένων. Πρώτον, θα διατηρούμε ρητά τις τιμές των ελάχιστων ποσοτήτων d'(v) = min e=(u, v):u S d(u) + l e για κάθε κόμβο v V S, αντί να τις υπολογίζουμε εκ νέου σε κάθε επανάληψη. Μπορούμε να βελτιώσουμε ακόμα περισσότερο την απόδοση διατηρώντας τους κόμβους V S σε μια ουρά προτεραιότητας, με τις τιμές d'(v) ως κλειδιά τους. Οι ουρές προτεραιότητας εξετάστηκαν στο Κεφάλαιο 2. είναι δομές δεδομένων που έχουν σχεδιαστεί να διατηρούν ένα σύνολο n στοιχείων, το καθένα από τα οποία διαθέτει ένα κλειδί. Σε μια ουρά προτεραιότητας μπορούμε με αποδοτικό τρόπο να εισάγουμε στοιχεία, να διαγράφουμε στοιχεία, να αλλάζουμε το κλειδί ενός στοιχείου, και να εξάγουμε το στοιχείο με το ελάχιστο κλειδί. Θα χρειαστούμε την τρίτη και την τέταρτη από τις παραπάνω λειτουργίες: τις λειτουργίες ChangeKey και ExtractMin.

14 176 Κεφάλαιο 4 Άπληστοι αλγόριθμοι Πώς θα υλοποιήσουμε τον αλγόριθμο του Dijkstra με τη χρήση μιας ουράς προτεραιότητας; Τοποθετούμε τους κόμβους V σε μία ουρά προτεραιότητας με το d'(v) ως κλειδί για v V. Για να επιλέξουμε τον κόμβο v που θα πρέπει να προστεθεί στο σύνολο S, χρειαζόμαστε τη λειτουργία ExtractMin. Για να δείτε πώς γίνεται η ενημέρωση των κλειδιών, θεωρήστε μια επανάληψη στην οποία ο κόμβος v προστίθεται στο S, και έστω w S ένας κόμβος που παραμένει στην ουρά προτεραιότητας. Τι πρέπει να κάνουμε για να ενημερώσουμε την τιμή του d'(w); Αν το (v, w) δεν είναι ακμή, τότε δεν χρειάζεται να κάνουμε τίποτε: το σύνολο των ακμών που εξετάζονται στην ελάχιστη ποσότητα min e=(u, w):u S d(u) + l e είναι ακριβώς το ίδιο με πριν και μετά την προσθήκη του v στο S. Από την άλλη πλευρά, αν e' = (v, w) E, τότε η νέα τιμή για το κλειδί είναι min(d'(w), d(v) + l e' ). Αν d'(w) > d(v) + l e' τότε πρέπει να χρησιμοποιήσουμε τη λειτουργία ChangeKey για να μειώσουμε κατάλληλα το κλειδί του κόμβου w. Αυτή η λειτουργία ChangeKey μπορεί να συμβεί το πολύ μία φορά για κάθε ακμή, όταν το τέλος της ακμής e' προστίθεται στο S. Συνοψίζοντας, έχουμε το ακόλουθο αποτέλεσμα. (4.15) Αν χρησιμοποιήσουμε ουρά προτεραιότητας, μπορούμε να υλοποιήσουμε τον αλγόριθμο του Dijkstra για ένα γράφημα με n κόμβους και m ακμές έτσι ώστε να ε- κτελείται σε χρόνο O(m), συν το χρόνο για τις n λειτουργίες ExtractMin και τις m λειτουργίες ChangeKey. Αν χρησιμοποιήσουμε την υλοποίηση των ουρών προτεραιότητας που βασίζεται σε σωρούς, την οποία εξετάσαμε στο Κεφάλαιο 2, κάθε λειτουργία ουράς προτεραιότητας μπορεί να εκτελεστεί σε χρόνο O(log n). Έτσι ο συνολικός χρόνος για την υλοποίηση είναι O(m log n). 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου Θα εφαρμόσουμε τώρα το επιχείρημα ανταλλαγής στα πλαίσια του δεύτερου θεμελιώδους προβλήματος για γραφήματα: το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου (Minimum Spanning Tree Problem). Το πρόβλημα Υποθέστε ότι έχουμε ένα σύνολο τοποθεσιών V = {v 1, v 2,..., v n } και θέλουμε να δομήσουμε ένα δίκτυο επικοινωνιών επάνω σε αυτές. Το δίκτυο θα πρέπει να είναι συνεκτικό θα πρέπει να υπάρχει μια διαδρομή ανάμεσα σε κάθε ζευγάρι κόμβων όμως επιθυμούμε να το κατασκευάσουμε με όσο το δυνατόν μικρότερο κόστος, ικανοποιώντας πάντα την προηγούμενη απαίτηση. Για κάποια ζευγάρια (v i, v j ) μπορούμε να κατασκευάσουμε έναν άμεσο σύνδεσμο μεταξύ των v i και v j με συγκεκριμένο κόστος c (v i, v j ) > 0. Έτσι μπορούμε να αναπαραστήσουμε το σύνολο των δυνατών συνδέσμων που μπορούμε να δημιουργήσουμε χρησιμοποιώντας ένα γράφημα G = (V, E), με θετικό κόστος c e για κάθε ακμή e =

15 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου 177 (v i, v j ). Το πρόβλημα είναι να βρεθεί ένα υποσύνολο των ακμών T E έτσι ώστε το γράφημα (V, T) να είναι συνεκτικό και το συνολικό κόστος e Tc e όσο το δυνατόν μικρότερο. (Θα υποθέσουμε ότι το αρχικό γράφημα G είναι συνεκτικό. διαφορετικά δεν υπάρχει λύση.) Μια βασική παρατήρηση είναι η ακόλουθη. (4.16) Έστω T μια λύση ελάχιστου κόστους για το παραπάνω πρόβλημα σχεδιασμού δικτύου. Τότε το (V, T) είναι ένα δένδρο. Απόδειξη. Εξ ορισμού, το (V, T) πρέπει να είναι συνεκτικό. θα δείξουμε επίσης ότι δεν περιέχει κύκλους. Πράγματι, υποθέστε ότι περιείχε έναν κύκλο C, και έστω e ο- ποιαδήποτε ακμή του C. Ισχυριζόμαστε ότι το (V, T {e}) εξακολουθεί να είναι συνεκτικό, καθώς κάθε διαδρομή που προηγουμένως χρησιμοποιούσε την ακμή e μπορεί τώρα να ακολουθήσει "τη μεγάλη πορεία" μέσω του υπόλοιπου τμήματος του κύκλου C. Αυτό σημαίνει ότι το (V, T) {e} είναι επίσης έγκυρη λύση του προβλήματος και έχει μικρότερο κόστος άτοπο. Αν επιτρέψουμε σε κάποιες ακμές να έχουν μηδενικό κόστος (δηλαδή, υποθέτουμε μόνο ότι τα κόστη c e είναι μη αρνητικά), τότε η λύση στο πρόβλημα του σχεδιασμού δικτύου με ελάχιστο κόστος μπορεί να έχει πρόσθετες ακμές ακμές που έχουν κόστος 0 και που προαιρετικά θα μπορούσαν να διαγραφούν. Αλλά ακόμα και σε αυτή την περίπτωση υπάρχει πάντοτε μία λύση ελάχιστου κόστους που είναι δένδρο. Ξεκινώντας από οποιαδήποτε βέλτιστη λύση, θα μπορούσαμε να διαγράφουμε ακμές σε κύκλους μέχρι να έχουμε δένδρο. με μη αρνητικές ακμές, το κόστος δεν θα αυξανόταν στη διάρκεια αυτής της διαδικασίας. Θα ονομάζουμε ένα υποσύνολο T E γεννητικό δένδρο (spanning tree) του G αν το (V, T) είναι δένδρο. Η πρόταση (4.16) λέει ότι ο στόχος του προβλήματος σχεδιασμού δικτύου μπορεί να διατυπωθεί ως εύρεση του φθηνότερου γεννητικού δένδρου για το γράφημα. γι' αυτόν το λόγο ονομάζεται γενικά πρόβλημα του Ελάχιστου Γεννητικού Δένδρου (Minimum Spanning Tree Problem). Αν το G δεν είναι ένα πολύ απλό γράφημα, τότε θα έχει εκθετικά πολλά διαφορετικά γεννητικά δένδρα, των οποίων οι δομές μπορεί να είναι πολύ διαφορετικές η μία από την άλλη. Έτσι δεν είναι καθόλου προφανής ο αποδοτικός τρόπος εύρεσης του φθηνότερου δένδρου μεταξύ όλων αυτών των επιλογών. Σχεδιασμός αλγορίθμων Όπως και με τα προηγούμενα προβλήματα που συναντήσαμε, είναι εύκολο να βρούμε μια σειρά από φυσικούς άπληστους αλγορίθμους για το πρόβλημα. Όμως παραδόξως, και ευτυχώς, αυτή είναι η περίπτωση όπου πολλοί από τους πρώτους άπληστους αλγορίθμους που δοκιμάζει κανείς αποδεικνύονται σωστοί: καθένας από αυτούς επιλύει με βέλτιστο τρόπο το πρόβλημα. Θα εξετάσουμε τώρα μερικούς από αυτούς τους αλγορίθμους και μετά θα ανακαλύψουμε, μέσω ενός ωραίου ζεύγους επιχειρημάτων ανταλλαγής, κάποιες από τις αιτίες στις οποίες οφείλεται αυτή η πληθώρα των απλών, βέλτιστων αλγορίθμων.

16 178 Κεφάλαιο 4 Άπληστοι αλγόριθμοι Ας δούμε τρεις άπληστους αλγορίθμους, όπου και οι τρεις βρίσκουν σωστά ένα ελάχιστο γεννητικό δένδρο. Ένας απλός αλγόριθμος ξεκινά χωρίς καθόλου ακμές και δομεί ένα γεννητικό δένδρο με διαδοχική εισαγωγή ακμών από το E κατά αύξουσα σειρά κόστους. Καθώς προχωρούμε μέσω των ακμών με αυτή τη σειρά, εισάγουμε κάθε ακμή e εφόσον δεν δημιουργεί κύκλο όταν προστίθεται στις ακμές που έχουν ήδη εισαχθεί. Αν όμως η εισαγωγή της e θα οδηγούσε σε κύκλο, τότε απλώς απορρίπτουμε την e και συνεχίζουμε. Αυτή η προσέγγιση ονομάζεται αλγόριθμος του Kruskal. Ένας άλλος απλός άπληστος αλγόριθμος μπορεί να σχεδιαστεί σε αναλογία με τον αλγόριθμο του Dijkstra για διαδρομές, αν και στην πράξη είναι ακόμα πιο α- πλός στον προσδιορισμό από τον αλγόριθμο του Dijkstra. Ξεκινάμε με έναν κόμβο ρίζας s και προσπαθούμε, με άπληστο τρόπο, να δημιουργήσουμε ένα δένδρο που ξεκινά από τον s και εκτείνεται προς τα έξω. Σε κάθε βήμα προσθέτουμε α- πλώς τον κόμβο που μπορεί να προσαρτηθεί με όσο το δυνατόν μικρότερο κόστος στο μερικό δένδρο που ήδη έχουμε. Πιο συγκεκριμένα, διατηρούμε ένα σύνολο S V για το οποίο έχει ήδη κατασκευαστεί ένα γεννητικό δένδρο. Αρχικά S = {s}. Σε κάθε επανάληψη προσαυξάνουμε το S κατά έναν κόμβο, προσθέτοντας τον κόμβο v που ελαχιστοποιεί το "κόστος προσάρτησης" min e=(u, v):u S c e, και συμπεριλαμβάνοντας στο γεννητικό δένδρο την ακμή e = (u,v) που επιτυγχάνει αυτή την ελάχιστη τιμή. Αυτή η προσέγγιση ονομάζεται αλγόριθμος του Prim. Τέλος, μπορούμε να σχεδιάσουμε έναν άπληστο αλγόριθμο εκτελώντας μια "αντίστροφη" εκδοχή του αλγορίθμου του Kruskal. Συγκεκριμένα, ξεκινάμε με ολόκληρο το γράφημα (V, E) και αρχίζουμε να διαγράφουμε ακμές κατά φθίνουσα σειρά κόστους. Καθώς φθάνουμε σε κάθε ακμή e (ξεκινώντας από την πιο ακριβή), τη διαγράφουμε εφόσον αυτό δεν θα επιφέρει τη μη συνεκτικότητα του γραφήματος που έχουμε. Προς αναζήτηση καλύτερου ονόματος, αυτή η προσέγγιση γενικά ονομάζεται Αλγόριθμος Αντίστροφης Διαγραφής (Reverse-Delete Algorithm) (απ' όσα μπορούμε να γνωρίζουμε, δεν έχει πάρει το όνομα κάποιου συγκεκριμένου ατόμου). Για παράδειγμα, η Εικόνα 4.9 παρουσιάζει τις τέσσερις πρώτες ακμές που προστέθηκαν από τους αλγορίθμους των Prim και Kruskal, αντίστοιχα, σε ένα γεωμετρικό στιγμιότυπο του προβλήματος του Ελάχιστου Γεννητικού Δένδρου όπου το κόστος κάθε ακμής είναι ανάλογο της γεωμετρικής απόστασης στο επίπεδο. Το γεγονός ότι καθένας από αυτούς τους αλγορίθμους εγγυάται την παραγωγή μιας βέλτιστης λύσης υπονοεί μια "ανθεκτικότητα" στο πρόβλημα του Ελάχιστου Γεννητικού Δένδρου υπάρχουν πολλοί τρόποι για να πάρουμε την απάντηση. Στη συνέχεια θα εξερευνήσουμε τις αιτίες για τις οποίες τόσο πολλοί διαφορετικοί αλγόριθμοι παράγουν γεννητικά δένδρα ελάχιστου κόστους.

17 4.5 Το πρόβλημα του Ελάχιστου Γεννητικού Δένδρου 179 a r c d e f g b (α) h a r c d e f g b (β) Εικόνα 4.9 Παράδειγμα εκτέλεσης των αλγορίθμων Ελάχιστου Γεννητικού Δένδρου των (α) Prim και (β) Kruskal για την ίδια είσοδο. Οι 4 πρώτες ακμές που προστέθηκαν στο γεννητικό δένδρο εμφανίζονται με συνεχείς γραμμές. η επόμενη ακμή που θα προστεθεί εμφανίζεται με διακεκομμένη γραμμή. Ανάλυση των αλγορίθμων Όλοι αυτοί οι αλγόριθμοι πραγματοποιούν τη συνεχή εισαγωγή ή διαγραφή ακμών σε μία μερική λύση. Έτσι, για να τους αναλύσουμε, είναι χρήσιμο να έχουμε στη διάθεσή μας κάποια βασικά στοιχεία που να λένε πότε είναι "ασφαλές" να συμπεριλάβουμε μια ακμή στο ελάχιστο γεννητικό δένδρο, ή αντίστοιχα πότε είναι ασφαλές να απαλείψουμε μια ακμή με το σκεπτικό ότι δεν θα ήταν δυνατόν να ανήκει στο ελάχιστο γεννητικό δένδρο. Για τους σκοπούς της ανάλυσης αυτής, θα κάνουμε την απλουστευμένη υπόθεση ότι όλα τα κόστη των ακμών διαφέρουν μεταξύ τους (δηλαδή, δεν υπάρχουν δύο ίδια κόστη). Αυτή η υπόθεση κάνει ευκολότερη τη διατύπωση των προτάσεων που α- κολουθούν. στη συνέχεια της ενότητας θα δείξουμε πώς μπορεί να απαλειφθεί εύκολα αυτή η υπόθεση. Πότε είναι ασφαλές να συμπεριλαμβάνεται μια ακμή στο Ελάχιστο Γεννητικό Δένδρο; Το κρίσιμο γεγονός για την εισαγωγή μιας ακμής είναι η ακόλουθη πρόταση, την οποία θα αναφέρουμε ως Ιδιότητα Αποκοπής (Cut Property). (4.17) Υποθέστε ότι όλα τα κόστη των ακμών είναι διαφορετικά. Έστω S ένα τυχαίο υποσύνολο κόμβων που δεν είναι ούτε κενό ούτε ίσο με το V, και έστω ότι η ακμή e = (v, w) είναι η ακμή ελάχιστου κόστους με το ένα άκρο στο S και το άλλο στο V S. Τότε κάθε ελάχιστο γεννητικό δένδρο θα περιέχει την ακμή e. Απόδειξη. Έστω T ένα γεννητικό δένδρο που δεν περιέχει την e. πρέπει να δείξουμε ότι το T δεν έχει το ελάχιστο δυνατό κόστος. Θα το επιτύχουμε αυτό χρησιμοποιώντας ένα επιχείρημα ανταλλαγής: θα προσδιορίσουμε μια ακμή e' στο T που είναι πιο ακριβή από την e, και η οποία έχει την ιδιότητα ότι η ανταλλαγή της e με την e' μας δίνει h

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Ελάχιστα Γεννητικά Δένδρα Ελάχιστο Γεννητικό

Διαβάστε περισσότερα

viii 20 Δένδρα van Emde Boas 543

viii 20 Δένδρα van Emde Boas 543 Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

Διαβάστε περισσότερα

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

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #: Εύρεση Ελαχίστων Μονοπατιών σε Γραφήματα που Περιλαμβάνουν και Αρνητικά Βάρη: Αλγόριθμος

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους k πρόβλημα

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

Διαβάστε περισσότερα

Ελάχιστα Γεννητορικά ένδρα

Ελάχιστα Γεννητορικά ένδρα λάχιστα Γεννητορικά ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος του Prim και ο αλγόριθµος του Kruskal για εύρεση λάχιστων Γεννητορικών ένδρων ΠΛ 23 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

Διαβάστε περισσότερα

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Κεφάλαιο 4 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 4) 1 Θέματα

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91 Ε.Μ.Πoλυτεχνείο ΣΗΜΜΥ, ΣΕΜΦΕ Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Διδάσκων: Ε.Ζαχος Ονοματεπώνυμο:... Αριθμός Μητρώου:... Σχολή:... εξάμηνο:... ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 005 Σύνολο

Διαβάστε περισσότερα

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα Τομές Γραφήματος Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα και 12 26 20 10 9 7 17 14 4 Τομές Γραφήματος Γράφημα (μη κατευθυνόμενο)

Διαβάστε περισσότερα

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα αναζήτησης είναι ένα πρόβλημα στο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Ελαφρύτατες διαδρομές

Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Κατευθυνόμενο γράφημα Συνάρτηση βάρους Ελαφρύτατη διαδρομή από το u στο v : διαδρομή με και ελάχιστο βάρος s 3 t 7 x 5 3 y z Βάρος ελαφρύτατης διαδρομής εάν

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #7: Ελάχιστα Επικαλυπτικά Δένδρα, Αλγόριθμος Kruskal, Δομές Union-Find Άσκηση # 0 5 0 0 0

Διαβάστε περισσότερα

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Εύρεση ελάχιστων μονοπατιών Αλγόριθμος του ijkstra Θέματα μελέτης Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος

Διαβάστε περισσότερα

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

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4 ο εξάμηνο ΣΗΜΜΥ 5 η ενότητα: Γράφοι: προβλήματα και αλγόριθμοι Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων. Γραφήματα. Αναπαράσταση Γραφημάτων 3. Διερεύνηση σε Πρώτα σε Πλάτος (BFS) Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γράφημα Ορισμός: Ένα γράφημα G είναι το διατεταγμένο ζεύγος

Διαβάστε περισσότερα

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του Ταιριάσματα Γράφημα Ταίριασμα (matching) Σύνολο ακμών τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του Θέλουμε να βρούμε ένα μέγιστο ταίριασμα (δηλαδή με μέγιστο αριθμό ακμών) Ταιριάσματα

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10β: Αλγόριθμοι Γραφημάτων-Γραφήματα- Αναπαράσταση Γραφημάτων- Διερεύνηση Πρώτα σε Πλάτος (BFS) Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το

Διαβάστε περισσότερα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό

Διαβάστε περισσότερα

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

Διαβάστε περισσότερα

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 2 6 20 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 0 με τις ακόλουθες ιδιότητες 9 7 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής:

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου . Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου Σ αυτή την παράγραφο θα εξεταστεί μια παραλλαγή του προβλήματος της συντομότερης διαδρομής, το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου. Σ αυτό το πρόβλημα

Διαβάστε περισσότερα

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες...

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών... 37 3.1 Αριθμητικά σύνολα... 37 3.2 Ιδιότητες... 37 3.3 Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος... 5 Κεφάλαιο Βασικές αριθμητικές πράξεις... 5. Τέσσερις πράξεις... 5. Σύστημα πραγματικών αριθμών... 5. Γραφική αναπαράσταση πραγματικών αριθμών... 6.4 Οι ιδιότητες της πρόσθεσης

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 2:Στοιχεία Μαθηματικής Λογικής Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα Ασκήσεις στους Γράφους 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα Ασκηση 1 η Να αποδείξετε ότι κάθε γράφημα περιέχει μια διαδρομή από μια κορυφή u σε μια κορυφή w αν και

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 / Απληστοι (Greedy) Αλγόριθµοι

Διαβάστε περισσότερα

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Διάλεξη 2: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Βραχύτερα Μονοπάτια σε γράφους - Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης

Διαβάστε περισσότερα

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος 2009. Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος 2009. Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας. ΠΡΟΛΟΓΟΣ Το βιβλίο «Δικτυακή Βελτιστοποίηση» γράφτηκε με κύριο στόχο να καλύψει τις ανάγκες της διδασκαλίας του μαθήματος «Δικτυακός Προγραμματισμός», που διδάσκεται στο Τμήμα Εφαρμοσμένης Πληροφορικής,

Διαβάστε περισσότερα

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

Διαβάστε περισσότερα

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ...

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ... ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ Ορισμός : Μία ακολουθία ονομάζεται αριθμητική πρόοδος, όταν ο κάθε όρος της, δημιουργείται από τον προηγούμενο με πρόσθεση του ίδιου πάντοτε αριθμού. Ο σταθερός αριθμός που προστίθεται

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012) ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Σημειώσεις Ανάλυσης Ι (ανανεωμένο στις 5 Δεκεμβρίου 2012) Τμήμα Θ. Αποστολάτου & Π. Ιωάννου 1 Σειρές O Ζήνων ο Ελεάτης (490-430 π.χ.) στη προσπάθειά του να υποστηρίξει

Διαβάστε περισσότερα

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος των BellmanFord Ο αλγόριθµος του Dijkstra ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 61

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G,k η G είναι μια ασυμφραστική γραμματική η οποία παράγει κάποια λέξη 1 n όπου n k } (β) { Μ,k η Μ είναι

Διαβάστε περισσότερα

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Bellman Ford Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

Διαβάστε περισσότερα

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 2 ΠΡΟΒΛΗΜΑΤΑ ΔΙΚΤΥΩΝ ΚΑΙ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΙ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΓΡΑΦΗΜΑΤΩΝ... 2 1.1.1 Ορισμός και ιδιότητες γραφημάτων... 2 1.1.2 Δέντρα... 7 1.2 ΑΠΟΘΗΚΕΥΣΗ ΓΡΑΦΩΝ ΚΑΙ ΔΙΚΤΥΩΝ... 11 1.2.1 Μήτρα πρόσπτωσης κόμβων τόξων...

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

Διαβάστε περισσότερα

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες...

Περιεχόμενα. Κεφάλαιο 3 Οι ιδιότητες των αριθμών Αριθμητικά σύνολα Ιδιότητες Περισσότερες ιδιότητες... Περιεχόμενα Πρόλογος 5 Κεφάλαιο Βασικές αριθμητικές πράξεις 5 Τέσσερις πράξεις 5 Σύστημα πραγματικών αριθμών 5 Γραφική αναπαράσταση πραγματικών αριθμών 6 Οι ιδιότητες της πρόσθεσης και του πολλαπλασιασμού

Διαβάστε περισσότερα

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

Διαβάστε περισσότερα

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων ημήτρης Φωτάκης ιακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 4 η Εργασία: Γενική Εικόνα Αντίστοιχη βαθμολογικά και ποιοτικά με την

Διαβάστε περισσότερα

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

Κλάσεις Πολυπλοκότητας Κλάσεις Πολυπλοκότητας Παύλος Εφραιμίδης pefraimi ee.duth.gr Κλάσεις Πολυπλοκότητας 1 Οι κλάσεις πολυπλοκότητας P και NP P: Polynomial ΗκλάσηP περιλαμβάνει όλα τα υπολογιστικά προβλήματα που μπορούν

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.

Διαβάστε περισσότερα

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Γενικά Σχόλια (1) 2 Για το τελικό διαγώνισμα θα χρειαστείτε: Φοιτητική

Διαβάστε περισσότερα

max c 1 x 1 + c 2 x c n x n υπό a 11 x 1 + a 12 x a 1n x n b 1 a 21 x 1 + a 22 x a 2n x n b 2 a m1 x 1 + a m2 x a mn x n b m

max c 1 x 1 + c 2 x c n x n υπό a 11 x 1 + a 12 x a 1n x n b 1 a 21 x 1 + a 22 x a 2n x n b 2 a m1 x 1 + a m2 x a mn x n b m Υπολογιστικές Μέθοδοι στη Θεωρία Αποφάσεων Ενότητα 10 Εισαγωγή στον Ακέραιο Προγραμματισμό Αντώνης Οικονόμου Τμήμα Μαθηματικών Πανεπιστήμιο Αθηνών Προπτυχιακό πρόγραμμα σπουδών 29 Φεβρουαρίου 2016 Προβλήματα

Διαβάστε περισσότερα

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 8. Πότε το γινόμενο δύο ή περισσοτέρων αριθμών παραγόντων είναι ίσο με το μηδέν ;

ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 8. Πότε το γινόμενο δύο ή περισσοτέρων αριθμών παραγόντων είναι ίσο με το μηδέν ; ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ ο : ( ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ) ΠΑΡΑΤΗΡΗΣΗ : Το κεφάλαιο αυτό περιέχει πολλά θέματα που είναι επανάληψη εννοιών που διδάχθηκαν στο Γυμνάσιο γι αυτό σ αυτές δεν θα επεκταθώ αναλυτικά

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος,

Διαβάστε περισσότερα

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Στοιχεία Θεωρίας Γράφων (Graph Theory) Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr, Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση,

Διαβάστε περισσότερα

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

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ 3 η Διάλεξη Μονοπάτια και Κύκλοι Μήκη και αποστάσεις Κέντρο και μέσο γράφου. Ακτίνα και Διάμετρος Δυνάμεις Γραφημάτων Γράφοι Euler.

Διαβάστε περισσότερα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 2: Γραφήματα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 4η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Ευσταθές Ταίριασμα Πρόβλημα Ευσταθούς Ταιριάσματος

Διαβάστε περισσότερα

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι Πρόλογος Το εφαλτήριο για τη συγγραφή αυτού του βιβλίου ήταν η πολύχρονη εμπειρία μου στη διδασκαλία του μαθήματος «Αλγόριθμοι και Δομές Δεδομένων» (κωδ. ECE 250) το οποίο εντάσσεται στο πρόγραμμα σπουδών

Διαβάστε περισσότερα

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΛΧ1004 Μαθηματικά για Οικονομολόγους

ΛΧ1004 Μαθηματικά για Οικονομολόγους ΛΧ1004 Μαθηματικά για Οικονομολόγους Μάθημα 1 ου Εξαμήνου 2Θ+2Φ(ΑΠ) Ι. Δημοτίκαλης, Επίκουρος Καθηγητής 1 ΤΕΙ ΚΡΗΤΗΣ-ΤΜΗΜΑ Λ&Χ: jdim@staff.teicrete.gr ΠΡΟΤΕΙΝΟΜΕΝΟ ΒΙΒΛΙΟ ΕΦΑΡΜΟΓΕΣ ΜΑΘΗΜΑΤΙΚΟΥ ΛΟΓΙΣΜΟΥ

Διαβάστε περισσότερα

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής Αλγόριθμος (algorithm) λέγεται μία πεπερασμένη διαδικασία καλά ορισμένων βημάτων που ακολουθείται για τη λύση ενός προβλήματος. Το διάγραμμα ροής

Διαβάστε περισσότερα

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8 ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ Άλγεβρα 1 ο Κεφάλαιο 1. Τι ονομάζουμε αριθμητική και τι αλγεβρική παράσταση; Να δώσετε από ένα παράδειγμα. Μια παράσταση που περιέχει πράξεις με αριθμούς, καλείται αριθμητική παράσταση,

Διαβάστε περισσότερα

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

Διαβάστε περισσότερα

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα Σχετίζεται με τη διαχείριση της κίνησης οχημάτων στους δρόμους Αν δεν υπήρχαν καθυστερήσεις στην κίνηση στις πόλεις Αποφυγή σπατάλης ενέργειας

Διαβάστε περισσότερα

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

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Ενότητα 8η Εισαγωγή στους Αλγορίθμους Ενότητα 8η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άπληστοι Αλγόριθμοι Χρονοπρογραμματισμός

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ ΓΡΑΦΙΚΑ Γέμισμα ΑΛΓΟΡΙΘΜΟΙ ΓΕΜΙΣΜΑΤΟΣ Για τις πλεγματικές οθόνες υπάρχουν: Αλγόριθμοι γεμίσματος:, που στηρίζονται στη συνάφεια των pixels του εσωτερικού ενός πολυγώνου Αλγόριθμοι σάρωσης: που στηρίζονται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Δρομολόγηση Και Πολύχρωματισμός Μονοπατιών Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Εισαγωγή. Το πρόβλημα με το οποίο θα ασχοληθούμε εδώ είναι γνωστό σαν: Δρομολόγηση και Πολύ-χρωματισμός Διαδρομών (Routing

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μη Ασυμφραστικές Γλώσσες (2.3) Λήμμα Άντλησης για Ασυμφραστικές Γλώσσες Παραδείγματα

Διαβάστε περισσότερα