最小化jsprit中的总时间

Posted

技术标签:

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

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

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

有人知道如何在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】:

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

【讨论】:

以上是关于最小化jsprit中的总时间的主要内容,如果未能解决你的问题,请参考以下文章

数组中最大元素的最小化

移动度数为 8 时矩阵中的最小成本路径

JSPRIT 中的 CapacityDimension 是啥?

查找项目对之间的全局最小距离的算法

POJ-2516 Minimum Cost(最小费用最大流)

构造完全图