Difference between revisions of "User:Timeroot"
(continuing table) |
|||
Line 14: | Line 14: | ||
Complexities are usually given in the form of {complete class; upper bound on runtime; lower bound on runtime under reasonable assumptions}. I assume the ETH (that 3SAT can't be solved in 2^o(n)), which has the FPT corollary Clique can't be solved in f(k)n<sup>o(k)</sup>. If there a simple case that shows why something is NP-Hard, then I will mention it: in particular, finding Hamiltonian cycles and cliques are hard. | Complexities are usually given in the form of {complete class; upper bound on runtime; lower bound on runtime under reasonable assumptions}. I assume the ETH (that 3SAT can't be solved in 2^o(n)), which has the FPT corollary Clique can't be solved in f(k)n<sup>o(k)</sup>. If there a simple case that shows why something is NP-Hard, then I will mention it: in particular, finding Hamiltonian cycles and cliques are hard. | ||
− | {| class="wikitable" style="text-align: center | + | {| class="wikitable" style="text-align: center;" |
|+ Graph Substructure Table | |+ Graph Substructure Table | ||
|- | |- | ||
Line 24: | Line 24: | ||
! scope="col" | Complexity (fixed H) | ! scope="col" | Complexity (fixed H) | ||
|- | |- | ||
− | + | || '''Graph Isomorphism''' | |
| ''None'' || '''E'''(u,v) ↔ '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> bijective || Equivalence <br />Not WQO (e.g. Kn)<br />DCC, ACC || GI-Complete <br /> e<sup>O(log<sup>3</sup> G)</sup> ''[1]'' <br /> - || ''Trivial'' <br /> (Fixed vertex count; ACC) | | ''None'' || '''E'''(u,v) ↔ '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> bijective || Equivalence <br />Not WQO (e.g. Kn)<br />DCC, ACC || GI-Complete <br /> e<sup>O(log<sup>3</sup> G)</sup> ''[1]'' <br /> - || ''Trivial'' <br /> (Fixed vertex count; ACC) | ||
|- | |- | ||
− | + | || '''Induced Subgraph''' | |
| Vertex deletion || '''E'''(u,v) ↔ '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> injective || Not WQO (e.g. Cn)<br />DCC || NP-Complete (cliques) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || W[1]-Complete (cliques) <br /> G<sup>H+2</sup> <br /> f(H)G<sup>o(H)</sup> | | Vertex deletion || '''E'''(u,v) ↔ '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> injective || Not WQO (e.g. Cn)<br />DCC || NP-Complete (cliques) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || W[1]-Complete (cliques) <br /> G<sup>H+2</sup> <br /> f(H)G<sup>o(H)</sup> | ||
|- | |- | ||
− | + | || '''Subgraph''' | |
| Vertex deletion, Edge deletion || '''E'''(u,v) → '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> injective || Not WQO (e.g. Cn)<br />DCC || NP-Complete (cliques) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || W[1]-Complete (cliques) <br /> G<sup>H+2</sup> <br /> f(H)G<sup>o(H)</sup> | | Vertex deletion, Edge deletion || '''E'''(u,v) → '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> injective || Not WQO (e.g. Cn)<br />DCC || NP-Complete (cliques) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || W[1]-Complete (cliques) <br /> G<sup>H+2</sup> <br /> f(H)G<sup>o(H)</sup> | ||
|- | |- | ||
− | + | || '''Spanning Subgraph''' | |
| Edge deletion || '''E'''(u,v) → '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> bijective || Not WQO (e.g. Cn)<br />DCC, ACC || NP-Complete (Hamiltonian cycle) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || ''Trivial'' <br />(Fixed vertex count; ACC) | | Edge deletion || '''E'''(u,v) → '''E'''(''f''(u), ''f''(v))<br />''f''<sub>V</sub> bijective || Not WQO (e.g. Cn)<br />DCC, ACC || NP-Complete (Hamiltonian cycle) <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || ''Trivial'' <br />(Fixed vertex count; ACC) | ||
|- | |- | ||
− | + | || '''Dissolution''' <br />Dual to '''Subdivision''' | |
− | | | + | | Vertex Dissolution || ''f''<sub>V</sub> injective<br />''f''<sub>E</sub> carries edges to distinct induced paths || Not WQO (e.g. Kn)<br />DCC || NP-Complete ''[2]'' <br /> G<sup>H+2</sup> <br /> 2<sup>o(G)</sup> || FPT<br />H<sup>H</sup>G<br />2<sup>o(H)</sup>G ''[3]'' |
+ | |- | ||
+ | || '''Homeomorphism''' | ||
+ | | Dissolution, Subdivision | ||
+ | |- | ||
+ | || '''Induced Topological Minor''' | ||
+ | | Vertex deletion, smoothing<br />(Multiedge simplification?) | ||
+ | |- | ||
+ | || '''Topological Minor''' | ||
+ | | Vertex deletion, edge deletion, smoothing | ||
+ | |- | ||
+ | || '''Induced Minor''' | ||
+ | | Vertex deletion, contraction<br />(Multiedge simplification?) | ||
+ | |- | ||
+ | || '''Minor''' | ||
+ | | Vertex deletion, edge deletion, contraction | ||
+ | |- | ||
+ | || '''Induced Immersion''' | ||
+ | | Vertex deletion, lifting<br />(Multiedge simplification?) | ||
+ | |- | ||
+ | || '''Immersion''' | ||
+ | | Vertex deletion, edge deletion, lifting | ||
+ | |- | ||
+ | || '''Weak Immersion''' | ||
+ | | Vertex deletion, edge deletion, lifting, subdivision<br />(smoothing?) | ||
+ | |- | ||
+ | || '''Strong Immersion''' | ||
+ | | ...complicated... | ||
+ | |- | ||
+ | || '''Homeomorphism''' | ||
+ | | | ||
+ | |- | ||
+ | || '''Full Homeomorphism''' | ||
+ | | | ||
+ | |- | ||
+ | || '''Surjective Homeomorphism''' | ||
+ | | | ||
+ | |- | ||
+ | || '''Faithful Homeomorphism''' | ||
+ | | | ||
|} | |} | ||
+ | |||
+ | Definition of operations: | ||
+ | * '''Vertex deletion''': Remove a vertex from the graph, and all edges using that vertex | ||
+ | * '''Edge deletion''': Remove an edge from a graph | ||
+ | * '''Dissolution''': Given a degree-2 vertex ''u'' with neighbors ''v'' and ''w'', remove ''u'' and add an edge (''v'',''w''). ''u'' cannot have a loop. If ''v'' and ''w'' are neighbors, then this creates a multiedge. If multiple edges are allowed and ''v''=''w'', then dissolution creates a loop at ''v''. If loops aren't allowed and ''v''=''w'' then ''u'' cannot be dissolved. Also called '''Smoothing''' | ||
+ | * '''Subdivision''': Given an edge (''v'',''w''), remove that edge, create a new vertex ''u'', and add edges (''v'',''u'') and (''u'',''w''). Also called '''Expansion'''. The opposite of dissolution. | ||
+ | * '''Vertex identification''': Given two distinct vertices ''u'' and ''v'', delete ''v''. For each edge (''v'',''w'') that was deleted, add a new edge (''u'',''w''). This may create multiedges. | ||
+ | * '''Edge contraction''': Vertex identification, restricted to the case where ''u'' and ''v'' are neighbors. No loop is created at ''u''. | ||
+ | * '''Lifting''': If there is an edge (''u'',''v'') and another edge (''v'',''w''), then remove these two edges from the graph and add an edge (''u'',''w''). When combined with vertex deletion, includes dissolution. | ||
+ | * '''Multiedge simplification''': If there are multiple edges (''u'',''v''), then remove one of them. Special case of edge deletion. | ||
+ | * '''Loop simplification''': Remove a loop. Special case of edge deletion. | ||
References: | References: | ||
[1] https://cstheory.stackexchange.com/a/40373/12211 | [1] https://cstheory.stackexchange.com/a/40373/12211 | ||
− | [2] | + | |
+ | [2] NP-Hardness was originally "observed" in "On the complexity of finding iso-and other morphisms for partial k-trees" by J. Matoušek, R. Thomas, although the reduction is somewhat nontrivial and doesn't seem to be written down anywhere. | ||
+ | |||
+ | [3] For large G, only the vertices of degree at least 3 need to be compared. The rest is simply comparing induced path lengths. See "Containment relations in split graphs" by Petr A.Golovach et al. |
Revision as of 21:41, 14 May 2019
Real name: Alex Meiburg.
Physics PhD student at UCSB (expected grad ~2024).
I'm trying to compile information on types of graph containment. Complexity bounds should have upper- and lower-bounds on difficulty with fixed H and varying H.
For instance, for many types of substructure (such as subgraph), finding an H inside G can be trivially done in O(G^H) time. (I use the name, G, synonymously with |V(G)|, its vertex size.) Worst case, this is exponential with H. But if you fix H, then there may (or may not) be algorithms that 'move' the difficulty, e.g. O(H! * G^2). This would then by fixed-parameter tractable.
Being well-quasi-ordered (WQO) is important, because it implies that any property closed under these operations can be described by a forbidden substructure. The classic case is minors, which are a WQO and can have substructure found in O(G^2) time with a fixed H. There is a very nontrivial constant factor that depends on H, though, rendering most of these algorithms impractical. I'll use the notation RS(H) to indicate that an algorithm uses the Robertson-Seymour subroutine, and so although might have fixed H dependence, the constant matters. A weaker property than being WQO is the descending chain condition (DCC), which means that there are no infinite chains of containment. Properties that respect some integral measure of size (e.g. |V| or |E|) always have the DCC, but others such as graph homomorphism might not. When a property is not WQO, I will usually provide an example of why, such as the cliques Kn, cycles Cn, or bipartite graphs Knn, that form an infinite antichain. Finally, there is also an Ascending Chain Condition (ACC), which usually applies when the vertex or edge count is fixed: all edges containing a given H are of a maximum size.
For relations that requires G and H are of the same size in some sense (such as Graph Isomorphism, Spanning Subgraph, Subdivision etc. -- technically, those that with fixed H admit a kernelization algorithm), the "fixed H" problem becomes trivial. This includes all with the ascending chain condition, as there are just finitely many G's to check for.
Complexities are usually given in the form of {complete class; upper bound on runtime; lower bound on runtime under reasonable assumptions}. I assume the ETH (that 3SAT can't be solved in 2^o(n)), which has the FPT corollary Clique can't be solved in f(k)n^{o(k)}. If there a simple case that shows why something is NP-Hard, then I will mention it: in particular, finding Hamiltonian cycles and cliques are hard.
Name | Reductions | Map f: H → G | Ordering Properties | Complexity (varying H) | Complexity (fixed H) |
---|---|---|---|---|---|
Graph Isomorphism | None | E(u,v) ↔ E(f(u), f(v)) f_{V} bijective |
Equivalence Not WQO (e.g. Kn) DCC, ACC |
GI-Complete e^{O(log3 G)} [1] - |
Trivial (Fixed vertex count; ACC) |
Induced Subgraph | Vertex deletion | E(u,v) ↔ E(f(u), f(v)) f_{V} injective |
Not WQO (e.g. Cn) DCC |
NP-Complete (cliques) G^{H+2} 2^{o(G)} |
W[1]-Complete (cliques) G^{H+2} f(H)G^{o(H)} |
Subgraph | Vertex deletion, Edge deletion | E(u,v) → E(f(u), f(v)) f_{V} injective |
Not WQO (e.g. Cn) DCC |
NP-Complete (cliques) G^{H+2} 2^{o(G)} |
W[1]-Complete (cliques) G^{H+2} f(H)G^{o(H)} |
Spanning Subgraph | Edge deletion | E(u,v) → E(f(u), f(v)) f_{V} bijective |
Not WQO (e.g. Cn) DCC, ACC |
NP-Complete (Hamiltonian cycle) G^{H+2} 2^{o(G)} |
Trivial (Fixed vertex count; ACC) |
Dissolution Dual to Subdivision |
Vertex Dissolution | f_{V} injective f_{E} carries edges to distinct induced paths |
Not WQO (e.g. Kn) DCC |
NP-Complete [2] G^{H+2} 2^{o(G)} |
FPT H^{H}G 2^{o(H)}G [3] |
Homeomorphism | Dissolution, Subdivision | ||||
Induced Topological Minor | Vertex deletion, smoothing (Multiedge simplification?) | ||||
Topological Minor | Vertex deletion, edge deletion, smoothing | ||||
Induced Minor | Vertex deletion, contraction (Multiedge simplification?) | ||||
Minor | Vertex deletion, edge deletion, contraction | ||||
Induced Immersion | Vertex deletion, lifting (Multiedge simplification?) | ||||
Immersion | Vertex deletion, edge deletion, lifting | ||||
Weak Immersion | Vertex deletion, edge deletion, lifting, subdivision (smoothing?) | ||||
Strong Immersion | ...complicated... | ||||
Homeomorphism | |||||
Full Homeomorphism | |||||
Surjective Homeomorphism | |||||
Faithful Homeomorphism |
Definition of operations:
- Vertex deletion: Remove a vertex from the graph, and all edges using that vertex
- Edge deletion: Remove an edge from a graph
- Dissolution: Given a degree-2 vertex u with neighbors v and w, remove u and add an edge (v,w). u cannot have a loop. If v and w are neighbors, then this creates a multiedge. If multiple edges are allowed and v=w, then dissolution creates a loop at v. If loops aren't allowed and v=w then u cannot be dissolved. Also called Smoothing
- Subdivision: Given an edge (v,w), remove that edge, create a new vertex u, and add edges (v,u) and (u,w). Also called Expansion. The opposite of dissolution.
- Vertex identification: Given two distinct vertices u and v, delete v. For each edge (v,w) that was deleted, add a new edge (u,w). This may create multiedges.
- Edge contraction: Vertex identification, restricted to the case where u and v are neighbors. No loop is created at u.
- Lifting: If there is an edge (u,v) and another edge (v,w), then remove these two edges from the graph and add an edge (u,w). When combined with vertex deletion, includes dissolution.
- Multiedge simplification: If there are multiple edges (u,v), then remove one of them. Special case of edge deletion.
- Loop simplification: Remove a loop. Special case of edge deletion.
References:
[1] https://cstheory.stackexchange.com/a/40373/12211
[2] NP-Hardness was originally "observed" in "On the complexity of finding iso-and other morphisms for partial k-trees" by J. Matoušek, R. Thomas, although the reduction is somewhat nontrivial and doesn't seem to be written down anywhere.
[3] For large G, only the vertices of degree at least 3 need to be compared. The rest is simply comparing induced path lengths. See "Containment relations in split graphs" by Petr A.Golovach et al.