コンピュータサイエンス

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




2
ダイクストラアルゴリズムとグラフの最短経路の幅優先探索
StackOverflowでこの質問をしました。ここに引っ越すように頼まれました。だからここにあります: これらが正しい場合、ダイクストラのアルゴリズムと有向グラフでの幅優先検索に関するいくつかの説明と入力が必要です。 ダイクストラのアルゴリズムは、サイクルがあるかどうかに関係なく、重み付きグラフでAノードからノードへの最短経路を見つけますF(負の重みがない限り)。 しかし、そのためにAは、グラフ内の他のすべてのノードへのすべてのパスが計算AさFれ、でノードのシーケンスを逆にすることで、からへのパスを取得しますprev。 BFS:非加重グラフでAノードからノードへの最短パスを見つけFますが、サイクルが検出された場合は失敗します。 ただし、BFSはノードAからノードFへのパスを計算するだけで、必ずしもノードAからのすべてのパスを計算するわけではありません。ノードFに早く到達した場合は、パスを返すだけです。

2
PとNPの不平等の矛盾の証明?
私は、階層定理を使用して、NがNPと等しくないことを主張しようとしています。これは私の主張ですが、先生に見せて差し引いたところ、受け入れざるを得ない理由が見つからない問題があると彼は言いました。 まず、P=NPP=NPP=NP仮定します。それが生じることSAT∈PSあT∈P\mathit{SAT} \in P自体は、次に、以下のそのSAT∈TIME(nk)SあT∈T私ME(んk)\mathit{SAT} \in TIME(n^k)。現状では、NPNPNPすべての言語をSATSあT\mathit{SAT}減らすことができます。従って、NP⊆TIME(nk)NP⊆T私ME(んk)NP \subseteq TIME(n^k)。逆に、時間階層定理は、言語があるべきであると述べていますA∈TIME(nk+1)あ∈T私ME(んk+1)A \in TIME(n^{k+1})ではない、TIME(nk)T私ME(んk)TIME(n^k)。これは、という結論に私たちを導くでしょうAあAであるPPPないでいる間、NPNPNP私たちの最初の仮定に矛盾です。したがって、P≠NPP≠NPP \neq NPあるという結論に達しました。 私の証明に何か問題がありますか?

2
SK2微積分は完全な基礎ですか?K2は反転Kコンビネーターですか?
具体的には、私は新しい定義されている場合K2K2K_2として K2= λ X 。(λ Y。y)K2=λx.(λy.y)K_2 = \lambda x. (\lambda y. y) の代わりに K= λ X 。(λ Y。x )K=λx.(λy.x)K = \lambda x. (\lambda y. x) だろう{ S、K2、私}{S,K2,I}\{S, K_2,I\} -calculus競合ベースであること? 私の推測は「いいえ」ですSSS、私II、およびK2K2K_2コンビネーターから通常のKコンビネーターを構築することができないように思えるだけですが、従うアルゴリズムがなく、優れているわけでもありません。これらのコンビネータから物事を作ることに関する直感。 あなたが定義できるように思える K2= K私K2=KIK_2 = K I 定期的に{ S、K、(私)}{S,K,(I)}\{S, K, (I)\} -calculus、私は実際の導出を取得することから逆方向に動作しませんでしたKKKの面でK2K2K_2、残りを。 機能的に完全ではなかったことを証明する私の試みは、使用するコンビネーターに関係なく、行き止まり(以前に見た機能)に到達したことを示すために、これらのコンビネーターから達成可能なすべての機能を徹底的に構築することを本質的に試みました。これは必ずしも機能的に不完全なコンビネーターのセットに当てはまるわけではないことを認識しています(たとえば、KKKコンビネーター自体が適用された場合、それ自体が行き止まりになることはありません)。私はいつでもSSSコンビネーターを使用して、私が最終的に行き止まりであると思ったものをこっそり抜け出すことができたので、このアプローチの実現可能性についてはもはや確信が持てません。 StackOverflowでこの質問をしましたが、ここに投稿するように勧められました。私はその投稿についていくつかのコメントを受け取りましたが、それらを正しく理解したかどうかはわかりません。 おまけ:完全な根拠ではない場合でも、結果の言語はチューリング完全ですか?

2
真ん中の男がメッセージを読むのを防ぐことができますか?
これらすべての中間者攻撃の防止について聞いたことがありますが、中間の男があなたのストリームだけを聞いていて、メッセージ自体を変更したくない場合、これがどのように機能するのか疑問に思っています。 真ん中の男は、対戦相手によって交換されたキーを取得するだけでなく、キーを変更してから、メッセージを再度復号化および暗号化できますか? 証明書はこれをどのように防ぐことができますか? 編集: 認証局が一般的に言っていると聞いたことがあります:「ええ、それは他のものです」。しかし、証明書の署名が不正でないことをどのように確認できますか?

2
無理数を含む言語はCFLではありません
教科書でハードなエクササイズをしているのですが、どうすればいいのか分かりません。ここに問題があります。我々は言語があるとL={aibj:i≤jγ,i≥0,j≥1}L={aibj:i≤jγ,i≥0,j≥1}L = \{a^ib^j: i \leq j \gamma, i\geq 0, j\geq 1\}γγ\gammaいくつかの無理数です。LLLが文脈自由言語ではないことをどのように証明しますか? γγ\gammaが合理的である場合、その言語を受け入れる文法を構築するのはかなり簡単です。しかし、γγ\gammaは不合理なので、どうすればいいかわかりません。ここでは、ポンピングレンマが機能するようには見えません。おそらく、この言語には半線形のパリキイメージが付属していないように直感的に見えるため、パリキの定理はここで機能します。 この演習は、第4章の演習25、Jeffrey Shallitによる「形式言語とオートマトン理論の第2コース」からのものです。 私は本当にどんな助け、または正しい方向への微調整に感謝します。ありがとうございました!

2
ベータ拡張の合流点
してみましょう→β→β\to_\betaなるββ\betaで-reduction λλ\lambda -calculus。ββ\beta展開←β←β\leftarrow_\betaをt ′ ← βで定義t』←βt⟺t →βt』t′←βt⟺t→βt′t'\leftarrow_\beta t \iff t\to_\beta t'。 ある←β←β\leftarrow_\beta合流?言い換えれば、我々はすべてのためのことを持っていますl 、d、rl,d,rl,d,r、場合l →∗βd←∗βrl→β∗d←β∗rl \to_\beta^* d\leftarrow_\beta^* r、そこに存在するあなたuuようにl ←∗βu →∗βrl←β∗u→β∗rl\leftarrow_\beta^* u \to_\beta^* r? キーワード:上向き合流、逆さCRプロパティ 現地合流(すなわち場合:私は弱い性質を調べることで開始l →βd←βrl→βd←βrl \to_\beta d\leftarrow_\beta r、そしてl ←∗βu →∗βrl←β∗u→β∗rl\leftarrow_\beta^* u \to_\beta^* r)。これが真実であったとしても、ββ\beta展開が終了しないので合流を意味するわけではありませんが、障害を理解するのに役立つと思いました。 (トップ)の両方の減少がトップレベルである場合には、仮説になる(λ X1。b1)a1→ b1[ a1/ x1] = b2[ a2/ x2] ← (λ X2。b2)a2(λx1.b1)a1→b1[a1/x1]=b2[a2/x2]←(λx2.b2)a2(\lambda x_1.b_1)a_1\rightarrow b_1[a_1/x_1]=b_2[a_2/x_2]\leftarrow (\lambda x_2.b_2)a_2。最大αα\alpha -renamingを、私たちはその想定することができバツ1≠ …

2
ランタイムを実験的に比較するための標準はありますか?
私の状況 私が開発したソフトウェアモジュールを紹介する論文を書いており、そのランタイムを同じタスクの他のモジュールと比較したいと思います。ランタイムテストの欠点を認識していますが、私の場合は回避策がないと考えてください。(私は理論的にいくつかの特性を推定することができますが、それだけでは十分ではありません。) ベンチマークに使用したい特定のシナリオには、2つのパラメーターがあります。問題の複雑度 と、詳細な問題を決定するランダムシード です。主に私はへの依存を示したいです 。予備調査と理論によると、ランタイムへのの影響は小さいか無視できます。1つのタスクが完了するまでに最大で10分かかります。んんnrrrんんnrrr 実際の質問 私は、そのような実験を実行する上で一般的に受け入れられているか公開されている手順、または少なくとも一般的な落とし穴のリスト(理想的には公開)を探しています。 これまでに見つけたもの 何もない。インターネット検索は、あらゆる種類の無関係な結果を表示しますが、その場合、正しい用語を使用していない可能性があります。私が良い基準であることがわかっているキーワードの最小値を含めること(下記を参照)も役に立ちませんでした。 どうやってやるの すべての実験を、GUIなどの干渉する可能性のあるソフトウェアを可能な限り無効にして、同じマシンで実行します。 すべてのモジュールに同じ選択シナリオ、つまり同じおよび ます。んんnrrr シナリオごとに、さまざまなモジュールをランダムな順序で直接続けてテストします。つまり、さまざまなモジュールのループが最も内側のループです。これにより、マシンのパフォーマンスのゆるやかな変動(温度変化など)によるさまざまなモジュールへのバイアスを回避できます。ランダムな順序は、キャッシュや、同じモジュールの後に常にテストされる1つのモジュールなどの影響によるバイアスを回避する必要があります。 各について、ベンチマークとして異なるシードを使用して、いくつかのシナリオで最小ランタイムを取得します。これにより、マシンのパフォーマンスが短時間変動して、個々の実行が非常に悪くなるため、さまざまなモジュールへのバイアスが回避されます。んんn

2
この並べ替え/並べ替えの問題の名前は?
長さ配列が与えられます。配列の各要素は、Kクラスの1つに属しています。あなたはそのようにスワップ操作の最小数を使用してアレイを再配置することになっているすべての要素から同じクラスは常に一緒にグループ化され、それらが隣接サブアレイを形成していること、。 例えば: んnnKKK 他に3つの有効な取り決めが残っています。[ 2 、1 、3 、3 、2 、2 ] ⟶ [ 2 、2 、2 、1 、3 、3 ] 、 又は[ 2 、1 、3 、3 、2 、2 ] ⟶ [ 1 、2 、2 、2 、3 、3 ] 、 又は[ 2 、1 、3 、3 、2 、2 ] ⟶ [ 3 …

1
遺伝的プログラミングは今日関連していますか?
私の主な関心事は、遺伝的プログラミングが活発な研究分野であるかどうかであり、実際にいくつかの有望なアプリケーションがあります。今日の主流ニュースで言及されているように、機械学習の分野ではニューラルネットワークが主な流行語のようですが、同様の遺伝的プログラミングの「成功事例」は聞いたことがありません。

1
マンチェスターのコンピューター上のチューリングの謎めいた小さなプログラムは何を計算しましたか?
私はチューリングの「コンピューティング機械とインテリジェンス」の論文(https://www.csee.umbc.edu/courses/471/papers/turing.pdf)を読んでいて、彼が言う断片を見つけました: 私はマンチェスターのコンピューターに、わずか1,000ユニットのストレージを使用する小さなプログラムをセットアップしました。これにより、16桁の数字が1つ供給されたマシンが2秒以内に別のマシンに応答します。私は誰もがこれらの返信からプログラムについて十分に学ぶことを無視して、未知の値への返信を予測できるようにします。 それは私には機械学習の問題のように見えます:)しかし、私のAIへの関心を脇に置いて、私の質問は次のとおりです。 このプログラムが何をしていたのか誰か知っていますか? 私は非常に好奇心が強いです。 PS:入力と出力の長さから見て、それは暗号化アルゴリズムだったと思いますが、実際のプログラムへの手がかりをいただければ幸いです。

1
ロジックで「Turing Complete」に二重の概念はありますか?
2つのコンピューティングモデルは、それぞれがもう一方のユニバーサルシミュレータをエンコードできる場合、完全なものとして表示されます。それぞれの推論規則(および存在する場合は公理)のエンコーディングが他の定理であることが示されている場合、2つの論理が完全であることを示すことができます。計算可能性において、これはチューリング完全性と教会チューリング論文の自然なアイデアにつながりました。しかし、論理的な完全性が、同様の品質の完全性の自然に引き起こされたアイデアにつながったところを見たことはありません。 確率と計算可能性は非常に密接に関連しているので、チューリング完全性の自然な双対であるロジックの概念がある可能性があると考えることはそれほど多くないと思います。投機的には、次のようなものがあります。コンピューティングモデルでは記述できない計算可能な関数が存在する場合に限り、ロジックで証明できない「真の」定理があります。私の質問は、これを研究した人はいますか?リファレンスまたはいくつかのキーワードが参考になります。 前の段落の「真の」「計算可能な」とは、直感的ではあるが最終的には定義不可能なアイデアを指している。たとえば、グッドスタインシーケンスの有限性は「真」であるが、ペアノ算術では「真」の概念を完全に定義しないと証明できないことを誰かが示す可能性があります。同様に、対角化によって、計算可能の概念を実際に完全に定義せずに、プリミティブな再帰的ではない計算可能関数があることが示されます。最終的には経験的な概念になりがちですが、それらの概念は、完全性の概念を関連付けるのに十分なほど相互に関連しているのではないかと思いました。

3
「マップ」とはどういう意味ですか?
私はさまざまなCS教育資料でこの用語に何度も遭遇しました。 L2 CS162(UCバークレー): メモリマップI / O L4 CS162(UCバークレー): メモリマップファイル L24 CS61(UCバークレー): 「メモリマップI / O」:CPUアドレス空間にマップされたデバイス制御/データレジスタ 「マッピング」をグーグルで行った後でも、記事Map_(higher-order_function)を入手しましたが、 あまりわかりませんでした。 さらに、ウィキペディアの記事をbitmap読んで、コンテキストの意味を理解しようとしました: ビット配列は、あるドメイン(ほとんどの場合、整数の範囲)からセット{0、1}の値へのマッピングです わかりませんが、上記のコンテキストでは、データ変換について聞こえます。 CSブックを読んだ後、この段落だけが見つかりましたが、「マッピング」の意味がわかりませんでした。 メモリマッピングLinuxは(他の形式のUnixと共に)、仮想メモリ領域の内容をディスク上のオブジェクトに関連付けることにより、メモリマッピングと呼ばれるプロセスを初期化します。 検索結果としてMapReduceも取得しました。ここで、mapは「単純な操作がシーケンスのすべての要素に適用される可能性がある並列計算のイディオム」と説明されています。 私はまだこの用語について混乱しています。私が言及したコンテキストで「マップ」が何を意味するのかを誰かが説明できますか?

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