言語が認識可能、共認識可能、または決定可能であるかどうかを確認するにはどうすればよいですか?


8

証明を行わずに言語Lを使用している場合、それが認識可能か、共認識可能か、または決定可能かを判断する方法はありますか?

基本的に、伝えるために使用できるヒントやトリック。それとも、それがどの種類であるかを知るために検索する一般的なパターンですか?


「証拠を何もせずに」、私はあなたに何でも証明することができます。(:
ランG.

1
数学では、「トリック」は通常「定理」と呼ばれ、場合によっては「レンマ」と呼ばれます。
Andrej Bauer

いくつかの一般的なパターンは、ライスの定理(集合を決定できないことを証明する)とライス-シャピロの定理(集合を認識できないことを証明する)によって対処されるパターンです。これらは、「Mを実行してこの動作を観察するような(エンコードされた)TMのセットM」というパターンに特に役立ちますMM
chi

回答:


6

Lは認識可能です

言語は、ベリファイアが存在する場合にのみ認識可能です。ベリファイアは、すべての入力およびすべてので停止するTuringマシンであり、。一般に、はがことの「証明書」または「証明」と見なされ、検証者はががことの有効な証明であるかどうかをチェックします。L W Σ * W L C Σ *Vは、 受け付け  W C C wはL VがC W LLLwΣwLcΣ.V accepts w,ccwLVcwL。(言語のベリファイアから言語のレコグナイザを構築できるため、この定義はレコグナイザの定義と同等であることに注意してください)。言語がREにあるかどうかを判断するために、次の質問をすることができます。

文字列を考えると、あなたは可能性が証明その?ワットLwLwL

たとえば、ます。というあなたに証明するためにために認識される上の停止、私はちょうどあなたが実行する必要があり、工程数を伝えることができますするためにしている場合その多くのステップの後に停止を行い、あなたはそれを確信することでしょう。H A L THALT={M,w | M is a TM that halts on w}HALTW M M M W H A L TMwMMM,wHALT

Lは共認識可能

同様に、言語は、その補数が認識可能な場合に限り、つまりベリファイアが存在する場合にのみ、相互認識可能です。したがって、言語が共REにあるかどうかを確認するには、次のように尋ねます。¯ LLL¯

文字列を考えると、あなたは可能性を証明するもの?ワットLwLwL

再びの例を、この直感を使用して、が認識できないことを示すことができます。これは、一部のマシンが入力で停止しないと言った場合、その事実を説得するために私があなたに言えることは何もないからです。を実行することはできますが、実行を見ていて、まだ停止するのを見ていない場合でも、将来いつか停止して停止することはありません。HALTM w M w MHALTMwMwM

Lは決定可能です

最後に、と両方が認識可能であれば、言語は決定可能です。したがって、上記の2つの質問の両方に対する答えが「はい」である場合、その言語は決定可能です。L ¯ LLLL¯

例として、考えます。文字列を考えると、私はあなたに証明できる?確かに、私は多くのカウントアップができ秒と数ので、sおよびショー、彼らがしているに等しいことを認識可能です。場合はどうですか?私は、文字列がでないことを証明できる、それは形式のどちらかではないことを示すことによりまたはの数の不一致があることをSと sが。したがって、は共認識可能です。は認識可能であり、認識可能でもあるため、も決定可能です。のw L W L AL={anbn | nN}wLwLaL W LbLwLN個のB MLanbmb L LabLL

参考:私は大学での計算能力/複雑性理論の入門クラスのTAであり、教授はこれを、非常に有用なアニメーションガイドにして、規則的で決定可能で認識可能な言語について推論しました。


そのリンクをありがとう!そしてそれを作るためのあなたの教授に感謝します!それは素晴らしかった
無効

2

主なアイデア

認識可能であることは、次のようなパラメータとして単語を受け取る自動プロセス(後で説明します)を構築できることを意味します

  • 自動プロセスが終了すると、YESまたはNOが返されます。
  • この自動プロセスは、すべての入力で終了する必要はありませんが、入力語が言語である場合は終了する必要があります。

認識可能であることは、言語(または英語では、に含まれないすべての単語のセット、つまりその補語)が認識可能であることを意味します。 LwΣ,wLL

決定可能であることは、単語を入力として受け取る自動プロセスを構築できることを意味します。

  • 自動プロセスは常に終了します
  • YESまたはNOで応答します。YESと答えた場合、その単語はその言語にあり、NOと答えた場合、その単語はその言語にありません。

重要な結果の1つは、が認識可能で共認識可能な場合に限り、が決定可能であることです。LLL


この結果を証明するアイデアは、認識可能性と共認識可能性によって得られるプロセスから、両方のプロセスのステップを交互に実行することにより、どちらかがYESと答えるまで、自動プロセスを構築できるということです。そのうちの1つはそうする必要があります。すべての単語が言語に含まれているか、含まれていないためです)


自動プロセス

あまりにも形式的ではなく、多くのタイプのマシンが設計されており、基本的にそれらすべてが言語のタイプにリンクされています(これらのタイプは、そのような言語の定義に必要なツールに依存します。詳細については、Chomsky Hierarchyが役立つ場合があります)。

決定可能性に関する自動処理の通常の意味は、チューリングマシンです。次のことができるように、チューリングマシンを定義できます。

  • 入力から値を受け取る
  • 値を保存する
  • 保存した値を読み取る
  • 値の基本的な数学演算を計算する
  • これらの値で基本的な数学的特性をテストし、それに応じて動作し、最終的にループします。

基本的に、チューリングマシンは、無限のメモリと計算に費やす時間を持つ数学的なオブジェクトを除いて、プログラムで定義できるすべてのことを実行できます。常に終了するとは限りません。

チューリングマシンのもう1つの重要な特性は、チューリングマシンを単一の単語(これはエンコーディングです)として記述でき、マシンエンコーディングとワードを入力として与えられてシミュレートできるチューリングマシンが存在することです。入力でのの計算。これは少し重要になります。w M wMwMw


数学の観点から考えることができる(ほぼ)最も単純な種類の言語である通常の言語は、それらが補完的に閉じられるという独特の特性を持っていることを指摘しておきます。つまり、これらの言語では、認識可能性と決定可能性の概念は同等です。Chomsky Hierarchyを上に移動しても、これは成り立ちません。


決定できない言語の例

停止問題について学習します。質問は、私たちは別のチューリングマシンのエンコーディング与えられた、というチューリングマシンを構築することができ、あると単語、決定した天気を入力に終了?w M wMwMw

明らかに、これは認識我々だけでシミュレートするために持っているように、に YESと言う、それが終了するまで、そしてそれがないとき。ただし、が終了しない場合は、NOとは言わないため、この言語は認識していますが、決定はしていません。この言語はチューリングマシンでは決定できないことが証明されています。これには、通常の数学的なスキームが含まれます。対角線の引数ですが、私は直感的には呼び出せません。この証明のスケッチをチェックして、慣れることができます。w MMwM

総括する

言語を考えると、それが決定可能であるかどうかだけを述べることはできません。それを行うことができるアルゴリズムはありません、そして言語が決定可能でないことを証明することはいくつかの思考を必要とし、そしてチューリングマシン、対角引数などに関するいくつかの知識を必要とする可能性があります...

しかし、これがこの質問を処理する私の個人的な方法です。通常、言語を勉強しているとき、チューリングマシンの動作を参照する形を示さない限り、それは決定可能であると思います。その場合、私は警戒し始め、言語を決定するアルゴリズムを定義しようとします。これが簡単に見えない場合は、作業を認識アルゴリズムと共認識アルゴリズムの両方に分割すると役立つことがあります。それでもそれができない場合は、この言語と、「その言語を決定できれば、停止の問題を決定できる」など、他の決定不可能な言語とを関連付けようとします。これは、決定不可能な問題へのチューリング削減であるため、最初の問題は決定できません。これらすべてが失敗した場合は、対角引数を使用してみることができますが、これは少し難しいかもしれません。


1

1つのトリックは、言語が有限である場合、それが決定可能であることを確実に知っているということです。その言語で何でも受け入れるようにマシンを「ハードコード」できるからです。ただし、最も簡単な方法は、別の言語から単純に減らすことです。


同じことが共同有限言語でも機能します。
ラファエル

さらに、入力が与えられた有限の解空間を持つ言語は、総当たり検索を実行できるため、決定可能になります。
jmite 2013

1

上記のコメントで述べたように、問題の解決策について考えることは役に立ちます。

のようなものを考えてください。私たちはそれを決定することができることを知っています、なぜならそれをテストするために私たちが試みなければならない有限数の解決策があるからです。チェックするいくつかの有限の条件セットがある場合、これらの後続の1つがyesを保証し、それらのいずれもnoを保証しない場合、問題は決定可能です。この条件セットは非常に大きくなる可能性があることに注意してください(NP完全問題の場合など)。SAT

解空間が無限に無限であり、可能な各解を順番に生成でき、各解のテストが決定可能である場合を考えてみましょう。この場合、問題は認識できることがわかります。たとえば、「次のような自然数はありますか?」解決策がある場合、それを見つけることは保証されていますが、必ずしもそれを見つけるのにかかる時間に制限があるわけではありません。また、このような整数が存在しない場合、このアルゴリズムが停止することはないため、問題が決定可能であることは証明されません。

すべての文字列、すべての整数、すべてのグラフ、または列挙可能な任意の有限構造のセットに同じ手法を適用できます。これは、実数または(場合によっては無限の)文字列のセットを検索する場合には機能しません。

ただし、一部の問題には無限に無限の解空間があり、決定可能な場合があることに注意してください。


「解空間が無数に無限である場合、問題は認識可能であることがわかります。」 - 必ずしも。最初に、解空間は効果的に列挙できない場合があります(例:「合計関数を計算するTMがあるので、[重要な述語]はそうですか?)」。第二に、考慮されたオブジェクトがソリューションであるかどうかの決定は、それ自体決定できない場合があります(例:「77で停止しないTMを検索する」)。
ラファエル

ああ、それはアイデアを刺激します。私たちは、知っているそれは単にそれから、次ので、それは我々が(そのことについてまたはP)NPにあるように、問題を表示することができればことを意味します。それはそれを絞り込むのに役立ちます。NP{L| L Decidable}
スティーブン

また、「試せる有限の「可能性」があるものはすべて決定可能です」-いいえ。停止問題には2つの可能な答えがありますが、決定することはできません。
ラファエル

@Stevenはい、しかしそれはさらに難しい証拠です。(あなたが参照しているセットは、通常、R(再決定可能な)言語のセットであるRで示されます。)
ラファエル

明確にすべきだと思います。たとえば、3-SATのように停止問題を力ずくで実行することはできないという考えです。または、PDAで何かを実行するとき、それが非決定的であっても、すべての可能なパスを試すことができます。しかし、TMの場合、無限に長く実行できる可能性があるため、TMは実行できません。したがって、「試すこと」のセット、つまりプログラムを通過する可能性のあるパスは有限ではありません。
jmite 2013

0

言語が決定できないかどうかを確認するコツは、「この言語を使用してチューリングマシンの計算をコーディングできますか?」または、より一般的には、「計算で何が起こるかと同じくらい複雑になりますか?」もちろん、このコーディングは難しい場合があり、(ポスト通信問題のように)還元する決定不能な問題のリストを知るのに役立ちます。そのような削減が見つからない場合は、アルゴリズムを考えて言語を決定してみてください。たとえば、昇順の整数のリストの言語は有限ではありませんが、リストが昇順でソートされるかどうかをテストするアルゴリズムを設計するのは簡単なので、この言語は決定可能です。そして、多くの言語では、それらの決定可能性については知らないので、これは難しい質問です。


この答えは間違った直感を助長していますここを参照してください
ラファエル

直感が間違っているとは思わない。もちろん、すべての問題について言及したわけではありません。たとえば、例のように言語が非常に複雑な方法で提示される可能性があるため、最初に単純化して「本質」に到達する必要があります。また、このレベルでの直感に役立つとは思えないため、「上」と「下」の決定できない言語が存在することについては触れませんでした。
Denis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.