コンピュータサイエンス

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



2
Haskellリストタイプはどのフィックスポイントですか?
リストが次のように定義されているとしましょう List a = Nil | Cons a (List a) 次に、HaskellでList x最大または最小の固定点は何ですか?lfpは無限リストを除外する必要がありますが(ただし、Haskellで作成できます)、gfpは有限リストを除外する必要があるためです。

2
「純粋な」関数の標準的な定義はありますか?
StackOverflowは私をここに指し示したので、質問は一般人の言葉では少しかもしれません。 ウィキペディアは純粋な関数を次のように定義しています コンピュータプログラミングでは、関数に関するこれらのステートメントが両方とも成立する場合、関数は純粋な関数として記述できます。 関数は常に、同じ引数値が指定された同じ結果値を評価します。関数の結果値は、プログラムの実行が進むにつれて、またはプログラムの異なる実行間で変化する可能性のある非表示の情報や状態に依存したり、I / Oデバイスからの外部入力に依存したりすることはできません。 結果の評価は、変更可能なオブジェクトの変異やI / Oデバイスへの出力など、意味的に観察可能な副作用や出力を引き起こしません。 ただし、出典を引用しているようには見えないため、これが受け入れられた定義であるのか、誰がこのように定義したのかを判断するのは困難です。 「純粋な」関数の構文/注釈が言語に含まれているときの言語の動作を見ると、かなりいくつかの異なるアプローチがあります。 Dでは、唯一の制限はグローバル状態の非変異です。「純粋な」関数はその引数を変更できます。 GCCには、「純粋」の2つのタイプがあります:(pure副作用はありませんが、グローバルな状態を読み取ることができます)およびconst(Wikipediaの定義に従って厳密に純粋です)。 C#では、「目に見える状態の変更を行わない」(それが何であれ)と定義されています。 HaskellはWikipediaの定義に従います。 だから私の質問は、純粋な関数の標準的な定義はありますか? そして、もしあるなら、その源は何ですか?

1
現代の正規表現の表現力
私は最近、主に単語のグループを特別なプロパティと照合する正規表現の課題を提案するWebサイトについて友人と話し合いました。彼は||||||||、数|が素数であるような文字列に一致する正規表現を探していました。そのような言語は、通常であれば、補題をポンプの翻訳が素数のためにあるという事実与えますので、私はすぐにそれが今まで動作しません彼に言われた十分な大きさ、それが存在するのk ≤ pがあるようP + N kは、すべての主要ですN ≥ - 1、よく、これは全くケースしにくい(素数の配分、そのような未知の自明とプロパティを破砕、...)pppk≤pk≤pk \leq pp+nkp+nkp + nkn≥−1n≥−1n \geq -1 しかし、誰かが解決策に付属している:一致しない(||+?)\1+ キャプチャグループに一致するように、この表現しようとする(つまりすることができ||、|||、||||などの上の出現箇所)のn ≥ 2回。一致する場合、文字列で表される数はkで割り切れるので、素数ではありません。それ以外の場合です。k≥2k≥2k \geq 2|n≥2n≥2n \geq 2kkk そして、グループ化と後方参照により、正規表現が理論的な意味で...正規表現よりも実際にはるかに表現力豊かになることが明らかになったので、私は愚かに感じました。今では、実際の正規表現を実行するときに私が知らなかったルックアラウンドやその他の演算子も追加されました。 ウィキペディアによると、文脈自由文法によって生成された言語よりもさらに表現力があります。だからここに私の質問があります: 現代の正規表現エンジンを使用して、(文脈自由文法から生成された)代数言語を表現できますか より一般的な説明、または現代の正規表現で説明できる言語の種類の複雑さの少なくとも上限はありますか? より実用的には、その背後に深刻な理論がありますか、それとも有限オートマトンに基づく実際の正規表現の最初のブロックに実装可能と思われるたびに新しい機能を追加するだけですか? 「モダンな正規表現」は質問が具体的ではないことを知っていますが、少なくとも後方参照を使用することを意味します。もちろん、この「現代の正規表現」言語に対する特定の制限を想定している部分的な回答者がいる場合は、遠慮なく投稿してください。

4
ワードまたはバイトでアドレス指定できますか?正しい用語
どうやら、バイトはそれ自体が8ビットであると確立しました(それは正しいですか?)。RAMとNORフラッシュは通常、かなり細かいレベルでアクセスできますが、アドレス可能な最小単位が8ビット、16ビット、またはその他の2ビットの累乗であるかどうかを判断するのはシステムアーキテクチャ次第です。正しい用語は、これをワードアドレス指定可能と呼ぶことでしょうか?または別の言い方をすれば、単語はアドレス可能な最小単位のサイズですか?または、これを説明する他の用語はありますか? mabye nibble、byte、word、double wordはすべてビット長が可変で、アーキテクチャーによってのみ定義されますか?したがって、1バイトが常に8ビットであるのは単なる偶然でしょうか。たとえば、誰かがいくつかの新しいCPUとメモリタイプを設計し、彼女のバイトを16ビットに定義できますか? 主な質問:最小のアドレス可能なメモリブロックの正確な用語は何ですか? 副問:私が探しているこの単語の反意語は何ですか(たとえば、NANDフラッシュで使用されます)?ページアドレス可能、ブロックアドレス可能?どちらも正しいですか、それとも不正確ですか?

2
無限の正規言語を2つの互いに素な無限の正規言語に分割する
無限の正規言語与えられた場合、を2つの互いに素な無限の正規言語L_1、L_2に分割できることをどのように証明できますか?つまり、L_1 \ cup L_2 = L、L_1 \ cap L_2 = \ varnothingであり、L_1とL_2は両方とも無限であり規則的です。LLLLLLLL 1 ∪ L 2 = L L 1 ∩ L 2 = ∅ L 1 L 2L1,L2L1,L2L_1, L_2L1∪L2=LL1∪L2=LL_1 \cup L_2 = LL1∩L2=∅L1∩L2=∅L_1 \cap L_2 = \varnothingL1L1L_1L2L2L_2 これまでのところ、私は考えました: \ begin {gather} L_1&= \ {xy ^ nz \ mid \ …

2
独立セットとセットパッキングの同等性
ウィキペディアによると、独立集合問題は集合パッキングの特殊なケースです問題の。しかし、これらの問題は同等であるように私には思えます。 独立集合探索問題がある:グラフ所与G(V,E)G(V,E)G(V,E)及び整数nnn、検索nnn隣接しない2つがの頂点。 セットのパッキング探索問題がされて:有限コレクション与えられたの有限集合の整数、見つけるCCCnnnnnn対毎の互いに素であるセット。 次の双方向の削減に基づいて、それらは同等であると思います。 →:グラフ上の独立した集合問題を考えて、集合ののコレクションを作成します。各頂点に対して、隣接するすべてのエッジを含む集合があります。ここで、すべてのパッキングセットは、2つの頂点が共通していない頂点のセットに対応します。つまり、これはの同じサイズの独立したセットです。G(V,E)G(V,E)G(V,E)CCCv∈Vv∈Vv \in VSv∈CSv∈CS_v \in CvvvCCCGGG ←:コレクションセットパッキング問題をとして、すべてのセットに頂点があり、と間にエッジがあるグラフ作成します。セットと交差する場合、。ここで、すべての独立した頂点セットは、2つが交差しないセットのセットに対応します。つまり、これは同じサイズののセットパッキングです。CCCG(V,E)G(V,E)G(V,E)S∈CS∈CS \in CvS∈VvS∈Vv_S \in VvS1vS1v_{S_1}vS2vS2v_{S_2}S1S1S_1S2S2S_2GGGCCCCCC 私の質問は、私の削減は正しいですか?もしそうなら、これらの問題は同等ですか?ある問題に対して他の問題に対して近似アルゴリズムを使用することは可能ですか?

2
高速ハッシュ:ファイルの変更を識別するためのさまざまな手法の組み合わせ?
ファイルが同じかどうかをすばやく検出する方法を作成したいと思います。ほぼ100%の確実性のために、既存のハッシュアルゴリズム(SHA256など)を使用します。ただし、ファイルは数GBの巨大なビデオファイルであることが想定されているため、SHA256ハッシュの計算には、特にネットワーク上で時間がかかる場合があります。 したがって、他のさまざまな手法を組み合わせたいと思います。 ファイルサイズ:ファイルサイズが変更された場合、コンテンツは変更されました(確か) 頭/尾ハッシュ ランダムハッシュ 後者の2つは私の質問の一部です。 私の推測では、ヘッダーには次のようなものがあります: フレームレート(ビデオなど) 解像度(ビデオ、画像など) (ファイル)長さ(フレーム、ピクセルなど) 最終変更日(例:動画ではなくWord文書) 尾をチェックすることを検討する理由は次のとおりです。 MP3にはタグ情報があります EXIFが正しい場合は、最後にカスタムデータを追加します ランダムハッシュは、ファイル内のランダムな位置にある特定の長さ(例:64 kB)の126の領域を選択し、それらのハッシュを作成します。もちろん、後で比較するためにオフセットを覚えています。全体として、ハッシュには(1 + 126 + 1)* 64 kBのデータを使用するので、ハッシュを取得するには、数GBではなく8 MBを読み取るだけで済みます。 たぶん今は数学の問題でしょうが、ファイルサイズ、ヘッド、テール、ランダムデータの組み合わせを使用して変更を検出し、このクイックハッシュサムを生成する可能性はどのくらいありますか? ファイルは常に正当なファイルであると思います。シングルバイトを操作するメリットはありません。ユーザーは通常のビデオ編集ツールを使用してファイルを変更します。 更新:私はCrypto.StackExchangeからのこの回答を受け入れませんでした。私の提案は暗号化されておらず、安全であることを意図していないことに同意します。また、ファイルのCRC処理が高速であることにも同意しますが、私の場合は本当にハッシュが必要です。その理由を説明します。 私のアプリケーションでは、ブックマークをビデオに保存することが期待されています。私のデータベースは、ビデオハッシュとブックマークを保存することが期待されています。 ユーザーがファイルを移動または名前変更することがあります。私のプログラムは、ファイルが存在しないことを認識しますが、データベースからブックマークを削除しません。代わりに、同じビデオが(誤って)再度再生されたときに、(おそらく)同じファイルであることを認識したいと思います。 ユーザーは、ネットワークドライブ(NAS)にファイルを保存し、ビデオをストリーミングする必要があります。それらはダムストレージです。サーバーコンポーネントをインストールできません。そして、それらはかなり遅いかもしれないので、私は本当に完全なハッシュを望んでいません。3 GBファイルのフルハッシュの計算には、ハッシュアルゴリズムの速度に関係なく、10 MB /秒で少なくとも5分かかります。 ユーザーがファイルを編集した場合、どういうわけかハッシュが一致しないことを期待します。そうしないと、間違ったブックマークが表示されてしまうからです。 正しいブックマークを取得できる可能性は約80%です。ハッシュピースをいくつまとめて、ファイルのどこに配置すればよいですか?

3
LTL、CTL、CTL *ではなく
時相論理LTL、CTL、CTL *は、計算に変換/埋め込みできることが知られています。言い換えると、(モーダル)μ計算はこれらのロジックを包括します(つまり、より表現力があります)。μμ\muμμ\mu この問題について詳しく説明している論文や本を説明してください。特に、時相論理では表現できず、微積分では表現できない具体的な公平性や活性などの性質はありますか?μμ\mu


1
収束するのではなく分岐するニューラルネットワーク
2層のニューラルネットワーク(CUDAを使用)を実装しました。(レイヤーあたり2ニューロン)。私は、バックプロパゲーションを使用して2つの単純な2次多項式関数を学習させるようにしています。 しかし、収束するのではなく、それは発散します(出力は無限大になります) これが私が試したことの詳細です: 初期の重みを0に設定しましたが、発散していたため、初期の重みをランダム化しました(範囲:-0.5〜0.5) 学習率が高すぎるとニューラルネットワークが分岐する可能性があるため、学習率を0.000001に下げました。 追加しようとしている2つの関数は次のとおりです。3* i + 7 * j + 9およびj * j + i * i + 24(レイヤーiおよびjを入力として指定しています) 私は以前にそれを単一の層として実装しました、そしてそれは今それをしているよりも多項式関数をよりよく近似することができました このネットワークに勢いをつけることを考えていますが、それが学習に役立つかどうかはわかりません 線形(noのように)アクティベーション関数を使用しています 最初は振動がありますが、いずれかのウェイトが1を超えると出力が発散し始めます コードをチェックして再チェックしましたが、コードになんら問題はないようです。 だから私の質問です:ここで何が問題になっていますか? どんなポインタでも大歓迎です。

1
操作の下で言語が「効果的に閉じられている」とはどういう意味ですか?
私はいくつかの正式な言語理論の論文を読んでいて、理解できない用語に出くわしました。 このペーパーでは、セットが「交差点で効果的に閉じている」またはその他の操作について言及することがよくあります。ここで「効果的に」とはどういう意味ですか?これは通常の閉鎖とどう違うのですか? 参考までに、これらの記事は次のとおりです。 M.デイリーとI.マッキヤン。ウイルス遺伝子圧縮の正式なモデリング。International Journal of Foundations of Computer Science、16(3):453–469、2005年。

1
値が重みNP完全に等しい0-1ナップザック問題ですか?
NP完全であると思われる問題があります。それがNPであることを証明するのは簡単です。私の現在の一連の考えはナップザックからの削減を使用することを中心に展開しますが、すべてのアイテムの値がその重みに等しい0-1-ナップザックのインスタンスが発生します。 これはまだNP完全ですか?それとも何か不足していますか?


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