Documentation

Atlas.CombinatorialOptimization.code.Flow.MaxFlowMinCut

def NetworkFlow.resCap' {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (u v : V) :
Instances For
    def NetworkFlow.resAdj' {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (u v : V) :
    Instances For
      def NetworkFlow.ResReachable {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (v : V) :
      Instances For
        Instances For
          theorem NetworkFlow.resCap'_nonneg {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (u v : V) :
          0 resCap' N fl u v
          theorem NetworkFlow.ResReachable_step {V : Type u_1} [Fintype V] [DecidableEq V] {N : FlowNetwork V} {fl : STFlow N} {u v : V} (hu : ResReachable N fl u) (hadj : resAdj' N fl u v) :
          noncomputable def NetworkFlow.resReachableSet {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) :
          Instances For
            theorem NetworkFlow.t_not_mem_resReachableSet {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (hmax : NoAugmentingPath N fl) :
            N.tresReachableSet N fl
            noncomputable def NetworkFlow.maxFlowCut {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (hmax : NoAugmentingPath N fl) :
            Instances For
              theorem NetworkFlow.maxFlowCut_S {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (hmax : NoAugmentingPath N fl) :
              (maxFlowCut N fl hmax).S = resReachableSet N fl
              theorem NetworkFlow.not_resAdj_of_reach_nonreach {V : Type u_1} [Fintype V] [DecidableEq V] {N : FlowNetwork V} {fl : STFlow N} {u v : V} (hu : ResReachable N fl u) (hv : ¬ResReachable N fl v) :
              ¬resAdj' N fl u v
              theorem NetworkFlow.resCap'_eq_zero_of_cross {V : Type u_1} [Fintype V] [DecidableEq V] {N : FlowNetwork V} {fl : STFlow N} {u v : V} (hu : ResReachable N fl u) (hv : ¬ResReachable N fl v) :
              resCap' N fl u v = 0
              theorem NetworkFlow.flow_eq_cap_of_cross {V : Type u_1} [Fintype V] [DecidableEq V] {N : FlowNetwork V} {fl : STFlow N} {u v : V} (hu : ResReachable N fl u) (hv : ¬ResReachable N fl v) :
              fl.f u v = N.cap u v
              theorem NetworkFlow.flow_eq_zero_of_cross {V : Type u_1} [Fintype V] [DecidableEq V] {N : FlowNetwork V} {fl : STFlow N} {u v : V} (hu : ResReachable N fl u) (hv : ¬ResReachable N fl v) :
              fl.f v u = 0
              theorem NetworkFlow.flowValue_eq_cross {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (C : STCut N) :
              flowValue N fl = uC.S, vC.S, fl.f u v - uC.S, vC.S, fl.f v u
              theorem NetworkFlow.max_flow_min_cut {V : Type u_1} [Fintype V] [DecidableEq V] (N : FlowNetwork V) (fl : STFlow N) (hmax : NoAugmentingPath N fl) :
              ∃ (C : STCut N), flowValue N fl = cutCapacity N C