更新:
エンティティは、特定のエンティティ テンプレートの属性/メソッドで作成されたオブジェクトです。エンティティは、親および/または多数の子を持つことができます。
すべてのエンティティ テンプレートには、スレッドの断片化コストとコンピューターの断片化コストがあります。それらは、そのエンティティの子を親とは異なるコンピューター/スレッドに配置するのにどれだけのコストがかかるかを定義します
新しいエンティティは、すべての反復の最後にコンピューターとスレッドに割り当てられ (追加を介して)、古いエンティティは、N 回ごとの反復の最後にコンピューターとスレッドに再割り当てされます (最適化を介して)。
add が呼び出されると、エンティティが作成され、特定の親にアタッチされます。ただし、それでもコンピューターのスレッドのシミュレーション ランナーに配置する必要があります。
割り当てを決定する要因は、子 {computer|thread} の断片化コストと、オプションで断片化コスト マトリックスです。
オリジナル
やあ、
次の問題を解決するための一般的な方向性/アルゴリズム/フィールドに関するアイデアを探しています。
反復リアルタイム シミュレーション環境に N 個のエンティティ (それぞれに可能な親と可能な M 個の子がある) があります。各エンティティは、サーバー環境に配置され、1 台のコンピューターとそのコンピューターの 1 つのスレッドに配置されます。各エンティティには、「コンピューターの断片化コスト」と「スレッドの断片化コスト」があります。これは、0->1 の値 (1 が最も高価) であり、そのエンティティの子を異なるコンピューターに配置することがどれほど苦痛/コストがかかるかを定義します。またはスレッド。「コンピューターの断片化コスト」は「スレッドの断片化コスト」より高くなります。
2回の手術があります。エンティティが最初に追加されるときに実行される「追加」操作。また、エンティティを別のスレッド/コンピューターに再配置する Y 回の反復ごとに実行される「最適化」操作もあります。
断片化コストを考慮して、これら 2 つの操作で断片化を最小限に抑える一般的なアルゴリズム/ガイドラインは何ですか?
また、各エンティティは事前定義されたテンプレートから作成されます。エンティティ テンプレートのすべてのペア間の断片化コストを定義するマトリックスがあります。この追加データを使用して断片化を減らすにはどうすればよいでしょうか?
ありがとう