Решаю задачу коммивояжера методом ветвей и границ. Возникла загвоздка, она не столько связана с кодом, сколько с пониманием алгоритма.
С первыми двумя строками - все понятно, но возьмем, к примеру, 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();
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости