У вас есть граф K порты и N городов, есть М отгружается в каждом порта, несущие блоки нагрузки X каждого (все из них полностью загружены в начале и может» t reload в любое время, и все они несут такое же количество груза). Каждый город нуждается в некотором количестве груза (может нужна такая же сумма, не может - зависит от ввода), а судно может только выгружать груз в городе, если оно отвечает целым потребностям города (т. Е. Если город нуждается в 10 единиц груза, вы не можете выгрузить 7 из одного судна , а 3 из другого - либо поставляет все 10 единиц, либо не останавливается там).Крупным застряли на задаче графа
Каждый порт подключен к любой другой порт и любой другой город (города также связаны друг с другом - в основном все это связано со всем), и вы знаете, расстояние от каждой точки к любой другой. Какова минимальная стоимость (сумма расстояний), которые должны пройти все суда , и каковы их маршруты, если все города должны выполнить свои потребности, и каждое судно должно завершить свое путешествие в том же порту, в котором он был запущен из?
Это задача, над которой я работаю, как способ улучшить свои навыки решения проблем. Я думал о жадном подходе выбора ближайших городов, а затем идти к ближайшим из них первыми, но это не дотягивает на простом случае, как (предположим, что существует один корабль в каждом порту):
C1 <--11km--> P1 <--10km--> C2 <--10km--> P2
where P are ports and C are cities
(There should also be direct edges from C1 to C2 or P1 to P2 for example
but I omitted them for clarity - let's just assume here all the verices
lie on the same line and so we could ignore them)
причиной судна от P1 перейдет к C2, тем самым сделав маршрут до C1 более длинным, в то время как оптимальное решение будет состоять в том, чтобы он переместился в C1, который лежит дальше, и пусть корабль от P2 ручки C2. Каков правильный способ решения этого? Или, может быть, это NP-полный, и нет? Например, я пытался думать об этом с точки зрения TSP, но это не слишком похоже на то, что вы не смотрите на гамильтоновские циклы здесь.
«Или, может быть, это NP-полный, и нет?» NP-полные проблемы все еще могут быть решены ... –
@ JordiVermeulen - Ха-ха, я знаю, что «нет правильного пути решения этого». Я имел в виду «нет отличного трюка, который я мог бы включить, чтобы найти что-то, работающее полиномиально»;) – Westblower
Can вы отправляете поездки на корабли? Как вы могли отправить один большой грузовой корабль в три города подряд? Или это одноразовая сделка? – Dan