ランダム化アルゴリズムと非決定的アルゴリズムの違いと関係


30

ランダム化アルゴリズムと非決定的アルゴリズムの違いと関係は何ですか?

ウィキペディアから

ランダム化されたアルゴリズムは、そのロジックの一部として、ランダムの程度を採用するアルゴリズムです。アルゴリズムは通常、ランダムビットのすべての可能な選択に対して「平均的なケース」で良好なパフォーマンスを達成することを期待して、その動作を導く補助入力として均一にランダムなビットを使用します。正式には、アルゴリズムのパフォーマンスは、ランダムビットによって決定されるランダム変数になります。したがって、実行時間または出力(あるいは両方)はランダム変数です。

非決定的アルゴリズムは決定論的アルゴリズムとは反対に、異なる実行に異なる動作を示すことができるアルゴリズムです。アルゴリズムが実行ごとに異なる動作をする可能性があるいくつかの方法があります。同時アルゴリズムは、競合状態のために異なる実行で異なる実行することができます。確率的アルゴリズムの振る舞いは、乱数ジェネレータによって異なります。非決定的な多項式時間の問題を解決するアルゴリズムは、実行中の選択に応じて、多項式時間または指数時間で実行できます。

ランダム化アルゴリズムと確率的アルゴリズムは同じ概念ですか?

はいの場合、ランダム化アルゴリズムは一種の非決定的アルゴリズムですか?


混乱の一部は、「非決定論的」と「非決定論的」が同じことを意味するように聞こえるからだと思いますが、そうではありません。したがって、「ランダム」と「非決定論的」はどちらもアルゴリズムが「非決定論的」になる方法ですが、「非決定論的」には特定の技術的定義があり、単に「決定論的」の反意語ではありません。
ジョー

回答:


24

非決定的アルゴリズムは、確率的アルゴリズムとは大きく異なります。

確率的アルゴリズムは、コイントスを使用し、「ほとんどの時間」動作するアルゴリズムです。一例として、クイックソートのランダム化されたバリアントは、時間内にを期待して(そして高い確率で)動作しますが、運が悪ければ、Θ n 2ほどかかります。確率的アルゴリズムは実用的であり、たとえば、RSAキーを生成するときにコンピューターで使用されます(秘密キーの2つの要素が素数であることをテストするため)。コイントスを使用しない確率的アルゴリズムは、「決定論的」と呼ばれることもあります。ΘnログnΘn2

非決定的アルゴリズムとは、「ヒントが必要」なアルゴリズムですが、常に正しいものです。間違ったヒントを与えられてもだまされることはありません。例として、ここでは非決定論的なアルゴリズムであることの要因整数:の因数分解を推測nは、すべての要因が(ということについて、「ファスト・イン・理論」決定論的なアルゴリズムがある)プライムであることを確認します。このアルゴリズムは非常に高速で、誤ったヒントを拒否します。ほとんどの人は、ランダム化されたアルゴリズムでは整数をそれほど速く分解できないと考えています。明らかに、この計算モデルは現実的ではありません。nn

なぜ非決定的アルゴリズムを気にするのですか?NPと呼ばれる問題のクラスがあります。これは、効率的な非決定的アルゴリズムを持つ決定問題で構成されています。ほとんどの人は、そのクラスで最も難しい問題、いわゆるNP完全問題には、効率的な決定論的(またはランダム化された)アルゴリズムもありません。これは、P対NPの質問として知られています。多くの自然の問題はNP完全であるため、最悪の場合、実際にはそれらが効率的に解決できないかどうかを知ることは興味深いです(実際には、実際に発生するインスタンスは実際には妥当な時間で実際に解決できることが多い)。


ありがとう!(1)NP問題は、多項式時間で非決定性チューリングマシン上のアルゴリズムによって解決できる問題であることを覚えています。それでは、「非決定性チューリングマシン上のアルゴリズム」と「決定性チューリングマシン上の非決定性アルゴリズム」は、ある意味で同等ですか?(2)確率的アルゴリズムとランダム化アルゴリズムは同じ概念だと思いますか?(3)ウィキペディアは、同時アルゴリズムと確率的アルゴリズムは2種類の非決定的アルゴリズムが間違っていると言っていると思いますか?
ティム

1
非決定論の証明書のフレーバーがランダム化との違いを明確にするのに役立つとは思わない。
ラファエル

(1)はい、2つは同じです。(2)これらは同じ概念の2つの名前です。(3)ウィキペディアは他の種類のアルゴリズムの例をいくつか提供していますが、プレゼンテーションは誤解を招くかもしれません。並列および確率的アルゴリズムは非決定的ではありません。
ユヴァルフィルマス

4
@ShelbyMooreIII非決定論は、再帰理論と理論的コンピューターサイエンスにおいて非常に具体的な技術的意味を持っています。
ユヴァルフィルマス

1
ユバル、建設的または時代遅れではないと思うコメントにフラグを付けてください。それからそれらを削除します。
ラファエル

15

アルゴリズムは、特定の入力から、入力と特定の関係を持つ目的の出力を取得するメソッドを指定します。このアルゴリズムは、任意の時点で、その方法の一部として実行する必要があるアルゴリズムの次のステップを正確かつ明確に指定し、潜在的に入力またはこれまでに計算した部分データに依存する場合、決定的であると言いますが、常に一意に識別されます。

非決定性とは、アルゴリズムの一部が指定されていないか、指定されていないことを意味します。たとえば、「int i = 0〜nの偶数」は指定不足です。これは、この時点で指定された固有の動作がないことを意味します。

この区別を有効にするには、(決定論的)アルゴリズムの「正しさ」の(通常の)概念が必要です。これは、非公式には「アルゴリズムは常に計算したいものを計算する」というものです。次に、非決定的アルゴリズムの正確性が何を意味するかを考えると、興味深いことになります。非決定的アルゴリズムでは、指定不足の命令で可能な選択肢を考慮する必要があります。

非決定性の正しさを定義する方法は2つあります。最初のものはかなり単純で面白くなく、その正確さは「アルゴリズムは、私が許可する選択のすべてのシーケンスに対して、常に計算したいものを計算する」ことを意味します。これは、「pick 0」がアルゴリズムを決定論的にしたときに、少しの擬似コードの作成者が数字を選ぶのが面倒で「0からnの間の任意の偶数を選ぶ」と言う場合に時々起こります。基本的に、すべての非決定論を何らかの選択の結果で置き換えることにより、アルゴリズムを決定論的にすることができます。

これは、2番目の段落で言及されている「非決定論」でもあります。これは、並列アルゴリズムの非決定性でもあります:これらのアルゴリズムでは、実行が正確にどのように見えるかはよくわかりませんが、何が正確に発生しても常に実行されることがわかります(そうでない場合、並列アルゴリズムは正しくありません)。

非決定的アルゴリズムの正しさの興味深い定義は、「アルゴリズムは常にのために、私はそれを計算したいものを計算しているいくつかの私が作るさせていただいております選択肢の順序」。これは、アルゴリズムが間違った答えを生成したり、無限ループに入ったりするという意味で、間違った選択肢が存在する可能性があることを意味します。「0からnの間の偶数を選択する」例では、おそらく4から16が正しい選択ですが、他のすべての数字は間違っており、これらの数字は入力、部分的な結果、これまでの選択によって異なる場合があります。

コンピュータサイエンスで使用される場合、非決定性は通常、0または1のいずれかを非決定的に選択することに制限されます。 (もしあれば)その適用可能性を制限します-適用可能性が制限されると、そもそも非決定性が強すぎます。

非決定性は、証明書ベースの決定論的アルゴリズム、つまり、指定されたインスタンスのプロパティとそのプロパティの証明書をチェックするアルゴリズムとまったく同じくらい強力なツールです。1つの方向の証明書を単純に非決定的に推測できます。また、他の方向のプログラムの0と1の非決定的な推測に対するすべての「正しい」答えを含む証明書を与えることができます。

実行時間をミックスに含めると、事態はさらに面白くなります。通常、非決定的アルゴリズムの実行時間は、すべての(正しい)選択にわたって最小になるように取られます。ただし、他の選択を行うと、実行時間が劇的に悪くなる可能性があり(漸近的に悪化する場合もあれば、最小値よりもarbitrarily意的に悪化する場合もあります)、無限ループになる場合もあります。これが私たちが最小限をとる理由です。これらの奇妙なケースは気にしません。

次に、ランダム化されたアルゴリズムを取得します。ランダム化されたアルゴリズムは非決定的アルゴリズムに似ていますが、特定のポイントで0と1の間の選択を「許可」する代わりに、この選択は選択が必要なときにランダムなコイントスによって決定されます(実行ごとに異なる場合があります) 、または後でアルゴリズムの実行中に同じ選択を再度行う必要がある場合)。これは、結果が0または1の確率で等しいことを意味します。正確性は、「アルゴリズムはほぼ常に計算したいものを計算する」または「アルゴリズムは常に計算したいものを計算する」(決定論的なバージョンのみ)になります。2番目のケースでは、アルゴリズムがその答えを計算するのに必要な時間は、通常、「ほぼ常に高速」であり、決定論的な「常に高速」とは対照的です。

PZPPNP


1
O|s|s

14

要するに、非決定論とは、計算を継続する方法について、複数の等しく有効な選択肢があることを意味します。ランダム化とは、(ランダムな)ビットの外部ソースを使用して計算をガイドすることです。


非決定性を理解するために、有限オートマトン(FA)を参照することをお勧めします。以下のために決定的 FA(DFA)、遷移関数は、うまく機能します。現在の状態と次の入力シンボルが与えられると、次の状態は一意に定義されます。

abac

NFA
[ ソース ]

aabaca

ここで重要なのは、承認はNFAの「承認実行ある場合承認」として定義されることです。この存在基準は、実際の推測がなくても「常に正しい推測」と解釈できます。

ここには、どこにも確率がないことに注意してください。非決定性をプログラミング言語に翻訳する場合、同じ状態が与えられた場合、別のステートメントにジャンプする可能性のあるステートメントがあります。多分あなたの心を歪めるように設計された難解なプログラミング言語を除いて、そのようなことは存在しません。


ランダム化はまったく異なります。分解すると、オートマトン/プログラムには実行を継続するための複数の選択肢がありません。ランダムビットが描画されると、次のステートメントが一意に定義されます。

if ( rand() > 5 )
  do_stuff();
else
  do_other_stuff();

有限オートマトンの観点から、これを考慮してください:

PFA
[ ソース ]

{abc}10

Σ×ΠΠ


最後の注意点:非決定性は純粋に理論的な概念であり、実装できないことがわかります!では、なぜそれを使用するのでしょうか?

  1. 多くの場合、より小さな表現が可能です。最小のDFAが指数関数的に大きいNFAがあることをご存知かもしれません¹。小さいものを使用するのは、オートマトンの設計と技術的証明を単純化するだけです。

  2. ターゲットモデルで非決定性が許可されている場合、モデル間の変換はより簡単です。たとえば、正規表現をDFAに変換することを検討してください。通常の(そして単純な)方法は、それをNFAに変換し、これを決定することです。私は直接建設を知りません。

  3. これは学術的な懸念かもしれませんが、非決定性がデバイスのパワーを高めることができるのは興味深いことです。これは、最も一般的なマシンモデルデバイスであると考えられる有限オートマトンおよびチューリングマシンの場合ではありませんが、たとえば、確定的プッシュダウンオートマトン、ブッチオートマトンおよびトップダウンツリーオートマトンは、非確定的兄弟よりも厳密に少ない言語を受け入れることができます²。


  1. 例については、cstheory.SEのこの質問を参照してください。
  2. それぞれherehereおよびhere(命題1.6.2)を参照してください。

プログラミングでは、同じ条件で複数の「if else」を作成できないため、確率/重みが条件に組み込まれることがあるのはなぜですか?
ケイト

@kateそれがどういう意味かわかりません。プログラミング言語-ちょっと、コンピューター!-本質的に決定論的です。PRNGとtruleランダム(それが何であれ)入力を使用して、ランダム性の錯覚を作成できます。
ラファエル

14

ここでは、非決定性の2つの異なる定義がスローされることに注意する必要があります。

  1. ウィキペディアで定義されているように、ほとんど「決定性ではない」、つまり、同じ入力に対して常に同じ動作をするわけではないアルゴリズムです。ランダム化アルゴリズムは、「決定論的ではない」アルゴリズムの特殊なケースです。これは、先ほど説明した定義に適合するためです。

  2. 計算の非決定性モデル(非決定性チューリングマシンなど)は、計算の理論モデルです。複数の実行パスがあり、それらのパスのいずれかが受け入れられると「受け入れ」ます。それらは本物ではないことに注意してください。この意味で非決定的であるアルゴリズムを物理的に実行する方法はありませんが、ランダム化アルゴリズムまたは決定論的アルゴリズムでシミュレートできます。

CSでは、非決定性は通常(2)を意味するため、あなたが与えたWikipediaの定義((1))は誤解を招く可能性があります。これまでの回答のほとんどは、(1)ではなく(2)を説明しています。


1)によると、ランダム化されたクイックソートは決定論的なアルゴリズムです。それが有用な用語かどうかわかりません。1)は「ブラックボックス」ビューと説明でき、2)実際に手元のアルゴリズム/マシンを検査できると思います。おそらく、CSはすべて約2)です。視点1)を(モジュール式の)ソフトウェアエンジニアリングに割り当てます。
ラファエル

@Raphael、良い点、(1)を修正して、「同じ入力で同じ動作をする」と言う必要があります。(1)よりも(2)を優先することに同意しました。
usul

「振る舞い」は曖昧で、まさにブラックボックスとホワイトボックスの方法です。:)
ラファエル

確かに、私は重要な違いを、形式的で正確に定義された非決定的チューリングマシン(2)とランダム/ランダム(NTMではない)を含む漠然とした/曖昧な「非決定性」(1)との間で見ていると思います。私が言いたかったすべての....ですそれはそう
usul

非決定的アルゴリズムの実行について「非現実的」なものはありません。実行中に、アルゴリズムによって結果が決定されない選択を行う必要があることを意味します。1と2の唯一の違いは、1でアルゴリズムが「成功」と見なされたときに何も言っていないのに対し、2では、アルゴリズムは常に「yes」または「no」と言う種類のものでなければならないことです。実行で決定問題があり、その実行のいずれかが「はい」と答えた場合にのみ、その問題に対するアルゴリズムの答えを「はい」と定義します。したがって、2は1の特別な場合です。
reinierpost15年

1

私が行っているいくつかの関連研究、自分自身と答えた他の人たちとの間の不一致のためにこれを再考することは、私たち全員が正しかった全体論的理解に同化することができます。しかし、IMOで採用されているコンピューターサイエンスの用語「境界のある非決定論」は、間違った矛盾表現です(これは以前私の論点でした)。

それらのキーポイントは、有界および無界の非決定性を区別することです。[1]

非決定的チューリングマシン(別名「NTM」)は、各状態遷移の境界数に制限があるため、プログラムの数(別名「構成」)が有限であるという点で非決定性を制限しています。テープは無制限のままなので、終了の証拠は決定不能のままです。しかし、停止する特定の入力の場合、出力は確定的であり、時間に制限があります。つまり、入力の場合、結果は確定的であるか、終了しません。また、NTMはすべての可能な構成を並行して実行するため、決定論的チューリングマシン(別名「DTM」)でのNTMのエミュレーションよりも指数関数的に高速に実行されます。[2]

NTMの入力と結果の間に非決定的な関係はありません。これは、入力または初期状態の結果が常に同じであるためです。停止しないことも決定論的な結果であるため、決定不能は決定論のアンチテーゼではありません。決定論的マシンは、結果が停止しない場合でも、与えられた入力に対して常に同じ結果になります。NTMのローカライズされた非決定性は、実行中のアルゴリズムの各状態遷移にあります。ツリーのどのパスが出力状態を提供して終了する可能性があるかは、先験的に決定できません。しかし、決定不能性は非決定論ではありません。したがって、「有界非決定性」という用語は、ステートマシン内のローカライズされた不確定性を説明することを意図したものであり、入力と結果の関係ではなく、したがって、「有界」の概念。「有界非決定性」という用語は矛盾表現であり、「並列化された状態遷移」チューリングマシンとしてより正確に説明できたと思います。

一方、特定の入力または初期状態では、無制限の非決定性(別名「不決定性」)には無数の可能な状態があります。無制限の非決定性には、プログラムの可能な構成の数だけでなく、無制限の遅延など、入力または初期状態の一部ではない無制限の外部状態も含まれます。したがって、結果は、同じ入力または初期条件の繰り返し実行によって異なる場合があります。したがって、入力と結果の間の決定論的な関係ではありません。[3]

ランダム化された確率的アルゴリズムは、いくつかの非決定性、つまり構成の数に制限がある可能性のある構成のランダム選択を採用しますが、NTMのようにすべての可能な構成を実行しません。したがって、ランダム性が決定論的(PRNGなど)であり、ランダム性のエントロピーの初期状態が入力の一部であると見なされない限り、それらは決定論的ではありません。

[1] https://en.wikipedia.org/w/index.php?title=Unbounded_nondeterminism&oldid=710628370#Nondeterministic_automata

[2] https://en.wikipedia.org/w/index.php?title=Non-deterministic_Turing_machine&oldid=754212081#Equivalence_with_DTMs

[3] ヒューイット、メイジャーとSzyperski:アクターモデル(あなたが知りたかったすべてのもの...) 。17:44分マークにジャンプします。


1
これがどのように質問に答えているのかわかりません。
adrianN

1
@adrianNの答えは、非決定論が実際に何であるかの説明を示しています。そして、ランダム化されたアルゴリズムがどのように関係するかを説明します。質問は、2つを関連付けるように求めます。ビンゴ。質問に答えました。
シェルビームーアIII

0

違いを説明するすべての答えとは別に、彼らが言いたいことを理解するのに役立つ例があります。
コイントスを考えると、HまたはTのどちらかを受け取ります。コイントスがランダムである場合、1000回のコイントスのうち、500がHになる可能性が高く、そのうちの999がHになる可能性は非常に低いです。しかし、コイントスが非決定的である場合、999 Hを取得する可能性は非常に低いとは言えません。


あなたの投稿はコメントとして機能すると思いますが、ランダム化アルゴリズムと非決定的アルゴリズムの主要な問題を解決しようとせず、さらに異なる種類の非決定性に引き戻してしまうと思います。
邪悪な

-6

ランダム化(多項式時間、ブール結果)アルゴリズムはRP計算複雑度クラスにあります。これは、非決定論的(多項式時間、ブール結果)アルゴリズムが存在するNPのサブセットであり、決定論的(多項式時間、ブール結果)アルゴリズムが常駐します。

サブセット化の複雑さとは、あるセットの問題を別のセットに減らすことです。したがって、RP⊆NPは、定義上、スーパーセットにサブセットが含まれるため、非決定論的であるランダム化アルゴリズムの可能性を除外します。サブセットとは、すべてのRPアルゴリズム(または任意のRP完全アルゴリズム)を何らかのNPアルゴリズム(または任意のNP完全アルゴリズム)に縮小できることを意味します。PはRPのサブセットです。これは、Pのすべての問題を、制御されないエントロピーの量が0であるRPの問題に還元できるためです。

接線方向では、これはNCのすべての問題(並列計算)に類似しています。 をPの直列問題への還元で並列計算をシミュレートすることでPの問題に還元いますが、逆が真であることがまだ証明されていませんPのすべての問題はNCの問題に還元可能でも、真実ではないことも証明されていないこと、つまり、P完全問題がNCの問題に還元できないという信じがたい証拠。本質的に直列で並列計算できない問題がある可能性がありますが、P≠NCであることを証明することは妥当ではないようです(この答えで議論するにはあまりにも接線的な理由のため)。

より一般的に(つまり、ブール型の結果タイプに限定されない)、ランダム化アルゴリズムは、エントロピーの一部が外部から供給されるという点で決定論的アルゴリズムと区別されます。エントロピーが制限されているため、ランダム化アルゴリズムは非決定的アルゴリズムと区別されますしたがって、ランダム化された(非決定的ではない)アルゴリズムは常に終了することが証明できます。

非決定性アルゴリズムの予測不能性は、入力エントロピーのすべての可能な順列列挙できないためです(これにより、終了が予測不能になります)。ランダム化アルゴリズムの予測不能性は、次のことができないためです。制御入力エントロピーのすべて(結果は予測不能ですが、予測不能の割合は予測可能ですが)これらはどちらも、問題に対する正しい答えの予測不可能性に関する記述ではなく、予測の不確定性がそれぞれ終了と不確定な結果のサイドチャネルに現れることです。多くの読者が、1つの領域の予測不能性と正しい結果の予測不能性を混同しているようです。これは、私が書いたことのない混同です(編集履歴を確認)。

非決定論は常に(科学や用語の使用において)普遍的な(つまり無制限の)エントロピーを列挙できないことを理解することが重要です。一方、ランダム化とは、バインドされていない場合とされていない場合のあるエントロピーの別のソースへのアクセスを指します(プログラムではエントロピー以外であり、入力変数の制御下にありません)。

同様の質問をする他のスレッドへの現在最も人気のある回答の下に、以下のコメントを追加しました。

すべての科学は、無制限エントロピーの概念で統一された非決定論の同じ定義を使用します。すべての科学における予測不可能な結果は、アルゴリズム(またはシステム)のすべての可能な出力をアプリオリに列挙できないことによるものです。特定の入力を指定してそれが停止するかどうかを観察し、結果がべき等であることに注意することは、他の科学では同じ状態変化を繰り返しながら宇宙のエントロピーの残りを一定に保つことと同等です。計算ではこのエントロピーの分離が可能ですが、自然科学ではできません。

ランダム化されたものと非決定論的なものの間の唯一の顕著な違いについての私のポイントの明確化を追加するために、いくつかの最高のコメントを追加します。

顕著なエントロピーの観点からではなく、運用の観点から説明しようとすることで、すべてを混乱させるのをやめると、区別は非常にエレガントで簡単にわかります。

@reinierpost全員が、ランダム化と非決定性の違いを混同しています。これにより、コメントが混乱します。アルゴリズムは、入力(変数)エントロピーとそのソースコード(不変)内部エントロピーの相互作用に応答します。非決定性は無制限のエントロピーです。不変のエントロピーは、πの桁数を拡張するなど、内部的に無制限にすることもできます。ランダム化は、エントロピーの一部が定義された入力に結合されていないことです(つまり、システムコール/dev/randomや、NFAやPRNGなどのシミュレートされたランダム性から生じる可能性があります)。

非決定性有限オートマ(NFA)の@Raphael形式定義は、有限入力エントロピーです(データ:5タプル)。したがって、すべてのNFAは決定論的チューリングマシン上で実行できます。つまり、非決定論的チューリング完全マシンを必要としません。したがって、NFAは非決定的問題のクラスには含まれません。NFAの「非決定性」の概念は、その決定性(すべてのNFAをDFAに変換できるため明確に存在します)が明示的に拡張されていないことです-計算の非決定性と同じではありません

NFAで「非決定性」と主張されている@Raphaelは、実際、ランダム性とは、ランダム性と非決定性の区別の定義の意味です。私の定義では、ランダム性とは、プログラムまたは関数への入力の制御、知識(またはNFAの場合は望ましい非明示的拡張)に含まれないエントロピーの一部です。一方、真の非決定論は、無限のエントロピーを知ることができないことです。これは、ランダム化と非決定性を区別したものです。したがって、NFAは前者の例であり、後者の例ではありません。

@Raphaelは既に説明したように、NFAの非決定性の概念は、非決定性と有限エントロピーを結び付けます。したがって、非決定性は、圧縮または利便性の形式として決定性を拡張しないというローカルの概念です。したがって、NFAは非決定性であるとは言いません。むしろ、決定性の拡張を計算したくないオラクルにランダム性の外観を持っています。しかし、エントロピーは無制限、つまり有限ではないため、決定論的に拡張されると呼ばれるため、それはすべてmi気楼です。

辞書はツールです。それらを使用することを学びます。

ランダムな形容詞

統計学。セットの各アイテムが選択される確率が等しい選択プロセスの特徴

各要素が発生する確率が等しいセットまたはセットの要素であること

したがって、ランダム化では、入力エントロピーの一部が同等であることが必要です。これは、入力エントロピーの一部が関数の呼び出し元によって制御されないという私の定義と一致しています。ランダム化では、入力エントロピーが終了するまで決定不能である必要はないことに注意してください。

コンピューターサイエンスでは、決定論的アルゴリズムは、特定の入力が与えられると、常に同じ出力を生成し、基になるマシンは常に同じ状態シーケンスを通過するアルゴリズムです。

正式には、決定論的アルゴリズムが数学関数を計算します。関数はそのドメイン内の入力に対して一意の値を持ち、アルゴリズムはこの特定の値を出力として生成するプロセスです。

決定論的アルゴリズムは、ステートマシンの観点から定義できます。ステートは、マシンが特定の瞬間に何をしているかを表します。ステートマシンは、ある状態から別の状態に個別の方法で渡されます。入力を入力した直後、マシンは初期状態または開始状態にあります。マシンが決定論的である場合、これはこれ以降、現在の状態が次の状態を決定することを意味します。一連の状態の経過は事前に決定されています。マシンは決定論的であり、停止または終了することはないため、結果を提供できないことに注意してください。

したがって、これは、決定論的アルゴリズムが関数の入力状態によって完全に決定される必要があること、つまり、関数が終了する(または終了しない)ことを証明できなければならず、決定できないことを示しています。ウィキペディアの非決定論的記述の混乱した試みにもかかわらず、ウィキペディアによって上記で定義された決定論に対する唯一のアンチテーゼは、入力状態(エントロピー)が不明確なアルゴリズムです。そして、入力状態が不明確になる唯一の方法は、それが無制限であるときです(したがって、確定的に事前分析することはできません)。これは、非決定的チューリングマシン(およびC、Java、Javascript、MLなどの一般的なチューリング完全言語で記述された多くの現実世界のプログラム)と、決定論的TMおよびHTML、スプレッドシート式などのプログラミング言語を区別するものです。 Coq、エピグラム、

計算複雑性理論では、非決定的アルゴリズムは、可能なすべてのステップで複数の継続を可能にするアルゴリズムです(森の道を歩いている男性を想像し、さらに踏み込むたびに、希望する道路の分岐点を選択する必要があります)取る)。これらのアルゴリズムは、考えられるすべての計算パスのソリューションに到達するわけではありません。しかし、彼らはいくつかの道の正しい解に到達することが保証されています(すなわち、森を歩いている男性は、「正しい」道の組み合わせを選んだ場合にのみ、キャビンを見つけることができます)。選択は、検索プロセスの推測として解釈できます。

ウィキペディアなどは、ランダム化と非決定性を混同しようとしますが、2つの概念を雄弁に区別しないのであれば、2つの概念を持つことのポイントは何ですか?

明らかに決定論は、決定する能力に関するものです。明らかにランダム化とは、エントロピーの一部を等確率にすることです。

アルゴリズムの状態にランダムなエントロピーを含めることで、アルゴリズムを決定不能にする必要はありません。たとえば、PRNGは、必要な同等の統計分布を持ちながら、完全に決定論的でもあります。

直交する概念を統合することは、IQの低い人々にとって重要です。私はこのコミュニティからそれよりも良いことを期待しています!


4
これは、コンピューターサイエンスで非決定性が意味するものではありません。非決定的アルゴリズムは「予測不可能」ではありません。
デビッドリチャービー

4
私は、オートマトンの応答で非決定性がどのように定義されるかについては何も答えていません。計算可能性理論。シェルビー、燃えるのをやめて教科書を手に入れるべきです。あなたが他の答えを理解していない場合、私たちはコメントであなたを助けることができるとは思わない。
ラファエル

3
@ShelbyMooreIIIあなたは、コンピュータサイエンスにおける非決定性の意味を完全に誤解しています。エントロピーとは何の関係もありません。それはあなたがそれが意味すると思うことを意味しません:それはあなたが他のすべての答えが間違っていると思う理由です。おそらく、名前が間違って選択されたが、それはポイントの横にあります。コンピューターサイエンスでは特定の意味を持ち、他の科学での意味とは異なります。あなたは間違った定義を使おうとしているので、すべてが完全に間違っているように見えます。
デビッドリチャービー

4
「計算複雑性理論について話すときの非決定性という用語の使用は、明らかにエントロピーに関するものです」-いいえ、そうではありません。
ラファエル

3
私たちはそれに同意することができます:私たちを「教え」ようとするのをやめてください、それは誰にも役立っていません。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.