我最初试图在VBA中解决此问题。该帖子的链接在这里:How can I implement dijkstra's algorithm to optimize a blending schedule?
我现在正在寻找使用微型锌为我的混合设备创建模型的方法,但是我很迷茫。
问题的基础是我需要一个可以输入的模型:
我需要安排哪些混合酒(这里简化为A-F混合酒,实际上是A-AF,具有30多种混合酒。)
当前正在混合的产品
星期几
需要计划的每种掺混物的数量(通常为0-8欧元)
输出:
以{| M,T,W,T,F,| M,T,W,T,F,|}…格式输出需要最少天数/洗涤次数的时间表,其混合和洗涤名称为工作日的地点。 使用过渡成本矩阵,例如;从A到F花费2天(在矩阵1,6中发现),共混1天,洗净1天。 A-A(1,1),A-B(1,2)花费1天...等;在6X6矩阵中按A-F顺序概述。
我的问题:
我现在很新,我不确定从哪里开始。我一直在看有关迷你锌的Coursera基本教程,但没有发现它有极大帮助。
如何生成一个可以包含顺序中节点的每个组合的数组(由输入混合/量决定)
如何确定要最小化的功能?对于第一次添加成本,这需要参考先前的混合,然后使用成本矩阵确定每个未来过渡的成本,将它们汇总为一个时间/天。
我如何生成从所选日期开始并创建5天计划/行直到每个混合完成的输出矩阵?并且当过渡成本定义为2时,如何使输出显示混合日后是洗涤日?
有关我在VBA中尝试过的内容,请参见我以前的文章和代码,
Quantity = { 3, 2, 1, 2, 5, 1 }
%Enum Quantity
%Enum Blendcost
array [Blends] of int: Quantity;
array [Blends] of int: costgrid;
%Blendcost(curblend, nexblend)
Blendcost = [|1,2,2,2,2,|1,1,1,1,1,1,|1,1,1,1,1,1,|2,2,2,1,2,2,|1,1,1,1,1,1,|1,1,1,1,1,1,|];