アルゴリズム、言語、問題の違いは何ですか?


40

このサイトでは、人々はしばしば「アルゴリズム」と「問題」を混乱させるために他の人を修正するようです。これらの違いは何ですか?アルゴリズムを検討し、問題を検討する時期を知るにはどうすればよいですか?そして、これらは形式言語理論における言語の概念とどのように関係していますか?


アルゴリズムは問題を解決する方法です。
reinierpost 14

回答:


53

簡単にするために、はい/いいえの答えがある「決定」問題のみを検討することから始めます。関数の問題はほぼ同じように機能しますが、yes / noの代わりに、各入力語に関連付けられた特定の出力語があります。

言語:言語は、単なる文字列のセットです。などのアルファベットがある場合 、はシンボルのみを含むすべての単語のセットです。たとえば、は、任意の長さのすべてのバイナリシーケンスのセットです。ただし、アルファベットはバイナリである必要はありません。単項、三項などになります。ΣΣΣ{0,1}

アルファベット上の言語は、サブセットです。ΣΣ

問題:問題とは、回答したい入力に関する質問です。具体的には、決定問題とは、「与えられた入力がプロパティ満たしているか?」という質問です。X

言語とは、問題の正式な実現です。決定問題について理論的に推論したい場合、対応する言語をよく調べます。問題場合、対応する言語は次のとおりです。X

L={ww、入力の符号化である問題に、入力に対する回答問題のために「はい」である yXyX}

決定問題への入力に対する答えが「はい」であるかどうかを判断することは、その入力のアルファベット上のエンコードが対応する言語であるかどうかを判断することと同等です。

アルゴリズム:アルゴリズムは、問題を解決するための段階的な方法です。アルゴリズムは多くの方法と多くの言語で表現でき、特定の問題を解決する多くの異なるアルゴリズムがあることに注意してください。

チューリングマシン:チューリングマシンは、アルゴリズムの正式なアナログです。特定のアルファベットに対するチューリングマシンは、単語ごとに、受け入れ状態で停止するか、停止しません。したがって、各チューリングマシンには、対応する言語があります。M

L(M)={wMは入力受け入れ状態で停止します。w}

(すべての入力で停止し、yes入力で停止するチューリングマシンには微妙な違いがあります。これは、複雑度クラスとの違いを定義します。)RRE

言語とチューリングマシンの関係は次のとおりです。

  1. すべてのチューリングマシンは1つの言語のみを受け入れます

  2. 特定の言語を受け入れる複数のチューリングマシンが存在する場合があります

  3. 特定の言語を受け入れるチューリングマシンがない場合があります。

アルゴリズムと問題についてはほぼ同じことが言えます。すべてのアルゴリズムが単一の問題を解決しますが、特定の問題を解決するアルゴリズムは0個または多数存在する場合があります。

時間の複雑さ:アルゴリズムと問題の混乱の最も一般的な原因の1つは、複雑さのクラスに関するものです。正しい割り当ては次のように要約できます。

  • アルゴリズムは時間の複雑さがあります
  • 問題複雑度クラスに属します

アルゴリズムには、一定の時間の複雑さがあります。アルゴリズムは、サイズ入力最大でもステップで停止する場合、最悪の場合の上限の複雑さがあると言い ます。f n nf(n)f(n)n

問題は実際に実行される特定のアルゴリズムに関連付けられていないため、問題にはランタイムがありません。代わりに、私たちはそこに存在する場合、問題は、複雑性クラスに属していることを言って、いくつかの特定の時間複雑でその問題を解決するアルゴリズムを。

P X X P X X PP,NP,PSPACE,EXPTIMEなどはすべて複雑なクラスです。これは、アルゴリズムではなく問題が含まれていることを意味します。アルゴリズムをに入れることはできませんが、与えられた問題解く多項式時間アルゴリズムがある場合、はます。またそこに受け入れ指数時間アルゴリズムの束とすることができる、しかし受け入れる単一の多項式時間アルゴリズムが存在するので、それがである。PXXPXXP


1
必要に応じて、この回答を自由に編集してください。
jmite

他の種類の計算上の問題(検索問題など)があることに言及するのは良いことだと思います。
カベ

1
誰が言ったのですか?この種の考え方は、チューリングマシンの意図よりも前に人々が形式化とアルゴリズムに苦労した理由の一部です。Church-Turing Thesisは、アルゴリズムはチューリングマシンであり、その逆も同じであり、すべてのチューリングマシンが停止するわけではないと述べています。
jmite 14年

4
おい、これは私が今まで見た中で最大の答えです。コンピューターサイエンスのすべてを1ページにまとめました。
キャプテンコードマン

1
@ gnasher729検証の観点から定義できるという定理がありますが、実際の定義は非決定的マシンの時間の複雑さの観点からです。したがって、NP:非決定的多項式
-jmite
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.