以下の最小ザップ問題は、「Greedy Algorithm」に関するJeff Ericksonの講義の演習11 です。
最小ザップ問題は、次のようにより正式に述べることができます。セットを考える の 平面内の円。それぞれが半径と 中心の座標。すべての円と交差する原点からの光線の最小数を計算します 。あなたの目標は、この問題の効率的なアルゴリズムを見つけることです。(下図の「9-balloons-with-4-rays」の例を参照してください)
質問:風船と交差しない光線を発射することが可能だとします。この特別な場合の最小ザップ問題を解決する貪欲なアルゴリズムを説明および分析します。
この問題への取り組みに問題があります。貪欲なアプローチは、ほとんどの円と交差して再帰する光線を使用することだと思いましたが、これは間違っていると言われました。どうしてこれなの?
そして、風船と交差しない光線があるという事実の意味は何ですか?いくつかの最適なソリューションがこの事実を使用していることを証明するはずですか?
どんな助けもいただければ幸いです!私は最近アルゴリズムを学び始めました:)
hengxinの回答に基づくアルゴリズム:https ://cs.stackexchange.com/a/52293/42816
数学的帰納法による証明
注:O(n log n)実装を使用しませんでした
次に、数学的帰納法を使用して、このアルゴリズムの正確性を証明します。私たちの貪欲なアルゴリズムは最適解よりも悪いことはできないことを示します。
しましょう 私たちの貪欲なアルゴリズムによって発射された光線のセットになります。しましょう 別の最適なソリューションによって撮影された光線のセットである。
私たちの基本ケースはいつですか 。破壊するオブジェクトは1つだけであり、貪欲なアルゴリズムは1つのレイを使用しますが、これもたまたま最適です。これはチェックアウトです。
ここで、帰納法の仮説について、貪欲なアルゴリズムが最大で オブジェクト。
ここで、最初の光線が の それよりも悪いことはできません 。
今考えてみましょう オブジェクトの状況。次に、並べ替えます そして による 、時計回り。今から発生する最初の光線を調べてみましょう時計回り。に、この最初の光線、それを呼び出します 、おそらくそれよりも悪いことはできません 、 あれを呼べ 、私たちの貪欲なアルゴリズムは、この光線が最初のオブジェクトを含むほとんどのオブジェクトと交差することを示しているため、 。したがって、 交差するオブジェクトの数と同じかそれより少ないオブジェクト 。したがって、 と 最適なソリューションで 。
さて、残りの部分が 最適です、カットアウト 、これを呼び出します 。ただし、現在は最大で オブジェクト、私たちの帰納仮説は、貪欲なアルゴリズムが 。そのため、問題には、貪欲なアルゴリズムによる最適な解があります。QED