def _setup_matcher(self): """ 1. Computes the suitability matrix, 2. Converts it to an n x n minimum assignment problem 3. Starts the Hungarian algorith by subtracting the smallest value from each row and starring zeros """ self._suitability = self.suitability_matrix() self._height = len(self._suitability) self._width = len(self._suitability[0]) # Store the original suitability matrix for computing match suitability later self._matrix = copy.deepcopy(self._suitability) matrix_functions.augment_matrix(self._matrix) matrix_functions.min_matrix(self._matrix) matrix_functions.subtract_row_min(self._matrix) #matrix_functions.subtract_col_min(suitability) self._star_zeroes()
def setup_matrix(suitability): """ 1. Computes the suitability matrix, 2. Converts it to an n x n minimum assignment problem 3. Starts the Hungarian algorith by subtracting the smallest value from each row and starring zeros """ return star_zeroes( \ matrix_functions.subtract_row_min( \ matrix_functions.min_matrix( \ matrix_functions.augment_matrix( \ suitability))))