タグ付けされた質問 「proof-techniques」

複数の定理を証明するための一般的な方法と手法に関する質問。単一のステートメントの証明について尋ねるときは、代わりに証明の内容に関連するタグを使用してください。

3
アルゴリズム分析の魔法の背後にあるシステムはありますか?
アルゴリズムの実行時間を分析する方法については、多くの質問があります(たとえば、ランタイム分析およびアルゴリズム分析を参照)。多くは似ています。たとえば、ネストされたループのコスト分析や、分割統治アルゴリズムを求めるものですが、ほとんどの答えはオーダーメイドのようです。 一方、別の一般的な質問への回答では、いくつかの例を使用してより大きな全体像(特に漸近解析に関する)を説明していますが、手を汚す方法はありません。 アルゴリズムのコストを分析するための構造化された一般的な方法はありますか?コストは、実行時間(時間の複雑さ)、または実行された比較の数、スペースの複雑さなどのコストのその他の尺度である場合があります。 これは、初心者を指すのに使用できる参照質問になるはずです。したがって、通常よりも広い範囲です。少なくとも1つの例で説明されているが、多くの状況をカバーする、一般的で教訓的に提示された答えを与えるように注意してください。ありがとう!

11
数列の再帰関係の解決または近似
コンピューターサイエンスでは、再帰関係を解決する必要があります。これは、再帰的に定義された一連の数値の閉じた形式を見つけることです。ランタイムを検討する際、主にシーケンスの漸近的成長に主に興味があります。 例は 本体が時間f (n )を要するnから000まで下にステップする末尾再帰関数のランタイム:nnnf(n)f(n)f(n) T(0)T(n+1)=0=T(n)+f(n)T(0)=0T(n+1)=T(n)+f(n)\qquad \begin{align} T(0) &= 0 \\ T(n+1) &= T(n) + f(n) \end{align} フィボナッチ数列: F0F1Fn+2=0=1=Fn+Fn+1F0=0F1=1Fn+2=Fn+Fn+1\qquad \begin{align} F_0 &= 0 \\ F_1 &= 1 \\ F_{n+2} &= F_n + F_{n+1} \end{align} n個の括弧ペアを持つDyckワードの数:nnn C0Cn+1=1=∑i=0nCiCn−iC0=1Cn+1=∑i=0nCiCn−i\qquad\begin{align} C_0 &= 1 \\ C_{n+1}&=\sum_{i=0}^{n}C_i\,C_{n-i} \end{align} 長さリストに対するmergesortランタイムの繰り返しnnn: T(1)T(n)=T(0)=0=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1T(1)=T(0)=0T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1\qquad \begin{align} T(1) &= T(0) = 0 …

5
言語がコンテキストフリーではないことを証明するにはどうすればよいですか?
コンテキストフリー言語のクラスについて学びました。コンテキストフリーの文法とプッシュダウンオートマトンの両方が特徴であるため、特定の言語がコンテキストフリーであることを簡単に示すことができます。CFLCFL\mathrm{CFL} しかし、どのように反対を見せますか?私のTAは、そうするためには、すべての文法(またはオートマトン)に対して、手元の言語を記述できないことを示さなければならないことを固く主張しています。これは大きなタスクのようです! ポンピング補題について読んだことがありますが、本当に複雑に見えます。

10
言語が規則的でないことを証明する方法は?
通常の言語のクラスについて学びました。正規表現、有限オートマトン、左線形文法のいずれか1つの概念が特徴であるため、特定の言語が正規であることを簡単に示すことができます。R E GREG\mathrm{REG} しかし、どのように反対を見せますか?私のTAは、そうするためには、すべての正規表現(またはすべての有限オートマトン、またはすべての左線形文法)に対して、手元の言語を記述できないことを示さなければならないことを固く主張しています。これは大きなタスクのようです! ポンピング補題について読んだことがありますが、本当に複雑に見えます。 これは、通常の証明方法と応用例を集めた参考質問であることを意図しています。コンテキストフリー言語に関する同じ質問については、こちらをご覧ください。

2
コインダクションとは何ですか?
(構造)誘導について聞いたことがあります。小さい構造から有限構造を構築することができ、そのような構造について推論するための証明原則を提供します。アイデアは十分に明確です。 しかし、コインダクションはどうですか?どのように機能しますか?無限の構造について決定的なことをどのように言えますか? 対処する(少なくとも)2つの角度があります。すなわち、物事を定義する方法として、また証明技術としての共誘導です。 コインダクションを証明技術として考えると、コインダクションとバイシミュレーションの関係は何ですか?

8
言語が正規であることを証明する方法は?
言語が正規ではないことを証明する方法はたくさんありますが、一部の言語が正規であることを証明するにはどうすればよいですか? たとえば、が規則的であると指定された場合、次のも規則的であることをどのように証明できますか?L ′LLLL′L′L' L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}\qquad \displaystyle L' := \{w \in L: uv = w \text{ for } u \in \Sigma^* \setminus L \text{ and } v \in \Sigma^+ \} これを証明するために非決定的な有限オートマトンを描画できますか?


4
互いに問題を減らすための一般的なテクニックは何ですか?
計算可能性と複雑さの理論(およびおそらく他の分野)では、縮約は遍在しています。そこに多くの種類がありますが、原理は同じまま:1の問題というのショー他のいくつかの問題として、ハードとして少なくともあるからのマッピングのインスタンスによる内の溶液と同等のものに。基本的に、プリプロセッサとしてリダクション関数を使用できるようにすると、ソルバーはすべてを解決できることを示します。L 2 L 2 L 1 L 1 L 2L1L1L_1L2L2L_2L2L2L_2L1L1L_1L1L1L_1L2L2L_2 私は長年にわたって削減のシェアを実行してきましたが、何かが私を悩ませ続けています。すべての新しい削減には(多かれ少なかれ)創造的な構築が必要ですが、タスクは繰り返し感じることができます。正規のメソッドのプールはありますか? 削減関数を構築するために定期的に使用できるテクニック、パターン、およびトリックは何ですか? これは参照質問になると思われます。したがって、少なくとも1つの例で説明されているが、多くの状況をカバーする、一般的で教訓的に提示された答えを与えるように注意してください。ありがとう!

5
デッドコードがコンパイラによって検出できないことの証明
私はさまざまなトピックの冬のコースを教えることを計画しています。そのうちの1つはコンパイラーになります。今、私はこの問題に出くわしましたが、四半期を通じて与えるべき課題を考えていましたが、私は困惑しているので、代わりに例としてそれを使用するかもしれません。 public class DeadCode { public static void main(String[] args) { return; System.out.println("This line won't print."); } } 上記のプログラムでは、のためにprintステートメントが実行されないことは明らかですreturn。コンパイラーは、デッドコードに関する警告またはエラーを出すことがあります。たとえば、上記のコードはJavaでコンパイルされません。ただし、javacコンパイラは、すべてのプログラムでデッドコードのすべてのインスタンスを検出するわけではありません。コンパイラーがそれを実行できないことをどのように証明しますか?

7
対角化よりも停止する問題の決定不能性のより直感的な証拠はありますか?
対角化に基づいて、停止問題の決定不能性の証拠を理解します(たとえば、Papadimitriouの教科書で与えられます)。 証明は説得力がありますが(各ステップを理解しています)、問題だけから始めて誰かがそれを導き出す方法がわからないという意味で、私には直感的ではありません。 本の中で、証拠はこのように書きます:「仮定入力上の停止問題解決、つまり、チューリングマシンかどうかを決定し入力のための停止。チューリングマシンの構築チューリングマシンとる入力としての、を実行し、出力を逆にします。」次に、が満足のいく出力を生成できないことを示します。 M ; x M x D M M H(M ; M )D (D )MHMHM_HM; バツM;xM;xMMMバツxxDDDMMMMH(M; M)MH(M;M)M_H(M;M)D (D )D(D)D(D) 一見arbitrary意的な構成、特にを自分自身に送り、次にを自分自身に送り込むという考えが、直観を持ちたいと思っています。そもそもなぜこれらの構成要素と手順を定義するようになったのですか?M DDDDMMMDDD そもそもそのタイプの議論を知らなかった場合、誰かが対角化議論(または他の証拠)にどのように推論するかについての説明はありますか? 回答の最初のラウンドを与えられた補遺: したがって、最初の答えは、停止問題の決定不能性を証明することは、カンターとラッセルの以前の仕事と対角化問題の開発に基づくものであり、「ゼロから」開始することは単にその議論を再発見することを意味することを指摘しています。 けっこうだ。しかし、対角化の議論を十分に理解されているものとして受け入れたとしても、それから停止する問題への「直観のギャップ」があることがわかります。実数の数え難さのカンターの証明私は実際にかなり直感的だと思う。ラッセルの逆説はさらにそうです。 私がまだ見ていないのは、誰かがの「自己適用」に基づいてを定義し、それからを自分自身に適用する動機付けになることです。これは対角化とはあまり関係がないようです(Cantorの議論にはそのようなものがなかったという意味で)。M M ; M DD (M)D(M)D(M)MMMM; MM;MM;MDDD PS @babouは、自分よりも私を悩ませていることを要約しました。「証明の多くのバージョンの問題は、構造が魔法の帽子から引っ張られているように見えることです。」

3
相対化が障壁なのはなぜですか?
Baker-Gill-Solovayの証明を説明するときに、を持つことができる神託と、P ≠ N Pを持つことができる神託が友人に存在するという理由で、なぜかという疑問が浮上しました。このような手法は、P ≠ N Pの問題を証明するには不適切であり、満足のいく答えを出すことができませんでした。PNPP=NP\mathsf{P} = \mathsf{NP}PNPP≠NP\mathsf{P} \neq \mathsf{NP}PNPP≠NP\mathsf{P} \neq \mathsf{NP} より具体的に言うと、を証明するアプローチがあり、上記のような状況を発生させるためにオラクルを構築できる場合、なぜメソッドが無効になるのですか?PNPP≠NP\mathsf{P} \neq \mathsf{NP} このトピックに関する説明/考えはありますか?

2
欲張りアルゴリズムが正しいことを証明する方法
私は正しいと思われる貪欲なアルゴリズムを持っていますが、よくわかりません。正しいかどうかを確認するにはどうすればよいですか?貪欲なアルゴリズムが正しいことを証明するために使用するテクニックは何ですか?一般的なパターンやテクニックはありますか? これが参考質問になることを願っています初心者に向けられるしています。したがって、通常よりも広い範囲です。少なくとも1つの例で説明されているが、多くの状況をカバーする、一般的で教訓的に提示された答えを与えるように注意してください。ありがとう!

2
対角化、自己参照、または還元性以外の理由で決定できないことがわかっている特定の問題はありますか?
私が知っている決定できない問題はすべて、次のカテゴリのいずれかに該当します。 対角化のために決定できない問題(間接的な自己参照)。これらの問題は、停止する問題のように、言語の意図された決定者を使用して、動作が矛盾につながるTMを構築できるため、決定できません。また、コルモゴロフの複雑さに関する多くの未決定の問題をこのキャンプにまとめることもできます。 直接的な自己参照のために決定できない問題。たとえば、ユニバーサル言語は、次の理由で決定不能であることが示されます:決定可能であれば、Kleeneの再帰定理を使用して、独自のエンコーディングを取得するTMを構築し、独自の入力を受け入れるかどうかを尋ねることができます、その後、逆を行います。 既存の未決定の問題からの削減のために決定できない問題。ここでの良い例には、通信後問題(停止問題からの削減)とEntscheidungsproblemが含まれます。 計算可能性理論を生徒に教えるとき、多くの生徒もこれを取り上げて、最終的に何らかの自己参照の策略にさかのぼることなく決定できない問題があるかどうかを尋ねます。TMの数を言語の数に関連付ける単純なカーディナリティの議論によって、決定的でない問題が無限に多いことを非構造的に証明できますが、これは決定できない言語の具体例を示していません。 上記にリストされていない理由で決定できない言語がありますか?もしそうなら、それらは何であり、どのような技術がそれらの決定不能性を示すために使用されましたか?

2
問題がNP完全であることを証明するために、問題間の縮約を構築するにはどうすればよいですか?
私は複雑なコースを取っているのですが、NPCの問題を減らすのに苦労しています。問題間の削減を見つけるにはどうすればよいですか?使用できる一般的なトリックはありますか?問題がNPCであることを証明するように要求する問題にどのようにアプローチすればよいですか?

2
言語がコンテキストフリーであることを証明する方法は?
あります多くの技術言語であることを証明するためではない文脈自由は、しかし、どのように私は言語があることを証明んです文脈自由? これを証明するためのテクニックは何ですか?明らかに、1つの方法は、言語の文脈自由文法を示すことです。特定の言語の文脈自由文法を見つけるための体系的な手法はありますか? 通常の言語では、そこにある 体系的な方法正規文法/有限状態オートマトンを導出するには:例えば、マイヒル-ネローデの定理は、1つの方法を提供します。コンテキストフリー言語に対応する技術はありますか? ここでの私の動機は、(願わくば)与えられた言語が文脈自由であることを証明しようとするとき、しばしば役立つテクニックのリストを含む参照質問を構築することです。この特別なケースである多くの質問がここにあるので、この種の問題に直面したときに使用できる一般的なアプローチまたは一般的なテクニックを文書化できればいいでしょう。

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