理論計算機科学

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

5
RSAからSATへの高速削減
今日のScott Aaronsonのブログ投稿は、複雑で興味深い未解決の問題/タスクのリストを提供しました。特に注目を集めたのは次の1つです。 3SATインスタンスのパブリックライブラリを、可能な限り少ない変数と句で構築します。これを解決すると、注目に値する結果になります。(たとえば、RSAファクタリングの課題をエンコードするインスタンス。)このライブラリで現在の最高のSATソルバーのパフォーマンスを調査します。 これは私の質問を引き起こしました:RSA /ファクタリングの問題をSATに減らすための標準的なテクニックは何ですか?そのような標準的な削減はありますか? 明確にするために、「高速」とは多項式時間を意味しません。削減の複雑さの上限がもっと厳しいかどうか疑問に思っています。たとえば、既知の立方体の縮小はありますか?

6
整数ではなく自然なのはなぜですか?
自然言語がプログラミング言語の理論と型理論に関する本の著者に愛されている理由に興味があります(たとえば、J。Mitchell、プログラミング言語の基礎、B。Pierce、型とプログラミング言語)。単純に型付けされたラムダ計算、特にPCFプログラミング言語の記述は、通常、NatとBoolに基づいています。汎用の工業用PLを使用および指導している人々にとって、自然の代わりに整数を扱う方がはるかに自然です。PL理論家がnatを好む理由をいくつか挙げてください。それに加えて、少し複雑ではありません。基本的な理由はありますか、それとも伝統を称えるだけですか? UPDナチュラルの「ファンダメンタリティ」に関するすべてのコメントについて:私はそれらのすべてのクールなものについてはかなり知っていますが、PLの理論の型理論でそれらの特性を持つことが本当に重要な場合、例を見てみたいです。例えば、広く言及された誘導。基本的な1次論理のように、任意の種類の論理(単純にLCと入力)がある場合、誘導を使用しますが、派生ツリー(ラムダにもあります)の誘導を使用します。 私の質問は基本的に、プログラミング言語の基本的な理論を獲得したい業界の人々から来ています。彼らはプログラムに整数を持ち、研究されている理論(私たちの場合は型理論)への具体的な議論と応用なしに、なぜnatだけで言語を研究するのか、彼らは全くがっかりしています。

1
正規の非相対化手法はありますか?
多くの分野で、この分野で働くすべての人が習得すべき標準的な手法があります。たとえば、ログスペースの削減の場合、合成関数の完全な出力を構築せず、常に出力のビットごとに結果を再計算して、ログスペースの制約を維持できるようにすることで構成される合成の「ビットトリック」。 私の質問は、非相対化技術についてです。理論家はいくつかの基本的な非相対論的操作を概説しているか、それとも既知の非相対論的証明ごとに異なるトリックがありますか?

2
無限シーケンスの有界入力全単射
ここに私が解決できなかったパズルがあります。この問題が既に知られているか、簡単な解決策があるかどうかを知りたいです。 全単射定義することが可能である bicartesian閉じたカテゴリのプロパティを使用します。Andrej Bauerは、これが何を意味するかの説明を「Constructive gem:juggling exponentials」としてブログに投稿しました。3N≅5N3N≅5N 3^\mathbb{N} \cong 5^\mathbb{N} この全単射には興味深い特性があります。これは「有界入力」であり、出力の各コンポーネントが入力の有界に多くのコンポーネントにのみ依存することを意味します。しかし、ためには、この構成のみことを示すことができると思わK NとLとN場合同形であり、K及びLが奇数か偶数両方共に。これは質問を開いたままにします:k,l≥2k,l≥2k,l\geq 2kNkN k^\mathbb{N} lNlN l^\mathbb{N} kkklll から3 Nまでの有界入力全単射はありますか?2N2N 2^\mathbb{N} 3N3N 3^\mathbb{N} 問題をより詳細に説明する短いメモがあります: 無限シーケンスの有界入力全単射に関する推測。 定義: 関数である有界入力整数が存在する場合、kは 出力の各成分ように、Fは最大でのみ依存するk個の 入力のコンポーネント。より正式には、fは各インデックスのための場合有界入力されるJ ∈ J 指数あるiが1、⋯ 、iはkは ∈ I および関数F M:Xf:∏i∈IXi→∏j∈JYjf:∏i∈IXi→∏j∈JYjf : \prod_{i \in I} X_i \rightarrow \prod_{j\in J} Y_j kkkfffkkkfffj∈Jj∈Jj \in Ji1,⋯,ik∈Ii1,⋯,ik∈Ii_1,\dotsb,i_k \in I 全てについてようにX∈X成分 …

8
数独パズルを保存するのに必要な最小ビット数は?
注:これは、標準の9x9の数独パズルに関するものです。ソリューションは、解決された法的パズルをサポートするだけです。そのため、ソリューションは空のセルをサポートする必要がなく、解決された数独パズルのプロパティに依存できます。 私はこれを疑問に思っていましたが、満足している答えを考えることができませんでした。単純なソリューションでは、各セル(81セル)に1バイト、合計648ビットを使用します。より洗練された解決策は、ベース9数(セルあたり一桁)全体数独パズルを記憶し、必要とする⌈log2(981))⌉=257⌈log2⁡(981))⌉=257\lceil\log_2(9^{81}))\rceil = 257ビット。 しかし、それでも改善できます。たとえば、3x3サブグリッドの9つの数字のうち8つを知っていれば、9番目の数字を簡単に推測できます。これらの考えを続けて、この質問が具体的な解決された数独の量に至るまで続けることができますか?これで、各バイナリ番号を数独パズルにマップする巨大なルックアップテーブルを使用できますが、それは使用可能なソリューションではありません。 だから、私の質問: ルックアップテーブルを使用しない場合、数独パズルを格納するために必要なビットの最小量とアルゴリズムは何ですか?

2
サヴィッチの定理の厳密な下限
まず第一に、私は愚かさを事前に謝罪します。私は決して複雑性理論の専門家ではありません(それからはほど遠い!私は複雑性理論の私の最初のクラスを取っている学部生です)ここに私の質問があります。現在、Savitchの定理は この下限がきついかどうか、つまり は達成できません。 NSPACE (F (N )) ⊆ DSPACE ((F (N ))1.9)NSPACE(f(n))⊆DSPACE((f(n))2)NSPACE(f(n))⊆DSPACE((f(n))2)\text{NSPACE}\left(f\left(n\right)\right) \subseteq \text{DSPACE}\left(\left(f\left(n\right)\right)^2\right)NSPACE(f(n))⊆DSPACE((f(n))1.9)NSPACE(f(n))⊆DSPACE((f(n))1.9)\text{NSPACE}\left(f\left(n\right)\right) \subseteq \text{DSPACE}\left(\left(f\left(n\right)\right)^{1.9}\right) ここで簡単な組み合わせの引数を作成する必要があるように思われます-決定論的チューリングマシンの構成グラフの各ノードには出力エッジが1つしかありませんが、非決定論的チューリングマシンの構成グラフの各ノードはより多くを持つことができます1つの発信エッジよりも。Savitchのアルゴリズムが行っているのは、任意の数の出力エッジを持つ構成グラフを出力エッジを持つ構成グラフに変換することです。&lt;2&lt;2<2 構成グラフは一意のTMを定義しているため(これについてはわかりません)、後者の組み合わせサイズは前者よりもほぼ確実に大きくなります。この「違い」は、おそらくn ^ 2の要因でありn2n2n^2、おそらくそれよりも少ないでしょう-私は知りません。もちろん、ループがないことを確認する方法など、解決すべき技術的な問題はたくさんありますが、私の質問は、これがこのようなことを証明するための合理的な方法であるかどうかです。

4
最も強力な種類のパーサーは何ですか?
サイドプロジェクトとして、Pythonを使用して言語を書いています。私はPlyと呼ばれるフレックス/バイソンクローンを使用することから始めましたが、そのスタイルの文法で表現できる力の限界に近づいており、インピーダンスミスマッチのために言語をハッキングすることに興味はありません。ツール。したがって、自分で書くことに嫌気はありません。 それでは、最も強力なパーサーのタイプは何ですか?論文への引用(および入門記事)も歓迎します。 (「パワフル」が正確に定義されていないことは知っていますが、少しパワフルになって、答えがどこに行くか見てみましょう)

2
NFAの普遍性の条件
非決定性有限オートマトンおよび関数ます。さらに、を定義します。A=(Q,Σ,δ,q0,F)A=(Q,Σ,δ,q0,F)A = (Q, \Sigma, \delta, q_0, F)f(n)f(n)f(n)Σ≤k=⋃i≤kΣiΣ≤k=⋃i≤kΣi\Sigma^{\leq k} = \bigcup_{i \leq k} \Sigma^i 次のステートメントを分析してみましょう。 もしは、。Σ≤f(|Q|)⊆L(A)Σ≤f(|Q|)⊆L(A)\Sigma^{\leq f(|Q|)} \subseteq L(A)L(A)=Σ∗L(A)=Σ∗L(A) = \Sigma^* f(n)=2n+1f(n)=2n+1f(n) = 2^n+1場合、それが真であることを示すのは簡単です。したがって、オートマトンが長さまでのすべての単語を生成する場合、生成します。2| Q |+ 12|Q|+12^{|Q|}+1Σ∗Σ∗\Sigma^* しかし、が多項式である場合、それはまだ保持されますか?fff そうでない場合、特定の多項式に対するNFA構築は、stますか?AAApppΣ≤ P (| Q |)⊆ L (A )⊊ Σ∗Σ≤p(|Q|)⊆L(A)⊊Σ∗\Sigma^{\leq p(|Q|)} \subseteq L(A) \subsetneq \Sigma^*

3
ハミルトニアンサイクルを持たないランダムグラフを作成する方法
クラスA がハミルトニアンサイクルを持つサイズすべてのグラフを示すとします。このクラスからランダムグラフを生成するのは簡単です。n個の孤立ノードを取得し、ランダムハミルトニアンサイクルを追加してから、エッジをランダムに追加します。nnnnnn クラスB がハミルトニアンサイクルを持たないサイズすべてのグラフを示すようにします。このクラスからランダムなグラフを選択するにはどうすればよいですか?(またはそれに近い何かをする)nnn

3
PHにあることが知られていないが、P = NPの場合はPになる決定問題
編集:Ravi Boppanaが彼の答えで正しく指摘し、Scott Aaronsonも彼の答えに別の例を追加したので、この質問への答えは私がまったく予想しなかった方法で「はい」であることが判明しました。最初に私は彼らが私が尋ねたかった質問に答えなかったと思ったが、いくつかの考えの後、これらの構造は私が尋ねたい質問の少なくとも1つに答えます、つまり、「条件付きの結果を証明する方法はありますか?」 = NP⇒ L ∈Pは」無条件の結果を証明せずにL ∈PHの?」のおかげで、ラヴィとスコット! 次の条件が両方とも満たされるような決定問題Lがありますか? Lは、多項式階層にあることは知られていません。 P = NPが暗示することが知られているL ∈Pを。 人為的な例は自然な例と同じくらい良いです。また、「L」という文字を使用していますが、役立つ場合は言語ではなく約束の問題になる可能性があります。 背景。我々は決定問題のことがわかっている場合はLは多項式階層である、そして我々はその「P = NP⇒知っL ∈Pを。」質問の意図は逆が成立するかどうかを尋ねることです。上記の2つの条件を満たす言語Lが存在する場合、逆が失敗した証拠と考えることができます。 この質問は、ウォルター・ビショップの質問「#P = FPの結果」に対する私の答えに対するジョー・フィッツシモンズの興味深いコメントが動機となっています。

6
C実装の最大計算能力
この本(または、必要に応じて言語仕様のその他のバージョン)を調べてみると、C実装の計算能力はどれくらいですか? 「C実装」には技術的な意味があることに注意してください。実装定義の動作が文書化されているCプログラミング言語仕様の特定のインスタンス化です。AC実装は、実際のコンピューターで実行できる必要はありません。ビット文字列表現を持つすべてのオブジェクトと、実装定義のサイズを持つ型を含む、言語全体を実装する必要があります。 この質問のために、外部ストレージはありません。実行できる唯一の入出力は、getchar(プログラム入力を読み取るため)およびputchar(プログラム出力を書き込むため)です。また、未定義の動作を呼び出すプログラムは無効です。有効なプログラムの動作は、C仕様に加えて、付録J(C99の場合)にリストされている実装定義動作の実装の説明で定義されている必要があります。標準で言及されていないライブラリ関数の呼び出しは未定義の動作であることに注意してください。 私の最初の反応は、Cの実装はアドレス指定可能なメモリの量に制限があるため、有限オートマトンに過ぎないということでした(sizeof(char*) * CHAR_BIT格納する際に個別のメモリアドレスは個別のビットパターンを持たなければならないため、ストレージのビット以上をアドレス指定することはできません)バイトポインター)。 しかし、実装ではこれ以上のことができると思います。私が知る限り、標準は再帰の深さに制限を課していません。したがって、必要なだけ再帰関数呼び出しを行うことができregisterます。アドレス指定不可能な()引数を使用する必要があるのは、有限数の呼び出しを除いてすべてです。したがって、任意の再帰を許可し、registerオブジェクトの数に制限のないC実装は、決定性プッシュダウンオートマトンをエンコードできます。 これは正しいです?より強力なC実装を見つけることができますか?チューリング完全なC実装は存在しますか?

4
多項式時間で最大の独立集合を見つけることができる最大クラス?
ISGCIグラフの1100クラス以上のリスト。これらの多くについては、多項式時間で独立集合を決定できるかどうかがわかります。これらはIS-easyクラスと呼ばれることもあります。最大の IS-easyクラスのリストをコンパイルしたいと思います。これらのクラスが一緒になって、この問題の(既知の)扱いやすさの境界を形成します。 ISが簡単な無限クラスに有限の数のグラフを追加するだけで、扱いやすさに影響を与えないため、いくつかの制限があります。クラスを遺伝性のものに制限しましょう(誘導サブグラフの取得、または同様に、除外された誘導サブグラフのセットによって定義される)。さらに、説明が小さいセットXに対してXフリーであるファミリのみを考えてみましょう。そこかもしれません されても可能なように扱いやすいクラス(の無限の昇順チェーン(P,star1,2,k)(P,star1,2,k)(P,\text{star}_{1,2,k})-freeおよび以下のDavid Eppsteinによって説明されているクラス)、しかし、IS-easyであることが実際に証明されているクラスに注意を制限しましょう。 私が知っているものは次のとおりです。 完璧なグラフ フリー(P,star1,2,5)(P,star1,2,5)(P,\text{star}_{1,2,5}) フリー(K3,3−e,P5)(K3,3−e,P5)(K_{3,3}-e, P_5) 共同メイニエル ほぼ二分 椅子なし (、クリケット)無料P5P5P_5 -free(P5,Kn,n)(P5,Kn,n)(P_5,K_{n,n})(固定)nnn -無料(P5,X82,X83)(P5,X82,X83)(P_5, X_{82}, X_{83}) 他のそのような最大クラスは知られていますか? 編集:除外された未成年者によって定義されたクラスを扱うYaroslav Bulatovが尋ねた関連する質問も参照してください。遺伝クラスのグローバルプロパティを参照してください。より一般的な質問については、以前に遺伝クラスについて質問しました。 Jukka Suomelaがコメントで指摘しているように、マイナーな除外されたケースも興味深い(そして興味深い質問をするでしょう)が、これはここでの焦点では​​ありません。 Davidの例を回避するために、Xのすべてのグラフが独立した頂点を持つわけではない、Xフリーグラフとして最大クラスも定義できる必要があります。 以下の回答にあるクラス: りんごなし(StandaŽivný推奨) (、house)-freeP5P5P_5(David Eppsteinにより提案) (爪)フリーK2∪K2∪K_2 \cup(デイビット・エップスタインによって示唆) 2013-10-09を追加しました: Lokshtanov、VatshelleおよびVillangerによる最近の結果は、Martin Vatshelleの回答で言及されており、以前に知られている最大クラスのいくつかに優先します。 特に、フリーはIS-easy subsumes(P 5、cricket)-free、(P 5、K n 、n)-free、(P 5、X 82、X 83)-free、および(P 5、家)-すべてはISで簡単です。P5P5P_5P5P5P_5P5P5P_5Kn,nKn,nK_{n,n}P5P5P_5X82X82X_{82}X83X83X_{83}P5P5P_5 これは、最大5つの頂点を持つ単一の禁止誘導サブグラフによって定義されるすべての遺伝グラフクラスが、ISイージーまたはISイージーでないと明確に分類できることを意味します。 残念ながら、フリーグラフがIS-easyクラスを形成するという証明は、P 6フリーグラフでは機能しないようです。そのため、次のフロンティアは、単一の6頂点グラフで定義されるすべての遺伝グラフクラスを分類することです。P5P5P_5P6P6P_6 私は特にフォームのIS-簡単なクラスに興味ままいくつかのコレクションのためのフリーX無限に多くの同型クラスとグラフの、まだどこYのフリーではありませんIS-簡単に任意のためのY ⊂ X。XXXXXXYYYY⊂XY⊂XY \subset …


2
なぜ「トポロジカルソート」がトポロジカルなのですか?
「トポロジカルソート」が「トポロジカル」と呼ばれるのはなぜですか?それは、頂点やエッジを変更せずに順序を決定しているというだけの理由ですか?ドーナツとコーヒーカップはトポロジー的に同等ですか?なぜ「依存ソート」などと呼ばれないのですか?なぜ「トポロジカル」なのですか?私は不思議に思っています。

5
posetsのバイナリ検索の一般化?
Sにポーズ "S"と単調な述語 "P"があるとします。Pを満たすSの1つまたはすべての最大要素を見つけたいと思います。 編集:私はPの評価の数を最小限にすることに興味があります。 この問題にはどのようなアルゴリズムが存在し、Sにはどのようなプロパティと追加の操作が必要ですか? 次のような重要な特殊なケースはどうですか? Sは線形順序です。「中間検索」操作がある限り、通常のバイナリ検索が機能します。 Sは格子です Sはサブセットラティスです Sはマルチセットラティスです ... 後者の2つのケースは、たとえば実験設計などで特に重要に思えます。ブールまたは実パラメータのセットがあり、特定のパターンを再現する最小の組み合わせ(たとえば、テストの失敗)を見つけたい場合です。

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