タグ付けされた質問 「lower-bounds」

3
下限を証明することは本当に可能ですか?
計算上の問題がある場合、そのような計算の下限を見つけるタスクは本当に可能ですか?私はそれが単一の計算ステップがどのように定義され、どのモデルが証明に使用されるかを要約すると思いますが、それを考えると、実際に一般的に下限を証明しますか?私が意味することは、私たちは「問題のように何かを証明することができるであるより速く解くことができないではなく、」問題のある時間「で解決することができる時間またはより高速な」?XXXt(X)t(X)t(X)XXXt(X)t(X)t(X) 特に下限とその証拠に関する情報を見つけようとしましたが、興味のあるもの、主題に関する書籍/論文/ウェブサイトに関する推奨事項を実際に見つけることができませんか?

4
5つの要素をソート(順序)するために必要な比較の最小数
5つの要素を並べ替える(順序付ける)ために必要な比較の最小数を見つけ、この比較数を使用してこれらの要素を並べ替えるアルゴリズムを考案します。 解決策: 5つあります!= 120の可能な結果。したがって、ソート手順のバイナリツリーには少なくとも7つのレベルがあります。実際、 ≥120が示す時間 ≥7でも7の比較は十分ではありません。5つの要素を並べ替える(並べ替える)ために必要な比較の最小数は8です。2h2h2^hhhh 私の実際の質問は次のとおりです。8つの比較でそれを行うアルゴリズムを見つけましたが、7つの比較でそれができないことをどのように証明できますか?

1
「二重に」算術的な進行を検出するのは3SUM難しいですか?
これはインタビューの質問に触発されたものです。 我々は、整数の配列を与えられている1、... 、Nと異なるがあるかどうかを決定する必要がI < J < Kようにa1、… 、ana1,…,ana_1, \dots, a_ni < j < ki<j<ki \lt j \lt k ak− aj= aj− a私ak−aj=aj−aia_k - a_j = a_j - a_i k − j = j − ik−j=j−ik - j = j - i すなわち、シーケンスおよび{ i 、j 、k }は両方とも算術級数です。{ a私、j、k}{ai,aj,ak}\{a_i, a_j, a_k\}{ i …

2
2つの2x2行列の行列乗算が7回未満の乗算でできないことを証明するにはどうすればよいですか?
Strassenの行列乗算では、2つの2 x 2の行列乗算に7つの乗算が必要であるという奇妙な(少なくとも私には)事実を述べています。 質問: 2つの2 x 2行列を6回の乗算で乗算できないことを証明するにはどうすればよいですか? 行列は整数を超えていることに注意してください。

2
二次時間を必要とする可能性のある問題
入力に対してΩ(|x|2Ω(|x|2\Omega(|x|^2)の下限を持つ問題の例を探しています。xxx 問題には次のプロパティが必要です。 Ω(n2)Ω(n2)\Omega(n^2)任意のアルゴリズムのランタイムプルーフ-最初の優先順位は、可能な限り単純な下限引数を持つことです。 O(n2)O(n2)O(n^2)アルゴリズム、可能であれば、単純なアルゴリズム。 (またはそれ以下)の出力サイズ。明らかに、長さの出力を必要とする問題には、少なくとも同様の実行時間が必要でしたが、それは私が探しているものではありません。決定の問題がここに収まることに注意してください。O(n)O(n)O(n)Ω(n2)Ω(n2)\Omega(n^2) (可能であれば)「自然な」問題。正式な定義がなければ、CSの卒業生が認識する問題が望ましいです。 私は最近そのような問題について尋ねられましたが、簡単な問題を思い付くことができませんでした。最初に思い浮かんだ問題は、これはランタイムの問題であると思われました。これは十分に単純ではなく、さらに、この共役は最近偽りであることが証明されました:o。3SUM3SUM3SUMΩ(n2)Ω(n2)\Omega(n^2) 極めて不自然な問題に行く、私は入力決定論TMおよび入力として取得する問題と考えてい⟨M⟩,x⟨M⟩,x\langle M \rangle,x、および後にテープヘッドの位置を出力(|M|+|x|)2(|M|+|x|)2(|M|+|x|)^2、それはだときの手順実行すると、xxxおそらく質問に答えます。 どうしても必要な場合は、シングルテープTMモデルを使用していることに同意してください。ただし、ランタイムが正確なモデルに依存しない問題をお勧めします(合理的なモデルであれば)。 したがって、実行時間がある単純な(証明する)自然な(よく知られている)問題を見つけることができますか?Θ(n2)Θ(n2)\Theta(n^2)

1
ギロチンカットと一般的なカット
WWWLLLiiililil_iwiwiw_i 切断問題の一般的な制限の1つは、切断がギロチン切断でなければならないことです。つまり、既存の各長方形は2つの小さな長方形にしか切断できません。L字型などを作成することは不可能です。明らかに、ギロチンカットの最大使用領域は、制限なしの最大使用領域よりも小さい場合があります。 私の質問は次のとおりです。最適なギロチンカットと最適な一般カットの比率に上限と下限はありますか? 6767\frac{6}{7}

6
間隔内の2つの数値の最大XORを見つける:二次式よりも良いことはできますか?
lllrrr L ≤ I 、最大(I ⊕ J )最大(私⊕j)\max{(i\oplus j)}L ≤ I 、J ≤ Rl≤私、j≤rl\le i,\,j\le r ナイーブアルゴリズムは、考えられるすべてのペアを単純にチェックします。たとえば、ルビーでは次のようになります。 def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end 私感私たちはより良い次より行うことができます。この問題のためのより良いアルゴリズムはありますか?

4
すべての線形時間アルゴリズムはストリーミングアルゴリズムですか?
時が経つにつれて反転カウントについて、この質問、私は紙見つけ下のすべての(正確な)のためのスペースの複雑さにバインド証明ストリーミングアルゴリズムを。私は、この限界がすべての線形時間アルゴリズムに及ぶと主張しました。一般的に、線形時間アルゴリズムは自由に飛び回ることができるため(ランダムアクセス)、ストリーミングアルゴリズムではできないため、これは少し大胆です。要素を順番に調査する必要があります。複数のパスを実行できますが、常に多くのパスを実行します(線形ランタイムの場合)。 したがって、私の質問: すべての線形時間アルゴリズムは、常に多くのパスを持つストリーミングアルゴリズムとして表現できますか? ランダムアクセスは、(単純な)構造が肯定的な答えを提供することを妨げるように見えますが、反例も思いつきません。 マシンモデルによっては、実行時のランダムアクセスも問題にならない場合があります。これらのモデルの答えに興味があります: チューリングマシン、フラット入力 RAM、配列として入力 RAM、リンクリストとして入力

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
選択アルゴリズムのスペースに制限はありますか?
整数の配列で番目に大きい要素を見つけるためのよく知られた最悪の場合の選択アルゴリズムがあります。それは中央値中央値アプローチを使用して十分なピボットを見つけ、入力配列を所定の位置に分割し、再帰的に番目に大きい要素の検索を続けます。O(n)O(n)O(n) kkkkkk 入力配列に触れることが許可されなかった場合、時間で番目に大きい要素を見つけるためにどのくらい余分なスペースが必要になりますか?余分なスペースで番目に大きい要素を見つけても、実行時の維持できますか?たとえば、最大または最小の要素を見つけるには、時間とスペースが必要です。 kkkO(n)O(n)O(n)kkkO(1)O(1)O(1)O(n)O(n)O(n)O(n)O(n)O(n)O(1)O(1)O(1) 直感的に、空間よりも優れているとは思えませんが、その証拠はありますか?O(n)O(n)O(n) 誰かが参照を指すか、番目の要素が時間でスペースを見つける必要がある理由を議論することができますか?⌊n/2⌋⌊n/2⌋\lfloor n/2 \rfloorO(n)O(n)O(n)O(n)O(n)O(n)

2
未満の距離空間の点集合の中心点を見つけますか?
メトリック空間で定義されたポイントのセットがあるので、ポイント間の「距離」を測定できますが、それ以外は測定できません。このセット内で最も中心的なポイントを見つけたいと思います。これを、他のすべてのポイントまでの距離の合計が最小になるポイントとして定義します。メトリックの計算は遅いため、可能な限り回避する必要があります。nんn このポイントを見つける明白な方法は、メトリック距離計算を使用します。これは、(a)各ポイントについて、他のすべてのポイントまでの距離の合計を計算し、(b)最小ポイントを取るためです。n2ん2n^2 未満の距離比較でこれを行う方法はありますか?(おそらく、三角形の不等式を何らかの方法で利用していますが、これは私の測定基準に当てはまるはずです。)O(n2)O(ん2)O(n^2) 正確な方法が存在しない場合は、適切な近似で十分です。

2
二分法モデルのO(n)で整数の並べ替えは可能ですか?
私の知る限り、次の問題を解決する最悪の場合のアルゴリズムは存在しません。O(n)O(n)O(n) 有限の整数で構成される長さシーケンスを前提として、すべての要素が後続要素以下である順列を見つけます。nnn しかし、計算の二分法モデルには、それが存在しないという証拠がありますか? 整数の範囲を制限しないことに注意してください。比較ソートのソリューションも制限しません。

4
要素の一意性は決定論的な線形時間で解決できますか?
次の問題を検討してください。 入力:整数のX,YX,YX,Yをリストします 目標:両方のリストに整数が存在するかどうかを判断しxxxます。 両方のリストのサイズがます。この問題の確定的な線形時間アルゴリズムはありますか?言い換えれば、ランダム性を使用せずに、この問題を時間で決定論的に解決できますか?X,YX,YX,YnnnO(n)O(n)O(n) 残念ながら、リストの要素がすべて小さいとは限りません。 ランダム化されたアルゴリズムを使用して予想時間でそれを解決する方法を見ることができます:2つのユニバーサルハッシュ関数ランダムに選択し、の要素をハッシュテーブルに格納し(ハッシュ関数としてを使用)、次にルックアップします各要素を調べて、それがハッシュテーブルにあるかどうかを確認します。予想される実行時間はO (n )になります。しかし、O (n )の実行時間で決定論的アルゴリズムを見つける方法がわかりません。これをランダム化解除して単一の特定のハッシュ関数を修正しようとすると、最悪の場合の入力が存在し、このプロシージャがΘ (nO(n)O(n)O(n)hhhXXXhhhYYYO(n)O(n)O(n)O(n)O(n)O(n)Θ(n2)Θ(n2)\Theta(n^2)時間。私が見つけることができる最良の決定論的アルゴリズムは、値をソートすることですが、それは線形時間ではありません。線形実行時間を達成できますか? また、すべてのリスト要素が範囲整数であると仮定すれば、線形時間でそれを解決する方法を見ることができます[1,n][1,n][1,n](基本的に、ソートのカウントを行います)-しかし、一般的に何が起こるかに興味がありますそれが想定できない場合。 答えが計算モデルに依存している場合、RAMモデルは思い浮かびますが、合理的な計算モデルの結果に興味があります。私はを知ってるの要素の一意性のための決定木アルゴリズムの下限がある場合でも、時には我々は線形時間アルゴリズムを見つけることができるように、これは決定的ではありませんΩ (nはログN )にバインド決定木モデル。Ω(nlogn)Ω(nlog⁡n)\Omega(n \log n) Ω(nlogn)Ω(nlog⁡n)\Omega(n \log n)

1
プレフィックスパリティ問題のアルゴリズム
プレフィックスパリティの問題は、次のように定義できます。長さ文字列が与えられ、最初はすべての文字がです。次に、次のような更新をサポートできるデータ構造を構築します。n 0SSSんnn000 特定のについて、をまたは変更しますS [ i ] 0 1私iiS[ 私]S[i]S[i]000111 与えられたに対して、のパリティを見つけます。S [ 1 ] + S [ 2 ] + 。。。+ S [ i ]私iiS[ 1 ] + S[ 2 ] + 。。。+ S[ 私]S[1]+S[2]+...+S[i]S[1]+S[2]+...+S[i] 私の頭の上から、データ構造を構築するために線形空間と線形前処理時間のみを使用しながら、時間でこれらのタイプのクエリをサポートできるソリューションがあり。葉が個々の文字に対応する文字列の上に完全なバイナリ検索ツリーを構築し、すべての内部ノードに、そのノードで定義されたサブツリーで葉であるすべての文字の合計を格納するという考え方です。このようにして、両方の更新を時間で簡単にサポートできます。S O (log n )O (ログn )O(log⁡n)O(\log n)SSSO (ログn )O(log⁡n)O(\log n) しかし、私はこの問題の下限を証明する論文を見つけました。更新についてはよりも優れているとは言えず、次の論文も見つけましたhttp://link.springer.com/chapter/10.1007%2F3-540-51542-9_5、およびpdfへの直接リンク。その範囲を達成するアルゴリズムを提供するため、最適です。O (ログんログログん)O(log⁡nlog⁡log⁡n)O(\frac{\log n}{\log \log n}) …

1
順列の空間を探す
n個のオブジェクトと、これらのn個のオブジェクトのn個の順列のセット(合計n個の順列のうち)が与えられます。本当の根本的な順列があり、それはn個の順列のセットの1つであると私は知っていますが、どの順列かはわかりません。しかし、神託者は真の順列を知っています。真の順列を見つけるために、2つのオブジェクト間のペアワイズ比較のためにオラクルをクエリすることができます(真の順列ではbの前にaがありますか?)。 素朴な戦略は、バイナリ検索(すべての段階で順列の半分を排除する「正しい」ペアワイズ比較の質問をする)を行い、log nステップで真の順列を見つけることです。私の質問は、これはいつでもできるのですか?または、O(log n)クエリでは不十分なような、順列の敵対的なセットを見つけることができますか? 編集: 例:オブジェクトが1、2、3、4であるとします。順列のセットは{1243、2341、1342、3412}です。私は本当の順列を知りません。「本当の順列では2は4の前ですか?」と尋ねます。神託はイエスを返します。だから私は最初の2つの順列の間でそれを知っています。次に、「真の順列では1は3の前ですか?」と尋ねます。真の順列を見つけるために。

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