c# задача коммивояжера

305
15 мая 2018, 08:10

Решаю задачу коммивояжера методом ветвей и границ. Возникла загвоздка, она не столько связана с кодом, сколько с пониманием алгоритма.

С первыми двумя строками - все понятно, но возьмем, к примеру, 3 строку :

30, 0, М, 40, 0

В алгоритме написано

для всех клеток матрицы с нулевыми элементами заменяем поочередно нули на М

получаем :

30, М, М, 40, М

выходит, что минимальный элемент = 30, т.е di=30, а в таблице же он равен 0. Спрашивается, откуда 0 ? Или мы заменяем, только первый 0 на М, а другой не трогаем, в случае, если в строке больше одного ?

Немного кода :

for (int i = 0; i < rows; i++)
    for (int j = 0; j < columns; j++)
        if (_Mass[i, j] == "0")
            _Mass[i, j] = (MinDi[i] + MinDj[j]).ToString();
READ ALSO
как сделать нейронную простейшую сеть с 1 входом и 1 выходом

как сделать нейронную простейшую сеть с 1 входом и 1 выходом

Мне надо научить сеть делать что-то типо мат функцийТ

180
Moq объект для тестирования

Moq объект для тестирования

как для такого контекста правильно написать moq? PS

200
Поддержка двух реализаций страницы в .net asp mvc

Поддержка двух реализаций страницы в .net asp mvc

Имеется проект на aspnet mvc Появилась необходимость расширить функциональность страницы (добавить несколько колонок в таблицу, изменить метод...

219