Jump to content

Стабильная проблема с соседями по комнате

В математике , экономике и информатике , особенно в области комбинаторики , теории игр и алгоритмов , проблема стабильного соседа по комнате ( SRP ) — это проблема поиска устойчивого паросочетания для набора четного размера. Сопоставление — это разделение множества на непересекающиеся пары («соседи по комнате»). Соответствие стабильно , если нет двух элементов, которые не являются соседями по комнате и которые оба предпочитают друг друга своему соседу по комнате при сопоставлении. Это отличается от проблемы стабильного брака тем, что проблема соседей по комнате допускает совпадения между любыми двумя элементами, а не только между классами «мужчин» и «женщин».

Обычно это формулируется как:

В данном случае задачи о соседях по конюшне (SRP) каждый из 2n участников ранжирует остальных в строгом порядке предпочтения. Соответствие представляет собой набор из n непересекающихся пар участников. Соответствующий M если нет двух участников x и y , каждый из которых предпочитает другого своему партнеру в M. в экземпляре SRP является стабильным , Говорят, что такая пара блокирует или является блокирующей парой по отношению к M. M

В отличие от проблемы стабильного брака , устойчивое соответствие может не существовать для определенных групп участников и их предпочтений. В качестве минимального примера отсутствия стабильной пары рассмотрим четырех человек A , B , C и D , чьи рейтинги:

А:(Б,С,Г), Б:(С,А,Г), С:(А,В,Г), D:(А,В,С)

В этом рейтинге каждый из А, Б и С является для кого-то наиболее предпочтительным человеком. В любом решении один из A, B или C должен быть в паре с D, а два других друг с другом (например, AD и BC), однако для любого, кто является партнером D, другой участник получит наивысшую оценку, и Партнер D, в свою очередь, предпочтет этого другого участника D. В этом примере AC является более благоприятной парой, чем AD, но необходимая оставшаяся пара BD тогда поднимает ту же проблему, иллюстрируя отсутствие стабильного соответствия для этих участников и их партнеров. предпочтения.

Алгоритм

[ редактировать ]

Эффективный алгоритм ( Ирвинг 1985 ) заключается в следующем. Для любого случая задачи алгоритм определит, существует ли устойчивое паросочетание, и если да, то найдет такое сопоставление. Алгоритм Ирвинга имеет O( n 2 ) сложность , при условии, что подходящие структуры данных используются для реализации необходимых манипуляций со списками предпочтений и идентификации ротаций.

Алгоритм состоит из двух этапов. На этапе 1 участники делают друг другу предложение , аналогично алгоритму Гейла-Шепли для решения проблемы стабильного брака . Каждый участник упорядочивает других участников по предпочтениям, в результате чего формируется список предпочтений — упорядоченный набор других участников. Затем участники по порядку делают предложение каждому человеку в своем списке, переходя к следующему человеку, если и когда их текущее предложение будет отклонено. Участник отклонит предложение, если у него уже есть предложение от того, кого он предпочитает. Участник также отклонит ранее принятое предложение, если позже получит предложение, которое ему больше нравится. В этом случае отклоненный участник затем сделает предложение следующему человеку в своем списке, и это будет продолжаться до тех пор, пока предложение не будет снова принято. Если какой-либо участник в конечном итоге отвергается всеми остальными участниками, это указывает на то, что устойчивое сопоставление невозможно. В противном случае этап 1 закончится тем, что каждый человек получит предложение от одного из остальных.

Рассмотрим двух участников, q и p . Если q содержит предложение от p , то мы удаляем из q всех участников списка x после p , и симметрично для каждого удаленного участника мы удаляем q из списка x p , так что q становится первым в . x списке ; и p , последний в , q поскольку q и любой x не могут быть партнерами ни в каком стабильном паросочетании. Полученный в результате сокращенный набор списков предпочтений называется таблицей этапа 1. Если в этой таблице какой-либо сокращенный список пуст, то устойчивого сопоставления нет. В противном случае таблица фазы 1 является стабильной таблицей . Стабильная таблица по определению — это набор списков предпочтений из исходной таблицы после удаления элементов из одного или нескольких списков и выполнения следующих трех условий (где сокращенный список означает список в стабильной таблице):

(i) p является первым в q тогда и только тогда , сокращенном списке когда q является последним в p ' s
(ii) p не входит в q сокращенный список тогда и только тогда, когда q не входит в p список тогда и только тогда, когда q предпочитает последнего человека в своем списке p ; или p , последний человек в их списке для q
(iii) ни один сокращенный список не является пустым

Стабильные таблицы обладают несколькими важными свойствами, которые используются для обоснования оставшейся части процедуры:

  1. Любая стабильная таблица должна быть подтаблицей таблицы Фазы 1, где подтаблицей является таблица, в которой списки предпочтений подтаблицы соответствуют спискам супертаблицы с некоторыми людьми, удаленными из списков друг друга.
  2. В любой стабильной таблице, если каждый сокращенный список содержит ровно одного человека, то объединение каждого человека в пару с одним человеком в их списке дает стабильное сопоставление.
  3. Если экземпляр задачи «Состоятельные соседи по комнате» имеет стабильное соответствие, то устойчивое соответствие содержится в любой из стабильных таблиц.
  4. Любая стабильная подтаблица стабильной таблицы и, в частности, любая стабильная подтаблица, которая определяет стабильное соответствие, как в пункте 2, может быть получена путем последовательности исключений ротации стабильной таблицы.

Эти исключения вращения составляют фазу 2 алгоритма Ирвинга.

При значении 2, если каждый сокращенный список таблицы фазы 1 содержит ровно одного человека, то это дает совпадение.

В противном случае алгоритм переходит к этапу 2. Ротация в стабильной таблице T определяется как последовательность ( x 0 , y 0 ), ( x 1 , y 1 ), ..., ( x k-1 , y k-1 ) такие, что x i различны, y i находится первым в x i сокращенном списке (или x i является последним в y i сокращенном списке ), а y i+1 является вторым в x i сокращенном списке , для i = 0,...,k-1, где индексы берутся по модулю k. Отсюда следует, что в любой стабильной таблице с сокращенным списком, содержащим хотя бы два человека, такая ротация всегда существует. Чтобы найти его, начните с такого p0 , содержащего по крайней мере двух человек в их сокращенном списке, и рекурсивно определите q i+1 как второй в p i списке и p i+1 как последний в q i+ 1 , пока эта последовательность не повторит некоторый p j , после чего обнаруживается вращение: это последовательность пар, начинающаяся с первого вхождения ( p j , q j ) и заканчивающаяся парой перед последним вхождением. Последовательность pi до p вращения j называется хвостом . Тот факт, что это стабильная таблица, в которой происходит этот поиск, гарантирует, что . человека в списке каждого pi есть как минимум два

Чтобы исключить вращение, y i отклоняет x i, так что x i предлагает y i+1 для каждого i . Чтобы восстановить свойства стабильной таблицы (i) и (ii), для каждого i все наследники x i-1 удаляются из y i списка , а y i удаляются из их списков. Если сокращенный список становится пустым во время этих удалений, то стабильного сопоставления не существует. В противном случае новая таблица снова является стабильной таблицей и либо уже определяет соответствие, поскольку каждый список содержит ровно одного человека, либо остается еще одно вращение, которое нужно найти и исключить, поэтому шаг повторяется.

Фазу 2 алгоритма теперь можно резюмировать следующим образом:

T = Phase 1 table;while (true) {    identify a rotation r in T;    eliminate r from T;    if some list in T becomes empty,        return null; (no stable matching can exist)    else if (each reduced list in T has size 1)        return the matching M = {{x, y} | x and y are on each other's lists in T}; (this is a stable matching)}

Чтобы достичь O( n 2 ) время выполнения, матрица ранжирования, запись которой в строке i и столбце j представляет собой позицию j -го человека в i -м списке; это занимает O( n 2 ) время. С помощью матрицы ранжирования проверка того, предпочитает ли человек одного другому, может осуществляться за постоянное время путем сравнения их рангов в матрице. Более того, вместо явного удаления элементов из списков предпочтений сохраняются индексы первого, второго и последнего в сокращенном списке каждого отдельного человека. первый индивидуум, который не имеет себе равных Также сохраняется , т.е. имеет как минимум два человека в своих сокращенных списках. Затем, на этапе 2, последовательность pi , «пройденная» для поиска вращения, сохраняется в списке, и массив используется для маркировки отдельных лиц как посещенных, как при стандартном поиска в глубину обходе графа . После исключения вращения продолжаем хранить только его хвост, если он есть, в списке и как посещенный в массиве, а поиск следующего вращения начинаем с последней особи на хвосте, а в противном случае — со следующей несовпавшейся особи. индивидуальный, если нет хвоста. Это уменьшает повторное прохождение хвоста, поскольку исключение вращения практически не влияет на него.

Ниже приведены списки предпочтений для экземпляра «Собители по комнате» с участием 6 участников: 1, 2, 3, 4, 5, 6.

1 :   3   4   2   6   5
2 :   6   5   4   1   3
3 :   2   4   5   1   6
4 :   5   2   3   6   1
5 :   3   1   2   4   6
6 :   5   1   3   4   2

Возможное выполнение Фазы 1 состоит из следующей последовательности предложений и отклонений, где → представляет собой предложение , а × представляет собой отказ .

1 → 3
2 → 6
3 → 2
4 → 5
5 → 3;   3 × 1
1 → 4
6 → 5;   5 × 6
6 → 1

Итак, Фаза 1 заканчивается следующими сокращенными списками предпочтений: (например, мы вычеркиваем 5 вместо 1: потому что 1: получает как минимум 6)

1 :   3   4   2   6   5
2 :   6   5   4   1   3
3 :   2   4   5   1   6
4 :   5   2   3   6   1
5 :   3   1   2   4   6
6 :   5   1   3   4   2

вращение r 1 На этапе 2 сначала идентифицируется = (1,4), (3,2). Это потому, что 2 является вторым фаворитом для 1, а 4 — вторым фаворитом для 3. Исключение r 1 дает:

1 :   3   4   2   6   5
2 :   6   5   4   1   3
3 :   2   4   5   1   6
4 :   5   2   3   6   1
5 :   3   1   2   4   6
6 :   5   1   3   4   2

вращение r 2 Далее идентифицируется = (1,2), (2,6), (4,5), и его устранение дает:

1 :   3   4   2   6   5
2 :   6   5   4   1   3
3 :   2   4   5   1   6
4 :   5   2   3   6   1
5 :   3   1   2   4   6
6 :   5   1   3   4   2

Следовательно, 1 и 6 совпадают. Наконец, вращение r 3 = (2,5), (3,4) идентифицируется, и его устранение дает:

1 :   3   4   2   6   5
2 :   6   5   4   1   3
3 :   2   4   5   1   6
4 :   5   2   3   6   1
5 :   3   1   2   4   6
6 :   5   1   3   4   2

Следовательно, паросочетание {1, 6}, {2,4}, {3, 5} стабильно.

Реализация в программных пакетах

[ редактировать ]
  • Python : реализация алгоритма Ирвинга доступна как часть matching библиотека. [1]
  • Java : модель программирования с ограничениями для поиска всех устойчивых совпадений в задаче соседей по комнате с неполными списками доступна по лицензии CRAPL. [2] [3]
  • R : та же модель программирования с ограничениями также доступна как часть R. matchingMarkets упаковка. [4] [5]
  • API : API MatchingTools предоставляет бесплатный интерфейс прикладного программирования для алгоритма. [6]
  • Веб-приложение : веб-сайт «Dyad Finder» предоставляет бесплатную веб-реализацию алгоритма, включая исходный код для веб-сайта и решатель, написанный на JavaScript . [7]
  • Matlab : Алгоритм реализован в assignStableRoommates Функция, которая является частью Военно-морской исследовательской лаборатории США бесплатной библиотеки компонентов трекера . [8]
  1. ^ Уайльд, Х.; Найт, В.; Гиллард, Дж. (2020). «Сопоставление: библиотека Python для решения игр на совпадение» . Журнал программного обеспечения с открытым исходным кодом . 5 (48): 2169. Бибкод : 2020JOSS....5.2169W . дои : 10.21105/joss.02169 .
  2. ^ Проссер, П. (2014). «Стабильные соседи по комнате и программирование ограничений» (PDF) . Интеграция методов искусственного интеллекта и ИЛИ в программировании с ограничениями . Конспекты лекций по информатике. Том. 8451. стр. 15–28. дои : 10.1007/978-3-319-07046-9_2 . ISBN  978-3-319-07045-2 .
  3. ^ «Кодирование ограничений для проблемы стабильных соседей по комнате» . Java-релиз .
  4. ^ Кляйн, Т. (2015). «Анализ стабильных сопоставлений в R: рынки сопоставления пакетов» (PDF) . Виньетка для пакета R MatchingMarkets .
  5. ^ «matchingMarkets: анализ стабильных совпадений» . Р-проект . 04.02.2019.
  6. ^ «API MatchingTools» .
  7. ^ «Искатель диад» . dyad-finder.web.app . Проверено 6 мая 2020 г.
  8. ^ «Библиотека компонентов трекера» . Репозиторий Матлаба . Проверено 5 января 2019 г.

Источники

[ редактировать ]
  • Ирвинг, Роберт В. (1985), «Эффективный алгоритм решения проблемы «стабильных соседей по комнате», Journal of Algorithms , 6 (4): 577–595, doi : 10.1016/0196-6774(85)90033-1

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dc147f42d3cf7fc302f7bb67aeb2f614__1720716600
URL1:https://arc.ask3.ru/arc/aa/dc/14/dc147f42d3cf7fc302f7bb67aeb2f614.html
Заголовок, (Title) документа по адресу, URL1:
Stable roommates problem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)