この有限グラフ問題は決定可能ですか?どの要因が問題を決定可能にしますか?


17

次の問題が決定可能かどうか、およびその発見方法を知りたい。私が見るすべての問題は、「はい」または「いいえ」と言うことができます。そのため、ほとんどの問題とアルゴリズムは、ここで提供されるいくつかを除いて決定できますか?

入力:Aは有限有向グラフととと頂点と 質問:ずに経路と初期頂点とASの最終頂点が存在として?v u G u vGvu
Guv


1
フォローアップの質問(大まかに言って
ジル「SO-悪であるのをやめる」

回答:


18

すべての潜在的なソリューションを列挙することで構成されるアルゴリズムがあるため、有限量のデータを調べるだけでよい問題はすべて決定可能です。それは途方もなく遅いかもしれませんが、それは関係ありません:アルゴリズムがある場合、それは決定可能です。

あなたが述べる問題は有限グラフを想定しており、それは決定可能であることを強く示唆しています。厳密に言えば、もう少し見直す必要があります。問題はグラフ内のパスのプロパティであり、グラフにサイクルが含まれる場合、パスの数が無限になることがあります(このサイクルを何度でもループできます)。しかし、問題を有限問題に変えるのは簡単です。サイクルを含むで始まりで終わるパスがある場合、そのパス内のすべてのサイクルを切り取ることができます。サイクルを含めないでください。サイクルを含まない有限数のパスがあるため(グラフにエッジがある場合、最大v k k あなたvuvkk!同じエッジを複数回使用しないパス)、からへのパスを見つける問題は最終的なものであるため、決定可能です。uv

ちなみに、このプロパティはConnectivityと呼ばれます

このアプローチは、reductionと呼ばれる一般的なアプローチです。簡単ではない問題を考えて、解決方法がわかっている問題に減らしました。

問題が決定不能であることを証明することはしばしば困難です。問題が決定可能であることを証明するには、それを決定するアルゴリズムを提示するだけです。問題が決定不能であることを証明するには、アルゴリズムが存在しないことを証明する必要があります。よく知られている決定不能な問題がいくつかあります。実際には、ほとんどの場合、問題が決定不能であることを証明するとき、私たちの問題に帰着するよく知られている決定不能な問題があることを示します。私たちの問題のアルゴリズムは、よく知られている決定不可能な問題を解決するので、私たちの問題も決定不可能でなければなりません。

「ほとんどの」問題が決定可能であるとか、「ほとんどの」問題が決定不可能であるとは本当に言えません。理論的な意味では、ほとんどすべての問題は決定不能ですが、「興味深い」問題に取り組む傾向が強く、それらには解決策がありそうです。


15

ジルがコメントで指摘したように、問題は簡単に決定できます。他の質問については...

ほとんどの問題とアルゴリズムは、少数(ここで提供)を除いて決定可能ですか?

いや。実際、ほとんどの問題は決定不能です。実際、数え切れないほど多くの問題(言語)がありますが、可算の多くのチューリングマシンしかありません。つまり、可算の多くの決定可能な問題があります。


8

はい、すべての可能なパスを徹底的に検索できるため、これは決定可能です。「迂回」はスキップできるため、頂点を繰り返すパスを調べる必要はありません。しかし、繰り返しのないパスの長さは有限のグラフのサイズによって制限されているため、そのようなパスは1つずつ確認できる有限の数しかありません。

何決定可能ではないことは、以下の通りである:無限グラフ所与と2つの頂点とからのパスが存在するかどうかを決定する、と。これは、グラフがオラクルとして与えられている場合は決定できません。また、グラフを計算するプログラムを介してグラフが与えられている場合も決定できません。a b a bGabab


入力に依存しませんか?与えられた情報が答えを見つけるのに十分ではない場合、それは決定できないと言うべきですか?
ジギリ

あなたが何を求めているのか分かりません。あなたが説明した問題については、答えは答えを見つけるのに十分です。
カール・ムンメルト

@Gigili問題が決定できない場合、すべての入力に対してyesまたはnoを出力するアルゴリズムを考え出すことは不可能です。BFSでは、パスが存在するかどうかを常に(線形時間で)判断できるため、この問題は当てはまりません。
ザックラングレー

@ZachLangley:そうです、私は一般的なケースを求めていました。入力として与えられた情報が問題を解決するのに十分でない場合、問題は決定不能ですか?
ジギリ

uvuv

7

特定の問題が決定可能かどうかを示す方法はありません。時間が経つにつれて、特定の問題が決定可能かどうかに関係なく、良い「予感」が得られる可能性があります。

私が通常行うことは次のとおりです。

  1. 問題を解決してください。つまり、与えられた問題を解決するコンピュータープログラムを考えてみてください。あなたの提案された問題について-非常に単純なプログラムは、可能なパスをチェックするだけなので、(もし存在すれば)それを見つけることに成功するか、そうでなければパスが存在しないことを伝えます。
  2. 問題を明確に定式化します。多くの問題はあまりにもあいまいですが、明確に書かれている場合、決定可能かどうかを確認するのは非常に簡単です(他の問題と比較して、決定できないことがわかっているか、ライスの定理のような既知の方法を使用して)
  3. (2)が機能しなかったが、問題がまだ決定不可能であると思われる場合は、未決定の問題(ハルティング問題(またはその補数)が多くの場合に機能する)を減らすことで証明しようとします。

ほとんどの場合、未決定の問題に対してステップ(1)を実行しようとすると、プログラムが無限の数をチェックする必要があります。これは通常、問題が決定できないことを示しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.