アルゴリズムはどのような状況下でアルゴリズムを暗示しますか?


16

各について、時間言語を決定するチューリングマシンがあると仮定します。時間を決定する単一のアルゴリズムはありますか?(ここで、項は、入力の長さで測定されます。)ϵ > 0 ϵ>0M ϵMϵ L LO n a + ϵO(na+ϵ)L LO n a + o 1 O(na+o(1))o 1 o(1)nn

アルゴリズムあれば、それは違いを生むん計算、または効率的に計算されているという点で、?M ϵMϵ ϵϵ

動機:多くの証明で、制限アルゴリズムよりも時間アルゴリズムを構築する方が簡単です。特に、の定数項を境界に渡す必要があります。制限に直接渡すために呼び出すことができる一般的な結果があればいいでしょう。O n a + ϵO n a + o 1 O n a + ϵO n a + o 1 O(na+ϵ)O(na+o(1))O(na+ϵ)O(na+o(1))

回答:


10

この質問は、一連の(構成)オブジェクトの制限の建設的な存在に関する質問に似ています。通常、これらのオブジェクト(ここでは)を十分に効率的に均一に構築できれば、制限の存在を建設的に示すことができます。M ϵMϵ

例えば、我々が持っていると仮定TM実行上、その実行時間はO N + | K | - 1+ O | K |(のようなここでは限界も均一で、例えば何かO 2 Kのn + | K | - 1うではない仕事)。次に、この均一なシミュレータを関数k xN k x M | k | 1 xN(k,x)M|k|1xO(na+|k|1)+O(|k|)O(2k.na+|k|1)X(k,x)x機械得るため N X XのN(x,x)時間で実行されることを O N + O 1 O(na+o(1))

PS:O n a + o 1 O(na+o(1))は、漸近表記のネストのために少し曖昧です。私はそれをn a + o 1 として解釈していna+o(1)ます。また、我々は必要はありませんが小さすぎる、例えば少なくともする1a1


8

レビンのユニバーサル検索アルゴリズムを使用できます。Lを決定するアルゴリズムA kのシーケンスを何らかの方法で列挙でき、それぞれが時間C k n a + 1 / kで実行されると仮定します。時間レビンのアルゴリズムが実行さT N D K N + 1 / kのすべてのためのKDのkはに依存する定数であり、CはK。したがって、すべてのkについてτ n AkLCkna+1/kT(n)Dkna+1/kkDkCkklog T n ログN -ログDのK++1/KログNlog na=logDklog n +1k 所与のε>0を、選択し、K=2/ε、およびletNを=D 2 / ε K。その後のためのnNτNε。したがって、τn0であり、レビンのアルゴリズムは時間na+τn=na+

τ(n)logT(n)lognalogDk+(a+1/k)lognlogna=logDklogn+1k.
ϵ>0k=2/ϵN=D2/ϵknNτ(n)ϵτ(n)0o 1 na+τ(n)=na+o(1)

Levinのアルゴリズムを理解している場合、これは検索アルゴリズムにのみ適用されます。このアルゴリズムは機能fを逆にするために働くでしょう、fが時間O n o a で計算されることができるところ。ffO(no(a))
デビッドハリス

レビンのアルゴリズム自体を使用することはお勧めしません。ダブテイルを使用してすべてのアルゴリズムA kを並列に実行するというアイデアで、それぞれが乗算因子によってのみスローダウンされるようにします。Ak
ユヴァルフィルマス

@ Yuval、すべてのアルゴリズムを鳩尾形にしたとき、どの答えを受け入れるかをどのように決定しますか?検索問題では、各推定出力をテストできますが、一般的にこれは不可能です。
デビッドハリス

表示される最初の回答を受け入れます。アルゴリズムA kLを正しく決定することが与えられます。AkL
ユヴァルフィルマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.