リーグの勝敗の順位が可能かどうかを確認する


8

あなたは試合スケジュールのある1対1のバスケットボールリーグを主催しています。リーグの最後に、各プレーヤーにそれぞれの勝敗記録を報告させます(同点はありません)が、予定された順位表が実際に可能かどうかを確認したいとします。

たとえば、4人のプレーヤー(Alice + Bob + Carol + Dave)がいて、スケジュールは単純なラウンドロビンです。報告された順位[ A: 3-0 B: 1-2 C: 1-2 D: 1-2]および[ A: 2-1 B: 1-2 C: 1-2 D: 2-1]は可能ですが、スタンディング[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]はできません。

代わりに、スケジュールがアリス+ボブとキャロル+デイブの3対1の対戦であるとします。報告された順位[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]が可能になりましたが、[ A: 3-0 B: 1-2 C: 1-2 D: 1- 2]はなくなります。

(スケジュールは対称的である必要はありません。アリスにボブとの対戦を10回だけさせ、その後ボブ+キャロル+デイブに58ラウンドロビンの対戦をさせることができます。)

問題:参加者がk人、合計nゲームのスケジュールが与えられた場合、提案された勝敗の順位がそのスケジュールから実際に発生するかどうかを効率的に確認します。


O(2n)総当たりの方法は明白であり、可能なすべてのゲーム結果を列挙し、提案された順位と一致するものがあるかどうかを確認します。そして、kが小さい場合、nを増やしてもそれほど複雑にはなりません。2人のリーグの順位をチェックするのは、彼らが10ゲームまたは100億ゲームをプレイしているかどうかに関係なく非常に簡単です。それを超えて、私はより良い方法を見つけるのにそれほど進んでおらず、誰かが以前に同様の問題を見たことがあるかどうか知りたいと思っていました。

回答:


8

これは、Max-Flow問題としてモデル化できます。

前処理のステップとして、ゲームの数が勝利数の合計に等しいことを確認します(そうでない場合、何かが間違っていることがわかります)。

ましょGプレイされるゲームに対応する頂点の集合、となるPのプレイヤーに対応する頂点の集合。LET s及びt二つの追加の頂点(ソースおよびシンク)を示します。

今すべてのゲームのためのgGとの間に再生p1P及びp2P、からエッジを追加するsg容量1からとエッジgp1gp2も、容量1。これは、ゲームがどちらかのプレイヤーに1ポイントを与えることができるという事実をモデル化しています。

pPptp

sts,t

または、ゲームごとに1つの頂点と勝利数に対応する各プレーヤーの頂点の数を含むグラフを作成し、以前と同じ方法でそれらを接続して、最大一致のエッジの数がゲームの数(ただし、これはほとんど同じことです)。


非常に素晴らしい!そして、P1とP2の間のm個の別々のゲームごとにノードを用意するのではなく、それらすべてを1ではなくエッジ容量mの 1つのノード(「シリーズ」ノード)に統合できますか?
ManyCookies

また、前処理では、各プレーヤーによって報告された勝利+損失の数が、プレーヤーがプレイしたゲームの総数と等しいことを確認する必要もあります。
Ilmari Karonen

また、あなたの答えは技術的に正しいように見えますが、実際には最大フローの問題を解決することは単純な不正行為(プレイヤーが追加の勝利や少ない損失を要求することでのみ不正行為を行う場合、前処理だけでそれをキャッチします)を捕まえる必要はないことにも注意しくださいさらに微妙な不正行為を見つけるため(たとえば、アリスがボブとの試合に負けたが、どちらも後でアリスの勝利としてそれを報告することに同意する。与えられたデータのみを使用してそれを検出する方法はない)。しかし、それはあなたの解決策ではなく、前述の@ManyCookiesの問題の問題です。
Ilmari Karonen

@ManyCookies:もちろん、それも機能するはずです:)
Tassle

@IlmariKaronen:ええ、実際に高速化したい前処理ステップをいくつでも追加できますが、これらは厳密には必要ありませんが、私が提案した前処理ステップは主に最大フロー条件のチェックを簡単にすることでした流れが両端で飽和していることを確認する必要があります。これは、その前処理ステップまで煮詰められます。
タッスル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.