最適なクエリのために四角形を分割する

私は1×1のサイズのスクエアプレートをたくさん持っています。私はすべての串刺しを食べたいですが、私が串刺しにすることができる唯一の方法は、これらの2つのオーケーを介してです:

$ f(x、y、r)$は、私の板の点$(x、y)$を中心とする半径$ r $

$ q(x、y、r)$は、私のプレート上の点$(x、y)$を中心とする半径$ r $の円の中にあるすべての点線を与えます

しかし、私のプレートは非常に大きく、私のオーケーは非常に小さいです。 $ f $と$ q $に与えられた$ r $は与えられた$
R $以下でなければなりません。

最近、Oraclesは無料ではありません。私は$ f $を呼び出すたびに1のコストを支払わなければなりません。私が$
q(x、y、r)$を呼び出すたびに、私のオラクルが私にもたらす$ P $ skittlesごとに$ f(x、y、r)/ P
$:1の費用を支払わなければなりません)。 $ P $はこの問題の入力です。その後、それらの枝肉は食べられます。

私の皿には$ N $ skittlesがあります。 $ N、R $、$ P
$の点で、私の脚本をすべて食べるのに費用がかからない戦略は何ですか?

私は2つの場合について興味がある:

  1. 敵が串刺しをしている場合、私が支払うことができるものは何ですか?
  2. すべてのスキットルがプレート全体に一様な分布で独立して配置されている場合は、「よくうまくいく」戦略は何ですか?また、支払う必要がある量はいくらですか?
ベストアンサー

良いアイデアは、2dで一番濃い円の中に重ならないサークルを使用することです。対応するWikiページを確認してください:
https://en.wikipedia.org/wiki/Circle_packing。この方法で$
C = 0.907 $までカバーできます。あなたが使っている高さの表面が$ S_c $であるところでは、$ frac {1}
{S_c} $が均一に分布していると仮定すると、$ frac {CN} #circles} {P} =フェッチするためのC ^
2N/S_cP $と、おおまかにカバーされた領域を探すための$ #circles = C/S_c $です。正方形の約$ 1-C
$をカバーするギャップをカバーすることができます。これに対応して細かいカールもまた、見た目のコストは前と同じにする必要があります。この時点でジオメトリを掘り下げることなく、フェッチのコストを見積もるのは難しいですが、およそ$(1-C)N/P
$になると思います。また、$ N $に達したものを終了することもできます。

スマートな敵が隙間に銃弾を置く。私は円の配置のためのランダムな参照を選ぶのは良い考えだと思う。また、メインラティス($ C
$をカバーする)とマイナーラティス($ 1-C
$をカバーする)からサイレットをチェックする領域をランダムに選択することもできます。

今、私たちは$ [0、R]
$を選ぶべきどの半径の決定に悩まされています。私は配置された制約の下で、できるだけ大きなものと見なします。あなたのメイン格子があなたのプレート上にほとんどオーバーフローしないように、半径$
r $を選択することによって最適化のためのスペースがあります。

あるいは、密度の高いパッキングを使用できますが、円が重なっています。このようにして、すべてのギャップが消え、セカンダリラティスのルックアップのコストはスキップされます。

この入力があなたに多少役立つことを願っています。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です