Автор работы: Пользователь скрыл имя, 13 Июня 2011 в 15:48, курс лекций
Математическое программирование представляет собой математическую дисциплину, которая занимается изучением экстремальных задач и разработкой методов их решения.
МАТЕМАТИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ
1.
Задачи оптимизации
при ограничениях–неравенствах.
Математическое программирование представляет собой математическую дисциплину, которая занимается изучением экстремальных задач и разработкой методов их решения.
В общем виде математическая постановка экстремальной задачи состоит в определении наибольшего или наименьшего значения целевой функции F(х1, х2, …, хn) при условиях
gi(х1,
х2, …,
хn)≤b, i=1, 2, ..., m.
F(х1, х2, …, хn)→max
где F(х1, х2, …, хn), gi – некоторые заданные функции,
bi
– некоторые действительные числа.
Если все функции gi и F являются линейными относительно (х1, х2, …, хn), то соответствующая задача называется задачей линейного программирования (ЗЛП).
Если хотя бы одна из функций gi или F является нелинейной функцией относительно переменной, то задачи называются задачами нелинейного программирования.
Функция, максимум или минимум которой надо найти называется функцией цели.
Система уравнений или неравенств gi называется системой ограничений задачи.
Решением задач линейного программирования называется набор переменных, удовлетворяющих системе ограничений, при котором функция цели достигает экстремального значения.
- эта совокупность называется оптимальным планом.
Совокупность переменных, удовлетворяющих системе ограничений, при котором функция цели F≠Fmax, называется опорным (допустимым или промежуточным) планом.
Рассмотрим три формы задач линейного программирования.
1. Общей задачей линейного программирования называется задача определения экстремального значения цели, при условии, что в систему ограничений входят как неравенства, так и равенства.
2. Стандартной (симметричной) называется задача линейного программирования, в которой находится оптимальное значение функции цели при условии, что система ограничений состоит из неравенств.
3. Канонической (основной) задачей линейного программирования называется задача отыскания максимального значения функции F, при условии, что система ограничений состоит только из равенств.
Эти
три формы задачи эквивалентны, т.е.
с помощью несложных
2.
Экономические примеры
задач линейного
программирования.
1. Задачи планирования производства.
Пусть предприятию необходимо спланировать производственную деятельность на некоторый период времени. Известны виды и количества ресурсов, которыми оно располагает, и перечень товаров, которые оно может производить без дополнительных капиталовложений. Известна также структура затрат и доходов, т.е. коэффициенты удельных затрат на единицу каждого вида товара, а также прибыль от реализации одного изделия каждого вида. Пусть предприятие будет выпускать n различных товаров и имеет m видов ресурсов.
Введем обозначения:
aij – расход i–го ресурса на производство j–го товара
cj – прибыль, полученная от реализации единицы продукции j–го вида
- план производства, где xj - количество продукции j–го вида, предусмотренное планом (j=1,2,...,n);
cjxj – прибыль, получаемая при выпуске xj единиц продукции.
Общая прибыль предприятия от реализации всех видов продукции может быть выражена суммой таких произведений:
и является функцией цели данной задачи.
aijxj – количество ресурса j-го вида, затраченного на производство продукции j-го вида в количестве xj.
Суммарный расход i–го ресурса на производство всех видов продукции не должен превышать суммарный запас этого ресурса.
Т.к. переменные xi- это количество выпускаемой продукции, то должно выполняться условие неотрицательности переменных.
В результате получаем следующую математическую модель задачи:
(1)
Задача
о диете.
Требуется выделить самый дешевый пищевой рацион, содержащий необходимое количество указанных заранее питательных веществ.
Известен перечень биологических питательных веществ и их минимальная суточная норма, задан набор продуктов, из которых можно составить рацион питания.
Имеются нормы содержания питательных веществ в единице каждого продукта, известна цена каждого продукта. Допустим можно использовать n видов продуктов, содержащих m различных питательных веществ.
Введем обозначения:
bi – суточная норма i-го питательного вещества;
aij – содержание i-го питательного вещества в единице j-го продукта;
cj – стоимость единицы j-го продукта;
- общий рацион.
Функция цели показывает общую стоимость рациона
aijxj – потребление i-го питательного вещества в j-ом продукте.
Суммарное потребление i–го питательного вещества (во всех продуктах) не должно быть меньше биологической нормы bi.
Т.к. xj – количество продукции каждого вида, то должно выполняться условие неотрицательности переменной. Получим следующую математическую модель задачи:
(2)
Транспортная
задача.
В m пунктах производится однородный продукт ai, i=1,2,...,m, в n пунктах имеется потребность в этом продукте в количестве bj, j=1,2,...,n.
Известна стоимость перевозки единицы продукта из каждого пункта производства в каждый пункт потребления. Предполагается, что суммарное количество выпущенного продукта в точности равно суммарной потребности в нем.
Требуется составить наиболее дешевый план перевозок от производителей к потребителям, удовлетворяющий следующим условиям:
Введем обозначение матриц перевозок и тарифов:
, где X – матрица перевозок
xij - количество груза, перевезенного от поставщика к потребителю.
Матрица тарифов:
cij – тариф на перевозку груза от i-го поставщика к j-му потребителю.
Функция цели выражает полную стоимость перевозок.
Условия:
Имеем следующую математическую модель задачи:
Модель
задачи, в которой сумма запасов
равна сумме потребностей, называется
закрытой.
3.
Методы решения задач
линейного программирования.
3.1.
Графический метод.
Пусть дана математическая модель задачи линейного программирования в виде (1). Допустимый план задачи можно представить как точку в пространстве Rn. Д – область допустимых планов (Д).
Множество оптимальных планов образует в пространстве Rn область Д0 – область оптимального планирования.
Множество точек пространства Rn, координаты которых удовлетворяют линейному уравнению
называется гиперплоскостью.
Гиперплоскость делит все пространство на две полуплоскости:
- положительная Н+:
- отрицательная Н-:
Линейные функции цели в гиперпространстве соответствуют гиперплоскости.
Уравнение определяет гиперплоскость, которая называется уровнем функции цели.
Если , то говорят о нулевом уровне функции цели.
Уровень функции цели возрастает в направлении градиента этой функции или нормали функции цели:
Задачи линейного программирования имеют простую геометрическую интерпретацию, если задача записана в стандартной форме и имеет не более 2-х переменных, или задача записана в канонической форме и содержит не более 2-х свободных переменных.
Найдем решение задачи:
(1)
(2)
(3)
Каждое из неравенств (2), (3) геометрически определяет полуплоскость с граничными прямыми
(4) .
В том случае, если система неравенств (2),(3) совместна, область ее решения есть множество точек, принадлежащих всем указанным плоскостям. Т.к. множество точек пересечения данных полуплоскостей выпуклое, то областью допустимых решений задачи (1)-(3) является выпуклое множество, которое называется многоугольником решений (т.е. область решения – это пересечение данных полуплоскостей), а при m≥3 – многогранником решений.
Стороны этого многогранника лежат на прямых (4).
Для определения Fmax надо найти вершину многоугольника (многогранника), в которой функция цели максимальная. Для этого строится линия уровня функции цели