コンピュータサイエンス

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

1
coqは独自のメタセオリーを表現できますか?
私は言語のメタセオリーとタイプシステムについて学習しており、coqを使用して私の研究を形式化しています。私がやりたいことの1つは、依存型を含む型システムを調べることです。これは非常に複雑で、coqに依存できることは非常に貴重です。 この型システムの機能(およびその他のより単純な機能)は、調査したシステムの表現力をcoqのシステムに近づけるため、ブートストラップの問題に遭遇して、後で明らかになる可能性があることを心配しています。たぶんここに行く前に、ここの誰かが私の恐れに対処できます。 coqは独自のメタセオリーを表現できますか?そうでない場合でも、依存型タイピングの一般的な形式を含むより単純なシステムを表現できますか?

2
自動(人間によるテストなし)で測定する方法はありますか
そのため、数独パズルを提供するほとんどのリソースは、各パズルに難易度カテゴリを割り当てています。15以上の難易度カテゴリで私が見たものも含まれています。しかし、これらの難易度カテゴリを割り当てる良い方法は何ですか?人間のパズルソルバーが十分に使用された場合、人間がパズルを完了するまでの平均時間と、パズルを正常に解決した人のパーセンテージを、人間のサンプルについて計算し、それに応じて難易度カテゴリを割り当てることができます。しかし、平均的な人間の難易度に影響を与えるさまざまなパズルが解決されているときに出現し続ける予測可能なシナリオがあるはずです。コンピューターがパズルを解くと自動的に検出され、これらのパターンが人間の予測平均難易度にまとめられます。 。これを行うには良い方法はありますか?多分、サンプルパズルでの人間のパフォーマンスの十分なトレーニングデータを使用した機械学習でしょうか?

6
停止問題に対するチューリングのソリューションは、単に「設計上の失敗」ではないのですか?
チューリングのホールティング問題の解決策を、エンジニアとしてではなく論理学者として見るのに苦労しています。 ここに停止問題の私の理解があります: してみましょうすべてチューリング機械の集合とします。 MMM してみましょう内のすべてのチューリングマシンのすべての入力の集合とする。 私iiMMM 内のすべての要素ましょう内要素である。 MMM私ii ブール値およびを要素とし。 T R U Etruetruefa l s efalsefalse私ii してみましょう戻っている関数であります: h (M、私)h(M,i)h(M,i) T R U Etruetrue停止した 場合にのみM(私)M(i)M(i) fa l s efalsefalseが停止しない 場合にのみM(i)M(i)M(i) ましょう中チューリングマシンでもという。p(M)p(M)p(M)MMM 呼び出しますh(M,M)h(M,M)h(M,M) が返した場合にのみ停止しh(M,M)h(M,M)h(M,M)falsefalsefalse が返した場合にのみ停止しませんh(M,M)h(M,M)h(M,M)truetruetrue 私たちが呼ぶとき、何が起こる渡すことで、、それ自体に?ppppppp(p)p(p)p(p) 私が問題とする部分は、が場合に停止しないように実装すること。私の直感は、このアプローチを次のように理解しています。p(M)p(M)p(M)h(M,M)h(M,M)h(M,M)truetruetrue 機能するメソッドと、を壊すように設計されたメソッド与えられた場合、これらのメソッドを組み合わせてマシンを構築すると、そのマシンは壊されます。h()h()h()p()p()p()h()h()h() 矛盾による証明は形式論理で問題を解決するための有効なアプローチであると理解していますが、矛盾による証明のこの特定の適用には何らかの欠陥があるようです。 何が欠けていますか?

1
Postの対応問題は固定ワードサイズで決定可能ですか?
したがって、タイルの数を固定した場合でも、PCPを決定できないことがわかっています。N ≥ 7n≥7n \geq 7 私は不思議に思っています、固定された単語の長さがあるとき、同様のことが言えますか? 正確には、ここに問題があります: 固定のと与えられ、と、単語 と 、および、ような インデックスシーケンスはありますか。メートルmmんnnN ≥ 7n≥7n \geq 7あなた1、…あなたんu1,…unu_1, \ldots u_nv1…vんv1…vnv_1 \ldots v_n|あなた私| ≤メートル|ui|≤m|u_i| \leq m|v私| ≤メートル|vi|≤m|v_i| \leq m私1、…私ki1,…iki_1, \ldots i_kあなた私1⋯あなた私k=v私1⋯v私kui1⋯uik=vi1⋯viku_{i_1} \cdots u_{i_k} = v_{i_1} \cdots v_{i_k} 値が場合、これは決定不可能であることがわかっていますか?メートルmm これはこの質問に似ていますが、8つのリンクされた論文のどれも私のタイトルにタイトルが付いているように見えず、8つすべてをまだ読んでいません。

4
なぜ複数の戻り値が一般的ではないのですか?
複数の戻り値について質問したいのですが、なぜこの構造がプログラミング言語で好まれないのですか(概念的および/または技術的な問題)。スタックフレームについて何か聞いたことがあります。また、戻り値と変数の戻り値のためにメモリを予約することで、これが問題になる可能性があります。 接触型言語(FORTHなど)では、関数からの複数の戻り値を持つことは一般的で非常に便利なものであり、java / cのような言語でこのようなものも役立つと思います(非常に基本的な例)。 x, y = multRet(5); multret(int x) { return x+1; return x+2; exit; } 明確にするために:私は複数の値を返す方法を尋ねていません(これは既知の回答を持つ既知の質問です)が、この習慣がプログラミング言語では一般的ではない理由を明確にしたいと思います。

1
SC-DRFにアトミックのみがあり、HRFダイレクトにないプログラムがあるのはなぜですか?
「ヘテロジニアスレースフリーメモリモデル」[1]の論文では、SC-DRFではアトミックのみで構成されるプログラムはレースフリーであるが、HRFダイレクトではないという記述があります。これがなぜなのか理解できません。これがどのように起こるかを誰かが説明できますか? [1] Derek R. Hower et al。、「異質レースフリーメモリモデル」。でASPLOS '14の議事録、ACM、2014年(PDF)

1
DOES [1] -hardness近似硬度を暗示?
してみましょう可能パラメータ化カウンティング問題パラメータは数カウントソリューションコストであり、例えば、によってパラメータグラフで-sized頂点カバーを、。ΠΠ\Pikkkkkk が [1]完全であると仮定します(たとえば、既知の問題は、グラフで長さ単純なパスの数を数えることです)。ΠΠ\Pi#W#W\#Wkkk がハード(つまり、ない限り、問題のPTASが存在しない)であることを意味しますか?ΠΠ\PiAPXAPXAPXP=NPP=NPP=NP 他の一般的なパラメーター化とは対照的に、解のコストであるパラメーターについて説明する場合は、近似硬度について説明すること(たとえば、この質問を参照)に注意してください。

1
ハイパーバイザーとexokernelの違い
ハイパーバイザー(第一種)は、ハードウェアへのゲストの手術システムの要求を管理し、作成した仮想マシンを実行するソフトウェアです。exokernelは LETのプログラムがハードウェアに直接アクセスすることを、手術システムのカーネルで実装しabstactionsは、そのアーキテクチャのための実行可能ファイルの種類を実行することを特定のライブラリのサポートで、または。 どちらもハードウェアとアプリケーションソフトウェア間の抽象化レイヤーです。 2つとも、同じマシンで異なる実行可能ファイル/ソフトウェア/オペレーティングシステム/何でも実行できます では、2つの違いは何ですか?

2
推測ゲーム
私はこの質問を解決していました。以下のとおりです ジョーはリストから整数を選びます 1,2,⋯,N1,2,⋯,N1,2,\cdots,N 確率で pipip_i ピッキングの iii すべてのために 1≤i≤N1≤i≤N1\leq i \leq N。それから彼はジェイソンを与えますKKK彼の数を推測しようとします。推測のたびに、ジョーはジェイソンの推測よりも多いか少ないかをジェイソンに伝えます。ジェイソンがジョーの番号を正しく推測した場合、KKK推測では、ゲームは終了し、ジェイソンが勝ちます。ジェイソンはそうでなければ負ける。ジェイソンがすべてを知っている場合p′ispi′sp_i's 彼が勝つ確率はどれくらいですか? 1≤N≤2000001≤N≤2000001\leq N\leq 200000 1≤K≤201≤K≤201\leq K\leq 20 この問題を動的プログラミングで試しました。しましょうDP[i][j][k]DP[i][j][k]DP[i][j][k] 数が次のようになるような勝率を格納します iii そして jjj 包括的かつ唯一 kkkチャンスが残っています。そう DP[i][j][k]=maxi≤l≤j{pl+DP[i][l−1][k−1]+DP[l+1][j][k−1]}DP[i][j][1]=maxi≤l≤jpl Base CaseDP[i][j][k]=maxi≤l≤j{pl+DP[i][l−1][k−1]+DP[l+1][j][k−1]}DP[i][j][1]=maxi≤l≤jpl Base CaseDP[i][j][k] = \max_{i\leq l\leq j} \{p_l + DP[i][l-1][k-1] + DP[l+1][j][k-1]\}\\DP[i][j][1] = \max_{i\leq l\leq j}p_l\ \quad \quad \text{Base Case} しかし、の範囲が非常に高いため、この解決策は実行できません。したがって、私はソリューションを探していたときに、次のソリューションに遭遇しました(インターネットで受け入れられました)NNNO(n)O(n)\mathcal{O}(n) Sort()p[]p[]p[] …

1
すべての位置で異なる長さ 2つの単語の連結を受け入れる最小のNFA
ましょうk∈Nk∈Nk\in \mathbb N 私は、インデックスごとに異なる長さkの 2つの単語の連結言語用の小さなNFAビルドを探していkkkます。つまり、Lk={u⋅v∈Σ∗:|u|=|v|=k∧∀i,ui≠vi}Lk={u⋅v∈Σ∗:|u|=|v|=k∧∀i,ui≠vi}L_k=\{u\cdot v \in \Sigma^* : |u|=|v|=k\wedge \forall i, u_i\neq v_i\} kkkが固定されているため、|Lk|=(|Σ|⋅(|Σ|−1))k|Lk|=(|Σ|⋅(|Σ|−1))k|L_k|=(|\Sigma|\cdot(|\Sigma|-1))^kであり、有限言語として規則的であることに注意してください。 % 言語の自明なDFAには | \ Sigma |が含まれています \ k +1の状態を選択し、最初のk文字の間に見た文字を「記憶」しますが、k = o(| \ Sigma |)の場合、大幅に小さいNFAを作成できます。kkk(|Σ|k)(|Σ|k)|\Sigma| \choose k+1+1+1kkkk=o(|Σ|)k=o(|Σ|)k=o(|\Sigma|) % そのための「単純な」NFAのサイズはO∗(22k)O∗(22k)O^*(2^{2k})(より正確には、O(k2log|Σ|22k+O(log2k))O(k2log⁡|Σ|22k+O(log2⁡k))O(k^2 \log |\Sigma| 2^{2k+O(\log^2 k)})): % (|Σ|,2k)(|Σ|,2k)(|\Sigma|,2k) -universal set(すなわち、一連のベクトル\ mathcal V \ subseteq \ {0,1 \} ^ {| …

1
補数グラフで最短経路を見つける
入力として頂点を受け取るアルゴリズムを探しています sss、からの最短経路を見つける sss補数グラフ(無向)のすべての頂点に。アルゴリズムを実行する必要がありますO (V+ E)O(V+E)O(V+E) 時間、場所 EEE 元のグラフ(補数グラフではない)のエッジの数です。 もし GGG はグラフです。補数グラフは次のグラフとして定義されます。 eee元のグラフのエッジではない場合にのみ、補数グラフのエッジです。つまり、既存のエッジをすべて削除し、元のグラフから欠落していたすべてのエッジを追加します。 したがって、まず最初に、もちろん補数グラフを「構築」する(隣接リストの頂点をそこに表示されないもので置き換える)ことを考え、次に新しいリストでBFSを実行しましたが、もちろん、ランタイム元のエッジではなく、補数グラフのエッジに基づいています。 もちろん、元のグラフでBFSを実行した後、距離が sss(元のグラフで)1より大きい値は、補数グラフで1になるはずです(元のグラフで隣接していなかった場合、それらは補数グラフで隣接しているため)。しかし、距離をいつ更新するか、何を更新するかについて、特定のルールに従ってアルゴリズムを続行できませんでした。助言がありますか?

1
オブジェクト指向言語用のタグなしのガベージコレクション
私は自分の言語に適したガベージコレクション手法を探していて、このペーパーを見つけました。ベンジャミンゴールドバーグは、厳密に型指定された言語のガベージコレクション手法について説明しているため、実行時の型情報の必要性がありません。 簡単に言えば、これは、コンパイルされたコードに直接、関数呼び出しの直後にガベージコレクション関数へのポインターを置くことによって行われます。次に、これを拡張して、MLのようなパラメトリック多態性をサポートします。 今私の質問:このテクニックをオブジェクト指向言語でどのように実装できるかについての作業はありましたか?仮想テーブルのポインタを使用した間接呼び出しを通じて多くの機能が実装されていますか?

4
与えられたペアワイズ距離による同一平面性の検出
無向加重グラフ考えます。ここで、はポイントが3Dであり、エッジの重みはその端点間の(ユークリッド)距離に等しくなります。Vでのポイントの座標が与えられていないことに注意してください。すべてのペアワイズ距離が与えられていない可能性もあるため、グラフは完全である必要はなく、まばらな場合もあります。G=(V,E)G=(V、E)G = (V,E)V⊂R3V⊂R3V \subset \mathbb{R}^3 が与えられて、すべての頂点がそれらの平面の少なくとも1つに属するような平面があると言ったとしましょう。追加の制限付きで、そのような平面を見つけたいと思います。kkkkkkkkk 4点がペアワイズ距離のみで同一平面上にあるかどうかを判断するには、最も簡単な方法はCayley-Menger行列式を使用することです。私たちの問題では、Cayley-Mengerを適用するためにペアワイズ距離のほとんどを知る必要があるため、グラフはかなり密集している必要があります。制限は、Cayley-Menger行列式を使用せずに平面を見つけることです。kkk これが不可能な場合、これが不可能であることを示す証拠を入手できますか?言い換えれば、そのようなグラフと与えられた場合、何らかの方法で平面を見つけるのに十分な情報があれば、Cayley-Mengerを使用して見つけるのに十分な情報があることを証明できますか?GGGkkkkkkGGGkkk 飛行機?

1
ロックの一貫性のない状態
私はマルチプロセッサプログラミングのアートを読んでおり、一貫性のないロックの概念を理解しようとしています。具体的には、37ページで、一貫性のないロックの定義2.8.1と補題2.8.1は私には明確ではありません。 定義2.8.1。Lockオブジェクトの状態sは、一部のスレッドがクリティカルセクションにあるグローバル状態では一貫していませんが、ロック状態は、クリティカルセクションにスレッドがない、またはスレッドが開始しようとしているグローバル状態と互換性があります。 補題2.8.1デッドロックのないロックの実装が不整合な状態になることはありません。 証明: Lockオブジェクトが一貫性のない状態sであり、クリティカルセクションにスレッドが存在しないか、スレッドが開始しようとしているとします。スレッドBがクリティカルセクションに入ろうとすると、実装にデッドロックがないため、スレッドBは最終的に成功する必要があります。 Lockオブジェクトが不整合な状態sにあるとします。ここで、Aはクリティカルセクションにあります。スレッドBがクリティカルセクションに入ろうとする場合、スレッドBはAが出るまでブロックする必要があります。BはAがクリティカルセクションにあるかどうかを判断できないため、矛盾があります。 わからないこと: 一貫性がないということは、スレッドがクリティカルセクションにある場合、他のスレッドがそれについて知ることができないということだけを意味しますか? 補題証明の矛盾は何ですか?スレッドAがクリティカルセクションにあり、ロックが不整合な状態にあるとします。別のスレッドがロックの状態を上書きして取得するのを阻止するものは何ですか?

1
これらの2つのシーケンスのどちらがランダムで、どれがランダムではありませんか?
我々はせ場合(均一尺度下)無限ランダム配列であってもよい1または0、次にブール関数を定義B_k。α=α1α2α3…α=α1α2α3…\alpha = \alpha_1\alpha_2\alpha_3\ldotsαiαi\alpha_i111000BkBkB_k Bk(α1…αk)={1 if at least ⌈k/2⌉ of its inputs are 10 otherwiseBk(α1…αk)={1 if at least ⌈k/2⌉ of its inputs are 10 otherwise B_k(\alpha_1\ldots\alpha_k) = \begin{cases} 1 \text{ if at least } \lceil k/2 \rceil \text{ of its inputs are } 1 \\ 0 \text{ otherwise} \end{cases} 次に、2つのシーケンスを定義します。 B3(α1α2α3)B3(α4α5α6)B3(α7α8α9)…B3(α1α2α3)B3(α4α5α6)B3(α7α8α9)…B_3(\alpha_1\alpha_2\alpha_3)B_3(\alpha_4\alpha_5\alpha_6)B_3(\alpha_7\alpha_8\alpha_9)\ldots …

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