class_docstr: Calculate the Munkres solution to the classical assignment problem.
  See the module documentation for usage.
docstr: Find a noncovered zero and prime it. If there is no starred zero
  in the row containing this primed zero, Go to Step 5. Otherwise,
  cover this row and uncover the column containing the starred
  zero. Continue in this manner until there are no uncovered zeros
  left. Save the smallest uncovered value and Go to Step 6.
docstr_tok: ["Find","a","noncovered","zero","and","prime","it",".","If","there","is","no","starred","zero","in","the","row","containing","this","primed","zero",",","Go","to","Step","5",".","Otherwise",",","cover","this","row","and","uncover","the","column","containing","the","starred","zero",".","Continue","in","this","manner","until","there","are","no","uncovered","zeros","left",".","Save","the","smallest","uncovered","value","and","Go","to","Step","6","."]
code: def __step4(self):
      """
      Find a noncovered zero and prime it. If there is no starred zero
      in the row containing this primed zero, Go to Step 5. Otherwise,
      cover this row and uncover the column containing the starred
      zero. Continue in this manner until there are no uncovered zeros
      left. Save the smallest uncovered value and Go to Step 6.
      """
      step = 0
      done = False
      row = -1
      col = -1
      star_col = -1
      while not done:
          (row, col) = self.__find_a_zero()
          if row < 0:
              done = True
              step = 6
          else:
              self.marked[row][col] = 2
              star_col = self.__find_star_in_row(row)
              if star_col >= 0:
                  col = star_col
                  self.row_covered[row] = True
                  self.col_covered[col] = False
              else:
                  done = True
                  self.Z0_r = row
                  self.Z0_c = col
                  step = 5
  
      return step
  
imports: import sys
label_desc: Use image node_id 10 for calling the Munkres obj's underlying member method code with example usage: obj.__step4() and returns: step