ВГТУ
2024-12-03
Задача оптимизации – задача возникающая, когда из некоторой совокупности возможных вариантов поведения или принятия решения в какой-либо области деятельности необходимо выбрать один вариант путем сравнения этих вариантов на основе их количественной оценки.
Варианты решения задачи оптимизации называют альтернативами.
По содержанию задачи оптимизации весьма разнообразны. Они могут быть связаны с проектированием технических устройств и технологических процессов, с распределением ограниченных ресурсов и планированием работы предприятий, наконец, с решением проблем, возникающих в повседневной жизни человека.
Всевозможные устройства, процессы и ситуации, применительно к которым предстоит решать задачу оптимизации, объединим общим названием объект оптимизации.
Задача оптимизации - те признаки и предпочтения, по которым следует провести сравнительную оценку альтернатив и выбрать среди них наилучшую с точки зрения поставленной цели оптимизации.
Целью оптимизации может быть повышение производительности или срока службы технического устройства, снижение массы конструкции или затрат на его производство и т.п.
Математическая модель объекта оптимизации описывает объект при помощи соотношений между величинами, характеризующими его свойства. Обычно хотя бы часть этих величин можно изменять в некоторых пределах, что и порождает множество альтернатив, среди которых и предстоит выбрать наилучшую.
Изменяемые при оптимизации величины, входящие в математическую модель объекта оптимизации, называют параметрами оптимизации, а соотношения, устанавливающие пределы возможного изменения этих параметров, — ограничениями.
Эти ограничения могут быть заданы в форме равенств или неравенств. Их называют соответственно ограничениями типа равенства или ограничениями типа неравенства.
Если множество параметров оптимизации является подмножеством конечномерного линейного пространства, то говорят о конечномерной задаче оптимизации в отличие от бесконечномерных задач, которые рассматривают в вариационном исчислении и оптимальном управлении.
Критерием оптимальности может быть требование достижения наибольшего или наименьшего значения одной или несколькими действительными \(скалярными\) функциями параметров оптимизации, выражающими количественно меру достижения цели оптимизации рассматриваемого объекта. Каждую из таких функций принято называть целевой.
Если целевая функция единственная, то задачу конечномерной оптимизации называют задачей математического программирования, а в противном случае — задачей многокритериальной (векторной) оптимизации.
Если целевая функция и ограничения являются линейными относительно параметров оптимизации, то говорят о задаче линейного программирования.
Одну из первых таких задач сформулировал и решил Л.В. Канторович. Задача Канторовича была связана с выбором оптимальной производственной программы, что и объясняет появление в названии этого класса задач слова «программирование».
При нелинейной зависимости целевой функции или ограничений от параметров оптимизации говорят о задаче нелинейного программирования.
При создании технического устройства различного назначения обычно часть его параметров можно изменять в определенных пределах. Это приводит к тому, что при проектировании появляется некоторое множество вариантов создаваемого устройства.
В результате возникает проблема выбора из этого множества альтернатив наилучшей альтернативы с точки зрения критерия оптимальности. Соответствующие такому выбору задачи оптимизации часто называют задачами оптимального проектирования.
Задачи математического программирования часто возникают в экономике, при планировании производственных процессов и количественной оценке альтернатив, связанных с принятием управленческих решений.
Постановка этих задач обычно основана на анализе и сопоставлении расходуемых ресурсов и полученного результата. Такой подход принято называть методом «затраты — эффективность».
Применение этого подхода приводит, как правило, к двум связанным между собой типам задач:
максимизировать эффективность при ограниченных затратах
обеспечивать эффективность не ниже заданной при минимальных затратах
Таким образом, критерием оптимальности может быть количественное выражение затрат или эффективности.
Одна и та же прикладная задача может приводить к разным задачам оптимизации в зависимости от того, какая математическая модель используется при рассмотрении реального объекта оптимизации.
Желательно применять более простые модели, но в то же время достаточно полно отражающие свойства объекта, существенные с точки зрения поставленной цели, выраженной в критерии оптимальности.
Пусть \(f_0(x)\) — целевая функция, количественно выражающая некоторый критерий оптимальности и зависящая от координат \(x_j\),
\[x_j,\ j=\overline{1,n}\quad \text{точки}\quad x\in \mathbb{R}^n\]
Эти координаты являются параметрами оптимизации (иногда их называют также переменными задачи оптимизации или просто переменными задачи).
При математической формулировке задачи оптимизации целевую функцию выбирают с таким знаком, чтобы решение задачи соответствовало поиску минимума этой функции. Поэтому формулировку общей задачи математического программирования обычно записывают так: \[f_0(x)\rightarrow min,\quad x\in\Omega \]где \(\Omega \subset \mathbb{R}^n\)— множество возможных альтернатив, рассматриваемых при поиске решения задачи.
Любую точку \(x\in\Omega\) называют допустимым решением задачи математического программирования, а само множество — множеством допустимых решений или, короче, допустимым множеством.
Точку \(x^*\in\Omega\), в которой функция \(f_0(x)\) достигает своего наименьшего значения, называют оптимальным решением задачи.
При отсутствии ограничений множество \(\Omega\) совпадает с областью определения \(D(f_0)\subset\mathbb{R}^n\) целевой функции. Если же рассматриваемые альтернативы должны удовлетворять некоторым ограничениям, то множество допустимых решений сужается.
Задачу \[f_0(x)\rightarrow min, \ x\in\Omega\]в дальнейшем будем называть задачей минимизации целевой функции на множестве \(\Omega\), понимая под этим нахождение наименьшего значения функции \(f_0(x)\) на \(\Omega\) и точек \(x\in \Omega\), в которых оно достигается. Но целевая функция может и не достигать на \(\Omega\) наименьшего значения. Тогда говорят о точной нижней грани \(\underset{x\in\Omega}\inf {f_0(x)}\) функции \(f_0(x)\) на этом множестве и используют запись \[ f_0(x)\rightarrow\inf, \quad x\in\Omega\]
Если \(f_0(x)\) — линейная функция, то ее область определения совпадает c \(\mathbb{R}^n\). B \(\mathbb{R}^n\) такую функцию с помощью стандартного скалярного произведения можно представить в виде \(f_0(x)=(c,x)\), где \(c=(c_1, \dots , c_n)\in\mathbb{R}^n\) — известный вектор. \[f_0(x)=(c,x)=\sum_{j=1}^n c_jx_j\]
Ясно, что указанная целевая функция может достигать наименьшего значения на множестве \(\Omega\) лишь в точках границы \(\partial \Omega\) этого множества. Если в задаче нет ограничений, то точная нижняя грань линейной функции равна \(-\infty\). Поэтому в случае линейной целевой функции задача оптимизации имеет смысл лишь при наличии ограничений.
В частном случае, когда заданы линейные ограничения типа равенства
\[Bx=d, \quad x\in\mathbb{R}^n,\]
где \(d\in\mathbb{R}^k\), \(В\) — матрица размера \(k\times n\), а параметры оптимизации могут принимать лишь неотрицательные значения, т.е. \[x_j\ge0,\quad j=\overline{1,n},\] эти соотношения составляют стандартную задачу линейного программирования, или задачу линейного программирования в стандартной форме (каноническую задачу линейного программирования, или задачу линейного программирования в канонической форме).
Если добавить ограничении типа неравенства \[\sum_{j=1}^n a_{ij}x_j\le b_m,\] Где \(a_{ij}\in\mathbb{R},\ i=\overline{1,m}\), то формулируется общая задача линейного программирования.
При отсутствии ограничений типа равенства образуется формулировка основной задачи линейного программирования (иногда ее называют естественной задачей линейного программирования).
Среди целевых функций достаточно широкий класс составляют выпуклые функции. Во многих прикладных задачах оптимизации область допустимых значений параметров оптимизации оказывается выпуклым множеством . В такой области целевая функция может сохранять одно и то же направление выпуклости, т.е. выпукла либо вниз (выпукла), либо вверх (вогнута).
Любую вогнутую целевую функцию, изменив знак, можно сделать выпуклой. Задачи оптимизации, в которых необходимо найти наименьшее значение выпуклой целевой функции, рассматриваемой на выпуклом множестве, относят к задачам выпуклого программирования. Частными случаями таких задач являются задачи квадратичного и линейного программирования.
Если множество \(\Omega\) допустимых решений оказывается конечным множеством, то мы имеем задачу дискретного программирования, а если к тому же координаты этих точек — целые числа, то — задачу целочисленного программирования.