Любая идея, как исправить эту ошибку "TypeError: неподдерживаемые типы операндов для -: 'list' и 'list'" в Python? - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь реализовать алгоритм дифференциальной эволюции для задачи коммивояжера. Я получаю следующую ошибку: «TypeError: неподдерживаемые типы операндов для -: 'list' и 'list'" Я понимаю, что не могу вычесть два списка, но я не уверен, что именно делать, чтобы решить эту проблему. Спасибо за помощь. Эффектная часть кода:

        x_1 = population[random_index[0]]
        x_2 = population[random_index[1]]
        x_3 = population[random_index[2]]
        x_t = population[random_index[3]]
        print("X_t", x_t)

        # subtract x3 from x2, and create a new vector (x_diff)
        x_diff = [x_2_i - x_3_i for x_2_i, x_3_i in zip(x_2, x_3)]

        # multiply x_diff by the mutation factor (F) and add to x_1
        v_donor = [x_1_i + mutate * x_diff_i for x_1_i, x_diff_i in zip(x_1, x_diff)]
        v_donor = ensure_bounds(v_donor, bounds)

1 Ответ

0 голосов
/ 03 ноября 2019

Работает следующее:

>>> x1 = [1,2,3,4,5]                                                                                          
>>> x2 = [2,2,2,2,2]                                                                                           
>>> print([x_1_i - x_2_i for x_1_i, x_2_i in zip(x1, x2)])

[-1, 0, 1, 2, 3]

Может быть, ваш ввод не скалярный?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...