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