コンピュータサイエンス

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

1
ノイズの多い関数の数学的最適化
してみましょうかなりいいです機能をすること(例えば、連続、微分可能ではなく、あまりにも多くの極大値、多分凹形、など)。私はの最大値検索するF値:X ∈ Rの Dになり、F (X )できるだけ大きくします。f:Rd→Rf:Rd→Rf:\mathbb{R}^d \to \mathbb{R}fffx∈Rdx∈Rdx \in \mathbb{R}^df(x)f(x)f(x) 任意の入力で正確に評価する手順がある場合、標準の数学的最適化手法を使用できます。山登り、勾配降下(まあ、勾配上昇)などです。しかし、私のアプリケーションでは、正確に評価する方法。代わりに、値を推定する方法があります。f (x )f (x )ffff(x)f(x)f(x)f(x)f(x)f(x) 特に、任意のxxxと任意の与えられるεε\varepsilonと、推定値を出力するオラクルがf(x)f(x)f(x)あり、その予想誤差は約εε\varepsilonです。このoracle呼び出しの実行時間は比例します。(これは一種のシミュレーションによって実装されます。シミュレーションの精度は試行回数の平方根で増加します。実行する試行の数を選択できるので、必要な精度を選択できます。)これにより、希望する精度の見積もりを取得する方法ですが、見積もりをより正確にしたいほど、時間がかかります。1/ε21/ε21/\varepsilon^2 このノイズの多いオラクルを考えると、最大値を可能な限り効率的に計算するためのテクニックはありますか?(または、より正確には、おおよその最大値を見つけます。)このモデル内で機能する、山登り、勾配降下などのバリアントはありますか?ffffff もちろん、私は非常に小さい値を修正し、このoracleで山登りまたは勾配降下法を適用して、全体で同じ維持できます。ただし、これは不必要に非効率的である可能性があります。最初にそのような正確な見積もりを必要としない可能性がありますが、解にゼロを合わせるときは、最後に近い精度がより重要です。それでは、最適化プロセスをより効率的にするために、見積もりの​​精度を動的に制御する私の能力を利用する方法はありますか?この種の問題は以前に研究されたことがありますか?εε\varepsilonεε\varepsilon

4
たとえ証人がいることをすでに知っているとしても、証人を見つけることはNP困難なのでしょうか?
NP困難な問題の一般的な例(クリーク、3-SAT、頂点カバーなど)は、答えが「はい」か「いいえ」かが事前にわからないタイプのものです。 答えがイエスであることがわかっているという問題があり、さらに多項式時間で証人を検証できると仮定します。 その後、常に多項式時間で証人を見つけることができますか?それとも、この「検索問題」はNP困難なのでしょうか

2
この組み合わせ最適化の問題は、既知の問題と似ていますか?
問題は次のとおりです。 2次元の配列/数値のグリッドがあり、それぞれが「利益」または「利益」を表します。また、2つの固定整数とh(「幅」と「高さ」)と、固定整数nもあります。wwwhhhnnn ここで、これらの長方形のセルの値の合計が最大になるように、グリッドに次元w × hの長方形をオーバーレイします。nnnw×hw×hw \times h 次の図は、そのような2つの長方形が上に重ねられた2次元グリッドの例です(この図は、最適なソリューションを示していませんおよびn = 2の 1つの可能な重ね合わせのみです)。w=h=2w=h=2w = h = 2n=2n=2n = 2 長方形は交差できません(そうでなければ、1つの長方形の最適な位置を見つけて、すべての長方形をその位置に配置するだけで済みます)。 上記の例では、セルの値の合計は−2+4.2+2.4+3.14+2.3−1.4+1−3.1−2+4.2+2.4+3.14+2.3−1.4+1−3.1-2 + 4.2 + 2.4 + 3.14 + 2.3 -1.4 + 1 - 3.1 これは、組み合わせ最適化の既知の問題に似ていますか?読書を始めて、それを解決する方法を見つけることができるように。 興味のある人のためのいくつかの背景: これまでのところ、私が持っていた唯一のアイデアは、貪欲なアルゴリズム(最初の四角形の最適な場所を見つけ、次に2番目の四角形の重複しない場所を見つけるなど)または遺伝的アルゴリズムなどのメタヒューリスティックです。 実際には、約100万のセルと数万(または数十万)の長方形を持つグリッドでこの問題を解決したいと考えていますが、短時間で解決する必要はありません(つまり、アルゴリズムは数時間または数日かかる場合があります。)正確な解決策を期待していませんが、これらの制約を考慮して、可能な限り優れた解決策を求めています。 乾杯!

3
文法
缶誰かが私に制作しようとバックトラックと理由を再帰下降構文解析啓発とS → A(この順番では)文法によって形成された言語認識していないS → A S Aを| A。S→aSaS→aSaS \rightarrow aSaS→aaS→aaS \rightarrow aaS→aSa | aaS→aSa | aaS \rightarrow aSa\ |\ aa 言語からの単語を解析するだけのようです。{a2n | n≥1}{a2n | n≥1}\{a^{2^n}\ |\ n \ge 1 \} たとえば、このABNFパーサージェネレーターをプロダクションルールとともに使用して、そのようなパーサーを生成しましたがS = "a" S "a" / "aa"、パーサーはを認識しませんaaaaaa。 パースツリーの左端からのノードの連結が7で始まるまでは、プロダクションを使用し、その後、ツリーが見えるまでプロダクションS → a aを選択して、パースツリーを上に移動することを期待します。このような:S→aSaS→aSaS \rightarrow aSaaS→aaS→aaS \rightarrow aa S / | \ a …

1
基本言語とクロージャプロパティのセットからすべての文脈自由言語を構築しますか?
正規表現を見る1つの方法は、次の事実の建設的な証明としてです。小さな言語のセットから始めて、小さな固定された一連のクロージャープロパティを介してそれらを組み合わせることにより、正規言語を構築することが可能です。具体的には、空の言語、空の文字列を含む言語、およびすべての1文字の文字列の言語から始める場合、ユニオン、連結、およびKleeneスターを使用して、すべての可能な通常の言語を組み立てることができます。 すべてのコンテキストフリー言語のみを生成するために使用できる基本言語とクロージャープロパティのセットはありますか?(明確にするために、私はすべてのCFLに正規表現を記述できるかどうかを尋ねていませんが、不可能であることを知っています。代わりに、CFLの正規表現のようなフレームワークを設計する方法があるかどうか疑問に思っています。同じ基本原則。)

2
乗算で
私が探していたここで、と私は2つの乗算のための最高の実行時に気づいたの数字を-bitsすることであるO (nは⋅ ログインN ⋅ 2 O (ログ* nで)が、私は簡単にその中に実行するアルゴリズムに気づくことができますO (N ⋅ log n )。んnnO (N ⋅ ログN ⋅ 2O (ログ∗n)O(n⋅log⁡n⋅2O(log∗⁡n)O(n\cdot \log n \cdot 2^{O(\log^* n)}O (N ⋅ ログn)O(n⋅log⁡n)O(n\cdot \log n) すべての後、我々は度から2つの多項式を乗算する方法を知っているにO (N ログN )実行時。しかし、多項式を乗算することは、2つのnビット数を乗算することと同じです。したがって、O (n log n )の 2つのnビット数を乗算するアルゴリズムがあります。発生する可能性のある唯一の問題はキャリーですが、各フェーズでO (n )時間でそれを修正でき、最後まで右端のビットとその左隣に移動します。つまり、私たちのランタイムが残っているものとO (N ⋅ ログのnんnnO (n ログn)O(nlog⁡n)O(n \log n)んnnんnnO (n ログn)O(nlog⁡n)O(n \log …

1
ハイパースレッディングを使用するとパフォーマンスが低下する理由
ハイパースレッディングがパフォーマンスの低下につながることを、このようなさまざまな場所で読んだことがあります。 ハイパースレッディングがパフォーマンスの低下を引き起こす理由と方法を理解できません。 なぜハイパースレッディングによってOSが空きリソースを利用できるようになっても、パフォーマンスが低下するのはなぜですか。 ベンチマークはハイパースレッディングを原因として示していますが、誰かがこの理由を説明できます。 ありがとう

4
異なる棒から同じ棒を切る
あなたは持っている必ずしも不可欠ではない任意の長さの棒を、。nnn いくつかのスティックをカットすることで(1つのカットは1つのスティックをカットしますが、何度でもカットできます)、次のようなスティックを取得します。k&lt;nk&lt;nk<n これらのスティックはすべて同じ長さです。kkk すべてのスティックは、少なくとも他のすべてのスティックと同じ長さです。kkk カットを実行した後、スティックを取得することに注意してください。n+Cn+Cn + CCCC 必要なカットの数が最小限になるように、どのアルゴリズムを使用しますか?そして、その数は何ですか? 例として、と任意の考えます。次のアルゴリズムを使用できます。k=2k=2k=2n≥2n≥2n\geq 2 となるような長さの降順でスティックを並べます。L1≥L2≥…≥LnL1≥L2≥…≥LnL_1\geq L_2 \geq \ldots \geq L_n もしその後、カットスティック2等分に#1。長さ本の棒があり、少なくとも残りの棒同じ長さです。L1≥2L2L1≥2L2L_1\geq 2 L_2L1/2L1/2L_1 / 22…n2…n2 \ldots n それ以外の場合()、スティック#1を2つの等しくないサイズおよびます。これで、長さ 2つの棒があり、より長く、他の棒はです。L1&lt;2L2L1&lt;2L2L_1 < 2 L_2L2L2L_2L1−L2L1−L2L_1-L_2L2L2L_2L1− L2L1−L2L_1-L_23 … n3…n3 \ldots n どちらの場合も、1回のカットで十分です。 これをより大きなに一般化しようとしましたが、考慮すべき多くのケースがあるようです。エレガントなソリューションを見つけることができますか?kkk

1
最長のフィボナッチ部分文字列を見つけるための単純なアルゴリズムの複雑さ
2つの記号と与えられた場合、番目のフィボナッチ文字列を次のように定義してみましょう:aa\text{a}bb\text{b}kkk F(k)=⎧⎩⎨baF(k−1)⋆F(k−2)if k=0if k=1elseF(k)={bif k=0aif k=1F(k−1)⋆F(k−2)else F(k) = \begin{cases} \text{b} &\mbox{if } k = 0 \\ \text{a} &\mbox{if } k = 1 \\ F(k-1) \star F(k-2) &\mbox{else} \end{cases} 文字列の連結を示します。⋆⋆\star したがって、次のようになります。 F(0)=bF(0)=bF(0) = \text{b} F(1)=aF(1)=aF(1) = \text{a} F(2)=F(1)⋆F(0)=abF(2)=F(1)⋆F(0)=abF(2) = F(1) \star F(0) = \text{ab} F(3)=F(2)⋆F(1)=abaF(3)=F(2)⋆F(1)=abaF(3) = F(2) \star F(1) = \text{aba} …

2
自己参照なしで問題を停止する
停止問題では、特定の入力iで特定のチューリングマシンMが停止するかどうかを判断できるチューリングマシンあるかどうかに関心があります。通常、証明はそのようなTが存在すると仮定して開始されます。次に、iをM自体に制限し、対角引数のインスタンスを使用して矛盾を導出する場合を考えます。私が私≠ Mであるという約束が与えられた場合、証明はどのようになるのか興味があります。どのような約束について私≠ M "、Mは、「機能的に同等であるM?TTTMMM私iiTTT私iiMMM私≠ Mi≠Mi \not = M私≠ M』i≠M′i \not = M^\primeM』M′M^\primeMMM

1
整数の大きなべき乗のビット数を計算する
バイナリ表現で2つの整数とが与えられた場合、ビットサイズを計算する複雑さは何ですか?n x nバツxxんnnバツんxnx^n これを行う1つの方法は、十分な精度で近似を計算することにより、を計算することです。これは、表示されるコンピューティングと精度のビットで行うことができる、長さの二つの整数の積を計算するのに必要な時間である。この利回り複雑さの(特別に単純ではない)アルゴリズムおよそ場合両方のビットサイズに拘束されおよび(私はエラーをしなかった場合)。ログ2(Xの)ログ2(X )K O (M (K )のログ・K )M (K )K O (S ログ2 s )s x n1 + ⌊ ログ2(xん)⌋ = 1 + ⌊ N ログ2(x )⌋1+⌊log2⁡(xn)⌋=1+⌊nlog2⁡(x)⌋1+\lfloor \log_2(x^n)\rfloor=1+\lfloor n\log_2(x)\rfloorログ2(x )log2⁡(x)\log_2(x)ログ2(x )log2⁡(x)\log_2(x)kkkO (M(k )ログk )O(M(k)log⁡k)O(M(k)\log k)M(k )M(k)M(k)kkkO (s ログ2s )O(slog2⁡s)O(s\log^2 s)sssバツxxんnn を打つことができますか?ここではとサイズです(それらが同等のサイズの場合)。この複雑さ以上を実現する簡単なアルゴリズムはありますか?s x nO (s ログ2(s ))O(slog2⁡(s))O(s\log^2(s))sssバツxxんnn 注:チューリングマシンなどの理論モデルの複雑さに興味があります。

2
この古典的なパズルブックゲームはNPコンプリートですか?
クロスワードパズルに非常によく似た古典的なパズルブックゲームがありますが、単語のリストが表示され、次に、ユニットスクエアで構成された正方形のボードが表示されます。一部の四角には、あらかじめ文字が書き込まれています。目標は、リスト内の各単語をパズルに1回だけ書き込むことです。各単語は、水平(左から右)または垂直(上から下)に、黒く塗りつぶされていない連続した四角形に書き込まれます。 、単語の両端に隣接する2つの四角形は、ブラックアウトするか、ボードから外す必要があります。また、いくつかの正方形に事前に書かれた文字については、これらの正方形に重なるように書かれた単語は、事前に書かれた文字を尊重しなければなりません。N× NN×NN \times N ここで、単語の固定サイズのアルファベットを想定すると、ボードの辺の長さがである場合、リストの各単語を正確に1回だけ使用して、ボードを有効なソリューションでボードに埋め込むことができるかどうかを決定します未修理?

2
ラムダ計算の組み合わせ解釈
Peter Selingerによれば、ラムダ計算は代数的です(PDF)。この記事の早い段階で彼は言う: ラムダ計算の組み合わせ解釈は、ルールを満たさないため不完全であることが知られています。解釈では、は意味しません(Barendregt、1984)。ξξξλ X 。M = λ X 。NM=NM=NM = Nλx.M=λx.Nλx.M=λx.N\lambda x.M = \lambda x.N 質問: ここでどのような同等性を意味しますか? この同等性の定義を前提として、その意味の反例は何ですか?

4
ポイント距離で重み付けされたエッジを持つグラフからポイント埋め込みを復元する
重み付けされたエッジを持つ無向グラフを提供し、各ノードが3D空間内のポイントに対応していることを伝えたとします。2つのノード間にエッジがある場合は常に、エッジの重みがポイント間の距離になります。 目標は、使用可能な距離(エッジの重みで表される)のみを指定して、ポイントの相対位置を再構築することです。私はあなたが得られた場合、例えば、、あなたは点は四面体の頂点である知ります。原点との相対的な位置や方向、またはミラーリングされているかどうかはわかりませんが、四面体であることがわかります。d0 、1= d0 、2= d0 、3= d1 、2= d1 、3= d2 、3= 1d0,1=d0,2=d0,3=d1,2=d1,3=d2,3=1d_{0,1} = d_{0,2} = d_{0,3} = d_{1,2} = d_{1,3} = d_{2,3} = 1 一般に、すべてのエッジ長を指定すると問題は簡単です。ちょうど任意点ピックであることを(0 、0 、0 )、次に隣接点の選択、P 1とでそれを置く(D 0 、1、0 、0 )、共通の隣接、P 2は上三角ますXY平面、最後の共通の近傍p 3は、半空間z &gt; 0に三角形分割されます。p0p0p_0(0 、0 、0 )(0,0,0)(0,0,0)p1p1p_1(d0 、1、0 、0 )(d0,1,0,0)(d_{0,1},0,0)p2p2p_2p3p3p_3z&gt; 0z&gt;0z > 0残りの対称性を壊します(縮退点を選択しなかった場合)。これら4つの点を使用して、残りのすべての点を三角形分割できます。 一方、一部のエッジ長が欠落している場合、埋め込みを復元できない可能性があります。たとえば、カット時にグラフを切断する頂点がある場合、削除すると分離する2つのコンポーネントは、互いに対して揺れ動く可能性があります。 これは問題を提起します: …

1
チューリング縮約を使用すると、複雑度クラスはどのようになりますか?
NP完全性などの理由については、通常、多対1削減(つまり、Karp削減)を使用します。これにより、次のような画像が表示されます。 (標準的な推測の下で)。私たちは皆、この種のことをよく知っていると思います。 チューリング削減(つまり、クック削減)を使用すると、どのような画像が得られますか?画像はどのように変化しますか? 特に、最も重要な複雑性クラスは何であり、それらはどのように関連していますか?私は推測していますによって取り込まれるために使用されることを役割果たしN PとC O N Pを(ので、P N Pがするのと同じ方法で、チューリング還元の下で閉じているN Pは、カープの減少の下で閉じています)。それは正しいですか?PNPPNPP^{NP}NPNPNPc o NPcoNPcoNPPNPPNPP^{NP}NPNPNP だから、のような画像になります今、すなわち、次のようなものは?P⊂ PNP⊂ PH⊂ PSPA CEP⊂PNP⊂PH⊂PSPACEP \subset P^{NP} \subset PH \subset PSPACE 多項式階層に対応する役割を果たす新しいシーケンスはありますか?複雑性クラス、C 1 = P N P、C 2 =の自然なシーケンスはありますか?、...、各複雑度クラスがチューリング縮約の下で閉じられるように?このシーケンスの「限界」は何ですか。それはP Hですか?シーケンス内の各クラスが前のクラスと異なることが予想されますか?(「期待される」とは、P ≠ N Pであると予想される意味と同様に、私はもっともらしい推測の下を意味します。)C0= PC0=PC_0=PC1= PNPC1=PNPC_1=P^{NP}C2= ?C2=?C_2=?PHPHPHP≠NPP≠NPP \ne NP 関連:NPCを定義するための多対1削減とチューリング削減。この記事では、Karp削減を使用する理由は、より細かく、より豊かで、より正確な階層が提供されるためです。基本的に、チューリング削減を使用した場合の階層はどのようになるのか、つまり、粗く、リッチでなく、精度が低い階層はどのようになるのだろうと思います。

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