コンピュータサイエンス

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

2
長さ6、サイズ32、距離2のバイナリコードはありますか?
問題は、、st、存在を証明または反証することです ; ; 。(はハミング距離を表します)CCC| c | =6、∀C∈C|c|=6、∀c∈C|c| = 6,\forall c\in C| C| =32|C|=32|C| = 32d(c私、cj)≥ 2 、1 ≤ I &lt; J ≤ 32d(c私、cj)≥2、1≤私&lt;j≤32d(c_i,c_j)\geq2,1\leq i<j\leq32ddd 私は満足のいくコードを作成しようとしました。私が得ることができる最高のようにすることですの連結サイズ16 32であり、今私ドン、上部のサイズの上限理論であることを起こります問題を解決するために次に何をすべきかわからない。C= C』× C』C=C』×C』C = C'\times C'C』= { 000 、011 、110 、101 }C』={000、011、110、101}C' = \{000,011,110,101\}

1
グラフに自明ではない自己同型があるかどうかを判断するための効率的なアルゴリズムはありますか?
私はラテン方格に関連する問題に取り組んでおり、本質的に決定問題に帰着する方法を求めています。 入力:有限の単純なグラフG。 出力:YESGが自明でない自己同型を持つNO場合、それ以外の場合。 したがって... 質問:グラフに自明でない自己同型があるかどうかを判断するための効率的なアルゴリズムはありますか? NautyまたはBliss(およびおそらく他のいくつかのパッケージ)を使用して、自己同型グループ全体を計算できますが、私はそれを必要としません。私が判断する必要があるのは、それが取るに​​足らないことかどうかです。 この決定問題は、理論的には「自己同型グループ全体を計算する」ことと理論的には同じくらい複雑である可能性があります。よく分かりません。 私の目的では、「効率的」とは基本的に「自己同型群全体を計算するよりも実際に速い」ことを意味しますが、その背後にある理論にも興味があります。

6
Big-O-Notationの通常のランタイムのバリエーションはありますか?
やなど、複数の表記があります。やなど、実際にそれらのバリエーションがあるのか​​、それとも数学的に正しくないのかと思いました。OOOO (n )O(n)O(n)O (n2)O(n2)O(n^2)O (2 n2)O(2n2)O(2n^2)O (ログん2)O(log⁡n2)O(\log n^2) それとも、をに改善できると言うのは正しいことでしょうか?私はまだランタイムを理解することはできませんし、必要もありませんし、何も改善する必要はありませんが、これが実際の関数の記述方法かどうかを知る必要があります。O (5 n2)O(5n2)O(5n^2)O (3 n2)O(3n2)O(3n^2)

4
境界停止問題は決定可能です。なぜこれがライスの定理と矛盾しないのですか?
ライスの定理の1つのステートメントは、「計算の複雑さ:現代的なアプローチ」(Arora-Barak)の35ページに記載されています。 部分関数{0,1}∗{0,1}∗\{0,1\}^*に必ずしもすべての入力に定義されていない機能です。TMは、が定義されているすべてのあり、が定義されていないすべてのについて、入力時に実行されると Mが無限ループに入る場合、部分関数計算すると言います x。場合 Sは、部分関数の集合であり、我々は定義 fのS入力上のブール関数です α{0,1}∗{0,1}∗\{0,1\}^*MMMfffxxxfffM(x)=f(x)M(x)=f(x)M(x) = f(x)xxxfffMMMxxxSSSfSfSf_Sαα\alpha出力1 IFF MαMαM_\alphaを計算における部分関数SSS。ライスの定理は、すべての自明でないSSSについて、関数fSfSf_Sは計算可能ではないと述べています。 ウィキペディアは、制限付き時間チューリングマシンの言語はEXPTIME完了であると述べています。私は、この言語のようなものに見える期待{(α,x,n):Mα{(α,x,n):Mα\{(\alpha,x,n) : M_\alpha 受け入れxxx以下にnnnのステップ}}\}。したがって、MMMこの有界言語を指数関数的に決定するDTMとしましょう。このDTMはすべてのチューリングマシンのいくつかのプロパティを決定しているようです。そのため、私の直感は、ライスの定理がそのような決定を排除していることを教えてくれます。しかし、明らかにMMMは合計関数を計算します。 この言語とライスの定理との関係について何が欠けていますか?

2
「O(1)-complete」問題はありますか?
多くの複雑なクラスには「完全な」問題があります。時間で解決できる問題の複雑さのクラスに完全な問題が存在しますか?O (1 )O(1)O(1) 複雑なのは、このクラスが計算モデルに依存していることです。「合理的」とは通常、チューリングマシンとの多項式時間の等価性を意味するので、問題は、ある合理的な計算モデルでは時間で解決できますが、別のモデルでは解決できません。ただし、特定の合理的なモデルについては引き続き問題が解決する可能性があります。O (1 )O(1)O(1) 一定時間の多元削減を見るのが最も理にかなっていると思います。ただし、それらに関する文献があれば、他の賢明な削減を検討することもできます。 このようなものは存在しますか、それとも計算のモデルに対して研究されましたか?

1
λ-calculus:関数のメモリ表現で最も効率的なものは何ですか?
関数エンコード(チャーチ/スコット)と従来エンコード(アセンブラ/ C)のデータ構造のパフォーマンスを比較したいと思います。 しかし、その前に、メモリ内の関数表現がどれほど効率的/であるかを知る必要があります。もちろん、関数は部分的に適用することもできます(別名、クロージャ)。 現在の一般的な関数型言語(Haskell、ML)のエンコードアルゴリズムの使用と、達成可能な最も効率的なアルゴリズムの両方に興味があります。 ボーナスポイント:マップが(ネイティブ整数にエンコードされた整数を機能するようなエンコーディングありshort、intCでなどで)。可能ですか? パフォーマンスに基づいて効率を評価します。言い換えれば、エンコーディングが効率的であるほど、関数型データ構造を使用した計算のパフォーマンスへの影響は少なくなります。

2
最適な順序を見つける
私はこの問題に遭遇し、それに取り組む方法を見つけるのに苦労しています。どんな考えでも大歓迎です! たとえば、行列 -1、0、1が与えられているとします。{−1,0,1}n × k{−1,0,1}n × k\{-1, 0, 1\}^{n\ \times\ k} ⎡⎣⎢⎢⎢⎢⎢⎢1−10−11001−101010000010−11−11− 1⎤⎦⎥⎥⎥⎥⎥⎥[1010−1−100010110−1−1−10111000−1]\begin{bmatrix} 1 & 0 & 1 & 0 & -1 \\ -1 & 0 & 0 & 0 & 1 \\ 0 & 1 & 1 & 0 & -1 \\ -1 & -1 & 0 & 1 …

2
ブール行列の島を数える
ブール行列与えられた、0エントリは海を表し、1エントリは陸を表します。アイランドを垂直または水平に(ただし斜めではなく)隣接する1エントリとして定義します。X 0 1 1n×mn×mn \times mXX\mathrm X000111111 元の質問は、特定のマトリックス内の島の数を数えることでした。著者は再帰的な解決策(O(nm)O(nm)\mathcal{O}(nm)メモリ)について説明しました。 しかし、O(m)O(m)\mathcal{O}(m)またはO(n)O(n)\mathcal{O}(n)または\ mathcal {Oを使用してアイランドを動的にカウントするストリーミング(左から右、次に次の行まで)ソリューションを見つけることに失敗しました}(n + m)O(n+m)O(n+m)\mathcal{O}(n+m)メモリ(時間の複雑さに制限はありません)。それは可能ですか?そうでない場合、どうすればそれを証明できますか? count関数の特定の入力に対して期待される出力のいくつかの例: count⎛⎝⎜010111010⎞⎠⎟=1;count⎛⎝⎜101010101⎞⎠⎟=5;count⎛⎝⎜111101111⎞⎠⎟=1;count(010111010)=1;count(101010101)=5;count(111101111)=1; count\begin{pmatrix} 010\\ 111\\ 010\\ \end{pmatrix} = 1; % count\begin{pmatrix} 101\\ 010\\ 101\\ \end{pmatrix} = 5; % count\begin{pmatrix} 111\\ 101\\ 111\\ \end{pmatrix} = 1; count⎛⎝⎜⎜⎜1111100100010110100011011111⎞⎠⎟⎟⎟=2count(1111100100010110100011011111)=2 count\begin{pmatrix} 1111100\\ 1000101\\ 1010001\\ 1011111\\ \end{pmatrix} = 2 count(101111)=1count(101111)=1 count\begin{pmatrix} 101\\ …

1
型システムは、外部関数の証明アシスタントとして機能できますか?
とすれば: 非常に表現力豊かな型システムを持つ言語(例:Idris)は、外部関数インターフェース/ unsafePerformIOのようなエスケープメカニズムを持つこともできます。 これらのプロパティを表現できる型システムがない言語で書かれたプログラムのいくつかのプロパティを証明するために使用できる証明アシスタントがあります。 Curry–Howardの対応は、特定の型の関数の型チェックが正常に実装されていることが、その型で表現されているものの証明であることを示しています。 母国語の型システムで外国語コードのいくつかのプロパティの自明でない証明を表現できますか? たとえば、すでに等しい要素の順序を維持しながら数値を非常に賢く効率的な方法でソートするstable_qsortと呼ばれるC関数と、FFIを介してstable_qsortを呼び出すIdrisプログラムがあるとしますが、これは比較的あいまいですC関数。別の証明アシスタントを使用する代わりに、関数がすべての入力に対して、イドリスコードで等しい要素を並べ替えないことを証明できますか?

1
| w |でwsする方法 = | s | そしてw s sはコンテキストフリーであるが、w#sはそうではない?
分離記号が2つの言語を区別しているのはなぜですか(その場合)。##\# 言いましょう: L={ws:|w|=|s|w,s∈{0,1}∗,w≠s}L={ws:|w|=|s|w,s∈{0,1}∗,w≠s}L=\{ws : |w|=|s|\, w,s\in \{0,1\}^{*}, w \neq s \} L#={w#s:|w|=|s|w,s∈{0,1}∗,w≠s}L#={w#s:|w|=|s|w,s∈{0,1}∗,w≠s}L_{\#}=\{w\#s : |w|=|s|\, w,s\in \{0,1\}^{*}, w \neq s \} ここに証明とをとして表す文法がありますLLLCFLCFLCFL そして、証明を追加するイムの下:L#∉CFLL#∉CFLL_{\#} \notin CFL 記号は、本当に違いを生みますか?もしそうなら、それはなぜですか?そうでない場合、どちらの証明が間違っているのですか?##\# その証明:L#∉CFLL#∉CFLL_{\#} \notin CFL その矛盾の方法によって想定。みましょうする励起一定である 文脈自由言語のためのポンピング補題により保証。単語を考慮します ここで、なのでです。以降 、ポンピング補題によると、ような 表現が存在します、、および各。L∈CFLL∈CFLL ∈ CFLp&gt;0p&gt;0p > 0LLLs=0m1p#0p1ms=0m1p#0p1ms = 0^{m}1^{p}\#0^{p}1^{m}m=p!+pm=p!+pm=p!+ps∈Ls∈Ls ∈ L|s|&gt;p|s|&gt;p|s| > ps=uvxyzs=uvxyzs = uvxyz|vy|&gt;0|vy|&gt;0|vy| > 0|vxy|≤p|vxy|≤p|vxy| ≤ puvjxyjz∈Luvjxyjz∈Luv^{j}xy^{j} z …

2
外部整合性と線形化可能性
でスパナ、TrueTime&CAP定理、エリック・ブリュワーは書いています: Spannerの微妙な点の1つは、ロックから直列化可能性を取得しますが、TrueTimeから外部整合性(線形化可能性と同様)を取得することです(強調を追加)。 外部整合性の定義とは何ですか?それは線形化可能性とどう違うのですか?

1
最大化する方法
私は常にアルゴリズムの問​​題をたくさん見ています。それは常に次のような長い行に還元されます。 あなたが持っている整数配列の、あなたは見つける必要がある、このような最大化するで時間。h[1..n]≥0h[1..n]≥0h[1..n]\geq 0i,ji,ji,j(h[j]−h[i])(j−i)(h[j]−h[i])(j−i)(h[j]-h[i])(j-i)O(n)O(n)O(n) 明らかに時間解はすべてのペアを考慮することですが、プロパティについて他に何も知らなくても式を最大化できる方法はありますか?O(n2)O(n2)O(n^2)O(n)O(n)O(n)hhh 私が考えた1つのアイデアはを修正することです。それから、等しいからまでのを見つける必要がありますまたはあり、が固定されているため、。jjji∗i∗i^*111j−1j−1j-1argmaxi{ (h [j]−h[i])(j−i)}argmaxi{(h[j]−h[i])(j−i)}\text{argmax}_i\{(h[j]-h[i])(j-i)\}argmaxi{ h [ j ] j - h [ j ] i - h [ i ] j + h [ i ] i }argmaxi{h[j]j−h[j]私−h[私]j+h[私]私}\text{argmax}_i\{h[j]j-h[j]i-h[i]j+h[i]i\}jjjargmax私{ − h [ j ] i − j h [ i ] + i h [ i ] }argmax私{−h[j]私−jh[私]+私h[私]}\text{argmax}_i\{-h[j]i-jh[i]+ih[i]\} …

2
カリーハワード同型における並列または並行プログラムの現在の状態は何ですか?
ギラードの証明と型では、次のように読むことができます。 アルゴリズムの観点から見ると、同じ証明を書く方法が多数あるため、シーケンシャル微積分にはカリーハワード同型はありません。これにより、型付けされた計算としてそれを使用できなくなりますが、この種のいくつかの深い構造を垣間見ることができます。λλ\lambda プルーフとタイプ、JYジラード(ページ28) しかし、(線形論理について)それを読むこともできます コンピュータサイエンスの観点からは、並列処理への有望なアプリケーションを使用して、遅延、副作用、メモリ割り当ての問題に新しいアプローチを提供します[GirLaf、Laf87、Laf88]。 証明とタイプ、JYギラード(ページ149、Yves Lafont著) 並列プログラムはどのようにしてカリーハワード同型にリンクされていますか?それについての現在の考えは何ですか?

3
有限状態オートマトンの言語の無限大の条件
次の定理があります。 状態を持つ有限オートマトンが与えられ、長さが満たす文字列が存在する場合 場合、オートマトンが受け入れる言語は無限です。ワットのn ≤ | w | ≤ 2 N - 1んnnwwwN ≤ | w | ≤ 2 N - 1n≤|w|≤2n−1n \leq |w| \leq 2n-1 制約を理解しています、なぜ制約がなのかわかりませんがあります。| w | ≤ 2 N - 1| w | ≥n個|w|≥n|w| \geq n| w | ≤ 2 N - 1|w|≤2n−1|w| \leq 2n-1

1
スーパーユニバースとは?
私はこのよく知られている論文をType TheoryのUniversesで読んでいます。最初Setωはアグダと似たようなものを期待していましたが、もっと一般的なものであることがわかりました。それは、単純な帰納的再帰型からバインダーへの宇宙構築を一般化しているようです(やΣと同様)。私が聞きたい主な質問は、その背後にある意図は何ですか?ΠΠ\PiΣΣ\Sigma 以下は、通常のTarskiスタイルのユニバースを定義するいくつかのイドリスコードです。 mutual public export data U : (level : Nat) -&gt; Type where GroundU : Ground -&gt; U level BinderU : Binder -&gt; (a : U level) -&gt; (b : (x : T {level} a) -&gt; U level) -&gt; U level UnivU : U (S level) LiftU : …

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