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

アルゴリズムは、問題に対する抽象的な解決策を定義する明確に定義された一連のステップです。このタグは、問題がアルゴリズムの設計と分析に関連している場合に使用します。

2
MST:Primのアルゴリズムの複雑さ、なぜ
CLRSによると、プリムのアルゴリズムは以下のように実装されています- MST-PRIM(G,w,r)MST-PRIM(G,w,r)\mathtt{\text{MST-PRIM}}(G,w,r) 毎u∈V[G]u∈V[G]u \in V[G]を行います key[u]←∞key[u]←∞\mathtt{\text{key}}[u] \leftarrow \infty π[u]←NILπ[u]←NIL\pi[u] \leftarrow \mathtt{\text{NIL}} key[r]←0key[r]←0\mathtt{\text{key}}[r] \leftarrow 0 Q←V[G]Q←V[G]Q \leftarrow V[G] 一方、 // ... O (Q≠∅Q≠∅Q \ne \emptysetO(V)O(V)O(V) ← EXTRACT-MIN(u ) // ... O (lguuu ←←\leftarrow EXTRACT-MIN(u)EXTRACT-MIN(u)\mathtt{\text{EXTRACT-MIN}}(u)O(lgV)O(lg⁡V)O(\lg V) それぞれの //ん... O (E )v∈adj[u]v∈adj[u]v \in \mathtt{\text{adj}}[u]O(E)O(E)O(E) もしとW (U 、V )> キー [ V ]v∈Qv∈Qv \in …

1
最小の最大コンポーネントを取得するためにグラフから削除する頂点を見つける
グラフ与えられた場合、k個の頂点{ v ∗ 1、… 、v ∗ k }をG=(V,E)G=(V,E)G = (V, E)見つけます。これを削除すると、最小の最大成分を持つグラフになります。 kkk{v∗1,…,v∗k}{v1∗,…,vk∗}\{v^*_1,\dots,v^*_k\} 大きなn=|V|n=|V|n = |V|そして大きいkkk問題は、(NP困難)ことは困難であるが、私は小さな値に興味がkkk(k∈{1,2,3,4}k∈{1,2,3,4}k \in \{1, 2, 3, 4\})。 以下のためにk=1k=1k = 1、私は最良の頂点を見つけることが可能だと思う{v∗1}{v1∗}\{v^*_1\}(すなわち、関節点をチェックする)グラフの単一深さ優先検索を実行することによって除去することを。 以下のためにk=2k=2k = 2、最高の頂点を見つけることも可能である{v∗1,v∗2}{v1∗,v2∗}\{v^*_1, v^*_2\}行うことにより、nnn深さ優先検索を(グラフのためにそれらのそれぞれのGi=G/{vi}Gi=G/{vi}G_i = G / \{v_i\})。同様のアプローチは、場合にも適用できますk>2k>2k > 2。 それ以上の解決策はないのでしょうか。 (関連:必ずしも列挙せずに頂点の最小数を数える)

1
最大の3クリークのない誘導サブグラフを見つける
この問題を考えてみましょう: 無向グラフを前提として、次のようなG ′ = (V ′、E ′)を求めます。G = (V、E)G=(V,E)G = (V, E)G′=(V′,E′)G′=(V′,E′)G' = (V', E') の誘発部分グラフである GG′G′G'GGG は3クリークがありませんG′G′G' 最大です|V′||V′||V'| そのため、3クリークが除去されるように、最小数の頂点をから除去する必要があります。GGG 同等の問題は、 2色を見つけて、(v 1、v 2、GGG及び((V 1、V 2)、(V 2、V 3)、(V 3、V 1))∈ V、(v1,v2,v3)∈V(v1,v2,v3)∈V(v_1, v_2, v_3) \in V((v1,v2),(v2,v3),(v3,v1))∈V((v1,v2),(v2,v3),(v3,v1))∈V((v_1, v_2), (v_2, v_3), (v_3, v_1)) \in V (v1.color==v2.color∧v2.color==v3.color∧v3.color==v1.color)=False(v1.color==v2.color∧v2.color==v3.color∧v3.color==v1.color)=False(v_1.color == v_2.color \wedge v_2.color == v_3.color \wedge …

2
それがために解決する方法は困難であるで?
グラフ同型から、ような置換行列Pがある場合、2つのグラフAとBは同型であることがわかります A=P×B×P−1A=P×B×P−1A = P \times B \times P^{-1} したがって、問題を解決するには、2つのグラフが同型である場合、そのような置換行列Pを見つける必要があります。問題はNP(およびサブグラフ同型の場合はNP完全)であると考えられています。しかし、私はPを解決する例を見つけました。これは私にとって有望であるように思われ、 http ://en.wikipedia.org/wiki/Permutation_matrixのセクション:Pの解決にあります。 私が今混乱しているのは、それがより大きな行列で機能するかどうかです。非常に大きい?上記の方程式は解くのが難しく、暗号システムの候補になり得ますか?

2
有向グラフの強く接続されたコンポーネントアルゴリズムの正確性
私は有向グラフ強連結成分を見つけるためのアルゴリズムについて読んでいます。2つのDFS検索を考慮し、2番目のステップは元のグラフG Tを転置します。G=(V,E)G=(V,E)G=(V,E)GTGTG^T アルゴリズムは次のとおりです。 DFSを実行し(任意の開始頂点から開始)、すべての頂点の終了時間を追跡します。GGG 転置を計算し、 でDFSを実行し、最後の終了時刻の頂点から開始して、その頂点をルートとするツリーを形成します。ツリーが完成したら、次の最新の終了時刻で未訪問の頂点に移動し、DFSを使用して別のツリーを形成し、G Tのすべての頂点が訪問されるまで繰り返します。GTGTG^TGTGTG^T 2番目のDFSによって形成された各ツリーの頂点を、個別に強く接続されたコンポーネントとして出力します。 私の質問は: 転置計算のこの中間ステップの背後にある直感は何ですか?

4
最大のコストで重複しないスケジュールされたジョブを見つける
[開始時刻、終了時刻、コスト]のn個のジョブのセットを指定して、2つのジョブが重複せず、コストが最大になるようにサブセットを見つけます。 今、私は貪欲なアルゴリズムがうまくいくかどうかわかりません。つまり、コストで並べ替え、常に交差せず、2つの間の最大コストで次のジョブを実行します。 これはナップザック問題と同等ですか?どうすればそれにアプローチできますか?

2
分散方式でのツリーの6色分け
ツリー6の分散アルゴリズムを理解するのにいくつかの困難があり時間でのカラーリング。O(log∗n)O(log∗⁡n)O(\log^*n) 詳細な説明は、次のペーパーにあります:スパースグラフの並列対称性の破れ。ゴールドバーグ、プロトキン、シャノン。 つまり、アイデアは... プロセッサID者によって与えられた有効な着色から出発し、手順を繰り返し、各非ルートノードrecoloringによって色記述のビット数を減少するビットのインデックス連結することによって得られた色で異なっておよびこのビットの値。ルート を連結と、新しい色を形成します。vvvCvCvC_vCparent(v)Cparent(v)C_{parent}(v)rrr000Cr[0]Cr[0]C_r[0] アルゴリズムは回の反復後に終了します。O(log∗n)O(log∗⁡n)O(\log^*n) 回の繰り返しで実際に終了する理由を直感的に理解できません。最後の反復に関する論文で言及されているように、2つのビット文字列が異なる最小のインデックスは最大3です。したがって、0番目のビットと1番目のビットは同じで、である可能性があるため、この2つのビットは4を与えます。色+異なる3番目のビット用の別の2色、および紙のように6色ではなく合計8色、および2ビットで先に進むことができない理由、異なるビットを見つけて分離することはまだ可能です。O(log∗n)O(log∗⁡n)O(\log^*n)22=422=42^2=4 論文よりもアルゴリズムを少し深く分析していただければ幸いです。

4
並べ替えられた配列のリストの中央値を見つける
入力:(数値の)配列 セット。 各配列内の要素は並べ替えられていますが、配列のセットは必ずしも並べ替えられていません。配列は必ずしも同じサイズである必要はありません。要素の総数はです。A I Nℓℓ\ellAiあ私A_inんn 出力:入力のすべての要素のうち最小番目の要素。kkk この問題の最も効率的なアルゴリズムは何ですか? たとえば、実行時間を達成することは可能ですか?O(ℓ+logn)O(ℓ+ログ⁡ん)O(\ell + \log n)

1
循環リスト内の類似インデックスの合計
次の問題を検討してください。 してみましょう -wheelのインデックス化循環的にリンクされたリストとして定義される整数。例えば…kkkkkk {3、4、9、-1、6} …5輪で、位置0に3、位置1に4と続きます。ホイールは回転の操作をサポートするため、1ステップの回転で上記のホイールが… {6、3、4、9、-1} …今度は位置0に6、位置1に3と続きます。LETの順序付き集合である異なる -wheels。いくつかのといくつかの整数、次のような一連の回転を見つけます…WNkWNkW_{N_k}NNNkkkWNkWNkW_{N_k}ttt ∀ 0 ≤ I &lt; K 、Σ N∈ WN私= t∀ 0≤私&lt;k、ΣN∈WN私=t\forall\ 0 \leq i < k, \sum_{N \in W} N_i = t つまり、ホイールを行列としてレイアウトした場合、すべての列の合計はます。は、解がすべての要素の回転まで一意になるように構築されていると想定します(つまり、1つの解を取得し、すべてのホイールを同じステップ数だけ回転させることで構成される正確に一意の解があります)。tttWNkWNkW_{N_k}kkkWWW この問題の簡単な解決策は、考えられるすべての回転を単にチェックすることです。そのための擬似コードを以下に示します。 function solve(wheels, index) if wheels are solved: return true if index &gt;= wheels.num_wheels: return false for each position …

3
連続するXOR値の最大値と最小値を見つける
整数配列(最大サイズ50000)指定された、Iは最小値と最大見つけなければならない例えば一部について、と。X = P ⊕ P + 1 ⊕ ⋯ ⊕ A Q P Q P ≤ QXXXX=ap⊕ap+1⊕⋯⊕aqX=ap⊕ap+1⊕⋯⊕aqX = a_p \oplus a_{p+1} \oplus \dots \oplus a_qpppqqqp≤qp≤qp \leq q 私はこのプロセスを試しました: for all。私はそれをで事前に計算し、次にいくつかの、の値を計算しては次のようになり:。したがって: I O (N )X P Q (P ≤ Q )X = 和Q ⊕ 和P - 1sumi=a0⊕a1⊕⋯⊕aisumi=a0⊕a1⊕⋯⊕ai\text{sum}_i = a_0 \oplus a_1 …

1
グラフ内のすべての2ホップ近傍リストを見つけるアルゴリズム
グラフ場合、| V | = n。Vのすべてのノードのすべての2ホップ近傍リストのコレクションを生成するための高速アルゴリズムとは何ですか。G = (V、E)G=(V,E)G = (V,E)| V| =n|V|=n|V| = nVVV 簡単に言えば、でそれを行うことができます。行列のべき乗では、Strassenアルゴリズムを使用してO (n 2.8)でそれを行うことができます。別の行列乗算アルゴリズムを使用すると、これよりも優れた処理を行うことができます。より良い方法はありますか?ラスベガスのアルゴリズムはありますか?O (n3)O(n3)O(n^3)O (n2.8)O(n2.8)O(n^{2.8})

4
フローネットワークにおけるXORのような動作
XORは正しい名前ではありませんが、ある種の排他的な動作を探しています。 現在、フローネットワークをモデル化し、min-cost-max-flowアルゴリズムを実行することで、さまざまな(割り当て)問題のセットを解決しています。フローネットワークは、多くの問題を簡単かつ理解可能な方法でそれらに削減できるため、非常に便利です。私の場合、これらはいくつかの追加の制約との一致です。これらの制約がより複雑になるにつれて、特定の動作をモデル化するための既存の構造があるかどうか疑問に思っていました。 この場合、ノードの発信フローを単一のエッジに制限します。 グラフ場合、積分容量とコスト。任意のノードをと呼びます。直接の隣人はと呼ばれます。エッジ(赤)をいくつかの構成に置き換えて、1つのエッジのみがフローを受け取ることができるようにできますか?つまり、がフロー(例:)を取得した場合、他の(赤い)エッジはフローを受信できません。C (U 、V )、K (U 、V )A B 1、。。B N A B 1、。。。A B nG=(V,E)G=(V,E)G=(V, E)c(u,v)c(u,v)c(u,v)k(u,v)k(u,v)k(u,v)AAAB1,..BnB1,..BnB_1, ..B_nAB1,...ABnAB1,...ABnAB_1,...AB_n 5 / 10AB1AB1AB_15/105/105/10 中間ノード/エッジを追加して、コストと容量を試すことができます。私たちの新しい建設の総容量は同じままでなければならず、さまざまな代替案のコストは何らかの形で比例し続けなければなりません。 だから私の質問は: このような構造は一般にありますか?(任意のキーワード、リンク、論文) 私の特定の問題の解決策を提案できますか?

2
自明でない多項式の下限があるシリアルアルゴリズムの理論に自明でない問題はありますか?
分散アルゴリズムの理論では、下限が、「大きい」(つまり、より大きい)、自明ではない問題があります。シリアルアルゴリズムの理論に同様の範囲の問題があるのか​​どうか、私は次数がよりもはるかに大きいことを意味し。Ω(n2)Ω(n2)\Omega(n^2)Ω(nlogn)Ω(nlog⁡n)\Omega(n\log n)Ω(nlogn)Ω(nlog⁡n)\Omega(n\log n) ささいなこととは、「入力全体を読まなければならないことを考えるだけで得られる」という意味です。

2
ランダム化されたアルゴリズムは建設的ですか?
から、確率論的方法による証明は非建設的であるとよく言われます。 ただし、確率論的手法による証明は、実際にランダム化されたアルゴリズムを設計し、存在を証明するために使用します。Rajeev Motwani、Prabhakar Raghavanによるランダム化アルゴリズムの p103から引用: 確率的方法による証明は、ランダム化されたアルゴリズムと見なすことができます。この場合、特定の実行でアルゴリズムが適切なパーティションを見つけられない確率を制限する、さらなる分析が必要になります。確率論的方法の思考実験とランダム化アルゴリズムの主な違いは、それぞれがもたらす結果です。確率的方法を使用する場合は、組み合わせオブジェクトが存在することを示すことのみに関心があります。したがって、好ましいイベントがゼロ以外の確率で発生することを示すことに満足しています。一方、ランダム化されたアルゴリズムでは、効率は重要な考慮事項です-非常に小さな成功確率は許容できません。 したがって、ランダム化されたアルゴリズムは、建設的なものではないと見なされていますか? アルゴリズムまたは証明はどのように「建設的」に定義されていますか? ありがとう!


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