コンピュータサイエンス

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

1
平和共存のための投票方式
世界の多くの地域は、2つのグループ(通常は民族または宗教)間の対立に苦しんでいます。この質問の目的のために、私は双方のほとんどの人々が平和に暮らしたいと思っていると思いますが、憎悪と暴力を扇動する過激派はほとんどいません。この質問の目的は、これらの過激派を除外する客観的な方法を見つけることです。 2つの対立するグループAとBがある町を想像してください。それぞれにN人の人々がいます。私は次の投票スキームを提案します(グループAの観点から説明しますが、他のグループとは完全に対称です): equality-rule:各グループの人数は常に同じでなければなりません。 expel-vote:グループAの各人はいつでも、グループBの特定の人が「過激派」であると主張し、投票を開始できます。グループAの50%を超える人が同意すると、その特定の人は町から追放されます。 反対票:平等ルールを維持するには、グループAの1人の人物も町を離れる必要があります。この人は、グループBの人々の間の投票によって選択されます(つまり、グループBの各人がグループAの1人に投票し、投票数が最も多い人が町から追放されます)。 私の直感は、 一方で、このスキームは、他のグループの人々に親切にすることを奨励しているため、追放の対象にはなりません。 一方、平等ルールでは、反対投票を行う危険があるため、反対投票を始める前に2度考えることを奨励します。 [追加]このスキームに関して、たとえば次のようないくつかの質問をすることができます。 グループの1つの市民の数が0に達するまで、人々が投票して反対票を投じる状況にどのような条件で分岐しますか? 2つのグループに0人を超える市民がいる状況では、どのような状況で安定しますか? どのような条件下で、安定した市民数は初期の半分以上ですか? このスキームは「過激主義」の客観的な尺度に到達しようとさえしないことに注意してください。唯一の目標は安定性です。 知りたいのですが、この投票方式は過去に検討されたことがありますか?

1
同時移動によるアルファベータ剪定?
私はいくつかのaiを作成しているゲームで、2人のプレイヤーが同時に移動するゲームを持っています。このゲームでは、1つだけの動きがあり、両方が同時にそれを行った場合、別々に行った場合とは結果が異なります(他のすべての動きはかなり独立しています)。 とにかく、私はそれを投げるための良いアルゴリズムを見つけようとしています。アルファとベータの剪定を伴うミニマックスは、プレーヤーが交互の動きではなく、交互の動きをしている場合に適しているようです。このトピックに関する論文(pdf)を見つけましたが、ちょっと頭がおかしいので、pseduocodeを読み込めません。 それで、誰かがそのアプローチを明確にするのを助けるか、そのようなゲームでアルファベータ剪定を達成する別の方法を提案するか、またはより良いアルゴリズムを完全に提案することができますか?

2
2部グラフの最小頂点カバーを最大フローに削減
二部グラフの最小頂点カバーが最大フロー問題に削減できることを示すことは可能ですか?または、最小カットの問題(次に、max-flow min-cutの定理に従うと、主張は成立します)。 直感的に:各フローについて、1つのエンドポイントを選択すると、2部グラフの最小頂点カバーになります。しかし、それを厳密に示すことはできますか?

1
NPの証明は、指数DTIMEの和集合のサブセットです
がすべてのに対しての和集合のサブセットであることを証明する必要があります。NPNP\mathsf{NP}DTIME(2nc)DTIME(2nc)\mathsf{DTIME}(2^{n^c})c>1c>1c > 1 してみましょうで言語/意思決定問題で。次に、チューリングマシンして、多項式時間で多項式サイズの証明書を指定してを決定できます。したがって、多項式サイズのすべての可能な証明書を列挙します。長さ証明書には可能な証明書があります。までの長さの証明書、ある多くの証明書。各証明書は多項式時間で決定できるため、各問題はで実行できることがわかります。何が悪いのですか?LLLNPNP\mathsf{NP}LLLMMM2l2l2^llllncncn^c∑ncl=02l=2nc+1−1∑l=0nc2l=2nc+1−1\sum_{l=0}^{n^c} 2^l = 2^{n^c + 1} - 1NPNP\mathsf{NP}DTIME(2ncnc)DTIME(2ncnc)\mathsf{DTIME}(2^{n^c}n^c)

2
スパースグラフの低次ノード
LETグラフを有することn個の頂点のいずれも単離されていない、及びN-1エッジ、N \ GEQ 2。Gに1次の頂点が少なくとも2つ含まれていることを示します。G=(V,E)G=(V,E)G = (V,E)nnnn−1n−1n−1n≥2n≥2n \geq 2GGG プロパティ\ sum_ {v \ in V} \ operatorname {deg}(v)= 2 | E |を使用してこの問題を解決しようとしました ∑v∈Vdeg(v)=2|E|∑v∈Vdeg⁡(v)=2|E|\sum_{v \in V} \operatorname{deg}(v) = 2|E|。この問題は、鳩の巣の原理を使用して解決できますか?


1
単純な文法と通常の文法の関係
ピーターリンツによって書かれた「形式言語とオートマトン入門」を読んでいて、最初の5つの章を読んだ後、互いに非常に似ている単純で規則的な(特に正しい線形)文法の問題に直面します。 これらの間にはどのような関係がありますか?違いはなんですか?(明らかにスタックを使用せずに)単純な文法の(非決定的)有限オートマトンを作成できますか?

2
ポイントが凸包の頂点の場合
運動は 点と点セットが与えられます。場合、時間で決定しますSSSpppO(n)O(n)O(n)pppが次の点から形成される凸多角形の頂点であるSSS。 問題は、私が時間の複雑さと少し混乱していることです O(n)O(n)O(n)。より素朴な解決策は、O(nlogn)O(nlog⁡n)O(n\log n) そしてかどうかをテスト ppp 頂点の1つです。

1
片側誤差のある行列乗算の確率論的検定
3つの行列与えられた場合かどうかをテストします。算術演算および-が\ mathbb {Z}からの数値に適用される場合、一定の時間がかかると仮定します。A 、B 、C∈Zn × nA,B,C∈Zn×nA, B,C \in \mathbb{Z}^{n \times n}A B ≠ CAB≠CAB \neq C+++−−-ZZ\mathbb{Z} O (ん2)O(n2)O(n^2)時間で実行される片側エラーのあるアルゴリズムをどのように記述し、その正しさを証明できますか? 数時間試しましたが、うまくいきません。X ∈Zんx∈Znx \in \mathbb{Z}^nのベクトルの最大半分s \ in S = \ left \ {1、0 \ right \} ^ nS ∈ S={ 1 、0 }んs∈S={1,0}ns \in S = \left\{1, 0\right\}^n がx \ cdot sを満たすという事実を使用する必要があると思います= …

1
エネルギー効率の高いコンピューティングとネットワーキングには、どのようなテクニックがありますか?
現在、エネルギー効率とグリーンITに関するクラウドコンピューティングの可能性を検討しています。このレビューに関連して、データセンター(コンピューティング)、ハードウェア、ネットワーキング、およびストレージデバイスのエネルギー効率を向上させるための手法について調べています。 具体的には、コンピューティング/サーバーについては、すでにいくつか見つかりました。 周波数と電圧のスケーリングを利用したエネルギーを意識したスケジューリング手法 サーバーリソースを統合する仮想化 ACPIなどの省エネハードウェア、特にモバイルデバイスなどのいくつかのプロセッサ技術 ただし、ネットワーキングデバイスの場合、省エネ技術に関する情報を取得することはかなり困難です。私は、ネットワークの負荷が低い場合にハードウェアをオフにできる新しいプロトコルと代替ルーティング方法について人々が考えていることを読んだことがあります。誰かがそのような例を知っていますか? ネットワーキングまたはコンピューティングのどちらのために追加する必要がある他のポイント

1
SATがNP完全であることをどのように証明しますか?
それでは、SATがNP完全であることをどのように証明しますか? 私はそれがNPコンプリートによって何を意味するかを知っているので、それについての説明は必要ありません。 私が知りたいのは、SATなどの1つの問題が、ハミルトニアン問題などのその他の問題への還元に頼らずにNP完全であることをどのように知っているかです。

1
フィンガープリントを証明する
しましょう a≠ba≠ba \neq b間隔からの2つの整数してみましょうランダムプライム可能ことを証明し [1,2n].[1,2n].[1, 2^n].ppp1≤p≤nc.1≤p≤nc. 1 \le p \le n^c.Prp∈Primes{a≡b(modp)}≤cln(n)/(nc−1).Prp∈Primes{a≡b(modp)}≤cln⁡(n)/(nc−1).\text{Pr}_{p \in \mathsf{Primes}}\{a \equiv b \pmod{p}\} \le c \ln(n)/(n^{c-1}). ヒント:素数定理の結果として、正確にn / \ ln(n)\ pm o(n / \ ln(n))\ {1、\ ldots、n \}n/ln(n)±o(n/ln(n))n/ln⁡(n)±o(n/ln⁡(n))n/ \ln(n) \pm o(n/\ln(n))からの多くの数は素数です。{1,…,n}{1,…,n}\{ 1, \ldots, n \} 結論:nnnビットをO(log(n))O(log⁡(n))O(\log(n))ビットに圧縮して、非常に小さな偽陽性率を得ることができます。 私の質問は、Prp∈Primes{a≡b(modp)}≤cln(n)/(nc−1)Prp∈Primes{a≡b(modp)}≤cln⁡(n)/(nc−1)\text{Pr}_{p \in \mathsf{Primes}}\{a \equiv b \pmod{p}\} \le c \ln(n)/(n^{c-1})?

2
文字列のセットに近い文字列はいくつありますか?
この質問は、高速なスペルチェッカーを構築するための効率的なデータ構造によって促されました。 2つの文字列が与えられた u,vu,vu,v、私たちは彼らがそうだと言います kkk-それらのダメラウ–レヴェンシュタイン距離 ¹が小さい場合、つまりLD(u,v)≥kLD⁡(u,v)≥k\operatorname{LD}(u,v) \geq k 固定の k∈Nk∈Nk \in \mathbb{N}。非公式に、LD(u,v)LD⁡(u,v)\operatorname{LD}(u,v) 変換に必要な削除、挿入、置換、および(隣接)スワップ操作の最小数です uuu に vvv。それはで計算することができますΘ(|u|⋅|v|)Θ(|u|⋅|v|)\Theta(|u|\cdot|v|)動的プログラミングによる。ご了承くださいLDLD\operatorname{LD}はメトリックであり、特に対称的です。 関心のある問題は次のとおりです。 セットを考える SSS の nnn ひも ΣΣ\Sigma 長さが最大 mmm、のカーディナリティは何ですか Sk:={w∈Σ∗∣∃v∈S. LD(v,w)≤k}Sk:={w∈Σ∗∣∃v∈S. LD⁡(v,w)≤k}\qquad \displaystyle S_k := \{ w \in \Sigma^* \mid \exists v \in S.\ \operatorname{LD}(v,w) \leq k \}? 同じ長さの2つの弦でも数が異なるため kkk-closestrings²一般的な式/アプローチは見つけるのが難しい(不可能?)場合があります。したがって、所定の数ごとに明示的に数を計算する必要があるかもしれませんSSS、主な質問に私たちを導きます: セットのカーディナリティを見つけることの(時間)複雑さは何ですか {w}k{w}k\{w\}_k (任意) w∈Σ∗w∈Σ∗w \in …

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

1
IFの削減ルール?
私はSimon Peyton Jonesの「関数型プログラミング言語の実装」を通じて作業しており、20ページで次のように表示されます。 IF TRUE((λp.p)3)↔IF TRUE 3(β赤あたり)(1) ↔(λx.IFTRUE 3 x)(η赤あたり)(2) ↔(λx.3)(3) ステップ1から2は、η変換として説明されます。しかし、2から3までは、「最後のステップはIFの削減ルールである」と述べています。この削減ルールが何であるかわかりません。

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