кружками - суммарная


кружками - суммарная стоимость проезда до этого города из первого. Итак, запись логики. procedure Solve(v,Count:byte;Cost:integer); {v - номер текущего города; Count - счетчик числа пройденных городов; Cost - стоимость текущего решения} var i:integer; begin if Cost>BestCost then exit;{Стоимость текущего решения превышает стоимость лучшего из ранее полученных } if Count=N then begin Cost:=Cost+A[v,1];Way[N]:=v;{Последний город пути. Доформировываем решение и сравниваем его с лучшим из ранее полученных.} if Cost<BestCost then begin BestCost:=Cost;BestWay:=Way; end; exit; end; Nnew[v]:=false;Way[Count]:=v;{Город с номером v пройден, записываем его номер в путь коммивояжера} for i:=1 to N do if Nnew[B[v,i]] then Solve(B[v,i], Count+1,Cost+A[v,B[v,i]]); {Поиск города, в который коммивояжер может пойти из города с номером v} Nnew[v]:=true; {Возвращаем город с номером v в число непройденных} end; Первый вызов - Solve(1,1,0). Разработка
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz