タグ付けされた質問 「graph-theory」

グラフ、エッジで接続されたノードの離散構造に関する質問。人気のフレーバーは、エッジキャパシティを持つツリーとネットワークです。

8
グラフ検索:幅優先と深さ優先
グラフを検索する場合、幅優先と深さ優先の 2つの簡単なアルゴリズムがあります(通常、すべての隣接グラフノードをキュー(幅優先)またはスタック(深さ優先)に追加することによって行われます)。 さて、他のものよりも優れているものはありますか? 私が考えることができるもの: グラフ内のデータがかなり下にあると予想される場合、グラフのより深い部分に非常に高速で進むため、深さ優先の方が早く検索される場合があります。 逆に、データがグラフのかなり上にあると予想される場合、幅優先の方が結果が早くなる可能性があります。 私が見逃したものはありますか、それは主に個人的な好みに帰着しますか?

5
重み付きグラフで、エッジの重みとしてゼロを使用できますか?
ランダムグラフを生成するスクリプトを作成しようとしていますが、重み付きグラフのエッジが0の値を持つ可能性があるかどうかを知る必要があります。 実際、0をエッジの重みとして使用できることは理にかなっていますが、ここ数日でグラフを操作しており、その例を見たことはありません。

1
有向グラフの2つのノード間の単純なパスの数を数えるのはどれくらい難しいですか?
有向グラフの2つのノード間にパスがあるかどうかを判断するための簡単な多項式アルゴリズムがあります(たとえば、深さ優先探索でルーチングラフトラバーサルを実行します)。 しかし、驚くべきことに、存在をテストする代わりにパスの数をカウントしたい場合、問題はさらに難しくなるようです。 パスが頂点を再利用できるようにする場合、sからtまでのパスの数をn個のエッジで見つける動的プログラミングソリューションがあります。ただし、頂点を再利用しない単純なパスのみを許可する場合、考えられる唯一の解決策は、パスのブルートフォース列挙です。これは、指数関数的な時間の複雑さを伴います。 お願いします 2つの頂点間の単純なパスの数を数えるのは難しいですか? もしそうなら、それは一種のNP完全ですか?(私はそれが技術的に意思決定の問題ではないという理由で言っています...) そのようなハードカウントバージョンを持っているPの他の問題はありますか?**

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

4
グラフの直径を見つける時間の複雑さ
グラフの直径を見つける時間の複雑さは何 ですか?G=(V,E)G=(V,E)G=(V,E) O(|V|2)O(|V|2){O}(|V|^2) O(|V|2+|V|⋅|E|)O(|V|2+|V|⋅|E|){O}(|V|^2+|V| \cdot |E|) O(|V|2⋅|E|)O(|V|2⋅|E|){O}(|V|^2\cdot |E|) O(|V|⋅|E|2)O(|V|⋅|E|2){O}(|V|\cdot |E|^2) グラフの直径は、グラフ内のすべての頂点のペア間の最短パス距離のセットの最大値です。GGG 私はそれについて何をすべきか分かりません。このような問題を解決する方法について完全な分析が必要です。

3
無向グラフの最小カットを見つける
ここに私が解決しようとしている過去の試験からの質問があります: 無向グラフの 正の重みを有するW (E )≥ 0、Iは、最小カットを発見しようとしています。max-flow min-cut定理を使用する以外に、それを行う他の方法は知りません。しかし、グラフは無向であるため、どのように指示すればよいですか?両端にエッジを向けることを考えましたが、どの頂点がソースになり、どの頂点がシンクになりますか?または、最小カットを見つける別の方法はありますか?GGGw(e)≥0w(e)≥0w(e) \geq 0

6
単純なグラフの2つのスパニングツリーには、常にいくつかの共通エッジがありますか?
いくつかのケースを試してみましたが、単純なグラフの2つのスパニングツリーには共通のエッジがあることがわかりました。これまでのところ、反例は見つかりませんでした。しかし、私はこれを証明または反証することもできませんでした。この推測を証明または反証する方法は?

2
Logical Min-Cut NP-Completeですか?
この質問は、Computer Science Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 Logical Min Cut(LMC)問題定義 が重みなし有向グラフであり、とが 2つの頂点であり、がから到達可能であると仮定します。LMC問題は、次の制約に従ってエッジを削除することで、から到達不能にする方法を研究しています。s t V t s t s GG=(V,E)G=(V,E)G = (V, E)ssstttVVVtttssstttsssGGG 削除されるエッジの数は最小限でなければなりません。 頂点のすべての出口エッジを削除することはできませんGGG(つまり、外向きのエッジを持つ頂点では、外向きのエッジをすべて削除することはできません)。 この2番目の制約は、論理的削除と呼ばれます。そこで、tがsから到達できないようなGのエッジの論理的で最小限の削除を探します。GGGtttsss ソリューションの試み LMC問題の論理的除去制約を無視すると、重みなし有向グラフの最小カット問題にGGGなるため、多項式で解くことができます(最大フロー最小カット定理)。 LMC問題の最小除去制約を無視すると、再びDAGで多項式的に解くことができます。kはsから到達可能で、tはkから到達できないような頂点見つけます。次に、sからkへの任意のパスであるパスpを考えます。ここで、パスpをサブグラフとして考えてください。答えはサブグラフすべての出口エッジになります。頂点が多項式時間で DFSによって見つけられることは明らかです。残念ながら、このアルゴリズムは一般的に機能しませんkkkkkkssstttkkkpppssskkkpppp k GGGGpppkkkGGG 任意の有向グラフの場合。 ダイナミックプログラミング手法でLMC問題を解決しようとしましたが、問題を解決するために必要な状態の数が指数関数的になりました。さらに、3-SAT、max2Sat、max-cut、cliqueなどのいくつかのNP-Completeの問題を、なんとか削減できなかったLMC問題に還元しようとしました。 個人的には、がバイナリDAG(つまり、2次を超えるノードを持つノードがないDAG)であっても、LMC問題はNP完全であると思います。GGG ご質問 LMCの問題は、任意の有向グラフでNP-完全ですか?(主な質問)GGG LMCの問題は任意のDAGでNP-Complete ですか?GGG LMCの問題は、任意のバイナリDAGでNP-Complete ですか?GGG

1
この頂点サイクルカバー問題に効率的なアルゴリズムはありますか?
この質問は、Computer Science Stack Exchangeで回答できるため、Mathematics Stack Exchangeから移行されました。 3年前に移行され ました。 私は、有向グラフ最大頂点サイクルカバーを見つけるためのアルゴリズムを見つけようとしてきました。つまり、可能な限り多くのサイクルを持つすべての頂点を含む、互いに素なサイクルのセットです。ここでは個々の頂点が循環します)。最小の頂点サイクルカバーを見つける問題と、正確にサイクルの頂点サイクルカバーを見つける問題は、NP完全であることを知っています。しかし、最大のケースはどうですか?G kGGGGGGkkk 私はこの一般的な興味深い答えを見つけますが、私がこれを使用したいグラフは実際にはその構造によってかなり制約されています。 整数のリスト、要素あり、、要素を使用して、ソート後にを参照します。例として:L I S S I LLLLl私lil_iSSSs私sis_iLLL L = (1 、3 、2 、5 、0 、7 、4 、2 、6 、0 、8 、1 )S= (0 、0 、1 、1 、2 、2 、3 、4 、5 、6 、7 、8 )L=(1,3,2,5,0,7,4,2,6,0,8,1)S=(0,0,1,1,2,2,3,4,5,6,7,8) L = (1, 3, 2, …

1
kクリーク問題はNP完全ですか?
この質問は、コンピューターサイエンススタック交換で回答できるため、理論的なコンピューターサイエンススタック交換から移行されました。 7年前に移行され ました。 グラフ理論のクリーク問題に関するこのウィキペディアの記事では、グラフGでサイズKのクリークを見つける問題はNP完全であると最初に述べています。 クリークはコンピューターサイエンスでも研究されています。グラフに特定のサイズのクリークがあるかどうかを調べること(クリーク問題)はNP完全ですが、この困難な結果にもかかわらず、クリークを見つけるための多くのアルゴリズムが研究されています。 しかし、CSのClique問題に関するこの他のWikipediaの記事 では、固定サイズkの問題はPの問題であり、多項式時間でブルートフォースされる可能性があると述べています。 グラフGにk頂点クリークが含まれているかどうかをテストし、それが含むクリークを見つけるには、少なくともk個の頂点を持つ各サブグラフを調べて、クリークを形成するかどうかを確認します。このアルゴリズムには時間がかかりますO(n ^ kk ^ 2):チェックするO(n ^ k)サブグラフがあり、それぞれにGの存在をチェックする必要があるO(k ^ 2)エッジがあります。したがって、kが固定定数である場合は常に、多項式時間で問題を解決できます。ただし、kが問題への入力の一部である場合、時間は指数関数的です。 ここに足りないものはありますか?たぶん問題の文言に違いはありますか?そして、最後の文は何を意味しますか、「kが問題への入力の一部であるとき、しかし、時間は指数関数的です。」?kが問題への入力の一部であるのに、なぜ違いがあるのですか? 私の考えは、グラフGでサイズkのクリークを見つけるには、最初にGからノードのサイズkのサブセットを選択し、それらがすべて他のkノードに関連しているかどうかをテストすることです。時間。そして、サイズkのクリークができるまでこれを繰り返します。Gから選択できるkノードのセットの数はnです!/ k!*(nk)!.

3
グラフの最小スパニングツリーが一意ではない場合
重み付きの無向グラフGが与えられた場合:Gに複数の最小全域木が存在するために、どの条件が当てはまらなければならないか すべての重みが異なる場合、MSTは一意であることを知っていますが、このステートメントを逆にすることはできません。グラフに同じウェイトの複数のエッジがある場合、複数のMSTが存在する可能性がありますが、1つだけ存在する場合もあります。 この例では、左側のグラフには一意のMSTがありますが、右側のグラフにはありません。 MSTの非一意性の条件を見つけるのに最も近い方法は次のとおりです。 グラフGのすべてのコードレスサイクル(他のサイクルを含まないサイクル)を検討します。これらのサイクルのいずれかに最大重み付きエッジが複数回存在する場合、グラフには一意の最小スパニングツリーがありません。 私の考えは、このようなサイクルのために n個の頂点がある場合、エッジの1つだけを除外し、すべての頂点を接続することができます。したがって、MSTを取得するために最も高い重みを持つエッジを削除するには複数の選択肢があるため、MSTは一意ではありません。 しかし、次にこの例を思いつきました。 このグラフには、私の条件に合ったサイクルがあることがわかります:(E、F、G、H)しかし、私が見る限り、最小スパニングツリーは一意です: したがって、私の状態は正しくないようです(または、完全に正しくない可能性があります)。最小スパニングツリーの非一意性に必要かつ十分な条件を見つけるための助けに感謝します。

1
グラフにエッジを追加すると、最短距離はいくつ変化しますか?
してみましょう、いくつかの完全な、加重、無向グラフとします。からエッジを1つずつ追加して、2番目のグラフを作成します。合計でエッジをに追加します。G ′ = (V 、E ′)E E ′ Θ (| V |)G ′G=(V,E)G=(V,E)G=(V,E)G′=(V,E′)G′=(V,E′)G'=(V, E')EEEE′E′E'Θ(|V|)Θ(|V|)\Theta(|V|)G′G′G' 我々は一つのエッジを追加するたびにに、我々はすべてのペア間の最短距離を考える及び。を追加した結果、これらの最短距離がいくつ変化したかを数えます。してみましょう最短距離の数も変化することを、私たちは追加したときに番目のエッジを、とlet、我々は、合計で追加エッジの数をすること。E ′(V 、E ′)(V 、E ′ ∪ { (u 、v )} )(u 、v )C i i n(u,v)(u,v)(u,v)E′E′E'(V,E′)(V,E′)(V, E')(V,E′∪{(u,v)})(V,E′∪{(u,v)})(V, E' \cup \{ (u,v) \})(u,v)(u,v)(u,v)CiCiC_iiiinnn 大きさは?C=∑iCinC=∑iCinC = \frac{\sum_i C_i}{n} 、も同様。この限界は改善できますか?は追加されたすべてのエッジの平均であると定義しているため、であることが証明されていますが、多くの距離が変化する単一のラウンドはそれほど興味深いものではありません。C = O (n 2)C C = Ω (n …

2
重み付きグラフの最小全域木は、与えられた重みで同じ数のエッジを持っていますか?
重み付きグラフに2つの異なる最小全域木およびがある場合、任意のエッジに対して、同じ重みを持つのエッジの数(自体を含む)は、と同じ重みを持つのエッジの数と同じですか?ステートメントが真である場合、どのようにそれを証明できますか?T 1 = (V 1、E 1)T 2 = (V 2、E 2)e E 1 E 1 e e E 2 eGGGT1=(V1,E1)T1=(V1,E1)T_1 = (V_1, E_1)T2=(V2,E2)T2=(V2,E2)T_2 = (V_2, E_2)eeeE1E1E_1E1E1E_1eeeeeeE2E2E_2eee

2
有向グラフで同じ長さの少なくとも2つのパスを見つける
有向グラフと2つのノードおよびBがあるとします。次の決定問題を計算するためのアルゴリズムが既にあるかどうかを知りたい:A BG = (V、E)G=(V,E)G=(V,E)AAABBB 同じ長さのAAAとBBBの間に少なくとも2つのパスがありますか? 複雑さはどうですか?多項式時間で解決できますか? グラフに新しい制約を追加したいのですが、おそらく問題はより解決可能です。隣接行列では、すべての列が空ではありません。したがって、すべてのノードには入力に少なくとも1つの矢印があり、少なくとも1つのノードが自身に接続されています。そのため、ノードが私ii番目のノードである場合、(i 、i )(i,i)(i,i)はグラフのエッジです。

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

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