タグ付けされた質問 「dynamic-algorithms」


1
エッジ削除なしの動的有向グラフ到達可能性の最速の決定論的アルゴリズムは何ですか?
エッジ挿入のみの有向グラフで動的推移閉包を維持するための最良の決定論的結果は何ですか? エッジの挿入と削除の両方に伴う動的推移閉包問題に関する論文をいくつか読みました。しかし、エッジ挿入のみでそのためのより良いアルゴリズムはありますか?

2
レーベンシュタイン編集距離の最適な文字列配置を計算するためのスペースの複雑さ
サイズn1n1n_1とつの文字列が与えられた場合n2n2n_2、標準的なレーベンシュタイン編集距離の計算は、時間の複雑さO(n1n2)O(n1n2)O(n_1 n_2)と空間の複雑さ動的アルゴリズムによるものO(n1n2)O(n1n2)O(n_1 n_2)です。(いくつかの改善が編集距離の関数として行うことができるddd、我々はには何の仮定作るんdddO(max(n1,n2))O(max(n1,n2))O(\max(n_1, n_2)) ただし、最適な編集スクリプトの実際の編集を取得する場合、メモリ使用量よりも、実行時間を犠牲にして実行することは可能ですか?O(n1n2)O(n1n2)O(n_1 n_2)

2
動的に更新される入力での多項式の値の維持
ましょう、固定有限体上の多項式です。我々は、の値を与えられていると仮定PいくつかのベクトルにY ∈ { 0 、1 } nは、ベクトルyは。P(x1,x2,…,xn)P(x1,x2,…,xn)P(x_1, x_2, \ldots, x_n)PPPy∈{0,1}ny∈{0,1}ny \in \{0,1\}^nyyy 現在の値を計算するベクトルにY ' ∈ { 0 、1 } Nように、Y及びYが'(換言すれば、我々は正確に1つのビットを反転正確に一つの位置に異なるY)。この問題の空間と時間のトレードオフは何ですか?PPPy′∈{0,1}ny′∈{0,1}ny' \in \{0,1\}^nyyyy′y′y'yyy たとえば、がPの単項式の数である場合、係数とPのすべての単項式の値を格納できます。y iが反転している場合、格納されている情報を使用して、y iを含む各単項式の値を固定し、次にP (y )の値を固定します。全体として、O (r )の時間と空間が必要です。rrrPPPPPPyiyiy_iyiyiy_iP(y)P(y)P(y)O(r)O(r)O(r) (私は目的のためにを含む単項式をどのように識別するかについては何も言いません。Pの合理的な表現を選択できます。この例では、各iについてy iを含む単項式のリストを格納すると想定しています。)yiyiy_iPPPyiyiy_iiii もっと良いものはありますか?

1
微分方程式を独自の複雑度クラスに分類できますか?
計算の複雑さのおかげで、問題は全体として分類されています。しかし、微分方程式では、計算構造に応じて微分方程式を分類することは可能ですか? たとえば、1次の不均一方程式が、たとえば100次の均一方程式よりも解くのが比較的難しい場合、解く方法が同じであれば、それらを別々の凸クラスとして分類できますか?解決のプロセスを変えると、解、それらの存在と安定性、その他の特性はどのくらいランダムに変化するでしょうか? 微分方程式を解くことはNP-Hardかもしれないと私は部分的に確信していると思います: /mathpro/158068/simple-example-of-why-differential-equations-can-be-np-hard この記事: http://www.cs.princeton.edu/~ken/MCS86.pdf 微分方程式の可解性による計算の複雑さの範囲を私に尋ねるように強いてきました。常微分方程式から始めて、偏微分方程式、遅延方程式、微分方程式などを分類できます。 かつては、ソリューションを近似する際に計算された反復を使用して動的プログラミングを組み込むことを考えていましたが、どこかに迷いました。

3
頂点/サブグラフの挿入と削除を含む完全に動的なグラフの接続性の決定
私は次の問題の解決策を探しています。このトピックに関する既存の研究を誰かが私に指摘できるかどうか疑問に思っています。私はグラフの実際のアプリケーションから来ているので、私の用語が正確でない場合は我慢してください。 ユーザーが関係を作成、削除、変更してオブジェクトを追加、削除、移動できるデータベースシステムがあります。そのため、オブジェクトをグラフの頂点として見ることができ、関係はエッジであり、関係のタイプ(構成、関連付け、または集約)に応じてエッジに重みを付けることができます。 ユーザーの観点から見ると、新しい要素の追加はシングルクリックで可能で、フードの下で、プログラムは関係によってリンクされたオブジェクトのグラフを作成します。このグラフは、データベース全体を定義するメイングラフに追加されます。要素を削除すると、リンク/エッジが切断され、グラフが2つのばらばらなグラフになり、1はデータベース、もう1つは要素とそのサブ要素によって形成される頂点で構成されます。 素なグラフがある場合と、素な2つのグラフが再び1になる場合を判断するための本当に迅速な方法が必要です。Holm、de Lichtenberg、およびThorup(2001 ; pdf)をざっと見ました。それは進むべき道のようですが、著者は頂点の数が固定されたグラフのみを検討していると述べました。アルゴリズムは通常、エッジの追加を段階的に実行するだけで、頂点の追加/削除に拡張されますか?それとも、そのようなシナリオに特化した作品はありますか?

2
リンクカットツリーの初期化時間はどれくらいですか?
リンクカットツリーは、SleatorとTarjanによって発明されたデータ構造であり、時間におけるノードフォレストでのさまざまな操作とクエリをサポートし。(たとえば、オペレーションリンクはフォレスト内の2つのツリーを1つに結合し、オペレーションカットはフォレスト内のツリーを2つのツリーに分割します。)O (log n )んnnO (ログn )O(log⁡n)O(\log n) リンクカットツリーを使用することでいくつかのアプリケーションが知られています。ここでは特にノードの平面グラフが与えられるとノードがサブグラフである対応するバイナリツリーとその子が得られるグッドリッチのセパレーター分解に興味があります。ノードのサブグラフであるのセパレータで割っ。このような分解は時間で簡単に構築できます(セパレーターは時間で見つけることができるため、セパレーターはレベルの分離後にグラフをバランスよく分割するため、ツリーの葉のサイズはG G H H H O (n log n )O (n )O (log n )O (1 )んnnGGGGGGHHHHHHHHHO (n ログn )O(nlog⁡n)O(n \log n)O (n )O(n)O(n)O (ログn )O(log⁡n)O(\log n)O (1 )O(1)O(1))。Goodrichの主な貢献は、各レベルでセパレーターを見つけるために使用されるデータ構造を維持および再利用することにより、時間でそのような分解を構築できることです。O (n )O(n)O(n) 構築で使用されているデータ構造の1つは、確かにリンクカットツリーです。Goodrichによる論文の 7ページで、リンクカットツリーの初期化は時間で実行できると彼は主張しました。そこに引用されているすべての論文を調べていますが、操作linkを使用してリンクカットツリーを作成すると、合計で時間がかかるようです。O (n )O(n)O(n)O (n ログn )O(nlog⁡n)O(n \log n) 何か誤解していますか?リンクカットツリーの初期化は時間ますか?O (n )O(n)O(n)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.