3D空間には多くの直方体があり、それぞれの開始点は(x、y、z)で、サイズは(Lx、Ly、Lz)です。立方体の結合に含まれるこの3D空間で最大の立方体をどのように見つけるのか疑問に思います。これに効率的なアルゴリズムはありますか?
たとえば、次の直方体がある場合:
- サイズ(10,10,10)で(0,0,0)から始まる直方体、
- サイズ(12,13,15)の(10,0,0)の直方体、
- サイズ(10,10,10)の(0,10,0)の直方体、
- サイズ(10,10,10)の(0,0,10)の直方体、および
- サイズ(9,9,9)の(10,10,10)の直方体。
次に、これらの直方体の和集合に含まれる最大の立方体は、サイズ(19,19,19)の(0,0,0)で始まる立方体になります。
この質問のより一般的なバージョン:
R dのボックスのコレクションが与えられた場合、ボックス の結合内に含まれる最大のハイパーキューブを見つけます。
8
私は内部に隠されたより良い質問があると思います:すなわち、のボックスのユニオンが与えられたら、ユニオン内に含まれる最大のハイパーキューブを計算します。
—
Suresh Venkat
これらの直方体はオーバーラップできますか?
—
ピーターブース
@Suresh、質問を明確にして一般化してくれてありがとう:) @Peter、私の場合は...重複しません:)
—
pantoffski
これをいじくり回した方法では、立方体の側面がx、y、z軸に揃えられているように聞こえます。これは事実ですか、それともキューブは任意の方向にできますか?これは明らかに、アルゴリズムの効率に大きな違いをもたらします。
—
ジョーフィッツシモンズ
私の場合、各直方体の面は軸のみに直交しています。
—
pantoffski