【问题标题】:Minimize the total time in jsprit最小化jsprit中的总时间
【发布时间】:2017-12-19 22:36:16
【问题描述】:

我考虑优化我们当地的筹款之旅。 我们有固定数量的组从一个位置移动到另一个位置。 目标是最小化总时间,并且(希望)所有组花费相同的时间。

到目前为止,我只找到了每次车辆操作成本的设置(距离、固定、运输时间……)。

有人知道如何在jsprit中实现这个目标吗?

【问题讨论】:

    标签: jsprit


    【解决方案1】:

    总时间应该由 JSprit 优化,无需任何自定义。大约相同的时间 - 我认为最简单的方法是创建自定义 SolutionCostCalculator 并在时间不同时增加路线成本。

    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;
        }
    }
    

    然后在创建算法时使用它:

    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);
    

    【讨论】:

      【解决方案2】:

      您需要为您的问题添加自定义约束。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多