ログを分母に持つアルゴリズムを見たことはありませんが、この形式で実際に有用なアルゴリズムがあるかどうか疑問に思っていますか?
実行時にログファクターが増加する原因となる可能性のあるもの(ソートやツリーベースのアルゴリズムなど)を理解していますが、ログファクターで割り切れる原因は何ですか?
ログを分母に持つアルゴリズムを見たことはありませんが、この形式で実際に有用なアルゴリズムがあるかどうか疑問に思っていますか?
実行時にログファクターが増加する原因となる可能性のあるもの(ソートやツリーベースのアルゴリズムなど)を理解していますが、ログファクターで割り切れる原因は何ですか?
回答:
「ログで分割する原因は何ですか?」に対する通常の答え。次の2つのことの組み合わせです。
多くの例があると思いますが、古典的な例は 最長共通部分列などに対する4つのロシアのアルゴリズムです。実際にはになります。ビット操作のブロックを単一のテーブル検索で置き換えるという別のアイデアを使用して、2番目のログファクターを保存します。O (log 2 n )
ルービックキューブは非常に自然な(そして、私にとっては予想外の)例です。キューブが必要です解決するための手順。(これはシータ表記であるため、これは厳密な上限と下限です)。
ルービックキューブの特定のインスタンスを解決する複雑さは公開されていますが、NPハード(たとえばここで説明) NPハードであると推測されることは言及する価値があります[2]。アルゴリズムは、解を保証し、そしてそれはすべての溶液は漸近的に最適であるが、それは最適特定のインスタンスを解決しないかもしれないことを保証します。ルービックキューブは通常このアルゴリズムでは解決されないため、有用性の定義はここに適用される場合と適用されない場合があります(実際には高速で最適なソリューションを提供するため、Kociembaのアルゴリズムは一般的に小さなキューブに使用されます)。
[1] Erik D. Demaine、Martin L. Demaine、Sarah Eisenstat、Anna Lubiw、およびAndrew Winslow。ルービックキューブを解くためのアルゴリズム。第19回アルゴリズムに関する欧州シンポジウム(ESA 2011)、2011年9月5〜9日、689〜700ページの議事録
[2] Erik D. Demaine、Sarah Eisenstat、およびMikhail Rudoy。ルービックキューブの最適な解法はNP完全です。第35回コンピューターサイエンスの理論的側面に関する国際シンポジウム(STACS 2018)の議事録、2018年2月28日から3月3日、24:1-24:13ページ。
ビットパッキングトリックなしで分母に表示されるの例は、Agarwal、Ben Avraham、Kaplan、Sharirによる、時間O (n 2 log log n / log n )の 2つの多角形チェーン間の離散フレシェ距離の計算に関する最近の論文です。アルゴリズムの詳細についてはよく知りませんが、一般的なトリックの1つは、入力を比較的小さな部分に分割し、回答を巧みに組み合わせることです(もちろん、これは分割統治のように聞こえますが、log n分母にはいくつかの巧妙なトリックがあります)
ない正確に何を求めたが、ログ要因が分母に表示される「野生」の状況は紙「であるツリー評価のための小石や分岐プログラムのスティーブン・クック、ピエール・マッケンジー、ダスティンWehrの、マーク・ブレイバーマンによって」、およびラーフル・サンタナム。
ツリー評価問題(TEP)は、次のとおりです。リーフ上の{ 1 、… 、k }の値で注釈されたツリーと、内部ノード上の{ 1 、… 、k } d → { 1 、… 、k }、ツリーを評価します。ここで、各内部ノードは、その子の値に対して注釈付き関数の値を取得します。これは簡単な問題であり、ポイントは対数空間では解決できないことを示すことです(木の高さが入力の一部である場合)。そのために、TEPを解決する分岐プログラムのサイズに関心があります。
5章では、タイトな境界はTEPため、出力がに折りたたまれた関連問題BEP、の両方、高さ3の木のために提示されているいくつかの任意の方法で。TEPの場合、境界はΘ (k 2 d − 1)ですが、BEPの場合、境界はΘ (k 2 d − 1 / log k )です。つまり、log kの節約になります。
それはランタイムについてではありませんにもかかわらず、私はホップクロフト、ポール、およびヴァリアントの古典結果を言及することは価値があると思った: [1]、それはまだだから「ログファクターを節約できる原因」の精神。
それは、空間の複雑さの最もよく知られている上限が分母にログを持つ問題の多くの例を与えます。(あなたの視点に応じて、この例を非常に興味深いものにします-驚くべき定理!-または非常に面白くない-それはおそらく「実際に有用」ではありません。)
[1] Hopcroft、Paul、およびValiant。時間対スペース。J. ACM 24(2):332-337、1977
クエリの複雑性は2つの問題があります。
長さの2つの文字列の編集(別名レーベンシュタイン)距離を計算するための最良の既知のアルゴリズムかかりO ((N /ログN )2)時間:
ウィリアムJ.マセック、マイクパターソン:文字列編集距離を計算する高速アルゴリズム。J.計算 システム。科学 20(1):18-31(1980)。