Documentation

Atlas.CombinatorialOptimization.code.Polyhedra.EdmondsPolytope

Instances For
    Instances For
      Instances For
        Instances For
          Instances For
            theorem SimpleGraph.pm_indicator_satisfies_degree {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (M : G.Subgraph) (hM : M.IsPerfectMatching) (v : V) :
            ∑ e ∈ G.incidentEdgeFinset v, (fun (e : ↑G.edgeSet) => if ↑e ∈ M.edgeSet then 1 else 0) e = 1
            theorem SimpleGraph.pm_indicator_satisfies_oddset {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (M : G.Subgraph) (hM : M.IsPerfectMatching) (S : Finset V) (hS : Odd S.card) :
            ∑ e ∈ G.edgeCutFinset S, (fun (e : ↑G.edgeSet) => if ↑e ∈ M.edgeSet then 1 else 0) e ≥ 1
            theorem SimpleGraph.integral_edmondsPolytope_mem_pm {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (x : ↑G.edgeSet → ℝ) (hdeg : ∀ (v : V), ∑ e ∈ G.incidentEdgeFinset v, x e = 1) (hint : ∀ (e : ↑G.edgeSet), x e = 0 ∨ x e = 1) :
            theorem SimpleGraph.mem_edgeCutFinset_iff {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (S : Finset V) (e : ↑G.edgeSet) :
            e ∈ G.edgeCutFinset S ↔ ∃ a ∈ S, ∃ b ∉ S, ↑e = s(a, b)
            theorem SimpleGraph.nonintegral_has_tight_oddset {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (x : ↑G.edgeSet → ℝ) (hx : x ∈ G.edmondsPolytope) (heven : Even (Fintype.card V)) (hni : ∃ (e : ↑G.edgeSet), x e ≠ 0 ∧ x e ≠ 1) :
            ∃ (W : Finset V), Odd W.card ∧ ∑ e ∈ G.edgeCutFinset W, x e = 1
            theorem SimpleGraph.edmondsPolytope_pm_decomposition_aux_local {V : Type u_1} [Fintype V] [DecidableEq V] (G : SimpleGraph V) [DecidableRel G.Adj] (n : ℕ) (x : ↑G.edgeSet → ℝ) (hx : x ∈ G.edmondsPolytope) (hn : {e : ↑G.edgeSet | x e ≠ 0 ∧ x e ≠ 1}.card = n) :
            ∃ (k : ℕ) (M : Fin k → G.Subgraph) (_ : ∀ (i : Fin k), (M i).IsPerfectMatching) (w : Fin k → ℝ), (∀ (i : Fin k), 0 ≤ w i) ∧ ∑ i : Fin k, w i = 1 ∧ ∀ (e : ↑G.edgeSet), x e = ∑ i : Fin k, w i * if ↑e ∈ (M i).edgeSet then 1 else 0