Скачиваний:
211
Добавлен:
25.05.2014
Размер:
492.03 Кб
Скачать

Линейное программирование

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

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

или в так называемой канонической форме, к которой можно привести все три указанных случая

Требуется найти неотрицательные числа xj(j=1,2,...,n), которые минимизируют (или максимизируют) линейную форму

Неотрицательность искомых чисел записывается так

Таким образом, здесь представлена общая задача матеметического программирования с теми оговорками, что как ограниченния, так и целевая функция - линейны, а искомые переменные - неотрицательны. Обозначения можно трактовать следующим образом: bi- количество ресурса вида i; m - количество видов этих ресурсов; aij- норма расхода ресурса вида i на единицу продукции вида j; xj - количество продукции вида j, причем таких видов - n; cj - доход (или другой выигрыш) от единицы этой продукции, а в случае задачи на минимум - затраты на единицу продукции; нумерация ресурсов разделена на три части: от 1 до m1,от m1+1 до m2,и от m2+1до m в зависимости от того, какие ставятся ограничения на расходование этих ресурсов: в первом случае - “не больше”, во втором - “столько же”, в третьем - “не меньше”; Z - в случае максимизации, например, объем продукции или дохода, в случае же минимизации - себестоимость, расход сырья.

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

Квадратичное программирование

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

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

Выпуклое программирование

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

Общая задача выпуклого программирования состоит в отыскании такого вектора x (т.е. такой точки выпуклого допустимого множества), который доставляет максимум выпуклой функции f(x) или максимум вогнутой функции g(x). Для второго случая (выпуклая область допустимых значений и максимум вогнутой функции) ряд авторов предпочитают термин “вогнутое программирование”. Выпуклость (вогнутость) важна тем, что гарантирует нахождение оптимального решения задачи, так как соответственно локальные и глобальный экстремумы здесь обязательно совпадают. Критериями оптимальности в первом случае могут быть, например, издержки при различных сочетаниях факторов производства, во втором случае - величина прибыли при этих сочетаниях. Как видим, есть большое сходство между задачами выпуклого и линейного программирования (последнее можно рассматривать как частный случай первого). Но нелинейность зависимостей делает задачу сложней.