本例练习任务先后与等待。你可以先阅读规则与数据,自己拟定一个方案,再对照逐步记录检查理由;重点是学会把限制、目标和实际操作联系起来。
本例规则和数据
从时刻0起连续完成六项任务,每次只能做一项。目标是“各任务完成时刻×其重要度”之和最小;所有任务都必须完成。前置关系为A必须先于E;C必须先于E;B必须先于E;B必须先于F。
任务 工时 重要度 A 3 4 B 3 4 C 3 1 D 1 4 E 2 2 F 3 1
先明确比较方法
任务顺序会改变重要目标等待的时间。这里计算完成时刻乘以重要度的总和,较早完成一个重要任务可能比单纯缩短某一步更有价值。
依赖关系必须先满足。不能因为任务重要就让它越过前置条件,也不能把全部任务的总工时当成所有任务的完成时刻。
答案与逐项计算
执行顺序为D→B→A→C→E→F,加权完成代价97。
D完成于1,重要度4,因此计入1×4=4。
B完成于4,重要度4,因此计入4×4=16。
A完成于7,重要度4,因此计入7×4=28。
C完成于10,重要度1,因此计入10×1=10。
E完成于12,重要度2,因此计入12×2=24。
F完成于15,重要度1,因此计入15×1=15。
对照方案与完整性检查
另一条合法候选是D、B、A、F、C、E,它的加权完成代价为101。它虽然也能完成目标,但代价更高。比较这条候选能帮助区分“可以这样做”和“按本题目标更合适”两个判断。
本例检查了108条合法候选记录,其中主指标达到最优的记录有2条。核对时枚举允许的分工或先后顺序,再独立按表累加数值;有前置或截止条件的候选,先检查是否合法再参与比较。
怎样自己练一次
复盘时先遮住答案,按表写一条自己的候选,再依次核对对象是否重复、约束是否成立、算式是否完整。若与你的结果不同,应定位到第一处规则或计数差异,而不是立即认为两个答案必有一个算错;并列最优时,不同选择也可能都成立。
所有数值和规则均为本文虚构练习,只讨论题面明示的条件。实际游戏若还有距离、冷却、品质、隐藏状态或多人同时行动等因素,需要先加入这些条件,再重新比较;这里的结论不能直接当作任何具体游戏的配置建议。
