コンピュータサイエンス

コンピュータサイエンスの学生、研究者、実務家のためのQ&A

1
線形制約で凸関数を最大化する
fを最大化 (x)A x = bの対象 最大化 f(バツ)従う あバツ=b\text{maximize } f(\mathbf{x}) \quad\text{subject to } \mathbf{Ax} = \mathbf{b} どこ f(x)= ∑i = 1N1 + x4私(ΣNi = 1バツ2私)2−−−−−−−−−−−−−⎷、f(バツ)=Σ私=1N1+バツ私4(Σ私=1Nバツ私2)2、f(\mathbf{x}) = \sum_{i=1}^N\sqrt{1+\frac{x_i^4}{\left(\sum_{i=1}^{N}x_i^2\right)^2}}, 及び A ∈ R M × Nをx =[ x1、x2、。。。、xN]T∈ RN× 1バツ=[バツ1、バツ2、。。。、バツN]T∈RN×1\mathbf{x} = [x_1,x_2,...,x_N]^T \in \mathbb{R}^{N\times 1}A ∈ RM× Nあ∈RM×N\mathbf{A} \in \mathbb{R}^{M\times N}。 が凸型であり、次の形式であることがわかります√fff。またことを示すことができるFがで囲まれている[ …


4
GCD = 1の最小サブセットのサイズを見つける
これは、ポーランドの大学プログラミングコンテスト2012の練習セッションの問題です。メインコンテストの解決策は見つかりましたが、この問題の解決策はどこにも見当たりません。 問題は次のとおりです以下の異なる正の整数のセットが与えられたら、1以外の公約数を持たない最小サブセットのサイズを見つけますは最大で500であり、解が存在すると仮定できます。10 9 m NNNN10910910^9mmmNNN 私はそれを示すために、管理。私の推論は次のとおりです。サイズがで、gcd = 1の最小サブセットがあるとします。次に、すべての9サブセットはgcd> 1でなければなりません。そのようなサブセットは正確に10あり、それらのgcdはペアワイズでなければなりませんcoprime。これらのgcdをとすると、i \ neq jに対してになります。その場合、Sの最大数はg_2g_3 ... g_ {10}です。しかし、g_2g_3 ... g_ {10} \ ge 3 \ times5 \ times7 \ times11 \ times ... \ times29 = 3234846615> 10 ^ 9、これは矛盾です。S | S | = 10 S 1 < g 1 < g 2 …

7
公開された研究論文はどこにありますか?
コンピュータサイエンスの博士号を取得しようと考えている人の視点から来ています。 博士課程に行くときに何に焦点を当てるかを決めるのに苦労しています。academia.SEに関するこの質問も参照してください。 だから私は、どのような研究が行われていて、どの研究論文が発表されているかを読んで最新に保つことは、....インスピレーションの良い情報源だと思いますか?プラス知っている良い知識。 最近公開されたCSの研究論文を見るには、中央の場所/データベース/良い出発点がありますか、それともすべて、作成された大学のWebサイトの奥深くに隠れていますか?

1
複数日の割り当て問題
割り当て問題に帰着できる問題があります。(前の質問で、その方法を見つけました。) つまり、エージェントのセットとタスクのセットT、およびコスト関数c (i 、j )があることを意味します。総コストが最小になるように割り当てを見つける必要があります。あAATTTc (i 、j )c(i,j)c(i,j) ハンガリーのアルゴリズムは、少なくともにおける最適解を見つけることができます。いいですね。O (n4)O(n4)O(n^4) 私の新しい問題は:与えられた日数があります。私は毎日の割り当て問題を解決する必要があるので、すべてのタスクが毎日実行され、エージェントが同じタスクを2回実行することはありません。 私が試した内容:ハンガリーのアルゴリズムを毎日個別に実行し、前日の結果に基づいて可能な組み合わせの数を制限できます。しかし、これにより、後日、実現可能な解決策を見つけることが不可能になる可能性が最も高いいくつかの日に問題が発生します。 別のアイデアは、ローカル検索を何らかの方法で統合して、前日に行われた決定を変更することです。でも、これに頼ることはできないと思います。 私が直面しなければならない問題のインスタンスはどこかにあります。コストマトリックスC (i 、j )には、同じ値が多数含まれます(たとえば、ほとんどが1または無限大で、2または3しかありません)。したがって、ハンガリーのアルゴリズムでは、1日のさまざまな最適解を作成するための多くのスペースがあります。| A | = | T| =500|A|=|T|=500|A| = |T| = 500C(私、j )C(i,j)C(i,j) 問題の適切な解決策を見つけるためのアイデアやアドバイスを喜んで提供します。前もって感謝します。

1
相対化の背後にある直観
私は計算の複雑さのコースを受講します。私の問題は、相対化法が理解できないことです。残念ながら、多くの教科書で少し直感を見つけようとしましたが、これまでのところ成功していません。私が一人で続けることができるように誰かがこのトピックに光を当てることができれば幸いです。以下の文章は質問であり、相対化についての私の考えですが、それらは議論をナビゲートするのに役立ちます。 相対化は、対数化と比較されることがよくあります。対角化は、可算セットと非可算セットを区別するのに役立つ方法です。対N Pの質問は対角化では解決できないというのは、どういうわけか相対論から来ています。なぜ相対化が対角化の役に立たないことを示すのか、そしてそれが役に立たないのであればなぜ実際に役に立たないのか、私には本当にわかりません。PPPNPNPNP オラクルのチューリングマシン背後にある考えは、最初は非常に明確です。しかし、それがN P AとP Aになると、直感は消えます。Oracleは、特別な言語用に設計されたブラックボックスであり、Oracleの入力の文字列が時間内の言語であるかどうかの質問に答えます。したがって、TMの中核はオラクルであり、他のすべてはそれほど重要ではありません。P AとN P Aの違いは何ですか、両方のオラクルが時間1で機能すると考えていました。MあMあM^ANPあNPあNP^APあPあP^APあPあP^ANPあNPあNP^A 最後に、P B B N P Bとなるオラクル存在を証明します。私はいくつかの教科書で証明を見つけました、そしてそれらのすべてで証明は非常にあいまいなようです。Sipserの第9章「複雑さの紹介」を使ってみました。扱いにくい、そしてすべての多項式時間オラクルTMs M iのリストの構築のアイデアを得ませんでした。BBBPB≠ NPBPB≠NPBP^B \neq NP^BM私M私M_i これは多かれ少なかれ私が相対化について知っていることすべてです。誰かがトピックに関する彼/彼女の考えを共有することを決定した場合、私は感謝します。 補遺:ある教科書で言語の例を見つけました(計算の複雑さ:Boaz Barak Sanjeev Aroraによる現代のアプローチ。定理3.7。74ページ)。U B = { 1 n:s o m e s t r i n g o f l e n g t h n i …

2
高速k不一致文字列マッチングアルゴリズム
高速なk不一致文字列マッチングアルゴリズムを探しています。長さmのパターン文字列Pと長さnのテキスト文字列Tが与えられた場合、Pが最大でk個の不一致を持つTの部分文字列と一致するすべての位置を見つけるための高速(線形時間)アルゴリズムが必要です。これは、k差問題(編集距離)とは異なります。不一致は、部分文字列とパターンの最大k個の位置に異なる文字があることを意味します。本当に必要なのはk = 1(最大で1つの不一致)だけなので、k = 1の特定のケースに対する高速アルゴリズムでも十分です。アルファベットのサイズは26(大文字と小文字を区別しない英語のテキスト)であるため、スペースの要件はアルファベットのサイズに比例して大きくなりすぎないようにする必要があります(たとえば、FAASTアルゴリズムは、アルファベットのサイズで指数関数的にスペースを取るなど)。タンパク質および遺伝子配列にのみ適しています)。 ダイナミックプログラミングベースのアプローチは、最悪の場合O(mn)になる傾向があり、遅くなります。私はこのためのボイヤー・ムーアアルゴリズムの変更があると信じていますが、私はそのような論文を手に入れることができません。私は学術雑誌や出版物にアクセスするためのサブスクリプションを持っていないので、すべての参照はパブリックドメインにある必要があります。 私は、ポインタ、または自由に入手できるドキュメントへの参照、またはこの問題のアルゴリズム自体に大いに感謝します。


1
統合とSATソルバー
統一は満足度の問題を解決するプロセスであるとウィキペディアで読みました。 同時に、そのようなソルバーが「SATソルバー」または「SMTソルバー」と呼ばれていることも知っています。それで、同じものに対して異なる名前ですか? それらが異なると言うなら、私の扱いの欠陥を指摘してください。

1
TCSメジャーの数学
理論計算機科学の専攻を探しています。具体的には、複雑性理論と確率的オートマトン理論に興味があります。私は1年間で卒業しているので、次の2学期を引き継ぐのに役立つと思う数学の高度なコース(たとえば、ガロア理論や調和解析など)はどれですか。どうして?

1
さまざまな句の異なる変数
解決定理の証明では、通常、異なる節の変数は異なると想定されます。これは自動的に行われることではありません。実装するには、かなりの追加コードと計算が必要です。それを踏まえて、私はそのためのテストケースを探しています。 問題は、これまでに試したすべてのテストケースで、違いがないことです。おそらくそれは異常なエッジケースでのみ重要です。以下のようウィキペディアプットそれを、「異なる句内の変数は異なっている...さて、XとYはとにかく同じ変数になることを第二節手段にQ(Y)との最初の句でQ(X)を統一します。」 異なる句が同じ変数を使用する場合、実際に間違った答えを与える既知のテストケースはありますか?

1
編集距離計算のためのマイクロ最適化:それは有効ですか?
上ウィキペディア、編集距離のためのボトムアップの動的プログラミングスキームの実装が与えられています。それは完全に定義に従っていません。内部セルはこうして計算されます: if s[i] = t[j] then d[i, j] := d[i-1, j-1] // no operation required else d[i, j] := minimum ( d[i-1, j] + 1, // a deletion d[i, j-1] + 1, // an insertion d[i-1, j-1] + 1 // a substitution ) } ご覧のとおり、一致がある場合、アルゴリズムは常に左上隣から値を選択し、一部のメモリアクセス、ALU操作、および比較を保存します。 ただし、削除(または挿入)の結果、値が小さくなる可能性があるため、アルゴリズムはローカルで正しくありません。つまり、最適性の基準に違反しています。しかし、おそらく間違いは最終結果を変えない-それはキャンセルされるかもしれない。 このマイクロ最適化は有効ですか、そしてなぜ(そうではない)のでしょうか?

3
CLRSのd-aryヒープ問題
次の問題(質問1〜3)を解決しているときに混乱しました。 質問 D進ヒープは、バイナリヒープ似ているが、(一つの可能な例外を除いて)は、非リーフノードが有するD子供の代わりに、2人の子供。 配列のd- aryヒープをどのように表現しますか? n要素とd要素のd- aryヒープの高さは、nとdで何ですか? d -ary max-heap でのEXTRACT-MAXの効率的な実装を提供します。実行時間をdおよびnで分析します。 d -ary max-heap でのINSERTの効率的な実装を提供します。実行時間をdおよびnで分析します。 INCREASE-KEY(A、i、k)の効率的な実装を提供します。これは、k <A [i] = kの場合にエラーにフラグを立て、d進行列のヒープ構造を適切に更新します。実行時間をdおよびnで分析します。 私の解決策 配列A [ a1。。aん]あ[a1。。aん]A[a_1 .. a_n] ルートレベル1レベル2レベルk:a1:a2… a2 + d− 1:a2 + d… a2 + d+ d2− 1⋮:a2 + ∑i = 1k − 1d私… a2 + ∑i = 1kd私− 1ルート:a1レベル1:a2…a2+d−1レベル2:a2+d…a2+d+d2−1⋮レベルk:a2+Σ私=1k−1d私…a2+Σ私=1kd私−1\qquad …


2
時間と空間の特定の数の決定(最悪の場合)
\newcommand\ldotd{\mathinner{..}}と仮定する整数であるようにすべてに対して、それぞれの出現特定の数を除く数は奇数です。発生が偶数である番号を見つけてください。A[1..n]A[1..n]A[1\ldotd n]0≤A[k]≤m0≤A[k]≤m0\le A[k]\le m1≤k≤n1≤k≤n1\le k\le nA[1..n]A[1..n]A[1\ldotd n] あり私たちはソート:アルゴリズムに、ブレーク要素の値がある多くの部分、には、同じため、各要素の出現回数を数えることができます。Θ(nlogn)Θ(nlog⁡n)\Theta(n\log n)A[1..n]A[1..n]A[1\ldotd n]B[1..n]B[1..n]B[1\ldotd n]B[1..n]B[1..n]B[1\ldotd n] 最悪の場合 -time-and- -spaceアルゴリズムを見つけたい。O(n)O(n)O(n)O(n)O(n)O(n) するとおよび、したがって、基数ソート許容されません。 ように、バイナリビット演算がます。m=Ω(n1+ϵ)m=Ω(n1+ϵ)m=\Omega(n^{1+\epsilon})ϵ>0ϵ>0\epsilon>0\DeclareMathOperator{\xor}{xor}A[1]xorA[2]A[1]xor⁡A[2]A[1]\xor A[2]

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