gringotopies

hung2

Jan 8th, 2020
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.23 KB | None | 0 0
  1. import sys
  2. def permute(a, results):
  3.     if len(a) == 1:
  4.         results.insert(len(results), a)
  5.     else:
  6.         for i in range(0, len(a)):
  7.             element = a[i]
  8.             a_copy = [a[j] for j in range(0, len(a)) if j != i]
  9.             subresults = []
  10.             permute(a_copy, subresults)
  11.             for subresult in subresults:
  12.                 result = [element] + subresult
  13.                 results.insert(len(results), result)
  14.  
  15. matrix = [[0.8,0.6,0.8,0.6,0.8,0.6,],
  16.         [2.0,1.5,2.0,1.5,2.0,1.5,],
  17.         [0.7,0.6,0.7,0.6,0.7,0.6,],
  18.         [0.4,0.2,0.4,0.2,0.4,0.2,],
  19.         [0.2,0.4,0.2,0.4,0.2,0.4,],
  20.         [0.3,0.5,0.3,0.5,0.3,0.5,]]
  21.  
  22.  
  23. results = []
  24. permute(range(len(matrix)), results)
  25.  
  26. minval = sys.maxsize
  27. res_asign=[]
  28. for indexes in results:
  29.     cost = 0
  30.     for row, col in enumerate(indexes):
  31.         cost += matrix[row][col]
  32.     if (cost<minval):
  33.         minval = cost
  34.         res_asign=indexes
  35.      
  36.      
  37. index_asign=0
  38. res_final=[]
  39.  
  40. for rows in matrix:
  41.     for i in range(0,len(rows)):
  42.        
  43.         if(res_asign[index_asign]==i):
  44.             res_final=res_final+[i%2+1]
  45.     index_asign=index_asign+1
  46.    
  47.    
  48. #Przypisanie
  49. print(res_final)
  50. #Ostateczny koszt
  51. print(minval)
Add Comment
Please, Sign In to add comment