タグ付けされた質問 「computability」

計算可能性理論、別名再帰理論に関する質問

2
役に立たない状態のチューリングマシンに関する質問
さて、ここに私の理論の計算クラスの過去のテストからの質問があります: TMの役に立たない状態は、どの入力文字列にも入力されない状態です。しようが決定不可能である ことを証明します。U S E L E S S T MU S E L E S ST M= { ⟨ M、q⟩ | QM では役に立たない状態です } 。USELESSTM={⟨M,q⟩∣q is a useless state in M}.\mathrm{USELESS}_{\mathrm{TM}} = \{\langle M, q \rangle \mid q \text{ is a useless state in }M\}.U S E L E …

1
関数型プログラミング言語の実装に関するアルゴリズムの複雑さの分析
今日、アルゴリズム分析は計算モデルに基づいて異なることを学びました。それは私が考えも聞いたこともないものです。 User @chiが私に与えた、それをさらに説明する例は次のとおりです。 たとえば、タスクを考えてみましょう: がx iを返し ます。RAM では 、配列アクセスが一定時間であるため、これはO (1 )で解決できます。TMを使用して、入力全体をスキャンする必要があるため、O (n )です。(i,x1,…,xn)(i,x1,…,xn)(i,x_1 ,…,x_n )xixix_iO(1)O(1)O(1)O(n)O(n)O(n) これは、関数型言語について不思議に思います。私の理解から、「関数型言語はラムダ計算に密接に関連しています」(ここでの Yuval Filmusのコメントから)。では、関数型言語がラムダ計算に基づいているが、RAMベースのマシンで実行されている場合、純粋に関数型のデータ構造と言語を使用して実装されたアルゴリズムで複雑さ分析を実行する適切な方法は何ですか? 私は純粋に機能的なデータ構造を読む機会がありませんでしたが、件名についてWikipediaのページを確認しました。データ構造のいくつかは、従来の配列を次のものに置き換えているようです。 「配列は、純粋に機能的な実装を認めるマップまたはランダムアクセスリストに置き換えることができますが、アクセスと更新の時間は対数です。」 その場合、計算モデルは異なりますよね?

3
有限時間での無限計算
これはおそらく愚かな考えですが、私たちは、計算の無限のシーケンスを実行し、想定するようにプログラムされますコンピュータがあると計算を要する1 / 2 I完了するまでに秒。次に、このコンピューターは、有限の時間内で無限の数の計算を実行できます。ithithi^\text{th}1/2i1/2i1/2^i なぜこれが不可能なのですか?重要な計算を実行するのにかかる時間に下限はありますか?

2
言語がチューリング競争であることの明確で完全な証明?
HTML5 + CSSが完全なチューリングであることを「証明」することを目的とするWebサイトを見たことがあります。 SQLが完全なチューリングであることを「証明」することを目的とするWebサイトを見たことがあります。 チューリングコンプリートとは何を意味するのかを「説明」するつもりのウェブサイトをたくさん見ました。 足りる! 「この言語XYZは同じ計算能力を持つ計算機を記述することができます。チューリングマシンとして?」


4
有限の言葉の決定不可能な有限の言語はありますか?
そこにあるの必要性のためのL⊆Σ∗L⊆Σ∗L\subseteq \Sigma^*であることを無限に決定不能であることが? 私たちは、言語を選択した場合、私は何を意味L′L′L'ことの有界有限バージョン L⊆Σ∗L⊆Σ∗L\subseteq \Sigma^*で、|L′|≤N|L′|≤N|L'|\leq N、(N∈NN∈NN \in \mathbb{N}を有する)、L′⊂LL′⊂LL' \subset L。L′L′L'が決定不可能な言語になることは可能ですか? 「有限の」Kleeneスター演算の一種であるL 'の最初の要素となるものを選択するためのルールを確立する必要があるNNN単語を選択する方法」の問題があることがわかります。目的は、無限のセットを必要とせずに決定不能な言語を見つけることですが、私にはわかりません。∈∈\in L′"L′"L' "NNNL′L′L' ノートの編集: 私は答えを選びましたが、多くの答えとすべてのコメントが重要です。


4
Turing Machine(TM)は、停止の問題がすべてのTMに適用されるかどうかを決定できますか?
このサイトでは、他のすべてのTMについても、特定のサブセットについても、TMが停止の問題を決定できるかどうかについて、さまざまなバリエーションがあります。この質問は多少異なります。 停止の問題がすべてのTMに当てはまるという事実は、TMによって決定できるかどうかを尋ねます。私は答えはノーだと思います、そして私の推論をチェックしたいと思います。 TMが停止するかどうかを決定するTMで構成される言語としてメタ停止言語を定義します。LMHLMHL_{MH} LMH={M:∀M′,wM(M′,w) accepts if M′(w) halts, rejects otherwise}LMH={M:∀M′,wM(M′,w) accepts if M′(w) halts, rejects otherwise}L_{MH} = \{ M : \forall_{M',w} M(M', w) \text{ accepts if $M'(w)$ halts, rejects otherwise}\} による停止問題に。 LMH=∅LMH=∅L_{MH}= \emptyset より正確に述べるしたがって、タイトルの質問:それはかどうかを決定可能れる?LMH=∅LMH=∅L_{MH} = \emptyset ライスの定理によれば、re言語が空であるかどうかは決定できません。 どちらの場合も、がreであるかどうかは、L M H = ∅であるかどうかは決定できません。LMHLMHL_{MH}LMH=∅LMH=∅L_{MH} = \emptyset したがって、かどうかは決定できません。LMH=∅LMH=∅L_{MH} = \emptyset これは、停止の問題がすべてのTMに適用されるかどうかをTMが判断できないことを証明します。 私の理解は正しいですか? 更新:私は、直感的に正しいと思われる「証明」のいくつかの定義について、TMが「停止の問題を証明」できないことを示しようとしています。以下は、これが正しいと思う理由の説明です。 …

4
境界停止問題は決定可能です。なぜこれがライスの定理と矛盾しないのですか?
ライスの定理の1つのステートメントは、「計算の複雑さ:現代的なアプローチ」(Arora-Barak)の35ページに記載されています。 部分関数{0,1}∗{0,1}∗\{0,1\}^*に必ずしもすべての入力に定義されていない機能です。TMは、が定義されているすべてのあり、が定義されていないすべてのについて、入力時に実行されると Mが無限ループに入る場合、部分関数計算すると言います x。場合 Sは、部分関数の集合であり、我々は定義 fのS入力上のブール関数です α{0,1}∗{0,1}∗\{0,1\}^*MMMfffxxxfffM(x)=f(x)M(x)=f(x)M(x) = f(x)xxxfffMMMxxxSSSfSfSf_Sαα\alpha出力1 IFF MαMαM_\alphaを計算における部分関数SSS。ライスの定理は、すべての自明でないSSSについて、関数fSfSf_Sは計算可能ではないと述べています。 ウィキペディアは、制限付き時間チューリングマシンの言語はEXPTIME完了であると述べています。私は、この言語のようなものに見える期待{(α,x,n):Mα{(α,x,n):Mα\{(\alpha,x,n) : M_\alpha 受け入れxxx以下にnnnのステップ}}\}。したがって、MMMこの有界言語を指数関数的に決定するDTMとしましょう。このDTMはすべてのチューリングマシンのいくつかのプロパティを決定しているようです。そのため、私の直感は、ライスの定理がそのような決定を排除していることを教えてくれます。しかし、明らかにMMMは合計関数を計算します。 この言語とライスの定理との関係について何が欠けていますか?

2
マシンのコードを除くすべての入力で停止の問題を解決できる可能性はありますか?
この質問は停止の問題について私に起こり、オンラインで良い答えを見つけることができず、誰かが助けてくれるかどうか疑問に思いました。 入力がTM自体でない限り、停止の問題はどの入力のTMでも決定可能である可能性はありますか?基本的に: Halts(TM, I) IF TM == I: Undecidable, return a random result/throw an exception, whatever ELSE: Solve the problem Halts'(X) IF Halts(X, X): Loop infinitely ELSE: Print 'done' これにより、矛盾が解消されたようです。逆説的なHalts '(Halts')を呼び出すと、一貫した動作は期待できませんが、他のすべてのHalts(およびHalts ')への呼び出しは正当で解決可能です。 これは非常に直感的でないことを理解しています。ビットのいくつかのパターンがすべての可能なプログラムの動作を明らかにする可能性がある場合、TMと入力が一致するときになぜ突然バラバラになるのですか?しかし、これを可能性として数学的に排除できるでしょうか? そして、この減少した停止の問題はまったく興味をそそるものではありません。独自のコードを入力として使用する意味のあるプログラムがあったとしても、わずかに異なる入力で動作するように簡単に書き直すことができます。もちろん、この提案では、なぜこのような警告が出て停止ソリューションが存在するのか理解できなくなりますが、繰り返しになりますが、この可能性を数学的に排除できますか? 助けてくれてありがとう。

3
決定可能性の建設的なバージョン?
今日のランチで、私が育っこの問題を私の同僚で、そして私の驚きに、問題は彼らを説得しなかっ決定可能であることをジェフ・E.の引数は(ここだ mathoverflowに密接に関連する記事)。説明しやすい問題ステートメント( "is P = NP?")も決定可能です:はいまたはいいえので、常にこれらの回答を出力する2つのTMの1つが問題を決定します。形式的には、セット:入力1に対してのみ1を出力し、それ以外の場合は0を出力するマシンS:={|{P,NP}|}S:={|{P,NP}|}S :=\{|\{P, NP\}|\}111111000それを決定するか、入力に対してそれを行うマシン。222 それらの1つは基本的にこの異論に要約しました:それが決定可能性の基準がいかに弱いかである場合-これは、有限であると示すことができる言語として形式化できるすべての質問が決定可能であることを意味します-次に、基準を形式化する必要がありますこのように形式化可能な有限の多くの可能な答えで問題を決定することはありません。以下はより強力な基準である可能性がありますが、決定性はTMを示すことができるかどうかに依存する必要があることを要求することで正確にできる可能性があることを示唆し、基本的には問題の直観主義的な見解を提案します私の同僚のいずれかを行う、それらのすべては除外された中間の法律を受け入れます)。 決定可能性の建設的理論を形式化し、おそらく研究したことがありますか?

2
3色が決定可能であることを証明する方法は?
3色が決定可能であることを証明するには、次のように言えば十分でしょう。 グラフの各ノードには3つの可能な色があります したがって、すべての可能性を列挙し、2つのエッジが同じ色のノードを接続していないことを確認できます。3ん3ん3^n それは3色が決定可能であることを証明していますか?または、適切な証明のためにチューリングマシンを構築する必要がありますか? 3色付けとは、グラフの色付けの問題を指します。つまり、2つの隣接するノードが同じ色を持たないように、無向グラフの各ノードに3つの色の1つを割り当てます。

2
抗誘導体のチェックの決定可能性?
レッツ・私は2つの機能があるとFFFとGGG、私はかどうかを決定するに興味があります F(x)=∫G(x)dx.F(x)=∫G(x)dx.F(x) = \int G(x)dx. 私の関数が基本関数(多項式、指数関数、対数、三角関数)で構成されているとしましょう。たとえば、テイラー級数ではありません。 この問題は決定可能ですか?そうでない場合、それは半決定可能ですか? (私は計算能力についてクラスを教えているので私は尋ねています、そして学生はTMがあなたに積分が現在知られていない関数を統合するのを助けることができるかどうか尋ねました。積分が実際に積分がわからない関数ではなく、上記の基本関数の組み合わせとして表現できない関数が適切に機能しますが、積分をチェックする一般的な問題が決定可能かどうかを考えさせられました。)

2
完全に処理されない計算モデルの「計算可能」の明確な定義はありますか?
これは、ここでの別の質問のフォローアップであり、あまりにも哲学的ではないことを願っています。ラファエルが私の前の質問のコメントで指摘したように、私は本当に「計算可能」の定義を取得していませんが、私が読んだいくつかの論文によると、定義は、チューリングよりも弱い計算のモデルになると本当に明確ではありません入力と出力のエンコーディングのためにマシン。 計算可能チューリングの一般的な定義は次のとおりです。 定義1:関数は、自然数の適切なエンコードを文字列として使用してfを計算するチューリングマシンMがある場合に、チューリング計算可能と呼ばれます。f:Nk→Nf:Nk→Nf : \mathbb{N}^k \to \mathbb{N}MMMfff 定義は、適切なエンコーディングとは正確に何であるかで異なりますが、ほとんどの場合、バイナリエンコーディング、単項エンコーディング、または10進数エンコーディングを、1つの固定された適切なエンコーディングと呼びます。チューリング計算可能性の定義には、1つのエンコーディングを修正する必要があることを示すこともできます。しかし、自然数のバイナリエンコーディングを特別にして、適切なエンコーディングとして公理化できるようにするにはどうすればよいでしょうか。たぶん、それが偶然に計算可能性が何を意味するかという直感的な概念に適合しているからでしょう。 次に、チューリングマシンよりも弱い計算モデルを検討するとどうなるでしょうか。たとえば、のは、設定され考えてみましょうアルファベットで「不自由」チューリングマシンのを{ 0 、McMcM_cだけ右に移動することができる、との定義不自由が計算チューリングチューリング計算可能のものと一致しています。{0,1}{0,1}\{0,1\} 定義2:関数呼び出される計算チューリング不自由またはで計算MのC不自由チューリングマシンがときに限り、Mはf:Nk→Nf:Nk→Nf : \mathbb{N}^k \to \mathbb{N}McMcM_cMMMた計算する列として自然数の適切なエンコーディングを使用しては。fff 我々は次に、機能、「バイナリエンコーディング」と「適切なエンコーディングを」定義する場合でないで計算のM C。「適切なエンコーディング」を「単項エンコーディング」として公理化すると、fはM cで計算可能になります。誰もが無限に多くの直感的なエンコーディングの1つを思いのままに修正できるという事実を考えると、これは厄介なようです。計算モデルがfを計算できるかどうかは明確でなければなりませんf:N→N,n↦n+1f:N→N,n↦n+1f : \mathbb{N} \to \mathbb{N}, n \mapsto n+1McMcM_cfff McMcM_cfff 特定のエンコーディングを参照せずに-少なくとも「ループプログラムはチューリングマシンよりも弱い」と述べたときに、どのエンコーディングが使用されているかについて誰かが言及したことはありません。 この紹介の後、私はようやく私の質問を述べることができます:計算の直観的な概念と一致しない計算の任意のモデルの「適切なエンコーディング」と「計算可能性」をどのように定義しますか?これは、計算可能性を調整する枠組みの中で可能ですか? 編集:私は紹介を短くしました、それは質問に追加しませんでした。

1
可逆コンピューティングの「入力を保存する」方法の何が問題になっていますか?
私は、リバーシブルコンピューティングについて読み始めたばかりの学部生です。ランダウアーの原理により、不可逆的な計算は熱を散逸させます(そして、可逆的な計算は熱を散逸させません)。私はこれまでリバーシブルコンピューティングについて聞いたことがなかった教授と一緒に育てました。彼はリバーシブルコンピューティングの理論がなぜ些細なものではないのか理解するのに苦労していました。 彼のポイントは、常に入力を保存できるということでした。つまり、任意の関数で、可逆にしたい場合は、新しい関数定義します。(またはそして、あなたはちょうど入力の最後のビットに sを入れます)これは最初のビットに出力を返し、他のビットに入力を返します。次に、を反転するには、出力を破棄して、保存した入力を返すだけです。F R E V E R S I BのLのE:{ 0 、1 } のn → { 0 、1 } 2 N { 0 、1 } 2 N → { 0 、1 } 2 N 0 N N N Ff:{ 0 、1 }ん→ { 0 、1 }んf:{0,1}n→{0,1}nf: \{ 0, 1 …

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