| 61 | |
| 62 | # Function: Q-Table Init |
| 63 | def initialize_q_table(num_cities, seed): |
| 64 | if seed is not None: |
| 65 | np.random.seed(seed) |
| 66 | q_table = np.zeros((num_cities, num_cities)) |
| 67 | num_noisy_elements = int(1 * num_cities * num_cities) |
| 68 | idx = np.random.choice(num_cities * num_cities, num_noisy_elements, replace = False) |
| 69 | noise = np.random.uniform(-0.01, 0.01, size = num_noisy_elements) |
| 70 | q_table.flat[idx] = noise |
| 71 | return q_table |
| 72 | |
| 73 | # Function: Reconstruct Route from Q-Tables |
| 74 | def reconstruct_route(q_table_a, q_table_b, distance_matrix, num_cities): |