Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def _solve(self):
- t = self._text_matrix.copy()
- d = self._distance_matrix.copy()
- num_cols = d.shape[1]
- m = []
- for _ in range(num_cols):
- m.append([{'cost': 0, 'seq': []} for _ in range(num_cols)])
- for i in range(num_cols):
- m[0][i]['cost'] = 0
- m[0][i]['seq'] = [i]
- for i in range(num_cols - 1):
- for j in range(num_cols):
- for k in range(num_cols):
- if k not in m[i][j]['seq']:
- old = m[i + 1][k]['cost']
- new = m[i][j]['cost'] + d[j][k]
- if new > old:
- m[i + 1][k]['cost'] = new
- m[i + 1][k]['seq'] = m[i][j]['seq'] + [k]
- mx = 0
- for i in range(1, num_cols):
- if m[-1][i]['cost'] > m[-1][mx]['cost']:
- mx = i
- p = m[-1][mx]['seq']
- return t[:, p]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement