Скачать

Линейное и динамическое программирование

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

Задача линейного оптимального планирования - один из важнейших математических инструментов, используемых в экономике. Рассмотрим предприятие, которое из m видов ресурсов производит n видов продукции.

Примем следующие обозначения:

i - номер группы ресурса (i=1,2, ..., m);

j -номер вида продукции (j=1,2, ..., n);

aij - количество единиц i-го ресурса, расходуемое на производство одной единицы j-го вида продукции;

bij - запасы i-ro ресурса ;

xi планируемое количество единиц j-й продукции;

cj -прибыли от реализации одной единицы j-го вида продукции;

X=(x1, x2,…, xn) - искомый план производства, называется допустимым если имеющихся ресурсов достаточно. называется допустимым если имеющихся ресурсов достаточно.

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

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

48 30 29 10 удельные прибыли

нормы расхода 3 2 4 3 198

2 3 1 2 96

6 5 1 0 228

запасы ресурсов

Обозначим х1, х2, х3, х4 - число единиц 1-й, 2-й, 3-й, 4-й продукции, которые планируем произвести. При этом можно использовать только имеющиеся запасы ресурсов. Целью является получение максимальной прибыли. Получаем следующую математическую модель оптимального планирования:

L(x1,x2,x3,x4)=48xl+30x2+29x3+10x4 àmax

1+2х2+4х3+3х4≤198

1+3х2+1х3+2х4≤96

1+5х2+1х3+0х4≤228

xj≥0, jєN4

Для решения полученной задачи в каждое неравенство добавим неотрицательную переменную. После этого неравенства превратятся в равенства, в силу этого добавляемые переменные называются базисными. Получается задача ЛП на максимум, все переменные неотрицательны, все ограничения есть равенства и есть базисный набор переменных: х5 - в 1-м равенстве, х6 - во 2-м и х7 - в 3-м. Теперь можно запускать симплекс-метод.

L(x1,x2,x3,x4)=48xl+30x2+29x3+10x4 àmax

1+2х2+4х3+3х4+x5 =198

1+3х23+2х4 +x6 =96

1+5х23 +x7=228

xj≥0, jєN7

Таблица N 1

CBH48302910000

x1

x2

x3

x4

x5

x6

x7

0

x5

19832

4

3100
0

x6

962312010
0

x7

2286510001
0-48-30-29-10000

Если все оценочные коэффициенты (серый цвет) неотрицательны, то получено оптимальное решение: базисные переменные равны свободным членам, остальные равны 0. Если же есть отрицательный оценочный коэффициент, то находят самый малый из них. Если в столбце коэффициентов над ним нет положительных, то задача не имеет решения. Задача оптимального планирования не может быть таковой, поэтому ищут минимальное отношение свободных членов столбца Н к положительным коэффициентам указанного xj. В пересечении строки и столбца получаем разрешающий элемент и затем строим новую таблицу.

Таблица N 2

CBH48302910000

x1

x2

x3

x4

x5

x6

x7

0

х5

840

31/2

310

-3/6

0

x6

200

11/3

2/3

201

-2/6

48

х1

381

5/6

1/6

000

1/6

1824010-21-1000-8

Таблица N 3

CBH48302910000

x1

x2

x3

x4

x5

x6

x7

29

х3

240

-1/7

1

6/7

2/7

0

-1/7

0

x6

40

13/7

0

13/7

-4/21

1

-5/21

48

х1

341

6/7

0

-1/7

-1/21

0

4/21

23280708605

Оптимальное решение (производственная программа): Xоpt=(34; 0; 22; 0); максимум целевой функции равен 2328.

Значение переменной с номером i большим 4-х есть остаток (i-4)-ro ресурса. 'Гак как все оценочные коэффициенты неотрицательны, то получено оптимальное решение: базисные переменные равны свободным членам, остальные равны 0.

Следует обратить внимание на экономический смысл элементов послед­ней строки последней симплексной таблицы. Например, коэффициент Δ2=7 при переменной х2 показывает, что если произвести одну единицу продукции второго вида (она не входит в оптимальную производственную программу), то прибыль уменьшится на 7 единиц.

Заметим, что в рассматриваемом примере ли­нейной производственной задачи возможна самопроверка результата.

Воспользуемся тем, что в оптимальной производственной программе х2=0, х4=0. Предположим, что вторую и четвертую продукции мы не намеревались выпускать с самого начала. Рассмотрим задачу с оставшимися двумя перемен­ными, сохранив их нумерацию. Математическая модель задачи будет выглядеть следующим образом:

L(x1,x3)=48xl+29x3 àmax

1+4х3≤198

1+ х3 ≤ 96

1+ х3≤228

x1≥0, x3≥0

Задачу линейного программирования с двумя переменными можно решить графически. Возьмем на плоскости систему координат: ось OX3 направим горизонтально и вправо, ось OХ1 -вертикально и вверх. Каждое ограничение задачи, раз оно линейное нестрогое неравенство, графически изображается полуплоскостью, граничная прямая которой соответствует уже не неравенству, а равенству. Допустимое множество задачи является пересечением всех этих полуплоскостей и есть выпуклый многоугольник. Вторая из двух основных теорем линейного программирования гласит: Если экстремум целевой функции достигается на допустимом множестве, то функция принимает его в какой-то вершине многоугольника-допустимого множества. Исходя из этой теоремы, найти искомый экстремум можно просто перебрав вершины многоугольника и определив ту, в которой значение функции экстремально. Чаще делают по-другому: строят линию уровня целевой функции и двигают ее параллельно в направлении экстремума, стараясь уловить последнюю точку пересечения линии с допустимым множеством.


Двойственная задача линейного программирования

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

1)меняется тип экстремума целевой функции (mах на min и наоборот);

2)коэффициенты целевой функции одной задачи становятся свободными членами другой задачи;

3)свободные члены одной задачи становятся коэффициентами целевой функции двойственной задачи;

4)тип неравенств меняется (≤ на ≥ и наоборот);

5) каждый столбец одной задачи порождает строку ограничений другой задачи и наоборот. В матрично-векторном виде обе задачи выглядят так:

исходная задача двойственная задача

L=(c,x)àmax Z=(b,y)àmin

Ax≤b, x≥0 Ya≥c, y≥0,

L(x1,x2,x3,x4)=48xl+30x2+29x3+10x4 àmax Z(y1,y2,y3,y4)=198yl+96y2+228y3 à min

1+2х2+4х3+3х4≤198 3y1+2y2+6y3≥48

1+3х2+1х3+2х4≤96 2y1+3y2+5y3≥30

1+5х2+1х3+0х4≤228 4y1+ y2 + y3≥29

xj≥0, jєN4 3y1+2y2≥10

yj≥0, jєN3

Решение полученной задачи легко найти с помощью второй основной теоремы двойственности, согласно которой для оптимальных решенийX(x1, x2, x3, x4) и Y(y1, y2, y3) пары двойственных задач необходимо и достаточно выполнение условий:

x1(3y1+2y2+6y3-48)=0 y1 (3х1+2х2+4х3+3х4)-198=0

x2(2y1+3y2+5y3-30)=0 y2 (2х1+3х2+1х3+2х4)-96=0

x3(4y1+1y2+1y3-29)=0 y3 (6х1+5х2+1х3+0х4)-228=0

x4(3y1+2y2+0y3-10)=0

В решении исходной задачи х1>0, х3>0, поэтому

3y1+2y2+6y3-48=0

4y1+1y2+1y3-29=0

Учитывая, что второй ресурс был избыточным и, согласно теореме двойственности его оценка равна нулю – y2=0, то приходим к системе:

3y1+6y3-48=0

4y1+1y3-29=0

из которой следует, что y1=6; y3=5.

Таким образом получили двойственные оценки ресурсов: y1=6; y2=0; y3=5; общая оценка всех ресурсов Z=198y1+228y3=2328.

Заметим, что полученное решение содержалось в последней строке последней симплексной таблицы исходной задачи

Таблица N 3

CBH48302910000

x1

x2

x3

x4

x5

x6

x7

29

х3

240

-1/7

1

6/7

2/7

0

-1/7

0

x6

40

13/7

0

13/7

-4/21

1

-5/21

48

х1

341

6/7

0

-1/7

-1/21

0

4/21

23280708605

Решение одной из пары двойственных задач можно найти, зная только ответ к другой задаче и пользуясь 2-й теоремой двойственности: если i-e ограничение одной из пары двойственных задач на компонентах оптимального решения есть строгое неравенство, то оптимальное значение i-й переменной другой задачи равно 0, или, что то же самое - если оптимальное значение j-й переменной одной задачи строго положительно, то j-e ограничение другой из пары двойственных задач на компонентах оптимального решения есть равенство.

Важен экономический смысл двойственных оценок. Двойственная оценка, например, третьего ресурса у3=5 показывает, что добавление одной единицы третьего ресурса обеспечит прирост прибыли на 5 единиц.


Расшивка "узких мест" производства

Таблица N 3

CBH48302910000

x1

x2

x3

x4

x5

x6

x7

29

х3

240

-1/7

1

6/7

2/7

0

-1/7

0

x6

40

13/7

0

13/7

-4/21

1

-5/21

48

х1

341

6/7

0

-1/7

-1/21

0

4/21

23280708605

При выполнении оптимальной производственной программы первый и третий ресурсы используются полностью, тем самым они образуют "узкие места" производства. Будем их заказывать дополнительно. Пусть Т=( t1,t2,t3) - вектор дополнительных объемов ресурсов. Так как мы будем использовать найденные двойственные оценки ресурсов, то должно выполняться условие H+Q-lТ≥0, где Н - значения базисных переменных в последней симплексной таблице, а Q-1 - обращенный базис, который образуют столбцы при балансовых переменных в этой таблице. Задача состоит в том, чтобы найти вектор Т, максимизирующий суммарный прирост прибыли W=6t1+5 t3 при условии сохранения двойственных оценок ресурсов (и, следовательно, ассортимента выпускаемой продукции), предполагая, что можно получить дополнительно не более 1/3 первоначального объема ресурсов каждого вида.

24 2/7 0 -1/7 t1 0

4 + -4/21 1 -5/21 0 ≥ 0

34 -1/21 0 4/21 t3 0

t1 198

0 ≤ 1/3 96

t3 228

t1≥0, t3≥0.

W=6t1+5t3 àmax

-2/7 t1 + 1/7 t3 ≤ 24

4/21 t1 + 5/21 t3 ≤ 4

1/21 t1 - 4/21 t3 ≤ 34

t1198/3, t3228/3.

t1≥0, t3≥0.

Как видно, после графического решения (График 2) программа расшивки приобретает вид:

t1=21, t2=0, t3=0

С новым количеством ресурсов: 198+21 219

b' = 96+0 = 96

228+0 228

у предприятия будет новая производственная программа.

Найдем h'=Q-1 b'

5/28 0 -1/7 219 30 àx3

-4/7 1 -1/7 96 = 0 àx6

-3/28 0 2/7 228 33 àx1

Теперь новая производственная программа имеет вид: X'оpt=(33;0;30;0). При этом второй ресурс был использован полностью.

219

При наличии ресурсов b' = 96 производство наиболее выгодно, так как

228

достигается max прибыль с использованием всех ресурсов. Также обратим внимание на то, что производство продукции 1–го вида при заказе дополнительных ресурсов необходимо будет уменьшить на 15 единиц, а производство продукции 3–го вида – увеличить на единицу.

ΔLmax=(Y,t)=6·21=126, где Y=(6;0;5); t(21;0;0)

L'max= ΔLmax+ Lmax=126+2328=2454.

Этот результат можно проверить, подставив значения х1 и х3 в первоначальную целевую функцию: L'max=48xl+30x2+29x3+10x4=31·37+41·21=1147+861=2454.

Транспортная задача

Транспортная задача формулируется следующим образом. Однородный продукт, сосредоточенный в т пунктах производства (хранения) в количествах a1, а2,..., аm единиц, необходимо распределить между п пунктами потребления, которым необходимо соответственно b1, b2,,…, bn единиц. Стоимость перевозки единицы продукта из i-ro пункта отправления в j-й пункт назначения равна cij и известна для всех маршрутов. Необходимо составить план перевозок, при кото­ром запросы всех пунктов потребления были бы удовлетворены за счет имею­щихся продуктов в пунктах производства и общие транспортные расходы по доставке продуктов были минимальными.

Обозначим через xij количество груза, планируемого к перевозке от i-ro поставщика j-му потребителю. При наличии баланса производства и потребле­ния

математическая модель транспортной задачи будет выглядеть так:

найти план перевозок

X=(xij), xij³0, iÎNm, jÎNn

минимизирующий общую стоимость всех перевозок

при условии, что из любого пункта производства вывозится весь продукт

, iÎNm

и любому потребителю доставляется необходимое количество груза

, jÎNn

Для решения транспортной задачи чаще всего применяется метод потен­циалов. Пусть исходные данные задачи имеют вид

А(а123)=(40;45;70); В(b1,b2,b3)=(48;30;29;40); 3 6 4 3

С= 2 3 1 3

6 5 1 4

Общий объем производства Sai=40+45+70=155 больше, чем требуется всем потребителям Sbj=48+30+29+40=147, т.е. имеем открытую модель транспортной задачи. Для превращения ее в закрытую вводим фиктивный пункт потребления с объемом потребления 155-147=8 единиц, причем тари­фы на перевозку в этот пункт условимся считать равными нулю, помня, что пе­ременные, добавляемые к левым частям неравенств для превращения их в уравнения, входят в функцию цели с нулевыми коэффициентами.

Первое базисное допустимое решение легко построить по правилу "севе­ро-западного угла".

Таблица 1

Потребл

Произв

b1=48

b2=30

b3=29

b4=40

b5=8

a1=40

403

6

4

* 3

0

p1=0

a2=45

8 2

303

71

3

0

p2=-1

a3=70

6

5

221

404

80

p3=-1

q1=3

q2=4

q3=2

q4=5

q5=1