理論計算機科学

理論計算機科学者および関連分野の研究者のためのQ&A

7
証明可能な正しいプログラムについて私たちは何を知っていますか?
コンピュータープログラムの複雑さの増大と、コンピューターの社会における重要性の高まりにより、コードが正しく機能することを正式に証明しなければならないプログラミング言語をまだまとめて使用しないのはなぜなのか疑問に思います。 私はこの用語が「証明コンパイラ」であると信じています(ここで見つけました):プログラミング言語をコンパイルするコンパイラで、コードを書くだけでなく、コードの仕様を述べ、コードが準拠していることを証明する必要があります仕様(または自動化された証明者を使用してそうする)。 インターネットを検索しているときに、非常に単純なプログラミング言語を使用しているプロジェクト、または現代のプログラミング言語に適応しようとする失敗したプロジェクトのみを見つけました。これは私の質問につながります: 本格的なプログラミング言語を実装する認定コンパイラはありますか、またはこれは非常に難しい/理論的に不可能ですか? また、私は、任意の複雑性クラスのような証明可能なプログラム、関与見ていました「証拠が存在するチューリングマシンですべての言語のクラスを決定可能なこと、このチューリングマシンの停止」私が呼ぶ、するアナログとして、、再帰言語のセット。ProvableRProvableRProvableRRRR このような複雑なクラスを勉強することの利点を見ることができます:たとえば、の場合、Halting問題は決定可能です(明白な方法で定義されたは、それが決定可能な言語の最大クラスになると推測し)。さらに、実際に役立つプログラムを除外することはできないと思います。終了を証明できない場合に誰がプログラムを使用するでしょうか?ProvableRProvableRProvableRProvableREProvableREProvableRE 私の2番目の質問は: 含まれる言語に特定のプロパティがあることを証明することを要求する複雑性クラスについて何を知っていますか?

3
ラムダ計算によるPおよびNPクラスの説明
導入および説明では、PおよびNP複雑度クラスは、チューリングマシンを介してしばしば与えられます。計算モデルの1つはラムダ計算です。計算のすべてのモデルが同等であることを理解しています(そして、チューリングマシンの用語で何かを導入できるなら、計算のモデルの用語でこれを導入できます)が、ラムダ計算による説明のアイデアPおよびNP複雑度クラスを見たことはありません。チューリングマシンを使用せず、計算モデルとしてラムダ計算のみを使用して、概念PおよびNPの複雑度クラスを誰でも説明できます。

3
Complexity Zooのバックアップ/交換はありますか?
これは技術的な質問ではありませんが、TCSコミュニティには確かに関連しています。不適切と思われる場合は、お気軽に閉じてください。 複雑動物園の Webページには、(http://qwiki.stanford.edu/index.php/Complexity_Zoo)確かに年間のTCSコミュニティに素晴らしいサービスをしています。どうやらかなり長い間ダウンしています。誰かがまだそれを維持しているのか、移動したのか、バックアップサーバーがあるのか​​、複雑なクラス、それらの関係と関連出版物への引用のこの素晴らしいデータベースを保存する他の計画があるのか​​、と思っていました。そうでない場合、代替として使用できる同等のWebページはありますか? 更新(8月1日):Zooはオンラインに戻りました。Scottは、将来の停止を避けるために、それをミラーリングするボランティアを探しています。

3
問題が硬度「リンボ」にあることを示すためのテクニック
真の複雑さがPとNP完全の間にある新しい問題を考えると、これを解決するのが難しいことを証明するために使用できる2つの方法があります。NPNP\mathsf{NP}PP\mathsf{P} 問題がGI完全であることを示す(GI = Graph Isomorphism) 問題がます。既知の結果から、このような結果は、問題がNP完全である場合、PHが第2レベルに崩壊することを意味します。たとえば、グラフ非同型の有名なプロトコルはまさにこれを行います。co−AMco−AM\mathsf{co-AM} 使用されている他の方法(「信念の強さ」が異なる可能性がある)はありますか?いずれの答えに対しても、実際に使用された場所の例が必要です。明らかに、これを示すために多くの方法がありますが、例は議論をより説得力のあるものにします。

4
PCP定理のない近似の困難さ
PCP定理の重要な用途は、「近似の困難さ」タイプの結果が得られることです。比較的単純な場合には、PCPなしでそのような硬度を証明できます。しかし、PCP定理を使用して近似の結果の硬度が最初に証明された、つまり、結果が以前はわからなかったが、後でPCPに依存しないより直接的な証明が見つかったケースはありますか?言い換えれば、PCPが最初に必要であるように見えたが、後でPCPを除去できる可能性がある場合はありますか?

3
ランダム性がアルゴリズムよりも削減に強い影響を与えるのはなぜですか?
ランダム性は多項式時間アルゴリズムの能力を拡張しない、つまりが成り立つと推測されます。一方、ランダム性は、多項式時間の短縮に対してまったく異なる効果があるようです。ValiantとVaziraniのよく知られた結果により、はランダム化された多項式時間の削減により削減されます。を生成するため、削減がランダム化解除される可能性は低いと考えられますが、これは考えられないことです。 S A T U S A T N P = U PP = B P PP=BPP{\bf P}={\bf BPP}SA TSATSATうんSA TUSATUSATN P = U PNP=UP{\bf NP}={\bf UP} この非対称な状況の理由は何でしょうか:確率的多項式時間アルゴリズムでは、ランダム化の解除はかなり可能に思えますが、確率的多項式時間の削減ではそうではないでしょうか?

6
クイックレビューのあるジャーナル
背景:この質問の動機は2つあります。最初に、進行中の会議対ジャーナルの議論をよりよく理解するために、いくつかの難しい事実を得たいと思います。第二に、もしこの情報がどこかで利用可能であれば、レビューのために論文を提出するときに、より情報に基づいた決定を下すことができました。編集者がレフェリーの選択とシェパーディングで優れた仕事をしているジャーナルを歓迎します。 質問:一貫して高速なレビューを行っているTCSジャーナルはありますか? ルール: 私は逸話的な証拠を探していません。「過去3年間の統計によると、提出物の98%がせいぜい4か月でレビューされた」などの難しい事実を確認したいと思います。 最初の提出から最初の決定までの時間のみが重要です。物理的なジャーナルを実際に印刷するのにかかる時間は気にしません。とにかく私たちの制御を超えています。 単なる一連の会議議事録であるジャーナルはカウントされません。私たちは皆、会議のレビューが速いことを知っています。 オープンアクセスのオンラインジャーナルはまったく問題ありません。 (そして、あなたの名前が何らかの形でそれに関連付けられている場合、あなたが恥ずかしいほどジャーナルが疑わしい場合、それを完全にスキップしましょう。)

6
あなたが割り当てた宿題を解決できないことに気付いたことがありますか?
この質問は、教師、学生アシスタント、家庭教師など、問題を割り当てる人々を対象としています。 これは、教授としての12年のキャリアの中で、私にほんの数回起こりました。その後、私はそれを解決できないことに気付きました。もっと恥ずかしいことはほとんどありません。 最近の例は次のとおりです。「有向グラフ長さが奇数であるかどうかを判断する線形時間アルゴリズムを与えます。」私はこの考えが些細なものだと考えましたが、後になって私のアプローチがうまくいかないことに気づきました。GGG 私の質問:あなたは「プロフェッショナル」なことだと思います: 解決するまで問題に執着し、生徒に何も言わないでください。 説明せずに問題をキャンセルし、あなたの人生に進みます。 cstheory.SEで支援を求めます(「これは宿題の問題ですか?」) 注:おそらく考えもしなかった実用的でレベルの高い提案を探しています。この状況を扱うことは自分の好みに大きく関係するので、私の質問には強い主観的要素があることに気づきました。

4
整数のコレクション(つまり、マルチセット)に、理論的に十分な保証があるハッシュ関数はありますか?
理想的には、次のプロパティを持つ整数のマルチセットのハッシュを保存する方法があるかどうか興味があります。 O(1)スペースを使用します O(1)時間での挿入または削除を反映するように更新できます 2つの同一のコレクション(つまり、同じ多重度を持つ同じ要素を持つコレクション)は常に同じ値にハッシュする必要があり、2つの異なるコレクションは高い値で異なる値にハッシュする必要があります(つまり、関数は独立またはペア独立です) これの最初の試みは、個々の要素のハッシュのランダムな素数を法として積を格納することです。これは1と2を満たしますが、それまたは密接なバリエーションが3を満足するかどうかは明らかではありません。 最初にこれをStackOverflowに投稿しました。 *プロパティ1と2は、たとえばO(log n)または小さな部分線形多項式に少し緩和することができます。ポイントは、複数のセットを識別し、要素自体を保存せずに同等性を確実にテストできるかどうかを確認することです。

6
シンプレックスアルゴリズムの複雑さ
線形計画法の解を見つけるためのシンプレックスアルゴリズムの上限は何ですか? そのような場合の証拠を見つけるにはどうすればいいですか?最悪の場合は、各頂点にアクセスする必要がある場合、つまりように見えます。ただし、実際には、より標準的な問題の場合、シンプレックスアルゴリズムはこれよりも大幅に高速に実行されます。O(2n)O(2n)O(2^n) この方法を使用して解決される問題の平均的な複雑さをどのように推論できますか? どんな情報や参考文献も大歓迎です!

3
指数関数の複雑さ
出力のサイズは入力のサイズに多項式で制限されていないため、自然数の指数関数は多項式時間で計算できないことがわかっています。exp(x,y)=xyexp⁡(x,y)=xy\exp(x,y) = x^y これが指数関数の計算が難しい主な理由ですか、それとも指数関数を計算するのが本質的に難しいのでしょうか? 指数関数のビットグラフの複雑さは何ですか? {⟨x,y,i⟩∣x,y,i∈N and the i-th bit of xy is 1}{⟨x,y,i⟩∣x,y,i∈N and the i-th bit of xy is 1}\{\langle x,y,i \rangle \mid x,y,i\in\mathbb{N} \text{ and the $i$-th bit of $x^y$ is $1$} \}

7
TCSで最も古い未解決の問題は何ですか?
この問題は、このMOの質問に触発されており、非常に興味深いと思いました。 TCSで最も古い未解決の問題は何ですか? 明らかに、この質問には明確化が必要です。 まず、TCSとは何ですか?奇数の完全数の存在はTCSではないと思います。ヒルベルトの10番目の問題はTCS だと思います。「定規とコンパスでXを構築できますか」などの問題もTCSであると思います。これは、計算の制限されたモデルでアルゴリズムを求めているためです。TCSの問題を定義する厳密な方法はないかもしれませんが、あなたの判断を使用してください。おそらく、1つのテストは、「これが解決された場合、STOC / FOCSに表示される可能性が最も高いでしょうか。それを解決した研究者は、おそらく理論的なコンピューター科学者でしょうか?」 第二に、「最も古い」とは何ですか?私は日付で最古を意味します。記載された日付も検証可能である必要がありますが、私はこれがあまりにも難しいとは思わない。 第三に、「未解決の問題」とは何ですか?「未解決の問題」とは、特定の時点で特に未解決と見なされた問題を意味します。おそらく、それは未解決の問題のセクションの論文の最後に登場したか、一部の人々がそれに取り組んで失敗したという証拠があるかもしれませんし、研究されていることを示唆する誤った証拠があるかもしれません この基準に当てはまらないものの例:「ギリシャ人はオブジェクトXとYを研究しました。Zは明らかに中間オブジェクトであり、構築できるかどうか疑問に思いました。」その期間のZに関する文献がない場合、その期間の未解決の問題ではありません。 第四に、「問題」とはどういう意味ですか?私は特定の「はい/いいえ」の質問を意味し、「すべてのオブジェクトXをプロパティYで特徴付ける」のようなものではありません。そのような質問には満足のいく答えがないことが多いからです。多くの場合、質問が解決されたかどうかに関して意見の相違があります。ここではそのような質問に入らないようにしましょう。はい/いいえの質問ではないが、それが本当に開かれていることが明らかな場合、それも問題ありません。(これが明確でない場合、「問題」とは正式に述べられた問題を意味します。16世紀のギャンブルに関する民俗伝説をBPPとPSPACEに関する質問に変換しないでください。) 最後に、これは大きなリストの質問ではないため、既に投稿された回答よりも古いと思われる場合にのみ回答を投稿してください(または投稿された回答が他の条件を満たしていないと思われる場合-TCSではないなど)または開いていません)。これは、古い未解決の問題の無差別なコレクションではありません。


5
値のテストと関数の計算の複雑さ
一般に、特定の入力で関数が特定の値を取るかどうかをテストする複雑さは、その入力で関数を評価するよりも簡単です。例えば: 非負の整数行列のパーマネントの評価は#P-hardですが、そのようなパーマネントがゼロか非ゼロかはP(2部マッチング)でわかります 実数n個あり1は、。。。、a n、多項式∏ n i = 1(x − a i)が以下の特性を持っている(実際、n個の実数のほとんどのセットはこれらの特性を持っています)。与えられた入力xに対して、この多項式がゼロかどうかをテストするには、Θ (log n )の乗算と比較が必要です(ゼロセットにはnがあるため、Ben-Orの結果による)a1、。。。、na1,...,ana_1,...,a_n∏ni = 1(x − a私)∏i=1n(x−ai)\prod_{i=1}^{n}(x - a_i)nnnバツxxΘ (ログn )Θ(log⁡n)\Theta(\log n)nnn成分)、ただし、上記の多項式の評価には少なくともPaterson-Stockmeyerによるステップ。Ω (n−−√)Ω(n)\Omega(\sqrt{n}) ソートは必要との比較ツリー(も上の手順Ω (N ログN )ベン-ORの結果によって、再び、実際の代数的意思決定ツリー上のステップ)が、テストのリストがソートされている場合にのみ使用し、N - 1つの比較。Ω (n logn )Ω(nlog⁡n)\Omega(n \log n)Ω (n logn )Ω(nlog⁡n)\Omega(n \log n)n − 1n−1n-1 多項式がゼロであるかどうかをテストする(代数的)複雑性が、多項式を評価する複雑性と同等であることを示唆するのに十分な、多項式に関する一般的な条件はありますか? 問題の複雑さを事前に知ることに依存しない条件を探しています。 (明確化10/27/2010)明確にするために、多項式は入力の一部ではありません。つまり、関数の固定ファミリ{ fn}{fn}\{ f_n \}(各入力サイズ(ビット長または入力数)ごとに1つ)が与えられた場合、言語/決定問題の 複雑さを比較したいということです関数{ f …

8
ダミー/教授向けの共同ツール
2つ以上の異なる機関の共著者がラテックスで論文を書いており、下書きを繰り返しメールで送信するよりもうまくやりたいとします。 彼らは、Dropboxアカウントを無料で開いてパスワードを共有し、自分のコンピューターの紙のバージョンとDropboxの紙のバージョンを同期できることに気付きました。ただし、2人が同じセクションを同時に編集している場合、互いの変更が上書きされます。 また、SVNやGitのようなバージョン管理システムには、並行変更をマージするためのツールがあり、それが合理的に機能すると聞いています。ただし、これらの製品のドキュメントは読みにくいため、論文を書く共著者の基本的なニーズよりも、変更を元に戻す方法やさまざまな「ブランチ」を管理する方法に重点を置いています。 このセットアップでバージョン管理システムを使用する方法について、簡単なステップごとの説明がありますか? 中央リポジトリ ローカルコピー 「スマート」マージ 枝なし ? 標準のバージョン管理システムのうち、最も使いやすいのはどれですか?(ここでは、理論的なコンピューターサイエンスの教授と話しています。) バージョン管理なしで、スマートマージと同期するだけの簡単なツールもありますか? 逆に、バージョン管理システムを使用して単著の論文を書く人も、無制限に元に戻す機能は余分な複雑さの価値があると本当に感じていますか?

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