Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Θεωρία & Αλγόριθμοι Γράφων Αντιστοιχίσεις και Καλύμματα

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Θεωρία & Αλγόριθμοι Γράφων Αντιστοιχίσεις και Καλύμματα"— Μεταγράφημα παρουσίασης:

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


Κατέβασμα ppt "Θεωρία & Αλγόριθμοι Γράφων Αντιστοιχίσεις και Καλύμματα"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google