タグ付けされた質問 「ds.algorithms」

タスクを完了するための明確に定義された指示、および時間/メモリ/その他に関する関連分析に関する質問。

5
シンプレックス法の実装に関する最高の本?
私はLPタスクにSMを実装することに興味がありますが、落とし穴の可能性について聞いたことがあります。私はまた、素朴な実装が何らかの種類のデータに対してループする可能性があると聞きました。 SMの実際の実装のニュアンスを説明する本/論文/情報源はありますか? 前もって感謝します。

2
平面距離保存器の存在?
Gをnノード無向グラフとし、Tをterminalsと呼ばれるV(G)のノードサブセットとします。距離浮き袋(G、T)のプロパティを満たすグラフHであります dH(u 、v )= dG(u 、v )dH(あなたは、v)=dG(あなたは、v)d_H(u,v) = d_G(u,v) Tのすべてのノードu、vについて(Hは必ずしもGのサブグラフではないことに注意してください) たとえば、Gを次のグラフ(a)、Tを外面のノードとします。グラフ(b)は(G、T)の距離保存です。 さまざまなパラメータを持つ距離保存機能が存在することが知られています。私は特に次の特性を持つものに興味があります: Gは平面であり、重みがありません(つまり、Gのすべてのエッジに重み1があります)。 TのサイズはO (n0.5)O(n0.5)O(n^{0.5})であり、 Hにはサイズ(ノードとエッジの数)o (n )o(n)o(n)ます。(O (nログログn)O(nログ⁡ログ⁡n)O(\frac{n}{\log\log n})。) そのような距離保存は存在しますか? 上記の特性を満たすことができない場合は、あらゆる種類のリラクゼーションを歓迎します。 参照: スパースソースワイズおよびペアワイズ距離プリサーバー、Don CoppersmithおよびMichael Elkin、SIDMA、2006年。 Sparse Distance Preservers and Additive Spanners、BélaBollobás、Don Coppersmith、Michael Elkin、SIDMA、2005年 サブリニア距離誤差を伴うスパナおよびエミュレータ、Mikkel ThorupおよびUri Zwick、SODA、2006年。 アディティブスパナ、エミュレータなどの下限、デビッドP.ウッドラフ、FOCS、2006年。 距離保存器はエミュレーターとしても知られています。多くの関連する仕事は、スパナという用語を検索することでインターネット上で見つけることができます。これは、HがGの部分グラフである必要があります。しかし、HがGのT

1
長方形行列のランクを計算する最速のアルゴリズムは何ですか?
行列(仮定与えられた場合、列のランクと基底を計算する最速のアルゴリズムは何ですか?m×nm×nm \times nm≥nm≥nm \ge n 時間決定論的アルゴリズムと時間ランダム化アルゴリズムを意味する線形マトロイド交差によって解決できることを知っています。そこにあるより直接的にマトリックス乗算に問題(またはガウスの消去法)を低減することを時間決定性アルゴリズムは?O(mn1.62)O(mn1.62)O(mn^{1.62})O(mnω−1)O(mnω−1)O(mn^{\omega-1})O(mnω−1)O(mnω−1)O(mn^{\omega-1})

2
数値のペアをソートするアルゴリズム
私はすでにstackoverflowでこの質問をしましたが、おそらくこのサイトに適しているでしょう。 問題は: N組の符号なし整数があります。それらをソートする必要があります。ペアの終了ベクトルは、各ペアの最初の数で非減少的に、各ペアの2番目で非増加的にソートする必要があります。各ペアでは、任意のポイントで第1要素と第2要素を交換できます。解決策がない場合があるので、例外をスローする必要があります。 例: in pairs: 1 5 7 1 3 8 5 6 out pairs: 1 7 <-- swapped 1 5 6 5 <-- swapped 8 3 <-- swapped ^^ペアを交換しないと、ソリューションを構築できません。そのため、ペア(7、1)、(3、8)、および(5、6)を交換し、結果を作成します。または in pairs: 1 5 6 9 out: not possible ありがとう 編集: SOのTom Sirgedasは最高のソリューションを提案しました。実装は非常に簡単で、O(log(n)* n)で動作します。回答と関心をお寄せいただきありがとうございます。mjqxxxxの分析は本当に楽しかったです。

2
時空のトレードオフと最適なアルゴリズム
次のような言語考えてみましょう。LLL L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L∈DTIME(O(f(n)))∩DSPACE(O(g(n)))L \in DTIME(O(f(n))) \cap DSPACE(O(g(n))) そしてそのように L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L∉DTIME(o(f(n)))∪DSPACE(o(g(n)))L \not\in DTIME(o(f(n))) \cup DSPACE(o(g(n))) 換言すれば、最速の機械計算Lを時間にO (F (N ))であり、最も空間効率の良い機械M '算出Lを空間用いながらO (G (nは))。MMMLLLO(f(n))O(f(n))O(f(n))M′M′M'LLLO(g(n))O(g(n))O(g(n)) Mの空間効率またはM 'の時間効率について何が言えますか?またはより正確に、場合すべてのマシンの設定されていることを計算LでO (F (N ))その後、我々が最もスペース効率のよいマシンについて何を言うことができるM T?明らかなスペースバージョンのM Sについても同様です。MTMT\mathbb{M}_TLLLO(f(n))O(f(n))O(f(n))MTMT\mathbb{M}_TMSMS\mathbb{M}_S あるいは、とg (n )を使用して、いくつかの適切な時空トレードオフを定義できますか?どのような条件がある下でT S ∈ O (F (N )gは(nが))またはより一般的にはいくつかの時間と空間のトレードオフのための時間(T 、S )どのような条件の下で、H (T 、S )∈ H (O (F (n ))f(n)f(n)f(n)g(n)g(n)g(n)TS∈o(f(n)g(n))TS∈o(f(n)g(n))TS \in o(f(n)g(n))h(T,S)h(T,S)h(T,S)。h(T,S)∈h(o(f(n)),o(g(n)))h(T,S)∈h(o(f(n)),o(g(n)))h(T,S) \in h(o(f(n)),o(g(n)))

2
ハンガリーの方法の正当化(Kuhn-Munkres)
私は、ウェブ上であちこちで見つけた講義ノートに基づいて、最小重みの二部完全マッチング問題に対するKuhn-Munkresアルゴリズムの実装を書きました。数千の頂点でさえ、本当にうまく機能します。そして、私はその背後にある理論が本当に美しいことに同意します。それなのに、どうしてそんな長さまで行かなければならなかったのか、まだ疑問に思っています。これらの講義ノートでは、なぜ主線形計画を単純にシンプレックス法に渡せないのかを説明していないことがわかりました。もちろん、予測可能なパフォーマンスの問題ではないかと疑っていますが、明確に述べられていないので、あまりよくわかりません。ポリトープのプライマルの極値は0-1であることが証明されているため、双対を定式化することなく、シンプレックス実装に直接供給することができるようです。それとも私は単純化していますか?

2
疎グラフの周囲を見つけるための最適なアルゴリズム?
まばらな無向グラフの周囲をどのように見つけるか疑問に思います。スパースとは|E|=O(|V|)|E|=O(|V|)|E|=O(|V|)。最適とは、時間の複雑さが最も低いことを意味します。 無向グラフのためのタージャンのアルゴリズムの変更について考えましたが、良い結果が見つかりませんでした。実際、で2連結成分を見つけることができれば、最初の部分から達成できる何らかの誘導によって、胴回りを見つけることができると考えました。ただし、間違った方向に進んでいる可能性があります。(すなわち)よりも漸近的に優れたアルゴリズムを歓迎します。O(|V|)O(|V|)O(|V|)Θ(|V|2)Θ(|V|2)\Theta(|V|^2)o(|V|2)o(|V|2)o(|V|^2)

2
Kargerのアルゴリズムを使用しないグラフの最小カット数
Kargerのmincutアルゴリズムを使用して、グラフが持つことができる可能性のあるmincutの最大数が(n2)(n2)n \choose 2。 私は、ミニカットのセットから全単射(むしろ単射)証明を別のカーディナリティ。特別な理由はありませんが、それは単なる好奇心です。自分でやってみましたが、今のところ成功していません。私は誰もこれについて時間を浪費したくないので、質問が無意味であると思われる場合、私はモデレーターにそれに応じた行動を取るよう要求します。(n2)(n2)n \choose 2 ベスト-Akash

1
従来のPaxosおよびFast Paxosの正当性の証明
私はレスリー・ランポートによる「Fast Paxos」論文を読んでいますが、古典的なPaxosとFast Paxosの両方の正確性の証明に固執しています。 一貫性を保つため、値相にコーディネーターが選んだラウンドで満足しなければなりませんvvv2a2a2aiii CP(v,i):CP(v,i):CP(v,i):任意のラウンドのために、以外の値行われていないか、まだラウンドで選択される可能性があります。j&lt;ij&lt;ij < ivvvjjj 古典たPaxosために、プルーフ(ページ8)は、3つのケースに分割される:、と、、いくつかの受容体が相によってコーディネータに報告していた最大ラウンド数であるメッセージ。3番目のケースの議論を理解できませんでした:k&lt;j&lt;ik&lt;j&lt;ik < j < ij=kj=kj = kj&lt;kj&lt;kj < kkkk1b1b1b ケース。帰納法によって、アクセプタがラウンドでに投票したときにプロパティ保持されたと仮定できます。これは、ラウンドで以外の値が選択されていないか、まだ選択されていないことを意味します。j&lt;kj&lt;kj < kCPCPCPa0a0a_0vvvkkkvvvjjj 私の質問は: ラウンドでアクセプターがに投票したときに、プロパティ保持されていると仮定できるのはなぜですか?CPCPCPa0a0a_0vvvkkk 私たちは数学的帰納法を使用しているようです、それで、基礎、帰納的仮説、帰納的ステップは何ですか? Fast Paxosの場合、同じ引数(ページ18)が続きます。それは言います、 ケース。いずれかのためにで、以外の値行われていないか、まだラウンドで選択される可能性があります。j&lt;kj&lt;kj < kvvvVVVvvvjjj 私の質問は: これはどのように取得されますか?具体的には、なぜ「任意のためであるで、ここで」?vvvVVV 私の意見では、ケースの正しさの証明は、(再帰的に)およびの場合に依存しています。 j&lt;kj&lt;kj < kk&lt;j&lt;ik&lt;j&lt;ik < j < ij=kj=kj = k したがって、どのようにケースの結論付けることができ第一証明なし(即ち、サブケースの欠落完全つ以上の値以上を含有しますか)?j&lt;kj&lt;kj < kj=kj=kj = kj=kj=kj = kVVV

1
DAGサブセットの合計は近似可能ですか?
各頂点に関連付けられた数値()とターゲット数値有向非巡回グラフが与えられます。G :V → N T ∈ NG = (V、E)G=(V、E)G=(V,E)g:V→ Ng:V→Ng:V\to \mathbb{N}T∈ NT∈NT\in \mathbb{N} DAGサブセット和問題(別の名前で存在する可能性があり、参照が素晴らしい)は頂点が存在するかどうかを尋ねたとえば、およびはパスです。ΣのV I G (V 、I)= T V 1 → 。。→ v k Gv1、v2、。。。、vkv1、v2、。。。、vkv_1,v_2,...,v_kΣv私g(v私)= TΣv私g(v私)=T\Sigma_{v_i}g(v_i) = Tv1→ 。。→ vkv1→。。→vkv_1\to..\to v_kGGG 完全な推移的グラフは古典的なサブセット和問題を生成するため、この問題は簡単にNP完全です。 DAGサブセット和問題の近似アルゴリズムは、次の特性を持つアルゴリズムです。 合計Tのパスが存在する場合、アルゴリズムはTRUEを返します。 何らかのに対してと間の数までの合計パスがない場合、アルゴリズムはFALSEを返します。T C ∈ (0 、1 )(1 − c )T(1−c)T(1 − c)TTTTC ∈ (0 、1 )c∈(0、1)c\in …

2
移動操作で距離を編集する
動機:共著者が原稿を編集し、編集の概要を明確に見たい。ツール様全ての「差分」は、あなたがしている場合は無用になる傾向があり、両方の周りにテキストを移動する(例えば、再組織化構造)とローカル編集を行います。それを正しくするのは本当に難しいですか? 定義:許可される操作は次のとおりです。最小編集距離を見つけたいです。 「安い」操作:単一の文字の追加/変更/削除(通常のレーベンシュタイン操作)、 "高価な":操作:新しい場所(にサブストリングを移動bはCのD ↦ のC BのD任意の文字列の、B、C、D)。abcd↦acbdabcd↦acbdabcd \mapsto acbdaaabbbcccddd 2つの文字列とyおよび整数kとKが与えられた場合、次の問題を解決したいと思います。xxxyyykkkKKK あなたは、変換することができますにyのほとんどで使用してk個の安価な操作と最大でK高価な操作?xxxyyykkkKKK 質問: この問題には名前がありますか?(配列アラインメントの文脈では非常に標準的な質問のように聞こえます。) 難しい? 難しい場合、をパラメーターとして扱いやすい固定パラメーターですか?KKK 効率的な近似アルゴリズムはありますか?(例えば、最大で有する溶液見つける安価及び2 Kを有する溶液場合、高価な操作をk個の安価及びK高価な操作が存在します。)2k2k2k2K2K2KkkkKKK Wikipediaにリストされている文字列メトリックを見てみましたが、どれも正しく見えませんでした。

1
非凸二次計画法のための正確なアルゴリズム
この質問は、ボックス制約(ボックスQP)を使用した2次計画問題、つまり次の形式の最適化問題に関するものです。 最小の対象X ∈ [ 0 、1 ] nは。f(x)=xTAx+cTxf(x)=xTAx+cTxf(\mathbf{x}) = \mathbf{x}^T A \mathbf{x} + \mathbf{c}^T \mathbf{x}x∈[0,1]nx∈[0,1]n\mathbf{x} \in [0,1]^n が正の半正定であれば、すべてが素晴らしく凸で簡単になり、多項式時間で問題を解くことができます。AAA 一方、我々は完全性を有していた場合、制約、我々は簡単に時間で問題解決することができO (2 N ⋅ P O のL Y(N ))ブルート力によってを。この質問のために、これはかなり高速です。x∈{0,1}nx∈{0,1}n\mathbf{x} \in \{0,1\}^nO(2n⋅poly(n))O(2n⋅poly(n))O(2^n \cdot \mathrm{poly}(n)) しかし、非凸連続ケースはどうでしょうか?一般的なボックスQPの最速の既知のアルゴリズムは何ですか? 例えば、我々は適度指数時間に、例えば、これらを解決することができます、またははるかに悪い、最もよく知られたアルゴリズム何かの最悪の場合の複雑さでありますか?O(3n⋅poly(n))O(3n⋅poly(n))O(3^n \cdot \mathrm{poly}(n)) 背景:実際に解決したいかなり小さな箱型QPがいくつかあり、値が非常に小さい場合でも、一部の商用ソフトウェアパッケージのパフォーマンスが低いことに少し驚きました。この観察にTCSの説明があるのではないかと思い始めました。nnn

1
独自に解けるパズル(USP)の容量
Cohn、Kleinberg、Szegedy、Umansは、独創的な論文である行列乗算のグループ理論アルゴリズムで、一意に解決可能なパズル(以下で定義)とUSP容量の概念を紹介しています。彼らは、銅細工とウィノグラードは、自分の画期的な論文でいると主張等差数列を経由して行列の乗算、「暗黙のうちに」USP容量があることを証明3/22/33/22/33/2^{2/3}。この主張は他のいくつかの場所(ここではcstheoryを含む)で繰り返されていますが、説明はどこにもありません。以下は、CoppersmithとWinogradが証明していること、そしてなぜそれが十分ではないかについての私自身の理解です。 それは、USP能力があることは事実である3/22/33/22/33/2^{2/3}?もしそうなら、証拠の参照はありますか? ユニークに解けるパズル 長さの一意に解けるパズル(USP)nnn及び幅kkkのサブセットから成る{1,2,3}k{1,2,3}k\{1,2,3\}^kサイズのnnn、我々は、三点の集合として考える、nnn「個」は(場所に対応ベクトルは111、場所は222、場所は333)であり、次の特性を満たします。すべての111個をnnn行に配置するとします。次に、他のピースを各行に1つずつ配置して、「適合する」ようにするユニークな方法が必要です。 ましょN(k)N(k)N(k)幅のUSPの最大の長さkkk。USP容量がある κ=supkN(k)1/k.κ=supkN(k)1/k. \kappa = \sup_k N(k)^{1/k}. USPでは、片のそれぞれが一意である必要がある-ない2行は、シンボル含まないことをその手段c∈{1,2,3}c∈{1,2,3}c \in \{1,2,3\}正確に同じ場所です。これは、(短い引数の後) などκ≤3/22/3N(k)≤∑a+b+c=kmin{(ka),(kb),(kc)}≤(k+22)(kk/3),N(k)≤∑a+b+c=kmin{(ka),(kb),(kc)}≤(k+22)(kk/3), N(k) \leq \sum_{a+b+c=k} \min \left\{ \binom{k}{a}, \binom{k}{b}, \binom{k}{c} \right\} \leq \binom{k+2}{2} \binom{k}{k/3}, κ≤3/22/3κ≤3/22/3\kappa \leq 3/2^{2/3}。 例(長さおよび幅 USP ): 長さおよび幅例ではなく、および -ピースは2つの異なる方法で配置できます: 4 1111 2131 1213 2233 3 3 2 3 12344444411112131121322331111213112132233\begin{align*} 1111 \\ 2131 \\ 1213 \\ …

2
サブモジュラリティの強化
すべての、 場合、集合関数は単調サブモジュラーですA 、BのF (A )+ F (B )≥ F (A ∪ B )+ F (A ∩ B )。fffA 、BA、BA,Bf(A )+ f(B )≥ F(A ∪ B )+ F(A ∩ B )。f(A)+f(B)≥f(A∪B)+f(A∩B)。 f(A) + f(B) \geq f(A \cup B) + f(A \cap B). より強力なプロパティは 撮影、このプロパティは単調劣モジュラことを意味します。C=A∪Bf(A )+ f(B )+ f(C)+ f(A ∪ B …

2
概念的に単純な線形時間サフィックスツリーの構築
1973年、ワイナーはサフィックスツリーの最初の線形時間構築を行いました。このアルゴリズムは、1976年にMcCreightによって、1995年にUkkonenによって簡素化されました。それにもかかわらず、私はウッコネンのアルゴリズムが概念的に比較的関与していると思います。 1995年以降、ウッコネンのアルゴリズムが単純化されていますか?

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