私たちのオフィスでは、仕事の後、定期的にフーズボールやテーブル サッカーを楽しんでいます。私は、利用可能なプレイヤーからランダムな 2vs2 ラインナップを生成し、その後、試合結果をデータベースに保存する小さな Java プログラムをまとめました。
結果の現在の予測では、関係する 4 人のプレーヤーからの以前のすべての試合結果の単純平均が使用されます。これは非常に大まかな見積もりになりますが、次のようなことを考慮して、より洗練されたものに置き換えたいと思います。
- プレーヤーは、アタッカーとしてプレーするのは得意でも、ディフェンダーとしてプレーするのは苦手かもしれません (またはその逆)
- プレーヤーは特定の対戦相手に対してうまくいく/他の対戦相手に対しては悪い
- うまく連携できるチームもあれば、うまくいかないチームもある
- スキルは時間とともに変化する
ゲームの結果をできるだけ正確に予測するための最適なアルゴリズムは何ですか?
誰かがこれにニューラル ネットワークを使用することを提案しましたが、これは非常に興味深いように思えます... しかし、私はこのトピックについて十分な知識がなく、それが機能するかどうかを判断できません。
編集:
いくつかのプロジェクトの締め切りのために、これから長い休憩を取る必要がありました. 質問をより具体的にするには:
これまでに行われたすべての試合を含む次の mysql テーブルがあるとします。
table match_result
match_id int pk
match_start datetime
duration int (match length in seconds)
blue_defense int fk to table player
blue_attack int fk to table player
red_defense int fk to table player
red_attack int fk to table player
score_blue int
score_red int
関数 predictResult(blueDef, blueAtk, redDef, redAtk) {...}
をどのように記述して、SQL を実行したり、計算を行ったり、外部ライブラリを使用したりして、結果をできるだけ正確に推定しますか?