理論計算機科学

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

4
(ポリログ空間の代わりに)なぜログ空間を効率的な計算のモデルと考えるのですか?
これは、具体的な答えがあるのではなく、主観的な質問かもしれませんが、とにかくです。 複雑性理論では、効率的な計算の概念を研究します。が多項式時間を表し、Lが対数空間を表すようなクラスがあります。どちらも一種の「効率」として表されると考えられており、いくつかの問題の難しさをかなりうまく捉えています。PP\mathsf{P}LL\mathsf{L} ただし、とLには違いがあります。多項式時間Pは、定数kに対してO (n k)時間で実行される問題の和集合として定義されます。PP\mathsf{P}LL\mathsf{L}PP\mathsf{P}O(nk)O(nk)O(n^k)kkk 、P=⋃k≥0TIME[nk]P=⋃k≥0TIME[nk]\mathsf{P} = \bigcup_{k \geq 0} \mathsf{TIME[n^k]} ログ空間はS P A C E [ log n ]として定義されます。Pの定義を模倣すると、LL\mathsf{L}SPACE[logn]SPACE[log⁡n]\mathsf{SPACE[\log n]}PP\mathsf{P} 、PolyL=⋃k≥0SPACE[logkn]PolyL=⋃k≥0SPACE[logk⁡n]\mathsf{PolyL} = \bigcup_{k \geq 0} \mathsf{SPACE[\log^k n]} ここで、はポリログ空間のクラスと呼ばれます。私の質問は:PolyLPolyL\mathsf{PolyL} 効率的な計算の概念として、ポリログ空間ではなくログ空間を使用するのはなぜですか? 主な問題の1つは、完全な問題セットに関するものです。ログスペースの多対一の削減では、とLの両方に完全な問題があります。対照的に、P o l y Lがそのような削減のもとで完全な問題を抱えている場合、空間階層定理と矛盾します。しかし、ポリログ削減に移行した場合はどうなりますか?このような問題を回避できますか?一般に、P o l y Lを効率の概念に適合させ、(必要に応じて)いくつかの定義を変更して、「素敵な」クラスに必要なすべてのプロパティを取得する場合、どこまで行けますか?PP\mathsf{P}LL\mathsf{L}PolyLPolyL\mathsf{PolyL}PolyLPolyL\mathsf{PolyL} ポリログ領域の代わりにログ領域を使用する理論的および/または実用的な理由はありますか?


3
決定できない問題に対する近似アルゴリズムの賢明な概念はありますか?
特定の問題は決定不能であることが知られていますが、それでもそれを解決する上である程度の進歩を遂げることは可能です。たとえば、停止の問題を決定することはできませんが、コード内の潜在的な無限ループを検出するためのツールを作成することで、実用的な進歩を遂げることができます。タイルの問題はしばしば決定不能です(たとえば、このポリオミノはいくつかの長方形にタイルを張りますか?)が、この分野でも最新技術を進歩させることが可能です。 私が不思議に思っているのは、NP困難問題の進捗を測定するために開発された理論的装置に似た、決定できない問題の解決に関する進捗を測定するまともな理論的方法があるかどうかです。それとも、特定のブレークスルーが決定不能な問題の理解をどの程度進めるかについて、その場限りの、私が知っている、進行しているとき、見ているときの評価にこだわっているように思えますか? 編集:私はこの質問について考えると、おそらくパラメータ化された複雑さがここで関連しているかもしれないと思います。パラメータを導入し、パラメータの値を修正すると、決定できない問題が決定可能になる場合があります。しかし、この観察が役に立つかどうかはわかりません。

2
実現可能性理論:ラムダ計算とチューリングマシンのパワーの差
関連する3つのサブ質問があり、それらは下の箇条書きで強調されています(いいえ、疑問に思っている場合は分割できません)。Andrej Bauerは、ここで、いくつかの関数はチューリングマシンで実現できるが、ラムダ計算では実現できないと書いています。彼の推論の重要なステップは次のとおりです。 ただし、ラムダ計算を使用する場合、[プログラム] cは、関数fを表すラムダ項からチューリングマシンを表す数値を計算することになっています。これを行うことはできません(別の質問として質問した場合、その理由を説明できます)。 説明/非公式の証拠を見たいです。 ここでライスの定理を適用する方法がわかりません。この述語を同等の用語に適用すると同じ結果が得られるため、「このチューリングマシンTとこのラムダ項Lは同等ですか?」という問題に適用されます。ただし、必要な関数は、異なるが同等のラムダ項に対して異なるが同等のTMを計算する場合があります。 さらに、問題がラムダ項のイントロスペクションにある場合、ラムダ項のGödelエンコーディングを渡すことも受け入れられると思いますか? 一方では、彼の例がラムダ計算で、特定のタスクを完了するためにチューリングマシンが必要とするステップ数を計算することを考えれば、私はあまり驚かない。 しかし、ここではラムダ計算ではチューリングマシン関連の問題を解決できないため、ラムダ計算で同様の問題を定義し、チューリングマシンでは解決できないことを証明できるのか、それとも実際には力の差があるのか​​疑問に思いますチューリングマシン(これには驚かされます)。

11
確率的ペアワイズスワップからランダム順列を生成する最も効率的な方法は何ですか?
私が興味を持っている質問は、ランダムな順列の生成に関するものです。基本的な構成要素として確率的なペアワイズスワップゲートを考えると、要素の一様にランダムな順列を生成する最も効率的な方法は何ですか?ここでは、「確率的ペアワイズスワップゲート」を、各ゲートに対して自由に選択できる確率で選択された要素と間でスワップゲートを実装し、それ以外の場合はアイデンティティを実行する操作とします。nnniiijjjppp これは通常、ランダム順列を生成する方法ではないことを理解しています。通常、Fisher-Yatesシャッフルのようなものを使用する可能性がありますが、許可された操作が異なるため、これは私が念頭に置いているアプリケーションでは機能しません。 明らかにこれを行うことができます、問題はどれくらい効率的かです。この目標を達成するために必要な確率的スワップの最小数は何ですか? 更新: Anthony Leverrierは、ゲートを使用して正しい分布を実際に生成する以下のメソッドを提供します。伊藤剛は、コメントで同じスケーリングを使用する別のアプローチを提供します。ただし、これまでに見た中で最も良い下限は、これはとしてスケーリングされ。だから、問題はまだ開いたままです:ができる最善のことです(つまり、より良い下限がありますか?)または、より効率的な回路ファミリはありますか?O(n2)O(n2)O(n^2)⌈log2(n!)⌉⌈log2⁡(n!)⌉\lceil \log_2(n!) \rceilO(nlogn)O(nlog⁡n)O(n\log n)O(n2)O(n2)O(n^2) 更新: いくつかの回答とコメントは、確率が固定されている確率的スワップのみで構成される回路を提案しています。このような回路では、次の理由でこの問題を解決できません(コメントから解除)。1212\frac{1}{2} そのようなゲートを使用する回路を想像してください。次に、確率の計算パスが存在するため、順列は整数kに対して確率で発生する必要があります。ただし、均一な分布の場合、が必要これは書き換えることができます。これは明らかにの整数値のために満たすことができないのためいるので、(場合、ただし。mmm2m2m2^mk2−mk2−mk 2^{−m}k2−m=1n!k2−m=1n!k 2^{−m}=\frac{1}{n!}kn!=2mkn!=2mk n! = 2^mkkkn≥3n≥3n\geq33|n!3|n!3|n!n≥3n≥3n\geq 33∤2m3∤2m3\nmid 2^m 更新(賞金を提供しているmjqxxxxから): 提供される賞金は、(1)ゲートが必要であることの証明、または(2)ゲート未満を使用する動作回路です。ω(nlogn)ω(nlog⁡n)\omega(n \log n)nnnn(n−1)/2n(n−1)/2n(n-1)/2

12
命令型プログラミングの理論的根拠は何ですか?
関数型プログラミングには、ラムダ計算と組み合わせロジックの理論的基礎があります。統計計算に携わる人として、これらの概念はモデリングに非常に役立つと思います。 命令型プログラミングと同等の数学的な基礎はありますか、それとも単に機械語での実用的なハードウェアアプリケーションとその後のFORTRANの開発から発展したのですか?

6
数学者が複雑性理論の現在の研究を常に把握する方法
複雑性理論は私の二次的な強い関心ですが、私の主な研究関心ではないため、すべての会議に参加し、すべてのブログを読み、「イン」クラウドcc:ホットニュース。私はこれのいくつかをやろうとしますが、どの方法が私に最高の価値を与えるのか疑問に思っています(または、このコンテキストではお金よりも時間の方が制限要因です)私が試みたいくつかの方法が含まれます: STOC / FOCSの手順を確認してください。これは多くの場合、それらが(多少)古いニュースになるまで突破口について聞かないことを意味しますが、最終的にニュースをキャッチする可能性がある限り、それは私の観点からは問題ありません。追跡すべき他の手続きはありますか? Los Alamos ArXivを購読します。これを使用する複雑性理論家は何人ですか?他に見るべきプレプリントサーバーはありますか? ブログを読む。私はしばらくこれを試してみましたが、ブログが多すぎて、最新の状態を維持するための非常に非効率的な方法であるため、多かれ少なかれあきらめました。 私が逃したものは何ですか?繰り返しますが、私の焦点は、遅れをとらないように考えられるすべてのことをするのではなく、時間効率の良い方法を見つけることにあります。 編集:すべての回答をありがとう。ソフトウェアで許可されている場合は、複数の回答を受け入れます。私のややarbitrary意的な選択は、以前ECCCとCCCのことを聞いたことを今思い出しているという事実に基づいていますが、Blog Aggregatorについてはまったく知りませんでした。

8
非構成的アルゴリズムの存在証明はありますか?
特定の複雑さで解決可能であることが証明されているが、実際にこの複雑さを達成するための既知のアルゴリズムがない問題への参照に出くわしたことを覚えています。 私は、これがどのように成り得るかについて心を包むのに苦労しています。アルゴリズムの存在の非構造的証明がどのように見えるか。 そのような問題は実際に存在しますか?彼らは多くの実用的な価値を持っていますか?

3
浅い埋め込みと深い埋め込み
CoqやIsabelleなどの証明アシスタントにロジックをエンコードする場合、浅い埋め込みと深い埋め込みのどちらを使用するかを選択する必要があります。浅い埋め込みでは、論理式は定理証明器のロジックに直接記述されますが、深い埋め込みでは、論理式はデータ型として表されます。 さまざまなアプローチの利点と制限は何ですか? 使用するものを決定するために利用可能なガイドラインはありますか? 2つの表現を体系的に切り替えることは可能ですか? 動機として、セキュリティ関連のさまざまなロジックをCoqにエンコードし、さまざまなアプローチの長所と短所を知りたいと思っています。

20
木のNP困難な問題
一般的なグラフでNP困難であることが知られているいくつかの最適化問題は、入力グラフがツリーの場合、多項式時間(線形時間でも)で簡単に解決できます。例には、最小頂点カバー、最大独立セット、サブグラフ同型が含まれます。ツリー上でNPハードのままであるいくつかの自然な最適化問題に名前を付けます。

4
結果どのようなもの
我々は知っているL⊆NL⊆PL⊆NL⊆P\mathsf{L} \subseteq \mathsf{NL} \subseteq \mathsf{P}とそのL⊆NL⊆L2⊆L⊆NL⊆L2⊆\mathsf{L} \subseteq \mathsf{NL} \subseteq \mathsf{L}^2 \subseteq polyLpolyL\mathsf{polyL}、L2=DSPACE(log2n)L2=DSPACE(log2⁡n)\mathsf{L}^2 = \mathsf{DSPACE}(\log^2 n)。また、polyL≠PpolyL≠P\mathsf{polyL} \neq \mathsf{P}後者は、対数空間の多対1削減の下で完全な問題を抱えているのに対し、前者はそうではないからです(空間階層定理のため)。間の関係を理解するために、polyLpolyL\mathsf{polyL}とPP\mathsf{P}、それが第一の関係を理解するのを助けることができるL2L2\mathsf{L}^2及びPP\mathsf{P}。 結果どのようなものL2⊆PL2⊆P\mathsf{L}^2 \subseteq \mathsf{P}? どのような強い程度Lk⊆PLk⊆P\mathsf{L}^{k} \subseteq \mathsf{P}のためk>2k>2k>2、またはより弱いL1+ϵ⊆PL1+ϵ⊆P\mathsf{L}^{1 + \epsilon} \subseteq \mathsf{P}のためのϵ>0ϵ>0\epsilon > 0?

6
TCSでうまく書く方法の良い例
私は学生原稿を編集していました。学生は、出版された作品で質の高い文章の例を見るのは良いと言ったので、頭の中で良い例を思い付くことができないことに気付きました。 あなたが見た質の高い数学的文章の最良の例は何ですか? ルール: 可能な限りTCSの論文を希望します。私たちのスタイルは標準的な数学の論文とは十分に異なっているので、TCSに焦点を当てた方が良いと思います(また、MOではなくここで質問している理由も) 論文がうまくいったと思うことを正確に述べれば助けになるでしょう。すべての博覧会がすべてに適しているわけではありません。一部の論文は優れた証明のアウトラインを持ち、一部は本当に効果的に表記法を使用し、他の論文は直観を巧みに伝えます。 可能であれば、論文にリンクしてください。 私たちの他の多くの幅広い質問のように、これがリソースになることを望んでいます。そのため、CWとマークしています。

5
私が学ぶことができる最も直感的な依存型理論は何ですか?
依存型付けについて本当にしっかりと把握することに興味があります。私はTaTaのほとんどを読み、ATTaPLの「依存型」を(完全に吸収されていなければ)読みました。また、依存型付けに関する多くの記事を読み、読みました。 型理論の議論の多くは、「型システムXの次の大規模な一般化とは何か」ではなく、以前の型システムにインクリメンタル機能を追加することに焦点を当てているようです。依存型はSystem Fの次の大規模な一般化のようですが、直感的で標準的な依存型付き言語はまだ見つかっていません。(帰納的)構造の微積分への多くの言及は、CoCがその言語であると思うようにさせますが、私が見た言語の説明は、私にはあまり明確でも直観的でもないようです。 私はそのような言語が次のような機能を持っていると期待/推測しています(そして、特に何かが混乱したり非現実的なものとして飛び出したりしたら教えてください) 一般化された抽象化(型階層内の任意のドメインから他のドメイン、種類->用語、用語->型 '' 'などへの機能を持つことができます) タイピングの無限の階層があります(用語:タイプ:タイプ ':タイプ' ':...) 基本要素の最小数。私は、言語が各レベルに対して単一の要素のみを主張することを想像しています。たとえば、(():Unit:Type:Type ':...)と断定できます。他の要素は、これらの要素から構築されます。 合計および製品タイプは導出可能です。 私はまた、理想的に議論するその言語の説明を探しています: その言語での抽象化と定量化の関係。統一されていない場合は、なぜ統一されていないのかを説明してください。 無限の型階層を明示的に 依存型理論を学びたいだけでなく、CSのバックグラウンドを少し仮定して、証明アシスタントと依存型言語の使用方法を理解する方法を教えるガイドをまとめたいので、この質問をしています。 (クロスがRedditに投稿)


5
複雑性理論に保存則はありますか?
いくつかの例から始めましょう。CVPがPにあることを示すのはそれほど簡単ではないが、LPがPにあることを示すのはそれほど難しいのはなぜですか。どちらもP完全な問題です。 または素数を取ります。NPのプライム(Prattが必要)および最終的にはPのプライムよりもNPのコンポジットを表示する方が簡単です。なぜこの非対称性を表示する必要があったのですか? ヒルベルト、創造性の必要性、証拠がNPにあるなどを知っています。しかし、それは、目に見える以上のものがあるという気まぐれな感覚を私が止めることはありません。 「作業」の定量化可能な概念はありますか?複雑性理論には「保存則」がありますか?たとえば、CVPとLPはどちらもP完全であるにもかかわらず、「異なる場所」で複雑さを隠していることを示しています。他の言語の表現可能性。 他の人も気分が悪く、洞察力がありますか?または、私たちはこれを計算の性質であると肩をすくめて言います。 これは、フォーラムに対する私の最初の質問です。 編集: CVPはCircuit Value Problem、LPは線形計画法です。 混乱を指摘してくれたSadeqに感謝します。

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