首页 > 解决方案 > 作业车间调度问题中的设置时间

问题描述

我正在研究将 google or-tools 应用于调度问题。我对cp_modelapi 非常满意,但它似乎仍然缺少一些仅在车辆路由模块中可用的功能pywrapcp

这是使用cp_model官方页面上可用模块的程序的基本示例:https ://developers.google.com/optimization/scheduling/job_shop#entire-program

我的问题是:是否有可能在上面的代码中引入设置时间维度,就像我们在这样的常规 TSP 问题中所做的那样:

    def distance_callback(from_index, to_index):
        """Returns the distance between the two nodes."""
        # Convert from routing variable Index to distance matrix NodeIndex.
        from_node = manager.IndexToNode(from_index)
        to_node = manager.IndexToNode(to_index)
        return data['distance_matrix'][from_node][to_node]

    transit_callback_index = routing.RegisterTransitCallback(distance_callback)

    # Define cost of each arc.
    routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index)

找到的唯一一个接近的例子是这个:https://github.com/google/or-tools/blob/stable/examples/python/single_machine_scheduling_with_setup_release_due_dates_sat.py 但是,它似乎只适用于一台机器。

标签: optimizationor-tools

解决方案


有 3 个示例来描述设置时间:


推荐阅读