Формальная постановка задачи математического программирования (М П)
В рамках задач однокритериальной оптимизации наибольший интерес представляют методы, относящиеся к группе оптимального планирования, при ограниченных ресурсах. Данными методами учитываются разнообразные задачи создания новой техники. Множество задач в том или ином виде может быть сведено к постановке задачи математического программирования. С формальной точки зрения данная задача относится к задачам математического программирования (термин программирование, здесь понимается в смысле составления плана, либо программы действий).
Задача оптимизации состоит в выборе наилучших планов.
Не смотря на смысловое разнообразие задач, все они формально сводятся к одной общей постановке.
Найти значение переменных обращающих в максимум, либо минимум значение целевой функции:
min(max)←Z=f(x1,…,xn),
при условиях: gi(x1,…,xn)≤≥bi, i=1,m
Замечание: в случае, когда Z есть множество действительных чисел (используемых на практике), функция Z=f(x1,…,xn), называется скалярной. Условия gi(x1,…,xn)≤≥bi, i=1,m предполагающие, что в каждой из n строк может присутствовать одно из рассмотренных ограничений gi(x1,…,xn)≤≥bi, i=1,m, называются областью определения (U) задачи.
Функция Z называется целевой функцией, которая может представлять собой критерий оптимальности при синтезе какой-либо системы. Таким образом, целевая функция Z достигает экстремального значения в одной или нескольких точек U, которые требуется отыскать.
Обычно в постановке задачи выбора оптимального решения, вид функций Z и gi, известны, константы bi определены ,специально оговариваются ограничения, выраженные в требованиях к неотрицательности, либо к целочисленности переменных.
Краткая запись условия задачи математического программирования(М П) имеет вид:
X є U → max(min){Z=f(x)}
Два основных класса задач МП - это задачи линейного и нелинейного программирования. К задачам линейного программирования (ЛП) относятся те, в которых и целевая функция Z, и все функции gi линейны.
Задачи, в которых присутствуют какие-либо нелинейности, соответственно называются задачами нелинейного программирования.
В данном курсе лекций мы ограничимся рассмотрением задач линейного программирования, которые наиболее часто требуется решать в нашей предметной области знаний.
Линейное программирование. Постановка задачи.
Задача ЛП в общей постановке состоит в отыскании переменных x1,…,xn ,обращающих в
n
экстремум функцию: max←Z=Σ СjXj при ограничениях:
j=1
a11 x1 + a12 x2 +… + a1n xn ≤ b1
…
am1 x1 + am2 x2 +… + amn xn ≤ bm
Обычно, кроме того, на практике добавляют требования не отрицательности(" xj >0ij =1,n)
Пример постановки задачи: Ферма производит откорм скота. Допустим, что имеется 4 вида продуктов (П1,П2,П3,П4). Стоимость единицы каждого продукта (С1,С2,С3,С4). Из этих продуктов требуется составить пищевой рацион, который должен содержать: белков не менее b1 единиц, углеродов не менее b2 единиц, жиров не менее b3 единиц. Для продуктов (П1,П2,П3,П4) содержание белков, жиров и углеродов в единицах на единицу продукта приведено в таблице.
продукты | Элемент | ||
белки | углероды | жиры | |
П1 | а11 | а12 | а13 |
П2 | а21 | а22 | а23 |
П3 | а31 | а32 | а33 |
П4 | а41 | а42 | а43 |
Где аij некоторые числа и i – продукт j – элемент.
Задача: составить такой пищевой рацион, то есть определить количество продуктов (П1,П2,П3,П4) входящих в рацион, что при минимальной стоимости рациона, при условии выполнения ограничения белков, жиров и углеродов.
Z = C1x1 + C2x2 + C3x3 + C4x4 → min здесь мы за x1 … x2 обозначили количество продуктов которые должны входить в рацион.
a11 x1 + a12 x2 +a13 x3 + a14 x4 ≥ b1
a12 x1 + a22 x2 +a32 x3 + 242 x4 ≥ b2
a13 x1 + a23 x2 +a33 x3 + a43 x4 ≥ b3
"x ≥ 0
Замечание. Измените физический смысл параметров в данной задаче, и вы получите задачу оптимизации загрузки ресурсов (планирование загрузки) многомашинной вычислительной системы и множество иных задач из нашей предметной области.