docs: def simplex_augment_cycle(self, cycle):
          '''
          API:
              simplex_augment_cycle(self, cycle)
          Description:
              Augments along the cycle to break it.
          Pre:
              'flow', 'capacity' attributes on arcs.
          Input:
              cycle: list representing a cycle in the solution
          Post:
              'flow' attribute will be modified.
          '''
          # find amount to augment
          index = 0
          k = len(cycle)
          el = list(self.edge_attr.keys())
          # check arc (cycle[k-1], cycle[0])
          if (cycle[k-1], cycle[0]) in el:
              min_capacity = self.edge_attr[(cycle[k-1], cycle[0])]['capacity']-\
                                self.edge_attr[(cycle[k-1], cycle[0])]['flow']
          else:
              min_capacity = self.edge_attr[(cycle[0], cycle[k-1])]['flow']
          # check rest of the arcs in the cycle
          while index<(k-1):
              i = cycle[index]
              j = cycle[index+1]
              if (i,j) in el:
                  capacity_ij = self.edge_attr[(i,j)]['capacity'] -\
                                self.edge_attr[(i,j)]['flow']
              else:
                  capacity_ij = self.edge_attr[(j,i)]['flow']
              if min_capacity > capacity_ij:
                  min_capacity = capacity_ij
              index += 1
          return min_capacity