問題の検索アルゴリズムに関するヘルプを探しています。問題は次のように単純化できます。
特定の属性 (X1、X2 … XN) を取ることができるオブジェクトがあります。N は 5000 のオーダーです。ただし、特定のオブジェクトはこれらの属性のサブセット (Xi .. Xj (約 50) など) を取ります。
構成は、属性の特定のサブセットです。Z (10 万のオーダー) の番号が付けられた、最適な特定の構成があります。
入力:
Configuration 1: X1, X2, X3.. Xf
Configuration 2: X4, X6, X7, .. Xz
:
:
Configuration Z: X10, X200… XN
問題: 特定のオブジェクト、属性 {Xi…Xj} のサブセットを持つ ALPHA が与えられた場合、目標は、このオブジェクトに最も近い構成を見つけることです。構成は、オブジェクト ALPHA の構成のスーパーセットにすることができます。また、ALPHA のすべての属性を持つ構成がない可能性もあります。最も近いとは、ALPHA の属性数が最も多い構成として定義されます。
私が持っている素朴な解決策は、基本的に次のことを行います
1. Take each configuration
2. Loop through each attribute of ALPHA
3. Keep track of the configuration with maximum number of matches to ALPHA
4. Pop out the configuration maximum matches.
単純な解決策は正しいと思いますが、遅すぎます。構成全体で検索を行う効率的な方法はありますか? おおよそのヒューリスティックでも、非常に高速であれば問題ありません。
C++、Java タグを追加して、これを行うソフトウェアがあるかどうかを確認します。
ありがとう。