【软考架构师】数学与经济管理(运筹学) 核心考点与学习笔记(超详细解析+图解)
摘要:本文为软考高级系统架构设计师(第20章:数学与经济管理)的学习笔记。运筹学与数学经济管理是软考中极具"套路"的客观题模块,常以3~5分的形式出现。内容涵盖图论应用(最小生成树、最大流量、最短路径)、运筹方法(线性规划、动态规划)、以及决策论、决策树、盈亏平衡点、状态转移矩阵、运输问题和指派问题。针对复杂的算法推演过程,本文利用 Mermaid 语法绘制了计算流程图,并总结了"破圈法"、"增广路法"、"匈牙利法"等秒杀技巧,助你稳拿考卷中的"数学分"!
目录
- [1. 图论应用(⭐⭐⭐)](#1. 图论应用(⭐⭐⭐))
- [1.1 最小生成树问题](#1.1 最小生成树问题)
- [1.2 最大流量问题](#1.2 最大流量问题)
- [1.3 最短路径问题](#1.3 最短路径问题)
- [2. 运筹方法(⭐⭐)](#2. 运筹方法(⭐⭐))
- [2.1 线性规划问题](#2.1 线性规划问题)
- [2.2 动态规划问题(背包问题)](#2.2 动态规划问题(背包问题))
- [3. 数学与经济管理(其他)(⭐⭐⭐)](#3. 数学与经济管理(其他)(⭐⭐⭐))
- [3.1 不确定性决策问题](#3.1 不确定性决策问题)
- [3.2 决策树问题](#3.2 决策树问题)
- [3.3 盈亏平衡点](#3.3 盈亏平衡点)
- [3.4 状态转移矩阵(马尔可夫链)](#3.4 状态转移矩阵(马尔可夫链))
- [3.5 最优解问题(运输问题)](#3.5 最优解问题(运输问题))
- [3.6 指派问题(匈牙利算法)](#3.6 指派问题(匈牙利算法))
- [4. 总结与备考建议](#4. 总结与备考建议)
1. 图论应用(⭐⭐⭐)
图论题目在软考中几乎属于必考送分题。掌握算法套路,无需死记硬背,只需画图推演即可。
1.1 最小生成树问题
考点 :使所有节点连通,且所有边权值之和最小(即"最小联通路径问题")。
口诀 :数顶点、减一得边数;从小到大排好队,选边千万别成环。
例题解析:
下图标明了六个城市(A~F)之间的公路长度。使各个城市之间均可通达,至少要改造总计()公里的公路,这种方案共有()个。
解题思路(克鲁斯卡尔算法 - 破圈法):
- 定边数 :图中有6个顶点,根据
边数 = 顶点数 - 1,需要选出 5条边。 - 排好队 :将图中的边按长度从小到大排序:
- 200:AE、FD
- 300:AB、BF、AF、CD、CF (注:看图得知)
- 400:BC、AC、EF
- 选边防成环 :
- 第1步:选 AE (200)。
- 第2步:选 FD (200)。
- 第3步:在300的边中挑。如果选BF,则B、F、D连通;如果选AB,则A、B、E连通;为了连通这6个点,必须把CF(300)或CD(300)选上(假设选CD,则F、D、C连通)。
- 第4、5步:为了让A、E所在子图与B、F、C、D所在子图连通,必须在 AF(300)、AB(300)、BF(300) 等之间选择。
- 选取的5条边(如:AE, FD, CD, AF, AB)总长度为:200+200+300+300+300 = 1300。
- 计算方案数 :由于 A-E-F-B 之间的300边可以有多种组合(AF必选,AB和BF只能选其一以保证不成环),且 F-C-D 之间也有多种组合,排列组合后,共有 3种 等价方案。
#mermaid-svg-9DKUyEWhmvop0fmG{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9DKUyEWhmvop0fmG .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9DKUyEWhmvop0fmG .error-icon{fill:#552222;}#mermaid-svg-9DKUyEWhmvop0fmG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9DKUyEWhmvop0fmG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9DKUyEWhmvop0fmG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9DKUyEWhmvop0fmG .marker.cross{stroke:#333333;}#mermaid-svg-9DKUyEWhmvop0fmG svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9DKUyEWhmvop0fmG p{margin:0;}#mermaid-svg-9DKUyEWhmvop0fmG .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9DKUyEWhmvop0fmG .cluster-label text{fill:#333;}#mermaid-svg-9DKUyEWhmvop0fmG .cluster-label span{color:#333;}#mermaid-svg-9DKUyEWhmvop0fmG .cluster-label span p{background-color:transparent;}#mermaid-svg-9DKUyEWhmvop0fmG .label text,#mermaid-svg-9DKUyEWhmvop0fmG span{fill:#333;color:#333;}#mermaid-svg-9DKUyEWhmvop0fmG .node rect,#mermaid-svg-9DKUyEWhmvop0fmG .node circle,#mermaid-svg-9DKUyEWhmvop0fmG .node ellipse,#mermaid-svg-9DKUyEWhmvop0fmG .node polygon,#mermaid-svg-9DKUyEWhmvop0fmG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9DKUyEWhmvop0fmG .rough-node .label text,#mermaid-svg-9DKUyEWhmvop0fmG .node .label text,#mermaid-svg-9DKUyEWhmvop0fmG .image-shape .label,#mermaid-svg-9DKUyEWhmvop0fmG .icon-shape .label{text-anchor:middle;}#mermaid-svg-9DKUyEWhmvop0fmG .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9DKUyEWhmvop0fmG .rough-node .label,#mermaid-svg-9DKUyEWhmvop0fmG .node .label,#mermaid-svg-9DKUyEWhmvop0fmG .image-shape .label,#mermaid-svg-9DKUyEWhmvop0fmG .icon-shape .label{text-align:center;}#mermaid-svg-9DKUyEWhmvop0fmG .node.clickable{cursor:pointer;}#mermaid-svg-9DKUyEWhmvop0fmG .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9DKUyEWhmvop0fmG .arrowheadPath{fill:#333333;}#mermaid-svg-9DKUyEWhmvop0fmG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9DKUyEWhmvop0fmG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9DKUyEWhmvop0fmG .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9DKUyEWhmvop0fmG .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9DKUyEWhmvop0fmG .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9DKUyEWhmvop0fmG .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9DKUyEWhmvop0fmG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9DKUyEWhmvop0fmG .cluster text{fill:#333;}#mermaid-svg-9DKUyEWhmvop0fmG .cluster span{color:#333;}#mermaid-svg-9DKUyEWhmvop0fmG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9DKUyEWhmvop0fmG .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9DKUyEWhmvop0fmG rect.text{fill:none;stroke-width:0;}#mermaid-svg-9DKUyEWhmvop0fmG .icon-shape,#mermaid-svg-9DKUyEWhmvop0fmG .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9DKUyEWhmvop0fmG .icon-shape p,#mermaid-svg-9DKUyEWhmvop0fmG .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9DKUyEWhmvop0fmG .icon-shape .label rect,#mermaid-svg-9DKUyEWhmvop0fmG .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9DKUyEWhmvop0fmG .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9DKUyEWhmvop0fmG .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9DKUyEWhmvop0fmG :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 选取步骤演示
选边 AE=200
选边 FD=200
选边 CD=300 连通C和D
选边 AF=300 连通A和F
选边 AB=300 或 BF=300 连通B
答案:1300公里,3个方案。(选择 B,C)
1.2 最大流量问题
考点 :从起点(源点)到终点(汇点)单位时间内能通过的最大运输量。
解题核心方法 :增广路法(Ford-Fulkerson算法)。不断寻找从源点到汇点还有剩余容量的路径,直到找不到任何路径为止。
例题解析:
各节点之间的运输能力(万吨/小时)如表所示。求从节点①到节点⑥的最大运输能力(流量)。
解题步骤(图表法手推):
- 路径1:① -> ② -> ⑤ -> ⑥,通过能力受限于最小边 min(6, 7, 21) = 6。更新剩余容量。
- 路径2:① -> ③ -> ⑤ -> ⑥,通过能力 min(10, 14, 15) = 10(因为⑤->⑥的容量21被占了6,剩15)。更新剩余容量。
- 路径3:① -> ④ -> ⑥,通过能力 min(10, 5) = 5。更新剩余容量。
- 路径4:此时正向路径基本饱和。我们需要找"反向边"(即退流操作)来调整流量。通过反向边,再次找到一条路径 ① -> ③ -> ⑤ -> ② -> ④ -> ⑥(注:这里涉及反向抵消计算)。
- 路径5:① -> ③ -> ② -> ⑤ -> ⑥,通过能力 min(剩余) = 1。
- 累加 :将上述找到的所有可达路径上的最大流量相加:10 + 6 + 5 + 1 + 1 = 23 万吨/小时。
#mermaid-svg-XjcucHDKDWO3DwFt{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-XjcucHDKDWO3DwFt .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-XjcucHDKDWO3DwFt .error-icon{fill:#552222;}#mermaid-svg-XjcucHDKDWO3DwFt .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XjcucHDKDWO3DwFt .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XjcucHDKDWO3DwFt .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XjcucHDKDWO3DwFt .marker.cross{stroke:#333333;}#mermaid-svg-XjcucHDKDWO3DwFt svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XjcucHDKDWO3DwFt p{margin:0;}#mermaid-svg-XjcucHDKDWO3DwFt .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-XjcucHDKDWO3DwFt .cluster-label text{fill:#333;}#mermaid-svg-XjcucHDKDWO3DwFt .cluster-label span{color:#333;}#mermaid-svg-XjcucHDKDWO3DwFt .cluster-label span p{background-color:transparent;}#mermaid-svg-XjcucHDKDWO3DwFt .label text,#mermaid-svg-XjcucHDKDWO3DwFt span{fill:#333;color:#333;}#mermaid-svg-XjcucHDKDWO3DwFt .node rect,#mermaid-svg-XjcucHDKDWO3DwFt .node circle,#mermaid-svg-XjcucHDKDWO3DwFt .node ellipse,#mermaid-svg-XjcucHDKDWO3DwFt .node polygon,#mermaid-svg-XjcucHDKDWO3DwFt .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-XjcucHDKDWO3DwFt .rough-node .label text,#mermaid-svg-XjcucHDKDWO3DwFt .node .label text,#mermaid-svg-XjcucHDKDWO3DwFt .image-shape .label,#mermaid-svg-XjcucHDKDWO3DwFt .icon-shape .label{text-anchor:middle;}#mermaid-svg-XjcucHDKDWO3DwFt .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-XjcucHDKDWO3DwFt .rough-node .label,#mermaid-svg-XjcucHDKDWO3DwFt .node .label,#mermaid-svg-XjcucHDKDWO3DwFt .image-shape .label,#mermaid-svg-XjcucHDKDWO3DwFt .icon-shape .label{text-align:center;}#mermaid-svg-XjcucHDKDWO3DwFt .node.clickable{cursor:pointer;}#mermaid-svg-XjcucHDKDWO3DwFt .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-XjcucHDKDWO3DwFt .arrowheadPath{fill:#333333;}#mermaid-svg-XjcucHDKDWO3DwFt .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-XjcucHDKDWO3DwFt .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-XjcucHDKDWO3DwFt .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-XjcucHDKDWO3DwFt .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-XjcucHDKDWO3DwFt .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-XjcucHDKDWO3DwFt .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-XjcucHDKDWO3DwFt .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-XjcucHDKDWO3DwFt .cluster text{fill:#333;}#mermaid-svg-XjcucHDKDWO3DwFt .cluster span{color:#333;}#mermaid-svg-XjcucHDKDWO3DwFt div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XjcucHDKDWO3DwFt .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-XjcucHDKDWO3DwFt rect.text{fill:none;stroke-width:0;}#mermaid-svg-XjcucHDKDWO3DwFt .icon-shape,#mermaid-svg-XjcucHDKDWO3DwFt .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-XjcucHDKDWO3DwFt .icon-shape p,#mermaid-svg-XjcucHDKDWO3DwFt .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-XjcucHDKDWO3DwFt .icon-shape .label rect,#mermaid-svg-XjcucHDKDWO3DwFt .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-XjcucHDKDWO3DwFt .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-XjcucHDKDWO3DwFt .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-XjcucHDKDWO3DwFt :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 6
10
10
7
14
1
4
5
21
①
②
③
④
⑤
⑥
答案:23(选择 B)。
1.3 最短路径问题
考点 :从起点到终点经历的总权值(费用/距离)最小的一条路径。
核心算法 :Dijkstra算法(迪杰斯特拉) 。
解题步骤:
- 设起点为S,S到S的距离为0,S到其他节点为∞。
- 找出距离最小的节点,将其加入"已确定集合"。
- 通过新加入的节点,更新其邻居节点的距离(如果经过新节点更近,则更新)。
- 重复步骤2,直到所有节点都加入集合。
案例分析:
从城市s发送到城市t,线条数字代表费用。求至少需要花费多少元?
- 表格法推演:从s出发,不断用当前距离最短的节点去更新其他节点,记录前驱节点。
- 路径推演结果:s -> 2 -> 3 -> 5 -> 9 -> t (假设推演得出此路径)。
- 费用计算:21 + 20 + 12 + 10 + 18 = 81万元。
答案:81(选择 A)。
2. 运筹方法(⭐⭐)
2.1 线性规划问题
考点 :在给定的线性约束条件下,求目标函数的最大值或最小值。
解题步骤:
- 设未知数(如生产甲X套,乙Y套)。
- 列出目标函数(利润最大化):
Max Z = 2X + 3Y。 - 列出约束条件不等式组:
- 2X + 3Y ≤ 14 (设备限制)
- 8X ≤ 16 (原材料A限制,即 X ≤ 2)
- 3Y ≤ 12 (原材料B限制,即 Y ≤ 4)
- X ≥ 0, Y ≥ 0
- 画图求解(找交点) :由于只需凑答案,可以直接将选项代入检验。
- 代入A(2,3):Z=22+33=13
- 代入B(1,4):Z=21+34=14
- 代入C(3,4):X=3不满足X≤2约束,排除。
- 代入D(4,2):X=4不满足X≤2约束,排除。
答案:B方案利润最大(14万元)。
2.2 动态规划问题(背包问题)
考点 :将复杂问题拆解为多阶段决策,通常结合"单位价值/利润"进行贪心选择。
例题解析:
用一辆载重10吨的卡车装运货物,获得最大利润。每件利润表略。
解题思路:
- 算单位利润:将每种货物的
利润 / 重量算出来。- A: 53/1 = 53
- B: 52/2 = 26
- C: 54/3 = 18
- D: 54/4 = 13.5
- E: 53/5 = 10.6
- F: 53/6 = 8.83
- 贪心策略:优先拿单位利润最高的。D最高(13.5),其次是A(53)。
- 凑重量:拿2件D(重8吨,利润108*2? 注:原表D单件利润为216,单位54。假设件利润,按原表216/4=54。更正:D单位利润54,A为53,B为52)。
- 选2件D:重8吨,利润 = 216 * 2 = 432元。剩余2吨。
- 选2件A:重2吨,利润 = 53 * 2 = 106元。
- 总利润 = 432 + 106 = 538元。
答案:538元(选择D)。
3. 数学与经济管理(其他)(⭐⭐⭐)
3.1 不确定性决策问题
面对未来可能发生的多种情况(如宏观经济的景气、不景气),如何进行决策?有四大准则:
| 准则名称 | 决策原则(口诀) | 操作步骤 | 示例(收益矩阵) |
|---|---|---|---|
| 乐观主义准则 | 大中取大 | 每个方案挑最大值,再从中挑最大。 | 积极方案最大500,稳健300,保守400。选500对应的积极。 |
| 悲观主义准则 | 小中取大 | 每个方案挑最小值,再从中挑最大。 | 积极方案最小50,稳健150,保守200。选200对应的保守。 |
| 后悔值准则 | 大中取小 (最小最大后悔值) | 1. 算出每列的理想最大值。 2. 用理想最大值减去该列所有值,得到后悔值矩阵。 3. 每个方案挑最大后悔值,再从中选最小的。 | 以景气为例,最大500。积极后悔0,稳健200,保守300。 |
| 等可能性准则 | 平均主义 | 假设每种情况发生概率相同,求各方案期望值,选最大。 | (乐观 + 中间 + 悲观) / 3 |
注:后悔值矩阵制作口诀:"先竖列找最大,再横列相减,最后找最大后悔值中的最小者"。
3.2 决策树问题
考点 :结合概率计算期望收益(Expected Monetary Value, EMV)。
公式 :某节点期望值 = Σ (各分支概率 × 对应收益) - 投资成本
例题解析:
建大厂投资500万,销路好(70%)每年获利200万,不好(30%)亏20万。建小厂投资200万,好获利100万,不好获利20万。前2年好,后5年好概率变80%;前2年不好,后5年好概率10%。求7年最大总收益。
计算过程(画树形图):
#mermaid-svg-9lXorFreUeGpGy2x{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9lXorFreUeGpGy2x .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9lXorFreUeGpGy2x .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9lXorFreUeGpGy2x .error-icon{fill:#552222;}#mermaid-svg-9lXorFreUeGpGy2x .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9lXorFreUeGpGy2x .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9lXorFreUeGpGy2x .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9lXorFreUeGpGy2x .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9lXorFreUeGpGy2x .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9lXorFreUeGpGy2x .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9lXorFreUeGpGy2x .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9lXorFreUeGpGy2x .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9lXorFreUeGpGy2x .marker.cross{stroke:#333333;}#mermaid-svg-9lXorFreUeGpGy2x svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9lXorFreUeGpGy2x p{margin:0;}#mermaid-svg-9lXorFreUeGpGy2x .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9lXorFreUeGpGy2x .cluster-label text{fill:#333;}#mermaid-svg-9lXorFreUeGpGy2x .cluster-label span{color:#333;}#mermaid-svg-9lXorFreUeGpGy2x .cluster-label span p{background-color:transparent;}#mermaid-svg-9lXorFreUeGpGy2x .label text,#mermaid-svg-9lXorFreUeGpGy2x span{fill:#333;color:#333;}#mermaid-svg-9lXorFreUeGpGy2x .node rect,#mermaid-svg-9lXorFreUeGpGy2x .node circle,#mermaid-svg-9lXorFreUeGpGy2x .node ellipse,#mermaid-svg-9lXorFreUeGpGy2x .node polygon,#mermaid-svg-9lXorFreUeGpGy2x .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9lXorFreUeGpGy2x .rough-node .label text,#mermaid-svg-9lXorFreUeGpGy2x .node .label text,#mermaid-svg-9lXorFreUeGpGy2x .image-shape .label,#mermaid-svg-9lXorFreUeGpGy2x .icon-shape .label{text-anchor:middle;}#mermaid-svg-9lXorFreUeGpGy2x .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9lXorFreUeGpGy2x .rough-node .label,#mermaid-svg-9lXorFreUeGpGy2x .node .label,#mermaid-svg-9lXorFreUeGpGy2x .image-shape .label,#mermaid-svg-9lXorFreUeGpGy2x .icon-shape .label{text-align:center;}#mermaid-svg-9lXorFreUeGpGy2x .node.clickable{cursor:pointer;}#mermaid-svg-9lXorFreUeGpGy2x .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9lXorFreUeGpGy2x .arrowheadPath{fill:#333333;}#mermaid-svg-9lXorFreUeGpGy2x .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9lXorFreUeGpGy2x .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9lXorFreUeGpGy2x .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9lXorFreUeGpGy2x .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9lXorFreUeGpGy2x .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9lXorFreUeGpGy2x .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9lXorFreUeGpGy2x .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9lXorFreUeGpGy2x .cluster text{fill:#333;}#mermaid-svg-9lXorFreUeGpGy2x .cluster span{color:#333;}#mermaid-svg-9lXorFreUeGpGy2x div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9lXorFreUeGpGy2x .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9lXorFreUeGpGy2x rect.text{fill:none;stroke-width:0;}#mermaid-svg-9lXorFreUeGpGy2x .icon-shape,#mermaid-svg-9lXorFreUeGpGy2x .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9lXorFreUeGpGy2x .icon-shape p,#mermaid-svg-9lXorFreUeGpGy2x .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9lXorFreUeGpGy2x .icon-shape .label rect,#mermaid-svg-9lXorFreUeGpGy2x .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9lXorFreUeGpGy2x .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9lXorFreUeGpGy2x .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9lXorFreUeGpGy2x :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 后5年好 80%
后5年不好 20%
后5年好 10%
后5年不好 90%
决策
建大厂 -500万
建小厂 -200万
前2年好 70%
前2年不好 30%
收益: 200*7 = 1400
收益: 200*2 - 20*5 = 300
收益: -20*2 + 200*5 = 960
收益: -20*7 = -140
- 大厂收益期望:
- 分支1:0.7 * (0.81400 + 0.2300) = 0.7 * (1120 + 60) = 826
- 分支2:0.3 * (0.1960 + 0.9(-140)) = 0.3 * (96 - 126) = -9
- 总期望 = 826 - 9 = 817万。
- 净利润 = 817 - 500 = 317万。
- 小厂收益期望(同理计算):
- 总期望 = ... = 小厂净利润约 300多万。
- 对比得出选大厂,略多于300万。
答案:B(建大厂,总收益略多于300万元)。
3.3 盈亏平衡点
考点 :企业不盈不亏时的产量或销量。
公式 :盈亏平衡点 = 固定成本 / (单价 - 单位变动成本)
例题 :固定成本30万元,变动成本1000元/次,价格1500元/次。
计算:300000 / (1500 - 1000) = 300000 / 500 = 600次。
答案:C(600次)。
3.4 状态转移矩阵(马尔可夫链)
考点 :根据当前的占有率,以及转移概率,预测下一期或未来第n期的市场占有率。
例题 :当前A占50%,B占50%。转移矩阵P = \[0.8, 0.2, 0.4, 0.6]。
计算:
- 第1个月:A = 50% * 0.8 (A保留) + 50% * 0.4 (B转给A) = 40% + 20% = 60%。
- 第2个月:A = 60% * 0.8 + 40% * 0.4 = 48% + 16% = 64%。
- 变化:A的份额增加了14%,B减少14%。
答案:C(A的份额增加了14%)。
3.5 最优解问题(运输问题)
考点 :在多个产地和多个销地之间,寻找总运费最低的运输方案。
解题方法 :表上作业法(西北角法找初始基可行解 -> 闭回路法计算检验数 -> 迭代优化)。
- 软考技巧:由于计算量大,通常考查观察能力和消元法。找单位运费最小的路径优先分配,满额划掉行列,最后检查是否满足所有需求量/供应量。如果遇到历年重复考题,直接背答案。本题答案为83(A)。
3.6 指派问题(匈牙利算法)
考点 :n个人做n件事,求总成本最低。
解题四步曲:
- 行减最小:每行减去该行的最小值。
- 列减最小:若某列没有0,则减去该列的最小值。
- 试指派:找独立0元素(画圈,同行同列不能有圈)。若能找到n个圈,完成。否则:
- 画盖0线:对没有画圈的行打√,对打√行中0所在列打√,对打√列中圈所在行打√。画直线覆盖没有打√的行和打√的列。找到未被覆盖的最小元素,打√的行减去该值,打√的列加上该值,回到第三步。
例题:
矩阵:\[1,4,6,3, 9,7,10,9, 4,5,11,7, 8,7,8,5]
步骤:
- 行减最小(分别减1, 7, 4, 5):\[0,3,5,2, 2,0,3,2, 0,1,7,3, 3,2,3,0]
- 列减最小(第3列最小为3):\[0,3,2,2, 2,0,0,2, 0,1,4,3, 3,2,0,0]
- 找独立0元素:
- 甲选A(0)
- 乙选B(0)
- 丁选C(0)
- 丙选D(剩余,列减后为3。等等,看表,实际最优解推导)。
- 通过画线逼近,最终得到最优分配,得出任务乙由机器C(或根据矩阵推算的结果)执行。
答案:根据计算结果选对应机器(C)。
4. 总结与备考建议
运筹学模块虽然在日常系统架构设计中不常用,但它是软考中区分度极高的数学逻辑题。建议备考策略如下:
- 图论题必拿:最小生成树(数顶点-1,从小到大选,不成环)、最大流量(增广路法)、最短路径(Dijkstra算法找最小边松弛)。这些都是可以通过简单画图和表格推演出来的"送分题"。
- 决策论套公式:记住"大中取大(乐观)"、"小中取大(悲观)"、"大中取小(后悔值)"的口诀,画个后悔值矩阵表就出来了。
- 盈亏平衡与转移矩阵:公式很简单,计算时细心点即可。
- 指派与运输问题:了解基本原理,考试时如果时间紧张,可以用排除法和贪心思想去凑,不要死磕计算量过大的题目,把时间留给案例分析。
推荐复习顺序:图论(20分钟) -> 决策论(15分钟) -> 动态规划/线性规划(10分钟) -> 复杂计算题(留到最后或战略放弃)。
祝各位考友在考场上思路清晰,算得又快又准,逢考必过!
标签:#软考 #系统架构设计师 #运筹学 #数学与经济管理 #图论 #决策论 #马尔可夫链 #学习笔记