Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεŌΓώγ Κούνδουρος Τροποποιήθηκε πριν 6 χρόνια
1
Θεωρία & Αλγόριθμοι Γράφων Αντιστοιχίσεις και Καλύμματα
Θεωρία & Αλγόριθμοι Γράφων Αντιστοιχίσεις και Καλύμματα Data Science and Engineering Lab
2
Data Science and Engineering Lab
Αντιστοιχίσεις Αντιστοίχιση (matching) σε ένα γράφο G είναι ένα σύνολο ακμών του, που δεν είναι ανά δύο προσκείμενες. Η έννοια έχει νόημα σε ένα διγράφο αλλά και σε ένα γενικό γράφο Data Science and Engineering Lab
3
Data Science and Engineering Lab
Αντιστοιχίσεις (2) Μέγιστη αντιστοίχιση (maximal matching) είναι μία αντιστοίχιση όταν δεν μπορεί να προστεθεί κάποια ακμή. Μεγαλύτερη μέγιστη αντιστοίχιση (largest maximal matching) είναι η μέγιστη αντιστοίχιση με το μεγαλύτερο αριθμό ακμών, που ονομάζεται αριθμός αντιστοίχισης (matching number). Data Science and Engineering Lab
4
Data Science and Engineering Lab
Παραδείγματα Στην επάνω σειρά αντιστοιχίσεις, στην κάτω σειρά μέγιστες αντιστοιχίσεις Data Science and Engineering Lab
5
Data Science and Engineering Lab
Αντιστοιχίσεις (3) Μία αντιστοίχιση με όλες τις κορυφές ενός γράφου ονομάζεται τέλεια (perfect). Μία τέλεια αντιστοίχιση λέγεται και 1-παράγοντας (1-factor). Μία ακμή λέγεται αδύναμη σε σχέση με μία αντιστοίχιση M (weak with respect to a matching M), αν δεν ανήκει στην αντιστοίχιση M. Μία κορυφή λέγεται αδύναμη σε σχέση με μία αντιστοίχιση M, αν πρόσκειται σε αδύναμες ακμές σε σχέση με την αντιστοίχιση M. Data Science and Engineering Lab
6
Data Science and Engineering Lab
Αντιστοιχίσεις (4) Θεώρημα. Έστω M1 και M2 δύο αντιστοιχίσεις του γράφου G. Κάθε συνιστώσα του υπογράφου H με E(H) = (M1–M2) U (M2 –M1) ανήκει σε μία από τις εξής 3 κατηγορίες: είναι απομονωμένη κορυφή, ή είναι κύκλος άρτιου μήκους με ακμές που ανήκουν διαδοχικά στις αντιστοιχίσεις M1 και M2, είτε είναι ένα μονοπάτι περιττού μήκους με ακμές που ανήκουν διαδοχικά στις αντιστοιχίσεις M1 και M2, όπου οι δύο τερματικές κορυφές είναι αδύναμες σε σχέση με μία και μόνο μία αντιστοίχιση. Ο υπογράφος Η λέγεται συμμετρική διαφορά (symmetric difference). Data Science and Engineering Lab
7
Άσκηση 1 Να βρεθεί η συμμετρική διαφορά των εξής γράφων
A B C D E F G A B C D E F G H I J K L M N H I J K L M N A B C D H I J K E L F M G N Από τι συνιστώσες αποτελείται? Data Science and Engineering Lab
8
Data Science and Engineering Lab
Αυξανόμενο μονοπάτι Εναλλασσόμενο μονοπάτι (alternating path) λέγεται ένα μονοπάτι, όπου διαδοχικά οι ακμές είναι αδύναμες και δεν είναι αδύναμες (ή το αντίστροφο) σε σχέση με μία αντιστοίχιση M. Αυξανόμενο μονοπάτι (augmenting path) λέγεται ένα εναλλασσόμενο μονοπάτι, όπου οι τερματικές κορυφές είναι αδύναμες σε σχέση με μία μόνο αντιστοίχιση M. Θεώρημα (Berge, 1957). Μία αντιστοίχιση M ενός γράφου G είναι μέγιστη, αν και μόνο αν δεν υπάρχει κάποιο αυξανόμενο μονοπάτι στο γράφο G. Data Science and Engineering Lab
9
Παράδειγμα αυξανόμενου μονοπατιού
Μ: (2,3), (5,4), (7,8) Εναλλασσόμενο μονοπάτι ? Αυξανόμενο μονοπάτι ? Data Science and Engineering Lab
10
Αντιστοιχίσεις και διγράφοι
Έστω ένας διγράφος με δύο σύνολα κορυφών V1, V2, όπου |V1| ≤ |V2|. Πλήρης αντιστοίχιση (complete matching) των κορυφών του συνόλου V1 στο σύνολο V2 είναι η αντιστοίχιση όπου για κάθε κορυφή του συνόλου V1 υπάρχει μία προσπίπτουσα ακμή. Η πλήρης αντιστοίχιση είναι μεγαλύτερη μέγιστη, ενώ το αντίθετο δεν ισχύει γενικά. A B C D E F G Μεγαλύτερη μέγιστη αλλά όχι πλήρης Data Science and Engineering Lab
11
Αντιστοιχίσεις και διγράφοι (2)
Θεώρημα (Hall, 1935). Έστω ένας διγράφος G(V1 U V2, E). Το σύνολο V1 μπορεί να αντιστοιχισθεί σε ένα υποσύνολο του V2 αν και μόνο αν |N(S)| ≥ |S| δια παν S υποσύνολο του V1 Philip Hall ( ) Data Science and Engineering Lab
12
Αντιστοιχίσεις και διγράφοι (3)
Θεώρημα. Έστω ένας πίνακας m x n με 0 και 1. Μπορεί να βρεθεί μία κατάσταση όπου σε κάθε γραμμή και σε κάθε στήλη υπάρχει μόνο ένα 1, αν και μόνο αν κάθε ομάδα από r γραμμές έχουν 1 σε τουλάχιστον r στήλες, για κάθε r. Θεώρημα (Θεώρημα των γάμων). Ικανή και αναγκαία συνθήκη για λύση στο πρόβλημα των γάμων m ανδρών και w > m γυναικών είναι κάθε σύνολο από t άνδρες να γνωρίζουν συλλογικά τουλάχιστον t γυναίκες (όπου 1 ≤ t ≤ m). Data Science and Engineering Lab
13
Αντιστοιχίσεις και διγράφοι (4)
Δοθέντων των συνόλων S1, S2, ..., Sk λέγεται ότι το στοιχείο xi є Si είναι ένας αντιπρόσωπος (representative) του συνόλου Si. Σκοπός είναι η εύρεση μίας συλλογής διακριτών αντιπροσώπων από τα σύνολα Si (όπου 1 ≤ i ≤ k). Αυτή η συλλογή ονομάζεται σύστημα διακριτών αντιπροσώπων (system of distinct representatives) ή εγκάρσια (transversal) συλλογή των συνόλων. Παράδειγμα: S1={1,2,3}, S2={1,4,5} S3={3,5}. Ένα σύστημα διακριτών αντιπροσώπων είναι {1,4,5} (επίσης {2,1,3}). Data Science and Engineering Lab
14
Αντιστοιχίσεις και διγράφοι (5)
Θεώρημα (Θεώρημα του συστήματος διακριτών αντιπροσώπων). Ένα πεπερασμένο σύνολο μη κενών συνόλων S1,S2, ..., Sk (όπου k ≥ 1) έχει ένα σύστημα διακριτών αντιπροσώπων, αν και μόνο αν η ένωση οποιωνδήποτε t από αυτά τα σύνολα περιέχει τουλάχιστον t διακριτά στοιχεία για κάθε 1≤t≤k. Data Science and Engineering Lab
15
Αντιστοιχίσεις και διγράφοι (6)
Αντιστοιχίσεις και διγράφοι (6) Αν είναι αδύνατο να βρεθεί μία πλήρης αντιστοίχιση σε ένα διγράφο G, τότε είναι σκόπιμο να βρεθεί μία μέγιστη αντιστοίχιση. Εισάγεται ένας νέος όρος, το έλλειμμα (deficiency), που συμβολίζεται με δ(G). Από το σύνολο V1 επιλέγεται ένα υποσύνολο r κορυφών που είναι γειτονικές προς q κορυφές που ανήκουν στο σύνολο των V2 κορυφών. Το έλλειμμα του διγράφου ισούται με τη μέγιστη τιμή του αριθμού r–q για κάθε τιμή του r=1,2,... και όλα τα υποσύνολα του V1. Θεώρημα. Σε ένα διγράφο G υπάρχει μία πλήρης αντιστοίχιση, αν και μόνο αν δ(G) ≤ 0. Data Science and Engineering Lab
16
Data Science and Engineering Lab
Άσκηση 2 Για τους δύο γράφους να βρεθεί το έλλειμμα δ. Data Science and Engineering Lab
17
Άσκηση 3 Ποιοί διγράφοι έχουν τέλεια αντιστοίχιση?
Data Science and Engineering Lab
18
Data Science and Engineering Lab
Άσκηση 3 (συνέχεια) Data Science and Engineering Lab
19
Data Science and Engineering Lab
Άσκηση 3 (συνέχεια) Data Science and Engineering Lab
20
Data Science and Engineering Lab
Καλύμματα Λέγεται ότι μία κορυφή καλύπτει (covers) μία ακμή ή ότι μία ακμή καλύπτει μία κορυφή αν η ακμή είναι προσπίπτουσα στην κορυφή. Ένα υποσύνολο των κορυφών που καλύπτει όλες τις ακμές του γράφου ονομάζεται κάλυμμα κορυφών (vertex cover), ή απλώς κάλυμμα. Αντίστοιχα, ένα υποσύνολο των ακμών που καλύπτει όλες τις κορυφές του γράφου ονομάζεται κάλυμμα ακμών (edge cover). Data Science and Engineering Lab
21
Data Science and Engineering Lab
Καλύμματα (2) Ένα κάλυμμα κορυφών (ακμών) ονομάζεται ελάχιστο (minimal) αν η εξαίρεση μίας οποιασδήποτε κορυφής (ακμής) καταστρέφει το κάλυμμα. Ο ελάχιστος αριθμός κορυφών από όλα τα ελάχιστα καλύμματα ενός γράφου G ονομάζεται καλύπτων αριθμός (covering number), α0(G). Ο ελάχιστος αριθμός ακμών από όλα τα ελάχιστα καλύμματα ακμών ονομάζεται καλύπτων αριθμός ως προς τις ακμές (edge covering number), α1(G). Ένα κάλυμμα κορυφών ή ακμών ονομάζεται μικρότερο ελάχιστο (smallest minimum) αν αποτελείται από α0 κορυφές ή α1 ακμές, αντιστοίχως. Ισχύει α0(Kn)=n-1 και α1(Kn)= └ (n+1)/2 ┘ Data Science and Engineering Lab
22
Παράδειγμα καλύπτοντος αριθμού
Στην επάνω σειρά καλύμματα κορυφών, στην κάτω σειρά ελάχιστα καλύμματα κορυφών Data Science and Engineering Lab
23
Παράδειγμα καλύπτοντος αριθμού ως προς τις ακμές
Στην επάνω σειρά καλύμματα ακμών, στην κάτω σειρά ελάχιστα καλύμματα ακμών Data Science and Engineering Lab
24
Data Science and Engineering Lab
Ανεξάρτητα σύνολα Ένα σύνολο κορυφών ονομάζεται ανεξάρτητο (independent) αν δύο οποιεσδήποτε κορυφές του συνόλου αυτού δεν είναι γειτονικές και επομένως θα μπορούσαν να χρωματισθούν με το ίδιο χρώμα. Ένα ανεξάρτητο σύνολο ονομάζεται μέγιστο (maximum), αν δεν υπάρχει άλλο ανεξάρτητο σύνολο με περισσότερες κορυφές. Το πλήθος των κορυφών του μέγιστου ανεξάρτητου συνόλου ονομάζεται αριθμός ανεξαρτησίας κορυφών (vertex independence number) και συμβολίζεται με β0(G). Data Science and Engineering Lab
25
Data Science and Engineering Lab
Ανεξάρτητα σύνολα (2) Ένα ανεξάρτητο σύνολο ακμών (independent set of edges) ενός γράφου G αποτελείται από ακμές που δεν είναι προσκείμενες ανά δύο. Το μεγαλύτερο πλήθος ακμών από τα ανεξάρτητα σύνολα ακμών ενός γράφου ονομάζεται αριθμός ανεξαρτησίας ακμών (edge independence number) και συμβολίζεται με β1(G). Ισχύει β0(Kn)=1 και β1(Kn)=└n/2┘ Σε ένα διγράφο η αριθμός ανεξαρτησίας ακμών β1 ταυτίζεται με τον αριθμό αντιστοίχισης α0. Data Science and Engineering Lab
26
Παράδειγμα ανεξάρτητου συνόλου
Generalized Petersen Graph. Οι 9 μπλε κορυφές είναι το μέγιστο ανεξάρτητο σύνολο για το γράφο των 24 κορυφών (β0=9). Data Science and Engineering Lab
27
Καλύμματα & ανεξάρτητα σύνολα
Θεώρημα (Galai, 1959) Σε κάθε συνδεδεμένο γράφο G με n ακμές και d(G)>0 ισχύει: α0 + β0 = n = α1 + β1 Θεώρημα (Koenig+Egervary, 1931) Αν G(V1 U V2,E) είναι ένας διγράφος, τότε ισχύει: β1(G) = α0(G) Data Science and Engineering Lab
28
Data Science and Engineering Lab
Άσκηση Για τους 2 γράφους να βρεθούν οι τιμές α0, α1, β0, β1. Data Science and Engineering Lab
29
Περιπτώσεις καλυμμάτων
Είναι εύκολο να εντοπισθούν τετριμμένα καλύμματα ακμών, όπως το σύνολο E(G), το E(T), όπου T ένα ζευγνύον δένδρο του, ή οι ακμές ενός Hamiltonian κύκλου. Επίσης ισχύει: Σε ένα γράφο υπάρχει κάλυμμα ακμών, αν και μόνο αν δεν υπάρχουν απομονωμένες κορυφές, Κάθε ακμή προσπίπτουσα σε εκκρεμή κορυφή περιλαμβάνεται στο κάλυμμα ακμών, Σε ένα συνδεδεμένο γράφο με n κορυφές το κάλυμμα ακμών έχει τουλάχιστον ┌n/2┐ ακμές, Data Science and Engineering Lab
30
Περιπτώσεις καλυμμάτων (2)
Ένα ελάχιστο κάλυμμα ακμών δεν περιέχει κύκλους. Άρα, ένα ελάχιστο κάλυμμα ακμών δεν έχει περισσότερο από n-1 ακμές, Κάθε κάλυμμα ακμών περιέχει ένα ελάχιστο κάλυμμα, Ένα σύνολο ακμών g είναι κάλυμμα ακμών, αν και μόνο αν για κάθε κορυφή v, ο βαθμός της κορυφής αυτής στο γράφο G-g είναι μικρότερος από το βαθμό της ίδιας κορυφής στο γράφο G Data Science and Engineering Lab
31
Εύρεση μέγιστης αντιστοίχισης σε διγράφους
Είσοδος: Ένας διγράφος G(V1UV2,E) και μία αντιστοίχιση M. Έξοδος: Μία αντιστοίχιση μεγαλύτερη από τη M ή η απάντηση ότι η παρούσα αντιστοίχιση M είναι η μέγιστη. Μέθοδος: Τοποθέτηση επιγραφών και δημιουργία αυξανόμενων μονοπατιών. Οι κορυφές του V1 που είναι αδύναμες σε σχέση με την αντιστοίχιση M λαμβάνουν την επιγραφή *. Τα Βήματα 2 και 3 εκτελούνται διαδοχικά μέχρι να μην μπορούν να τοποθετηθούν άλλες επιγραφές. Data Science and Engineering Lab
32
Εύρεση μέγιστης αντιστοίχισης σε διγράφους (2)
Επιλέγεται κάποια κορυφή του V1, έστω η v_1i, που στο προηγούμενο βήμα δέχθηκε επιγραφή και θέτουμε την επιγραφή v_1i στις κορυφές του N(v_1i) χωρίς επιγραφή, αν συνδέονται με ακμή που είναι αδύναμη ως προς τη M. Επαναλαμβάνουμε το Βήμα 2 για κάθε κορυφή του V1 που δέχθηκε επιγραφή στο προηγούμενο βήμα. Επιλέγεται κάποια κορυφή του V2, έστω η v_2i, που στο προηγούμενο βήμα δέχθηκε επιγραφή και θέτουμε την επιγραφή v_2i στις κορυφές του N(v_2i) χωρίς επιγραφή αν συνδέονται με μία ακμή που ανήκει στη M. Επαναλαμ- βάνουμε το Βήμα 3 για κάθε κορυφή του V2 που δέχθηκε επιγραφή στο προηγούμενο βήμα. Data Science and Engineering Lab
33
Εύρεση μέγιστης αντιστοίχισης σε διγράφους (3)
Ο αλγόριθμος θα τερματίσει όταν θα συμβεί μία από τις εξής δύο συνθήκες: [Συνθήκη 1:] Μία αδύναμη κορυφή του V2 δέχεται επιγραφή, [Συνθήκη 2:] Δεν έχει συμβεί η Συνθήκη 1 και είναι αδύνατη η τοποθέτηση άλλων επιγραφών. Αν συμβεί η Συνθήκη 1, τότε έχει βρεθεί ένα αυξανόμενο μονοπάτι που μπορεί να κατασκευασθεί ακολουθώντας κατά την αντίστροφη πορεία όλες τις κορυφές με επιγραφές μέχρι να βρεθεί μία κορυφή με επιγραφή *. Έτσι ορίζεται μία αντιστοίχιση μεγαλύτερη από την προηγούμενη. Αν συμβεί η Συνθήκη 2, τότε έχει επιτευχθεί μία μέγιστη αντιστοίχιση. Data Science and Engineering Lab
34
Παράδειγμα εύρεσης μέγιστης αντιστοίχισης σε διγράφους
Είσοδος (v1,u1) Ουγγρικό δένδρο Data Science and Engineering Lab
35
Παράδειγμα εύρεση μέγιστης αντιστοίχισης σε διγράφους (2)
Δένδρο μετά το 2ο πέρασμα μετά το 3ο πέρασμα Data Science and Engineering Lab
36
Data Science and Engineering Lab
Δεύτερο παράδειγμα x1 y1 i=1, x1 αντιστοιχίζεται i=2, v=x2 x2 y2 Q : x2 x3 x5 x4 x1 x6 x3 y3 x4 y4 x2 y5 y2 x3 x5 y6 x5 x6 y6 Αρχική αντιστοίχιση M1 x4 y3 x1 y4 x6 y5 Αυξανόμενο μονοπάτι y1 Data Science and Engineering Lab
37
Data Science and Engineering Lab
Δεύτερο παράδειγμα (2) x1 y1 i=3, x3 αντιστοιχίζεται x2 y2 i=4, x4 αντιστοιχίζεται. x3 y3 x4 y4 … y5 x5 i=12, y6 αντιστοιχίζεται x6 y6 Η νέα αντιστοίχιση M = {x2y6, x5y4, x1y1, x4y3, x3y2, x6y5} είναι μέγιστη Data Science and Engineering Lab
38
Data Science and Engineering Lab
Τρίτο παράδειγμα X2 X3 X1 Y1 Y2 Y3 Y4 Data Science and Engineering Lab
39
Data Science and Engineering Lab
Τρίτο παράδειγμα (2) X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 Data Science and Engineering Lab
40
Data Science and Engineering Lab
Τρίτο παράδειγμα (3) X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 Data Science and Engineering Lab
41
Data Science and Engineering Lab
Τρίτο παράδειγμα (4) X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 X2 X3 X1 Y1 Y2 Y3 Y4 Data Science and Engineering Lab
42
Data Science and Engineering Lab
Τρίτο παράδειγμα (5) X2 X3 X1 Y1 Y2 Y3 Y4 Κάποιος αλγόριθμος αναζήτησης (BFS, DFS) O(E) Το πολύ V φορές Πολυπλοκότητα: O(VE) Data Science and Engineering Lab
43
Εύρεση μέγιστης αντιστοίχισης σε ζυγισμένους διγράφους
Συχνά τίθενται προβλήματα αντιστοιχίσεων σε ζυγισμένους γράφους , όπως το πρόβλημα της ανάθεσης εργασιών σε μηχανές αεροπλάνων σε πτήσεις παικτών σε θέσεις διδασκόντων σε μαθήματα προσωπικού σε αρμοδιότητες Jerry Marking Darek Tom Isaac Tutorials Solutions Newsgroup Data Science and Engineering Lab
44
Data Science and Engineering Lab
Ουγγρικός αλγόριθμος Είσοδος: γράφος σε μορφή πίνακα ΝxΝ Έξοδος: εύρεση ελάχιστης/μέγιστης λύσης Από κάθε γραμή αφαιρούμε την ελάχιστη τιμή Από κάθε στήλη αφαιρούμε την ελάχιστη τιμή Βρίσκουμε N’ ανεξάρτητα 0 Αν N’=N τότε λαμβάνουμε τις θέσεις τους και stop. Αλλιώς: καλύπτουμε τα 0 με Ν’ γραμμές. Βρίσκουμε την μικρότερη μη καλυμμένη τιμή Την τιμή αυτή αφαιρούμε από όλες τις μη καλυμμένες τιμές και προσθέτουμε στις θέσεις που είναι διπλά καλυμμένες Πήγαινε στο Βήμα 3 Data Science and Engineering Lab
45
Το πρόβλημα επιλογής προσωπικού (1)
Μία εταιρεία ζητά να προσλάβει 4 υπαλλήλους με διαφορετικές αρμοδιότητες. Στην αγγελία απαντούν 4 πρόσωπα, το καθένα με προτιμήσεις για περισσότερες της μίας θέσεις. Η ανάθεση του προσωπικού σε θέσεις θα μπορούσε να επιλυθεί εφαρμόζοντας τον αλγόριθμο εύρεσης μίας μέγιστης αντιστοίχισης σε διγράφο. Έστω ότι κάθε ενδιαφερόμενος κοστίζει διαφορετικά στην εταιρεία αναλόγως με τη θέση που αναλαμβάνει. Άρα ο αντίστοιχος διγράφος είναι ζυγισμένος, και συνεπώς, η λύση του προβλήματος είναι μία βέλτιστη αντιστοίχιση με ελάχιστο συνολικό βάρος (κόστος). Θα χρησιμοποιηθεί ο ουγγρικός αλγόριθμος Data Science and Engineering Lab
46
Το πρόβλημα επιλογής προσωπικού (2)
a1 a2 a3 a4 j1 4 6 14 11 j2 7 2 8 9 j3 3 13 1 j4 5 Αφαιρώ από κάθε γραμμή το μικρότερο αριθμό a1 a2 a3 a4 j1 2 10 7 j2 5 6 j3 12 3 j4 13 Αφαιρώ από κάθε στήλη το μικρότερο αριθμό Data Science and Engineering Lab
47
Το πρόβλημα επιλογής προσωπικού (3)
a1 a2 a3 a4 j1 2 10 4 j2 5 6 j3 12 j4 Βρίσκω 4 ανεξάρτητα μηδενικά = δεν ανήκουν ανά δύο στην ίδια γραμμή ή στήλη Data Science and Engineering Lab
48
Το πρόβλημα επιλογής προσωπικού (4)
Άλλο παράδειγμα Αφαιρώ από κάθε γραμμή και στήλη το μικρότερο αριθμό a1 a2 a3 a4 j1 6 8 2 7 j2 5 13 9 j3 10 j4 4 12 11 a1 a2 a3 a4 j1 4 3 1 j2 8 j3 j4 5 Δεν υπάρχουν 4 ανεξάρτητα μηδενικά Data Science and Engineering Lab
49
Το πρόβλημα επιλογής προσωπικού (5)
Τα μηδενικά βρίσκονται στις πρώτες δύο γραμμές και την πρώτη στήλη (διαγράφονται με 3 γραμμές). Πως βρίσκω τις 3 γραμμές? Η διαδικασία συνεχίζει ως εξής: Επιλέγεται η μικρότερη τιμή (3) μεταξύ εκείνων που δεν ανήκουν στις διαγραμμένες γραμμές και στήλες, Το 3 αφαιρείται από όλα τα στοιχεία που δεν ανήκουν σε διαγραμμένες θέσεις και προστίθεται στις θέσεις που έχουν διαγραφεί δύο φορές. a1 a2 a3 a4 j1 4 3 1 j2 8 j3 j4 5 Data Science and Engineering Lab
50
Το πρόβλημα επιλογής προσωπικού (6)
a1 a2 a3 a4 j1 7 3 1 j2 8 j3 5 j4 2 Η διαδικασία παράγει τουλάχιστον ένα επιπλέον μηδενικό. Υπάρχει το ενδεχόμενο να μην υπάρχουν 4 ανεξάρτητα μηδενικά ούτε μετά από αυτή τη διαδικασία. Τότε, επαναλαμβάνεται η διαδικασία μέχρις ότου παραχθούν ανεξάρτητα μηδενικά. Data Science and Engineering Lab
51
Το πρόβλημα επιλογής προσωπικού (7)
Μία εταιρεία ζητά να προσλάβει 4 υπαλλήλους με διαφορετικές αρμοδιότητες. Στην αγγελία απαντούν 4 πρόσωπα, το καθένα με προτιμήσεις για περισσότερες της μίας θέσεις. Η ανάθεση του προσωπικού σε θέσεις θα μπορούσε να επιλυθεί εφαρμόζοντας τον αλγόριθμο εύρεσης μίας μέγιστης αντιστοίχισης σε διγράφο. Έστω ότι κάθε ενδιαφερόμενος αποδίδει διαφορετικά στην εταιρεία αναλόγως με τη θέση που αναλαμβάνει. Άρα ο αντίστοιχος διγράφος είναι ζυγισμένος, και συνεπώς, η λύση του προβλήματος είναι μία βέλτιστη αντιστοίχιση με μέγιστο συνολικό βάρος (κέρδος). Θα χρησιμοποιηθεί ο ουγγρικός αλγόριθμος Data Science and Engineering Lab
52
Το πρόβλημα επιλογής προσωπικού (8)
Σε περίπτωση της εύρεσης της βέλτιστης αντιστοίχισης με μέγιστο βάρος θα χρησιμοποιηθεί ο ουγγρικός αλγόριθμος με την εξής τροποποίηση Κάθε τιμή αντικαθίσταται με την αρνητική της Σε κάθε γραμμή βρίσκουμε την περισσότερη αρνητική και προσθέτουμε την αντίστοιχη τιμή σε όλη τις θέσεις της γραμμής 14 5 8 7 2 12 6 3 9 4 10 -14 -5 -8 -7 -2 -12 -6 -3 -9 -4 -10 9 6 7 10 2 1 8 4 Data Science and Engineering Lab
53
Το πρόβλημα επιλογής προσωπικού (9)
Θεώρημα. Έστω ότι S είναι ένας m x n πίνακας. Ο μέγιστος αριθμός ανεξάρτητων μηδενικών που μπορούν να βρεθούν στον S ισούται με τον ελάχιστο αριθμό γραμμών ή στηλών που μαζί καλύπτουν όλα τα μηδενικά του S. Data Science and Engineering Lab
54
Data Science and Engineering Lab
Άσκηση 4 Να βρεθεί πως οι δουλειές θα ανατεθούν στις μηχανές ώστε να ελαχιστοποιηθεί το κόστος Job 1 Job 2 Job 3 Job 4 Machine 1 14 5 8 7 Machine 2 2 12 6 Machine 3 3 9 Machine 4 4 10 Data Science and Engineering Lab
55
Data Science and Engineering Lab
Άσκηση 5 Να βρεθεί πως οι δουλειές θα ανατεθούν στις μηχανές ώστε να ελαχιστοποιηθεί το κόστος Job 1 Job 2 Job 3 Machine 1 50 36 16 Machine 2 28 30 18 Machine 3 35 32 20 Machine 4 25 14 Θα θεωρήσουμε μία 4η δουλειά με κόστος 0 για όλες τις μηχανές Data Science and Engineering Lab
56
Data Science and Engineering Lab
Animation Data Science and Engineering Lab
57
Το πρόβλημα των σταθερών γάμων (1)
Έστω ότι πρόκειται να ζευγαρώσουν ένα σύνολο ανδρών m1,..., mn με ένα σύνολο γυναικών w1,..., wn. Ο καθένας τους, όμως, έχει τις δικές του προτιμήσεις. Έστω, ότι ο m1 νυμφεύεται την w1, ενώ ο m2 νυμφεύεται την w2. Ωστόσο, ο m1 θα προτιμούσε την w2, καθώς και η w2 θα προτιμούσε τον m1. Προφανώς, η διαμορφωνόμενη κατάσταση δεν είναι σταθερή. m1 m2 w1 w2 for m1: w2 > w1 for w2: m1 > m2 Data Science and Engineering Lab
58
Το πρόβλημα των σταθερών γάμων (2)
Είσοδος: Πίνακες προτιμήσεων ανδρών και γυναικών. Έξοδος: Ένα σύνολο σταθερών γάμων. Μέθοδος των Gale-Shapley (1962): Με διαδοχικές προτάσεις και αντιπροτάσεις. Κάθε άνδρας προτείνει την πρώτη του επιλογή. Κάθε γυναίκα με δύο ή περισσότερες προτάσεις, τις απορρίπτει όλες πλην μίας, χωρίς όμως να τη δέχεται οριστικά. Επιλέγουν εκ νέου οι άνδρες, που απορρίφθηκε η πρότασή τους, ενώ αυτοί που δεν απορρίφθηκε η επιλογή τους συνεχίζουν στην ίδια επιλογή. Τα Βήματα 2 και 3 επαναλαμβάνονται μέχρι να μην υπάρχει αντίρρηση εκ μέρους των γυναικών. Data Science and Engineering Lab
59
Το πρόβλημα των σταθερών γάμων (3)
men w1 w2 w3 w4 m1 1 2 3 4 m2 m3 m4 women Προτιμήσεις ανδρών και γυναικών Data Science and Engineering Lab
60
Το πρόβλημα των σταθερών γάμων (4)
proposals p1 p2 p3 p4 p5 p6 m1 1 2 3 m2 4 m3 m4 Με κόκκινο χρώμα συμβολίζονται οι προτάσεις ανδρών που έχουν απορριφθεί. Πολυπλοκότητα ? Τετραγωνική Ο(n2) Data Science and Engineering Lab
61
Το πρόβλημα των σταθερών γάμων (5)
Θεώρημα. Πάντα υπάρχει ένα σύνολο σταθερών γάμων μεταξύ n ανδρών και n γυναικών. Θεώρημα. Ο αλγόριθμος Gale-Shapley (με προτείνοντες τους άνδρες) δίνει μία αντιστοίχιση, όπου κάθε άνδρας αντιστοιχίζεται στην καλύτερη γυναίκα που μπορεί να νυμφευθεί (man-optimal). Θεώρημα. Στον αλγόριθμο Gale-Shapley κάθε γυναίκα αντιστοιχίζεται στο μη χειρότερο άνδρα που μπορεί να παντρευτεί (woman-pessimal). Data Science and Engineering Lab
62
Data Science and Engineering Lab
Άσκηση 6 Να επαληθευθεί το προηγούμενο θεώρημα. Να βρεθεί το woman- optimal σύνολο σταθερών γάμων. Είναι ίδιο με το man-optimal σύνολο σταθερών γάμων? men w1 w2 w3 w4 m1 1 2 3 4 m2 m3 m4 women Data Science and Engineering Lab
63
Ένα δεύτερο παράδειγμα
Δίνεται ένα σύνολο από 4 άνδρες και 4 γυναίκες, καθώς και οι προτιμήσεις τους x y z w a b c d x: a b c d y: a c b d z: c d a b w: c b a d a: z x y w b: y w x z c: w x y z d: x y z w Data Science and Engineering Lab
64
Ένα δεύτερο παράδειγμα (2)
Βήμα 1 x y z w a b c d x: a b c d y: a c b d z: c d a b w: c b a d a: z x y w b: y w x z c: w x y z d: x y z w Οι a και c απορ-ρίπτουν μία πρόταση Data Science and Engineering Lab
65
Ένα δεύτερο παράδειγμα (3)
Βήμα 2 x y z w a b c d x: a b c d y: a c b d z: c d a b w: c b a d a: z x y w b: y w x z c: w x y z d: x y z w Οι y και z επιλέγουν και πάλι το X κινείται προς τα δεξιά, το O προς τα αριστερά Data Science and Engineering Lab
66
Ένα δεύτερο παράδειγμα (4)
Βήμα 3 x y z w a b c d x: a b c d y: a c b d z: c d a b w: c b a d a: z x y w b: y w x z c: w x y z d: x y z w Κάθε γυναίκα δέχεται μία προσφορά. Τέλος. Πολυπλοκότητα Κυβική Ο(n3) Γιατί ? Data Science and Engineering Lab
67
Animation στο πρόβλημα
Data Science and Engineering Lab
68
Data Science and Engineering Lab
Εύρεση καλύμματος Το πρόβλημα είναι δυσχείριστο (NP-hard ), άρα θα καταφύγουμε σε προσεγγιστικό αλγόριθμο Άπληστος αλγόριθμος: Βρες μία κορυφή v με μέγιστο βαθμό. Πρόσθεσε την κορυφή v στη λύση και διάγραψε την κορυφή v και τις προσπίπτουσες ακμές από το γράφο. Επανάλαβε μέχρι να καλυφθούν όλες οι ακμές Πόσο καλός είναι αυτός ο αλγόριθμος ? Data Science and Engineering Lab
69
Data Science and Engineering Lab
Επίδοση ευριστικού αλγορίθμου (1) OPT = 6, το βέλτιστο είναι οι κόκκινες κορυφές. SOL = 11, αν διαλέξουμε λάθος στις ισοπαλίες. Πρώτα διαλέγουμε τις κίτρινες κορυφές, μετά τις πράσινες και τέλος τις πορτοκαλί κορυφές Data Science and Engineering Lab
70
Data Science and Engineering Lab
Επίδοση ευριστικού αλγορίθμου (2) k! κορυφές βαθμού k Γενίκευση του παραδείγματος k!/k κορυφές βαθμού k k!/(k-1) κορυφές βαθμού k-1 k! κορυφές βαθμού 1 OPT = k!, όλες οι επάνω κορυφές SOL = k! (1/k + 1/(k-1) + 1/(k-2) +…+ 1) ≈ k! log(k), όλες οι κάτω κορυφές Data Science and Engineering Lab
71
Επίσης άπληστος αλγόριθμος Πολυπλοκότητα πολυωνυμική
Εύρεση καλύμματος ακμών C E’ E while E’ do let (u,v) be an arbitrary edge of E’ C C {u,v} remove from E’ every edge incident to either u or v return C O(n2) O(n2) O(1) O(n) Επίσης άπληστος αλγόριθμος Πολυπλοκότητα πολυωνυμική Data Science and Engineering Lab
72
Επίδοση άπληστου αλγορίθμου (1)
Σε διγράφους ισχύει: μέγιστη αντιστοίχιση = ελάχιστο κάλυμμα. Αυτό δεν ισχύει σε γενικούς γράφους Πόσο μεγάλη μπορεί να είναι αυτή διαφορά ? Βρες μία μέγιστη αντιστοίχιση και χρωμάτισε μαύρες τις σχετικές κορυφές. Άρα οι μαύρες κορυφές αποτελούν ένα κάλυμμα. SOL ≤ 2 * μέγεθος της μέγιστης αντιστοίχισης. Data Science and Engineering Lab
73
Επίδοση άπληστου αλγορίθμου (2)
Ποιά είναι η βέλτιστη λύση ? Κάθε ακμή της αντιστοίχισης καλύπτεται από διαφορετική κορυφή ! OPT ≥ μέγεθος της μέγιστης αντιστοίχισης Άρα, OPT ≤ 2 SOL, έχουμε ένα 2-προσεγγιστικό αλγόριθμο Data Science and Engineering Lab
74
Data Science and Engineering Lab
Εύρεση καλύμματος ακμών - demo Data Science and Engineering Lab
75
Data Science and Engineering Lab
Εύρεση καλύμματος με σύνολα Set cover problem: Δεδομένου ενός συνόλου U με n στοιχεία, και ένα σύνολο υποσυνόλων του U, S* = {S1,S2,…,Sk}, όπου κάθε υποσύνολο έχει κόστος c(Si), να βρεθεί το υποσύνολο του S* που καλύπτει όλα τα στοιχεία του U. Το κάλυμμα κορυφών είναι ειδική περίπτωση Μία εύκολη αντιστοιχία: υποσύνολα στοιχεία Να επιλέξουμε το σύνολο των άσπρων κορυφών με ελάχιστο κόστος που καλύπτουν τις μαύρες κορυφές Data Science and Engineering Lab
76
Data Science and Engineering Lab
Εύρεση καλύμματος με σύνολα (2) Άπληστος αλγόριθμος: Βρες το σύνολο S που είναι καλύτερο με βάση το κόστος. Πρόσθεσε το S στη λύση και αφαίρεσε τα στοιχεία που καλύπτει από το σύνολο U. Επανάλαβε μέχρι να καλυφθούν όλα τα στοιχεία του U. Πόσο καλός είναι ο αλγόριθμος ? Data Science and Engineering Lab
77
Data Science and Engineering Lab
Εύρεση καλύμματος με σύνολα (3) U : a b c h d e S: a b {S1, S3, S4} είναι υποσύνολο του S που καλύπτει το U S1: S2: b {S1, S2, S3, S4} είναι υποσύνολο του S που καλύπτει το U S3: c h {S2, S3, S4, S5} είναι υποσύνολο του S που καλύπτει το U {S1, S3, S4, S5} είναι υποσύνολο του S που καλύπτει το U S4: d e S5: a {S1, S3, S4} είναι το ελάχιστο κάλυμμα με σύνολα Data Science and Engineering Lab
78
Data Science and Engineering Lab
Εύρεση καλύμματος με σύνολα (4) Μπορούμε να διαλέξουμε από S1, S3 και S4 a b c h Διαλέγουμε S1 U: Μπορούμε να διαλέξουμε από S3 και S4 Διαλέγουμε S3 d e Μπορούμε να διαλέξουμε από S4 S: Διαλέγουμε S4 S1: a b U: a b c h d e S2: b S1: a b S3: c h C: Επιλέγουμε κάθε φορά το σετ που καλύπτει το μεγαλύτερο πλήθος και διαγράφουμε τα καλυμένα κάθε φορά S3: c h S4: d e S4: d e S5: a Data Science and Engineering Lab
79
Data Science and Engineering Lab
Εύρεση καλύμματος με σύνολα (5) Το πρόβλημα set cover είναι ΝΡ-complete Αν το μέγεθος του μεγαλύτερου συνόλου S είναι m, τότε υπάρχει προσεγγιστικός πολυωνυμικός αλγόριθμος με προσέγγιση Data Science and Engineering Lab
80
Το πρόβλημα του ντόμινο
Μπορούμε να γεμίσουμε τα κενά της σκακιέρας με κομμάτια ντόμινο? Data Science and Engineering Lab
81
Data Science and Engineering Lab
Το πρόβλημα του ντόμινο (2) Δημιουργούμε μία κορυφή για κάθε κενό τετράγωνο της σκακιέρας. Ενώνουμε δύο κορυφές αν είναι γετονικές. Δημιουργείται ένας διγράφος με τα μαύρα και τα άσπρα τετράγωνα σε δύο μερικά σύνολα. Μία τέλεια αντιστοίχιση αντιστοιχεί σε μία τέλεια τοποθέτηση των κομματιών ντόμινο. Data Science and Engineering Lab
82
Data Science and Engineering Lab
Το λατινικό τετράγωνο Το λατινικό τετράγωνο είναι ένας πίνακας nxn και ο σκοπός είναι να τον γεμίσουμε με αριθμούς έτσι ώστε Κάθε γραμμή να περιέχει τους αριθμούς από 1 μέχρι n Κάθε στήλη να περιέχει τους αριθμούς από 1 μέχρι n Data Science and Engineering Lab
83
Data Science and Engineering Lab
Το λατινικό τετράγωνο (2) Έστω ένα μερικώς γεμάτο λατινικό τετράγωνο. Μπορούμε να το συμπληρώσουμε? Η απάντηση είναι ΝΑΙ, χρησιμοποιώντας αντιστοιχίσεις σε διγράφους. Η απόδειξη στηρίζεται σε 2 βήματα: Ανάγουμε σε πρόβλημα αντιστοιχίσεων σε διγράφο. Αποδεικνύουμε ότι υπάρχει λύση με βάση το θεώρημα του Hall. Data Science and Engineering Lab
84
Data Science and Engineering Lab
Το λατινικό τετράγωνο (3) Δοθέντος ενός μερικού λατινικού τετραγώνου, δημιουργούμε διγράφο ώστε να γεμίσουμε την επόμενη σειρά. 1 2 3 4 5 column number 1 2 3 4 5 Δημιουργούμε μία κορυφή για κάθε στήλη και μία κορυφή για κάθε αριθμό. Προσθέτουμε μία ακμή μεταξύ της στήλης i και του αριθμού j, αν ο αριθμός j μπορεί να μπει στη στήλη i. Data Science and Engineering Lab
85
Data Science and Engineering Lab
Το λατινικό τετράγωνο (4) Δοθέντος ενός μερικού λατινικού τετραγώνου, δημιουργούμε διγράφο ώστε να γεμίσουμε την επόμενη σειρά. 1 2 3 4 5 column 1 5 2 4 3 number 1 2 3 4 5 Μία τέλεια αντιστοίχιση δίνει την επόμενη σειρά. Data Science and Engineering Lab
86
Data Science and Engineering Lab
Στέρεες σιδηροκατασκευές Μη στέρεο στέρεο Data Science and Engineering Lab
87
Data Science and Engineering Lab
Στέρεες σιδηροκατασκευές (2) Μη στέρεο Στέρεο? Data Science and Engineering Lab
88
Data Science and Engineering Lab
Στέρεες σιδηροκατασκευές (3) ΝΑΙ !! Στέρεο? Data Science and Engineering Lab
89
Data Science and Engineering Lab
Στέρεες σιδηροκατασκευές (4) r1 r2 r3 c1 c2 c3 Θεώρημα: Μία σιδηροκατασκευή είναι στέρεα αν και μόνο αν ο αντίστοιχος διγράφος είναι συνδεδεμένος Data Science and Engineering Lab
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.