Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1.     def _solve(self):
  2.         t = self._text_matrix.copy()
  3.         d = self._distance_matrix.copy()
  4.  
  5.         num_cols = d.shape[1]
  6.         m = []
  7.         for _ in range(num_cols):
  8.             m.append([{'cost': 0, 'seq': []} for _ in range(num_cols)])
  9.         for i in range(num_cols):
  10.             m[0][i]['cost'] = 0
  11.             m[0][i]['seq'] = [i]
  12.         for i in range(num_cols - 1):
  13.             for j in range(num_cols):
  14.                 for k in range(num_cols):
  15.                     if k not in m[i][j]['seq']:
  16.                         old = m[i + 1][k]['cost']
  17.                         new = m[i][j]['cost'] + d[j][k]
  18.                         if new > old:
  19.                             m[i + 1][k]['cost'] = new
  20.                             m[i + 1][k]['seq'] = m[i][j]['seq'] + [k]
  21.  
  22.         mx = 0
  23.         for i in range(1, num_cols):
  24.             if m[-1][i]['cost'] > m[-1][mx]['cost']:
  25.                 mx = i
  26.         p = m[-1][mx]['seq']
  27.         return t[:, p]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement