コンピュータサイエンス

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

3
決定可能性の建設的なバージョン?
今日のランチで、私が育っこの問題を私の同僚で、そして私の驚きに、問題は彼らを説得しなかっ決定可能であることをジェフ・E.の引数は(ここだ mathoverflowに密接に関連する記事)。説明しやすい問題ステートメント( "is P = NP?")も決定可能です:はいまたはいいえので、常にこれらの回答を出力する2つのTMの1つが問題を決定します。形式的には、セット:入力1に対してのみ1を出力し、それ以外の場合は0を出力するマシンS:={|{P,NP}|}S:={|{P,NP}|}S :=\{|\{P, NP\}|\}111111000それを決定するか、入力に対してそれを行うマシン。222 それらの1つは基本的にこの異論に要約しました:それが決定可能性の基準がいかに弱いかである場合-これは、有限であると示すことができる言語として形式化できるすべての質問が決定可能であることを意味します-次に、基準を形式化する必要がありますこのように形式化可能な有限の多くの可能な答えで問題を決定することはありません。以下はより強力な基準である可能性がありますが、決定性はTMを示すことができるかどうかに依存する必要があることを要求することで正確にできる可能性があることを示唆し、基本的には問題の直観主義的な見解を提案します私の同僚のいずれかを行う、それらのすべては除外された中間の法律を受け入れます)。 決定可能性の建設的理論を形式化し、おそらく研究したことがありますか?

1
ランダム化された溶融可能なヒープ-期待される高さ
ランダム化された融合可能なヒープには操作「meld」があり、それを使用して、挿入を含む他のすべての操作を定義します。 問題は、ノードを持つツリーの予想される高さは何ですか?nnn Gambin and Malinkowskiの定理1、ランダム化された融合可能な優先キュー(Proceedings of SOFSEM 1998、Lecture Notes in Computer Science vol。1521、pp。344–349、1998; PDF)は、この質問に対する答えを証明とともに示しています。しかし、なぜ書き込めるかはわかりません: E[hQ]=12((1+E[hQL])+(1+E[hQR])).E[hQ]=12((1+E[hQL])+(1+E[hQR])).\mathbb{E} [ h_Q] = \frac{1}{2} ((1 + \mathbb{E}[h_{Q_L}]) + (1 + \mathbb{E}[h_{Q_R}]))\,. 私にとって木の高さは hQ=1+max{hQL,hQR},hQ=1+max{hQL,hQR},h_Q = 1 + \max\, \{ h_{Q_L}, h_{Q_R}\}\,, これは次のように拡張できます。 E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].E[hQ]=1+E[max{hQL,hQR}]=1+∑kP[max{hQL,hQR}=k].\mathbb{E} [ h_Q] = 1 + \mathbb{E}[\max \,\{ h_{Q_L}, h_{Q_R}\}] = 1 + \sum …

2
3色が決定可能であることを証明する方法は?
3色が決定可能であることを証明するには、次のように言えば十分でしょう。 グラフの各ノードには3つの可能な色があります したがって、すべての可能性を列挙し、2つのエッジが同じ色のノードを接続していないことを確認できます。3ん3ん3^n それは3色が決定可能であることを証明していますか?または、適切な証明のためにチューリングマシンを構築する必要がありますか? 3色付けとは、グラフの色付けの問題を指します。つまり、2つの隣接するノードが同じ色を持たないように、無向グラフの各ノードに3つの色の1つを割り当てます。

1
最長の繰り返しサブシーケンスを見つける
文字列与えられた場合、最も長い繰り返し(少なくとも2回)のサブシーケンスを見つけたいと思います。つまり、私は、文字列検索したいwののサブシーケンスである(連続している必要はありません)のように、W = ワット" ⋅ ワットを"。つまり、wは半分が連続して2回現れる文字列です。wはsのサブシーケンスですが、必ずしもサブストリングではないことに注意してください。ssswwwsssw=w′⋅w′w=w′⋅w′w=w' \cdot w' wwwwwwsss 例: 「ababccabdc」の場合は「abcabc」になります。これは、「ababccabdc」に「abc」=「abc」と「abc」が(少なくとも)2回表示されるためです。 「addbacddabcd」の場合、「dd」は2回表示されるため、1つのオプションは「dddd」です(同じ文字を複数回使用することはできませんが、ここでは4つの「d」があるので問題ありません)。ただし、lebngth 4です。長さ8の場合: 'abcdabcd'は、 'abcd'が 'addbacddabcd'のサブストリングであるため、2回出現します。 最長の繰り返しサブシーケンスを見つけることに興味があります。これは「最長/最大の正方形を見つける」とも呼ばれますが、正方形が部分列ではなく部分列に対して定義されている多くの記事を読みました。 文字列のブレークポイントのすべてのオプションを反復することでを取るブルートフォースアルゴリズムを簡単に使用できます。次に、最大/最長の共通サブシーケンスを検索する2つの文字列を作成しますが、各チェックは動的プログラミング手法を使用してO (n 2)を取るため、全体の時間はO (n 3)になります。私はO (n 2をとる最も長い共通部分列のためのより効率的なアルゴリズムを見つけましたO(n3)O(n3)O(n^3)O(n2)O(n2)O(n^2)O(n3)O(n3)O(n^3)なので、実行時間はO(n3O(n2logn)O(n2log⁡n)O(\frac{n^2}{\log n})。O(n3logn)O(n3log⁡n)O(\frac{n^3}{\log n}) 私は最長の繰り返しサブシーケンス問題のためのより効率的なアルゴリズムを探しています。おそらく、すべてのブレークポイントを反復するという私の考えは、時間を浪費しすぎて、反復回数を減らすことができます。あるいは、異なる姿勢のアルゴリズムがこの問題を解決できるかもしれません。 私は多くのジャーナルや以前の質問で検索してきましたが、私が見つけた結果のほとんどは部分列ではなく部分文字列に関するものでした。 これはサフィックスツリーを使用して実行できることも読みましたが、これもサブストリングに関連しており、そのようなアイデアをサブシーケンスに拡張できるかどうかはわかりません。 時間で実行されるソリューションを探しています。時間の1が存在する場合にはO (nは⋅ ログn個)でも良くなる(そのようなものが存在する場合、私はわかりません)。O(n2)O(n2)O(n^2)O(n⋅logn)O(n⋅log⁡n)O(n \cdot \log n)

1
疑似コードで上矢印()はどういう意味ですか?
私は見晴らしの良いポイントツリーを学んでおり、Peter Yianilosによる論文「Data Structures and Algorithms for Nearest Neighbor Search in General Metric Spaces in General Metric Spaces(Proceedings of SODA 1993、SIAM、pages 311–321; PDF)」を読んでいる間にこれに出会いました。次の疑似コードがアルゴリズム1に表示されます。 関数 Make_vp_tree(S)もし S= ∅ 、その後返却 ∅new(node);ノード↑.p := Select_vp(S);ノード↑.mu := 中央値S ∈ Sd(p 、s );…関数 Make_vp_tree(S)もし S=∅ その後戻ります ∅new(node);ノード↑.p:=Select_vp(S);ノード↑.mu:=中央値s∈Sd(p、s);…\begin{align*} \hspace{2em}&\hspace{-2em} \textbf{function}\text{ Make_vp_tree(}S\text{)}\\ &\textbf{if }S=\emptyset\textbf{ then return }\emptyset\\ &\text{new(node);}\\ &\text{node}\!\uparrow\!\!\text{.p} …
9 notation 

3
参照カウントGCとトレースGCは言語プロパティですか、実装プロパティですか?
「Swiftはクラシック(トレース)GCを実行せず、ARCを使用する」と聞くことがあります。 しかし、参照カウントを必要とするSwiftセマンティクスに何かがあるかどうかはわかりません。トレースGCを使用するために、独自のSwiftコンパイラーとランタイムを構築できるようです。 それでは、Swiftについて正確に「参照カウント」とは何ですか?Appleの実装または言語自体?言語自体にそのラベルを使用できるほどARCを強力にサポートする言語またはライブラリの一部はありますか?

2
型システムでのソート操作の証明
プログラミング言語の型システムがどれほど有益であるかを知りたい。たとえば、依存して型付けされたプログラミング言語でVectorは、ベクトルのサイズを型シグネチャに組み込んだクラスを作成できることを知っています。それは事実上の例のようなものです。appendこれらのシグネチャを使用して関数を記述し、コンパイラが結果のリストのサイズが入力リストの合計になることを証明することもできます。 たとえば、ソートアルゴリズムの型シグネチャをエンコードして、コンパイラが結果のリストが入力リストの順列であることを保証する方法はありますか?可能であれば、これをどのように行うことができますか?

1
疑似ランダムシーケンス予測
免責事項:私は生物学者ですので、(おそらく)このような大雑把な言葉で述べられた基本的な質問については申し訳ありません。 この質問をここで行うべきか、DS / SCで行うべきかはわかりませんが、CSは3つのうち最大のものです。(私が投稿した後、Cross-Validatedがそのためのより良い場所かもしれないと思いましたが、悲しいかな)。 バイナリの決定を行うエージェントがいると想像してください。そして、エージェントの決定(「試行」)のそれぞれについて、エージェントに報酬を与えるか、与えない環境。エージェントの決定に報いるための基準は単純ではありません。一般に基準はランダムですが、制限があります。たとえば、環境は同じ決定に対して3回を超えて報酬を与えることはなく、連続して4回を超えて報酬決定を交互にすることはありません。 基準のシーケンスはこのようになります 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 1 0 ... しかし決して 0 0 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0 ... 報酬基準は3回以上繰り返すことができないためです。 これらの条件では、理想的なオブザーバーが報酬を最大化するために行うべき戦略を策定することは非常に簡単です。の線に沿った何か ランダムに決める その基準が3回繰り返されていることを検出した場合-最後の基準とは逆に決定します その基準を4回交互に検出した場合は、最後の基準に従って決定します …

3
フォームの力のすべてのバイナリストリング受け付けるDFA
割り切れる2進数を受け入れるDFAを形成できnnnます。 たとえば、2で割り切れる2進数を受け入れるDFAは、次のように形成できます。 同様に、3で割り切れる2進数を受け入れるDFAは、次のように形成できます。 明確に定義された手順に従って、これらのタイプのDFAを形成できます。ただし、の形式の数を受け入れるDFAを形成するためのロジックについて、より明確に定義された手順またはより適切な手順がありますか?nknkn^k たとえば、DFAがという形式のすべての数値を受け入れることを検討してみましょう。この言語はなり{ 1 、10 、100 、1000年、。。。}、従って正規表現有する10 *を。次のようにDFAを作成できます。 2k2k2^k{1,10,100,1000,...}{1,10,100,1000,...}\{1,10,100,1000,...\}10∗10∗10^* および同様のDFAを作成してみましたか?しかし、そうすることができませんでした。または、DFAの作成を可能にし、特定のnに対してn kの形式のすべての2進数を受け入れるDFAを形成できないという、2 nのバイナリの同等のパターンだけですか?3k3k3^k2n2n2^nnknkn^knnn

2
抗誘導体のチェックの決定可能性?
レッツ・私は2つの機能があるとFFFとGGG、私はかどうかを決定するに興味があります F(x)=∫G(x)dx.F(x)=∫G(x)dx.F(x) = \int G(x)dx. 私の関数が基本関数(多項式、指数関数、対数、三角関数)で構成されているとしましょう。たとえば、テイラー級数ではありません。 この問題は決定可能ですか?そうでない場合、それは半決定可能ですか? (私は計算能力についてクラスを教えているので私は尋ねています、そして学生はTMがあなたに積分が現在知られていない関数を統合するのを助けることができるかどうか尋ねました。積分が実際に積分がわからない関数ではなく、上記の基本関数の組み合わせとして表現できない関数が適切に機能しますが、積分をチェックする一般的な問題が決定可能かどうかを考えさせられました。)


1
ファイルのエントロピーを実際に測定するにはどうすればよいですか?
私のファイルに含まれる多くの非冗長(実際の)情報を測定しようとしています。これをエントロピーの量と呼ぶ人もいます。 もちろん標準のp(x)log {p(x)}はありますが、シャノンはチャネルを介して送信するという観点からのみ考慮していたと思います。したがって、式にはブロックサイズが必要です(たとえば、ビット単位で8)。大きなファイルの場合、この計算はほとんど役に立ちません。シンボル間の短距離から長距離への相関は無視されます。 二分木とZiv-Lempelメソッドがありますが、これらは本質的に高度に学術的であるように見えます。 圧縮率もエントロピーの尺度と見なされますが、圧縮の程度に下限はないようです。私のファイルhiss.wavの場合、 元のhiss.wav = 5.2 MB シャノン公式によるエントロピー= 4.6 MB hiss.zip = 4.6 MB hiss.7z = 4.2 MB hiss.wav.fp8 = 3.3 MB hiss.wav内に存在するエントロピーの量を測定する合理的に実行可能ないくつかの方法はありますか?
9 entropy 

1
非決定性チューリングマシンの非決定性は、有限オートマトンのそれとは異なり、オートマトンを押し下げますか?
入力文字列をとして与え。次に、NFAが現在状態(そしてアルファベットまでの入力を読み取った)場合、次の入力シンボルを読み取る前に、NFAは2つのNFAに分割され、1つは状態あり、もう1つはにあり、タイプ。タイプサイクルがある場合、はNFAのいくつかの状態です。次に、入力がアルファベットw_iまで読み取られるまで、状態rの別のNFAを覚えていても無駄です。 R W I R S R ε → S R ε → S ε → Q 1。。。。ϵ → q k ϵ → r q i r w iw1w2...wnw1w2...wnw_1w_2...w_nrrrwiwiw_irrrsssr→ϵsr→ϵsr \xrightarrow{\epsilon} sr→ϵs→ϵq1....→ϵqk→ϵrr→ϵs→ϵq1....→ϵqk→ϵrr \xrightarrow{\epsilon} s \xrightarrow{\epsilon} q_1....\xrightarrow{\epsilon} q_k \xrightarrow{\epsilon} rqiqiq_irrrwiwiw_i。 PDA(非決定論的)が状態rrr(かつ入力がw_iまで読み込まれるwiwiw_i)であり、循環r−→−−ϵ,ϵ→as−→−−ϵ,ϵ→aq1....−→−−ϵ,ϵ→aqk−→−−ϵ,ϵ→arr→ϵ,ϵ→as→ϵ,ϵ→aq1....→ϵ,ϵ→aqk→ϵ,ϵ→arr \xrightarrow{\epsilon,\epsilon \to a} s \xrightarrow{\epsilon,\epsilon \to a} q_1....\xrightarrow{\epsilon,\epsilon \to a} q_k …

3
グラフ理論を使用してフランス国立公文書館の配置問題を解決する方法は?
こんばんは!フランスの国立公文書館で実際にインターンシップをしているときに、グラフを使って解決したい状況に遭遇しました... I.ほこりっぽい状況 アーカイブコストを最小限に抑えるために、図書館の本の高さに従って配置を最適化したいと考えています。本の高さと厚さはわかっています。書籍は、高さ昇順で既に配置されています(これが最善の方法であるかどうかはわかりませんが、それが私たちのやり方です)。各本の厚さがわかっているので、各H iクラスについて、それらの配置に必要な厚さを決定し、L iと呼びます(たとえば、H i = 23の本H1,H2,…,HnH1,H2,…,HnH_1,H_2,\dots,H_nHiHiH_iLiLiL_i高さ c mの合計厚さは L i = 300Hi=23cmHi=23cmH_i = 23\,\mathrm{cm})。Li=300cmLi=300cmL_i = 300\,\mathrm{cm} ライブラリは、希望の長さと高さを示す棚をカスタム製造できます(奥行きの問題はありません)。高さと長さx iの棚のコストは F i + C i x iです。ここで、F iは固定コストで、C iは長さ単位あたりの棚のコストです。HiHiH_ixixix_iFi+CixiFi+CixiF_i+C_ix_iFiFiF_iCiCiC_i なお、高さの棚高さは帳簿保存するために使用することができ、H 、J とJ ≤ Iを。コストを最小限に抑えたい。HiHiH_iHjHjH_jj≤ij≤ij\leq i 私の家庭教師は、この問題を経路探索問題としてモデル化することを提案しました。モデルには、0からnまでのインデックスが付けられた個の頂点が含まれる場合があります。私のメンターは、私は評価動作するように既存の条件、各エッジの意義と方法をうまく示唆したV (I 、J )のエッジに関連した(I 、Jを)。他の解決策や洞察も大丈夫です。n+1n+1n+1000nnnv (i 、j )v(i,j)v(i,j)(私、j )(i,j)(i,j) たとえば、私たちは条約(フランスの歴史の暗黒期)に次のような配列を持っています。 iHiLiFiCi112cm100cm1000€5€/cm215cm300cm1200€6€/cm318cm200cm1100€7€/cm423cm300cm1600€9€/cmi1234Hi12cm15cm18cm23cmLi100cm300cm200cm300cmFi1000€1200€1100€1600€Ci5€/cm6€/cm7€/cm9€/cm\begin{array}{|c|rr} i & 1 & …

1
Welch-Berlekampアルゴリズムのエラー数をどのように決定しますか?
リードソロモンコードをデコードするウェルチベルレカンプアルゴリズムでは、不明な場所のb iにeエラーがあるメッセージを表す点のリストが与えられます(eはアルゴリズムに与えられます)。出力は、エラーが発生した点を除く、指定されたすべての点を通過する多項式です。(ai,bi)(ai,bi)(a_i, b_i)eeebibib_ieee この方法には、次の形式の線形方程式系を解くことが含まれます。 biE(ai)=Q(ai)biE(ai)=Q(ai)b_i E(a_i) = Q(a_i) Eの次数がeでQの次数が最大でe + kであるすべてのiiiについて。変数はEおよびQの係数です。EEEeeeQQQe+ke+ke+kEEEQQQ EEE次数があることを確認するにeeeは、通常、の係数xexex^eが1 であるという制約を上記の線形システムに追加します。ただし、実際にはは必ずしもわかりませんeee。これに対処する1つの非効率的な(ただし多項式時間の)方法は、解が見つかるまで(n + k − 1 )/ 2 − 1で始まるすべての値に対してを試すことです。eee(n+k−1)/2−1(n+k−1)/2−1(n+k-1)/2 - 1 私の質問は:eを決定するより効率的な方法はありますか?eeeまたは、正確な値の代わりに上限を使用できるようにする線形システムに変更はありますか?eee 特に、この特定のデコーダーをリードソロモンコードに使用したいのですが、他の手法に基づく完全に異なるアルゴリズムではありません。 DWの答えに応えて、これが私の実際の例です。すべてが7を法として行われます。 plain message is: [2, 3, 2] polynomial is: 2 + 3 t^1 + 2 t^2 encoded message is: [[0, 2], [1, 0], [2, 2], …

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