Математические методы оптимизации задач в исследовании операций

Задача оптимизации состоит из переменных решения , целевой функции и ограничений:

Метод выбирают по структуре задачи, а не по привычке.

МетодКогда подходитТипичный пример
линейное программированиелинейная цель и ограничения, непрерывные переменныераспределение ресурса
целочисленное и смешанное программированиевыбор дискретенназначение задач, расписание
нелинейная оптимизацияесть нелинейные зависимостинастройка параметров
динамическое программированиезадача раскладывается на перекрывающиеся подзадачиуправление запасом, маршрут
графовые алгоритмыструктура — сетькратчайший путь, максимальный поток
стохастическая оптимизациячасть параметров случайнапланирование при неизвестном спросе
робастная оптимизацияважен результат при неблагоприятных параметрахзапас мощности
эвристики и метаэвристикиточный поиск слишком дорогкрупная комбинаторная задача

Симплекс-метод — алгоритм решения линейной задачи, а не отдельный класс постановок. Градиентный спуск — семейство алгоритмов для дифференцируемой цели, но он может прийти в локальный минимум.

Перед запуском решателя

  1. Проверить единицы измерения и масштабы коэффициентов.
  2. Убедиться, что допустимая область не пуста.
  3. Отделить жёсткие ограничения от штрафов.
  4. Оценить, обязано ли решение быть целочисленным.
  5. Задать базовый вариант для сравнения.
  6. Провести анализ чувствительности.

После решения

Оптимум модели — не обязательно лучший вариант реальной системы. Проверяю округление, устойчивость к ошибке параметров, стоимость внедрения и ограничения, не попавшие в формулу.

Для графовой постановки см. алгоритм Дейкстры, для нескольких критериев — Оптимизация сложных систем.

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

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