Эта проблема пахнет так, будто в теории графов должен быть ответ, но она не совсем соответствует ни одной из проблем теории графов, которые я знаю. (Примечание: на самом деле это реальная проблема, выдуманная для облегчения чтения)
Представьте, что в моем доме группа шахматистов с четным номером. У меня есть множество столов и шахматных наборов, на которые могут играть все, но мне нужно создать «Pairing» (не уверен, есть ли для него термин теории графов) или список матчей, чтобы каждый играл кого-нибудь. Все шахматисты хотели бы сыграть кого-то, кого они никогда раньше не играли.
Если у меня есть список от каждого игрока, с которым они играли, я могу легко построить график, показывающий предыдущие матчи. Например, допустим, что A сыграл B и C, а C сыграл D:
A----B
|
|
C----D
Я знаю, что могу сопоставить B / C и A / D, чтобы создать пару.
Но если график предыдущих матчей выглядит так:
A----B
\ |
\ |
C D
Тогда я не смогу создать пару. B может играть только C, что заставит A и D (которые уже играли) играть друг с другом.
Итак, как я могу узнать (каким-либо другим способом, кроме грубой силы), могу ли я создать пару? Я ищу не дерево или цикл, но есть ли другое свойство графика, которое я могу проверить?