コンピュータサイエンス

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

2
ソフトウェアトランザクションメモリのコンテキストでの線形化可能性と直列化可能性
ソフトウェアのトランザクションメモリのコンテキストで、直列化可能性と線形化可能性を把握しようとしています。ただし、どちらの概念も一般的にトランザクションメモリに適用できると思います。 この時点で、私は両方の主題について次のように理解しています。 シリアライザビリティ 直列化可能性はグローバルプロパティです。これはトランザクションの正確性のプロパティです。与えられたk各トランザクションを実行することのプロセスTkを同時に(すなわち、次々に)順番に実行することができるトランザクションの順序があることを直列化可能性を保証最終結果は同じであるようにトランザクションが同時に実行されるように。したがって、(T1, T2,..,Tk)順次実行できるトランザクションのリストを定義するリストの順列があります。 この特性は私には完全に理にかなっており、私の定義は正しいと思います。この定義は、HerlihyとShavitによる「The Art of Multiprocessor programming」のテキストに基づいています。 線形化可能性 線形化可能性は、並行オブジェクトのローカルプロパティです(たとえば、スレッド間で共有されるクラスのインスタンス)。線形化可能性により、2つのプロセスがそれぞれ、その共有オブジェクトで一連のopメソッド呼び出し(例、queueまたはインスタンス)を実行するときdequeueに、プログラムの順序(プログラマーQueueが記述した順序)を必ずしも保持しない、これらのメソッド呼び出しの順次的な順序付けが保証されます。ダウン)、ただし、各メソッド呼び出しは即座に行われるように見えます(つまり、呼び出しと応答が直接互いに続きます)。一方、各メソッド呼び出しの結果は個別に維持され、結果としてオブジェクトの状態も維持されます。 質問 "On the correctness of TM"GuerraouiとKapalkaによる論文によると、これはTMの文脈における線形化可能性の定義です。 ..共有オブジェクトを説明するために考案された安全プロパティは、TMの修正基準として使用されることがあります。TMの用語では、線形化可能性とは、直感的には、すべてのトランザクションがその存続期間中のある特定の時点で行われたかのように見える必要があることを意味します。 この定義は、私にとって直列化可能性に似ているようです。しかし、この論文では、シリアライザビリティを次のように定義しています。 ..は、データベーストランザクションの最も一般的に必要なプロパティの1つです。大まかに言えば、トランザクションの履歴H(つまり、特定の実行ですべてのトランザクションによって実行されるすべての操作のシーケンス)は、Hでコミットされたすべてのトランザクションが同じ操作を発行し、 Hでコミットされたトランザクションのみの(連続した履歴は、トランザクション間の同時実行性のない履歴です)。 ただし、この定義は、トランザクションからステートメントを並べ替えて、インターリーブできることを意味しているようです。(つまり、トランザクションのすべてのステートメントTがに順番に表示されるわけではないようにステートメントを並べ替えますH)。 私は、上記の個人的な定義が正しいと想定しています。私の実際の質問は、線形化可能性がトランザクションメモリのコンテキストでどのように定義されるかです。トランザクションメモリのセマンティクスが壊れるので、トランザクション内の各メソッド呼び出し(つまり、読み取り/書き込み操作)を個別に説明しても意味がありません。これは明らかに直列化可能性を損なうので、2つの同時トランザクションとそれらのインターリーブについて推論する必要があるのも意味がありません。線形化可能性とは、トランザクション内の個々の操作を並べ替えることができるということですか?線形化可能性が直列化可能性のより強力な形式である場合、操作が単一のトランザクション内で実行される順序は重要ではありません。 要約すると、まず第一に、直列化可能性と線形化可能性に対する私の理解は正しいですか?さまざまな作品で大量の定義を読んだ後、私は混乱しています。次に、一連のトランザクションを線形化できるとはどういう意味ですか? コメントの中にリンクされた質問も読んだ。しかし、それは私の特定の質問を私に説明しませんでした。 出典 トピックに関するSOの質問(STMについては明確ではありません) /programming/4179587/difference-between-linearizability-and-serializability 2つのhttp://www.bailis.org/blog/linearizability-versus-serializability/に関する非公式の説明 シリアライザビリティに関する元の論文 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92.2690&rep=rep1&type=pdf [1]線形化可能性に関する最初の論文 http://www.cs.toronto.edu/~christoff/files/Linearizability-ACorrectnessConditionForConcurrentObjects.pdf

4
「実際に発生するビット文字列はランダムにはほど遠い」ので、圧縮関数は実用的です。
これは、このスレッドでのAndrej Bauerの回答に関係しているので、コメントしました。しかし、私はそれは質問の価値があると信じています。 Andrejは、長さが3以下のすべてのビット文字列のセットが与えられた場合、ロスレス圧縮関数はそれらの一部のみを「圧縮」できると説明しています。その他、たとえば「01」は、実際には「0001」などの長さ4の文字列に圧縮する必要があります。圧縮率は、単に入力セット全体の平均圧縮です。 このため、可逆圧縮は実用的ではないように見えますが、重要な引用は次のとおりです。 実際に発生するビット文字列はランダムではなく、多くの規則性を示します。 たとえば、マルチメディアファイルがランダムなビット文字列以外のもので表現されているとは信じがたいです。アルゴリズムが実際に役立つようにするために圧縮関数が活用するパターンは本当にありますか?

2
フォワードリードイテレーターチューリングを備えたスタックマシンは完成していますか?
スタックの先頭からしか読み取ることができない場合、ストレージが無制限の単一スタックのマシンはチューリング完了ではないことはよく知られています。スタックマシンよりも(少し)強力なマシンが必要ですが、それでもチューリングは完全ではありません。(多項式のスローダウンのみで非決定論的なプッシュダウンオートマトンを決定論的にシミュレートできる非チューリング完全なマシンが存在するかどうか疑問に思います。)私の頭に浮かんだ最も良性の(まっすぐな)拡張は、(単一の)前進でした。イテレータを読みます。 実装の詳細を詳しく説明して、フォワードリードイテレーターの意味を明確にします。単独リンクリストには、スタックを実装するために使用することができます。リストpTopは、ゼロであるか、SListノードを指すポインターによって実装されます。SListノードは、ペイロードフィールドから構成valueし、ポインタフィールドpNext、pNextのいずれかがゼロであるか、または点SListノード。前方読み取り反復子をpRead、ゼロであるか、SListノードを指すポインターによって実装します。ポインタpTopにpReadは直接アクセスできませんが、次の方法でのみ使用できます。 Push(val)およびで新しいSListノードnを作成し、を設定します。n.value = valn.pNext = pToppTop = &n Pop()pTop == 0またはの場合は中止しpRead == pTopます。それ以外の場合は、が指すノードを読み取っval = pTop->valueてpTopNext = pTop->pNext解放SListしpTop、を設定pTop = pTopNextして返しますval。 ReadBegin()セットpRead = pTop。 ReadNext()場合は中止しますpRead == 0。それ以外の場合は、読み取りval = pRead->value、設定pRead = pRead->pNext、および戻りますval。 ReadFinished()のtrue場合pRead == 0は、falseそれ以外の場合はを返します。

1
パラメータ化された複雑さのカーネル
(問題の)カーネルとは何か、またそれらの用途は何かを誰かに説明できますか?私のスライドは言う: パラメータ化された問題のカーネル LLL 変容です (x,k)↦(x′,k′)(x,k)↦(x′,k′)(x,k) \mapsto (x',k') そのような: (x,k)∈L⇔(x′,k′)∈L(x,k)∈L⇔(x′,k′)∈L(x,k) \in L \Leftrightarrow (x',k') \in L |x′|≤f(k)|x′|≤f(k)|x'| \leq f(k) いくつかの機能のために fff k′≤g(k)k′≤g(k)k' \leq g(k) いくつかの機能のために ggg 変換は多項式時間で計算する必要があります。 私の質問は: これは、固定パラメータが扱いやすいという問題とどのように関連していますか? カーネルが便利な理由は何ですか? この定義はどこから来たのですか。 スライドの例は頂点カバーの例ですが、実際にはわかりません。スライドが少し短いためです。

3
前に起こった因果関係
私はLamportの「時間、クロック、および分散システムにおけるイベントの順序付け」を読んでいて、私を悩ませている詳細があります。 ランポートは、「以前に起こった」半順序を定義しています。次に彼は、「定義を表示する別の方法は、a-> bは、イベントaがイベントbに因果的に影響を与える可能性があることを意味する」と言います。 ここで、aがbの前に発生するような、プロセスP1でのメッセージ受信である2つのイベントaとbを考えます。さらに、aとbがP1で発生した2つのイベントだけであると仮定します。前に発生したリレーションの定義によれば、a-> bがあります(P1がこれらのイベントをこの順序で監視しているため、これは理にかなっています)。 ただし、イベントaがイベントbに因果的に影響を与える可能性があるかどうかはわかりません。これらの2つのイベントはまったく無関係であり、異なる順序で発生した可能性があります。 ここで何が欠けていますか?

1
決定木のサイズと決定木の深さ
決定木(特にRのrpartパッケージ)を使用して分類実験を行っています。デシジョンツリーの深さを10に設定すると、小さなツリーが得られると思いますが、実際には非常に大きく、サイズは7650です。デシジョンツリーのサイズ(および深さ)の定義は正確に何ですか。 PS:私のデータセットはかなり大きいです。

3
ハッシュテーブルの値はどのように物理的にメモリに格納されますか?
質問: 効率的に使用され、値を頻繁に再配置する必要がない場合に、ハッシュテーブルの値はどのようにメモリに格納されますか? 私の現在の理解(間違っている可能性があります): ハッシュテーブルに3つのオブジェクトが格納されているとしましょう。それらのハッシュ関数はこれらの値を生成します: 0 10 20 これらのオブジェクトのポインタは、次のメモリアドレスに格納されません。これらのオブジェクト間には大きなギャップがあるためです。 startOfHashTable + 0 startOfHashTable + 10 startOfHashTable + 20 ハッシュテーブル上のWikipediaの記事は、「インデックス」とは、のように計算されていることを述べています: hash = hashfunc(key) index = hash % array_size したがって、私の例では、インデックスは次のようになります。 0%3 = 0 10%3 = 1 20%3 = 2 これにより、前述の大きなギャップが解消されます。このモジュロスキームを使用しても、ハッシュテーブルにさらにオブジェクトを追加すると問題が発生します。ハッシュテーブルに4番目のオブジェクトを追加すると、インデックスを取得するために%4を適用する必要があります。これで、過去に行った%3はすべて無効になりませんか?以前の%3のすべてを%4の場所に再配置する必要がありますか?

1
割り当て、評価、名前のバインドの違いは何ですか?
Nameバインディングが識別子(data / code / expression)にいくつかの値を割り当てることを読みました。割り当てと評価は同じことをしているようです。それは紛らわしい。バインドされた変数に値が割り当てられているのに、値が割り当てられていない自由変数が1つであると言えますか?

1
XORカットセット構造、および組み合わせデザイン
グラフと頂点のサブセット与えられた場合、 =の頂点と頂点を接続するエッジのセットを定義します。G(V,E)G(V,E)G(V,E)T⊆VT⊆VT \subseteq Vcutset(T)cutset(T)\mathsf{cutset}(T)TTTV∖TV∖TV\setminus T 私たちの目標は、任意のセット与えられたときにでエッジをすばやく返すか、が空であると応答できるようにを前処理することです。構造はスペースの複雑さを持つ必要があります。つまり、すべてのエッジを保持することはできません。クエリの複雑さはます。GGGTTTcutset(T)cutset(T)\mathsf{cutset}(T)cutset(T)cutset(T)\mathsf{cutset}(T)O˜(|V|)O~(|V|)\widetilde{O}(|V|)O˜(|T|)O~(|T|)\widetilde{O}(|T|) Kapronらは、各カットセットのサイズが最大で1の場合に機能する、次の適切なソリューションを提案しています。 各エッジに一意の番号を付けます。各頂点について、 -隣接するすべてのエッジの数のバイナリXORを保持します。上のクエリ所与、計算 -の内部にあるT.すべてのエッジにおけるすべての頂点のバイナリXOR(すなわち、内部の両方のエンドポイント有する)を2回XOR演算され、それゆえに含まれていません。したがって、は実際にはのすべてのエッジのXORです。vvvxor(v)xor(v)\mathsf{xor}(v)TTTxor(T)xor(T)\mathsf{xor}(T)TTTTTTxor(T)xor(T)\mathsf{xor}(T)xor(T)xor(T)\mathsf{xor}(T)cutset(T)cutset(T)\mathsf{cutset}(T) 各カットセットのサイズが最大1の場合、2つのオプションがあります。は、が空であること、またははの単一エッジの数です。xor(T)=0xor(T)=0\mathsf{xor}(T)=0cutset(T)cutset(T)\mathsf{cutset}(T)xor(T)xor(T)\mathsf{xor}(T)cutset(T)cutset(T)\mathsf{cutset}(T) 次に、著者はに複数のエッジが含まれている場合を処理するために、複雑でランダム化された構造について説明します。cutset(T)cutset(T)\mathsf{cutset}(T) しかし結論として、彼らはこう言っています: ここで説明する手法は、カットのサイズが以下であることがわかっている場合、組み合わせを使用することにより、更新時間に追加の係数を使用して決定論的にできることを理解するのは難しくありません。デザイン」。O˜(k)O~(k)\widetilde{O}(k)kkk 残念ながら、私にとってこれは難しいようです...わかりません:すべてのカットセットのサイズが最大でであるときに、組み合わせ設計を使用して問題を解決するにはどうすればよいですか?kkk

1
制約付き二次最大化の硬度
次の2次の最大化を考えます。 with \ begin {align} \ mathcal {X} = \ lbrace \ mathbf {x} \ in \ mathbb {R} ^ {n}:〜\ | \ mathbf {x} \ | _ {2} = 1、\ | \ mathbf {x} \ | _ {0} \ le k \ rbrace、\ end {align} ここで、\ mathbf {A}は正の半定行列、k \ …

2
PAC学習軸平行長方形
軸平行長方形が実現可能な場合にPAC学習可能であるという証明を理解しようとしています。これは、十分なデータがあるが与えられると、ような関数見つけることができることを示します。 ここでのエラーは、選択した関数エラーが発生する確率。ϵ 、δϵ,δ\epsilon, \deltahhhP [ エラー> ε ] ≤δP[エラー>ε]≤δ\mathbb{P}\left[\text{error} > \epsilon\right] \leq \deltahhh さて、軸平行長方形(バイナリ分類)の場合、通常の引数は次のようになります真の長方形とし、を正の例を含む最小の長方形とします。明らかにとします。4つの長方形ストリップを考慮します。と間。明らかに、それらすべてに確率場合、エラーが発生する確率はより小さいため、少なくとも1つがエラー発生する確率があると想定できます。RRRR』R』R'R』⊆ RR』⊆RR' \subseteq RR』R』R'RRR≤ ε / 4≤ε/4\leq \epsilon/4εε\epsilon≥ ε / 4≥ε/4\geq \epsilon/4 そのようなストリップの場合、すべてのトレーニング例を正しく分類する確率はせいぜい。したがって、すべてのストリップに結合された和集合をとると、すべてを正しく分類する確率は、そして少しの代数を使用すると、サンプルの複雑度は。メートルメートルm(1 − ϵ / 4)メートル(1−ε/4)メートル(1 - \epsilon/4)^m4 (1 − ϵ / 4)メートル≤ 4e− m / 44(1−ε/4)メートル≤4e−メートル/44(1-\epsilon/4)^m \leq 4e^{-m/4}M ≥ (4 / ε )LN(4 / δ)メートル≥(4/ε)ln⁡(4/δ)m …

2
問題がマルコフ特性を満たさないように思われる場合、HMMが音声認識に適しているのはなぜですか
私はHMMとそのアプリケーションについて学び、それらの使用法を理解しようとしています。私の知識は少しむらがあるので、私がしている誤った仮定を修正してください。私が不思議に思っている具体的な例は、音声検出にHMMを使用する場合です。これは、文献では一般的な例です。 基本的な方法は、着信音(処理後)を観測値として扱うことであり、実際に話されている単語はプロセスの隠れた状態です。ここにある隠し変数が独立していないことは明らかなようですが、Markovプロパティをどのように満たすかはわかりません。N番目の単語の確率は、N-1単語だけでなく、その前の多くの先行単語にも依存していると思います。 HMMは音声検出の問題を正しくモデリングするのに非常に優れているため、これは単純化の前提として単に無視されますか、それともプロセスの状態と非表示の変数が何であるかを明確に理解していませんか?同じ問題は、HMMが非常に普及している多くのアプリケーションやPOSタグ付けなどに当てはまるようです。

1
3パーティションからの削減で「膨大な数を追加」するコツは何ですか?
問題:次の図に示すように、「四角形(辺の長さが異なる)を四角形にパッキングする」の問題のを証明するために、はそれに縮小されます。NP完全性NP-Completeness\textsf{NP-Completeness}3パーティション3-Partition\textsf{3-Partition} でインスタンス、あるの要素は、。ターゲットの合計はです。3パーティション3-Partition\textsf{3-Partition}んnn(a1、⋯,a私、⋯,aん)(a1,⋯,ai,⋯,an)(a_1, \cdots, a_i, \cdots, a_n)tttt=Σa私n / 3t=∑ain/3t = \frac{\sum a_i}{n/3} 縮小では、は巨大な(定数)数であり、各は正方形で表されます。長方形の空白は、単位()の正方形で埋められます。BBBa私aia_i(B+a私)×(B+ai)(B+ai)×(B+ai)(B + a_i) \times (B + a_i)1×11×11 \times 1 質問:削減に「 膨大な数の追加する」というトリックはよくわかりません。私はそれがどんなパッキングスキームもソリューションを与えることを強制するために使用されていると思います。しかし、どうやって?BBB3-Partition3-Partition\textsf{3-Partition} 質問1:から削減するために、「膨大な数を追加する」ことの秘訣は何ですか?具体的には、なぜこの削減が機能するのですか?なぜこのトリックが必要なのですか、つまり、を省略した場合(設定)に削減が機能しないのはなぜですか?3-Partition3-Partition\textsf{3-Partition}BBBB=0B=0B=0 「どのようなパッキングでも3パーティションができる」という証明の欠陥を特定しようとしましたが、要点をつかむことができませんでした。 実際、私はからこのトリックを使用する他の削減も見ました。そう、3-Partition3パーティション\textsf{3-Partition} 質問2:からの削減に「膨大な数を追加する」というこのトリックの一般的な目的は何ですか(ある場合)?3-Partition3-Partition\textsf{3-Partition} 注:この問題は、Erik Demaine教授によるビデオ講義(01:15:15から)によるものです。最初に元の論文「正方形を正方形に詰める」をチェックするべきでした。ただし、インターネットではアクセスできません。コピーがあり、共有したい場合は、私のプロファイルで私のメールボックスを見つけることができます。前もって感謝します。

2
デジタルコンピューティングではできない、アナログコンピューターでできることはありますか?
アナログコンピューティングとデジタルコンピューティングの違いの核心は、利用可能な精度のビット数です。記憶媒体は無限のテープであるため、チューリングマシンでは、数値を任意の精度で格納できることを知っています。 しかし、現実の世界では、エネルギーや位置などの物理量は、バイナリにあるため、個別のチャンクでは増分されません。代わりに、それらの正確な値は、アナログ回路と同様に連続的に変化する可能性があります。 その上で、デジタルコンピューティングではできない、基本的にアナログコンピューターでできることはありますか。

2
Pにある充足可能性の問題を解決するための一般的な方法
シェーファーの二分法の定理から、Pには少数のタイプの充足可能性の問題のみがあり、その他の問題はすべてNP完全であることを知っています。ただし、私が知っているすべてのアルゴリズムは、そのタイプの問題に固有の特定の手法を使用します。たとえば、Hornsatの単位伝播、XORSATの線形代数手法mod 2、2-satのさまざまな他の手法などです。Pのこれらすべての問題に対して機能する1つの一般的なポリタイムアルゴリズムはありますか?ありがとう。

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