コンピュータサイエンス

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

1
スペクトルグラフ理論はグラフ同型について何と言っていますか
スペクトルグラフ理論のコンテキストでグラフ同型を論じる研究や結果はありますか? スペクトルグラフ理論の2つの既知の定理は次のとおりです。 グラフの隣接行列に固有値のマルチセットが等しい場合、2つのグラフはアイソスペクトルまたはコスペクトルと呼ばれます。 ほとんどすべての木は共スペクトルです。 グラフの隣接行列の固有値は、ラベルを付け直しても変化しません(ただし、これは必要かつ十分な条件ではありません)。 さらに、グラフ同型は解決が「簡単」ですか?

1
最大サブマトリックス合計
与えられた n×mn×mn\times m マトリックス AAA整数の場合、合計が最大になる部分行列を見つけます。行または列が1つしかない場合、これは最大のサブ配列を見つけることと同じです。 1Dバージョンは、動的プログラミングによって線形時間で解決できます。2DバージョンはO(n3)O(n3)\cal O(n^3) すべての列のペアをループし、長さが行列の行数である配列に対して1Dアルゴリズムを使用して、各位置で rrr 行の要素の合計を保持します rrr 2つの列の間。 行列が次のように与えられた場合: ⎛⎝⎜15−45−243−1203119−1789⎞⎠⎟(1−20−15433178−45−12199)\begin{pmatrix} 1 & -2 & 0 & -1 \\ 5 & 43 & 31 & 78 \\ -45 & -12 & 19 & 9 \end{pmatrix} 次に、列のペアについて (0,2)(0,2)(0,2)、最大サブマトリックスの合計は、配列で1Dアルゴリズムを使用して見つけることができます(上から下)。 ⎛⎝⎜1−2+05+43+31−45−12+19===−179−38⎞⎠⎟(1−2+0=−15+43+31=79−45−12+19=−38)\begin{pmatrix} 1-2+0 & = & -1 \\ 5+43+31 & = …

5
部分的に正しいプログラムがどれほど正しいかを定量化できますか?
部分的正しさと呼ばれるものがあることは知っていますが、半正解が完全正解にどれだけ近いかを知る方法があるのか​​と思っていました。 たとえば、配列をほぼ完全に並べ替える並べ替えプログラムがある場合、Hoareロジックを使用して、正しい答えを得るのにどれだけ近いかを判断できますか?これを行う1つの方法は、一連のandステートメントを前提条件にして、これらのステートメントのうち、プログラムを通じて伝播される事後条件の結果として最も弱い前提条件がいくつあるかを確認することです。 ただし、この方法は非常に粗雑なようです。このようなことをする他の方法はありますか?

1
高校生のチームのためのCS関連の課題のアイデアは?
高校生の間でSTEMを促進するLet's Talk Scienceコンペティションの CS関連の活動の設計を手伝っています。コンペティションでは、6人の生徒のチームが駅から駅へと移動し、できるだけ早くそれぞれを完了しようとします。 1つのステーションがチームにメータースティックを与え、建物の高さを測定するように依頼する場合があります。(これは、同様の三角形を使用して建物の高さを推定することで解決できます。)回答がどれだけ近いかに応じて、チームの完了時間に時間ペナルティが追加されます。 私の制約はこうして: ほとんどの学生はCS /プログラミングの知識を持っていません チャレンジにはコンピュータは必要ありません 15〜20分間、6人の生徒のチームにアイデアを提示する必要があります。 チャレンジには、客観的にスコアリングできる(判断されない)明確な回答が必要です かなり良い課題の1つは、Caesar暗号でエンコードされた文を提示し、それを解読するように生徒に依頼します。ステーションを運営している人は、Caesar暗号とは何かについて簡単に説明し、チームにテキストを解読させます。時間のペナルティは、正しさに基づいて与えられます-正しくない文字ごとに30秒のペナルティが追加されます。 しかし、シーザー暗号のアイデアは過去に頻繁に使用されており、私は何か新しいものを開発しようとしています。私はCS Unpluggedでさまざまなアクティビティを経験しましたが、どれも私にとって魅力的ではありませんでした。 6人の高校生のチームにとって、CSに関連する楽しい課題は何ですか? ありがとう!
7 education 

3
このSATのAND圧縮に関する論文と矛盾しているように見える何が問題になっていますか?
もっともらしい推測を前提とする論文と矛盾しているように見える単純な構造を得た。 予想が誤りである可能性は低いので、議論の何が問題になっていますか? 紙から AND圧縮は、SATインスタンスのセットをマップする確定的多項式時間アルゴリズムです。 x1,…,xtx1,…,xtx_1,\dots,x_t 単一のSATインスタンスに yyy サイズの poly(maxi|xi|)poly(maxi|xi|)\text{poly}(\max_i |x_i|) such that yyy is satisfiable if and only if all xixix_i are satisfiable. ... Unless the unlikely complexity-theoretic collapse coNP⊆NP/polycoNP⊆NP/poly\sf coNP \subseteq NP/poly occurs, there is no AND-compression for SAT. Construction: If xixix_i are not in CNF, convert them to …

2
すべてのコンピュータプログラムをグラフとして表すことはできますか?
先日考えていたところ、コンピュータープログラムはすべてグラフ(たとえば、抽象構文ツリー)として、または一般的な式を組み合わせると抽象構文グラフとして表現できるように思えました。 たぶん、どのコンピュータプログラムも、これらのグラフの1つ+それに付加された評価セマンティクスとして表すことができると思いました。これがチューリングマシンに対して普遍的に当てはまるかどうか誰かが知っているのであれば、私は興味があります(潜在的に無限のグラフを取得できると思いますが、これは数学なので問題ありません)。私はそれと、強力な型システムなどの多くのことを熟考してきましたが、この抽象化によく適合します(グラフに構造上の制約を課します)。型システムを独自のプログラムと見なして、それを別のグラフ+プログラムのグラフで動作する評価セマンティクスとして表すこともできます... これが既知の同等であるかどうかに興味があります。

1
グラフ展開とコンダクタンスの関係
グラフの展開とコンダクタンスの正確な関係について、私はかなり混乱しています。私の最初の質問は: 誰かが私にこれらの両方の概念を論じている参照を指摘することができますか?(私は関連トピックについてさまざまな講義ノートを見つけましたが、これらは拡張またはコンダクタンスのいずれかに焦点を当てているようです...) の拡大を読んだ GGG ランダムウォークの混合速度の尺度です GGG、つまり、定常分布に近づくための時間。のためにddd-一定の膨張を伴う正則グラフ。たとえば、混合時間は Θ(logn)Θ(log⁡n)\Theta(\log n)。同じことがコンダクタンスにも当てはまるようですΦ(G)Φ(G)\Phi(G)、つまり、 Φ(G)Φ(G)\Phi(G) 一定であり、次にランダムウォーク GGG も混ざります Θ(logn)Θ(log⁡n)\Theta(\log n)時間。さらに、このコンダクタンスの特性は、非正則グラフにも当てはまります。ddd-正則グラフの展開 GGG のコンダクタンスを単純に除算することで見つけることができます GGG 沿って ddd。これは次の質問をします: グラフの拡張を考慮する必要があるのはなぜですか GGG、コンダクタンスがより強力な尺度であると思われる場合(拡張を含む)?


2
一緒に、文脈自由言語のあらゆる生成を呼び出す最小長の文字列のセットを生成する
問題(tl; dr) 文脈自由文法を考えると、、取る文字列のセットを見つける、それが少なくとも一度持つすべての生産を通じてを。GGGGGG どのように、そしてどのくらい速くそれを行うことができますか? バックグラウンド 私はパーサーがYacc + Antlrのようなツールで実装されているコンパイラーに取り組んでいます。ほとんどのパーサーコードを作成しましたが、文法のすべてのプロダクションを少なくとも1回呼び出すオブジェクト言語のコードを生成して、パーサーにフィードして問題がないことを確認したいと思います。 。 良いテストのために、私が本当に欲しいのは、特定のプロダクションが「テスト中」である1つの短いテストファイルです。したがって、各プロダクションルールについて、パーサーを取得する最小限の文字列を生成します。テスト中のプロダクションから一連の端末への状態の開始 可能な解決策 グラフ理論を使用したエレガントなソリューションがあると思いますが、それが何かはよくわかりません。ダイクストラのアルゴリズムを使用して適切な構造を通る最短パスを検索したいのですが、文字列はパスではなくツリー構造の文脈自由文法によって解析されると思います。そのため、どうすればよいかわかりません。 。 それをネットワークフローの問題として提起するための巧妙な方法があるのではないかと思います。次のようなもの:すべてのシンボル(終端と非終端)の頂点とすべての生成の頂点を持つグラフを取り上げます。非ターミナルにプロダクションがある場合、非ターミナルからプロダクションに有向エッジを追加します。プロダクションがシンボルを生成する場合、プロダクションからシンボルに有向エッジを追加します。容量ソースを追加し、開始シンボルに対応する頂点にアタッチします。無限の容量のシンクを追加して、各端子に取り付けます。ccc 非終端が容量アーク内にある場合、非終端から容量各生成物に弧を追加します。プロダクションに容量インアークがあり、アウトアークからターミナルがある場合、プロダクションから各非ターミナルにキャパシティアークを追加します。kkkkkkkkknnnknkn\frac k n 次に、ネットワーク上でいくつかの最大フローアルゴリズムを実行し、プロダクションを開始シンボルから端末まで「トリクルダウン」させます。最終的には、フローがソースから出てくるはずであり、ヒットしたすべての端末をゼロ以外のフローで結果文字列として返すことができます。次に、実行ごとに時間の複雑さのようなものになります。ここで、は文法内の終端と非終端の数の合計です-悪くありません。cccO(n3)O(n3)O(n^3)nnn ただし、このグラフがどのように見えるかはまだわかりません。無限である必要があると思います。無限のフローネットワークの最大フローを見つけることができるかどうかはわかりません。それを過ぎると、プロダクションを「削除」する方法がわからないので、テストを実行するたびに新しいプロダクションを取得することが保証されます。 私はグーグルで検索して何も見つかりませんでした。この問題に対する素晴らしい解決策はありますか?

1
乱数ジェネレーターのシーケンスが1次元でのみ等分散されるとはどういう意味ですか?
上に読みながらXorshift I(強調は追加)以下に出くわしました: 次のxorshift +ジェネレーターは、代わりに128ビットの状態、最大周期2 ^ 128 − 1を持ち、BigCrushを渡します。 [snip code] このジェネレーターは、BigCrushを通過する最速のジェネレーターの1つです。ただし、これは1次元でのみ等分散されます。 この記事の前半には、次の内容があります。 [snip code] 両方のジェネレーターは、すべての最大周期のxorshift *ジェネレーターと同様に、可能な最大の次元で等分布された 64ビット値のシーケンスを出力します。 シーケンスが1つの次元で均等に分散されているのに対して、複数の次元で均等に分散されているとは、どういう意味ですか?

2
反復法で反復T(n)= 3T(n-2)を解く
再発を解決する必要があり、これらの問題を解決する反復的な方法を確実に理解したかったので、久しぶりです。与えられた: T(n )= 3 T(n − 2 )T(ん)=3T(ん−2)T(n) = 3T(n-2) 私の最初のステップは、一般的な形式に到達するように用語を繰り返し置換することでした: T(n − 2 ) = 3 T( n − 2 − 2 ) = 3 T(n − 4 )T(ん−2)=3T(ん−2−2)=3T(ん−4)T(n-2) = 3T(n-2 -2) = 3T(n-4) T(n )= 3 ∗ 3 T(n − 4 )T(ん)=3∗3T(ん−4)T(n) = 3 *3T(n-4) 一般的な形式につながる: T(n )=3kT(n …

1
NPのすべての問題がわからない場合、どのようにして問題がNP完全であるかを知ることができますか?
次の場合、問題はNP完全です。 NPにあります。 NPのすべての問題はそれに還元できます。 ここで気になるのは2番です。NPのすべての問題を知っていたら、私は非常に驚き ます。その仮定に基づいて、問題がNP完全であることをどのように確実に知ることができますか?たとえば、分からない問題がブール満足度問題に減少するが、クリーク問題には減少しないことをどのようにして知ることができますか?または、そのような問題はNP中間であり、したがってP!= NPが存在する必要があるでしょうか


1
スレッドとロックに関する質問
私は現在、Fuss、Futexes、Furwocks:LinuxのFast Userland Lockingを読んでいて、この引用に出くわしました: 公平なロック方式では、ロックは要求された順序で許可されます。これは、コンテキストスイッチの数が増えるため、スループットに悪影響を与える可能性があります。同時に、それはいわゆるコンボイ問題を引き起こす可能性があります。ロックは到着順に付与されるため、すべてが最も遅いプロセスの速度で進行し、待機中のすべてのプロセスの速度が低下します。コンボイの問題に対する一般的な解決策は、解放時にロックを使用可能としてマークし、すべての待機中のプロセスをウェイクさせて、ロックを再競合させることです。これはランダムフェアネスと呼ばれます。しかし、これは雷鳴の群れの問題にもつながります。これにもかかわらず、ウェイクする最初のタスクがプリエンプトまたはスケジュールされる前にロックを解放し、2番目の群れのメンバーがロックを取得できるようにすれば、ユニプロセッサーシステムでうまく機能します。 この引用についていくつか質問があります。 第1に、さまざまなタスクが異なるタイミングでプロセスを待機キューに入れるため、公平なロックスキームはコンテキストスイッチの数を増やしますか。 次に、到着順にロックを許可すると、プロセスは最も遅いプロセスの速度でどのように進行しますか?これは、最も遅いプロセスが他のプロセスの前にロックを許可されている場合にのみ該当しませんか?同様に、ロックに対してランダムに競合するプロセスがあると、どのようにしてコンボイ問題が解決されますか? 最後に、マルチプロセッサシステムと比較して、ユニプロセッサシステムではランダムな公平性がどのように優れているか理解できません。たとえば、どちらの場合でも、待機中のプロセッサはすべて起こされ、1つはロックを取得し、他のプロセッサは再びスリープ状態にする必要があります。では、これはどのようにユニプロセッサシステムでうまく機能するのでしょうか。

2
P対NPと比較して、P対PSPACEでこれ以上の進展はありましたか?
これは少し曖昧な質問であることを理解していますが、オラクルを使用して質問を簡単に解決できないなど、P対NPの結果があります。P対NPについては示されているが、P対PSPACEについては示されていない、このような結果はありますか?したがって、特定の証明手法がP対NPを解決できない場合でも、P対PSPACEを解決できる可能性があります。また、P = PSPACEの場合、P = NPで必ずしも成立しない含意があると言う重要な結果はありますか?または、P!= NPを証明するよりもP!= PSPACEを証明する方が簡単であることを示唆する、文学の中で重要なものは何ですか?

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