私は、野球チームが通常行う方法のように、データベースを分析して 3 つ以上のトレードの機会を見つけるアルゴリズム (できれば Ruby) をまとめようとしています。
例えば:
100 のチームがあり、それぞれに 20 人ほどのプレーヤーがいると想像してください。各プレイヤーは、可能な属性の組み合わせをいくつか持っています。(「走るスピードが速い」「守備がうまい」など)
各チームには、プレーヤーのニーズ(上記の可能なセットからの特定の属性を持つ) と、提供するプレーヤー(それぞれ、上記の可能なオプションに一致する属性を持つ) があります。
この理論的アルゴリズムは、すべてのニーズとオファーを検索して、互いに取引できるチームの組み合わせを見つけることができます。
理論的なシナリオでは、次の 3 つのチームを想像してください。
チーム A にはスピードのある選手がいて、守備の良い選手が必要です チーム F には守備の良い選手がいて、ピッチングの良い選手が必要です チーム Q にはピッチングの良い選手がいて、スピードの良い選手が必要です
したがって、チーム A、F、および Q は、全員が勝つスリーウェイ トレードを行うことができます。
私の質問は、この機会を特定できるアルゴリズムについてです。これは以前にアルゴリズムによって解決された問題ですか? もしそうなら、どこを見ればいいのか教えていただければ幸いです。キャッシュとcronを巧みに使用してデータベース内でこれを構造化する方法について、いくつかの異なるアイデアがあります。Railsでビルドします。機会を見つけるアルゴリズムに少しこだわっています。