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

Целевое программирование

Целевое программирование

Целевое программирование (ЦП) зародилось как приложение обычного линейного программирования. В настоящее время — это область многокритериальной оптимизации. В целевом программировании устанавливается некоторый уровень достижения целей по каждому критерию. От обычного линейного программирования ЦП отличается следующими особенностями:

1) пониманием критериев как целей;

2) приписыванием приоритетов и/или весов достижению отдельных целей;

3) присутствием переменных Целевое программирование, являющихся мерой отклонения от целевых уровней Целевое программирование сверху и снизу соответственно;

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

Обычноточка, удовлетворяющая сразу всем целям, не является допустимой. Поэтому стремятся найти допустимую точку, которая достигает всех целей «наилучшим» образом. Для каждой цели (целевой функции) устанавливается значение критерия Целевое программирование который должен быть достигнут (если возможно) по отношению к обусловленным числами Целевое программирование целям.

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

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

Пример:

Рассмотрим задачу ЦП:

Цели

Целевое программирование
Целевое программирование

Архимедова формулировка этой задачи имеет вид

Целевое программирование

при целевых ограничениях

Целевое программирование

Здесь переменные w в целевой функции — положительные штрафные веса; каждая цель порождает одно целевое ограничение, кроме случая, когда задан диапазон и возникают два целевых ограничения. В формулировке задачи используются переменные отклонений

Целевое программирование

которые соответствуют нежелательным отклонениям.

Архимедова целевая функция представляет собой взвешенную сумму переменных нежелательных отклонений. Переменные w позволяют штрафовать нежелательные отклонения от цели с разной степенью жесткости. Целевые ограничения расширяют область допустимых решений, переводя Целевое программирование в пространство большей размерности и создавая, таким образом, архимедову область допустимых решений для задачи ЦП.

Архимедовы задачи ЦП можно решать, используя обычные методы линейного программирования. Но тогда мы можем получить только крайние точки допустимой области в пространстве решений (т.е. крайние точки области Целевое программирование после ее усечения целевыми ограничениями). Возможны следующие варианты таких точек:

1) крайние точки области Целевое программирование;

2) точки границы области Целевое программирование, не являющиеся крайними;

3) внутренние точки области Целевое программирование.

Если Л П Р предпочитает точку, не являющуюся крайней точкой допустимой области архимедовой задачи ЦП, то ее нельзя определить, не используя процедуры изменения целевых показателей

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

Целевое программирование

при Целевое программирование. Здесь для каждой цели указан приоритет

Целевое программирование

Величины Целевое программирование служат и в качестве факторов приоритетов, причем Целевое программирование

Запишем задачу ЦП с приоритетами в следующей лексикографической форме:

Целевое программирование

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

Целевое программирование

Оптимизация (минимизация) этой задачи осуществляется с помощью алгоритмов линейного программирования. На первом этапе решаем задачу

Целевое программирование

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

Целевое программирование

Если в этой задаче есть альтернативные оптимумы, то решаем задачу второго этапа:

Целевое программирование

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

Целевое программирование

Здесь Целевое программирование — оптимальное значение переменной Целевое программирование, найденное на первом этапе.

Если в задаче второго этапа есть альтернативные оптимумы, то решаем задачу третьего этапа:

Целевое программирование

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

Целевое программирование

где Целевое программирование — оптимальное значение Целевое программирование после второго этапа.

Любое решение задачи третьего этапа определяет лексикографический минимум в задаче ЦП с приоритетами.

Норешение прекращается, как только на каком-то этапе будет единственное решение, т.е. цели нижних уровней могут и не повлиять на решение.

Задачу ЦП с приоритетами можно решить в одном этапе, использовав лексикографический симплекс -метод.

Пример:

Рассмотрим задачу ЦП с приоритетами вида:

Целевое программирование

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

Целевое программирование

Эта задача преобразуется к виду

Целевое программирование

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

Целевое программирование

все переменные Целевое программирование0.

Введем дополнительные переменные Целевое программированиеи заполним симплекс-таблицу (табл. 5.19), из которой удалим столбцы базисных переменных; Целевое программирование — строка относительных оценок целевой функции для каждого лексикографического уровня Целевое программирование (последние три строки симплекс-таблицы). Нулевые клетки — пустые.

Целевое программирование

Анализируя строки Целевое программирование, видим, что переменную Целевое программирование можно было бы перевести в базисные переменные. Тогда целевая функция второго лексикографического уровня может быть уменьшена, но при этом увеличится целевая функция первого лексикографического уровня, чего допустить нельзя. Таким образом, точка Целевое программированиеЦелевое программирование минимизирует целевые функции первого и второго этапов. Так как существуют альтернативные оптимумы, переходим к третьему этапу. Вводим в базис переменную Целевое программирование, поскольку в первой и второй строках Целевое программирование над -1 нет положительных элементов. Получим новую табл. 5.20 и оптимальное решение Целевое программирование = (0, 2, 3), что и является лексикографическим минимумом для рассматриваемой задачи. В точке оптимального решения для первой цели отклонение Целевое программирование; для второй цели — Целевое программирование; третья цель достигнута: Целевое программирование.

Целевое программирование

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

Полезно бывает применить прием масштабирования целевых ограничений — записать отклонения от целей в процентах, т.е. ввести вместо Целевое программирование выражение Целевое программирование Если дополнительно минимизировать новую переменную Целевое программирование и добавить условие Целевое программирование, то такая процедура будет минимизировать максимальное отклонение. В этом случае число дополнительных ограничений равно числу переменных отклонения на рассматриваемом уровне приоритета.

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

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

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

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