現在、次の「半」数学的問題を解決するのに行き詰まっています。
n次元の制限された空間(正確には超立方体)を分割したい
D={(x_1, ...,x_n), x_i \in IR and -limits<=x_i<=limits \forall i<=n}
小さい立方体に。
つまり、立方体の側面ごとのパーティションの数がn,limits,m
どこになるかを指定したいと思います-小さな立方体の長さになり、そのような立方体が得られます。m
2*limits/m
m^n
ここで、これらの小さな立方体のいくつかの異なる座標を含むベクトルのベクトルを返したいと思います。(または、キューブを「左」の外側の角を指すベクトルによって特徴付けられるオブジェクトとして表すこともできますか?)
基本的に、そのようなことがC++を使用して実行できるかどうかはわかりません。固定 n に対してこれを実装しても問題はありません。しかし、ユーザーが次元を自由に選択できるようにしたいと考えています。
背景:そのようなものは、最適化において非常に貴重です。空間をより小さなものに分割し、たとえば各部分空間で遺伝的アルゴリズムを使用し、後で結果を比較します。したがって、巨大な初期集団を回避でき、検索結果が大幅に改善されました。また、私は sth かどうかに興味があります。そのように実行可能です:)
私の提案: B+ ツリーを使用しますか?