优化一个目标会损失另一个目标
一个具有两个性能目标的系统——例如,子系统A性能(P_A)和子系统B性能(P_B)——有一个 可行区域:在给定共享资源的情况下实现的(P_A, P_B)对集。
在可行区域内, 帕累托边界 是无法同时改进P_A而不降低P_B,或反之。这个边界上的每个点都是根据各目标的权重而定的系统最优解。
子系统A最优解:最大化P_A而不考虑P_B。这在可行区域的最右侧——在帕累托边界的极端处,P_A最大而P_B被牺牲。
子系统B最优解:最大化P_B而不考虑P_A。类似地,在边界的顶部,P_B最大。
系统最优解:在帕累托边界的内部,平衡两个目标。这在两个组件最优解之间。没有一个子系统在其个体最大值运行——但整个系统表现最佳。
汉明的差分分析器: 改进的放大器最大化了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。
可行区域与约束
受约束的系统在参数空间内运作,位于一个 可行区域 F。约束定义了 F 的边界。
约束:在最优值时满足等式的约束(最优值位于约束边界上)。
非约束:在最优值时满足严格不等式的约束(最优值位于边界的内部)。
最大原理(优化理论的一般结果):对于线性目标在凸可行区域内,优值总是在可行区域的顶点上——即在约束的交点处。优值不会位于内部,除非目标在某个方向上是平的。
Hamming 的规则 2 的几何解释:一个系统的边界条件(约束)往往比内部的最优值更重要,因为最优值位于边界,而不是内部。设计约束结构正确地确定了可行区域的位置;一旦你有了区域,优值就在其边界上。
接口作为共享约束:两个子系统之间的接口在两个 subsystem 的联合参数空间中定义了一个共享约束。改进 component A 将改变 A 在接口上的行为——它可能会将接口约束推出 component B 的可行区域。
哪个约束是约束?
一个通信系统有三个设计变量:发射功率 P(单位为瓦特)、带宽 B(单位为兆赫兹)以及噪声因子 NF(单位为分贝)。数据率 C = B · log₂(1 + P/(N₀ · B · 10^(NF/10))),其中 N₀ 是噪声地板。
这个系统有三个约束:P ≤ 10 W(功率预算)、B ≤ 20 MHz(频谱分配)、NF ≤ 6 dB(硬件限制)。目标是最大化 C。
接口作为共享约束
将两个子系统 A 和 B 模型为在各自参数空间 P_A 和 P_B 中运行。它们之间的接口定义了一个 共享约束:在系统正常运行时,参数 A 中的一个参数与参数 B 中的一个参数之间必须满足的关系。
示例:在 Hamming 的差分分析器中,放大器(子系统 A)输出一个电流 I_out。地面电路(子系统 B)可以承受的最大电流 I_max。接口约束:I_out ≤ I_max。
当您提高子系统A(更好的放大器)时,I_out增加。如果I_out > I_max,接口约束被违反——这两个子系统不再处于它们的联合参数空间的有效操作区域。
接口设计原则:接口约束定义了有效和无效操作之间的边界。组件设计师必须知道这个边界。系统工程师必须验证在任何组件发生变化时它不会被违反。
接口不仅仅是A或B的财产——它属于联合系统。这就是为什么只测试单个组件(测试A单独测试B单独)会miss接口故障的原因。约束只有在联合参数空间中才能看到。
接口故障分析
一个软件系统有两个服务:Service A(数据摄取)和Service B(数据处理)。Service A将记录写入消息队列;Service B从队列中读取。接口约束:消息队列最多可以容纳10,000条消息。Service A的吞吐量:T_A消息每秒。Service B的吞吐量:T_B消息每秒。