4

こんにちは!

Microsoft TrueSkillアルゴリズムがどのように機能するかについて、このガイドに従っていました。 (これは、私が推測する各ゲームに固有であるため、明らかです)。

私の問題は、私が思いついたすべてのアルゴリズムがかなり複雑に見えることです(時間の複雑さが高い)。それぞれ 4 人のプレーヤーを含む 2 つのチームがあるとします。強引に行く場合は、現在利用可能なすべての組み合わせの一致品質を (trueskill アルゴリズムに従って) チェックする必要があります。考慮すべきプレイヤーが多数いる場合、これは膨大な数の反復につながります。

そこで、よりスマートに行う方法について何かヒントがあればお願いしたいと思います。この問題に対処する情報に足を踏み入れたのではないでしょうか?

4

1 に答える 1

7

また、Python で TrueSkill アルゴリズムを使用してマッチメイキング サービスを実装しましたが、同じ問題が心配でした。

私のマッチメイキング サービスは、マッチ リクエストの収集をしばらく待機します。次に、リクエストをユーザーの TrueSkill μ 値でソートして分割します。そしてまた待ちます。ベストマッチを見つけることはできませんが、高速です。擬似コードは次のとおりです。

class Matchmaker(object):

    def matchmaking(self):
        sorted_pool = sorted(self.pool.itervalues(), key=by_rating)
        matches, self.pool = divide_uniformly(sorted_pool, expectation, minimum)
        return matches

    def run(self):
        while self.should_match():
            for match in self.matchmaking():
                if quality(match) < 0.5:
                    cancel(match)
                else:
                    succeed(match)
            time.sleep(self.interval)

ps レーティング システムとマッチメイキング サービスを利用するには、多くのユーザーと大きなマッチ プールが必要です。

于 2013-05-02T02:06:53.103 に答える