ランダム2Dライン間のスペース充填
ランダムに線で満たされた領域(2D)を考えます(図の後)。ある方法で4つの境界エッジを含む行間の空スペースを埋めることに興味があります。 0-区画のサイズを最大化します。 1-充填区画の形状は、水平または垂直に配置された正方形です。 2-充填パーセルの形状は正方形、つまり緩和された配置です。 3- 充填区画の形状は任意の四角形です。 私たちの元の質問 したがって、現時点では3つの異なるシナリオがあります。線は実数の点集合の形式であることに 注意してください。[x1,y1,x2,y2] [* * *] 可能な解決策/アルゴリズム/コードスニペットなどのアイデアは大歓迎です。 更新1:私たちは、最初のケースのためのソリューションを管理することができ: 手順は: 1-線 2-ビットマップにラインをラスタライズは 3-最大にするために、目的関数を用いて所望の色(すなわち、同じ色)の各セルのために近くのセルを検索します面積、つまりセルの数。 それはうまく機能しますが、最初のシナリオのみをカバーし、遅いです。 更新2: 読者は空間充填タイルの概念に精通していると想定しました。インスピレーションを得るためにリンクをたどることができます。ただし、問題は異なることに注意してください。空のスペースをランダムに埋めたり、サイズをランダムに選択したりしないためです。ソリューションは反復的でなければなりません。すべてのケースで、取り付けられる小包の数に制限はありません。実際、たとえば区画の最小領域を選択することにより、反復回数を制限するのはユーザー次第です。これは、指定されたサイズのピクセルに行を離散化した上記の例で明らかです。つまり、基準は、たとえば区画の最大面積など、空の領域全体が満たされるまで実行する必要があります。 更新3: 要約: 1つのアプリケーションは、ひどく破損した「鉱山」で抽出可能な無傷の「岩」ブロックの分布を調べることです。これは、などの掘削の設計、財務評価を含む多くの側面のために非常に役立つことができ 説明: 装飾岩(石)価格は長方形の立方体としてカットし、完全な岩のブロックされている製品の鉱山のための大きさに密接に依存していますブロック。残りの部品の量が可能な限り少ない場合、適切な領域からのブロックの抽出、つまり大きな骨折のないことが望まれます。通常、小さな岩片は比較的経済的価値がなく、廃棄物と見なされます。 この投稿の質問は、この種の問題の解決策を調査しています。 問題の数学的な見方は次のように言えます 。2D:特定の2D領域から抽出できるすべての長方形を見つけ、いくつかの線をできるだけ大きな長方形サイズに最適化します。 3D:可能な限り大きなブロックサイズに最適化されたいくつかのサブプレーン(より良い:ポリゴン)を使用して、特定の3D領域から抽出できるすべての長方形キューブを見つけます。 これは進行中の研究の一部であるため、以下のコメントで尋ねられる質問の一部には、提供できる特定の回答がありません。ここで提供された情報は、問題の全体像を把握するのに十分であると考えています。それでも、コミュニティの利益のためにできる限り詳細を提供します。 最終的な質問の解決策にいくつかの制限を加えることができますが、後でさらに追加することは常に可能であると考えています。たとえば、次のとおりです。{2Dケース} 上記の条件下で抽出されるブロックの最適なサイズ(経済的に最適な長方形)は、この例の領域に対して1x1 m指定さ10x10 mれます。これは、経済的価値に基づいて定義される1つの制約です。切断などの最小実行可能サイズは、0.15x0.15 m; したがって、これは2番目のサイズ制限です。 上の図は、ブロックサイズに応じた経済価値関数を示しています。そのため、この特定のケースでは、すべての岩片0.15x0.15 mは単なる無駄です。1.7x1.7 m操作の制限により、ブロックサイズは大きくなりません。