2017-12-19 10 views
1

지역 기금 모금의 투어를 ​​최적화하는 것에 대해 생각합니다. 우리는 한 위치에서 다른 위치로 이동하는 고정 된 양의 그룹을 가지고 있습니다. 목표는 총 시간을 최소화하고 모든 그룹이 동일한 시간을 사용한다는 것입니다.jsprit의 총 시간을 최소화하십시오.

지금까지 자동차 조작 당 비용 (거리, 수정, 전송 시간, ...) 만 발견했습니다.

누구든지 jsprit에서이 목표를 구현하는 방법을 알고 있습니까?

답변

0

문제에 대해 사용자 지정된 제약 조건을 추가해야합니다.

1

총 시간은 맞춤 설정없이 JSprit에 의해 최적화되어야합니다. 같은 시간에 대해서 - 가장 쉬운 방법은 시간이 같지 않으면 사용자 정의 SolutionCostCalculator을 작성하고 경로 비용을 늘리는 것입니다.

VehicleRoutingProblem vrp = vrpBuilder.build(); 
// init your vrp 

VehicleRoutingAlgorithm algorithm = Jsprit.Builder.newInstance(vrp) 
      .setObjectiveFunction(new SPSolutionCostCalculator(stateManager)) 
      .buildAlgorithm(); 
Collection<VehicleRoutingProblemSolution> searchSolutions = algorithm.searchSolutions(); 
VehicleRoutingProblemSolution solution = Solutions.bestOf(searchSolutions); 
: 알고리즘을 만드는 동안 다음

public class CustomSolutionCostCalculator implements SolutionCostCalculator { 

    private StateManager stateManager; 

    public SPSolutionCostCalculator(StateManager aStateManager) { 
     stateManager = aStateManager; 
    } 

    @Override 
    public double getCosts(VehicleRoutingProblemSolution solution) { 
     double cost = 0.0; 
     // calculate cost 
     return cost; 
    } 
} 

및 사용