Непонятки с CVRP.
Следуя постановке задачи CVRP (http://neo.lcc.uma.es/radi-aeb/WebVRP//Problem_Descriptions/CVRPDesc.html), целевая функция задачи состоит в минимизации количества используемых транспортных средств (ТС) и суммарного растояния проезда: "Objective: The objective is to minimize the vehicle fleet and the sum of travel time, and the total demand of commodities for each route may not exceed the capacity of the vehicle which serves that route. "
Однако не уточняется, какой из параметров имеет больший приоритет, что в первую очередь минимизировать.
Далее буду применять термин подмаршрут в отношении к отдельной для ТС части маршрута --- так логичнее, так как одним ТС можно последовательно проехать по всем подмаршрутам.
Теоретически, возможна ситуация, когда при большем количестве подмаршрутов суммарная длина может быть меньше.
Если стоимость посещения базового пункта является дорогой операцией, тогда выгодно уменьшать в первую очередь, количество подмаршрутов. Или, логичнее, просто налогать определнный штраф за каждый подмаршрут. А если эта операция "бесплатна", то можно снизить суммарную длину увеличив количество подмаршрутов.
Для задачи E-n30-k3.vrp (в архиве http://neo.lcc.uma.es/radi-aeb/WebVRP//data/instances/Christ-Eilon/CE-VRP.zip) указывается оптимальное решение, где количество подмаршрутов = 3, общая длина = 536. В текущий момент мне известно (возможно, неоптимальное) решение с общей длиной = 506, и 4 подмаршрута (подробнее см. ниже). Если переход от одного подмаршрута к другой ничего не стоит, то первым освободившийся ТС можно направить на дополнительный подмаршрут, и в итоге, получить общую длину, которая будет короче, чем при решении с меньшим количеством подмаршрутов.
Решение E-n30-k3.vrp длиной 506, 4 маршрута (возможно, не оптимальное).
#1: 19 16 17 14 8 18 10 15 9 13 12 11 24 = {D=3625,W=139}
#2: 27 29 28 30 26 25 2 7 = {D=3300,W=184}
#3: 22 = {1500,46}
#4: 20 4 5 6 3 23 21 = {D=4325,W=137}