Положительная и отрицательная обратная связь

Обратная связь возвращает часть информации о выходе системы на её вход и тем самым влияет на последующее поведение.

flowchart LR
    G["Цель"] --> C["Регулятор"]
    C --> O["Объект"]
    O --> Y["Результат"]
    Y -- "измерение" --> C

Отрицательная обратная связь

Противодействует отклонению от цели:

— целевое значение, — измеренный выход, — ошибка, — воздействие.

Пример: очередь растёт — добавляем обработчики; очередь сокращается — возвращаем ресурсы. Такая связь стабилизирует систему только при разумных коэффициентах и задержках. Слишком сильная реакция способна вызвать колебания.

Положительная обратная связь

Усиливает исходное изменение. Она полезна для быстрого перехода в новое состояние, но без ограничения может привести к лавинообразному росту.

Примеры:

  • повторные запросы увеличивают нагрузку, из-за нагрузки растёт число ошибок, ошибки вызывают ещё больше повторов;
  • популярный материал чаще рекомендуют, поэтому он получает ещё больше внимания.

Что проверять в программной системе

  • какая метрика замыкает контур;
  • где задержка измерения и воздействия;
  • есть ли гистерезис или окно усреднения;
  • что ограничивает усиление;
  • как контуры влияют друг на друга;
  • безопасно ли поведение при потере метрик.

Связано: Динамические системы, Оценка качества управления.

Самопроверка

  • Почему retries могут образовать положительную связь?
  • Как задержка превращает стабилизирующий контур в колебательный?
  • Зачем автомасштабированию гистерезис?