Читайте также: |
|
В главе 6 было введено понятие двудольного графа. Далее, в главе 9, рассматривались свя-занные с такими графами задача о максимальном паросочетании и задача назначения. В этих за-дачах вершины одной доли графа интерпретируются как исполнители, а вершины другой – как задания, которые могут быть выполнены определёнными исполнителями. При поиске паросоче-тания требовалось обеспечить максимальную эффективность соответствующего назначения, т.е. сопоставления работ исполнителям. При этом интересы самих исполнителей не только не принимались во внимание, но даже и не рассматривались.
Однако во многих случаях обеим частям двудольного графа (а не только исполнителям) естественно сопоставляются некоторые интересы. Примером может служить распределение вы-пускников медицинского вуза между больницами, распределение выпускников военной акаде-мии между воинскими частями, и т.д. Другим примером служит распределение рукописей меж-ду рецензентами в научном издательстве. Конечно, рукописи сами по себе не обладают никаки-ми мнениями относительно рецензентов, однако такими мнениями обладают редакторы изда-тельства, которые понимают, какие рецензенты лучше подходят для работы с той или иной ру-кописью.
Общепринято рассматривать ситуации, в которых элементы каждой из двух сторон имеют предпочтения относительно элементов другой стороны, в гендерных терминах. Предполагается, что имеются мужчины и женшины: с точки зрения любого мужчины, все женщины ранжирова-ны от лучшей к худшей, а с точки зрения любой женщины, так же ранжированы все мужчины. Все эти ранжировки могут быть совершенно произвольными.
Задача брачного агенства состоит в поиске разумного паросочетания (об оптимальных в такой деликатной ситуации вряд ли стоит говорить). Для того, чтобы формализовать понятие разумности паросочетания, рассмотрим некоторые примеры. Здесь и далее предполагается, что участники могут свободно обмениваться информацией о своих предпочтениях, а брачное агент-ство, естественно, знает их все.
Пример 1. Пусть имеется трое мужчин и три женщины, т.е. М = { m 1, m 2, m 3}, W = { w 1, w 2, w 3} и предпочтения участников имеют вид:
P (m 1) = w 2, w 1, w 3; P (w 1) = m 1, m 2, m 3
P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 1, m 2;
P (m 3) = w 1, w 2, w 3; P (w 3) = m 3, m 1, m 2.
Это означает, что с точки зрения мужчины m 1 лучшей является женщина w 2, за ней следует женщина w 1 и затем – женщина w 3; с точки зрения женщины w 1 лучшим является мужчина m 1, за ним следует мужчина m 2 и затем – мужчина m 3, и т.д. Рассмотрим паросочетание
μ =
и мужчину m 1. Ему паросочетанием μ предписывается жениться на женщине w 1, при том, что более предпочтительным для него вариантом является женитьба на w 2. В то же время женщина w 2 должна, согласно паросочетанию μ, выйти замуж за m 2, хотя мужчина m 1 для неё более предпочтителен. Но тогда пара (m 1, w 2)может отказаться принимать условия, предлагаемые па-росочетанием μ, поскольку они оба предпочитают друг друга более, чем предлагаемых им парт-нёров. Если брачное агентство предлагает своим клиентам устроить браки в соответствии с дан-ным паросочетанием μ, то пара (m 1, w 2) не будем следовать советам этого агенства ■
В случаях, аналогичных рассмотренному в примере 1, говорят, что пара (m, w) блокиру-ет паросочетание μ. Сама такая пара называется блокирующей паросочетание.
Пример 2. При тех же самых предпочтениях, как в примере 1, рассмотрим паросочетание
ν = .
Рассмотрим мужчину m 1 и женщину w 2. Поскольку женщине w 2 предписан лучший, по её мне-нию, мужчина m 1, то пара (m 1, w 2) не является блокирующей данное паросочетание ν. Пара (m 1, w 3) не является блокирующей, поскольку мужчине m 1 предписана женщина w 1, которая в его предпочтениях стоит перед женщиной w 3. Пара (m 3, w 3) не является блокирующей, поскольку мужчине m 3 предписана женщина w 2, которая в его предпочтениях стоит перед женщиной w 3. Далее, рассмотрим пару (m 3, w 1). Она не является блокирующей, поскольку женщине w 1 пред-писан лучший, по её мнению, мужчина m 1. Пара (m 2, w 1) не является блокирующей по той же причине (женщине w 1 предписан лучший, по её мнению, мужчина m 1). Наконец, пара (m 2, w 2) не является блокирующей, поскольку женщине w 2 предписан лучший, по её мнению, мужчина m 3.
Таким образом, рассмотрены все 6 пар, которые не предписаны друг другу паросочетанием ν (число таких пар всегда равно 6 при 3-ёх мужчинах и 3-ёх женщинах независимо от паросочета-ния). Ни одна из этих пар не является блокирющей ■
Паросочетание, не содержащее блокирующих пар, называется устойчивым. Пример 2 по-казывает, что при рассматриваемых предпочтениях паросочетание ν является устойчивым. Ус-тойчивость не означает, что все получают лучших – с их точки зрения – партнёров. В паросоче-тании ν каждый мужчина получает 2-ую по своему предпочтению женщину, женщины w 1 и w 2 получают лучших – с их точки зрения – партнёров, а женщина w 3 получает мужчину m 2, зани-мающего последнее место в её предпочтениях. И тем не менее пары, которая блокировала бы это паросочетание, нет.
Естественно возникающие вопросы состоят в следующем. Существует ли хотя бы одно устойчивое паросочетание состояние при любых предпочтениях участников? Как его найти, ес-ли оно существует? На 1-ый вопрос положительный ответ даёт
Утверждение 1. При любых предпочтениях участников, задаваемых строгими ранжиров-ками, устойчивые паросочетания существуют ■
Приведём алгоритм построения устойчивого паросочетания. Доказательство утверждения 1 (которое здесь не приводится) как раз и состоит в доказательстве того, что паросочетание, по-строенное данным алгоритмом, действительно устойчиво. Для упрощения изложения алгоритм демонстрируется на конкретном примере.
Пример 3. Построить устойчивое паросочетание при заданных предпочтениях мужчин и женщин. Пусть имеется трое мужчин и четыре женщины, т.е. М = { m 1, m 2, m 3}, W = { w 1, w 2, w 3, w 4} и предпочтения участников имеют вид:
P (m 1) = w 2, w 1, w 4, w 3; P (w 1) = m 2, m 1, m 3;
P (m 2) = w 2, w 3, w 4, w 1; P (w 2) = m 3, m 2, m 1;
P (m 3) = w 1, w 4, w 3, w 2; P (w 3) = m 3, m 1, m 2;
P (w 4) = m 1, m 3, m 2.
Алгоритм состоит из последовательно выполняемых шагов 1, 2, 3, …. Каждый шаг состо-ит из двух фаз: фазы приписывания (А) и фазы отказа (Б). В фазе приписывания каждому мужчине из тех, у кого на данный момент нет пары, приписывается женщина, следующая в его предпочтении сразу после той, которая отказала ему (отвергла его) на предыдущем шаге. (На шаге 1 в фазе приписывания каждому мужчине просто приписывается первая в его предпочте-нии женщина.)
Если на каком-то шаге после фазы приписывания всем мужчинам приписаны разные жен-щины, то искомое паросочетание найдено и алгоритм прекращает работу. В противном случае переходим к фазе отказа.
В фазе отказа каждая женщина из тех, которым приписано более одного мужчины, остав-ляет того мужчину, который предшествует остальным из приписанных ей. Этот мужчина обра-зует с данной женщиной пару, а остальным она отказывает (отвергает их).
Посмотрим, как работает алгоритм в рассматриваемом случае.
Шаг 1.
Фаза А. Приписываем каждому мужчине предпочитаемую им женщину. Получим
.
Фаза Б. Женщине w 2 приписано двое мужчин: m 1 и m 2. Поскольку в её предпочтении m 2 пред-шествует m 1, то она отвергает m 1. Получаем «неполное» паросочетание
.
Запомним, что мужчину m 1 отвергла женщина w 2.
Шаг 2.
Фаза А. В данный момент у мужчины m 1 нет пары. В соответствии с алгоритмом приписываем ему женщину, следующую в его списке сразу после отвергшей его женщиной w 2. Таковой явля-ется женщина w 1. В результате приписывания получаем
.
Фаза Б. Женщине w 1 приписано двое мужчин: m 1 и m 3. Поскольку в её предпочтении m 1 пред-шествует m 3, то она отвергает m 3. Получаем «неполное» паросочетание
.
Запомним, что мужчину m 3 отвергла женщина w 1.
Шаг 3.
Фаза А. В данный момент у мужчины m 3 нет пары. В соответствии с алгоритмом приписываем ему женщину, следующую в его списке сразу после отвергшей его женщиной w 1. Таковой явля-ется женщина w 4. В результате приписывания получаем
.
Поскольку всем мужчинам сопоставлены разные женщины, то искомое паросочетание найдено и алгоритм прекращает работу. В результате мужчина m 2 получает предпочитаемую им женщину, мужчины m 1 и m 3 получают женщин w 1 и w 4, вторых по их предпочтениям. Женщи-нам w 1, w 2 и w 4 достаются мужчины m 1, m 2 и m 3, вторые по их предпочтениям. Женщина w 3 остаётся одна ■
В рассмотренном примере на 1-ом шаге в фазе приписывания женщины приписывались мужчинам. Можно использовать тот же алгоритм, в котором женщины заменены на мужчин, а мужчины на женщин, т.е. на 1-ом шаге мужчины приписываются женщинам, далее на фазе от-каза из нескольких женщин, приписанных одному мужчине, остаётся та, которая предпочти-тельней остальных, и т.д. Возможно построить несколько устойчивых паросочетаний, некото-рые из которых могут быть в каких-то отношениях лучше, чем данное. Однако используемый алгоритм гарантирует устойчивость полученного паросочетания (отсутствие блокирующих пар) при любых исходных данных.
Можно сказать, что брачное агентство является в данном случае метаигроком, который определяет правила взаимодействия участников: они указывают свои предпочтения (в виде строгих ранжировок), а участникам предлагается достаточно разумное устойчивое паросочета-ние, которое строится на основе полученной от участников информации об их предпочтениях. В большинстве случаев такие разумные (в данном случае – устойчивые) паросочетания опреде-ляются неоднозначно, однако вопрос о том, как их оценивать и как выбирать в том или ином смысле «лучшие» или «оптимальные» паросочетания, здесь не рассматривается.
Задание 1. Построить, пользуясь рассмотренным выше алгоритмом, устойчивые паросо-четания при следующих предпочтениях участников:
P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 2, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 1, m 3; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 2, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 1, m 3; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 1, m 2; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 3, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 1, m 2; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 3, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 3, m 2, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 2, m 3, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 2, m 3, m 1. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 3, m 2, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 2, m 3, m 1; P (m 3) = w 2, w 3, w 1; P (w 3) = m 2, m 3, m 1. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 3, m 2, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 2, m 3, m 1; P (m 3) = w 2, w 1, w 3; P (w 3) = m 2, m 3, m 1. | P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 2, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 1, m 3; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 2, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 1, m 3; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 1, m 2. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 2, m 1; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 1, m 2. | P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 1, m 2; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 3, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 1, m 2; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 2, m 3, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 1, w 3; P (w 3) = m 3, m 2, m 1. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 2, m 3, m 1; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 1, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 3, m 2, m 1. | P (m 1) = w 2, w 1, w 3; P (w 1) = m 3, m 2, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 1, m 3, m 2; P (m 3) = w 1, w 3, w 2; P (w 3) = m 2, m 3, m 1. |
P (m 1) = w 2, w 1, w 3; P (w 1) = m 3, m 2, m 1; P (m 2) = w 1, w 3, w 2; P (w 2) = m 1, m 3, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 2, m 3, m 1. | P (m 1) = w 1, w 3, w 2; P (w 1) = m 3, m 2, m 1; P (m 2) = w 2, w 3, w 1; P (w 2) = m 1, m 3, m 2; P (m 3) = w 2, w 1, w 3; P (w 3) = m 2, m 3, m 1. |
P (m 1) = w 1, w 3, w 2; P (w 1) = m 3, m 2, m 1; P (m 2) = w 2, w 1, w 3; P (w 2) = m 1, m 3, m 2; P (m 3) = w 2, w 3, w 1; P (w 3) = m 2, m 3, m 1. | P (m 1) = w 2, w 3, w 1; P (w 1) = m 2, m 1, m 3; P (m 2) = w 2, w 1, w 3; P (w 2) = m 3, m 2, m 1; P (m 3) = w 1, w 3, w 2; P (w 3) = m 3, m 1, m 2. |
■
Дата добавления: 2015-10-16; просмотров: 299 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Алгоритм 2. Расстановка меток у вершин графа игры. | | | Справедливый делёж |