English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

当优化一个目标时,另一个目标需要付出代价

具有两个性能目标的系统——比如,子系统 A 性能 (P_A) 和子系统 B 性能 (P_B)——拥有一个可行域:在共享资源约束下可以实现的 (P_A, P_B) 对的集合。

在可行域内,帕累托边界是一条边界,在这条边界上,你不能在不降低 P_B 的情况下改进 P_A,反之亦然。这条边界上的每一点都是有效的系统最优值,取决于分配给每个目标的权重。

组件 A 最优值:在不考虑 P_B 的情况下最大化 P_A。这位于最右边的可行点——在帕累托边界上,P_A 被最大化而 P_B 被牺牲的极端处。

组件 B 最优值:在不考虑 P_A 的情况下最大化 P_B。类似地,在边界顶部,P_B 被最大化。

系统最优值:在帕累托边界的内部某处,平衡两个目标。它位于两个组件最优值之间。两个组件都不运行在各自的最大值——但整个系统表现最好。

Hamming 的微分分析仪:改进的放大器最大化了 P_A(放大器性能),但将工作点移出了接口设计范围,降低了 P_B(接地/干扰性能)。系统最优值需要降低放大器性能以保持在接口的容差范围内。

帕累托边界与系统最优值对比组件最优值

定位系统最优值

一个系统有两个子系统。子系统 A 的性能 P_A = 2x − x²,对于 x ∈ [0, 2] 可实现。子系统 B 的性能 P_B = 2(1−x) − (1−x)²,在相同的 x 范围内可实现。共享变量 x 代表如何在子系统之间分配共享资源(比如带宽或功率)。总性能:P_total = P_A + P_B。

找到最大化 P_total 的 x 值。然后与仅最大化 P_A 的 x 和仅最大化 P_B 的 x 进行比较。证明这三个最优值处于不同的 x 值,并解释这对试图决定如何分配共享资源的系统工程师意味着什么。

可行域与有约束力的约束

受约束的系统在参数空间中的可行域 F 内运行。约束定义了 F 的边界。

有约束力的约束:在最优值处以等式满足的约束(最优值位于约束边界上)。

无约束力的约束:在最优值处以严格不等式满足的约束(最优值位于边界内的严格内部)。

最大原理(来自优化理论的一般结果):对于凸可行域上的线性目标,最优值总是位于可行域的顶点——即,在约束边界的交点处。除非目标在某个方向上是平坦的(常数),否则最优值永远不会位于内部。

Hamming 的规则 2 用几何术语表示:系统的边界条件(约束)通常比边界内的最优值更重要,因为最优值位于边界上,而不是内部。正确设计约束结构决定了可行域所在的位置;一旦您有了该区域,最优值就在其边界上。

接口不是 A 或 B 单独的属性——它属于联合系统。这就是为什么组件级别的测试(单独测试 A,单独测试 B)会错过接口故障。约束仅在联合参数空间中可见。

哪个约束是有约束力的?

一个通信系统有三个设计变量:发射功率 P(瓦特),带宽 B(MHz),噪声系数 NF(分贝)。数据速率 C = B · log₂(1 + P/(N₀ · B · 10^(NF/10))),其中 N₀ 是噪声底线。

系统有三个约束:P ≤ 10 W(功率预算),B ≤ 20 MHz(频谱分配),NF ≤ 6 dB(硬件限制)。目标是最大化 C。

不进行详细的数值优化:解释您期望哪三个约束中的哪一个在系统最优值处是有约束力的,以及为什么。使用 C 公式的结构来推理哪个变量在约束边界处具有最高的边际影响。

接口作为共享约束

将两个子系统 A 和 B 建模为在各自的参数空间 P_A 和 P_B 中运行。它们之间的接口定义了一个共享约束:P_A 中的参数与 P_B 中的参数之间的关系,系统运行必须满足这一关系。

示例:在 Hamming 的微分分析仪中,放大器(子系统 A)输出电流 I_out。接地电路(子系统 B)可以容忍最大电流 I_max。接口约束:I_out ≤ I_max。

当您改进子系统 A(更好的放大器)时,I_out 增加。如果 I_out > I_max,接口约束被违反——两个子系统不再处于它们联合参数空间的有效运行区域。

接口设计原理:接口约束定义有效和无效运行之间的边界。组件设计师必须知道这个边界。系统工程师必须验证当任何组件改变时,它不被违反。

接口不是 A 或 B 单独的属性——它属于联合系统。这就是为什么组件级别的测试(单独测试 A,单独测试 B)会错过接口故障。约束仅在联合参数空间中可见。

接口故障分析

一个软件系统有两个服务:服务 A(数据摄入)和服务 B(数据处理)。服务 A 向消息队列写入记录;服务 B 从队列读取。接口约束:消息队列最多可以容纳 10,000 条消息。服务 A 的吞吐量:T_A 消息/秒。服务 B 的吞吐量:T_B 消息/秒。

将接口约束表示为与 T_A 和 T_B 相关的数学不等式。然后:团队优化服务 B 运行 3 倍更快(T_B 增加 3 倍)而不改变服务 A。在什么条件下,这个改进不会影响队列使用率?在什么条件下,这个改进实际上可能导致服务 A 失败(提示:考虑背压和流控制)?