ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 2A Σκελετοί Λύσεων

Σχετικά έγγραφα
Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27)

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

Διδάσκων: Παναγιώτης Ανδρέου

Υπολογισµός διπλών ολοκληρωµάτων µε διαδοχική ολοκλήρωση

Υπολογισµός διπλών ολοκληρωµάτων µε διαδοχική ολοκλήρωση

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

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

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

Βασικές οµές εδοµένων

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

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

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

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

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

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

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

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

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

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

Θεωρία και Αλγόριθμοι Γράφων

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Βασικές Δομές Δεδομένων

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

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

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

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

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

Όρια συναρτήσεων. ε > υπάρχει ( ) { } = ± ορίζονται αναλόγως. Η διατύπωση αυτών των ορισµών αφήνεται ως άσκηση. x y = +. = και για κάθε (, ) ( 0,0)

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

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

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

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

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

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

Διδάσκων: Παναγιώτης Ανδρέου

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

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

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

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

3.6 ΕΜΒΑ ΟΝ ΚΥΚΛΙΚΟΥ ΤΟΜΕΑ

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Αλγόριθµοι Οπισθοδρόµησης

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

( ) = inf { (, Ρ) : Ρ διαµέριση του [, ]}

Εισαγωγή στην Τοπολογία

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

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

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

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

υναµικές οµές εδοµένων

Αρµονική Ανάλυση. Ενότητα: L p Σύγκλιση. Απόστολος Γιαννόπουλος. Τµήµα Μαθηµατικών

q={(1+2)/2}=1 A(1,2)= MERGE( 4, 6 ) = 4 6 q=[(3+4)/2]=3 A(1,4)= MERGE( 4 6, 5 8 ) = q=[(5+6)/2]=5 A(5,6)= MERGE( 2, 9 ) = 2 9

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

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

Στοιχεία Θεωρίας Γραφηµάτων (3)

Απαρίθµηση Μονοπατιών. Στοιχεία Θεωρίας Γραφηµάτων (3) Μονοπάτια και Κυκλώµατα Euler. Ορέστης Τελέλης

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

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

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

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

KΕΦΑΛΑΙΟ 4 AΚΟΛΟΥΘΙΕΣ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος.

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

(β) Θεωρούµε µια ακολουθία Nθετικών ακεραίων η οποία περιέχει ακριβώς

Transcript:

ΕΠΛ 232: λγόριθµοι και Πολυπλοκότητα Κατ οίκον Εργασία 2A Σκελετοί Λύσεων 1. ια τη σαφή διατύπωση του αλγόριθµου απαιτούνται τα εξής: ιατήρηση της ροής που κτίζεται από τον αλγόριθµο. ιατήρηση της περίσσειας χωρητικότητας για κάθε ακµή (δίκτυο περίσσεια). Εύρεση ενός βραχύτερου επεκταµένου µονοπατιού στο δίκτυο περίσσειας. ια να πετύχουµε τα πιο πάνω σε υλοποίηση του δικτύου ροής µε λίστα γειτνίασης χρησιµοποιούµε τις πιο κάτω δοµές για αναπαράσταση του δικτύου ροής: ypedef ruc node *link; ruc node { in v; /* το όνοµα του κόµβου*/ in cap; /* χωρητικότητα της ακµής*/ in flow; /* ροή κατά µήκος της ακµής αρχικά 0*/ in reflow; /* υπόλοιπο χωρητικότητας κατά µήκος της ακµής αρχικά ίσο µε το cap*/ link back; /* δείκτης προς την ακµή µε την αντίθετη κατεύθυνση*/ link nex; /* δείκτης προς τον επόµενο κόµβο*/ ruc fgraph{ link li[v]; Επίσης χρησιµοποιούµε την πιο κάτω δοµή για εύρεση και αναπαράσταση επεκταµένων µονοπατιών: ruc pahnode{ in prev; in viied; Η διαδικασία εύρεσης βραχύτερου επεκταµένου µονοπατιού γίνεται ως εξής (τα και είναι η πηγή και ο προορισµός του δικτύου, αντίστοιχα). Υποθέτουµε πως έχουµε στη διάθεσή µας υλοποίησης ουράς µε τις πράξεις IEmpy, Enqueue, Dequeue. FindPah(fgraph G, in, in ) pahnode pah[v]= [(-1,0), (-1,0)]; queue Q; Enqueue(Q, ); pah[]->prev = 0; pah[]->viied = 0; 1

while (!IEmpy(Q)) u = Dequeue(Q); } for (p = G->li[u]; p!= NULL; p = p->nex) if (pah[p->name]->viied == 0 AND pah[p->name]->reflow > 0; pah[p->name]->viied == 1; pah[p->name]->prev == u; if (p->name == ) reurn &pah; reurn NULL; οθέντος ενός µονοπατιού µπορούµε να υπολογίσουµε τη µέγιστη ποσότητας ροής που µπορεί να περάσει από το µονοπάτι µε την πιο κάτω διαδικασία. Παρατηρούµε πως η διαδικασία ξεκινώντας από τον προορισµό διαπερνά το µονοπάτι προς τα πίσω υπολογίζοντας την ελάχιστη περίσσεια χωρητικότητα των ακµών του. FindMinFlow (fgraph G, in, in, pahnode pah[v]) c = ; for (u = ; u!= ; u = pah[u].prev) v = pah[u]->prev; for (p = G->li[v]; p->name!=u; p = p-> nex); c = min (c, p->reflow); Τέλος, δοθέντος ενός επεκταµένου µονοπατιού και της ποσότητας ροής που µπορεί να περάσει από αυτό µπορούµε ενισχύσουµε τη ροή σε ένα δίκτυο ροής µε αυτή την ποσότητα ροής στο µονοπάτι ανανεώνοντας κατάλληλα τις πληροφορίες σχετικά µε τις περίσσειες χωρητικότητας των ακµών όπως φαίνεται πιο κάτω. Σηµαντικό σηµείο στη συνάρτηση αποτελεί το γεγονός πως ενίσχυση µιας ροής είναι δυνατό να έχει ως αποτέλεσµα τη δηµιουργία νέος ακµών (οπισθοδρόµησης) οι οποίες φέρουν αρνητική ποσότητα ροής και ανήκουν στο δίκτυο περίσσειας. Το σηµείο αυτό παρουσιάζεται σκιασµένο στον κώδικα. ExpandFlow (fgraph G, in, in, pahnode pah[v], in c) for (u = ; u!= ; u = pah[u]->prev) v = pah[u]->prev; for (p = G->li[v]; p->name!=u; p = p-> nex) p->flow = c + p->flow; p->re = p->cap p->flow; q = p->back; if q == NULL q = Malloc(node); q->nex = G->li[u]; G->li[u] = q; q->name = v; q->cap = 0; q->back = p; p->back = q; q->flow = - p->flow; q->re = q->cap q->flow; 2

H τελική διαδικασία έχει ως εξής: EdmondKarp(graph G, in, in ) pah = FindPah(G,, ); while (pah!= NULL) c = FindMinFlow(G,,, pah); ExpandMinFlow(G,,, pah, c); (β) ρχική ροή 0, και δίκτυο περίσσειας ως προς την αρχική ροή το αρχικό δίκτυο ροής. Επιλέγουµε το µονοπάτι. ίκτυο περίσσειας: 16 20 Επιλέγουµε το µονοπάτι. 3

ίκτυο περίσσειας: 8 Επιλέγουµε το µονοπάτι. 1 ίκτυο περίσσειας: 2 3 1 1 εν υπάρχει άλλο επεκταµένο µονοπάτι. 2. Έστω γράφος G = (V, E) και u,v V. Ορίζουµε G uv ως το δίκτυο ροής που αποτελείται από όλες τις ακµές Ε εκτός από όσες φθάνουν στην κορυφή u και όσες φεύγουν από την κορυφή v, πηγή τη u, προορισµό τη v και χωρητικότητα c(e) = 1, για κάθε ακµή e. Θέτοντας όλες τις χωρητικότητες ίσες µε 1 διασφαλίζουµε ότι ο αριθµός των ακµών κατά µήκος της τοµής είναι ίσος µε τη χωρητικότητα κατά µήκος της τοµής. Έστω f uv µια µέγιστη ροή πάνω στο δίκτυο G uv.

Ο ζητούµενος αλγόριθµος έχει ως εξής: ιάλεξε κάποια κορυφή v V Τρέξε τον αλγόριθµο µέγιστης ροής σε όλα τα δίκτυα G vu για κάθε u V {v}. Επέστρεψε την τιµή min u V {v} f uv Λήµµα Ο βαθµός συνεκτικότητας, Σ, ενός γράφου ισούται µε min u V {v} f uv. πόδειξη: ρχικά θα δείξουµε ότι Σ min u V {v} f uv. Παρατηρούµε ότι η τιµή f uv ουσιαστικά συµβολίζει τον αριθµό µονοπατιών που υπάρχουν ανάµεσα στους κόµβους u και v. Θεωρήστε την τοµή µε την ελάχιστη χωρητικότητα κατά µήκος τοµής του δικτύου. υτή αποτελείται από f uv ακµές. Εποµένως είναι δυνατό να αφαιρέσουµε f uv 1 ακµές της τοµής αυτής από το δίκτυο ροής G uv χωρίς να αποσυνδέσουµε τους κόµβους u και v. Το ίδιο ισχύει για όλα τα ζεύγη κορυφών u και v. Συνεπώς είναι δυνατόν να αφαιρέσουµε min u V {v} f uv 1 ακµές από ένα γράφο χωρίς να τον αποσυνδέσουµε. υτό έπεται ότι Σ > min u V {v} f uv 1. Στη συνέχεια θα δείξουµε το αντίθετο. ηλαδή, ότι Σ min u V {v} f uv. Έστω v ένας από τους κόµβους που ελαχιστοποιούν το f uv. πό το θεώρηµα µέγιστης ροής ελάχιστης χωρητικότητας, υπάρχει µια τοµή µε χωρητικότητα f uv. φού όλες οι χωρητικότητες είναι ακριβώς 1, ακριβώς f uv ακµές τέµνονται από την τοµή. ν αυτές οι ακµές αφαιρεθούν, δεν υπάρχει µονοπάτι από τον u στον v. Άρα ο γράφος αποσυνδέεται. Έτσι, το ζητούµενο έπεται. υτό συµπληρώνει την απόδειξη του λήµµατος. 5