Когда оптимизация одной цели наносит ущерб другой
Система с двумя целями производительности — скажем, производительность подсистемы 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.
Действующее ограничение: ограничение, которое удовлетворяется с равенством в оптимуме (оптимум лежит на границе ограничения).
Неработающее ограничение: ограничение, удовлетворяемое со строгим неравенством в оптимуме (оптимум лежит строго внутри границы).
Принцип максимума (общий результат из теории оптимизации): для линейной цели над выпуклой допустимой областью оптимум всегда лежит в вершине допустимой области — т.е. в пересечении действующих ограничений. Оптимум никогда не лежит внутри, если только цель не является плоской (постоянной) в некотором направлении.
Правило 2 Хэмминга в геометрических терминах: граничные условия (ограничения) системы часто более важны, чем оптимальные значения внутри границ, потому что оптимум лежит на границе, а не внутри. Правильное проектирование структуры ограничений определяет, где находится допустимая область; как только у вас есть область, оптимум находится на ее границе.
Интерфейс как общее ограничение: интерфейс между двумя подсистемами определяет общее ограничение в совместном пространстве параметров обеих. Улучшение компонента A изменяет поведение A на интерфейсе — оно может вытолкнуть ограничение интерфейса за пределы допустимой области компонента B.
Какое ограничение действует?
Коммуникационная система имеет три переменные проектирования: мощность передачи P (в ваттах), полоса пропускания B (в МГц) и коэффициент шума NF (в дБ). Скорость передачи данных C = B · log₂(1 + P/(N₀ · B · 10^(NF/10))), где N₀ — уровень шума.
Система имеет три ограничения: P ≤ 10 W (бюджет мощности), B ≤ 20 МГц (распределение спектра), NF ≤ 6 дБ (аппаратное ограничение). Цель — максимизировать C.
Интерфейс как общее ограничение
Моделируйте две подсистемы 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, ограничение интерфейса нарушается — две подсистемы больше не находятся в действительной рабочей области своего совместного пространства параметров.
Принцип проектирования интерфейса: ограничение интерфейса определяет границу между действительной и недействительной операцией. Конструктор компонента должен знать эту границу. Системный инженер должен убедиться, что она не нарушается при изменении любого компонента.
Интерфейс — это не свойство только A или только B — он принадлежит совместной системе. Вот почему тестирование на уровне компонентов (тестирование A в одиночку, тестирование B в одиночку) упускает отказы интерфейса. Ограничение видно только в совместном пространстве параметров.
Анализ отказов интерфейса
Программная система имеет два сервиса: Сервис A (прием данных) и Сервис B (обработка данных). Сервис A записывает записи в очередь сообщений; Сервис B читает из очереди. Ограничение интерфейса: очередь сообщений может содержать максимум 10 000 сообщений. Пропускная способность сервиса A: T_A сообщений в секунду. Пропускная способность сервиса B: T_B сообщений в секунду.