1つの目的を最適化することが別の目的を損なうとき
2つのパフォーマンス目的を持つシステム — 例えば、サブシステムAのパフォーマンス(P_A)とサブシステムBのパフォーマンス(P_B) — は実行可能領域を持ちます: 共有資源を考慮して達成可能な(P_A, P_B)の組み合わせの集合。
実行可能領域内で、パレートフロンティアは、P_Aを改善するとP_Bが低下する(またはその逆)という境界です。このフロンティア上のすべての点は、各目的に割り当てられた重みに応じた有効なシステム最適値です。
コンポーネントA最適値: P_Bを考慮せずにP_Aを最大化します。これは右端の実行可能な点 — パレートフロンティアの、P_Aが最大化され、P_Bが犠牲になる極端な点に位置します。
コンポーネントB最適値: P_Aを考慮せずにP_Bを最大化します。同様に、P_Bが最大化されるフロンティアの頂部にあります。
システム最適値: パレートフロンティアの内部のどこか、両方の目的のバランスを取ります。これは2つのコンポーネント最適値の間にあります。どのコンポーネントも個別最大値では動作しません — しかし、システム全体として最高のパフォーマンスを発揮します。
ハミングの微分解析器: 改良されたアンプリファイアはP_A(アンプリファイアパフォーマンス)を最大化しましたが、動作点をインターフェース設計エンベロープから離れさせ、P_B(グラウンディング/干渉パフォーマンス)を低下させました。システム最適値は、インターフェースの許容範囲内に留まるため、アンプリファイアのパフォーマンスを控えめにする必要がありました。
システム最適値を特定する
システムは2つのサブシステムを持っています。サブシステム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の境界を定義します。
拘束制約: 最適値で等式を満たす制約(最適値は制約境界上にある)。
非拘束制約: 最適値で厳密な不等式を満たす制約(最適値は厳密に境界内にある)。
最大原理(最適化理論の一般的な結果): 凸実行可能領域上の線形目的関数に対して、最適値は常に実行可能領域の頂点にあります — つまり、拘束制約の交点です。目的関数が何らかの方向で平坦(定数)でない限り、最適値が内部にあることはありません。
幾何学的な観点でハミングのルール2: システムの境界条件(制約)は、最適値が内部にではなく境界にあるため、最適値の内部値よりも重要です。制約構造を正しく設計することが、実行可能領域がどこにあるかを決定します。領域を取得したら、最適値はその境界にあります。
共有制約としてのインターフェース: 2つのサブシステム間のインターフェースは、両者の結合パラメータ空間における共有制約を定義します。コンポーネントAを改善するとAのインターフェースでの動作が変わります — これはインターフェース制約をコンポーネントBの実行可能領域の外に押し出す可能性があります。
どの制約が拘束制約ですか?
通信システムには3つの設計変数があります: 送信電力P(ワット)、帯域幅B(MHz)、雑音指数NF(dB)。データレートC = B · log₂(1 + P/(N₀ · B · 10^(NF/10)))、ここでN₀はノイズフロアです。
システムは3つの制約を持っています: P ≤ 10 W(電力予算)、B ≤ 20 MHz(スペクトラム割り当て)、NF ≤ 6 dB(ハードウェア制限)。目的はCを最大化することです。
共有制約としてのインターフェース
2つのサブシステムAとBを、それぞれのパラメータ空間P_AとP_Bで動作しているとモデル化します。これらの間のインターフェースは共有制約を定義します: P_A内のパラメータとP_B内のパラメータ間の関係で、システムが機能するために保つ必要があります。
例: ハミングの微分解析器では、アンプリファイア(サブシステムA)は電流I_outを出力します。グラウンディング回路(サブシステムB)は最大電流I_maxを許容できます。インターフェース制約: I_out ≤ I_max。
サブシステムAを改善する(より良いアンプリファイア)と、I_outが増加します。I_out > I_maxの場合、インターフェース制約が違反されます — 2つのサブシステムは、それらの結合パラメータ空間の有効な動作領域にもはやありません。
インターフェース設計原理: インターフェース制約は、有効な動作と無効な動作の間の境界を定義します。コンポーネント設計者はこの境界を知る必要があります。システムズエンジニアは、コンポーネントが変更される際にこれが違反されていないことを確認する必要があります。
インターフェースはAまたはBだけの特性ではありません — これはシステム全体に属します。これがコンポーネントレベルのテスト(Aだけをテスト、Bだけをテスト)がインターフェース障害を見逃す理由です。制約は結合パラメータ空間でのみ見えます。
インターフェース障害分析
ソフトウェアシステムは2つのサービスを持っています: サービスA(データ取り込み)とサービスB(データ処理)。サービスAはメッセージキューにレコードを書き込みます。サービスBはキューから読み取ります。インターフェース制約: メッセージキューは最大10,000メッセージを保持できます。サービスAのスループット: T_Aメッセージ/秒。サービスBのスループット: T_Bメッセージ/秒。