KM.py 653 B

1234567891011121314151617181920212223
  1. import numpy as np
  2. from scipy.optimize import linear_sum_assignment
  3. class KM():
  4. def __init__(self, graph):
  5. self.gragh = graph
  6. self.max_dispatch = self.compute()
  7. def compute(self):
  8. gragh = self.gragh
  9. row,col = linear_sum_assignment(gragh)
  10. # print("行坐标:", row, "列坐标:", col, "最大组合:", self.gragh[row, col])
  11. return [(i,j)for i,j,value in zip(row,col,gragh[row,col]) if value<1000]
  12. # gragh = - self.gragh
  13. # row,col = linear_sum_assignment(gragh)
  14. # return [(i,j) for i,j,value in zip(row,col,gragh[row,col]) if value]
  15. if __name__ == '__main__':
  16. pass