Αλγόριθμοι Δρομολόγησης. Γ. Κορμέντζας

Σχετικά έγγραφα
Αλγόριθμοι Δρομολόγησης. Γ. Κορμέντζας

ΘΕΜΑ 1: Αλγόριθμος Ford-Fulkerson

Επίλυση 1 ης Εργασίας. Παραδόθηκαν: 11/12 15%

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

Κατανεμημένα Συστήματα Ι

Δρομολόγηση (Routing)

Προβλήματα Ελάχιστου Κόστους Ροής σε Δίκτυο. Δίκτυα Ροής Ελάχιστου Κόστους (Minimum Cost Flow Networks)

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

4. ΔΙΚΤΥΑ

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

Δροµολόγηση (Routing)

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

Επιχειρησιακή Έρευνα I

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

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

Μέθοδοι Βελτιστοποίησης

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

Κατανεμημένα Συστήματα Ι

Θέμα 1: Robbie και Αναζήτηση

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

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

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

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

Κατανεμημένα Συστήματα Ι

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Συγκοινωνιακός Σχεδιασµός κόµβος Σχήµα.. Αναπαράσταση σε χάρτη του οδικού δικτύου µιας περιοχής... Μέθοδοι καταµερισµού των µετακινήσεων.. Εύρεση βέλτ

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

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

m 1 min f = x ij 0 (8.4) b j (8.5) a i = 1

... Αν ν = 16 εγκαταλείπει τις προσπάθειες μετάδοσης του πακέτου. Τοπολογία Διαύλου (BUS).

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

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

3η Σειρά Γραπτών Ασκήσεων

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

7.9 ροµολόγηση. Ερωτήσεις

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Οπτικά Δίκτυα. Εγκατάσταση Οπτικών Διαδρομών (Lightpath Setup) και δρομολόγηση

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

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

Αναζήτηση Κατά Πλάτος

ΔΙΚΤΥΑ Η/Υ ΙΙ. Αρχές δρομολόγησης

ΔΙΚΤΥΑ (13) Π. Φουληράς

Ενδεικτικές Ερωτήσεις Θεωρίας

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

Μέγιστη Ροή Ελάχιστη Τομή

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Αναζήτηση Κατά Πλάτος

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

Γράφοι: κατευθυνόμενοι και μη

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

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

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

Προσφορά Τροποποιηµένος πίνακας, όπου προσφορά ίση µε τη ζήτηση µε την προσθήκη εικονικού προορισµού *

ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ: Δίκτυα Μεταγωγής & Τεχνικές Μεταγωγής Σε Δίκτυα Ευρείας Περιοχής

Αναζήτηση Κατά Πλάτος

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Αναζήτηση Κατά Πλάτος

Μέγιστη Ροή Ελάχιστη Τομή

3η Σειρά Γραπτών Ασκήσεων

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση

1 Διάσχιση κατευθυνόμενων γραφημάτων

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β. Διάρθρωση. Αναγκαιότητα της διευθυνσιοδότησης. Ευάγγελος Παπαπέτρου

3.6 Δρομολόγηση 1 22 /

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

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

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Πρόβλημα μέγιστης ροής - Maximum flow problem. Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Υλοποίηση τεχνικών για την αποφυγή συμφόρησης σε τοπικά ασύρματα δίκτυα αισθητήρων

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δίκτυα Υπολογιστών I

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

u v 4 w G 2 G 1 u v w x y z 4

«Πρόβλημα μέγιστης ροής» Maximum flow problem. Κηρυττόπουλος Κωνσταντίνος PhD, Dipl. Eng., PMP

Σχεδίαση Δικτύων Υπολογιστών

Δίκτυα Η/Υ ΙΙ. Λύσεις θεμάτων Πανελληνίων εξετάσεων Σαλαβασίδης Κ. Πέτρος

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εγγυημένη ποιότητα υπηρεσίας

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Transcript:

Αλγόριθμοι Δρομολόγησης Γ. Κορμέντζας

Δρομολόγηση Περιεχόμενα Διαδικασίες δρομολόγησης Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Βασικοί Αλγόριθμοι Γράφων Σχεδιασμός γραμμών πολλαπλών σημείων Ελάχιστα δέντρα επικάλυψης με περιορισμούς 2

Στόχος Δρομολόγηση Λήψη απόφασης για τον τρόπο μεταφοράς απαιτήσεων κυκλοφορίας στο δίκτυο Υπάρχουν περισσότερα από ένα μονοπάτια για την εξυπηρέτηση της ανάγκης Υπάρχει πληροφορία για: Tοπολογία Χωρητικότητες κόμβων Κόστη γραμμών μετάδοσης Καθυστέρηση, απώλεια, κοκ Επιλογή με βάση κριτήρια απόδοσης 3

Δρομολόγηση Διαδικασίες Δρομολόγησης Πλημμύρα flooding Κάθε κόμβος στέλνει αντίγραφο πακέτου που έλαβε σε όλους τους γείτονες Δεν είναι ανάγκη ο κόμβος να γνωρίζει την τοπολογία δικτύου Περιορισμός αέναης κυκλοφορίας του ίδιου πακέτου στο δίκτυο Time-to-live (χρόνος ζωής μετρητής βημάτων). Καταγραφή του αριθμού του πακέτου που έχει ληφθεί. Πλεονεκτήματα Όχι ανάγκη αλλαγής πληροφοριών κατάστασης. Απλότητα και ταχύτητα. Μειονέκτημα Διπλότυπα πακέτα σπατάλη πόρων. 4

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

Διαδικασίες Δρομολόγησης Δρομολόγηση Στατική δρομολόγηση συντομότερου μονοπατιού Κάθε ζεύξη και κόμβος χαρακτηρίζονται από μήκος ή κόστος Συνήθως αναλλοίωτα στο χρόνο Για ανάθεση ετικέτας κόστους (D j ) στον κόμβο j από τον i υπολογίζεται η D j = D i + L i + L ij D i : μήκος μονοπατιού μέχρι κόμβο i L i : κόστος κόμβου i L ij : μήκος ζεύξης από i σε j Αν όλες οι ζεύξεις έχουν τιμή κόστους 1, τότε δρομολόγηση ελάχιστων βημάτων Αν οι ζεύξεις έχουν τιμή κόστους, τότε δρομολόγηση ελάχιστου κόστους 6

Δρομολόγηση Διαδικασίες Δρομολόγησης Προσαρμοστική δρομολόγηση Αντιμετώπιση συμφόρησης και βλαβών Το κόστος (μήκος) ζεύξεων και κόμβων αυξάνει με τον κορεσμό Διάχυση πληροφορίας συμφόρησης πολλές φορές αδύνατη Η προσαρμοστική δρομολόγηση κατευθύνει κίνηση εκτός των κορεσμένων μονοπατιών. Αν η εικόνα που συντηρούν οι κόμβοι δικτύου είναι παρωχημένη τότε μη αποτελεσματική δρομολόγηση Ταλάντωση συμφόρησης Διαμόρφωση βρόχων Κατάρρευση δικτύου 7

Δρομολόγηση Διαδικασίες Δρομολόγησης Κατανεμημένη δρομολόγηση Προσαρμοστική δρομολόγηση που υλοποιείται κατανεμημένα Κάθε κόμβος αποφασίζει για τη ζεύξη στην οποία θα προωθήσει το μήνυμα next hop Η διαδικασία επαναλαμβάνεται από όλους τους κόμβους μέχρι το μήνυμα να φθάσει στον προορισμό Απαιτεί συντονισμό μεταξύ κόμβων, εισάγει καθυστερήσεις, και επιβαρύνσεις στους κόμβους 8

Δρομολόγηση Κατανεμημένη δρομολόγηση - Διαδικασία Κάθε κόμβος ενημερώνει πίνακα αποστάσεων (κόστους) προς κάθε κατεύθυνση (δηλ. προς όλους του άλλους κόμβους) του δικτύου (1 η στήλη), μέσω κάθε κλάδου με τον οποίο είναι συνδεδεσμένος (1 η γραμμή). Αρχικά γνωρίζει το κόστος των κλάδων με τους οποίους είναι συνδεδεσμένος. Ο κόμβος Β δημιουργεί τον ακόλουθο πίνακα αποστάσεων προς τις κατευθύνσεις Α, Γ, Δ, (1 η στήλη) μέσω των γειτονικών κόμβων (με τους οποίους είναι συνδεδεμένος) Α, Γ (1 η γραμμή). Αρχικά γνωρίζει τα στοιχεία: (Α,Α)=4 και (Γ,Γ)=1. (Στα υπόλοιπα θέτει ) κ α τ ε ύ θ υ ν σ η μέσω Β Α Γ Α 4 Γ 6 Δ Παράδειγμα 9

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

Δρομολόγηση Κατανεμημένη δρομολόγηση - Παράδειγμα Α Β Γ Δ Α Β Γ Δ Β 4 Γ 1 Δ 2 Β Α Γ Β Α Γ Α 4 Γ 6 Δ Α 4 7 Γ 5 6 Δ 6 7 Β 4 6 8 Γ 9 1 3 Δ 10 2 2 Γ Α Β Δ Γ Α Β Δ Α 1 Β 6 Δ 1 Α Δρομολόγηση Β Β,4 Γ Γ,1 Δ Δ,2 Β Δρομολόγηση Α Α,4 Γ Γ,5 Δ Α,6 Α 1 10 3 Β 5 6 7 Δ 3 12 1 Δ Α Γ Δ Α Γ Α 2 Β Γ 1 Γ Δρομολόγηση Α Α,1 Β Α,5 Δ Δ,1 Α 2 2 Β 6 6 Γ 3 1 Δ Δρομολόγηση Α Α,2 Β Α,6 Γ Γ,1 11

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Ροές Δικτύων Διατύπωση του προβλήματος Να προσδιορισθούν οι ροές f ij από τον κόμβο i (αφετηρία s) στον κόμβο j (προορισμός d), που ικανοποιούν τους περιορισμούς του δικτύου: Συνολική εξερχόμενη ροή Απαίτηση μεταφοράς Συνολική εισερχόμενη ροή Απαίτηση μεταφοράς Συνθήκη συντήρησης ροής Επίλυση του προβλήματος: Αλγόριθμος Ford-Fulkerson 12

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Προσδιορίζει την μέγιστη ροή από τον κόμβο αφετηρία s προς τον κόμβο προορισμού d. Συγκεκριμένα, προσδιορίζει μονοπάτια s-d (από αφετηρία σε προορισμό) και στέλνει μέσω αυτών όση περισσότερη ροή γίνεται χωρίς να υπερβαίνει τους περιορισμούς της χωρητικότητας. Θεώρημα Μέγιστης Ροής - Ελάχιστης Τομής (max flow - minimum cut) των Ford-Fulkerson: Η μέγιστη ροή S-D (από την αφετηρία προς τον προορισμό) είναι ακριβώς ίση με τη χωρητικότητα της ελάχιστης τομής του δικτύου μεταξύ S-D. 13

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Ο αλγόριθμος έχει δύο τμήματα: Ρουτίνα Α και Β Η Α αναθέτει ετικέτες και ερευνά για μονοπάτι επαύξησης ροής από αφετηρία s σε προορισμό d για το οποίο ισχύει f < c για όλες τις ακμές προς τον προορισμό (forward arcs) και f > 0 σε όλες τις ακμές αντίθετης κατεύθυνσης (backward arcs) Εάν η ρουτίνα A εντοπίσει μονοπάτι επαύξησης ροής, η Ρουτίνα Β μεταβάλλει τη ροή αντίστοιχα. Διαφορετικά η τρέχουσα ροή είναι βέλτιστη Αρχικά επιλέγεται εφικτή ροή (π.χ., f=0). Ένας κόμβος βρίσκεται σε μία από τρεις καταστάσεις: χωρίς ετικέτα, ελεγμένος με ετικέτα, μη- ελεγμένος με ετικέτα. Αρχικά όλοι οι κόμβοι είναι χωρίς ετικέτα 14

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson: Ρουτίνα Α Αρχικά η αφετηρία παίρνει την ετικέτα (-,ε(s)= ). Γενικό βήμα: Επιλογή κόμβου x μη-ελεγμένο με ετικέτα. Η ετικέτα του είναι η (z±,ε(x)). Σε όλους τους διάδοχους κόμβους (χωρίς ετικέτα), y, όπου ισχύει η συνθήκη f(x, y) < c(x, y), ανατίθενται οι ετικέτες (x+, ε(y)) όπου: ε(y) = min(ε(x), c(x, y) - f(x, y)) Οι κόμβοι αυτοί θεωρούνται με ετικέτα και μη ελεγμένοι. Για όλους τους πρόδρομους κόμβους (χωρίς ετικέτα), y, όπου ισχύει f(y, x) > 0, ανατίθενται οι ετικέτες (x-, ε(y)), όπου: ε(y) = min(ε(x), f(y, x)) Οι κόμβοι y θεωρούνται πλέον με ετικέτα και μη ελεγμένοι. Πλέον ο κόμβος x θεωρείται με ετικέτα και ελεγμένος. Το γενικό βήμα επαναλαμβάνεται μέχρι να ανατεθεί ετικέτα στον προορισμό και να είναι μη-ελεγμένος ή να μην είναι δυνατόν να εκχωρηθούν νέες ετικέτες. 15

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson: Ρουτίνα Β (αλλαγής ροής) Ο προορισμός έχει λάβει την ετικέτα (y±, ε(t)). Εάν το πρώτο σκέλος της ετικέτας είναι y+, η τιμή f(y,t) αντικαθίσταται με την τιμή f(y,t)+ε(t) διαφορετικά η τιμή f(t,y) αντικαθίσταται με την τιμή f(t,y)-ε(t). Στη συνέχεια, ο κόμβος y θα αντιμετωπιστεί με τον ίδιο τρόπο: εάν η ετικέτα του είναι (x+, ε(y)) η τιμή f(x, y) αντικαθίσταται με την f(x, y) + ε(t). Εάν η ετικέτα είναι (x-, ε(y)) η τιμή f(y, x) αντικαθίσταται με την f(y, x) - ε(t). Και στις δύο περιπτώσεις, θα συνεχιστεί η εκτέλεση του αλγορίθμου στον κόμβο x και μέχρι να φτάσει στην αφετηρία. Τότε θα πρέπει να απορριφθούν όλες οι ετικέτες και να ενεργοποιηθεί η ρουτίνα Α. 16

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Παράδειγμα χ χωρητικότητα (c(x,y)=3) καθώς και ροή (f(x,y)=0) Η αρχική ροή στέλνει μία μονάδα ροής από το μονοπάτι (s, x, y, t). 17

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Παράδειγμα χ χ Η πρώτη εκτέλεση της Ρουτίνας Α προσδιορίζει ένα μονοπάτι επαύξησης ροής με τις ετικέτες που φαίνονται στο σχήμα Μετά το 2 ο βήμα της Α 18

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Παράδειγμα χ εκτελείται η Ρουτίνα Β, προσδιορίζοντας εκ νέου τις ροές χ Μετά το 3 ο βήμα της Α Ρουτίνα Β - Προσδιορισμός ροών 19

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Παράδειγμα χ Στο σχήμα φαίνεται ότι η ροή μπορεί να αυξηθεί κατά μία μονάδα (=ε(t)) κατά μήκος του επαυξητικού μονοπατιού (s, (y, x), t). Εκτελείται και πάλι η Ρουτίνα Α δίνοντας τις ετικέτες που φαίνονται στο Σχήμα. 20

Ροές Δικτύων - Αλγόριθμος Ford-Fulkerson Αλγόριθμος Ford-Fulkerson Παράδειγμα Κατά την εφαρμογή του αλγορίθμου αντίστροφα, από τον προορισμό, το μονοπάτι διασχίζει την ακμή (x, t), οπότε η ροή του αυξάνεται κατά 1 (η ποσότητα f(x,t) γίνεται 2). Η επικεφαλίδα στο κόμβο x υποδεικνύει τη διάσχιση της ακμής (x,y) με κατεύθυνση προς τα πίσω, οπότε η ροή της μειώνεται κατά 1 (η ποσότητα f(x,y) γίνεται 0). Στην συνέχεια, η ετικέτα του κόμβου y, μας υποδεικνύει ότι το μονοπάτι επαύξησης ροής διασχίζει την ακμή (s,y) με κατεύθυνση προς τα εμπρός, οπότε η ροή του αυξάνεται κατά 1 (η ποσότητα f(s,y) γίνεται 2). Εφόσον, ο αλγόριθμος έφτασε στην αφετηρία, τερματίζεται η εκτέλεση της Ρουτίνας Β και εκτελείται πάλι η Ρουτίνα Α, όπου δεν εντοπίζεται μονοπάτι επαύξησης ροής και ο αλγόριθμος τερματίζεται. χ 21

Αλγόριθμος Ford-Fulkerson

Demo https://www.youtube.com/watch?v=tl90tntk vxs

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Δέντρων σε Γράφους Πώς εντοπίζω δένδρα σε ένα γράφο; Γιατί πρέπει να εντοπίσω δένδρα; Αποτελούν ελάχιστες (minimal) μορφές δικτύων Παρέχουν συνδεσιμότητα χωρίς πλεονάζοντες συνδέσμους Παρέχοντας ένα και μοναδικό μονοπάτι μεταξύ κάθε ζεύγους κόμβων, εξαλείφουν την ανάγκη δρομολόγησης Ο σχεδιασμός ενός δικτύου, σχεδόν πάντα, ξεκινάει με ένα δέντρο 31

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Δέντρων σε Γράφους Μέθοδοι διάσχισης: Δοθέντος ενός δέντρου είναι συχνά αναγκαία η επίσκεψη όλων των κόμβων του αναζήτηση με προτεραιότητα πλάτους (Breadth First Search). επισκέπτεται πρώτα τους κόμβους που βρίσκονται κοντά στη ρίζα αναζήτηση με προτεραιότητα βάθους (Depth First Search) η σειρά επίσκεψης είναι η ακόλουθη: A, B, E, F, I, J, K, L, C, D, G, H 32

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Άπληστος Αλγόριθμος: σε κάθε βήμα του επιλέγουμε την ακμή με το μικρότερο μήκος Μυωπικός Αλγόριθμοι Prim και Kruskal Αλγόριθμος Kruskal ταξινομεί τις ακμές του γράφου σύμφωνα με το βάρος τους επιλέγει αυτήν με το μικρότερο βάρος συμπεριλαμβάνει τις ακμές που δεν έχουν ήδη επιλεγεί και δεν διαμορφώνουν κύκλο με τις υπόλοιπες ακμές του ελάχιστου δέντρου επικάλυψης 33

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Αλγόριθμος Kruskal 1. Αρχικά ορίζει ένα κενό σύνολο ακμών T 2. Ορίζει ένα σύνολο συστατικών C (ένα δάσος από δέντρα) 3. Εξετάζει όλες τις ακμές στο σύνολο των ακμών του γράφου (E) ταξινομώντας αυτές σύμφωνα με το βάρος τους δηλαδή η ακμή με το μικρότερο βάρος πρώτη 4. Εάν μία ακμή συνδέει δύο ασύνδετα συστατικά του C, τότε προστίθεται στο Τ. Εάν μία ακμή δεν συνδέει δύο ασύνδετα συστατικά του C τότε απορρίπτεται. 5. Τα βήματα 3 και 4 επαναλαμβάνονται μέχρι το C να περιέχει μόνο ένα συστατικό 34

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Αλγόριθμος Kruskal 3ο βήμα, ταξινόμηση των ακμών σύμφωνα με το βάρος Ακμή Βάρος (1,2) 1 (2,3) 2 (4,5) 3 (6,7) 3 (1,4) 4 (2,5) 4 (4,7) 4 (3,5) 5 (2,4) 6 (3,6) 6 (5,7) 7 (5,6) 8 35

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Αλγόριθμος Kruskal 4ο βήμα, στο Τ προστίθενται οι ακμές χαμηλότερου βάρους οι οποίες όμως δεν προκαλούν την εμφάνιση κυκλώματος. Με επανάληψη Το δέντρο Τ διαμορφώνεται όπως φαίνεται δίπλα με τη σειρά προσθήκης ακμών. (1,2) (2,3) (4,5) (6,7) (1,4) (4,7) 36

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Αλγόριθμος Prim: ξεκινάει από μία κορυφή και αναπτύσσει το υπόλοιπο του δέντρου με την προσθήκη μίας ακμής σε κάθε βήμα Διαμορφώνει ένα δέντρο με μοναδική κορυφή επιλέγεται τυχαία από τον γράφο. Δημιουργεί ένα σύνολο που περιέχει όλες τις ακμές του γράφου Επαναλαμβάνει (loop) τις παρακάτω ενέργειες όσο υπάρχουν κορυφές εκτός δέντρου ή η κάθε ακμή στο άνω σύνολο να συνδέει δύο ακμές του δέντρου Αφαίρεση μίας ακμής ελαχίστου κόστους από το σύνολο η οποία συνδέει μία κορυφή του δέντρου με μία κορυφή εκτός δέντρου. Προσθήκη της ακμής (και της κορυφής) στο δέντρο 37

Βασικοί Αλγόριθμοι Γράφων Εντοπισμός Ελάχιστων Δέντρων σε Γράφους Σύγκριση Prim vs Kruskal: Ο Kruskal θα επέλεγε την (A, C), την (B, D), την (C, E), θα απέρριπτε την (A, E) επειδή οδηγούσε σε κύκλο με την (A, C) και την (C, E) που έχουν ήδη επιλεγεί, θα επέλεγε την (A, B) και στη συνέχεια θα σταματούσε γιατί είχε ολοκληρώσει τον υπολογισμό ενός πλήρους ελάχιστου δέντρου επικάλυψης O Prim, αν ξεκινούσε από τον κόμβο Α, θα τον θεωρούσε κόμβο του δέντρου, και στη συνέχεια θα συμπεριλάμβανε τους C, E, B και D ο Prim επιστρέφει το ίδιο δέντρο με τον Kruskal οι ακμές επιλέγονται με διαφορετική σειρά. 38

Σχεδιασμός γραμμών πολλαπλών σημείων Πρόβλημα Σύνδεση ομάδας τερματικών με το κέντρο μιας δικτυακής αρχιτεκτονικής. Ελάχιστα Δέντρα Επικάλυψης υπό Περιορισμούς Πρόβλημα ΕΔΕ με περιορισμό στο μέγεθος των υπο-δέντρων Constrained Minimum Spanning Tree CMST Μπορεί να χρησιμοποιηθεί τροποποιημένος Kruskal Είναι άπληστος αλγόριθμος Ανήκει στην οικογένεια αλγορίθμων καλύτερης ακμής Επιλέγει την καλύτερη εφικτή ακμή και συνδέει μέσω αυτής τα συστατικά του γράφου 39

Σχεδιασμός γραμμών πολλαπλών σημείων Ελάχιστα δέντρα επικάλυψης υπό περιορισμούς Kruskal Ακμές κατά αύξουσα σειρά κόστους Προτεραιότητες επιλογής ακμών ίδιου κόστους (0,1,2...) Βάρος κάθε κόμβου = 1, μέγιστο βάρος W max =3 Επιλέγονται οι ακμές (1, 3), (1, 2) και (0, 1), με αυτή τη σειρά (αποτελούν τμήμα του MST) Οι ακμές (2, 4) και (3, 5) (θα ολοκλήρωναν το MST) απορρίπτονται λόγω W max =3 O γράφος ολοκληρώνεται με τις (4, 5) και (4, 0). Συνολικό κόστος δικτύου 41 Υπάρχουν δέντρα χαμηλότερου κόστους Π.χ. [(0, 1), (1, 3), (0, 2), (2, 4), (4, 5)] με κόστος 36. 40

Σχεδιασμός Γραμμών Πολλαπλών Σημείων Σύνοψη Ελάχιστα Δέντρα Επικάλυψης με Περιορισμούς Στόχος: Ελάχιστο κόστος ζεύξεων + ικανοποίηση περιορισμού Κλασικοί Αλγόριθμοι MST + Περιορισμός π.χ. Kruskal + περιορισμός (συνολικό βάρος κόμβων σε κάθε ζεύξη πολλαπλών σημείων) Αλγόριθμοι Esau-Williams, Sharma Βελτιστοποίηση Ελάχιστων Δέντρων Επικάλυψης Αλγόριθμοι bin-packing Στόχος: Ελάχιστος αριθμός γραμμών πολλαπλών σημείων Αλγόριθμοι First Fit, Best Fit, Worst Fit 41

Αλγόριθμος Κέντρου Μάζας Πρόβλημα χωροθέτησης συγκεντρωτών Δίδεται: το σύνολο των θέσεων των τερματικών i - συντεταγμένες (x i, y i ). το βάρος (ή μάζα) w i του τερματικού i, που εκφράζει την συνολική κίνηση από και προς το τερματικό. Ζητείται: να προσδιορισθούν μία ή περισσότερες συστάδες τερματικών, όπου στο κέντρο μάζας κάθε συστάδας θα τοποθετηθεί συγκεντρωτής της κίνησης των τερματικών, και μέσω αυτού τα τερματικά θα συνδέονται στο Κεντρικό Δίκτυο, ελαχιστοποιώντας το κόστος των συνδέσεων. 42

Αλγόριθμος Κέντρου Μάζας Αρχικά κάθε τερματικό θεωρείται ως μία αυτόνομη συστάδα. Ακολούθως συγχωνεύονται οι συστάδες (ανά δύο) που απέχουν την μικρότερη (ευκλείδια) απόσταση. Η συγχώνευση γίνεται στο κέντρο μάζας. Η νέα μάζα της συστάδας είναι το άθροισμα των μαζών. H συγχώνευση επαναλαμβάνεται μέχρι να δημιουργηθεί ο επιθυμητός αριθμός συστάδων. Αν (x i,y i ) και (x j,y j ) οι συντεταγμένες δύο τερματικών d i,j = 2 2 i j i j x x y y είναι η ευκλείδια απόστασή τους. Οι συντεταγμένες της συστάδας που θα δημιουργηθεί μετά την συγχώνευση δύο τερματικών, θα είναι οι συντεταγμένες του κέντρου βάρους τους (x k,y k ). Η νέα μάζα της συστάδας (μετά από συγχώνευση) είναι: w k =w i +w j 43

Αλγόριθμος Κέντρου Μάζας Πιθανοί περιορισμοί Η μάζα της συστάδας (μέγιστη ή ελάχιστη). Όριο απόστασης (δεν συγχωνεύονται συστάδες των οποίων η απόσταση υπερβαίνει το όριο). Ανάλογα με τους υπόλοιπους περιορισμούς, ο επιθυμητός αριθμός συστάδων δυνατόν να μην αποτελεί αυστηρό περιορισμό. Κέντρο μάζας συστάδας - Παράδειγμα Δίδονται 3 τερματικά στις συντεταγμένες (2, 2), (6, 6), (10, 10). Να ευρεθεί το κέντρο μάζας τους, όταν: Η συνολική κίνηση από/προς κάθε τερματικό είναι ίδια. Το τερματικό στην θέση (6,6) έχει διπλάσια ή υποδιπλάσια κίνηση. Το τερματικό στην θέση (10, 10) έχει διπλάσια κίνηση. 44

Αλγόριθμος Κέντρου Μάζας Κέντρο μάζας συστάδας - Λύση παραδείγματος Από τις θέσεις των τερματικών (βρίσκονται επ ευθείας σε ίσες αποστάσεις), γραφικά προκύπτει ότι το κέντρο μάζας τους είναι: Στο μέσον, δηλ. (x k,y k )=(6,6), όταν έχουν την ίδια κίνηση (ίδια μάζα). Στο μέσον, δηλ. (x k,y k )=(6,6), όταν η κίνηση του (6,6) είναι μεγαλύτερη ή μικρότερη (διπλάσια ή υποδιπλάσια), ενώ των άλλων δύο ίδια. Σε θέση (x k,y k ) μεταξύ (6,6) και (10,10), όταν η κίνηση του (10,10) είναι μεγαλύτερη (διπλάσια) από τα άλλα δύο τερματικά. x k 3 wx i i i 1 1* 2 1*6 2*10 28 7 3 1 1 2 4 w i 1 i y k 3 wjyj j 1 1* 2 1*6 2*10 28 7 3 1 1 2 4 w j 1 j 45