理論計算機科学

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

3
スライディングウィンドウの中央値を計算するための非自明なアルゴリズム
実行中の中央値を計算する必要があります: 入力: nnn、kkk、vector (x1,x2,…,xn)(x1,x2,…,xn)(x_1, x_2, \dotsc, x_n)。 出力: vector (y1,y2,…,yn−k+1)(y1,y2,…,yn−k+1)(y_1, y_2, \dotsc, y_{n-k+1})、ここでyiyiy_iはの中央値です(xi,xi+1,…,xi+k−1)(xi,xi+1,…,xi+k−1)(x_i, x_{i+1}, \dotsc, x_{i+k-1})。 (近似による不正行為はありません。正確な解を求めます。要素xixix_iは大きな整数です。) サイズ探索木を維持する簡単なアルゴリズムがありkkkます。合計実行時間はO(nlogk)O(nlog⁡k)O(n \log k)です。(ここで「検索ツリー」とは、対数時間での挿入、削除、および中央値クエリをサポートする効率的なデータ構造を指します。) しかし、これは私には少し愚かなようです。中央値だけでなく、サイズkのすべてのウィンドウ内のすべての順序統計を効果的に学習します。さらに、特にkが大きい場合、これは実際にはあまり魅力的ではありません(大きな検索ツリーが遅くなる傾向があり、メモリ消費のオーバーヘッドが自明ではなく、キャッシュ効率が悪いことが多いなど)。kkkkkk 大幅に改善できることはありますか? 下限はありますか(たとえば、単純なアルゴリズムは比較モデルに漸近的に最適ですか)。 編集:デビッドエップスタインは、比較モデルのための素敵な下限を与えました!それにもかかわらず、些細なアルゴリズムよりも少し賢いことをすることは可能だろうか? たとえば、これらの線に沿って何かを行うことができます。入力ベクトルをサイズ部分に分割します。各部分をソートします(各要素の元の位置を追跡します)。そして、区分的にソートされたベクトルを使用して、補助データ構造なしで実行中の中央値を効率的に見つけますか?もちろん、これはまだO (n log kkkkですが、実際には、配列のソートは検索ツリーを維持するよりもはるかに高速になる傾向があります。O(nlogk)O(nlog⁡k)O(n \log k) 編集2: Saeedは、検索ツリー操作よりもソートの方が速いと思う理由をいくつか見たいと思っていました。以下は、、n = 10 8の非常に簡単なベンチマークです。k=107k=107k = 10^7n=108n=108n = 10^8 ≈8s:それぞれk個の要素を持つベクトルをソートn/kn/kn/kkkk ≈10s:要素を持つベクトルの並べ替えnnn ≈80s:サイズkのハッシュテーブルでの挿入と削除nnnkkk ≈390s:サイズkのバランスの取れた検索ツリーでの挿入と削除nnnkkk ハッシュテーブルは比較のためだけにあります。このアプリケーションでは直接使用しません。 要約すると、ソートとバランスの取れた検索ツリー操作のパフォーマンスにはほぼ50倍の差があります。そして、を増やすと事態はさらに悪化します。kkk (技術的詳細:データ=ランダムな32ビット整数。コンピューター=典型的な最新のラップトップ。テストコードはC ++で記述され、標準ライブラリルーチン(std :: sort)とデータ構造(std :: …

3
文脈自由言語をキャプチャする正規表現の拡張機能はありますか?
文脈自由文法(CFG)を含む多くの論文で、そこに提示されているそのような文法の例は、しばしば生成する言語の簡単な特徴づけを認めています。例えば: S→aaSbS→aaSbS \to a a S b S→S→S \to 生成、{a2ibi|i≥0}{a2ibi|i≥0}\{ a^{2i} b^i | i \geq 0\} S→aSbS→aSbS \to a S b S→aaSbS→aaSbS \to a a S b S→S→S \to 生成、及び{aibj∣i≥j≥0}{aibj∣i≥j≥0}\{ a^i b^j \mid i \geq j \geq 0 \} S→aSaS→aSaS \to a S a S→bSbS→bSbS \to b S b S→S→S …

2
まったく公開しない方が良い場合もありますか?
これは政治的に間違った質問ではないことを願っていますが、通常CCC / ITCS / ICALP(およびFOCS / STOC)で公開する博士課程の学生にとって、あまり重要でない作品を公開することは有害です(キャリア的に)それほど名誉のない会議(MFCS、FCT、STACS、IPLなど)そのような書類をECCC / arXivに置いておいたほうがいいでしょうか?

1
スパースグラフの正則性補題
Szemerediの正則性補題は、すべての密なグラフは多くの2部展開グラフの和集合として近似できると述べています。より正確には、ほとんどの頂点のセットへのパーティションがあり、セットのほとんどのペアが2部展開器を形成します(パーティション内のセットの数と展開パラメーターは近似パラメーターに依存します)。O(1)O(1)O(1)O(1)O(1)O(1) http://en.wikipedia.org/wiki/Szemer%C3%A9di_regularity_lemma 「良好な」スパースグラフ用のこの補題には、次のようなバージョンがあります。 http://www.estatistica.br/~yoshi/MSs/FoCM/sparse.pdf http://people.maths.ox.ac.uk/scott/Papers/sparseregularity.pdf これらの定式化について私が驚いたのは、パーティション内のセットのほとんどのペアが二部エキスパンダーを形成することだけを保証し、これらの二部エキスパンダーが空であることです。そのため、一般的なスパースグラフでは、頂点のパーティション内の異なる部分間のすべてのエッジがエキスパンダーに属していない可能性が非常に高くなります。 パーツ間のほとんどのエッジがエキスパンダーからのものであることを示す定式化があるのか​​、それともそのような定式化の希望がないのだろうか。

4
NPの自然問題の最もよく知られている決定的時間複雑度の下限
この回答への理論計算機科学の主要な未解決の問題?質問は、NPの特定の問題が時間を必要とする場合に開いていると述べています。Ω(n2)Ω(n2)\Omega(n^2) 回答中のコメントを見て、私は不思議に思いました: パディングや同様のトリックを別にすれば、NPの興味深い問題(決定的なRAMマシン(またはマルチテープの決定論的チューリングマシン)で最もよく知られている時間の複雑さの下限はどのようなものですか(自然な方法で述べられています)) NPには、合理的なマシンモデルの2次の決定論的時間では解決できないことが知られている自然な問題はありますか? 基本的に、私が探しているのは、次の主張を除外する例です。 任意の天然 NPの問題は、解決することができるの時間。O(n2)O(n2)O(n^2) Karpの1972年の論文または1979年のGarey and Johnsonの決定論的時間を必要とするNP問題を知っていますか?または、すべての興味深い自然NP問題が決定論的時間で解決できるということを、私たちの知る限りでは可能ですか?Ω(n2)Ω(n2)\Omega(n^2)O(n2)O(n2)O(n^2) 編集 上限ではなく下限の不一致に起因する混乱を取り除くための明確化:では解決できないことがわかっている問題を探しています。問題が(すべての十分な入力に対して)または時間を必要とするより強力な要件を満たしている場合、より 良いですが、無限に頻繁に実行されます。o(n2)o(n2)o(n^2)Ω(n2)Ω(n2)\Omega(n^2)ω(n2)ω(n2)\omega(n^2)

2
数値フィールドの因数分解の複雑さ
一般的な数値フィールドの整数の因数分解の計算の複雑さについて知られていることは何ですか?すなわち: 整数上では、バイナリ展開を介して整数を表します。一般的な数値フィールドの整数の類似表現は何ですか? 数体上の原数がPまたはBPPにあることはわかっていますか? 数値フィールドを因数分解するための最もよく知られているアルゴリズムは何ですか?(および(明らかに)EXPN 1 / 3アルゴリズムから延びるZ?)ここで、ファクタリングは数いくつかの表現を見つけることを意味する(で表されるn個の素数の積として)ビット。expn−−√exp⁡n\exp \sqrt nexpn1/3exp⁡n1/3\exp n^{1/3}ZZ\mathbb{Z}nnn 数値フィールドで整数のすべての因数分解を見つけることの複雑さは何ですか?いくつの異なる因数分解があるかを数えますか? 上のことが知られている所定数の区間の要因を持っているかどうかを決定する〔、B ]ZZ\mathbb{Z}[a,b][a,b][a,b] NP困難です。数値フィールド内の整数のリング上で、ノルムが特定の間隔内にある素因数があるかどうかを見つけることは、すでにNP困難である可能性がありますか? BQPの数値フィールドを因数分解していますか? 発言、動機、および更新。 もちろん、因数分解は数値フィールド上で一意ではないという事実はここで重要です。この質問(特にパート5)は、GLLに関するこのブログ投稿(この発言を参照)と、以前のTCSexchangeの質問によるものです。Lior Silverman が徹底的な答えを提示した私のブログでもそれを提示しました。

3
自然な証明と幾何学的な複雑さにおける建設性
最近、Ryan Willamsは、複雑性クラスの分離を引き出すために、自然証明の構成性が避けられないことを証明しました:と。 N E X PNEバツP\mathsf{NEXP}T C0TC0\mathsf{TC}^{0} Natural Proofの構成性は、回路の複雑さのすべての組み合わせの証明が満たす条件であり、(または別の「ハード」複雑度クラス)のターゲット関数が実行するアルゴリズムによって「ハード」プロパティを持つかどうかを決定できますターゲット関数の真理値表の長さのポリタイムで。N E X PNEバツP\mathsf{NEXP} 他の2つの条件は、「ハード」プロパティを必要とする役に立たない条件は、のどの回路でも計算できないことと、ハードプロパティが見つけやすい大きな条件です。T C0TC0\mathsf{TC}^0 私の質問は: この結果は、幾何学的複雑性理論(GCT)を使用して、 vs、 vs、または vs?PP\mathsf{P}N PNP\mathsf{NP}PP\mathsf{P}N CNC\mathsf{NC}N E X PNEバツP\mathsf{NEXP}T C0TC0\mathsf{TC}^0 参照: ライアン・ウィリアムズ、「自然の証明とデランダム化」

2
中央値を計算するための正確な比較数
Knuthの体積III コンピュータプログラミングの技術(3.2節第5章)リスト次の表含む正確な比較の最小数を選択する必要サイズのソートされていないセットから番目に小さい要素nはすべてのために、1 ≤ T ≤ N ≤ 10。このよく知られた閉形式と共に表、V 1(N )= N - 1とV 2(N )= N - 2 + ⌈ N /tttnnn1≤t≤n≤101≤t≤n≤101\le t \le n\le 10V1(n)=n−1V1(n)=n−1V_1(n) = n-1、表し最も最先端技術の1976年のように。V2(n)=n−2+⌈n/2⌉V2(n)=n−2+⌈n/2⌉V_2(n) = n - 2 + \lceil n/2 \rceil 過去36年間にV t(n )のより正確な値が計算されましたか?私は、特に正確な値に興味がM (N )= V ⌈ N / 2 ⌉(N )、比較の最小数は、中央値を計算するために必要。Vt(n)Vt(n)V_t(n)M(n)=V⌈n/2⌉(n)M(n)=V⌈n/2⌉(n)M(n) = V_{\lceil …


2
完全な一致を認めるサブグラフを誘発するカウントの計算の複雑さ
無向と重み付けされていないグラフ所与と偶数整数、頂点のカウントセットの計算の複雑さは何であるようにとの部分グラフ頂点集合に制限はは完全な一致を認めますか?複雑さは#P-completeですか?この問題の参照はありますか?| S | = k G SG=(V,E)G=(V,E)G=(V,E)S ⊆ VkkkS⊆VS⊆VS\subseteq V|S|=k|S|=k|S|=kGGGSSS 定数kの場合、もちろん問題は簡単です。kkkサイズkのすべての部分グラフをkkk時間(|V|k)(|V|k){|V| \choose k}。また、問題は完全一致の数を数えることとは異なることに注意してください。その理由は、完全な一致を認める頂点のセットには、複数の完全な一致がある場合があるためです。 問題を述べる別の方法は次のとおりです。マッチングは、k頂点に一致する場合、kマッチングと呼ばれます。二つのマッチングM及びM「は、頂点のセットにマッチした場合``頂点セット非不変である' M及びM」は同一ではありません。頂点セット非不変kマッチングの総数をカウントします。kkkkkkMMMM′M′M'MMMM′M′M'kkk

3
「グラフは製品です」の複雑さ
この質問は純粋な好奇心から生じます(文字列をシャッフル解除することを考えているときに思いつきましたが、実際に関連しているかどうかはわかりません)。 さまざまなグラフ製品がありますが、ここではそれらに興味があります。グラフが自明でない製品と同型かどうかを判断する複雑さは何ですか?(確かにデカルト積についてK = K ◻ 1 1つの頂点を有するグラフです。)KKKK=K□1K=K◻1K = K \square 1111 ウィキペディアの「因子グラフ」と「グラフ因子分解」のページを見ましたが、どちらも関連していないようです。この問題は別の名前で知られていますか?


2
固定グラフが別のグラフのマイナーであるかどうかを判断する複雑さ
結果ロバートソンとシーモアが実証固定されたグラフかどうかを試験するためのアルゴリズムをGはマイナーである。このトピックに関する2つ半の質問があります。O (n3)O(n3)O(n^3)GGGHHH 1)それ以来、このアルゴリズムに改善があったようです。現在最も有名なアルゴリズムは何ですか? 2a)人々は何が最適な範囲であると推測していますか? 固定面に埋め込むためのMoharのアルゴリズムと認識するための河原林のアルゴリズム -apexグラフはkkk、線形時間で禁じられて未成年者で特徴付けグラフのメンバーシップを決める最後の質問をやる気に: 2b)これを線形時間で行えると疑う理由はありますか? もちろん、誰かが既に線形時間アルゴリズムを考え出した場合、最後の2つの質問はばかげています。:)

2
SATソルバーに大きな違いがあるのはなぜですか?
SATソルバーは、代数攻撃、たとえばwalksatやminisatで非常に重要です。 ただし、ここで利用可能なベンチマークの問題を解決するとき、2つの間に大きなパフォーマンスの違いがあります。これらの問題では、Walksatはminisatよりもはるかに高速です。どうしてこれなの? この walksatの実装には、いくつかのパフォーマンスの改善があるようです- 国際SATコンテストに含まれなかった理由はありますか?


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