理論計算機科学

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

1
一次命令の検証または改ざんの時間/空間要件
ただし、L。バーマンは、加算と比較ではなく乗算を使用する実数に関する1次ステートメントを検証または改ざんする問題はEXPSPACEにあることを証明しました。加算比較と乗算を使用する実数に関する一次ステートメントを検証または改ざんするのにどれほどの時間またはスペースが必要になるかは示されましたか?

1
リソースが制約された最短パス(RCSP)のNPハードなグラフのクラスはどれですか。
私が取り組んでいる問題を、既知のNPハード問題にリンクしようとしています。リソースに制約のある最短経路問題として問題をモデル化できると思います。ただし、グラフの構造は完全に恣意的ではありません。したがって、RCSPが困難になる時期を知ることは有用です。DAG、平面DAG、または次数に制限のあるDAGは難しいですか?どんな助けでも大歓迎です!

1
次の組み合わせの問題に役立ちますか?
私はで構成されているそれぞれがビットベクトル、ビットを。で、番目のベクトルの番目のビット示しましょう。各ビットベクトルは、次の2つの制限があります。mメートルmmメートルmmv私[ j ]vi[j]v_i[j]jjj私iiI 、J ∈ [ 1 、M ]i,j∈[1,m]i,j \in [1, m]v私viv_i v私[ J ] = 0 ∀ J ≥ I vi[j]=0 ∀j≥iv_i[j] = 0\ \forall j \geq i。 vi[j]=1 ∀j&lt;i−mlog(m)vi[j]=1 ∀j&lt;i−mlog(m)v_i[j] = 1\ \forall j < i - \frac{m}{log(m)}。 上記の制限に該当しないビットはまたはいずれかですが、そのような場合、の数は最大です。 1 0 12000111000121212 これで、ビット別のビットベクトル。最初に、すべてのビットが設定されます。よる「適用に」私はビットごとの実行の間の平均とし、その後に結果を格納する。入力で与えられたベクトル繰り返し適用した後のの進化に興味があります。 、M 、M 、S 1 V …

1
最大マッチング問題の興味深いバリアント
グラフ与えられた場合、従来の最大マッチング問題は、各エッジ、に対してエッジ stの最大サブセットを選択することです。M (U 、V )∈ MのD (U )= D (V )= 1G (V、E)G(V,E)G(V,E)MMM(U 、V )∈ M(u,v)∈M(u,v) \in Md(u )= d(v )= 1d(u)=d(v)=1d(u)=d(v)=1 誰かが次の亜種を研究しましたか?各エッジ、が成り立つ、ここでcはa絶え間ない。この制約を次数制約と呼びます。((D (U )&lt; C ) ∨ (D (V )&lt; C ))(U 、V )∈ M(u,v)∈M(u,v) \in M((d(u )&lt; c ) ∨ (d(v )&lt; c ))((d(u)&lt;c)∨(d(v)&lt;c))\left( \left(d(u) < c\right) \lor …

2
幾何学的複雑性理論における事後選択
コンテキスト:私が理解しているように、幾何学的複雑度理論では、障害物の存在は、いわば、検討中の下限問題の明示的なハード関数の効率的な計算回路が存在しないことの証明として機能します。障害物には、短く、確認しやすく、構築しやすいという他の前提条件がいくつかあります。 質問:私の質問は、多項式時間で解けると推測している問題があるということです。次に、この問題に障害物がないことをどのように示すことができますか。つまり、障害物が存在しない場合、問題を効率的に計算でき、それは確かに多項式時間です。 アプローチ:この主張では間違っているかもしれませんが、障害物がないことを示すことは、NPの問題を、複雑さがまだ不明である他の問題に標準的に削減することと同等であり、それら自体がNPにあるという証明に相当します。したがって、その場合、可能であれば、NP問題を検討中の問題に縮小しようとすると障害が存在することを示すことができます。そのようにすると、軽減は困難です。また、これらすべてにおいて事後選択はどのような役割を果たしますか?障害物が存在しないことを単に後選択することは可能ですか?私のアプローチと質問に正確な記述がないことを感謝し、ご容赦ください。 もう1つの例として、Pであることがわかっている問題Xを考えてみます。次に、その問題が多項式時間で解けることを知らなかったとします。その場合、次のアサーションを作成できる可能性があります。 Xの計算には障害物が存在しないため、クラスPにあると言えます。 ここからの問題は、障害が存在する場合でも、Xが多項式時間内にないことを示す障害の簡単な(計算による)発見です。しかし、逆に行くこと、つまり障害物がないことを見つけることは困難な作業です。

2
セットのコレクションからセットのサブセットを見つける
のサブセットのコレクションを表し、次の操作をサポートするためにどのデータ構造を推奨しますか?{1,…,n}{1,…,n}\{1, \dots, n\} Sinsert(S)insert(S)insert(S):コレクションにを挿入します。SSS S ' S ' ⊂ Squery(S)query(S)query(S):になるようなコレクションにが存在する場合はtrueを返し、それ以外の場合はfalseを返します。S′S′S'S′⊂SS′⊂SS' \subset S 私の主な基準は、実用的な時間効率です。

1
多項式反転の複雑さを持つ一方向関数
トラップドアのようなコードの複雑多項式時間れる機能があるnk1nk1n^{k_{1}}及び(秘密鍵なし)の複雑さを反転は、入力長の多項式関数でありと(あり、は無条件で未満に制限されていることが証明可能です)?場合、そのような関数の意味は何ですか?nk2nk2n^{k_{2}}k1&lt;&lt;k2k1&lt;&lt;k2k_{1} << k_{2}k1=2k1=2k_{1} = 2k2k2k_{2}100010001000VNP=VPVNP=VPVNP = VP

1
貪欲でない(消極的な)数量詞を含む正規表現は、それらを使用しないように書き換えることができますか?
貪欲な量指定子、貪欲でない量指定子を含む正規表現言語について考えてみましょ、順序付けられた代替、および文字クラス。(これは本質的にPCREのサブ言語であり、後方参照、ルックアラウンドアサーション、またはその他のより洗練されたビットはありません。)∗?∗∗*∗?∗?{*}? 文字列正規表現の一致 は、半分開いた間隔であり、は、。R s = s 0 … s n N s a 0 … s a 1 − 1 R[ a0、a1)[a0、a1)[a_0,a_1)RRRs = s0… sんs=s0…sんs = s_0\dots s_nNN\mathbb{N}sa0… sa1− 1sa0…sa1−1s_{a_0}\dots s_{a_1-1}RRR あるマッチを他のマッチよりも良くするものを再帰的に定義します。一致正規表現のためのの文字列には、より良い別の一致よりも場合又は、もしと:Ra = [ a0、a1)a=[a0、a1)a = [a_0,a_1)RRRa 0 &lt; b 0 a 0 = b 0b = [ b0、b1)b=[b0、b1)b = …

1
TCSの論文や会議のレフェリーになる方法
生物物理学から、通常はTCSジャーナルや会議で発表する混合チームに何らかの形で移行しました。資金を得るために、私が住んでいるヨーロッパの国では、これらの分野に関する論文や会議を紹介したことを履歴書に示すことをお勧めします。私は30以上の出版物を持っていますが、これについて本当に考えたことはありません。だから私の質問は、どうすればこれらの場合にレフェリーになることができますか?

2
ディペンデンシーグラフからの冗長なエッジの削減
多くの冗長エッジを含む依存関係のDAGがあります(以下の例を参照)。最小限のサブグラフを見つける「クイック」アルゴリズム(つまり、数千のノード/エッジを持つグラフを処理できる)が必要です。 例えば: A -&gt; B -&gt; C A -&gt; C つまり、AはBの前提条件であり、BはCの前提条件であり、AもCの前提条件です。この場合、A-&gt; Cは冗長です(BはCに到達するためにすでに必要であり、AはBに到達するために必要なので) 。 アルゴリズムを研究してからしばらく経ちましたが、どこから始めればよいかわかりません。 ちなみに、アルゴリズムがグローバル最小値、ローカル最小値を見つけることが重要であることは重要ではありません(エッジ削減は、処理の次の段階のランタイム最適化にすぎません)。 また、これはプログラミングではなくCS QAであることに気づきましたが、私のプログラムはPythonで書かれているため、ご存知の場合に備えて、この削減を行うためのpythonモジュールまたはオープンソースについて学ぶことができれば幸いです。 前もって感謝します!

1
PCPの定理のDinurの証明における次数低減ステップ
Dinurの証拠の程度低減ステップにおいて、入力されたグラフグラフに変換されるG 'の各頂点置換することにより、V ∈ V (Gの)頂点のセットによって、CのL O U dは(V )、その結果、| c l o u d (v )| = d e g r e e G(v )、そして次数dの展開グラフをc l oに課すGGGG′G′G'v∈V(G)v∈V(G)v \in V(G)cloud(v)cloud(v)cloud(v)|cloud(v)|=degreeG(v)|cloud(v)|=degreeG(v)|cloud(v)| = degree_G(v)すべてについて、V ∈ V (G )。これにより、 G ′はd + 1の通常のグラフになり、この構造により、ギャップは一定の係数でのみ減少します。代わりに各クラウドにサイクルを課すとどうなるのだろうと思っていましたか?ギャップの落ち込みを抑えようとしたが、できなかった。では、このステップで証明は壊れますか?cloud(v)cloud(v)cloud(v)v∈V(G)v∈V(G)v \in V(G)G′G′G'

1
凸性と効率的なアルゴリズム。
[2011年7月21日編集:他の例を求めるために質問を編集しました] この質問は、ヒューリスティックな観察の文書化された議論またはより多くの例を求めています。 効率的なアルゴリズムを認めるいくつかの数学的問題は、本質的に凸状であるように見えます。私は線形および半定プログラムと、これらに帰着するさまざまな組み合わせ問題を考えています。 まず、凸型/接続型の場合の効率的なアルゴリズムを認める他の問題のファミリーはありますか?(論理理論の決定手順の例に特に感謝します)次に、「多くの効率的なアルゴリズムの下に潜むことは凸構造である」などの意見を論じている記事または記事のセクションへのポインターをいただければ幸いです。 [編集、2011年7月21日:以下を追加。] いくつかの説明を追加したいと思います。以前に含めなかったのは残念です。私は論理的な決定問題に興味があります。いくつかの論理的な問題の接続部分について、効率的な決定手順が存在するように思えます。2つの例を示します。 量指定子のない1次理論の効率的なソルバー(等価のSMTソルバー、解釈されていない関数との同等性、差分演算など)は、通常、論理積フラグメントの効率的なソルバーを備えており、さまざまな手法を使用して分離と否定に対処します。プログラムの静的分析では、一般的に使用される(そして効率的な)抽象化は、整数間隔、アフィン等式、八角形、または多面体に基づいています。述語ベースの抽象化とプログラム検証には、デカルト抽象化と呼ばれるものがあります。これは、任意のブールの組み合わせではなく、述語の結合を直感的に持つことです。これらのすべてのケースは、問題の接続部分を利用して効率を上げることについてであるように私には見えます。 線形の実数演算の1次理論の接続部分は、凸多面体を表現できます。これが私が最初に凸型プログラミングについて尋ねた理由です。 (理論的または実用的な意味で)効率的な解決策が凸または連言の副問題に基づいている他の問題や例について知りたいです。別の一般的な条件がある場合(Sureshはサブモジュール性について言及しています)、その条件と、その条件を悪用するソリューションの問題について言及してください。

1
順序付きリストを認識するためには、どのような言語が必要ですか?[どうやらマルチヘッドオートマトン]
「1 2 3 4 5 6」や「14 15 16 17」などの文字列(「1 3」ではない)を含む言語(アルファベット0〜9およびスペース)を認識する問題を考えています。 これは、要素が順序付きリストに含まれている必要がある一般的な解析タスクの作業中に発生しました。その言語の残りの部分を解析することは規則的であるが、この部分は明らかに不規則であることに私を驚かせました-たとえば、Aが任意の文字列0-9である言語A1A2を認識できます。実際、内容に依存しているように見えます(そして、ポンピングレンマによってコンテキストフリーではありません)。 私の最初の質問:その表現力をよりよく表す、文脈依存型と文脈自由型の間に(かなりよく知られている、つまりこの問題のためだけに定義されていない)言語のクラスはありますか?私はAhoのインデックス付き言語について読みましたが、これらがそのクラスでさえも強力であることは(私には!)明白ではありません。 2つ目の質問は非公式です。この言語は解析が簡単であるように見えますが、それでも階層が非常に高いです。同様の例に出くわすことは一般的ですか?それらに対処する標準的な方法はありますか?「通常の」言語の包含と互換性のない言語のクラスの代替グループはありますか? これを考える私の理由は簡単です。最初の数値の終わりに到達するまで読み取り、次の数値が続くかどうかを確認するなどして、言語を確定的に解析できます。特に、O(n)スペースでO(n)時間で解析できます。あまり問題なくスペースを減らすことができると思います。しかし、通常の言語でこの種のパフォーマンスを実現するには、コンテキストフリーはもちろんのこと、十分に困難です。O (n−−√)O(ん)O(\sqrt n)

4
多項式と指数のソリューション、および小さなフットプリントの問題の例?
私は今秋、アルゴリズムクラスを教えるときに「実験」を実行する予定です。非常に古い、制限されたコンピューター(主な制限要因はおそらくメモリ(おそらく16KB))と1つのモダン/標準のコンピューターです。遅いコンピューターで実行されている多項式の問題と、速いコンピューターで指数関数の問題を解決するという考えです(そしてもちろん、遅いものが勝ちます)。 問題は、適切な問題を見つけることです。非常に限られたサイズのインスタンスでは実行時間が実際に異なる(そして、好ましくは、データ構造が非常に単純な、プリミティブコンピューターが…プリミティブである)問題です。もともとはソートアルゴリズム(たとえば、2次と線形)について考えていましたが、(bogosortを使用した場合を除き)非常に大きなインスタンスが必要になります。 現在、私が考えた唯一の(かなり退屈な)例は、フィボナッチ数を賢く愚かな方法で計算することです。少し疲れている/使いすぎない、できれば(半)明らかに役立つ何かがあればいいでしょう。アイデア/提案はありますか?

2
これは既知の組み合わせ最適化/スケジューリング問題ですか?
異なる色の「アイテム」を保持するスタックと、同じ色の複数のアイテムを一度に処理できるマシンが与えられます。各ステップで、各スタックの最上部から1つのアイテムを削除してマシンに配置できます(そのため、マシンは1ステップで最大n個のアイテムを処理できます-そのためには、すべてのスタックに同じ色のアイテムが必要です上に)。目標は、すべてのアイテムを最小限の時間で処理することです。nnnnnn 入力例: 可能な解決策の1つは、貪欲なアルゴリズムです。各ステップで、できるだけ多くのアイテムを取り出し、それらをすべてマシンに詰め込みます。残念ながら、貪欲なアルゴリズムは最適ではありません。入力例に対して次のスケジュールが生成されます。 最適なスケジュールは次のとおりです。 何らかの形の状態空間検索を使用する予定ですが、より問題固有で効率的なアプローチがあるでしょうか?関連文献へのリンクは高く評価されています。

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