Для связи в whatsapp +905441085890

Многокритериальные задачи линейного программирования

Многокритериальные задачи линейного программирования

Реальные проблемы, решаемые с помощью методов математического программирования, во многих случаях выдвигают несколько критериев, которым одновременно должно удовлетворять решение задачи. Причем эти критерии часто бывают антагонистическими. За последние десятилетия разработано много методов анализа и решения подобных задач. В значительной степени эти методы являются диалоговыми (или интерактивными), состоящими в последовательном анализе возможных решений лицом, принимающим решение (ЛПР), и выбором более предпочтительного решения. Методы могут основываться на предварительном выделении множества неулучшаемых (эффективных) решений и представлении этого множества ЛПР для принятия решений.

Многокритериальная задача линейного программирования (МКЛП) имеет вид:

Многокритериальные задачи линейного программирования

при Многокритериальные задачи линейного программирования или в матричной форме

Многокритериальные задачи линейного программирования

где Многокритериальные задачи линейного программирования — число целевых функций (критериев); Многокритериальные задачи линейного программирования — градиент (вектор коэффициентов) Многокритериальные задачи линейного программирования-й целевой функции (критерия); Многокритериальные задачи линейного программирования — значение Многокритериальные задачи линейного программирования-го критерия (целевой функции); Многокритериальные задачи линейного программирования— множество допустимых значений переменных; max — означает, что нужно максимизировать все целевые функции одновременно; Многокритериальные задачи линейного программирования— матрица критериев размерностью Многокритериальные задачи линейного программирования (матрица коэффициентов целевой функции, ее строки Многокритериальные задачи линейного программирования являются градиентами критериев); Многокритериальные задачи линейного программирования — вектор критериев.

Предположим, что ЛПР всегда имеет функцию полезности Многокритериальные задачи линейного программированияМногокритериальные задачи линейного программирования, которая отображает векторы критериев на действительную прямую так, что большее значение на этой прямой соответствует более предпочтительному вектору критериев. Функции полезности бывают разных видов: неубывающие, возрастающие, вогнутые, строго вогнутые, убывающие, выпуклые, строго выпуклые, монотонные и тл. Но исходные функции полезности могут быть преобразованы таким образом, чтобы они приняли вид, необходимый ЛПР, например, чтобы функция полезности стала покоординатно возрастающей.

Многокритериальные задачи графически исследуются и в пространстве решений (как в задачах линейного программирования), и в пространстве критериев.

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

Многокритериальные задачи линейного программирования

Если известна функция полезности Многокритериальные задачи линейного программирования, то многокритериальная задача превращается в однокритериальную задачу

Многокритериальные задачи линейного программирования

Но этот подход полезен только в концептуальном плане.

Пример:

Рассмотрим задачу МКЛП:

Многокритериальные задачи линейного программирования

при ограничениях

Многокритериальные задачи линейного программирования
Многокритериальные задачи линейного программирования

Функция полезности выбрана виде

Многокритериальные задачи линейного программирования

и имеет следующие выражения:

а) в пространстве решений Многокритериальные задачи линейного программирования Многокритериальные задачи линейного программирования Из рис. 5.17 видно, что оптимальной точкой является точка (3,0), оптимальный вектор имеет вид (3,3), оптимальное значение Многокритериальные задачи линейного программирования= 18;

б) в пространстве критериев —

Многокритериальные задачи линейного программирования

(рис. 5.18). Точка Многокритериальные задачи линейного программирования — образ точки Многокритериальные задачи линейного программирования, т.е. Многокритериальные задачи линейного программирования = (0,0), точка Многокритериальные задачи линейного программирования — образ точки Многокритериальные задачи линейного программирования и Многокритериальные задачи линейного программирования = (4,0), точка Многокритериальные задачи линейного программирования— оптимальный вектор критериев, Многокритериальные задачи линейного программирования — прообраз Многокритериальные задачи линейного программирования — оптимальная точка; оптимальное значение Многокритериальные задачи линейного программирования=18.

Многокритериальные задачи линейного программирования

Для критериальных векторов Многокритериальные задачи линейного программирования вводится понятие доминирования. Пусть

Многокритериальные задачи линейного программирования

критериальные векторы. Вектор Многокритериальные задачи линейного программирования доминирует вектор Многокритериальные задачи линейного программирования, тогда и только тогда, когда

Многокритериальные задачи линейного программирования

(т.е. для всех

Многокритериальные задачи линейного программирования

по крайней мере для одного Многокритериальные задачи линейного программирования). Таким образом, никакой компонент вектора Многокритериальные задачи линейного программирования не меньше соответствующего компонента вектора Многокритериальные задачи линейного программирования и одновременно, по крайней мере, один компонент вектора больше соответствующего компонента вектора Многокритериальные задачи линейного программирования.

Вектор Многокритериальные задачи линейного программирования сильно доминирует вектор Многокритериальные задачи линейного программирования тогда и только тогда, когда Многокритериальные задачи линейного программирования.

Критериальный вектор считается недоминируемым, если он не доминируется ни одним из допустимых критериальных векторов. Вектор Многокритериальные задачи линейного программирования является недоминируемым тогда и только тогда, когда не существует другого вектора Многокритериальные задачи линейного программирования такого, что Многокритериальные задачи линейного программирования иначе Многокритериальные задачи линейного программирования является доминируемым критерием.

Критериальный вектор не может быть оптимальным, если он не является недоминируемым. И для каждого недоминируемого критериального вектора существует покоординатно возрастающая функция полезности, для которой он является оптимальным.

Доминируемость относится к векторам в пространстве критериев; в пространстве решений вводится понятие эффективности.

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

Вместе с термином «эффективность» используются термины «неулучшаемость» или «оптимальность по Парето». В практических приложениях особое внимание уделяется области Парето. Вильфредо Парето сформулировал проблему многокритериальной оптимизации в 1896 г. К этому вопросу вернулся в 1963 г. Лотфи Заде при проектировании систем управления. Область Парето задается в пространстве критериев, и любое, принадлежащее этой области решение, нельзя улучшить одновременно по всем скалярным критериям. Вне области Парето можно улучшать решение по всем критериям одновременно, но ни по одному критерию оптимальное значение здесь не достигается. Таким образом, необходимым условием решения задачи многокритериальной оптимизации является принадлежность решения области Парето, т.е. решение должно быть Парето-оптимальным, поскольку остальные решения заведомо хуже сразу по всем скалярным критериям. Однако необходима дополнительная информация, чтобы ЛПР могло выбрать единственное решение на множестве Парето-оптимальных решений. Для примера рассмотрим двухкритериальную задачу. На плоскости критериев, где задано множество допустимых решений, первый критерий достигает своего оптимума в точке А, а второй — в точке В. Кривая АВ, принадлежащая области допустимых решений, определяет для данного примера область Парето.

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

В задаче линейного программирования (ЛП) эффективная точка — это некоторая оптимальная точка, так как не должна существовать точка Многокритериальные задачи линейного программирования, такая, что Многокритериальные задачи линейного программирования .

В задаче ЛП с одним критерием эффективное множество Многокритериальные задачи линейного программирования и оптимальное множество Многокритериальные задачи линейного программирования совпадают и оба выпуклы. В случае многокритериальности Многокритериальные задачи линейного программирования и Многокритериальные задачи линейного программирования ведут себя по-разному:

  1. Оптимальное множество может быть ограниченным и несвязным (наличие более чем одной оптимальной точки не означает, что число их обязательно бесконечно).
  2. В задаче МКЛП может быть более одного оптимального критериального вектора (в JIП имеется единственное оптимальное значение критерия независимо от числа оптимальных точек).
  3. Эффективное множество Многокритериальные задачи линейного программирования может оказаться невыпуклым.
  4. Оптимальная точка — не обязательно крайняя (многое зависит от вида функции полезности).
  5. При сведении к однокритериальной задаче с помощью функции полезности могут быть локальные оптимумы, не являющиеся глобальными.
  6. Оптимальное множество Многокритериальные задачи линейного программирования может быть пусто, когда не пусто эффективное множество Многокритериальные задачи линейного программирования.

Для решения задач МКЛП применяются различные методы сведения к одному скалярному критерию: метод взвешенных сумм, методы сжатия допустимой области, метод е-ограничений, алгоритмы векторной максимизации, различные интерактивные процедуры и т.д. Процедура сведения задачи к одному скалярному критерию с помощью функции полезности очевидна. Рассмотрим другой метод сведения к одному скалярному критерию — метод взвешенных сумм с точечным оцениванием весов.

Эта теория взята со страницы лекций по предмету «математическое программирование»:

Предмет математическое программирование

Возможно эти страницы вам будут полезны:

Комбинированный метод внутренней и внешней точек
Метод проекции градиента
Метод взвешенных сумм с точечным оцениванием весов
Сжатие множества допустимых решений