理論計算機科学

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


2
ハミング距離の下で近い値のすべてのペアを見つける
数百万の32ビット値があります。各値について、ハミング距離5内の他のすべての値を検索します。単純なアプローチでは、これにはO (N2)O(N2)O(N^2)比較が必要です。 これらの32ビット値を整数として処理し、リストを1回並べ替えると、最下位ビットのみが異なる値が非常に近くなることに気付きました。これにより、正確なハミング距離の実際のペアごとの比較を実行できる、より短い「ウィンドウ」または数値の範囲を持つことができます。ただし、2つの値が上位ビットでのみ異なる場合、それらはこの「ウィンドウ」の外側になり、ソートされたリストの両端に表示されます。例えば 11010010101001110001111001010110 01010010101001110001111001010110 ハミング距離は1ですが、両方が回転しても2つの値の間のハミング距離は保持されるため、左に32回回転してからリストを毎回並べ替えると、2つの値になる可能性がありますそのうちの少なくとも1つで並べ替えられたリストで十分に近くなります。 このアプローチは良い結果をもたらしていますが、このアプローチの正確性を正式に確立するのに苦労しています。 ハミング距離がkkk以下の一致する値を探しているので、32ビットの回転をすべて行う必要が本当にあるのでしょうか?たとえば、k = 1k=1k=1でウィンドウサイズが1000の場合、下位8ビットのいずれかに浮遊ビットが現れても、結果の数値は1000を超えて変わらないため、最大24ビット回転する必要があります。

2
タイプとソートの違い
これは非常に単純な質問かもしれません。 しかし、タイプとソートの違いは何ですか? 私の現在の理解は、型規則の型理論があり、適切に型付けされたステートメントの概念を与えるが、ソートはより基本的であり、シンボルを異なる種類のシンボルに区別し、関数の適用などに基本的な規則を導入することです おそらく、ほとんど違いはありません。多分、それらは異なる分野から来ているだけかもしれません。しかし、私は彼らの関係の明確な説明を見つけることができないようです。

6
チューリングマシンがシミュレートできる小さなCのような言語
私は、チューリングマシンが十分に一般的なコンピューティングモデルであることを学生に「納得させる」のに役立つ小さな言語を探しています。つまり、使用されている言語のように見えるが、チューリングマシンで簡単にシミュレートできる言語です。 Papadimitriouはこの仕事にRAMマシンを使用しますが、奇妙な(チューリングマシンとしての)ものを別の奇妙なもの(基本的にはアセンブリ言語)と比較することは、多くの学生にとってあまりにも説得力がないと思います。 どんな提案でも大歓迎です(特に、いくつかの推奨文献が付属している場合)

2
SAT問題のすべてのソリューションを列挙する
RelSat、C2Dなど、私が知っているすべての#SATソルバーは、充足可能なインスタンスの数のみを返します。しかし、私はそれらのインスタンスのそれぞれを知りたいですか? このような#SATソルバーはありますか、またはこれを行うために利用可能な#SATソルバーをどのように変更する必要がありますか? ありがとうございました。
11 lo.logic  sat  software 

2
線形時間で直径を計算できるグラフクラス
思い出して直径グラフ最長の最短経路の長さG。グラフが与えられると、直径(G )を計算するための明白なアルゴリズムは、すべてのペアの最短経路問題(APSP)を解決し、見つかった最長経路の長さを返します。GGGGGG直径(G )diam(G)\text{diam}(G) APSP問題は、いくつかのグラフクラスの最適な時間で解決できることが知られています。一般的なグラフには、O (M (n )log n )時間で実行される代数グラフ理論的アプローチがあります。ここで、M (n )は行列乗算の限界です。ただし、Yuster が示すように、直径の計算は明らかにAPSPに厳密にはリンクされていません。O(n2)O(n2)O(n^2)O( M( n)ログn )O(M(n)log⁡n)O(M(n) \log n)M(n )M(n)M(n) 直径をより高速に、たとえば線形時間で計算できる、自明でないグラフクラスがいくつかありますか? コードグラフ、およびブロックグラフなどのコードグラフのサブクラスに特に興味があります。たとえば、Gがクリークツリーとして一意に表現できる場合、弦グラフ直径はO (n + m )時間で計算できると思います。このようなグラフはur-chordalとしても知られています。GGGO (n + m )O(n+m)O(n+m)GGG

4
TCS論文での著者の注文
経験則では、TCSの論文では著者はアルファベット順に並んでいますが、いくつかの注目に値する反例があります。著者は、たとえば、 対話型証明システムの代数的方法[ルンド、フォートナウ、カーロフ、ニサン] デジタル署名と公開鍵暗号システムを取得する方法[Rivest、Shamir、Adleman] 指数時間を必要とする単語の問題[Stockmeyer、Meyer] これらの論文で注文する珍しい著者の背後にある物語は何ですか? 著者の順序がアルファベット順ではない主要なTCS論文の他の例はありますか?

3
グラフ一致問題の履歴とステータス
この問題についてさらに調べることの難しさの一部は、グラフのマッチングの問題が、はるかに有名ないとこであるマッチングの問題とは異なるが、検索エンジンを使用する場合、それと区別するのが難しいことです。 ような2つのグラフG=(V,E)G=(V,E)G=(V,E)および、タスクは、全単射を見つけることです。この全単射により、とエッジ間で可能な限り多くの対応が確立されます。G′=(V′,E′)G′=(V′,E′)G'=(V',E')π :V → V ′ G G ′|V|=|V′||V|=|V′||V| = |V'|π:V→V′π:V→V′\pi : V \rightarrow V'GGGG′G′G' 言い換えると、とが隣接行列の場合、最大化する必要があります。M ′MMMM′M′M' ∑v,w∈VMv,w⋅M′π(v),π(w)∑v,w∈VMv,w⋅Mπ(v),π(w)′\sum_{v,w \in V} M_{v,w} \cdot M'_{\pi(v),\pi(w)} この問題には、グラフの同型が特殊なケースとして明確に含まれており、(非多項式!)削減のもとで2部一致に減らすことができます。 どんな種類のアルゴリズムが存在し、その複雑さについて何が知られていますか?

2
興味深いNP問題の2次下限を証明することの難しさの説明はありますか?
これは私の以前の質問のフォローアップです: NPの自然問題の最もよく知られている確定的時間複雑度の下限 人々が関心を持ち、より良いアルゴリズムを設計しようとする興味深いNP問題の二次決定論的時間下限を証明できなかったのは戸惑っています。指数時間仮説の推測では、SATは準指数決定論的時間では解決できないが、SAT(またはその他の興味深いNP問題)が2次時間を必要とすることを証明することさえできない! おもしろいことはやや主観的で曖昧だと思います。定義はありません。しかし、私がおもしろい問題だと思うことを説明してみましょう。数人以上の人がおもしろいと思う問題について話しています。私は主にいくつかの理論的な質問に答えるために設計された孤立した問題について話しているのではありません。人々が問題のより速いアルゴリズムを見つけようとしないなら、それは問題がそれほど面白くないことを示しています。興味深い問題の具体例が必要な場合は、Karpの1972年の論文またはGarey and Johnson 1979(それらのほとんど)の問題を検討してください。 興味深いNP問題の2次決定論的時間下限を証明できなかった理由について説明はありますか?

1
構文複雑クラス
間の統語的複雑クラスいくつかは(非相対化)することが知られている及びP S P A C Eを有する次のプロパティ、P ⊆ C O N P ⊆ U S ⊆ C = P ⊆ P P ⊆ P S P A C E。(非相対化)構文複雑性クラスが存在するかどうかは疑問に思ってXようにすることをP P ⊆ X ⊆ P S P A C EPP{\bf P}PSPACEPSPACE{\bf PSPACE}P⊆CoNP⊆US⊆C=P⊆PP⊆PSPACEP⊆CoNP⊆US⊆C=P⊆PP⊆PSPACE{\bf P} \subseteq {\bf CoNP} \subseteq {\bf US} \subseteq {\bf C_=P} …

4
ノルムで近さをテストする
次の問題で既知の下限(サンプルの複雑さ)があるかどうか疑問に思っていました。 2つの未知の分布に与えられたサンプルのOracleアクセス、に、テスト(WHP)かD1D1D_1D2D2D_2{1,…,n}{1,…,n}\{1,\dots,n\} D1=D2D1=D2D_1=D_2 またはd2(D1,D2)=∥D1−D2∥2=∑ni=1(D1(i)−D2(i))2−−−−−−−−−−−−−−−−−−√≥ϵd2⁡(D1,D2)=‖D1−D2‖2=∑i=1n(D1(i)−D2(i))2≥ϵ\operatorname{d_2}(D_1,D_2)=\lVert D_1-D_2\rVert_2 = \sqrt{\sum_{i=1}^n\left(D_1(i)-D_2(i)\right)^2} \geq \epsilon バトゥ等。[BFR + 00]は、O(1ϵ4)O(1ϵ4)O\left(\frac{1}{\epsilon^4}\right)サンプルで十分であることを示しましたが、下限について言及していません。 私は、この問題に対して公平と\ epsilonバイアスのコインを区別するタスクを減らすことにより、Ω(1ϵ2)Ω(1ϵ2)\Omega(\frac{1}{\epsilon^2})下限を常に表示できると考えています(2つだけでサポートされる分布のシミュレーションポイント、およびiidコインの投げに応じてテスターのクエリに答えます)が、それでも2次ギャップが残ります...ϵϵ\epsilon (私が興味を持つ別のポイントは、このL_2距離を推定する際の下限(追加のϵϵ\epsilon)です—繰り返しますが、そのような結果への参照は文献で見つかりませんでした)L2L2L_2 ご協力いただきありがとうございます、

2
行列式と行列乗算-アルゴリズムの複雑さと算術回路サイズの類似点と相違点
行列式と行列式のアルゴリズムの複雑さと回路の複雑さとの関係を理解し​​ようとしています。 の行列ことが知られているマトリックスがすることができる計算に時間、任意の二つの乗算に必要な最小時間で行列。行列式の最適な回路の複雑さは、深さで多項式であり、深さ3で指数関数的であることも知られてい。n × nn×nn\times nM(n個)のn×n個O〜(M(n ))O~(M(n))\tilde{O}(M(n))M(n )M(n)M(n)n × nn×nn\times nO (ログ2(n ))O(log2⁡(n))O(\log^{2}(n)) アルゴリズムの観点から行列式の計算は行列の乗算に似ていることがわかっているのに、行列式と行列の乗算の回路の複雑さに違いがあるのはなぜですか?具体的には、なぜ回路の複雑さが深さで指数関数的なギャップを持っているのでしょうか?333 おそらく、説明は簡単ですが、私にはわかりません。「厳密」の説明はありますか? また見てください:行列式の最小の既知の式

1
グラフの平均距離を計算する複雑さ
ましょう接続されているグラフの平均距離であるad(G)ad(G)\rm{ad}(G)G.G.G. 計算する一つの方法の要素の合計しているの距離行列、適切和をスケーリングします。ad(G)ad(G)\rm{ad}(G)D(G),D(G),D(G),GGG 出力グラフがツリーの場合、平均距離は線形時間で計算できることがわかっています(B.Mohar、T.Pisanski-グラフのウィーナーインデックスの計算方法を参照)。制限されたツリー幅を持つグラフの高速アルゴリズムもあるようです。 したがって、興味深い質問は、を知るのに役立つかどうか言い換えるとD(G).D(G).D(G). 準2次時間でを計算することは可能ですか?ad(G)ad(G)\rm{ad}(G) 私が知りたいのは、なぜこれが不可能なのかという理論的な下限があるかどうかです。

2
審査官の問題(SAT決定インスタンス/回答の均一な生成)
コースのティーチングアシスタントは、困難な試験問題を(決定論的に)生成するプログラムを作成しました。今、彼女は対応する答えを生成するプログラムを書きたいと思っています。審査官の問題は、これが常に可能であるかどうかを尋ねます。審査官の予想を仮定して、以下のことを述べて、、それではない。問題を考え出すことはその解決策を考え出すよりも簡単です。P ≠ N PP≠NP\mathsf{P} \neq \mathsf{NP} より形式的には、入力1 nで多項式時間にサイズnのブール式を生成する決定論的チューリングマシンをとします。このようなすべてのMについて、入力1 nでM (1 n)が満足のいく割り当てを持っている場合は「1」を出力し、それ以外の場合は「0」を出力する決定論的多項式時間チューリングマシンM 'が存在するかどうかを知りたい。MMM1n1n1^nnnnMMMM′M′M'1n1n1^n111M(1n)M(1n)M(1^n)000 と仮定すると、この質問はすでに質問または回答されていますか?答えていない場合は、追加的な仮定(の何種類例えば結果に一方向関数を?)クマのでしょうか?上記のいずれかを除いて、私の「推測」は「答える」TMが常に存在するとは限らないということですが、あなたの直感は何ですか?P ≠ N PP≠NP\mathsf{P} \neq \mathsf{NP} ありがとう!

1
数学ソフトウェアの証人
私は、多くの人々と同様に、MathematicaやMapleなどの数学ソフトウェアの熱心なユーザーです。ただし、このようなソフトウェアが警告なしに間違った答えを返すだけの場合が多いことに、私はますます不満を感じています。これは、単純な合計から他の多くの例の中で最適化まで、あらゆる種類の操作を実行するときに発生する可能性があります。 私はこの深刻な問題について何ができるのだろうと思っていました。必要なのは、与えられた答えの正しさをユーザーが検証できるようにして、伝えられていることにある程度自信を持たせる方法です。あなたが数学の同僚から解決策を得る場合、彼女/彼はただ座って、彼らの仕事を見せてもよいでしょう。ただし、これはほとんどの場合、コンピューターで実行することはできません。その代わりに、コンピューターは、その答えの正しさをシンプルで簡単に確認できる証言をあなたに与えることができますか?確認はコンピューターで行う必要がありますが、最初に証人を作成するためにアルゴリズムを確認するよりも、チェックアルゴリズムを確認する方がはるかに簡単であることが望まれます。これはいつ実行可能になり、どのように正確に公式化できますか 要約すると、私の質問は次のとおりです。 少なくとも理論的には、数学的ソフトウェアが、あなたが求めた答えとともに、短いチェック可能な証明を提供することは可能でしょうか? すぐにこれを行うことができる些細なケースは、もちろん整数の分解や古典的なNP完全問題の多く(ハミルトニアン回路など)です。

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