コンピュータサイエンス

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

2
時々減少しないwhileループのループバリアント?
私が持っているテストの練習問題に取り組んでおり、ループバリアントのすべての例は、ループの反復ごとに減少しました。これについては、a <bの場合、値は同じままです。私の試みはまた、時々aがbより大きくなり、その逆になるため、負の可能性があるループバリアントを取得しました。この質問のループバリアントを見つけて証明するためのアドバイスはありますか? def mystery(a,b): # Precondition: a >= 0 and b >= 0 while a >= 0 and b >= 0: if a < b: a, b = b, a else: a = a - 1 return a 編集:この質問に興味がある人にとって、私の最善の解決策は次のとおりです。 f1=a+2b+1f1=a+2b+1f_{1} = a + 2b + 1

1
確定的な文法では説明できない実際のコンピュータ言語はどれですか?
非決定的である実際のコンピューター言語の例はありますか? コンピュータ言語ごとに、プログラミング言語、マークアップ言語、クエリ言語、モデリング言語、変換言語などを含めます。 非確定的とは、確定的文法では解析できないことを意味します。

2
なぜこのグラフはMSTヒューリスティックの2近似限界のタイトさを示しているのですか?
これは私が与えられた宿題の問題であり、何時間も頭を掻き集めてきました(そのため、いくつかの指針に満足しています)。私はすでに、近似比がよりも悪くなることはないことを知っています。ホイールグラフがあります。各エッジのコストはで、エッジで接続されていないすべてのノード間の距離はです。ホイールグラフは次のです。222111222W6W6W_6 MSTヒューリスティックアルゴリズムの出力であると思われるものを青色でマークしました。しかし、すべてのノードは一度しかアクセスできないため、これも最適なソリューションだと思います。したがって、ツアーの費用は最適とMSTの両方でになります。777 このタイプのグラフが、MSTヒューリスティックの近似境界がタイトであることをどのように示しているかはわかりません(必ずしもこのインスタンスではなく、一般にグラフ)。誰かが私を啓発できますか?222WんWnW_n

1
グリッド内で動くボールが与えられた場合、ボールはどの正方形に到達しますか?
mxnグリッドが与えられます。無次元のボールがグリッドの1つの正方形の中心に配置され、4つの方向(北東、北西、南東、または南西)のいずれかで動き始めます。ボールはボードの端に到達するまで動き続け、その時点でボールは物理法則に従って跳ね返ります。 m、n、ボールの初期位置と方向(NE / NW / SE / SW)が与えられた場合、ボールが指定されたターゲットグリッドの正方形(x0、y0)に到達するかどうかを判断できますか? ボールの動きを徹底的にたどることによって質問に答えることは可能ですが、もっと簡単なより効率的な方法はありますか?関連文献へのポインタも大歓迎です。

1
最小限の引き出しの動きで、順序付けられていないアイテムの山を引き出しに分類する
しばらく前、私は夜遅くに洗濯をしていました。洗濯物を寮に持ち帰ると、片付け始めました。 私のワードローブは次のように設定されています: 私の引き出しは、持っている衣類の種類によって分類されており、私はそのことに非常にこだわっています。これは、パンツの引き出しにTシャツを入れられないことを意味します(それ以外の場合は、毛羽立ちすぎて寝ることができません)。もちろん、私はこの分類を知っており、暗闇の中でもどの引き出しがどれであるかを知っています。 私はきれいな洗濯物を個持っており、引き出しが縦に並んでいます(引き出しの一番上が)NNNMMMD0D0D_0 引き出しは開閉可能ですが、引き出しが開いていると、衣類を引き出し入れることができません(ブロックされているため)。D私DiD_iDi + 1Di+1D_{i+1}D私DiD_i 部屋に入ると、引き出しはすべて閉じています。 終了したら、開いている引き出しをすべて閉じなければなりません。 私は思いやりのある紳士で、ルームメイトを起こしたくありません(これは大学の寮だったので、同じ部屋で寝ていました)。私はライトをオンにしないで、できるだけノイズを少なくすることにしました。 これは、以下の制約の下で洗濯物を片付けなければならないことを意味します。 洗濯物が見えないので、引っ張った瞬間に何を掴んでいるか分からない。 引き出しを開閉すると音がします。ランドリーバッグからアイテムを引き出したり、実際に引き出しに入れたりしても、そうはいきません。 一度に片方の衣類しか片付けることができません。床が汚れすぎて手が届かない家具のスペースがないので、私は服のように折りたたんで積み重ねることができません(それからそれらの積み重ねを置きません)。 衣類をバッグに入れて別のアイテムを取り出すことはできますが、次に取り出すのは、入れたばかりのアイテムである可能性があります(バッグから何を取り出すかは制御できません)。 このことから、3つの質問があります。 引き出しの開閉をできる限り少なくするために、洗濯物をどのように片付けることができますか? 他の誰かがこの問題または同様のことを考えましたか? この問題には実用的な用途がありますか?

3
機械学習を使用して関数を探索および補間しますか?
滑らかな多変量関数を「学習」または補間しようとする一般的な機械学習方法には、学習プロセス(探索)中に関数が評価されるポイントを実際に選択する方法がありますか。 各関数の評価は多かれ少なかれコストがかかり、アルゴリズムは知識の利得が最大である空間の領域を探索することを学習するという考え方になります(関数の評価のコストに対して)。最も興味深いケースでは、関数は分析的でない場合があります(例:ねじれ)。 私の経歴は物理学であり、そのような方法が存在することは確かですが、検索しても正しい用語がわからないためか、直接関連するものを見つけることができませんでした。より広く言えば、「強化学習」が探索と報酬を処理するAIの領域であることを知っているだけなので、私が求めている方法は、そのいくつかの特別なケースを表しているのかもしれません。 明確にするために、ここに例を示します。物質の相図、つまり密度を圧力pと温度Tの関数として取得したい場合があります。したがって、ここでは2つの変数(p、 T)。任意のポイント(p、T)での評価には、高価なモンテカルロシミュレーションが必要です(CPU時間の数。どれだけが、p、T空間のどこにいるかによっても異なります)。理想的なアルゴリズムは、密度を評価するポイント(p、T)を慎重に選択し、関数が最も顕著な特徴(たとえば、相転移線、つまり非分析性)をもつ領域に移動しようとします。その後、アルゴリズムに他の任意のポイント(p、T)で密度を要求すると、探索フェーズ中に取得したすべての情報を考慮して、アルゴリズムが考えられる最良の内挿/外挿が提供されます。

2
Hindley-Milner型に適用されるCurry-Howard同型では、どの命題がa-> [a]に対応しますか?
(質問はHaskellに触発されているため、Haskell構文を使用しますが、SMLやElmなどの一般的なHindley-Milnerポリモーフィック型システムに適用されます)。 型シグネチャがある場合f :: a -> [a]、その型シグネチャによってエンコードされる論理命題は何ですか? 私はそのコンストラクタは好きなタイプを知って->、(,)あなたのロジックで「操作」に対応して:->「意味」シンボルに対応。→→\rightarrow 私[]も型コンストラクタであると想定しており、答えは再帰的な定義と関係があるかもしれないと感じています。これは次のように実装できることがわかっています。 data List a = Cons a (List a) | Nil しかし、これが論理の意味で何を意味するのかはわかりません。


1
OSカーネルでのページ管理
私は私の古いOS理論の本をいくつか見ましたが、これらのOSの本すべての明白な欠落の1つは、実際に無料の物理ページ(つまり、実際に無料リストを実装するためのアルゴリズム)を追跡する方法であることに気付きました。ユーザーランドのメモリアロケーターがどのように機能するかはよくわかっていますが、物理ページの割り当てとの大きな違いは、物理ページの断片化は問題にならないということです。隣接しているかどうか。断片化の回避はユーザーランドアロケーターの主要な懸念事項の1つであるため、物理ページの割り当ては基本的に別の問題のようです。TLBへの圧力を減らすためにスーパーページをサポートしたい場合、これは完全に正確ではないと思います。 私の質問:この問題のために最新の高性能カーネルで使用されている手法は何ですか?また、この問題はNUMAシステムでは著しく複雑になりますか?

2
REGULAR_TMが決定できないことを証明
私は次の定理の証明を研究しています: 言語を考える R E G U L A RT M= { ⟨ M⟩ | MREGULARTM={⟨M⟩|M\mathit{REGULAR}_\mathit{TM} = \{\langle M \rangle | M はチューリングマシンで、は通常のA c c e p t(M)Accept(M)\mathit{Accept}(M)}}\} R E G U L A RT MREGULARTM\mathit{REGULAR}_\mathit{TM}は決定できません。 Sipserで与えられた証明は、を決定するマシンがすでにある場合、停止問題を決定するマシンを作成できることを示しています。RRRR E G U L A RT MREGULARTM\mathit{REGULAR}_\mathit{TM}SSS A c c e p tT M= …

1
これらは、CF以外の補完を持つCF言語の証明に対する有効な反例ですか?
誰かが、文脈自由でない言語の例に、文脈自由でない補完物を求めました。 最初の答えは言う: 言語 L1={ww∣w∈{a,b}∗}L1={ww∣w∈{a,b}∗}L_1= \{ww \mid w \in \{a,b\}^*\}は文脈自由ではありません(ポンピングレンマを使用して表示できるため、ここを参照してください)。その補集合はコンテキストフリーです(ここに示すように)。L2={a,b}∗∖L1L2={a,b}∗∖L1L_2 = \{a,b\}^* \setminus L_1 たぶん実際にはこれは真実かもしれませんが、上記の情報を考えると、これがそのような言語の有効な例であると私は確信していません。私は以前にがCFではないことを証明したので、それを受け入れることに問題はありません。ただし、CFGと与えられた証明は間違っています。私は本当に単純な反例を示すことができます:文字列。明らかにの形式ではないのでです。ただし、は、説明されているCFGを使用して構築することはできません。LLLL2L2L_2s=aaabaas=aaabaas=aaabaas∈L2s∈L2s \in L_2wwwwwwsssL2L2L_2 証明:文字列長さが偶数であるため、文字列はまたはの形式ではありません。したがって、それはまたはの形式である必要がありますが、ストリングの両方の半分の中央に同じ文字()があるため、これは不可能です。したがって、は矛盾します。sssAAABBBABABABBABABAaaas∉L2s∉L2s \notin L_2 2番目の答えは言う: ウィキペディアで見られる例:put、。PDAを定義することで、とがコンテキストフリーであることが簡単にわかります。あなたはそれらが決定論的文脈自由言語であることに気づくことができます、それは補完の下で閉じられたクラスです。したがって、は、文脈自由ではない補語持つ文脈自由言語です。A={anbncm}A={anbncm}A=\{a^n b^n c^m\}B={ambncn}B={ambncn}B=\{a^m b^n c^n\}A¯¯¯¯A¯\overline{A}B¯¯¯¯B¯\overline{B}A¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline{A} \cup \overline{B}A∩B={anbncn}A∩B={anbncn}A \cap B=\{a^n b^n c^n\} これは反証するのがさらに簡単です。確かに、決定論的な文脈自由言語は補完の下で閉じられていますが、それらは結合の下で閉じられていません。したがって、言語は必ずしも文脈自由ではありません。A¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline{A} \cup \overline{B} 私は現在、まだTheory of Computingを受講しているので、何か問題が発生したか、明らかな真実を見落とした可能性があります。誰かが私の主張を否定できますか?そうでない場合は、CF以外の補完機能を備えたCF言語の有効な例を提供できますか?

2
ブルートフォース検索の戦略はありますか?
エレガントな表現方法はわかりませんが、基本的にはブルートフォース検索アルゴリズムを実装したいのですが、検索スペースを列挙する方法はたくさんあります。これは私には世間知らずかもしれませんが、検索スペースを列挙する方法を選択すると、アルゴリズムが実際にうまく機能するかどうかに大きく影響すると思います。 簡略化した例として、次の決定問題を考えます。 入力:多項式p(x)p(x)p(x)整数係数と自然数ます。kkk 質問:ようなは存在しますか?i∈[k]i∈[k]i \in [k]p(i)=0p(i)=0p(i) = 0 現在、この問題を解決するためのさまざまなアルゴリズムが存在する可能性がありますが、私はブルートフォースアプローチを選択することにしました。サーチスペースを列挙するには、次の方法を検討してください。 昇順戦略:私はかどうかを確認でき、その後、0であるその後、私が見つけるまで、...、ようにまたは私はすべて試す。p(1)p(1)p(1)p(2)p(2)p(2)p(3)p(3)p(3)iiip(i)=0p(i)=0p(i) = 0i∈[k]i∈[k]i \in [k] 降順戦略:場合、私がチェックすることができ、その後、0である、その後、、···、私が見つけるまで、このようなことまたは私がしてみてくださいすべての。p(k)p(k)p(k)p(k−1)p(k−1)p(k-1)p(k−2)p(k−2)p(k-2)iiip(i)=0p(i)=0p(i) = 0i∈[k]i∈[k]i \in [k] 人気戦略:最も人気のあるソリューションの小さなリストを保存し、数値を試す前にそれらを最初に試すことができます。LLL[k]−L[k]−L[k] - L ふるい戦略:私は一種のふるい列挙を行うことができました。私はすべて2で割り切れる番号試みる、その後数が3で割り切れる次いで次いで、5、7、11、13、などを。(事前計算されたいくつかの素数のリストにアクセスできると仮定します。)[k][k][k][ k ][k][k] ランダム性戦略:ランダムなビットの大きな文字列を利用する興味深い列挙戦略があるかもしれません。 基本的に、私はブルートフォース検索アルゴリズムに関する次の質問に答えたいと思っています。 質問A:特定の列挙戦略を選択するメリットはありますか? 質問B:実際に興味深い列挙戦略を選択する検索問題の例はありますか?人気戦略のバリエーションが実際に効果的に機能する検索問題があるかもしれません。



1
ChaffのようなDPLLベースのアルゴリズムに純粋なリテラル除去が存在しないのはなぜですか?
私はさまざまなSATソルバーを調べて、それらがどのように機能し、なぜ特定の方法で設計されているのかを理解しようとしています。(しかし、私は今のところ大学にいないので、教授をしている人を知りません。誰かが助けてくれることを願ってここに投稿します。本当に感謝します。) チャフ、BCP(ブール制約伝播)が異なる原稿から実現されるDPLL:これは、2つの見て、それをしないリテラル時間(最初に提案ものからわずかに異なる技術でSATO:効率的な命題証明者)2001紙によれば、チャフ:エンジニアリング効率的なSATソルバー。ただし、このホワイトペーパーでは、純粋な文字の削除については触れていません。 でピュアリテラル撤廃の複雑さ、ヤンJohannsenが書きました ChaffやBerkMinのようなDLLタイプのSATソルバーの現在の最良の実装では、ユニットの伝播で効率を上げるためにこのヒューリスティックを犠牲にします。 ここで、「このヒューリスティック」は、純粋な文字消去を指します。純粋な文字消去が何をするかについての私の理解は、 すべての単極(または純粋)リテラルを検索します ブール値を割り当てて、それぞれが True その場合、それらを含むすべての句を削除できます。 これが私の質問です: 犠牲はどのように必要ですか?ChaffのようなDPLLベースのアルゴリズムで純粋なリテラル除去が欠けている正当な理由はありますか?各決定レベルで純粋な文字削除を行うことはできませんか(または少なくとも分岐前の最初に行うことはできません)。

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