私は以下のように巧みに描かれた状況を持っています。これは、エリア内で最大の円(空きスペース)を計算する必要があります。以下の例では、黒い円は固定された既知の位置です。黒い円に触れない最大の領域(橙色と緑色の円で表されます)を見つける必要があります。以下の例では、オレンジ色の円が最大の空白です。これは計算したい領域です。最大の空きスペースを決定するための効率的なアルゴリズム
私はそれが黒のポイントに当たるまで、ちょうど円(オープンスペース)の位置と半径を記録し、それを強制位置を選んで、輪を広げブルートでしたが、これは、大規模になるだろうすべての可能な位置を反復するのに非効率的です。
このインスタンスで最大のオープンスペースがどこにあるかを効率的に分析する方法はありますか?このフィールドの黒点の最大数は15であることに留意してください。
EDITありがとうございましたYvesさんと他のすべてのコメント投稿者答えと他のコメントに基づいて説明のカップル。ブラックボックスはバインドされているため、定義された領域はブラックボックスの内側になければなりません。黒丸の半径は既知であり、静的であるが、これらの目的のためには、それらをポイントに縮小することができる。最後に、円の近似が許容される。いずれにしてもどの領域が最も良いかを判断する上で誤差マージンを持つAIルーチンで使用されます。だから、サークルが半径または位置が多少外れている場合、大きな問題にはなりません。
私は現在Voronoiの方法を検討していますが、私はそれを理解していると思っていますが、今は適合するアルゴリズムを引き出そうとしています。私はテストして、あなたに戻ってきます。
EDIT 2:イヴのおかげで、私はボロノイ図に見て(それが境界ボックスと交差し、点)のすべてのボロノイ頂点をループとdoesnのその中心点から最大の円を見つける簡単な方法を使用「黒丸」のいずれかを含んでいない。比較的小さな、有限の点集合で、私はこの実装で十分満足しています。その結果を下記に示し、スペース内の空白の円の上3つを表示します。
ブラックボックスもバインドされていますか、または黒丸でのみ囲まれている色付きの円ですか? – Adam
黒丸はすべて同じ半径ですか? – Adam
オレンジ色の円がある場所よりも広い空間が右にあるような感じです。 –