コンピュータサイエンス

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

2
遺伝的アルゴリズムの時間の複雑さ
遺伝的アルゴリズムの時間の複雑さをどのように決定しますか(一般的に)?可能なら。 私はこれについて多くのことを考えていました。私が持っていたすべての教えは、本質的に確率論的ではない問題の時間の複雑さを決定することに関連しています。


1
KiteのDasgupta問題からのNP完全証明
私はこの問題をアルゴリズムから理解しようとしています。S. Dasgupta、CH Papadimitriou、UV Vazirani、chapter8、Pg281。問題8.19 凧は、頂点の数が偶数のグラフである、と言います2 n2n2n、 その中で んnn 頂点のクリークを形成し、残りの んnn頂点は、クリークの頂点の1つに結合されたパスで構成される「テール」で接続されます。グラフを考えるGGG そして目標 ggg、KITE問題はカイトであり、含まれているサブグラフを求めています 2 グラム2g2gノード。KITEがNP完全であることを証明します。 この問題から始めるための指針はありますか?私はそれで完全に迷っています。

1
型レベルでの連結の表現
スタックに基づいて、連結パラダイムに従って、小さな単純な言語を作成することにより、連結プログラミングについて詳しく学びたいと思います。 残念ながら、私は連結言語とそれらの実装に関する多くのリソースを見つけていません。そのため、私の可能なことを前もって申し訳ありません。 したがって、私は言語を関数の連結の単純なシーケンスとして定義し、ASTでリストとして表しています。 data Operation = Concat [Operation] | Quotation Operation | Var String | Lit Literal | LitOp LiteralOperation data Literal = Int Int | Float Float data LiteralOperation = Add | Sub | Mul | Div 次のプログラム4 2 swap dup * +(に対応2 * 2 + 4)が解析されると、次のASTが得られます。 Concat [Lit …

1
リーグの勝敗の順位が可能かどうかを確認する
あなたは試合スケジュールのある1対1のバスケットボールリーグを主催しています。リーグの最後に、各プレーヤーにそれぞれの勝敗記録を報告させます(同点はありません)が、予定された順位表が実際に可能かどうかを確認したいとします。 たとえば、4人のプレーヤー(Alice + Bob + Carol + Dave)がいて、スケジュールは単純なラウンドロビンです。報告された順位[ A: 3-0 B: 1-2 C: 1-2 D: 1-2]および[ A: 2-1 B: 1-2 C: 1-2 D: 2-1]は可能ですが、スタンディング[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]はできません。 代わりに、スケジュールがアリス+ボブとキャロル+デイブの3対1の対戦であるとします。報告された順位[ A: 3-0 B: 0-3 C: 0-3 D: 3-0]が可能になりましたが、[ A: 3-0 B: 1-2 C: 1-2 D: 1- 2]はなくなります。 …

3
私たちが計算することができるよりもはるかに多くの問題があることを示します
計算の複雑さに関するMITのこの読みを見ていて、15:00にエリックデメインはデモに乗り出し、この質問のタイトルに何が述べられているかを示しました。しかし、私は彼の推論をたどることはできません、実際には彼が言うことはこれです:実際には関数の真理値表である0と1の 文字列として決定問題を述べることができます。 彼はさらに、決定問題はビットの無限ストリングであるのに対し、プログラムはビットの有限ストリングであり、ここまで問題はないと述べています。私が理解していないのは、この時点からの証明の継続です:決定問題はRにあります000111RR\mathbb{R} 問題を表す文字列の前に小数点を置くことができるため、実数の小数部を取得できます for example if you have 0111011010101010101... it could become x.0111011010101010101... プログラムはNN\mathbb{N}整数であり、ビットの有限文字列であるためです。私が理解できない点は、決定問題が整数ではなく実数に匹敵する可能性があるということです...つまり、「数値の前にドットを置く」という引数を使用すると、同じ理由が、これまでに生成できる可能性のあるアルゴリズムの数にも適用されますか?


3
多項式階層に関する単純な相互解釈の問題?
したがって、は、インスタンスの検証可能な小さな証人とインスタンスの検証可能な小さな証人のがある問題を表します。これはどのように機能しますかNPNPNPYESYESYESc o NPcoNPcoNPNONONO PNPPNPP^{NP} NPNPNPNPNP^{NP} c o NPNPcoNPNPcoNP^{NP} 等々?

2
「到達可能オブジェクト」は本当にNP完全な問題ですか?
私はこの論文を読んでいて、著者が定理1を説明しているところ、「到達可能なオブジェクト」(論文で定義されている)はNP完全であると述べています。ただし、これらは、2P1N SATから到達可能オブジェクトへの1方向のみの削減を証明します。これは問題がNP困難であることを証明するだけです。NPの完全性を証明するために、逆方向(2P1Nから到達可能オブジェクト)を証明する必要はありませんか?

3
行列乗算の複雑度分析のためのStrassenアルゴリズム
Strassen algの複雑さの再帰方程式は T(n)=7T(n2)+O(n2).T(n)=7T(n2)+O(n2).T(n) = 7T(\tfrac{n}{2})+O(n^2).これは私にはそれほど明確ではありません。パラメータnnnは入力のサイズであると想定されていますが、ここでは入力サイズが実際にはn2n2n^2一方で、これは行列の1次元であるようです。また、入力の各行列は4つのサブ行列に分割されるため、再帰方程式はT(n)=7T(n4)+O(n).T(n)=7T(n4)+O(n).T(n) = 7T(\tfrac{n}{4}) + O(n).

1
定数kが与えられた場合、ルートからリーフへのすべてのパスについて、そのノードのアリティの合計がkに等しい場合、最大のルート付きツリーを見つけますか?
例として、の場合に考えられるすべてのツリーを次に 示します。 各ノードには、アリティ(=子の数)が書き込まれます。k=3k=3k=3 これは動的プログラミングで解決できるはずですが、これには組み合わせの結果があったと思います(正確またはかなり細かい上限)。誰か知っていますか? 編集: ツリーのサイズは、ノードの数です。したがって、最大のツリーは、ノードの最大数を持つツリーになります。

3
線形時間の最悪の場合をどのようにカウントするのですか?
この質問とこの質問は私に少し考えさせられました。長さの配列をソートするためnnnとkkk中のユニークな要素、我々は、配列内の値の数を格納できるようにする必要があります。いくつかの提案がありますが、最悪の場合線形時間でこれを行う方法を探しています。すなわち:O(n+klogk)O(n+klog⁡k)O(n + k \log k) リストの指定されたのを有する要素別個の要素、タプルのリストを決定すべての固有の要素よう要素の数であるで。AAAnnnkkkU={(xi,ci)}kU={(xi,ci)}kU = \{(x_i, c_i)\}^kxi∈Axi∈Ax_i \in Acicic_ixixix_iAAA 私がこれまでに提案してきた(失敗した)アイデアの一部を以下に示します。 平衡型二分探索木 -これを使用すると、O(logk)O(log⁡k)O(\log k)をツリーに挿入して値を増やす必要があります。挿入後、O(k)O(k)O(k)でツリートラバーサルを実行できます。したがって、合計時間がO(nlogk)O(nlog⁡k)O(n \log k)これは遅すぎます。 ハッシュマップ -これにより、O(1)O(1)O(1) 予想される挿入、つまりO(n)O(n)O(n) 予想される時間を取得できます。ただし、これはまだO(n)O(n)O(n)最悪のケースではありません。 空の空間マッピングAAA最小要素と最大要素を見つけます。この範囲をカバーするのに十分なメモリを割り当てます(ただし、初期化しません)。このメモリを基本的にハッシュマップとして使用し、ランダムハッシュを含めて、破損したメモリにアクセスしないようにします。この戦略には問題があります。(1)失敗する可能性が非常に低い確率論的ですが、保証されていません。このようなメモリを使用すると、浮動小数点または整数の制約に制限されます。 連想配列 - ハッシュマップやBSTと同様に、使用できる他の多くの連想配列がありますが、これらの制約に一致するものは見つかりません。 たぶん私が見逃している明らかな方法があるかもしれませんが、それは潜在的に不可能かもしれないと私は思います。あなたの考えは何ですか?

2
この記事は、チューリング計算可能性が「効果的に計算可能」と同じではないことを示唆していますか?
まず、質問された場合はお詫びしますが、何も見つかりませんでした。 私はこの記事を偶然見つけました。量子コンピュータだけが解決できる問題があると言っています。私の理解では、これは直感的に、この問題は「効果的に計算可能」であることを意味するはずです。なぜなら、私たちはそれを計算する効果的で現実的な方法、つまり量子コンピューターを構築してそれを解くからです。しかし、チューリングマシン(チューリングマシンは量子コンピューターではない、と私は思いますか?)はそれを解決できないため、これはチューリング計算可能ではありません。 したがって、これは「効果的に計算可能」と「チューリング計算可能」が同じ概念ではないことを意味しますか?では、Church-Turingの論文は間違っているのでしょうか?私の直感は「いいえ」と言っています。その場合、これは非常に大きなニュースになるからです。では、そうでない場合は、なぜでしょうか? また、チューリングマシンよりも強力な計算モデルがすでに存在していることも承知していますが、それらは「理論的」に過ぎませんね。一方、量子コンピュータは物理的に構築可能です。

2
二重指数vs単一指数
調整できない4つの原則を次に示します。 二重指数時間アルゴリズムは、定数で時間で実行されますのk ∈ NO (22んk)O(22nk)O(2^{2^{n^k}})K ∈ Nk∈Nk \in \mathbb{N} 指数時間アルゴリズムは、定数でで実行されますのk ∈ NO(2nk)O(2nk)O(2^{n^k})k∈Nk∈Nk \in \mathbb{N} 前者の境界は後者よりも厳密に速く成長します。つまり、二重指数時間で実行されるが指数時間では実行されないアルゴリズムが存在します。 二重指数範囲にを適用するとは、前述の指数範囲内にあります O (2 2 n k)= O (2 2 n k)= O (2 2 n k)abc=abcabc=abca^{b^c} = a^{bc}O(22nk)=O(22nk)=O(22nk)O(22nk)=O(22nk)=O(22nk)O(2^{2^{n^k}}) = O(2^{2^{nk}}) = O(2^{2nk}) 私は私が実行されているように、指数時間アルゴリズムの定義に関連するいくつかの微妙行方不明です感じではなくが、私はないです繊細さがどこにあるかを正確に確認してください。O (2 n)O(2poly(n))O(2poly(n))O(2^{\mathrm{poly}(n)})O(2n)O(2n)O(2^{n})

2
自己参照なしで問題を停止する:なぜこの議論は十分ではない(またはそうならない)のですか?
私は、ホールディングプロブレムプルーフのアイデアを可能な限りアクセスしやすい方法で説明する方法を見つけようとしています(学部生のCS学生に)。私が見つけた最も単純な議論はこれです。これがまさに私が目指している治療スタイルです。ただし、自己参照(特に、プログラムがそれ自体で停止するかどうかのチェック)は、最も教訓的ではありません。 証明スケッチとして私が疑問に思っているのは、これ以上単純化できず、次のように言えない理由H(P,I)です。停止する場合にtrueでP(I)停止し、それ以外の場合はfalseで停止する停止問題のプログラムを想定すると、プログラムを作成できます。フォームの: def Q(J): if H(Q,J) then loop forever else halt ...停止問題が有効なプログラムである場合にのみ有効なプログラムです。次に、次のように質問できます。H(Q,J)任意の値に対して何を返す必要がありJますか?両方の可能性に矛盾があり、の存在によりH矛盾したプログラムを構築できるQため、このような形式のプログラムはH存在できないと結論付けます。 プログラムQが現在の入力で停止するかどうかをチェックする(そしてその逆を行う)という点で、まだいくつかの自己参照がありますが、私にとって、これは、呼び出しを必要とする状況を設定するよりもはるかに直感的ですフォームP(P)やH(P,P)など。しかし、私はこの単純な引数が使用されるのを見たことがありません。したがって、私の質問は次のとおりです。 上記の議論は、停止問題の証明(スケッチ)として十分ですか? もしそうなら、なぜこれほど多くの引数は、フォームの混乱のステップに行くのですP(P)かH(P,P)?(式から重要でない「入力」を削除するだけですか?) そうでない場合、何が欠けていますか? このトピックには、次のようなさまざまな関連する質問があります。 自己参照なしで問題を停止する 対角化よりも停止問題の決定不能性の直感的な証明はありますか? また、ベリーのパラドックスに基づいた証明についての言及も見つかりました。これは非常に魅力的です。それでも、上記の特定の引数が機能するかどうかを自分で納得させることができませんでした(たとえ自分の理解のためだけでも、私はおそらく何か愚かなことを逃していると感じ、それが何であるか知りたいと思っています)。

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