КАТЕГОРИИ: Архитектура-(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 руб. Следовательно, мы можем согласиться с предложением П только в том случае, если он заплатит не меньше 4у1 + 2у2 + 3у3 ³ 36. Аналогично, во втором столбце матрицы А указаны затраты различных ресурсов на производство единицы продукции второго вида. В ценах П эти затраты составят 3у1 + 5у2 + у3, а на рынке за единицу продукции второго вида мы получили бы прибыль 14 рублей. Поэтому перед предпринимателем П мы ставим условие 3у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, 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) при условии сохранения двойственных оценок ресурсов (и, следовательно, структуры производственной программы)
предполагая, что можно надеяться получить дополнительно не более 1/3 первоначального объема ресурса каждого вида
, (3)
причем по смыслу задачи t1 0, t3 0. (4)
Переписав неравенства (2) и (3) в виде: 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
Транспортная задача формулируется следующим образом. Однородный продукт, сосредоточенный в 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 единиц, причем тарифы на перевозку в этот пункт условимся считать равными нулю, помня, что переменные, добавляемые к левым частям неравенств для превращения их в уравнения, входят в функцию цели с нулевыми коэффициентами. Первое базисное допустимое решение легко построить по правилу ²северо-западного угла², которое состоит в том, чтобы на каждом этапе мы максимально загружаем «северо-западную клеточку»:
Следует иметь в виду, что по любой транспортной таблице можно восстановить соответствующий предпочитаемый эквивалент системы уравнений (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.
= 21 Получаем второе базисное допустимое решение:
Находим новые потенциалы, новые оценки. Наибольшую положительную оценку будет иметь свободная клетка 14. Для нее строим цикл пересчета 14-11-31-34 и производим перераспределение
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) + f2(х2) +... + 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
Прежде всего заполняем табл. 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
Таблица 3
Таблица 4
Таблица 5
Таблица 6
Дата добавления: 2015-06-04; Просмотров: 685; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |