3

알고리즘 문제를 다루고 있습니다. 나는 하나의 중앙 노드를 가진 알려진 그래프 알고리즘을 가지고있다. 목표는이 중앙 노드에서 두 개의 운송 업체에 의해 지정된 다른 노드로 물품을 전달하는 것입니다. 모든 운송 업체는 최대 한 단위의 상품이 그 당시에는 각 노드를 방문한 후 다음 노드의 중앙 노드로 돌아옵니다. 가능한 한 최단 시간을 계산해야합니다.2 명의 운송인에 의한 가장 짧은 배달 시간

내 접근 방식은 노드 사이의 다른 거리를 고려하여 다른 모든 노드에 대한 최단 경로를 찾기 위해 중앙 노드에 dijkstra algorithm을 사용하는 것이 었습니다. 그런 다음 트랜스 포터가 이동해야하는 모든 노드 (때로는 특정 노드까지 한 번 이상)에서 앞뒤로 거리가 있기 때문에 값이 두 배가됩니다. 나는 값을 두 그룹으로 나누었습니다. 합계는 가능한 한 서로 가깝습니다. 왜냐하면 두 개의 운송인이 있고 더 큰 것을 인쇄했기 때문입니다.

그러나 솔루션은 완벽하지는 않습니다. 나는 다른 것을 만들어야합니다. 첫 번째 운송인이 일을 끝내는 지 안다면 8 단위가 더 빨리 나옵니다. 배달 중 어딘가에서 두 번째 운송인에게 좋은 물건을 준비 할 수 있습니다. 그러면 중앙 노드까지 갈 필요가 없지만 덜 수 있습니다. 그렇다면 그들의 총 시간은 같을 것이지만 둘 다 더 짧다고 생각합니다. 불행히도, 이것은 항상 가능하지는 않습니다 (예를 들어, 한 노드에 한 번만 배달 등). 프로그램에이 부분을 추가해야합니다.

+0

최적의 시간을 내기 위해이 기동이 필요한 경우가 있습니까? –

+0

이 간단한 [예] (https://drive.google.com/open?id=0BybjAhGDTdlMQXZoYU9XcjRSR00)에 대해 생각했습니다. 그들이 센트 1에서 노드 2,3,3으로 3 개의 상품을 전달해야한다고 상상해보십시오. 내 솔루션에 기반한 시간은 16,12 시간입니다. 더 나은 솔루션에서는 첫 번째 항목은 노드 3 방향으로 항목 5 개를 전달하고 거기서 보내고 중앙으로 돌아가 노드 2를 처리합니다. 두 번째는 먼저 노드 3을 처리 한 다음 다른 노드 3 작업을 완료합니다. 둘 다의 시간은 14입니다. 문제는 모든 가능한 경우에 대해 주어진 그래프에 대해이 최적화가 가능하다는 것을 결정하는 방법입니다. – ludgo

+0

2 명의 운송인이 맨 끝에 중앙 노드로 돌아 가야합니까? 그렇지 않은 경우 멀리있는 노드에 마지막으로 공급하도록하여 시간을 절약 할 수 있습니다. –

답변

0

실제로 우리는 휴리스틱 또는 건설적인 방법과 같은 몇 가지 방법으로 해결할 수있는 "차량 경로 지정"문제에 대해 작업하고 있습니다.

이 방법에 대한 유용한 정보는 here을 참조하십시오.