如何解决一个序列相关的并行机调度问题,其中一个计划将作为解决方案提供?

2024-09-29 06:34:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找任何线索,可以帮助我解决这个问题。我不知道从哪里开始。如果有人能给我提供相关的链接来解决这个问题,那就太好了

问题:

流程订单的定义: 加工1kg的材料,以生产该材料的最终产品。每种材料按1kg的顺序供应。因此,在给定的时间内可能会有多个订单需要处理,比如说,8个订单的“物料1”意味着要处理8次1kg的“物料1”

可用性: 有3种类型的材料将在加工站(3个)上加工,以生产这些材料的最终产品。有一个材质到桩号的映射可用。比如说:

  1. 物料1可在工位1和工位2进行加工
  2. 材料2可在工位1和工位3进行加工
  3. 材料3只能在工位2加工

提供了处理每种材料的时间:

  1. 材料1->;1小时用于处理,5小时用于清洁工位

  2. 材料2->;处理时间为0.5小时,清洁工位时间为0.25小时

  3. 材料3->;2小时用于处理,1小时用于清洁工位

仅当两种不同类型的材料要在一个工位上依次加工时,才需要清洁。例如:

  1. 如果材料2跟随材料1在同一工位上加工,则需要0.5小时的清洁时间

  2. 如果材料2跟随材料2在同一工位上加工,则无需清洁时间

目标: 为每个车站提供最佳的进度计划。i、 e应在工作站上执行提供的工艺指令的顺序

目标函数: 减少清洁时间

例如,如果我能在未来4小时内处理部分数量的物料1,我将坚持在其中一个工位处理全部数量,而不是在工位2上并行处理一半订单

Madontory约束:

  • 首选工位的概念:材料有首选工位,即如果工位1和工位2都可用,则工位1优先用于材料1和材料2

可选约束:

  • 优先级:如果为工艺订单分配了优先级,则应首先执行该采购订单(1kg物料)

  • 时间限制:如果要求提供未来8小时的计划,则只应提供未来8小时的计划

我所做的: 最有希望的解决办法来自https://ibmdecisionoptimization.github.io/tutorials/html/Scheduling_Tutorial.html,然而,我尚未得出任何结论。这个问题对我来说太复杂了

现在,我正在考虑准备一个包含所有可能解的排列的解空间,并以最低的时间消耗返回结果。在这种情况下,最大的障碍是提供一个序列。这可能是昂贵的计算,因为我有200+材料和30+站。我希望用Python解决这个问题

PS:我想不出一个合适的标题,如果你能推荐一个,那就太好了


Tags: 订单gt类型目标数量顺序产品时间