- •Введение
- •Часть 1. Линейное программирование
- •1.1. Построение линейных экономико-математических моделей
- •Примеры задач
- •1.2. Формы записи задач линейного программирования
- •1.3. Свойства решений задач линейного программирования
- •1.4. Геометрический смысл и графический метод решения задач линейного программирования
- •1.5. Симплексный метод решения задач линейного программирования
- •1.6. Симплексный метод с искусственым базисом
- •1.7. Элементы теории двойственности
- •А. Симметричная двойственная пара
- •В. Несимметричная двойственная пара
- •1.8. Основные теоремы двойственности
- •1.9. Транспортная задача
- •Алгоритм метода потенциалов
- •1.10. Задача об оптимальных назначениях
- •Часть 2. Нелинейное программирование
- •2.1. Дробно-линейное программирование
- •2.1.1. Постановка задачи
- •Общую задачу дробно-линейного программирования (в дальнейшем длп) обычно записывают в виде:
- •2.1.2. Графическое решение задач длп
- •2.1.3. Симплекс-метод в длп
- •2.2. Общая задача нелинейного программирования. Классификация вычислительных методов
- •Условия (1) и (2), а также
- •По постановке задачи.
- •2. По характерным чертам алгоритмов.
- •2.3. Эффективные методы одномерной минимизации
- •2.4. Графический метод решения задач нелинейного программирования
- •2.5. Методы минимизации для задач без ограничений, использующие производные
- •2.6. Методы минимизации, не использующие производные
- •2.7. Методы решения задач нелинейного программирования с ограничениями
- •2.7.1. Методы линейной аппроксимации
- •2.7.2. Понятие о методах штрафных функций
- •Список использованной литературы:
- •Содержание
- •Часть 1. Линейное программирование 3
- •Часть 2. Нелинейное программирование 47
Часть 1. Линейное программирование
1.1. Построение линейных экономико-математических моделей
Построение математической модели для экономической или любой другой оптимизационной задачи состоит из следующих основных этапов:
-
Ввести необходимые по смыслу постоянные и переменные величины.
-
Четко определить целевую функцию.
-
Записать в виде уравнений и (или) неравенств все ограничения и соотношения, характеризующие данную задачу.
Примеры задач
А. Задача об оптимальном плане выпуска продукции
Пусть предприятие выпускает n видов продукции, используя для этого m видов ресурсов. Даны величины aij – расход i-го ресурса на единицу j-го вида продукции, которые обычно записываются в виде матрицы А(m x n). Ресурсы ограничены запасами: . Известна прибыль от реализации j-го вида продукции: . Даны нижний и верхний – допустимые объемы выпуска j-го вида продукции. Требуется найти план выпуска каждого вида продукции, максимизирующий суммарную прибыль предприятия.
Вводим независимые переменные: – планируемые объемы выпуска каждого вида продукции. Тогда математическая модель приобретает следующий вид:
или в векторно–матричной форме:
Пример 1.1.1. На городской рынок ежедневно необходимо завезти не менее 16 т картофеля из трех хозяйств по цене, соответственно, 600, 700 и 650 грн. за тонну. Чтобы картофель был доставлен своевременно, необходимо в каждом хозяйстве на погрузку затратить не более чем 30 мин. Известно, что суточные запасы хозяйств составляют 12, 10 и 7 т, а на погрузку 1 т в каждом из них тратится 3, 5 и 4 мин. Определить, сколько картофеля надо завезти на рынок из каждого хозяйства, чтобы суммарная закупочная цена была минимальной.
Решение: Введем 3 независимые переменные: х1, х2, х3, где xj – количество тонн картофеля, планируемое к закупке в j-ом хозяйстве. Тогда целевая функция – суммарная закупочная цена примет вид:
.
Ограничения по запасам картофеля и времени на загрузку запишутся в виде:
Кроме того, очевидны условия неотрицательности: x1 0, x2 0, x3 0. Понятно, что основные ограничения можно упростить, оставляя самые «сильные» неравенства: .
Замечание: Несмотря на то, что в основной постановке задачи об оптимальном плане выпуска продукции шла речь о максимизации целевой функции, в данном примере мы хотим минимизировать Z, так как минимум затрат эквивалентен максимуму прибыли.
В. Задача о смесях
Данная задача возникает, когда требуется из имеющихся видов сырья получить смесь, удовлетворяющую заданным условиям, причем стоимость смеси должна быть минимальной.
Итак, дано: n видов сырья, каждый из них содержит m видов интересующих нас элементов (веществ). Пусть aij – количество i-го элемента в единице j-го вида сырья, cj – стоимость единицы j-го вида сырья, dj – запас j-го вида сырья (j = 1, ... n). Обозначим через а’i и a”i соответственно наименьшее и наибольшее допустимые количества i-го элемента в смеси (i = 1, … m). Введем независимые переменные (x1, x2, …, xn) = – количество сырья j-го вида, планируемое использовать для составления смеси. Тогда соответствующая математическая модель имеет вид:
Модель содержит всего 2m основных ограничений-неравенств и n двухсторонних ограничений на переменные.
Пример 1.1.2. Экономически выгодный откорм животных предполагает, что в их дневном рационе будет кормовых единиц не менее 100, белка – не менее 2 кг, кальция – не менее 300 г, фосфора – не менее 150 г. Рацион состоит из 3-х видов кормов: А, В, С. В таблице приведены данные о концентрации необходимых веществ в кормах, а также цены кормов.
Вид корма |
К-во кормовых единиц (кг) |
Концентрация веществ в кормах (г/кг): |
Цена корма (грн./кг) |
||
белок |
кальций |
фосфор |
|||
А |
0,9 |
80 |
1,4 |
3 |
0,5 |
В |
0,8 |
70 |
1,8 |
4 |
0,7 |
С |
0,6 |
90 |
1,2 |
6 |
0,4 |
Какое количество каждого вида корма следует закупить, чтобы суммарные затраты на откорм животных были минимальны?
Решение. Введем 3 независимые переменные: x1, x2, x3, где xj – количество кг каждого вида корма, планируемое для составления рациона. Тогда целевая функция (суммарная закупочная цена) примет вид:
Ограничения строятся из минимальных требований на дневной рацион и условий неотрицательности:
Понятно, что при записи ограничений данные приведены к единым единицам измерения (кг).
С. Задача о раскрое
Сущность задачи – определение такого плана раскроя, при котором заготовки выпускаются в заданном ассортименте, а отходы (по длине, площади или массе) сводятся к минимуму.
Дано: На складе имеются заготовки с показателем s (длина, площадь и т. п.). Их надо разрезать на части с показателями s1, s2, …, sm, причем требования на количество соответствующих частей заданы: b1, b2, …, bm. Надо составить план раскроя, минимизирующий суммарные отходы материала.
Пусть известны n технологий раскроя. Обозначим через xj количество заготовок, разрезаемых по j-ой технологии (j = 1, 2, …., n). Известны также показатели отходов для каждой технологии и количества требуемых частей каждого вида aij(i = 1, …, m, j = 1, …, n). Соответствующая математическая модель:
;
Мы получили задачу линейного целочисленного программирования.
Пример 1.1.3. На фабрике имеются рулоны ткани длиной 15 м. В магазин надо поставить отрезы длиной 5 м в количестве 22 шт., длиной 4 м в количестве 30 шт. и длиной 3 м в количестве 20 шт. Составить оптимальный план раскроя ткани.
Решение. В задачах подобного типа требуется определенная подготовка данных. Именно, выпишем все возможные технологии раскроя и занесем полученные результаты в таблицу:
№ технологии |
Отрезов 5 м |
Отрезов 4 м |
Отрезов 3 м |
Отходы |
1 |
3 |
– |
– |
0 |
2 |
2 |
1 |
– |
1 |
3 |
2 |
– |
1 |
2 |
4 |
1 |
2 |
– |
2 |
5 |
1 |
– |
3 |
1 |
6 |
1 |
1 |
2 |
0 |
7 |
– |
3 |
1 |
0 |
8 |
– |
2 |
2 |
1 |
9 |
– |
– |
5 |
0 |
Понятно, что здесь мы рассматриваем самые «экономичные» в смысле минимума отходов технологии.
Введем независимые переменные: xj -количество рулонов, разрезаемых по j–ой технологии (j = 1, …, 9). Тогда целевая функция – суммарная величина отходов примет вид:
.
Ограничения составляются из условий выполнения плана по номенклатуре:
Требуется еще добавить условия неотрицательности и целочисленности:
xj ≥ 0, целые, j = 1, …, n.
D. Задача о назначениях
Имеются n работников (механизмов) и n работ, на которые надо назначить исполнителей так, чтобы каждый работник выполнял одну и только одну работу, причем при заданной производительности труда суммарный эффект был бы максимален. Пусть cij – производительность i-го работника при выполнении j-ой работы (i, j = 1, …, n). Введем переменные xij(i, j = 1, …, n) так:
.
Тогда соответствующая математическая модель имеет вид:
Соответствующий набор {} = – оптимальный план назначений. Здесь мы имеем задачу линейного булевского программирования. (Пример построения и решения подобной задачи будет приведен в разделе 1.10).
Е. Планирование с помощью производственной функции
Пусть выпуск продукции на предприятии зависит от нескольких производственных факторов: (x1, x2, …, xn) и зависимость такова:
,
где aj(j = 1, …, n) известны из эмпирических соображений. Пусть даны затраты cj, связанные с использованием единицы j-го фактора, и предельные суммарные затраты С. Требуется максимизировать объем выпуска. Имеем математическую модель:
,
Эквивалентная задача линейного программирования имеет вид:
где dj – затраты, связанные с ln xj (если их можно вычислить).