Kod znajdujący wszystkie stabilne dopasowania w problemie jeden do jednego


6

Czy znasz jakiś publicznie dostępny kod w Pythonie lub R (lub innym wolnym języku wysokiego poziomu), który zwraca wszystkie stabilne dopasowania dla dowolnego problemu dopasowania jeden do jednego?


Uwaga : jest to powiązane, ale różni się od dostępnego kodu do obliczania rozwiązań pasujących algorytmów? .

W tym drugim pytaniu poprosiłem o kod implementujący znane mechanizmy, takie jak mechanizm odroczonej akceptacji. Niektóre z tych mechanizmów znajdują jedno stabilne dopasowanie między innymi. Tutaj szukam kodu, który znajdzie wszystkie stabilne dopasowania.

Sprawdziłem pakiety zalecane w odpowiedziach, które znalazłem Dostępny kod do obliczeń rozwiązań zgodnych algorytmów? i nie znalazłem niczego, co by zadziałało.


W ustawieniu dopasowania dwustronnego istnieją tylko dwa stabilne dopasowania - optymalne stabilne dopasowanie proponującego i optymalne stabilne dopasowanie akceptora. Uruchomienie Gale-Shapleya w obu przypadkach da pożądany rezultat.
ml0105

1
@ ml0105: Nie możemy mieć na myśli tego samego modelu. W dwustronnym ustawieniu dopasowania, które mam na myśli (tym z oryginalnego artykułu Gale'a i Shapleya z 1962 r.), Może istnieć duża liczba stabilnych dopasowań (i wiele o nich napisano, w szczególności o ich strukturze kratowej po sparowaniu z odpowiednim relacja binarna). Dla prostego przykładu spójrz na przykład w Przykład 3.7 w Klaus, B. i Klijn, F. (2006). „Median Stable Matching for College Admissions”, który zawiera 3 stabilne dopasowania (przepraszam, jeśli nie możesz uzyskać do niego dostępu, chciałem go tutaj odtworzyć, ale jest za długi na komentarz).
Martin Van der Linden

Stoję skorygowany (i przepraszam za dezinformację!)
ml0105,

Odpowiedzi:


2

MatchingMarkets pakiet w programie R teraz realizuje dwie funkcje kodowania przymusu, aby znaleźć wszystkie stabilnych skojarzeń w trzech najczęstszych problemów pasujące:

  • hri: problem przyjęć do college'u (w tym dopasowanie studentów i studentów do optymalnych wyników) i problem stabilnego małżeństwa (w tym dopasowanie mężczyzn i kobiet)

  • sri: problem stabilnych współlokatorów.

Co więcej, pozwala również na niekompletne listy preferencji (niektórzy agenci uważają niektórych agentów za niedopuszczalne) i niezrównoważone instancje (nierówna liczba agentów po obu stronach) dla wszystkich trzech problemów.

Jeśli używasz Pythona, można uruchomić za pomocą kodu R rpy2.


2

Patrick Prosser ma świetny kod Java na stronie http://www.dcs.gla.ac.uk/~pat/roommates/distribution/, który między innymi może obliczyć wszystkie stabilne dopasowania w problemach współlokatora.

Kod dotyczy problemów współlokatorów, ale kod Patricka pozwala na uwzględnienie niedopuszczalnych współlokatorów w stosunku do współlokatorów. Aby wdrożyć dwustronny rynek, po prostu upewnij się, że wszyscy współlokatorzy po jednej stronie rynku postrzegają innych współlokatorów po tej samej stronie rynku jako niedopuszczalne, i możesz już iść.

Jeśli (podobnie jak ja) nie jesteś przyzwyczajony do java, możesz mieć trudności z uruchomieniem kodu. Oto mały samouczek dla systemu Mac OS, który działał dla mnie na dzień dzisiejszy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.