📚 Common Pitfalls in Decision Mathematics 1 | 决策数学1 易错点总结
Decision Mathematics 1 (D1) is a unique module within the A Level Mathematics curriculum, focusing on algorithmic thinking and network problems. Students often find the concepts accessible, but the precise nature of the algorithms means that minor slip-ups can cost many marks. This revision guide highlights the most frequent mistakes and misunderstandings encountered in D1, helping you to avoid them in your exam. Each section pairs an English explanation with a Chinese counterpart to reinforce your understanding.
决策数学1(D1)是A Level数学课程中一个独特的模块,侧重于算法思维和网络问题。学生通常觉得概念不难掌握,但算法要求精确,细微的失误会导致大量失分。本复习指南总结了D1中最常见的错误和误解,帮助你避免在考试中重蹈覆辙。每个部分都配有中英文解释,以加深你的理解。
1. Order of Sorting Algorithms: Bubble vs Shuttle | 排序算法流程:冒泡与穿梭排序
A common error when executing the bubble sort is forgetting to reduce the number of comparisons by one after each complete pass. In the shuttle sort (insertion sort), students sometimes omit the step of backtracking to re-compare the newly inserted item with all earlier items, halting the pass too early. Another pitfall is miscounting the total number of comparisons or swaps required to fully sort a list, especially when using the efficient check for an already sorted list.
执行冒泡排序时,一个常见错误是忘记在每完成一遍遍历后将比较次数减一。在穿梭排序(插入排序)中,学生有时会忽略回溯步骤,未能将新插入的元素与之前所有元素依次比较,导致过早结束该趟排序。另一个易错点是错误计算完全排序所需的比较或交换总次数,尤其是在对已排序列表使用提前终止检查时。
- Bubble sort: after each pass the last item is in its final position, so the next pass should compare one fewer pair.
- 冒泡排序:每趟遍历后最后一个元素会到达最终位置,因此下一趟的比较次数应减一。
- Shuttle sort: once an element is inserted, continue comparing it backwards until no swap is needed; do not stop after the first insertion.
- 穿梭排序:插入一个元素后,要继续向前回溯比较,直到无需交换为止;不要插入一次就停下。
- Be careful with the 'sorted flag' – if you use it, make sure you still complete a full pass without swaps before declaring the list sorted.
- 小心使用“有序标志” – 如果使用该标志,确保在无交换的一整趟完成之后才能宣布列表有序。
2. Bin Packing Missteps: First-fit Decreasing and Full-bin Strategies | 装箱问题的误判:降序首次适应与完整箱策略
The most frequent oversight in the first-fit decreasing algorithm is failing to sort the items into descending order before packing them. Without this step, you are simply running the ordinary first-fit algorithm. In full-bin packing, some learners neglect to check whether the remaining space could be filled by a smaller item not yet considered; they also sometimes leave bins partially filled when a full-bin combination exists. Remember that full-bin combinations do not have to be unique, and you must justify your packing decisions clearly.
降序首次适应算法中最常见的疏忽是忘记在装箱之前将物品按大小降序排列。若缺失这一步,就变成了普通的首次适应算法。在完整装箱法中,有些学生没有检查剩余空间是否能被尚未考虑的较小物品填满;有时明明存在完整箱组合,却让箱子半空。请记住,完整箱组合不必唯一,并且你必须清楚地说明你的装箱依据。
- First-fit decreasing: sort descending, then apply first-fit.
- 降序首次适应:先对物品降序排序,再施行首次适应装箱。
- Full-bin: list all full-bin groups explicitly; any leftover items are packed afterwards using first-fit.
- 完整箱:明确列出所有完整箱组合;剩余物品随后用首次适应装箱。
- Labelling bins and recording remaining capacities helps avoid arithmetic errors.
- 给箱子编号并记录剩余容量,有助于避免算术错误。
3. Prim’s and Kruskal’s Algorithms: Navigating Graphs and Tables | 普里姆与克鲁斯卡尔算法:图与表格的处理
When applying Prim's algorithm to a distance matrix, many candidates forget to cross out the column corresponding to the newly added vertex before selecting the next smallest entry. They mistakenly look at the entire table instead of only the rows for vertices already in the tree. In Kruskal's algorithm, the critical error is adding an edge that would create a cycle; learners may fail to check connectivity carefully, often because they omit listing the sets of connected vertices as the tree grows. Also, when edges have equal weights, any valid order is acceptable, but you must state your selection clearly.
在距离矩阵上应用普里姆算法时,许多考生忘记在选择下一个最小边之前划掉新加入顶点所在的列。他们错误地查看整个表格,而不是只看已加入树的顶点所在的行。在克鲁斯卡尔算法中,致命错误是添加了一条会形成环的边;学生常常因为未随着树的生长列出顶点连通集合,导致没能仔细检查连通性。此外,当多条边权重相等时,任意有效顺序均可接受,但必须明确说出你的选择。
- Prim from a matrix: start with any vertex; cross out its column; find the smallest value in the rows of chosen vertices; add that edge, then cross out the new vertex's column.
- 矩阵普里姆:从任一顶点开始;划掉其列;在已选顶点所在行中找最小值;添加对应边,再划掉新顶点的列。
- Kruskal: sort edges by weight; select in order, only if the edge connects two previously unconnected components (use vertex sets to track).
- 克鲁斯卡尔:按权重排序;依次选择,仅当该边连接两个先前未连通的子图时才添加(用顶点集合跟踪)。
- Avoid drawing the final spanning tree prematurely; wait until all vertices are connected.
- 避免过早画出最终生成树;等到所有顶点连通后再绘制。
4. Dijkstra’s Algorithm: Label Updates and Back-tracing | 迪杰斯特拉算法:标签更新与回溯
Dijkstra's algorithm is notorious for small signposting errors. A typical mistake is failing to update temporary labels on vertices adjacent to the newly permanently labelled vertex. Some students only compare the new permanent vertex's label plus the edge weight against the current temporary label; they forget to also consider other routes through previously permanent vertices. When values are tied, the order in the working box must reflect the correct permanent labelling sequence; copying numbers incorrectly into boxes leads to chaos during back-tracing. Finally, when tracing the shortest path, you must give the route and its length, making sure the direction matches the arrows in your diagram.
迪杰斯特拉算法因小标记错误而声名狼藉。一个典型的错误是忘记更新与新的永久标记顶点相邻的临时标签。有些学生只将新永久顶点的标签加上边的权重与当前临时标签进行比较;他们忘了还可以考虑经过此前永久顶点的其他路径。当数值相同时,工作框中的顺序必须反映正确的永久标记次序;错误地将数字填入框内会导致回溯时混乱。最后,在回溯最短路径时,必须给出路径及其长度,并确保方向与图中的箭头一致。
- After making a vertex permanent, recalculate all temporary labels by considering new routes through this vertex.
- 每次将某个顶点设为永久后,要重新计算所有临时标签,考虑经过该顶点的新路线。
- Use the working box to record permanent vertices in order; do not skip or rearrange.
- 在工作框中按顺序记录永久顶点;不要跳过或重新排列。
- Back-trace using the final labels; the shortest path may not be unique—give the one you derived.
- 使用最终标签进行回溯;最短路径可能不唯一——给出你所推导的路径即可。
5. Critical Path Analysis: Dummy Activities and Float Calculation | 关键路径分析:虚活动与浮时计算
sary dummy when two activities share some but not all of the same predecessors. In the forward and backward pass, arithmetical slips in adding or subtracting durations occur when the network is complex. The distinction between total float and independent float is frequently confused: total float = latest start – earliest start (or latest finish – earliest finish), while independent float = earliest start of next – latest finish of previous – zero. Interpreting float as a measure of delay without affecting the project end is vital.
根据前导表构建活动网络是一个主要错误来源。考生常常添加不必要的虚活动,或者当两个活动共享部分但不完全相同的先行活动时未能添加必要的虚活动。在正推和逆推过程中,当网络较为复杂时,加减持续时间常常出现计算失误。总浮时与自由浮时的区别经常被混淆:总浮时 = 最晚开始 – 最早开始(或最晚完成 – 最早完成),而独立浮时 = 下一活动的最早开始 – 前一活动的最晚完成 – 本活动持续时间,且不低于零。将浮时理解为不影响项目结束的延迟量度至关重要。
- Dummies are used to maintain logical dependencies; draw them as dotted lines.
- 虚活动用于维持逻辑依赖关系,以虚线表示。
- Total float applies to an activity; free float and independent float are stricter.
- 总浮时针对一个活动;自由浮时和独立浮时更为严格。
- Critical activities have zero total float; a path with the greatest total duration is a critical path.
- 关键活动的总浮时为零;总持续时间最长的一条路径即为关键路径。
6. Linear Programming Formulation: Inequality Direction and Feasible Region | 线性规划建模:不等式方向与可行域
Many mistakes arise when translating word problems into inequalities. The common keywords 'at least' (≥), 'at most' (≤), 'exactly' (=) and 'more than' convention; in exam questions, you must follow the instruction on shading. Choosing the optimal point from the graph requires checking all vertices of the feasible region, especially when integer constraints apply. Errors also occur when the objective function has the same gradient as a boundary line, leading to multiple optimal solutions.
将文字题翻译为不等式时经常出错。常见关键词如 “至少”( ≥ )、“至多”( ≤ )、“恰好”( = )和 “超过”( > )必须正确解读。绘图时,学生有时根据个人习惯填涂不可行区域而非可行区域;考试中你必须遵循题目对阴影的说明。从图中选择最优解需要检查可行域的所有顶点,特别是在有整数约束的情况下。当目标函数的斜率与某边界线平行时,会出现多个最优解,这时也容易出错。
- orm ax + by ≤ c or ax + by ≥ c as required; watch out for reversed signs when rearranging.
- 根据要求将约束写成 ax + by ≤ c 或 ax + by ≥ c 的形式;移项时小心符号反转。
- Integer programming: test integer points near the optimal vertex, not just the vertex itself.
- 整数规划:测试最优顶点附近的整数点,而不仅仅是顶点本身。
- Use a clear scale and label lines to avoid visual misjudgment.
- 使用清晰的比例尺并标注每条线,以避免视觉误判。
7. The Hungarian Algorithm: Matrix Reduction and Assignment | 匈牙利算法:矩阵约简与任务分配
The Hungarian algorithm is highly step-sensitive. A frequent slip is forgetting to reduce columns after the row reduction step. When covering zeros with the minimum number of lines, some candidates draw fewer lines than necessary because they misidentify the minimum vertex cover; the number of lines must equal the maximum number of independent zeros. Adding the smallest uncovered value to elements at intersections and subtracting elsewhere can be muddled, leading to an incorrect matrix. Finally, the assignment must correspond to a zero in every row and column; failing to check that each row and column has exactly one zero in the solution set is a common omission.
匈牙利算法对步骤高度敏感。一个常见的疏漏是行归约后忘记进行列归约。在用最少的线覆盖所有零元素时,有些考生绘出的线少于所需数量,因为他们误判了最小顶点覆盖;线的数量必须等于最大独立零的个数。将最小未覆盖值加到直线交叉处的元素上,并从其他未覆盖元素中减去,这一过程容易弄混,导致矩阵错误。最后,分配方案必须每一行和每一列恰好有一个零;未检查解集中的每一行和每一列是否恰好包含一个零是常见的遗漏。
- Step 1: Reduce rows (subtract row minimum from each row).
- 第一步:行归约(每行减去其最小值)。
- Step 2: Reduce columns (subtract column minimum from each column of the new matrix).
- 第二步:列归约(从新矩阵的每列减去列最小值)。
- Step 3: Cover zeros with minimum lines; if lines < size of matrix, augment by subtracting/adding.
- 第三步:用最少线覆盖零;若线数 < 矩阵阶数,则通过减去/加上最小未覆盖值进行增广。
- Solution is found when you can assign one zero per row and column without conflicts.
- 当可以无冲突地为每行每列分配一个零时,即得到解。
8. Route Inspection: Identifying Odd Vertices and Pairing | 路线检查:奇点识别与配对
Errors in the Chinese Postman problem often begin with misidentifying the odd-degree vertices. Count the degree of each vertex carefully; a vertex with a loop has its degree increased by 2 from that loop, not 1. When finding the shortest pairings of odd vertices, some students list only a single possible pairing and miss a shorter combination. The repeated edges must be added to the original graph to create a Eulerian graph, and the length of the route is the sum of all edge weights plus the total weight of the repeated edges. For networks with exactly two odd vertices, the shortest route length is simply the total weight of the original graph plus the shortest distance between those two vertices.
中国邮递员问题中的错误往往始于对奇度顶点的误判。要仔细数每个顶点的度数;带环的顶点其度数会因环增加2,而不是1。在寻找奇点的最短配对时,有些学生只列出一种可能的配对,而遗漏了总距离更短的组合。重复的边必须加到原图中以构造欧拉图,路线总长度等于所有边的权重之和加上重复边的总权重。对于恰好有两个奇点的网络,最短路线长度就是原图总权重加上这两个顶点之间的最短距离。
- List all vertices and their degrees; identify odd-degree vertices (usually an even number).
- 列出所有顶点及其度数;确定奇度顶点(通常为偶数个)。
- If there are 4 odd vertices, find all three possible pairings and compute the shortest sum for each pairing.
- 若有4个奇点,找出所有三种可能的配对方式,并计算每种配对的最短路径之和。
- Add the minimum pairing sum to the total graph weight.
- 将最小配对和加到总图重上。
9. Travelling Salesman Problem: Bounds and Interpretation | 旅行商问题:上下界与解读
Finding an upper bound using the nearest neighbour algorithm trips up students who do not return to the start vertex, creating a path rather than a cycle. Also, starting from a different vertex can yield a different upper bound; you should state your starting point clearly. For the lower bound, deleting a vertex and finding the minimum spanning tree (MST) of the remaining network could be flawed if the MST algorithm is applied incorrectly. A common mistake is forgetting to add back the two shortest edges connecting the deleted vertex to the tree; the lower bound is the weight of the MST plus these two edges. When an obtained lower bound is greater than the upper bound, it signals an error.
使用近邻法求上界时,学生若不返回起点,得出的就是一条路径而非回路。此外,从不同顶点出发可能得到不同的上界;应清楚说明你的起始点。对于下界,删除一个顶点后对剩余网络求最小生成树(MST),如果MST算法应用不当,则会出错。一个常见的遗漏是忘记将连接删除顶点的两条最短边加回去;下界的值为MST的权重加上这两条边的权重。当得出的下界大于上界时,表明计算有误。
- Upper bound: nearest neighbour from a chosen vertex, then back to start. Record the cycle and its weight.
- 上界:从选定顶点出发的近邻法,最后返回起点。记录回路及其权重。
- Lower bound: remove a vertex, find MST of the rest, then add the two smallest edges incident to the removed vertex.
- 下界:删除一个顶点,求剩余部分的MST,然后加上与被删除顶点相连的两条最小边。
- The optimal tour weight lies between the best lower bound and the best upper bound.
- 最优回路的权重介于最佳下界与最佳上界之间。
10. Algorithm Tracing and Order of Complexity | 算法追踪与复杂度阶
When tracing an unfamiliar algorithm, a step is often skipped or applied out of order. Use a table with columns for variables and show changes line by line. In questions on order of complexity, students confuse the efficiency classes: for example, mistaking an O(n) algorithm for O(n²) because of nested operations that are actually sequential. Also, be careful with algorithms that reduce problem size by half each time – these are typically O(log n). For standard D1 algorithms, know that bubble sort and shuttle sort are O(n²), while Prim and Dijkstra are O(n²) for dense matrices but can be implemented more efficiently with other data structures.
在追踪不熟悉的算法时,经常会跳过步骤或顺序搞错。使用表格记录变量,并逐行展示变化。在算法复杂度阶的问题中,学生经常混淆效率类别:比如,由于存在实际上是顺序执行的嵌套操作,会误将 O(n) 算法当做 O(n²)。此外,注意那些每次将问题规模减半的算法——通常属于 O(log n)。对标准的D1算法,应当知道冒泡排序和穿梭排序的复杂度是 O(n²),而普里姆算法和迪杰斯特拉算法在稠密矩阵上也是 O(n²),但借助其他数据结构可以实现更优的效率。
- Follow the algorithm’s instructions exactly as written, even if they seem inefficient.
- 完全按照算法所列的指令执行,即便看起来效率不高。
- Keep a clear record of loops and counters; updating them incorrectly is a frequent error.
- 清晰记录循环和计数变量;错误地更新它们是常见的错误。
- Order of complexity relates to the dominant term as input size grows; ignore constants and lower-order terms.
- 复杂度阶涉及随着输入规模增长的主导项;忽略常数和低阶项。
Published by TutorHao | Decision Mathematics 1 Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)

或截图后用「扫一扫 → 相册」选择本图