Το πρόβλημα του σταθερού γάμου
Γάμος και Θεωρία Γραφημάτων Γάμος πρόβλημα ταιριάσματος Θα δούμε έναν αλγόριθμο ταιριάσματος (matching algorithm) που χρησιμοποιείται σε πολλές εφαρμογές Γνωριμίες (γραφεία, internet sites) Προβλήματα ανάθεσης (γιατροί και αγροτικά) Προβλήματα ανάθεσης πόρων (κατανομή φορτίου κίνησης στο internet - load balancing)
Το πρόβλημα ταιριάσματος (Matching Problem) Στην απλούστερη εκδοχή του προβλήματος ταιριάσματος έχουμε γράφημα όπου οι ακμές αναπαριστούν συμβατότητα Δύο κορυφές μπορούν να ταιριαστούν ή να παντρευτούν Στόχος: να δημιουργήσουμε το μέγιστο πλήθος συμβατών ζευγαριών Ορισμός ταιριάσματος (matching): Δίνεται γράφημα G με κορυφές, V, και ακμές, E Ταίριασμα (matching): συλλογή ακμών που δεν μοιράζονται κοινές κορυφές υπογράφημα του G όπου κάθε κορυφή έχει βαθμό 1 Κάθε άτομο μπορεί να παντρευτεί μόνον ένα άλλο άτομο
v8 v7 v6 v5 v1 v2 v3 v4
v8 v7 v6 v5 v1 v2 v3 v4
v8 v7 v6 v1 v5 v2 v1 v2 v3 v4 Ταίριασμα μεγέθους 2 2 γάμοι Υπάρχει μεγαλύτερο ταίριασμα;; v6 v5
v8 v1 v7 v7 v2 v6 v6 v3 v5 v5 v1 v2 v3 v4 Ταίριασμα μεγέθους 3 3 γάμοι Υπάρχει ταίριασμα μεγέθους 4 (4 γάμοι);;;;
v8 v7 v6 v5 v1 v2 Δεν υπάρχει ταίριασμα μεγέθους 4 Το ταίριασμα με μέγεθος 3 είναι το καλύτερο που μπορούμε να πετύχουμε! v3 v4
Πλήρες ταίριασμα (perfect matching) Όταν στο ταίριασμα υπάρχουν όλες οι κορυφές του γραφήματος το ταίριασμα είναι πλήρες (perfect matching) Ένα ταίρισμα είναι πλήρες όταν το μέγεθός του ισούται με το μισό του πλήθους των κορυφών Αν το πλήθος των ακμών του ταιριάσματος είναι V /2 όλες οι κορυφές υπάρχουν στο ταίριασμα
b1 b2 b3 b4 g1 g2 g3 g4
b1 b2 b3 b4 g1 g2 g3 g4
b1 b2 b3 b4 g1 g2 g3 g4 b1 b2 b3 b4 Πλήρες ταίριασμα!! g1 g2 g3 g4
Ταιριάσματα σε γραφήματα με βάρη (στις ακμές) Σε κάποιες περιπτώσεις, κάποια ταιριάσματα είναι προτιμότερα από άλλα αυτό αναπαρίσταται με βάρη χρησιμοποιούμε γραφήματα με βάρη στις ακμές b1 b2 b3 10 5 g1 g2 g3 Μικρότερο βάρος προτιμότερο ταίριασμα b4 g4
Ταιριάσματα σε γραφήματα με βάρη (στις ακμές) Σε κάποιες περιπτώσεις, κάποια ταιριάσματα είναι προτιμότερα από άλλα αυτό αναπαρίσταται με βάρη χρησιμοποιούμε γραφήματα με βάρη στις ακμές ΣΤΟΧΟΣ: να βρεθεί ταίριασμα με ελάχιστο βάρος
Βάρος ταιριάσματος Βάρος ταιριάσματος, Μ: άθροισμα βαρών όλων των ακμών του M Όταν μελετάμε ταιριάσματα με βάρη απαιτούμε πλήρη ταιριάσματα ώστε να μπορούν να ταιριαστούν όλες οι κορυφές Οπότε μπορεί να υπάρχουν όλες οι ακμές ακόμα και με πολύ μεγάλα βάρη, ακόμα και με άπειρο βάρος αν οι αντίστοιχες κορυφές δεν είναι συμβατές Διαφορετικά, δεν ταιριάζουμε κανέναν με κανέναν και έχουμε βάρος 0
Ταιριάσματα με ελάχιστο βάρος Ταιριάσματα με ελάχιστο βάρος: πλήρη ταιριάσματα με ελάχιστο βάρος Ένα ταίριασμα ελάχιστου βάρους για ένα γράφημα, G, είναι ένα πλήρες ταίριασμα για το G με ελάχιστο βάρος ανάμεσα σε όλα τα πλήρη ταιριάσματα για το γράφημα αυτό
Ταιριάσματα με ελάχιστο βάρος Ταιριάσματα με ελάχιστο βάρος: πλήρη ταιριάσματα με ελάχιστο βάρος Ένα ταίριασμα ελάχιστου βάρους για ένα γράφημα, G, είναι ένα πλήρες ταίριασμα για το G με ελάχιστο βάρος ανάμεσα σε όλα τα πλήρη ταιριάσματα για το γράφημα αυτό Κώστας Γιώργος 10 16 5 10 Δήμητρα Κατερίνα Ποιο είναι το ταίριασμα με ελάχιστο βάρος στο γράφημα αυτό;
Ταιριάσματα με ελάχιστο βάρος Ταιριάσματα με ελάχιστο βάρος: πλήρη ταιριάσματα με ελάχιστο βάρος Ένα ταίριασμα ελάχιστου βάρους για ένα γράφημα, G, είναι ένα πλήρες ταίριασμα για το G με ελάχιστο βάρος ανάμεσα σε όλα τα πλήρη ταιριάσματα για το γράφημα αυτό Κώστας Γιώργος 10 16 5 10 Δήμητρα Κατερίνα Ποιο είναι το ταίριασμα με ελάχιστο βάρος στο γράφημα αυτό; Οι κόκκινες ακμές με συνολικό βάρος 20 έστω και αν δεν είναι οι πιο επιθυμητές
Δυσκολία ; Το να βρούμε το μέγιστο ταίριασμα το μέγιστο πλήθος ακμών που μπορούμε να βάλουμε μαζί Το να βρούμε το πλήρες ταίριασμα με το ελάχιστο βάρος Είναι και τα 2 προβλήματα που λύνονται Ο σχετικός αλγόριθμος τρέχει σε πολυωνυμικό χρόνο αλλά δεν είναι υπολογιστικά δύσκολα (NP-complete) προβλήματα και γνωρίζουμε πώς λύνονται
Ενδιαφέρουσα παραλλαγή Θα δούμε μια ελαφρώς διαφορετική εκδοχή του προβλήματος που έχει μεγαλύτερη πρακτική σημασία αφού υπάρχει ένας πολύ όμορφος σχετικός αλγόριθμος Πλέον, οι συμμετέχοντες έχουν προτιμήσεις Λίστα προτιμήσεων Δεν περιέχει βάρη παρά μόνο διαταγμένες λίστες προτίμησης με τους ενδεχόμενους συντρόφους Οι προτιμήσεις δεν είναι κατ ανάγκη συμμετρικές Κώστας Γιώργος 1 1 2 1 2 1 2 Δήμητρα Κατερίνα
Τι θα γίνει αν παντρέψουμε το Κώστα με τη Δήμητρα και το Γιώργο με την Κατερίνα και τους αφήσουμε σε ένα ερημικό νησί; Κώστας Γιώργος 1 1 2 1 2 1 2 Δήμητρα Κατερίνα
Τι θα γίνει αν παντρέψουμε το Κώστα με τη Δήμητρα και το Γιώργο με την Κατερίνα και τους αφήσουμε σε ένα ερημικό νησί; Ο Κώστας και η Κατερίνα θα απατήσουν τους συντρόφους τους αφού προτιμούν περισσότερο ο ένας τον άλλον από τους συντρόφους τους Κώστας Γιώργος 1 1 2 1 2 1 2 Δήμητρα Κατερίνα
Τι θα γίνει αν παντρέψουμε το Κώστα με τη Δήμητρα και το Γιώργο με την Κατερίνα και τους αφήσουμε σε ένα ερημικό νησί; Ο Κώστας και η Κατερίνα θα απατήσουν τους συντρόφους τους αφού προτιμούν περισσότερο ο ένας τον άλλον από τους συντρόφους τους Κώστας και Κατερίνα αποτελούν ένα «αδίστακτο ζευγάρι» (rogue couple) Κώστας Γιώργος 1 1 2 1 2 1 2 Δήμητρα Κατερίνα
«Αδίστακτα ζευγάρια» (rogue couples) Σε ένα ταίριασμα (matching) Μ, ένα αγόρι x και ένα κορίτσι y, αποτελούν «αδίστακτο ζευγάρι» (rogue couple) αν προτιμούν ο ένας τον άλλον περισσότερο από τους συντρόφους τους στο ταίριασμα Μ Η ύπαρξη «αδίστακτων ζευγαριών» είναι κακό χαρακτηριστικό Προκαλούν αστάθεια ένα ταίριασμα είναι σταθερό (stable) αν δεν περιέχει «αδίστακτα ζευγάρια»
«Αδίστακτα ζευγάρια» (rogue couples) Οι προτιμήσεις των συμμετεχόντων δεν μεταβάλλονται Αν δεν υπάρχουν εξ αρχής «αδίστακτα ζευγάρια» δεν πρόκειται να δημιουργηθούν στο μέλλον ΣΤΟΧΟΣ: δημιουργία σταθερού πλήρους ταιριάσματος Ζητούμενο είναι να παντρέψουμε όλους τους συμμετέχοντες και το αποτέλεσμα να είναι σταθερό Μπορούμε να το πετύχουμε στο παράδειγμα; ΝΑΙ: Ο Γιώργος παντρεύεται τη Δήμητρα Αν και Γιώργος και Δήμητρα ίσως δεν είναι απόλυτα χαρούμενοι το συνολικό ταίριασμα είναι σταθερό! 2 1 Κώστας Δήμητρα 1 2 Γιώργος 2 1 1 2 Κατερίνα
Υπάρχουν πάντα σταθερά πλήρη ταιριάσματα; Τι ισχύει στη γενική περίπτωση; Αν υπάρχουν περισσότερα άτομα με αυθαίρετες προτιμήσεις, υπάρχει πάντα σταθερό πλήρες ταίριασμα; Μπορεί ΝΑΙ μπορεί και OΧΙ Π.χ., αν επιτρέψουμε στα αγόρια να προτιμούν αγόρια και στα κορίτσια να προτιμούν κορίτσια τότε μπορεί να μην υπάρχει πάντα σταθερό πλήρες ταίριασμα Μπορούμε να εντοπίζουμε παραδείγματα όπου πάντα υπάρχει «αδίστακτο ζευγάρι» Αν απαιτήσουμε να ταιριάζονται μόνο αγόρια με κορίτσια και αντίστροφα τότε είναι δυνατόν να βρίσκουμε πάντα σταθερά πλήρη ταιριάσματα
Πέτρος 2 1 3 1 2 Λουκάς 2 1 Δημήτρης 3 3 Χριστόφορος Θα αποδείξουμε ότι δεν υπάρχει σταθερό ταίριασμα για το παραπάνω σύνολο προτιμήσεων
Δεν υπάρχει σταθερό ταίριασμα στο γράφημα του σχήματος Απόδειξη (με απαγωγή σε άτοπο) Υποθέτουμε ότι υπάρχει σταθερό ταίριασμα, έστω Μ Θα δείξουμε ότι περιέχει «αδίστακτο ζευγάρι» Στο Μ, ο Χριστόφορος πρέπει να έχει κάποιο ταίρι Wlog (λόγω συμμετρίας) υποθέτουμε ότι ταιριάστηκαν Χριστόφορος και Πέτρος Το τρίγωνο εμφανίζει συμμετρία γιατί κάθε άτομο προτιμά το επόμενο επομένως, κάθε κορυφή του μοιάζει ίδια Πέτρος Μήπως υπάρχει «αδίστακτο ζευγάρι»; Μ όχι σταθερό!! 2 1 3 Λουκάς 1 3 2 1 3 2 Δημήτρης Χριστόφορος
Υπάρχουν πάντα σταθερά πλήρη ταιριάσματα; Τι ισχύει στη γενική περίπτωση; Αν υπάρχουν περισσότερα άτομα με αυθαίρετες προτιμήσεις, υπάρχει πάντα σταθερό πλήρες ταίριασμα; Μπορεί ΝΑΙ μπορεί και OΧΙ Π.χ., αν επιτρέψουμε στα αγόρια να προτιμούν αγόρια και στα κορίτσια να προτιμούν κορίτσια τότε μπορεί να μην υπάρχει πάντα σταθερό πλήρες ταίριασμα Μπορούμε να εντοπίζουμε παραδείγματα όπου πάντα υπάρχει «αδίστακτο ζευγάρι» Αν απαιτήσουμε να ταιριάζονται μόνο αγόρια με κορίτσια και αντίστροφα τότε είναι δυνατόν να βρίσκουμε πάντα σταθερά πλήρη ταιριάσματα
Έχουμε N αγόρια και N κορίτσια Υπάρχουν σενάρια που το πλήθος αγοριών και κοριτσιών δεν είναι το ίδιο Π.χ., αναθέσεις γιατρών σε αγροτικά Χρησιμοποιείται παραπλήσιος αλγόριθμος με αυτόν που θα δούμε στη συνέχεια Κάθε αγόρι διατηρεί τη δική του διαταγμένη λίστα προτιμήσεων για όλα τα κορίτσια Κάθε κορίτσι διατηρεί τη δική της διαταγμένη λίστα προτιμήσεων για όλα τα αγόρια Οι λίστες είναι πλήρεις και δεν υπάρχουν ισοπαλίες ΣΤΟΧΟΣ: να βρούμε πλήρες ταίριασμα που να μην περιέχει «αδίστακτα ζευγάρια»
Αγόρι 1: C, B, E, A, D Κορίτσι A: 3, 5, 2, 1, 4 Αγόρι 2: A, B, E, C, D Κορίτσι B: 5, 2, 1, 4, 3 Αγόρι 3: D, C, B, A, E Κορίτσι C: 4, 3, 5, 1, 2 Αγόρι 4: A, C, D, B, E Κορίτσι D: 1, 2, 3, 4, 5 Αγόρι 5: A, B, D, E, C Κορίτσι E: 2, 3, 4, 1, 5 Πώς θα μπορούσαμε να παράγουμε ταιριάσματα;;
Αγόρι 1: C, B, E, A, D Κορίτσι A: 3, 5, 2, 1, 4 Αγόρι 2: A, B, E, C, D Κορίτσι B: 5, 2, 1, 4, 3 Αγόρι 3: D, C, B, A, E Κορίτσι C: 4, 3, 5, 1, 2 Αγόρι 4: A, C, D, B, E Κορίτσι D: 1, 2, 3, 4, 5 Αγόρι 5: A, B, D, E, C Κορίτσι E: 2, 3, 4, 1, 5 Ιδέα: Χρησιμοποιώντας τον άπληστο αλγόριθμο (greedy algorithm) Δίνουμε σε κάθε αγόρι την καλύτερη δυνατή προτίμηση
Αγόρι 1: C, B, E, A, D Κορίτσι A: 3, 5, 2, 1, 4 Αγόρι 2: A, B, E, C, D Κορίτσι B: 5, 2, 1, 4, 3 Αγόρι 3: D, C, B, A, E Κορίτσι C: 4, 3, 5, 1, 2 Αγόρι 4: A, C, D, B, E Κορίτσι D: 1, 2, 3, 4, 5 Αγόρι 5: A, B, D, E, C Κορίτσι E: 2, 3, 4, 1, 5 Ιδέα: Χρησιμοποιώντας τον άπληστο αλγόριθμο (greedy algorithm) Δίνουμε σε κάθε αγόρι την καλύτερη δυνατή προτίμηση
Αγόρι 1: C, B, E, A, D Κορίτσι A: 3, 5, 2, 1, 4 Αγόρι 2: A, B, E, C, D Κορίτσι B: 5, 2, 1, 4, 3 Αγόρι 3: D, C, B, A, E Κορίτσι C: 4, 3, 5, 1, 2 Αγόρι 4: A, C, D, B, E Κορίτσι D: 1, 2, 3, 4, 5 Αγόρι 5: A, B, D, E, C Κορίτσι E: 2, 3, 4, 1, 5 Ιδέα: Χρησιμοποιώντας τον άπληστο αλγόριθμο (greedy algorithm) Δίνουμε σε κάθε αγόρι την καλύτερη δυνατή προτίμηση Για να ελέγξουμε αν το ταίριασμα είναι σταθερό εξετάζουμε αν υπάρχουν «αδίστακτα ζευγάρια»
Αγόρι 1: C, B, E, A, D Κορίτσι A: 3, 5, 2, 1, 4 Αγόρι 2: A, B, E, C, D Κορίτσι B: 5, 2, 1, 4, 3 Αγόρι 3: D, C, B, A, E Κορίτσι C: 4, 3, 5, 1, 2 Αγόρι 4: A, C, D, B, E Κορίτσι D: 1, 2, 3, 4, 5 Αγόρι 5: A, B, D, E, C Κορίτσι E: 2, 3, 4, 1, 5 Ιδέα: Χρησιμοποιώντας τον άπληστο αλγόριθμο (greedy algorithm) Δίνουμε σε κάθε αγόρι την καλύτερη δυνατή προτίμηση Για να ελέγξουμε αν το ταίριασμα είναι σταθερό εξετάζουμε αν υπάρχουν «αδίστακτα ζευγάρια» που όντως υπάρχουν όχι σταθερό ταίριασμα
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Άλλη ιδέα: θα περιγράψουμε μια τελετή ταιριάσματος που διαρκεί για μέρες Η μέρα χωρίζεται σε 3 διαστήματα: Πρωί Απόγευμα Βράδυ
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Άλλη ιδέα: θα περιγράψουμε μια τελετή ταιριάσματος που διαρκεί για μέρες Η μέρα χωρίζεται σε 3 διαστήματα: Πρωί Κάθε κορίτσι βγαίνει στο μπαλκόνι της Κάθε αγόρι πηγαίνει κάτω από το μπαλκόνι του κοριτσιού που προτιμά περισσότερο και παραμένει στη λίστα του και της προτείνει να την παντρευτεί Αρχικά, οι λίστες των αγοριών είναι πλήρεις Αν κατά τη διάρκεια του αλγορίθμου η λίστα κάποιου αγοριού αδειάσει: ΠΡΟΒΛΗΜΑ
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Άλλη ιδέα: θα περιγράψουμε μια τελετή ταιριάσματος που διαρκεί για μέρες Η μέρα χωρίζεται σε 3 διαστήματα: Απόγευμα Κορίτσια με τουλάχιστον 1 μνηστήρα, επιλέγουν αυτόν που προτιμούν περισσότερο λέγοντάς του «Ίσως σε παντρευτώ, ξαναέλα αύριο» και απορρίπτουν τους υπόλοιπους μνηστήρες με χαμηλότερη προτεραιότητα λέγοντάς τους «Δεν υπάρχει περίπτωση να σε παντρευτώ ποτέ»
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Άλλη ιδέα: θα περιγράψουμε μια τελετή ταιριάσματος που διαρκεί για μέρες Η μέρα χωρίζεται σε 3 διαστήματα: Βράδυ Κάθε αγόρι που πήρε απάντηση ΟΧΙ διαγράφει το αντίστοιχο κορίτσι από τη λίστα του Κάθε αγόρι που πήρε απάντηση ΙΣΩΣ επιστρέφει την επόμενη μέρα στο κορίτσι αυτό και της ξαναζητάει να την παντρευτεί
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Η διαδικασία αυτή συνεχίζεται Αν κάποια μέρα κάθε κορίτσι έχει το πολύ 1 μνηστήρα, ο αλγόριθμος τερματίζει και κάθε κορίτσι λέει στο μνηστήρα που έχει «Ναι, θα σε παντρευτώ»! Θα αποδείξουμε ότι δεν υπάρχει περίπτωση κάποιο κορίτσι να μην έχει μνηστήρα Επομένως: συνθήκη τερματισμού: κανένα κορίτσι δεν έχει 2 ή περισσότερους μνηστήρες κάτω από το μπαλκόνι της
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 1 Πρωί Απόγευμα Βράδυ 2,4,5 -- 1 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 1 Πρωί Απόγευμα Βράδυ 2,4,5 -- 1 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: C, B, E, A, D Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 1 Πρωί Απόγευμα Βράδυ 2,4,5 -- 1 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: C, B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 2 Πρωί Απόγευμα Βράδυ 5 2 1,4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: C, B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 2 Πρωί Απόγευμα Βράδυ 5 2 1,4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: C, B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 2 Πρωί Απόγευμα Βράδυ 5 2 1,4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 3 Πρωί Απόγευμα Βράδυ 5 1,2 4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 3 Πρωί Απόγευμα Βράδυ 5 1,2 4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: B, E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 3 Πρωί Απόγευμα Βράδυ 5 1,2 4 3 -- Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C Μέρα 4 ΤΕΡΜΑΤΙΣΜΟΣ αφού κάθε κορίτσι έχει 1 μνηστήρα 5 2 4 3 1 Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5
Αγόρι 1: E, A, D Αγόρι 2: B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: C, D, B, E Αγόρι 5: A, B, D, E, C 5 2 4 3 1 Κορίτσι A: 3, 5, 2, 1, 4 Κορίτσι B: 5, 2, 1, 4, 3 Κορίτσι C: 4, 3, 5, 1, 2 Κορίτσι D: 1, 2, 3, 4, 5 Κορίτσι E: 2, 3, 4, 1, 5 Αγόρι 1: C, B, E, A, D Υπάρχουν μήπως «αδίστακτα ζευγάρια»; ΟΧΙ!! Το ταίριασμα είναι σταθερό!! Αγόρι 2: A, B, E, C, D Αγόρι 3: D, C, B, A, E Αγόρι 4: A, C, D, B, E Αγόρι 5: A, B, D, E, C
Για τον αλγόριθμο που μόλις παρουσιάσαμε πρέπει να αποδείξουμε: ότι όλα τα άτομα βρίσκουν ταίρι δηλ., συμμετέχουν στο ταίριασμα ότι δεν υπάρχουν «αδίστακτα ζευγάρια» ότι τρέχει γρήγορα ιδιότητες δικαιοσύνης: ο αλγόριθμος ευνοεί τα αγόρια ή τα κορίτσια;
Ο αλγόριθμος τερματίζει σε το πολύ N 2 +1 μέρες N είναι ο αριθμός αγοριών και των κοριτσιών Απόδειξη (με απαγωγή σε άτοπο) Έστω ότι ο αλγόριθμος ΔΕΝ τερματίζει σε N 2 +1 μέρες Για να δείξουμε ότι τερματίζει πρέπει να δείξουμε ότι κάνει κάποια πρόοδο κάθε μέρα Αν δεν τερματίζει ο αλγόριθμος κάποια μέρα αυτό σημαίνει ότι κάποιο κορίτσι είχε 2 ή περισσότερους μνηστήρες, απέρριψε τουλάχιστον 1 και το βράδυ το αγόρι αυτό διέγραψε το κορίτσι από τη λίστα του Άρα δεν τερματίζει ο αλγόριθμος όσο κάθε βράδυ κάποιο αγόρι διαγράφει κάποιο κορίτσι από τη λίστα του Αν ο αλγόριθμος δεν τερματίζει μετά από Ν 2 +1 μέρες θα πρέπει να έχουν γίνει Ν 2 +1 διαγραφές κοριτσιών από όλες τις λίστες αγοριών ΌΜΩΣ υπάρχουν Ν λίστες με Ν μέλη η καθεμία, δηλ., συνολικά μόνο Ν 2 δυνατές διαγραφές Καταλήγουμε επομένως σε άτοπο ο αλγόριθμος τερματίζει σε το πολύ N 2 +1 μέρες
Καθώς ένα κορίτσι περιμένει στο μπαλκόνι της, η κατάσταση μπορεί μόνο να βελτιωθεί Αφού κρατάει πάντα το αγόρι που προτιμάει περισσότερο από αυτά που τη διεκδικούν Και όταν κάποιο νέο αγόρι εμφανίζεται, πρέπει να το προτιμάει περισσότερο από το αμέσως προηγούμενο για να το κρατήσει Επομένως, όσο κάποιο κορίτσι απορρίπτει αγόρια το κάνει γιατί εμφανίστηκαν καλύτερες επιλογές και σε όποιον λέει «ίσως» επιστρέφει την επόμενη μέρα Σταθερό χαρακτηριστικό του αλγορίθμου: Όταν κάποιο κορίτσι έχει μνηστήρα, με το να προχωράει έχει μνηστήρες που της αρέσουν τουλάχιστον εξίσου Όταν κάποιο κορίτσι απορρίπτει κάποιο αγόρι, αποκτάει κάποιον μνηστήρα σίγουρα καλύτερο
P: αν ένα κορίτσι, G, απορρίψει κάποιο αγόρι, B, τότε το κορίτσι, G, έχει μνηστήρα, ή αν ο αλγόριθμος έχει τερματίσει, σύζυγο που προτιμάει από το B Απόδειξη (με επαγωγή στο πλήθος των ημερών) Για να αποδείξουμε ότι η ιδιότητα αυτή ισχύει πρέπει κατ αρχάς να δείξουμε ότι ισχύει στην αρχή του αλγορίθμου (Βάση της επαγωγής) Ισχύει η ιδιότητα τη μέρα 0; Ναι Επειδή κανένα αγόρι δεν έχει απορριφθεί ακόμα (Επαγωγική υπόθεση) Υποθέτουμε ότι η ιδιότητα P ισχύει στο τέλος της μέρας d (Επαγωγικό βήμα) Ισχύει η ιδιότητα P και στο τέλος της μέρας d+1; Εξετάζουμε 2 περιπτώσεις με βάση το πότε το κορίτσι G απέρριψε το αγόρι Β» H G απορρίπτει το B τη μέρα d+1 ΓΙΑΤΙ;; Γιατί εμφανίστηκε καλύτερο αγόρι!! Ισχύει η P τη μέρα d+1» H G απέρριψε το B πριν τη μέρα d+1, επειδή ίσχυε η P στο τέλος της μέρας d H G είχε ήδη καλύτερο μνηστήρα τη μέρα d που ξαναεμφανίστηκε τη μέρα d+1 για αυτό απέρριψε το B
Όλα τα άτομα βρίσκουν ταίρι Απόδειξη (με απαγωγή σε άτοπο) Έστω ότι κάποιο αγόρι, B, δεν βρήκε ταίρι Αφού δεν έχουν βρει όλα τα άτομα ταίρι σίγουρα κάποιο αγόρι δεν έχει ταίρι Τι σημαίνει ότι το αγόρι Β δεν έχει παντρευτεί όταν τερματίζει ο αλγόριθμος; Απορρίφθηκε από όλα τα κορίτσια γιατί αν περίμενε κάτω από κάποιο μπαλκόνι, θα είχε ακόμα κάποιο κορίτσι στη λίστα του και θα την παντρευόταν τελικά αφού ο αλγόριθμος τερματίζει κάθε κορίτσι είχε καλύτερο μνηστήρα και κάθε κορίτσι παντρεύεται άρα και κάθε αγόρι παντρεύεται συμπεριλαμβανομένου του Β ΑΤΟΠΟ Άρα, ο αλγόριθμος τερματίζει και όλα τα άτομα βρίσκουν ταίρι
Ο αλγόριθμος παράγει σταθερό ταίριασμα δεν υπάρχουν «αδίστακτα ζευγάρια» Απόδειξη (με απαγωγή σε άτοπο) Έστω ότι υπάρχει «αδίστακτο ζευγάρι» Έστω ο Bob και η Gail αυθαίρετο ζευγάρι που δεν είναι παντρεμένοι Πρέπει να δείξουμε ότι οι Bob και Gail δεν επιθυμούν ο ένας τον άλλο Γιατί τελικά δεν παντρεύτηκαν οι Bob και Gail; Η Gail απέρριψε το Bob Η Gail έχει άλλο μνηστήρα που προτιμά περισσότερο Η Gail παντρεύεται κάποιον που προτιμά περισσότερο από το Bob Gail, Bob δεν μπορεί να είναι «αδίστακτο ζευγάρι» αφού η Gail προτιμά το σύζυγό της Η Gail δεν απέρριψε το Bob Υπάρχει περίπτωση να ζήτησε ποτέ ο Bob στη Gail να τον παντρευτεί; ΌΧΙ γιατί αν είχε ζητήσει θα ήταν τώρα παντρεμένοι ο Bob δεν χρειάστηκε να φτάσει ποτέ τόσο χαμηλά στη λίστα του για να προτείνει στη Gail O Bob προτιμά τη σύντροφό του από τη Gail Σε κάθε περίπτωση, Bob και Gail δεν είναι «αδίστακτο ζευγάρι» δεν υπάρχουν «αδίστακτα ζευγάρια» το ταίριασμα είναι σταθερό!!
Δικαιοσύνη: ο αλγόριθμος ευνοεί τα αγόρια ή τα κορίτσια; Ίσως τα κορίτσια επειδή τελικά μένουν με το καλύτερο αγόρι από αυτά που τους προτείνουν γάμο ενώ αυτές κάθονται και περιμένουν τον κ. Τέλειο που μπορεί να μην εμφανιστεί ποτέ Ίσως τα αγόρια που όντως τολμάνε να διεκδικήσουν κορίτσια που προτιμούν περισσότερο Μπορεί να απορριφθούν αλλά συνεχίζουν να προσπαθούν Το ερώτημα είναι κεντρικό στην Κοινωνιολογία Στα ζωικά είδη, τι είναι προτιμότερο: να προτείνεις ή να αποδέχεσαι; Ποια προσέγγιση δίνει τα καλύτερα αποτελέσματα; Θα αποδείξουμε ότι η απάντηση είναι πως ο αλγόριθμος ευνοεί τα αγόρια
Για κάθε συλλογή λιστών προτίμησης, έστω S το σύνολο όλων των σταθερών ταιριασμάτων S ΓΙΑΤΙ; Γιατί ο αλγόριθμος που παρουσιάσαμε παράγει ένα σταθερό ταίριασμα υπάρχει τουλάχιστον ένα στοιχείο στο S και στ αλήθεια μπορούν να υπάρχουν και άλλα στοιχεία Για κάθε άτομο P το εύρος δυνατότητας (realm of possibility) είναι το σύνολο συντρόφων που μπορεί να έχει το άτομο αυτό σε ένα σταθερό ταίριασμα {Q M S {P,Q} M} Ο Κώστας δεν είναι ρεαλιστική επιλογή για τη Δήμητρα o Κώστας δεν ανήκει στο εύρος δυνατοτήτων της Δήμητρας αφού σε κάθε πλήρες ταίριασμα που ο Κώστας παντρευτεί τη Δήμητρα θα υπάρχει «αδίστακτο ζευγάρι» επειδή ο Κώστας θα κυνηγάει την Κατερίνα Κώστας Γιώργος 1 1 2 1 2 1 2 Δήμητρα Κατερίνα
Βέλτιστος σύντροφος (optimal mate): ο προτιμότερος σύντροφος από το εύρος δυνατοτήτων ενός ατόμου Όχι απαραίτητα η πρώτη προτίμηση του ατόμου αυτού Χείριστος σύντροφος (pessimal mate): ο λιγότερο προτιμότερος σύντροφος από το εύρος δυνατοτήτων ενός ατόμου Ο αλγόριθμος παντρεύει κάθε αγόρι με τη βέλτιστη σύντροφο (optimal mate) κάθε κορίτσι με το χείριστο σύντροφο (pessimal mate) Κάπως παράδοξα συμπεράσματα δεδομένου ότι: Τα αγόρια κατεβαίνουν στη λίστα τους Τα κορίτσια συνεχώς βελτιώνουν τη θέση τους
Θα υποθέσουμε ότι είναι αληθές ότι ο αλγόριθμος παντρεύει κάθε αγόρι με τη βέλτιστη σύντροφο (optimal mate) και θα αποδείξουμε με απαγωγή σε άτοπο ότι Ο αλγόριθμος παντρεύει κάθε κορίτσι με το χείριστο σύντροφο (pessimal mate) Έστω ότι υπάρχει σταθερό ταίριασμα Μ που κάποιο κορίτσι καταλήγει με χειρότερο σύντροφο Β από αυτόν που της αποδίδει ο αλγόριθμος Ποιο αγόρι προτιμάει η G; Προτιμάει το αγόρι B To αγόρι Β ποια προτιμάει; Τη G (βλ. προηγούμενη διαφάνεια) Υπάρχει «αδίστακτο ζευγάρι» στο Μ το ταίριασμα Μ δεν είναι σταθερό!! B B M Αλγόριθμος G G
Συμπέρασμα: αξίζει τον κόπο να διεκδικείς αυτό που θες!! Ο αλγόριθμος έχει πολλές πρακτικές εφαρμογές Αναθέσεις γιατρών σε αγροτικά Ποιος είναι τα «αγόρια»; Το νοσοκομείο!!!!! Online dating Εξισορρόπηση φορτίου (load balancing) στο Web Οι web servers είναι τα αγόρια και προτιμούν αιτήματα που αποφέρουν μεγαλύτερο κέρδος Τα αιτήματα εξυπηρέτησης είναι τα κορίτσια και προτιμούν servers που είναι γρηγορότεροι
Για σκέψη: Φανταστείτε ότι τα Μουσεία στην Ελλάδα δέχονται ένα group το καθένα για επίσκεψη για να αυξήσουν έσοδα και visibility Τα Μουσεία προτιμούν μεγάλα groups Τα groups προτιμούν κοντινά Μουσεία Τι αποτελέσματα θα έδινε ο αλγόριθμος για σταθερό γάμο;;