Решаю задачу коммивояжера методом ветвей и границ. Возникла загвоздка, она не столько связана с кодом, сколько с пониманием алгоритма.
С первыми двумя строками - все понятно, но возьмем, к примеру, 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();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне надо научить сеть делать что-то типо мат функцийТ
Имеется проект на aspnet mvc Появилась необходимость расширить функциональность страницы (добавить несколько колонок в таблицу, изменить метод...