コンピュータサイエンス

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

1
多対数と多項式の間の便利な関数?
多対数関数よりも漸近的に大きく、多項式関数よりも小さい有用な関数があるかどうか疑問に思っています。 つまり、関数であるとなるようf(n )f(ん)f(n) 定数 k > 0の場合f(n )= ω (log(n )k)f(ん)=ω(ログ⁡(ん)k)f(n) = \omega(\log(n)^k)k > 0k>0k > 0 そして 定数 k > 0の場合f(n )= o (nk)f(ん)=o(んk)f(n) = o(n^k)k > 0k>0k > 0 つまり、これらの制限に適合する関数を単に生成するのではなく、証明やアルゴリズムなどで使用されたということです。

2
だけが配置されていない場合、
log nだけが配置されていないときに、要素の配列をどのようにソートできるかを理解しようとしています。んnnログんlog⁡n\log n 最大で反転で配列を並べ替えると複雑さO (n log (I / n ))があると聞きました。ソートされていないlog n要素があるため、私の場合、最大でn log nの反転があります。私IIO (n ログ(私/ n))O(nlog⁡(I/n))O(n\log(I/n))ログんlog⁡n\log nn ログんnlog⁡nn\log n 質問に対する答えはこれは式と一致しますが、その背後にある「アイデア」、またはそれを実現するソートアルゴリズムは理解できません。O (n ログログn )O(nlog⁡log⁡n)O(n\log\log n)
8 sorting 

2
n-1次元空間でn個の等距離点を生成する方法
言ったように、ユークリッド空間でn等距離の点を生成するプログラムを構築したいと思います。私が知っていることから 1d:すべてのカップルのポイント 2d:すべての正三角形 3d:すべて正四面体 3dまで:正三角形超三角形と呼ばれると思います したがって、私の問題は次のとおりです。n-1ユークリッド空間で、定義済みの点を指定して、各点の間に距離dがある正三角形のハイパートライアングルを作成するためにn-1を構築します。 たとえば、3Dスペースで次のように始めることができると思います。 p1 =(x1、y1、z1)固定 p2 =(x2、y2、z2) p3 =(x3、y3、z3) p4 =(x4、y4、z4) d dとp1を知ってp2を修正し始めます d²=(x1−x2)2+(y1−y2)2+(z1−z2)2d²=(x1−x2)2+(y1−y2)2+(z1−z2)2d²=(x_1-x_2)^2 + (y_1-y_2)^2 + (z_1-z_2)^2 3つの変数x2、y2、z2があります。そのうち2つをランダムに修正し、3つ目は問題なく決定できます。 次に、2番目の点について、2つの方程式を定義します。 d²=(x1−x3)2+(y1−y3)2+(z1−z3)2d²=(x1−x3)2+(y1−y3)2+(z1−z3)2d²=(x_1-x_3)^2 + (y_1-y_3)^2 + (z_1-z_3)^2 d²=(x2−x3)2+(y2−y3)2+(z2−z3)2d²=(x2−x3)2+(y2−y3)2+(z2−z3)2d²=(x_2-x_3)^2 + (y_2-y_3)^2 + (z_2-z_3)^2 前と同じように、2つの変数を修正して3番目の変数を決定できると想定しています。 最後の点について、それを定義する3つの方程式があります。 したがって、n-1次元空間の場合、最後の点を定義するn-1方程式があります。 1つの変数を持つ2次方程式で構成されるこの種のシステムを解決する方法がわかりません。最後の1つを決定するためにn-1次元を修正するプロセスが等距離超三角形につながるかどうかはわかりません。さらに、複雑さが小さく、実装が簡単な他の方法が存在する場合もあります。 私は十分に明確であったと思います、そしてあなたの助けに感謝します。

1
システムF(および他の純粋な型システム)での再帰型エンコーディング
私は純粋な型システム、特に構造の計算を研究しており、フィリップワドラーによれば、再帰型のエンコーディングを使用してそれを可能にしようとしています。例として、私はMorte Haskellライブラリを使用して、Cardelliによって指定されたスコット数値をエンコードしています。 エンコーディングの概要は次のとおりです:(正の)再帰型が与えられた場合... μ X。F バツμバツ。F バツ\mu X.F\ X ...システムFのタイプとしてエンコードする場合があります... L fi x X 。F バツ = Λ X 。(F バツ→ X)→ XLf私バツ バツ。F バツ = Λバツ。(F バツ→バツ)→バツLfix\ X.F\ X\ =\ \Lambda X.(F\ X\rightarrow X)\rightarrow X ...または、純粋な型システムの表記法(明示的な)...FFF L f私のx = Π F :∗ → ∗ 。Π X:∗ 。(F バツ→ X)→ …

4
並べ替えなしで、並べ替えられていないリストでK番目に小さい値を見つける最も速い方法は何ですか?
私の初期アルゴリズム: 要素0を他のすべての要素と比較し、それより少ない要素の数を追跡します。 正確に(k-1)要素より大きい要素が見つかるまで、各要素について繰り返します。 最悪の場合、これはになると思います。リストをソートせずに実行時間を短縮できますか?O(n2)O(n2)O(n^2)

1
ダイナミクスの学習
私は最近、州で行動を起こすことの期待値を直接推定する強化学習手法であるQラーニングについて学びました。 システムのダイナミクスを推定するために「ダイナミクス学習」を行う手法はあるのでしょうか。「ダイナミクス学習」エージェントは、状態遷移関数の推定に役立つアクションを選択したり、既知の遷移関数のパラメーターを推定したりできます。 たとえば、カートポールシステムの「ダイナミクス学習」エージェントは、カートポールの運動方程式を近似する関数を発見します。または、エージェントはこれらの方程式を知っているかもしれませんが、振り子の慣性モーメントやカートの質量などのシステムのパラメータは知りません。 「ダイナミクス学習」を行うにはどのようなテクニックがありますか?

3
通常の言語の単語数を数えるのはなぜ簡単ではないのですか?
DFA、Aが与えられた場合、L(A)がAが受け入れる単語数を示すものとします。L(A)を計算するのは簡単だと思います。Aのエンコーディングを正規表現に変換します。クリーネの星が式のどこかに現れる場合-言語は無限です。それ以外の場合:式を使用して作成できるすべての単語の組み合わせを調べて数えます(基本的に、式に+演算子がある場合は、有効な単語の量に+で接続された文字列の量を掛けます。) これは間違っていますか?前もって感謝します

4
確定的SATソルバー
次の質問があります。SATソルバーは確定的ですか? たとえば、miniSATアルゴリズムとDPLLアルゴリズムについてです。それらは完全に確定的ですか? これらのアルゴリズムがunSATを返す場合、それは確かにソリューションが存在しないことを意味しますか?

2
NPハード問題の簡単なインスタンスの検出は簡単ですか?
私の質問は次のとおりです。がNP困難な問題であると仮定します。Πの任意のインスタンスIが与えられ、敵がこのインスタンスが簡単に解けることを知っていると仮定すると、この特定のインスタンスIを解くための決定論的多項式時間アルゴリズムを見つけることは可能ですか?ΠΠ\Pi私IIΠΠ\Pi私II 例:がGRAPH COLORINGであるとします。敵対者はn個の頂点を持つグラフGを与えます。ΠΠ\PiGGGんnn 敵はが完全であることを知っていますが、あなたはそうではありません。「このグラフはΔ + 1色で着色可能」という多項式時間アルゴリズムを見つけることができますか?GGGΔ + 1Δ+1\Delta +1 敵対者は、にプロパティPがあることを知っていますが、あなたは持っていません。「このグラフはb色で着色可能」という多項式時間アルゴリズムを見つけることができますか?GGGPPPbbb ...

1
可変性のコンテキストで「単調性」とはどういう意味ですか
私はThe Rust Programming Languageを読んでいて、次の文章を見つけました: 構造体への書き込みはアトミック操作ではないことを忘れないでください。また、などの多くの関数vec.push()は内部的に再割り当てして安全でない動作を引き起こす可能性があるため、単調性でも正当化するのに十分ではない場合があります UnsafeCell それは本のどこからともなく出てきた、そして私はこの文脈でそれが正確に何を意味するのかを見つけることを試みるオンラインで苦労した。数学関数の「単調性」の概念に関する情報が多すぎます。これは、すでに知っていましたが、明らかにあまり役に立ちません。 それについて語っているこの記事だけを見つけたようです。 ここで、明白な方法で平等を尊重することに加えて、関数型プログラムは観測の単調性を尊重しなければならないという規定も含めます。これはどういう意味ですか?ある時点で何かを観察した後は、それが将来明らかになるのを止めることはないでしょう。これは、クリプケまたはベスのセマンティクスの単調性プロパティに類似しています。 しかし、これも非常に抽象的なものであり、同じことについて話されているかどうかはわかりません。

1
カウント問題の決定バージョンがPP完全ではないような、NP完全な問題はありますか?
多項式時間決定論的検証器V(input、certificate)を修正したら、それに対応するNP問題は質問です。この入力に対して、(多項式サイズ)証明書はV(input、certificate)がTrueを返すようなものですか 関連するカウント問題(#Pクラス)は次のとおりです。V(input、certificate)がTrueを返すように証明書がいくつ存在するか。 #Pは「決定問題」のクラスではなく、問題を数えるクラスです。最も近い従来の「決定問題」クラスはPPであり、これには次の形式の問題があります。証明書の大部分はV(入力、証明書)がTrueを返す結果になりますか? 特定のNP完全問題+ベリファイアに関連するカウント問題の決定バージョンに興味があります。これは次のようになります。入力インスタンスと正の整数Kが与えられた場合:V(input、証明書)はTrueを返しますか? この決定問題は、(バイナリ検索を介して)カウントバージョンと明らかに同等です。私が間違っていないのであれば、これらすべての「NP問題に関連するカウント問題の決定バージョン」のクラスは、PPとまったく同じくらい難しいです。 1)これらの「カウント決定」問題は、多数の証明書が手動でTrueまたはFalseと見なされ、少なくともK個のTrue証明書があるアドホックベリファイア定義を選択することにより、他の多数決問題としてリフレームできます。結果の問題で過半数がTrueの場合に限り、元の 削減のアイデアを説明する簡単な例のように、8つの証明書があり、少なくとも3つの真の証明書があるかどうかを知りたい場合は、11の可能な証明書を持つ別の検証者を提案できます。元の8つの証明書については、通常はチェックし、他の3つは入力を調べずにすぐにTrueを返します。11の大部分は6であるため、この新しいベリファイアは、元の証明書が少なくとも3つを受け入れる場合、正確に大部分の証明書を受け入れます。 したがって、これらの問題はすべてPPにあります。 元の大部分の問題を解決することは、単に解決されているので2)任意PP完全問題に対応する「カウント判定」バージョンは明らかに、PP-難しいだろう問題。したがって、そのような問題はPP完全です。(I N P U T 、⌊ T O 、T LのCe r t i fI C A T E S2⌋ +1)(私んpあなたt、⌊totalCert私f私cates2⌋+1)(input, \left \lfloor \frac{ totalCertificates}{2} \right \rfloor + 1) さて、ついに、私の質問を明確に述べることができます。これは、NP完全問題のMAX、MAJバリアントに示されているのと同じアイデアの「より洗練されたバージョン」です。 カウント問題(PPにある)の決定バージョンがPP完全ではないような、NP完全な問題はありますか? たとえば、Subset-Sumの場合、私が関心を持っている関連する決定問題は次のようになります。ゼロ合計のK個の空でないサブセットはありますか? Kは無料で、証明書の半分近くに限定されないため、他の回答の引数は適用されません。

3
ブール変数の真のiff方程式がILPで満たされている
仮定するとyyy ILPプログラムでブーリアン変数である(すなわちy∈Zy∈Zy \in Z、STと)、0&lt;=y&lt;=10&lt;=y&lt;=10 <= y <= 1x1x1x_1x2x2x_2間変数整数囲まれる000及びMMM。次の高レベルの制約をエンコードします。 y=1⟺x1≤x2y=1⟺x1≤x2y = 1 \iff x_1 \le x_2 これまでのところ私はこれを持っています: x1≤x2+(M+1)yx1≤x2+(M+1)yx_1 \le x_2 + (M+1)y これにより、がtrueの場合は常に、yは1でなければならず、そうでないと方程式が成立しません。しかし、X 1 ≤ X 2、何も制限されないYを、従って、いずれかの可能性が0または1。x1&gt;x2x1&gt;x2x_1 > x_2yyy111x1≤x2x1≤x2x_1 \le x_2yyy000111 制約をエンコードするために、他にどのような方程式を追加できますか?

2
ドメイン理論と多態性
ドメイン理論は、単純型が存在する場合の計算能力の驚くべき理論を提供します。しかし、パラメトリックなポリモーフィズムが追加されると、ドメイン理論が単純な型に対する計算を説明するのと同じくらいうまくいくことを説明する素晴らしい理論はありません。確かに、System-Fのセット理論モデルが存在しないため、System-Fにそのようなものが存在するとは思いません。予測があり、ユニバース階層があるSystem-Fの制限はどうですか?これは研究されましたか?それに適用される素晴らしいドメイン理論はありますか?依存型についてはどうですか?領域理論をどうにかして弱いωω\omega -groupoids と混合して何かを達成することができますか?

1
多項式時間の制約の影響を受けるセットおよびディスジョイントパーティションのカーディナリティを最小化するにはどうすればよいですか?
私が直面している本当の問題は次のとおりです。 インスタンス:私はすべてのととと行列セットを持っています。K := { 1 、... 、K } I 、J &gt; 0 I ∈ K J ∈ NN:={1,…,n}N:={1,…,n}N:=\{1,\ldots,n\}K:={1,…,k}K:={1,…,k}K:=\{1,\ldots,k\}aij&gt;0aij&gt;0a_{ij}>0i∈Ki∈Ki\in Kj∈Nj∈Nj\in N 質問:のサブセットをできるだけ小さくして、セットを分割する必要があります集合は、すべてのに対して、すべてに対してように、和集合が等しいを設定しますi \ in K_j。SSSNNNKKK|S||S||S|KjKjK_jKKKj∈Sj∈Sj\in SI∈KJ∑j′∈Sj′≠jaij′⩽aij−1,∑j′∈Sj′≠jaij′⩽aij−1,\sum_{j'\in S\\j'\neq j} a_{ij'} \leqslant a_{ij}-1,i∈Kji∈Kji\in K_j 例: n=k=3n=k=3n=k=3および行列 \ begin {bmatrix} 0.6&2.7&1.2 \\ 1.3&2.6&0.8 \\ 1.5&0.4&0.6 \ end {bmatrix}が与えられ⎡⎣⎢0.61.31.52.72.60.41.20.80.6⎤⎦⎥.[0.62.71.21.32.60.81.50.40.6]. \begin{bmatrix} 0.6 & 2.7 & 1.2\\ …

7
教師として:適切なプログラミング言語の選択
この質問に適切な場所かどうかはわかりません。少し話題から外れている場合は申し訳ありません。 最初のプログラミングコースに適した言語を選択することは、関連するすべての教師/講師が心に留めておくべき最も重要なことの1つです。特に、学生が若い場合や数学の知識が限られている場合に役立ちます。 私は現在、数学について中程度の知識を持つ非常に熱心な若者(約16〜17歳)のグループを教えています。彼らは今高校の10年生のクラスに通っています。次期のプログラミング言語を教え始めます。 彼らは、並外れたレベルの創造性と勤勉さを備えた、市内の厳選された学生のグループです。したがって、実際のプログラミング言語での作業は、彼らにとって難しい作業ではないでしょう。そのため、Turtle Art、Scratch、Tynkerなどの単純なグラフィカルおよびドラッグアンドドロップソリューションを選択することは、オプションとは見なされません。 選択する前に確認する必要があるいくつかの要因があります。 シンプルさ:それらのほとんどは、おそらく実際のコーディングアクションをこれまで経験したことがありません。 単純さ、繰り返します。主要なアイデアの1つは、アルゴリズムの考え方を教えることです。洗練された、またはほとんど構文化されていない言語があると、それらは道から外れます。 一般性:言語は、特別な開発ケース向けに設計されていない方がよい。PHPとMATLABを、Web開発と計算/モデリング用にそれぞれ設計された例として取り上げます。 最小限の目的のもの:強制的なオブジェクト指向プログラミング(Javaなど)はありません。または、少なくともOOの概念への依存度は最小限です。 プラットフォーム:ほとんどすべてがWindows上にあるため、Windowsをサポートされる開発環境として持つことが重要です。 セットアップが簡単:開発環境をセットアップする簡単な方法を用意することをお勧めします。 業界の好み:深刻な問題ではありません。ただし、少なくとも現在アクティブな言語で、学生がほぼ実際の開発者エクスペリエンスに到達できるようにする必要があります。 ハードウェアの移植性:言語がハードウェアプログラミングで使用できるほど柔軟であることは重要です(必須ではありません)。(私はVerilogやVHDLのようなハードウェア記述言語については話していません。)その目的は、AVRマイクロプロセッサーやRaspberry Pi GPIOインターフェースのようなより単純なプロセッサーベースのハードウェアのプログラミングです。 知りたい 他に欠けている要素はありますか? また、選択肢としてどの言語を提案しますか?

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