'''MaxflowGraph.py'''classMFGraph(object):def__init__(self):
self.vertexnum =0
self.edgenum =0
self.origin =None
self.destn =None
self.VertexSet ={}#key:vertex's name; value:a list with height and excess
self.EdgeSet ={}#key:edge; value:a list with edge's residual capacity and flow
self.EdgeSet_f ={}#key:edge which is in the residual network; value: residual capacity
self.Adjacents_f ={}
self.ExcessSet =[]defgenerate_graph(self,v1,v2,capacity):
self.VertexSet.setdefault(v1,[0,0])
self.VertexSet.setdefault(v2,[0,0])
self.EdgeSet.setdefault((v1,v2),[0, capacity])
self.EdgeSet_f.setdefault((v1,v2), capacity)
self.EdgeSet_f.setdefault((v2,v1),0)ifnot v1 in self.Adjacents_f.keys():
self.Adjacents_f[v1]=[v2]else:
self.Adjacents_f[v1].append(v2)ifnot v2 in self.Adjacents_f.keys():
self.Adjacents_f[v2]=[v1]else:
self.Adjacents_f[v2].append(v1)