Как сравнивать решения по нескольким критериям cover

Как сравнивать решения по нескольким критериям

Опубликовано: 17 октября, 2026, Обновлено: 19 октября, 2026

В первой статье серии мы выбирали между вариантами при риске и неопределённости. Теперь рассмотрим другую трудность: данные о ресурсах известны, но целей несколько. План может приносить больше прибыли и одновременно хуже выполнять обязательства перед клиентами. Как сравнить такие планы и не спрятать компромисс в одной цифре?

Разберём последовательность на одном учебном примере: сначала зададим допустимые решения, затем увидим конфликт целей, уберём заведомо слабые варианты и выберем метод для окончательного решения. Все числа вымышлены; это иллюстрация методов, а не производственный прогноз.

Начните с решений и жёстких ограничений

Предположим, мастерская за неделю выпускает два вида изделий — X и Y. Обозначим их количества через x и y. Для X нужны 2 часа работы и 1 единица материала; для Y — 1 час и 2 единицы материала. В распоряжении мастерской 40 часов и 50 единиц материала. Прибыль с единицы X равна 30 долларам, с единицы Y — 25 долларам.

Условия модели выглядят так:

  • Время: 2x + y ≤ 40.
  • Материал: x + 2y ≤ 50.
  • Неотрицательность: x ≥ 0 и y ≥ 0.
  • Прибыль в долларах: P = 30x + 25y.

Ограничения определяют допустимую область: планы за её пределами нельзя выполнить с имеющимися ресурсами. Прибыль — показатель, по которому мы сравниваем допустимые планы. Для простоты пока допускаем дробные x и y как непрерывную модель объёма работы; если изделия могут выпускаться только целыми штуками, потребуется целочисленная постановка.

Область допустимых планов мастерской с ограничениями по времени и материалу

Так строится задача линейного программирования: переменные, одна линейная цель и линейные ограничения. Графический метод, допустимый и оптимальный планы, а также смысл дефицитных ресурсов подробнее разобраны в наборе «Линейное программирование в ТПР».

Что даёт максимум одной цели

Если максимизировать только прибыль, оптимальный план в этой модели — x = 10, y = 20. Он использует все 40 часов и 50 единиц материала и приносит 800 долларов: 30 × 10 + 25 × 20 = 800. Проверка вершин допустимой области даёт для планов (0, 0), (20, 0), (10, 20) и (0, 25) прибыль 0, 600, 800 и 625 долларов соответственно. Значит, среди допустимых непрерывных планов максимальная прибыль здесь равна 800 долларам.

Но мастерская может стремиться ещё и к поставке большего числа изделий Y. Тогда оптимум по прибыли — лишь одна из возможных точек компромисса.

Когда желаемые уровни целей конфликтуют

Допустим, мастерская хотела бы зарабатывать не менее 780 долларов и выпускать не менее 22 изделий Y. Эти требования нельзя выполнить одновременно с заданными ресурсами. При y ≥ 22 ограничение на материал оставляет x ≤ 6, а максимальная прибыль при таком количестве Y — 30 × 6 + 25 × 22 = 730 долларов. При дальнейшем увеличении y доступное x сокращается, и прибыль падает.

Важно разделить два вида условий:

  • Жёсткие ограничения — 40 часов и 50 единиц материала. Их нарушать нельзя.
  • Желаемые уровни — прибыль 780 долларов и 22 изделия Y. Если они несовместимы, можно измерять и сравнивать отклонения от них.

Это идея целевого программирования. Для каждого желаемого уровня вводят переменные недовыполнения и перевыполнения; в критерий включают именно те отклонения, которые нежелательны. Например, для цели «не меньше 22 изделий Y» штрафуют недовыполнение, а выпуск сверх 22 не обязательно считать проблемой. Подробности о весах и иерархии целей есть в наборе «Целевое программирование в принятии решений».

Сравним два допустимых плана. План A (x = 10, y = 20) даёт 800 долларов и недовыполняет цель по Y на 2 изделия. План B (x = 6, y = 22) даёт 730 долларов и недовыполняет цель по прибыли на 50 долларов. Нельзя просто сложить «2 изделия» и «50 долларов»: единицы измерения различаются. Один из способов — разделить отклонения на соответствующие целевые уровни. Посмотрим, какое правило сравнения из этого получится.

Как целевая модель учитывает отклонения

Обозначим недополученную прибыль через dP = max(780 − P, 0), а недовыполнение выпуска — через dY = max(22 − y, 0). Если план превосходит желаемый уровень, соответствующее недовыполнение равно нулю. В этом учебном примере перевыполнение не штрафуется: мы стремимся достичь хотя бы заданных уровней, а не попасть в них точно.

Чтобы сопоставить доллары и изделия, минимизируем сумму S = dP / 780 + dY / 22. Здесь оба относительных недовыполнения имеют одинаковый вес. У A прибыль выше цели, поэтому dP = 0, а S = 2 / 22 ≈ 0,091. У B выпуск соответствует цели, поэтому dY = 0, а S = 50 / 780 ≈ 0,064. Среди A и B это правило выбирает B. Оно ещё не доказывает, что B лучше каждого другого допустимого плана: для этого нужно проверить всю допустимую область.

Весовой подход разрешает небольшой недобор по одной цели компенсировать улучшением по другой. При строгом приоритете прибыли логика иная: сначала ищем планы с нулевым недовыполнением 780 долларов, и лишь среди них улучшаем выпуск Y. Тогда B с прибылью 730 долларов отсекается независимо от его преимущества по выпуску. Как именно выбрать план среди оставшихся, покажем ниже на методе уступок. Значения целей, нормировку и приоритеты нужно фиксировать до знакомства с итоговым победителем.

Уберите доминируемые планы с помощью Парето

Прежде чем назначать веса, полезно проверить, какие варианты заведомо хуже. Пусть есть и план C (x = 8, y = 18): он допустим, приносит 690 долларов и даёт 18 изделий Y. План A приносит 800 долларов и даёт 20 изделий Y. Значит, A лучше C по обоим показателям, и C доминируем: при этих двух критериях нет причины сохранять его для дальнейшего выбора.

С A и B иначе. A прибыльнее, B обеспечивает больший выпуск Y. Ни один из них не доминирует другой. Такие решения называют недоминируемыми, а совокупность всех недоминируемых допустимых решений — множеством Парето. Наши A и B — примеры его точек. Множество Парето сокращает число вариантов, но само по себе не выбирает единственный «лучший» компромисс.

Планы A, B и C на плоскости прибыли и выпуска Y: C доминируем, A и B лежат на границе Парето

Вся граница компромиссных планов

На рисунке линия продолжается за точкой B. В нашей непрерывной модели можно описать всю эффективную границу, а не только два выбранных плана. При выпуске Y от 20 до 25 изделий ограничивающим ресурсом становится материал: x + 2y = 50, значит, x = 50 − 2y. Эти планы укладываются и в 40 часов: 2x + y = 100 − 3y ≤ 40 при y ≥ 20.

Подставим x в формулу прибыли: P = 30(50 − 2y) + 25y = 1500 − 35y. При y = 20 получаем A с прибылью 800 долларов; при y = 22 — B с 730 долларами; при y = 25 — план (x = 0, y = 25) с 625 долларами. Между ними есть другие допустимые эффективные планы. На этом участке дополнительное изделие Y требует отказаться от двух изделий X и уменьшает прибыль на 35 долларов: минус 60 долларов от X и плюс 25 долларов от Y.

Почему это именно граница Парето? При том же y план с меньшим x приносит меньшую прибыль и доминируется планом на границе. При y < 20 прибыль не может превысить 800 долларов, поэтому такие планы доминируются A. Выпуск более 25 изделий Y невозможен при запасе материала 50. Если изделия выпускаются только целыми штуками, непрерывный отрезок превращается в отдельные допустимые точки, которые нужно проверить в целочисленной модели.

Как строят границу, проверяют доминирование и связывают её с линейными ограничениями, показывает набор «Многокритериальные решения и множество Парето».

Как выбрать один план из эффективных

После отсева доминируемых вариантов нужен явный ответ на вопрос: какую уступку мы готовы сделать по одному критерию ради улучшения другого? Разные методы фиксируют этот ответ по-разному:

  • Взвешенная сумма. Сначала приведите критерии к сопоставимым шкалам, затем задайте веса и вычислите общий балл. При иных весах победитель может поменяться; исходные доллары и штуки напрямую складывать нельзя.
  • Метод уступок. Сначала оптимизируйте главный показатель, затем задайте допустимое ухудшение и внутри оставшихся вариантов улучшайте следующий. Например, если прибыль должна быть не ниже 780 долларов, B с 730 долларами исключается, а A остаётся.
  • Идеальная точка. Сравнивайте планы с лучшими значениями каждого показателя по отдельности. Такая комбинация может быть недостижимой; при измерении расстояния до неё также важны шкалы и веса.
  • Лексикографический порядок. Сначала сравнивайте самый важный критерий, и только при равенстве — следующий. Если первым безусловным приоритетом является число изделий Y, предпочтение может перейти к плану с большим y даже при меньшей прибыли.

Эти подходы, их ограничения и способы нормализации собраны в наборе «Методы многокритериального выбора». Правило «прибыль не ниже 780 долларов» исключает B, а правило «не менее 22 изделий Y» исключает A. Но выбор только между A и B ещё не заменяет поиск по всем допустимым планам.

Метод уступок: доведём выбор до результата

Максимальная прибыль мастерской — 800 долларов в плане A. Допустим, ради увеличения выпуска Y мы согласны уступить не более 20 долларов прибыли. Тогда прибыль должна оставаться не ниже 780 долларов, а среди подходящих планов нужно максимизировать y.

На эффективной границе P = 1500 − 35y. Условие 1500 − 35y ≥ 780 даёт y ≤ 720 / 35 ≈ 20,57. При наибольшем допустимом выпуске получаем y ≈ 20,57, x = 50 − 2y ≈ 8,86 и прибыль ровно 780 долларов. Материал израсходован полностью, а времени нужно около 38,29 часа, что укладывается в лимит 40 часов.

Если смотреть только на A и B, правило оставляет A. Но поиск по всей области в непрерывной модели находит промежуточный компромисс: примерно на 0,57 изделия Y больше, чем у A, при уступке 20 долларов прибыли. Для целых изделий такой дробный план недопустим: максимальный выпуск при условии прибыли не ниже 780 долларов составляет 20 изделий Y, и в целочисленной модели подходит A. Поэтому допущение о дробных объёмах влияет не только на запись формул, но и на итоговый план.

Четыре способа выбрать компромисс: веса, уступка, идеальная точка и строгий порядок приоритетов

Практический порядок выбора

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

Главное

Линейное программирование показывает лучший допустимый план по одной выбранной цели. Целевое программирование помогает согласовать несовместимые желаемые уровни, не нарушая жёстких ограничений. Множество Парето убирает заведомо слабые решения, а метод многокритериального выбора объясняет, почему из оставшихся выбран конкретный компромисс. Хорошее решение можно не только посчитать, но и объяснить: какие предположения, ограничения и предпочтения привели к нему. После выбора полезно проверить, сохранится ли результат при изменении весов и исходных данных; этому посвящена следующая статья — «Как проверить устойчивость решения».

Часто задаваемые вопросы

Чем ограничение отличается от цели?

Ограничение задаёт условие допустимости: план, нарушающий лимит ресурса, исключается. Цель описывает желаемый результат, а при конфликте нескольких целей можно измерять и сравнивать отклонения от них.

Даёт ли множество Парето одно лучшее решение?

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

Почему нельзя просто сложить прибыль и объём выпуска?

Доллары и количество изделий измеряются в разных единицах. Чтобы объединить показатели, нужно явно выбрать способ нормализации и веса; затем проверить, насколько выбор зависит от этих допущений.