Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Динамическое программирование




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

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

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

Теперь представим себе, что возникла новая ситуация. Знакомый предприниматель П (Петров), занимающийся производством каких-то других видов продукции, но с использованием трех таких же видов ресурсов, какие имеются у нас, предлагает нам "уступить" по определенным ценам все имеющиеся у нас ресурсы и обещает платить у1 рублей за каждую единицу первого ресурса, у2 руб – второго, у3 руб – третьего. Возникает вопрос: при каких ценах у1, у2, у3 мы можем согласиться с предложением П.

Величины у1, у2, у3 принято называть расчетными или двойственными оценками ресурсов. Они прямо зависят от условий, в которых действует наше предприятие.

Напомним, что в нашей задаче технологическая матрица А, вектор объемов ресурсов В и вектор удельной прибыли С имели вид

Для производства единицы продукции первого вида мы должны затратить, как видно из матрицы А, 4 единицы ресурса первого вида, 2 единицы ресурса второго вида и 3 единицы третьего (элементы первого столбца матрицы). В ценах у1, у2, у3 наши затраты составят 4у1 + 2у2 +3у3, т.е. столько заплатит предприниматель П за все ресурсы, идущие на производство единицы первой продукции. На рынке за единицу первой продукции мы получили бы прибыль 36 руб. Следовательно, мы можем согласиться с предложением П только в том случае, если он заплатит не меньше

1 + 2у2 + 3у3 ³ 36.

Аналогично, во втором столбце матрицы А указаны затраты различных ресурсов на производство единицы продукции второго вида. В ценах П эти затраты составят 3у1 + 5у2 + у3, а на рынке за единицу продукции второго вида мы получили бы прибыль 14 рублей. Поэтому перед предпринимателем П мы ставим условие

1 + 5у2 + у3 ³ 14

и т.д. по всем видам продукции.

Учтем, что за все имеющиеся у нас ресурсы нам должны заплатить 208у1 + 107у2 + 181у3 рублей. При поставленных нами условиях предприниматель П будет искать такие значения величин у1, у2, у3, чтобы эта сумма была как можно меньше. Подчеркнем, что здесь речь идет не о ценах, по которым мы когда-то приобретали эти ресурсы, а о ценах, которые существенно зависят от применяемых нами технологий, объемов ресурсов и от ситуации на рынке.

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

У=(у1, y2, y3)

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

 

F(У) = 208y1 + 107y2 +181y3 , (1)

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

4y1 + 2y2 + 3y3 ³ 36,

 
3y1+5y2 + y3 ³ 14, (2)

4y1 + 2y3 ³ 25,

5y1 + 2y2 + 5y3 ³ 50,

причем оценки ресурсов не могут быть отрицательными

y1 0, y2 0, y3 0. (3)

Решение полученной задачи легко найти с помощью второй основной теоремы двойственности, согласно которой для оптимальности допустимых решений Х=(х1, х2, х3, х4) и У=(y1, y2, y3) пары двойственных задач необходимо и достаточно выполнение условий

x1 (4y1 + 2y2 + 3y3 - 36) = 0; y1 (4x1 +3x2 + 4x3 + 5x4 - 208) = 0;

x2 (3y1 + 5y2 + y3 - 14) = 0; y2 (2x1 +5x2 + 2x4 - 107) = 0;

x3 (4y1 + 2y3 - 25) = 0; y3 (3x1 + x2 + 2x3 + 5x4 - 181) = 0.

x4(5y1 + 2y2 + 5y3 - 50) = 0;

 

Ранее было найдено, что в решении исходной задачи х1>0, x4>0. Поэтому

4y1 + 2y2 + 3y3 - 36 = 0,

5y1 + 2y2 + 5y3 - 50 = 0.

Если же учесть, что второй ресурс был избыточным (т.к. x6=13), то у2=0, и мы приходим к системе уравнений

4y1 + 3y3 - 36 = 0,

5y1 + 5y3 - 50 = 0,

откуда следует

у1=6, у3=4.

Таким образом, получили двойственные оценки ресурсов

Уопт = (6, 0, 4), (4)

причем общая (минимальная) оценка всех ресурсов равна

Fmin = 1972.

Заметим, что решение (4) – это три последних компоненты в последней строке последней симплексной таблицы при решении исходной задачи (см. раздел 4). Важен экономический смысл двойственных оценок. Например, двойственная оценка третьего ресурса у3=4 показывает, что добавление одной единицы третьего ресурса обеспечит прирост прибыли в 4 единицы.

6. Задача о "расшивке узких мест производства"

При выполнении оптимальной производственной программы первый и третий ресурсы используются полностью, т.е. образуют ²узкие места производства². Будем их заказывать дополнительно. Пусть T=(t1,t2,t3)- вектор дополнительных объемов ресурсов. Так как мы будем использовать найденные двойственные оценки ресурсов, то должно выполняться условие

H + Q-1T .

Задача состоит в том, чтобы найти вектор

T (t1, 0, t3),

максимизирующий суммарный прирост прибыли

W = 6t1 + 4t3 ® max (1)

при условии сохранения двойственных оценок ресурсов (и, следовательно, структуры производственной программы)

 

(2)
,

 

предполагая, что можно надеяться получить дополнительно не более 1/3 первоначального объема ресурса каждого вида

 

, (3)

 

причем по смыслу задачи

t1 0, t3 0. (4)

 

Переписав неравенства (2) и (3) в виде:

   
- t1 + t3 ≤ 27,

t1 - t3 ≤ 13, (5)

3 t1 - 4 t3 ≤ 20;

5 5

 

t1≤ 208/3, (6)

t3≤ 181/3

 

приходим к задаче ЛП: максимизировать (1) при условиях (5), (6) и (4).

Эта задача решается графически (см. рис. 1). Решению соответствует т.А (; ).

Программа ²расшивки² имеет вид

Tопт = (; 0; );

Wmax = и прирост прибыли составит 519 .

 

 

Рис. 1

 

Сводка результатов приведена в следующей таблице

Таблица 1

сj         B x4+i yi ti
                46 5/12
aij                
                60 1/3
xj               519 2/3
Dj                

 

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

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

, (1)

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

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

Х = (хij), i = 1,m; j = 1,n;

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

; (2)

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

, (3)

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

; (4)

причем по смыслу задачи

х11 > 0,...., xmn > 0. (5)

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

А=(а1, а2, а3) = (54; 60; 63); В=(b1, b2, b3, b4) = (41; 50; 44; 30);

С3,4= .

Общий объем производства å аi = 54+60+63 = 177 больше, чем требуется всем потребителям å bi = 41+50+44+30 = 165, т.е. имеем открытую модель транспортной задачи. Для превращения ее в закрытую вводим фиктивный пункт потребления с объемом потребления 177-165 = 12 единиц, причем тарифы на перевозку в этот пункт условимся считать равными нулю, помня, что переменные, добавляемые к левым частям неравенств для превращения их в уравнения, входят в функцию цели с нулевыми коэффициентами.

Первое базисное допустимое решение легко построить по правилу ²северо-западного угла², которое состоит в том, чтобы на каждом этапе мы максимально загружаем «северо-западную клеточку»:

Потребление bj b1 =41 b2 =50 b3 =44 b4 =30 b5 =12  
Производство ai            
а1 =54           p1 =0
a2 =60 l 3         p2 = 2
a3 =63 *         p3 = 6
  q1 = 1 q2 = 4 q3 = 0 q4 = 1 q5 = -6  

 

Следует иметь в виду, что по любой транспортной таблице можно восстановить соответствующий предпочитаемый эквивалент системы уравнений (3), (4), а в таблице записаны лишь правые части уравнений, причем номер клетки показывает, какая неизвестная в соответствующем уравнении является базисной. Так как в системе (3), (4) ровно m + n - 1 линейно независимых уравнений, то в любой транспортной таблице должно быть m + n - 1 занятых клеток.[1]

Обозначим через

m )

вектор симплексных множителей или потенциалов. Тогда

Dij = mAij - сij ,

откуда следует

Dij = pi + qj - cij, . [2] (6)

Один из потенциалов можно выбрать произвольно, так как в системе (3), (4) одно уравнение линейно зависит от остальных. Положим, что р1 = 0. Остальные потенциалы в силу второй основной теоремы двойственности находим из условия, что для базисных клеток . В данном случае получаем

D11 = 0, p1 + q1 - c11 = 0, 0+q1 -1 = 0, q1 = 1,

D12 = 0, p1 + q2 - c12 = 0, 0+q2 -4 = 0, q2 = 4,

D22 = 0, p2 + q2 - c22 = 0, р2 +4-6 = 0, р2 = 2

и т.д., получим: q3=0, p3=6, q4= 1, q5= -6.

Затем по формуле (6) вычисляем оценки всех свободных клеток:

D21 = p2 + q5 - c21 = 2+1-3 = 0,

D31 = p3 + q1 - c31 = 6+1-2 = 5,

D32 = 5; D13 = -3; D14 = -1; D24 = -2; D15 = -6; D25 = -4.

Находим наибольшую положительную оценку

max () = 5 = .

Для найденной свободной клетки 31 строим цикл пересчета - замкнутую ломаную линию, соседние звенья которой взаимно перпендикулярны, сами звенья параллельны строкам и столбцам таблицы, одна из вершин находится в данной свободной клетке, а все остальные - в занятых клетках. Это будет 31-11-12-22-23-33. Производим перераспределение поставок вдоль цикла пересчета, максимально загружая клетку 31.

        41-r 13+r          
        37-r 23+r        
        r   21-r        

= 21

Получаем второе базисное допустимое решение:

bj b1 =41 b2 =50 b3 =44 b4 =30 b5=12  
ai            
а1 =54       *   p1 =0
a2 =60           p2 = 2
a3 =63           p3 =1
  q1 =1 q2 = 4 q3 = 0 q4 = 6 q5= -1  

Находим новые потенциалы, новые оценки. Наибольшую положительную оценку будет иметь свободная клетка 14. Для нее строим цикл пересчета 14-11-31-34 и производим перераспределение

      20-r r      
21   21+r 30-r    

rmax = 20

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

Dij £ 0, .

Читателю не составит труда проверить, что будет оптимальным базисное допустимое решение с Rmin = 460.

Rmin = 24*4 + 30*0 + 4*6 + 44*2 + 41*2 + 22*5 = 460.

 

 

Распределение капитальных вложений

Динамическое программирование - это вычислительный метод для решения задач управления определенной структуры. Данная задача с n переменными представляется как многошаговый процесс принятия решений. На каждом шаге определяется экстремум функции только от одной переменной.

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

Предположим, что указано n пунктов, где требуется построить или реконструировать предприятия одной отрасли, для чего выделено b рублей. Обозначим через fi(xi) прирост мощности или прибыли на i-м предприятии, если оно получит xi рублей капитальных вложений. Требуется найти такое распределение Х=(x1,x2,..., xn) капитальных вложений между предприятиями, которое максимизирует суммарный прирост мощности или прибыли

P(Х)= f1(x1) + f22) +... + fn(xn) ,

при ограничении по общей сумме капитальных вложений

x1 + x2 +... + xn = b,

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

xj = 0, или 1, или 2, или 3,...

Функции fj(xj) мы считаем заданными, заметив, что их определение - довольно трудоемкая экономическая задача.

Воспользуемся методом динамического программирования для решения этой задачи.

Введем параметр состояния и определим функцию состояния. За параметр состояния x примем количество рублей, выделяемых нескольким предприятиям, а функцию состояния Fk(x) определим как максимальную прибыль на первых k предприятиях, если они вместе получают x рублей. Параметр x может изменяться от 0 до b. Если из x руб-лей k-е предприятие получит xk рублей, то каково бы ни было это значение, оставшиеся (x - xk) рублей естественно распределить между предприятиями от первого до (k-1)-го так, чтобы была получена максимальная прибыль Fk-1(x - xk). Тогда прибыль k предприятий будет равна fk(xk) + Fk-1(x - xk). Надо выбрать такое значение xk между 0 и x, чтобы эта сумма была максимальной, и мы приходим к рекуррентному соотношению

Fk(x) = { f k(x k) + Fk-1(x- x k)}

для k = 2, 3, 4,..., n. Если же k=1, то

F1(x) = f1(x).

Рассмотрим конкретный пример. Пусть производственное объединение состоит из четырех предприятий (n=4). Общая сумма капитальных вложений равна 700 тыс. рублей (b=700), выделяемые предприятиям суммы кратны 100 тыс. рублей. Значения функций fj(xj) приведены в таблице 1, где, например, число 88 в четвертой строке означает, что если третье предприятие получит 600 тыс. руб. капитальных вложений, то прирост прибыли на этом предприятии составит 88 тыс. руб.

Таблица 1

xj                
f1(x1)                
f2(x2)                
f3(x3)                
f4(x4)                

 

Прежде всего заполняем табл. 2. Значения f2(x2) складываем со значениями F1(x - x2) = f1(x- x2) и на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение . Заполняем таблицу 3.

Продолжая процесс, табулируем функции F3(x), (x) и т.д. В табл. 6 заполняем только одну диагональ для значения x= 700. Наибольшее число на этой диагонали:

Pmax = 155 тыс. руб.,

причем четвертому предприятию должно быть выделено

тыс.руб.

На долю остальных трех предприятий остается 400 тыс. руб. Из табл. 5 видно, что третьему предприятию должно быть выделено

тыс.руб.

Продолжая обратный процесс, находим

тыс.руб

На долю первого предприятия остается

тыс.руб.

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

Xопт=(100; 100; 200; 300).

Оно обеспечивает производственному объединению наибольший возможный прирост прибыли Pmax = 155 тыс. руб.

Студенту рекомендуется проверить выполнение равенства

 

 

Таблица 2

x - x2 0 100 200 300 400 500 600 700
X2 F1(x - x2) f2(x2) 0 20 34 46 53 55 60 60
    0 20* 34 46 53 55 60 60
    18 38* 52* 64 71 73 78
    29 49 63 75 82 84
    45 65* 79 91 98
    62 82* 96 108
    78 98* 112*
    90 110
    98.

 

Таблица 3

x 0 100 200 300 400 500 600 700
F2(x) 0 20 38 52 65 82 98 112
` 0 0 100 100 300 400 500 500

 

 

Таблица 4

x - x3 0 100 200 300 400 500 600 700
x3 F2(x - x3) f3(x3) 0 20 38 52 65 82 98 112
    0 20 38 52 65 82 98 112
    25* 45* 63* 77 90 107 123
    41 61 79* 93 106 123
    52 72 94* 112 126
    74 94* 112* 126*
    82 102 120
    88 106
    90.

 

 

Таблица 5

x 0 100 200 300 400 500 600 700
F3(x) 0 25 45 63 79 94 112 126
0 100 100 100 200 400 400 400

 

Таблица 6

x - x4 0 100 200 300 400 500 600 700
x4 F3(x - x4) f4(x4) 0 25 45 63 79 94 112 126
     
     
     
    155*
     
     
     
    125.

 




Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 650; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.093 сек.