コンピュータサイエンス

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

2
{a ^ ib ^ jの文脈自由文法| i、j≥0; i≠2j}
誰かがこれを助けることができます: L={aibj∣i,j≥0 and i≠2j}L={aibj∣i,j≥0 and i≠2j}L=\{a^ib^j \mid i,j \ge 0 \text{ and } i \ne 2j\} この言語の文法を書こうとしているのですか?これを行う方法がわかりません。私はこれを試しました: S→aaAb∣aAA→aA∣aS→aaAb∣aAA→aA∣aS \rightarrow aaAb \mid aA \\ A \rightarrow aA \mid a

2
弱くて強い完全性
疑似多項式アルゴリズムは、それが解決する問題について何を教えてくれますか?アルゴリズムが入力長で指数関数的で、入力値で多項式である場合、実行時間がどのように改善されるかわかりません。それでは、この指数関数から多項式へのシフトをどのように説明しますか?

2
時間内にサフィックス配列を構築するアルゴリズム
最近、suffix配列を使用していて、理解しやすいsuffix配列を作成するための効率的なアルゴリズムを見つけることができません。多くのサイトでアルゴリズムがあることを見てきましたが、多くの重要な詳細が省略されているため、理解できません。Top Coderに例があります。O(nlog2n)O(nlog2⁡n)O(n \log^2 n) 誰かが私に理解しやすいサフィックス配列構築のための効率的なアルゴリズムを紹介してくれませんか?

2
NAE-HORN-SATはPまたはNPハードですか?
NAE-HORN-SAT問題の複雑さ(すべてが同じというわけではありません)を知りたいです。HORNSATは完全であることはわかっていますが、一方、NAE-SATは完全です。NAE-HORN-SAT問題について何が言えるか知りたい。問題を正式に定義しましょう:PP\mathsf{P}NPNP\mathsf{NP} 与えられた:1つのブール式ϕϕ\phiがCNFで与えられ、各句には最大で1つの正のリテラル(HORNプロパティ)があります。 質問:\ phiの入力変数にϕϕ\phi、少なくとも1つのFalseと少なくとも1つのTrueリテラル(NAEプロパティ)があるような割り当てはあります か? 注意: 正のリテラル:任意の変数を直接、 負のリテラル:変数の否定。 Trueリテラル:リテラルは任意の割り当てによってブールTrueに割り当てられ、 Falseリテラル:リテラルは、割り当てによってブールFalseに割り当てられます。 シェーファーの二分法の定理によると、この問題はPP\mathsf{P}または\ mathsf {NP}のいずれかにあるはずNPNP\mathsf{NP}です。HORNSATからこの問題への1つの多項式削減を見つけるだけで、実際には何も証明されません。この問題を解決する多項式時間アルゴリズムはありますか? または、この問題が\ mathsf {NP}困難であることを証明する方法はありますNPNP\mathsf{NP}か?これについて何か考えはありますか?

1
する
それはのために知られています f(n)≥lognf(n)≥log⁡nf(n) \geq \log n、 NSPACE(f(n))=coNSPACE(f(n))NSPACE(f(n))=coNSPACE(f(n))\mathsf{NSPACE}(f(n)) = \mathsf{coNSPACE}(f(n))。 仮に f(n)&lt;lognf(n)&lt;log⁡nf(n)<\log n?それらも等しいですか?

3
TMが言語を受け入れることと決めることの違いは何ですか?
率直に言って、私は今のところその素材にとても不快です。理解できることはいくつかありますが、まだ理解できないことはたくさんあります。 私の最初の課題は、言語を受け入れるTMの完全な説明を1つの質問(私は方法を知っています)で私に尋ねることです L={x∈{0,1}∗∣x is divisible by 4}L={x∈{0,1}∗∣x is divisible by 4}L = \{ x \in \{0,1\}^* \mid x \text{ is divisible by } 4 \}。で終わるバイナリ文字列は4で割り切れるので、はこのTMが受け入れる言語です。000000{00,100,1100,1000,11100,11000,10100,10000,…}{00,100,1100,1000,11100,11000,10100,10000,…}\{00,100,1100,1000,11100,11000,10100,10000,\dots\} しかし、(非)決定可能性のトピックについては、すべての文字列を受け入れるTMとその言語からの文字列のみを受け入れるTMが存在し、その同じTMがすべての文字列とその言語にない文字列のみを拒否する場合、言語は決定可能であることを知っています。 どちらが質問につながりますか:言語を受け入れ、決定するチューリングマシンの違いは何ですか?

2
急成長中の忙しいビーバー機能
標準のビジービーバー機能は、テープ上のゼロ以外のシンボルの最終カウントに注意を引きます。代わりに、計算の任意の時点でテープに現れる最大量のゼロ以外のシンボルを調べることができます。この関数の下限は、上限は(最大シフト関数)です。そのような機能についての研究はありましたか?もしそうなら、これの既知の値はありますか?Σ(n)Σ(n)\Sigma(n)S(n)S(n)S(n)

1
グラフのオイラー化のための非力アルゴリズムはありますか?
いくつかの無向、非加重、接続された、そして潜在的に並列化されたグラフを考える GGG、オイラー回路は、すべての頂点の次数が偶数である場合に構築されます。GGG 奇数の次数の頂点が2つ以上あるグラフ(2の倍数のみが存在する場合があります)では、グラフを「乳化」し、必要に応じて、奇数の頂点を他の頂点を介して追加のエッジで接続する必要があります。 オイラー化の最適なケースは、エッジのみの構成です。ここで、は奇数の頂点の数ですが、これは、各奇数の頂点に隣接するパートナーが存在する場合にのみ該当するため、両方の頂点を1つのエッジと両方を均等にします。n / 2n/2n/2んんn そうは言っても、ほとんどのグラフは以上のエッジを必要とします。人間として、私たちは常に互いに隣接している奇数の頂点の各ペアを選択し、残りに対して試行錯誤を使用することによってグラフをオイラー化する傾向があります。ただし、これは常に機能するとは限りません。n / 2ん/2n/2 例えば、以下のグラフに、選択すると、隣接する奇数の頂点の対の間のエッジを追加する及び使用接続するエッジを Eulerizationすなわちコストで結果を縁。ただし、代わりにとを接続することを選択すると、隣接する奇数の頂点を使用しなかったとしても、エッジを使用するオイラー化が生成されます。1 ↔ 21↔21\leftrightarrow 25553 ↔ 43↔43\leftrightarrow 46661 ↔ 41↔41\leftrightarrow 42 ↔ 32↔32\leftrightarrow 3555 いくつかのエッジと接続する必要がある奇数の頂点のペアの数は有限であるため、この問題は少なくともブルートフォースで解決できることは確かです。具体的には、(Mathematicaによると)で、接続する奇数の頂点のペアの可能なセットがあります。各頂点をそのパートナーにリンクして、それぞれを通過することができます(無向グラフで2つの頂点間の最短経路を見つけることは、おそらくそれ自体の課題であり、Wikipediaがに時間の複雑さを与えることはできません)。2n / 2Γ (n + 12)/π−−√2ん/2Γ(ん+12)/π2^{n/2} \Gamma(\frac{n+1}{2})/\sqrt{\pi} 結局、取引全体はおそらく多項式時間、指数時間、階乗時間で実行され、かなり厄介です。パスをオイラー化するアルゴリズムがあるかどうかについて、いくつかの基本的な調査を行いましたが、それを見つけることができないようです。 グラフィック用のMathematicaコード: GraphPlot[ {1 -&gt; 2, 2 -&gt; 5, 5 -&gt; 3, 3 -&gt; 6, 6 -&gt; 3, 6 -&gt; …

3
解決は完全ですか、それとも反駁のみですか?
通って行くいくつかの知識表現のチュートリアル現時点では解像度に、と私は出くわしたスライド05.KR、no77。 そこでは「手続きも完了」とのこと。 この完全性は、文章がKBを伴う場合、解決によって導出されることを意味するものではないと思います。たとえば、解決は、単一の句を含むKBからを導出できません。(53ページのKRR、BrachmanおよびLevesqueの例)。(q∨ ¬ Q)(q∨¬q)(q \lor \neg q)¬ P¬p\neg p このスライドの意味を理解するのを手伝ってくれる人はいますか?スライドの完全性とは、完全な証明手続きではなく、反論が完全であることを指しますか?



4
償却分析に関する質問
アルゴリズムと複雑さに関する試験の準備として、私は現在、古い演習を解いています。初めて遭遇したときにすでに苦労してきた概念の1つは、償却分析の概念です。償却分析とは何ですか?私たちの講義ノートには、「償却分析は特定の操作に必要な「平均時間」の限界を与え、最悪の場合の限界を与えることもある」と述べられています。それは本当に便利に聞こえますが、例について言えば、私が何をしなければならないのかわからず、サンプルソリューションを読んだ後でも、彼らが何をしているのかわかりません。 基数2に1を加算してみましょう。つまり、0、1、10、11、100、101、110、111、1000、...償却分析を使用して、各ステップで変更する必要があるのは常に多くのビットだけを償却することを示します。 (元々はドイツ語での演習なので、完全に正確ではないかもしれない私の翻訳をお詫びします) ここで、標準解は最初に、いくつかの定数に対してを定義し。これは、潜在的な関数と呼ばれるもので、過剰な時間の単位に何らかの形で対応しているものだと思います(ただし、この特定の定義を思い付く理由はわかりません)。番目のステップでビットを変更する必要があると仮定します。そのようなステップは常に次の形式ですφ (I ):= C ⋅ #{ バイナリ表現における1ビット}ϕ(i):=c⋅#{1-bits in the binary representation}\phi(i) := c \cdot \# \{\text{1-bits in the binary representation}\}c &gt; 0c&gt;0c > 0メートルmm私ii …01…1m→…10…0m.…01…1⏟m→…10…0⏟m.\dots \underbrace{0 1 \dots 1}_m \to \dots \underbrace{1 0 \dots 0}_m. この発言は私には理解できますが、やはりその背後にある動機はわかりません。次に、どこからともなく、彼らは彼らが「見積もり」と呼ぶものを思いつきます a(i)=m+c(ϕ(i)−ϕ(i−1))=m+c(−m+2)a(i)=m+c(ϕ(i)−ϕ(i−1))=m+c(−m+2)a(i) = m + c(\phi(i) - \phi(i-1)) = m + c(-m …


2
が、ような2つの関数、
質問のタイトルは、私が探しているものを表しています。これは、非決定論的な時間階層定理の前提条件をよりよく理解するのに役立ちます たとえば、Arora-Barakの本では、およびを使用して定理を説明していますが、もわかります!そのため、が適切なサブセットになるように指定することで、「余分な」時間が保証されることをよりよく理解しようとしています、、ない ... g(n)=ng(n)=ng(n) = nG(n)=n1.5G(n)=n1.5G(n) = n^{1.5}n∈o(n1.5)n∈o(n1.5)n \in o(n^{1.5})NTIME(g(n))NTIME(g(n))\text{NTIME}(g(n))NTIME(G(n))NTIME(G(n))\text{NTIME}(G(n))g(n+1)=o(G(n))g(n+1)=o(G(n))g(n + 1) = o(G(n)) g(n)=o(G(n))g(n)=o(G(n))g(n) = o(G(n))


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