Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Последовательное улучшение производственной программы



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

(7)

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

Математическая модель задачи:

найти производственную программу

(x1, x2, x3, x4)

максимизирующую прибыль

z = 36x1+ 14x2 + 25x3 + 50x4 (8)

при ограничениях по ресурсам

(9)

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

x1 ³ 0, x2 ³ 0, x3 ³ 0, x4 ³ 0. (10)

Получили задачу на условный экстремум. Для ее решения систему неравенств (9) при помощи дополнительных неотрицательных неизвестных х5, х6, х7 заменим системой линейных алгебраических уравнений

(11)

где дополнительные переменные имеют смысл остатков соответствующих ресурсов. Среди всех решений системы уравнений (11), удовлетворяющих условию неотрицательности

х1³0, х2³0, …, х5³0, …, х7³0. (12)

надо найти то решение, при котором функция (8) примет наибольшее значение.

Воспользуемся тем, что правые части всех уравнений системы (11) неотрицательны, а сама система имеет предпочитаемый вид – дополнительные переменные являются базисными. Приравняв к нулю свободные переменные х1, х2, х3, х4, получаем базисное неотрицательное решение

 
x1=0, x2=0, x3=0, x4=0, x5=208, x6=107, x7=181 (13)

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

x1=0, x2=0, x3=0, x4=0 (14)

по которой мы пока ничего не производим.

Из выражения (8) видно, что наиболее выгодно начинать производить продукцию четвертого вида, так как прибыль на единицу продукции здесь наибольшая. Чем больше выпуск в этой продукции, тем больше прибыль. Выясним, до каких пор наши ресурсы позволяют увеличить выпуск этой продукции. Для этого придется записать для системы уравнений (11) общее решение

(15)

Мы пока сохраняем в общем решении х123=0 и увеличиваем только х4. При этом значения базисных переменных должны оставаться неотрицательными, что приводит к системе неравенств

или т.е. 0 £ х4 £

Дадим х4 наибольшее значение х4 =181/5, которое она может принять при нулевых значениях других свободных неизвестных, и подставим его в (15). Получаем для системы уравнений (11) частное неотрицательное решение

х1=0, х2=0, х3=0, х4= ; x5=27; x6= ; x7=0 (16)

Нетрудно убедиться, что это решение является новым базисным неотрицательным решением системы линейных алгебраических уравнений (11), для получения которого достаточно было принять в системе (11) неизвестную х4 за разрешающую и перейти к новому предпочитаемому виду этой системы, сохранив правые части уравнений неотрицательными, для чего за разрешающее уравнение мы обязаны принять третье, так как

а разрешающим элементом будет а34=5. Применив известные формулы исключения, получаем для системы уравнений (11) новый предпочитаемый эквивалент

x1 + 2x2 + 2x3 + x5 - x7 = 27

x1 + x2 - x3 + x6 - x7 = (17)

x1 + x2 + x3 + x4 + x7 =

Приравняв к нулю свободные переменные х1, х2, х3, х7, получаем базисное неотрицательное решение, совпадающее с (16), причем первые четыре компоненты его определяют новую производственную программу

х1=0, х2=0, х3=0, х4= . (18)

 
Исследуем, является ли эта программа наилучшей, т.е. обеспечивает ли она наибольшую прибыль. Для этого выразим функцию прибыли (8) через новые свободные переменные х1, х2, х3, х7.

Из последнего уравнения системы (17) выражаем базисную переменную х4 через свободные и подставляем в (8). Получаем

(19)

Видим, что программа (18) не является наилучшей, так как прибыль будет расти, если мы начнем производить или первую, или вторую, или третью продукцию, но наиболее быстро функция z растет при возрастании х1. Поэтому принимаем х1 в системе (17) за разрешающую неизвестную, находим разрешающее уравнение по

(20)

и исключаем х1 из всех уравнений системы (17), кроме первого уравнения. Получим следующий предпочитаемый эквивалент системы условий, который определит для системы (11) новое базисное неотрицательное решение и уже третью производственную программу, для исследования которого нам придется выразить функцию (19) через новые свободные переменные, удалив оттуда переменную х1, ставшую базисной. Мы видели выше, как это делается (удаляли х4 из (8)).

Важно обратить внимание на то, что эти удаления можно выполнить очень просто. Представим соотношение (8) в виде уравнения

-36х1 - 14х2 - 25х3 - 50х4 = 0 – z (21)

и припишем его к системе (11). Получается вспомогательная система уравнений

(22)

Напомним, что разрешающую неизвестную в системе (11) мы выбрали х4. Этой переменной в последнем уравнении системы (22) отвечает наименьший отрицательный коэффициент D4=-50. Затем мы нашли разрешающий элемент а34=5 и исключили неизвестную х4 из всех уравнений системы (11), кроме третьего. Далее нам пришлось х4 исключать и из функции (8). Теперь это можно сделать очень просто, если посмотреть на систему уравнений (22). Очевидно, достаточно умножить третье уравнение системы (22) на 10 и прибавить к четвертому; получим

-6х1 - 4х2 - 5х3 - 10х4 = 1810 – z (23)

Таким образом, мы преобразовывали вспомогательную систему уравнений (22) к виду

x1 + 2x2 + 2x3 + x5 - x7 = 27

x1 + x2 - x3 + x6 - x7 = (24)

x1 + x2 + x3 + x4 + x7 =

-6x1 - 4x2 - 5x3 +10x7 = 1810 - z

 
Первые три уравнения этой системы представляют некоторый предпочитаемый эквивалент (17) системы уравнений (11) и определяют базисное неотрицательное решение (16) и производственную программу (18), а из последнего уравнения системы (24) получается выражение (19) функции цели через свободные переменные. Очевидно, если имеется хотя бы один отрицательный коэффициент Dj при какой-нибудь переменной xj в последнем уравнении системы (24), то производственная программа не является наилучшей и можно далее продолжать процесс ее улучшения. С помощью (19) мы выяснили, что следует начинать производить продукцию первого вида, т.е. фактически мы нашли в последнем уравнении системы (24) наименьший отрицательный коэффициент

min(Dj<0) = min(-6, -4, -5) = -6 = D1

и решили перевести свободную переменную х1 в число базисных, для чего, согласно (20)определили разрешающее уравнение и указали разрешающий элемент а11=1.

Учитывая сказанное выше, теперь мы будем преобразовывать не систему (17), а всю вспомогательную систему (24), по формулам исключения. Эта система преобразуется к виду

 
 


x1 + 2x2 + 2x3 + x5 - x7 = 27

3x2 - x3 - x5 + x6 + x7 = 13 (25)

- x2 - x3 + x4 - x5 + x7 = 20

8x2 + 7x3 + 6x5 + 4x7 = 1972 - z

Первые три уравнения системы (25) представляют некоторый предпочитаемый эквивалент системы уравнений (11) и определяют базисное неотрицательное решение системы условий рассматриваемой задачи

x1=27, x2=0, x3=0, x4=20, x5=0, x6=13, x7=0 (26)

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

x1=27, x2=0, x3=0, x4=20 (27)

и остатки ресурсов:

первого вида х5=0

второго вида х6=13 (28)

третьего вида х7=0

В последнем уравнении системы (25) среди коэффициентов при неизвестных в левой части уравнения нет ни одного отрицательного. Если из этого уравнения выразить функцию цели z через остальные неотрицательные переменные

z = 1972 - 8х2 - 7х3 - 6х5 - 4х7 (29)

то становится совершенно очевидным (в силу того, что все xj³0), что прибыль будет наибольшей тогда, когда

x2=0, x3=0, x5=0, x7=0 (30)

Это означает, что производственная программа (27) является наилучшей и обеспечивает предприятию наибольшую прибыль

zmax = 1972 (31)

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

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

 
Таблица 1

      36 14 25 50 0 0 0 Пояснения
Базис Н x1 x2 x3 x4 x5 x6 x7  
0 х5   4 3 4 5 1 0 0 z0 = H
  х6   2 5 0 2 0 1 0
  х7   3 1 2 5 0 0 1 0
  z0 -z 0 - z -36 -14 -25 -50 0 0 0
0 х5   1 2 2 0 1 0 -1
  х6 173/5 4/5 23/5 -4/5 0 0 1 -2/5  
  х4 181/5 3/5 1/5 2/5 1 0 0 1/5
  z0 -z 1810-z -6 -4 -5 0 0 0 10
  х1   1 2 2 0 1 0 -1  
  х6   0 3 -12/5 0 -4/5 1 2/5 все Dj ³0
  х4   0 -1/5 -4/5 1 -3/5 0 4/5  
  z0 -z 1972-z 0 8 7 0 6 0 4  

где представлены расширенные матрицы вспомогательных систем уравнений (22) ® (24) ® (25). Эти таблицы принято называть симплексными.

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

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

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

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

Следует при этом обратить внимание на то, что последовательное улучшение производственной программы

(x1=0, x4=0) ® (x1=0, x4= ) ® (x1=27, x4=20)

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

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

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

Теперь представим себе, что возникла новая ситуация. Знакомый предприниматель П (Петров), занимающийся производством каких-то других видов продукции, но с использованием трех таких же видов ресурсов, какие имеются у нас, предлагает нам "уступить" по определенным ценам все имеющиеся у нас ресурсы и обещает платить у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)

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

(2)
4y1 + 2y2 + 3y3 ³ 36

3y1 + 5y2 + y3 ³ 14

4y1 + 2y3 ³ 25

5y1 + 2y2 + 5y3 ³ 50

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

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

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

       
   
 


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

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

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

x 4(5y1 + 2y2 + 5y3 - 50) = 0

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

 
 


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

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

Если же учесть, что второй ресурс был избыточным и, согласно той же теореме двойственности, ее двойственная оценка равна нулю

у2=0,

то приходим к системе уравнений

4y1 + 3y3 - 36 = 0

5y1 + 5y3 - 50 = 0

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

у1=6, у3=4.

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

у1=6; у2=0; у3=4, (4)

причем общая оценка всех ресурсов равна 1972.

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

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

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

H + Q-1T 0.

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

T (t1, 0, t3),

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

W = 6t1 + 4t3 (1)

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

(2)

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

(3)

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

t1 0, t3 0. (4)

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

 
 

(6)
(5)

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

Эту задачу легко решить графически: см. рис. 1. Программа ²расшивки² имеет вид

t1= , t2=0, t3=

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

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

Таблица 1

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

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

Транспортная задача формулируется следующим образом. Однородный продукт, сосредоточенный в 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); С =

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

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

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

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

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

m )

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

Dij = m Aij - сij i = 1,m; j = 1,n

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

Dij = pi + qj - cij i = 1,m; j = 1,n (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. Производим перераспределение поставок вдоль цикла пересчета

        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 i = 1,m; j = 1,n

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


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

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

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

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

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

z = 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 рублей естественно распределить между предприятиями от первого до (К-1)-го так, чтобы была получена максимальная прибыль Fk-1(x - xk). Тогда прибыль k предприятий будет равна fk(xk) + Fk-1(x - xk). Надо выбрать такое значение xk между 0 и x, чтобы эта сумма была максимальной, и мы приходим к рекуррентному соотношению

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

0 £ x k £ x

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

F1(x) = f1(x)

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

 
Таблица I

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

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

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

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

х*4 = 4 (700) = 300 тыс. руб.

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

x*3 = 3 (700-x*4) = 3 (400) = 200 тыс. руб.

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

x*2 = 2 (700 - x*4 - x*3) = 2 (200) = 100 тыс. руб.

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

x*1 = 700 - x*4 - x*3 - x*2 = 100 тыс. руб.

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

x*1 =100; x*2 =100; x*3 = 200; x*4 = 300.

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

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

f1(x*1) + f2(x*2) + f3(x*3) + f4(x*4) = z max

Таблица 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   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
` (x) 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   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
(x) 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.

§9. Динамическая задача управления производством

 
и запасами

Предприятие производит партиями некоторые изделия. Предположим, что оно получило заказы на n месяцев. Размеры заказов значительно меняются от месяца к месяцу. Поэтому иногда лучше выполнять одной партией заказы нескольких месяцев, а затем хранить изделия, пока они не потребуются, чем выполнять заказ в тот именно месяц, когда этот заказ должен быть отправлен. Необходимо составить план производства на указанные n месяцев с учетом затрат на производство и хранение изделий. Обозначим:

xj - число изделий, производимых в j -й месяц;

yj - величина запаса к началу j го месяца (это число не содержит изделий, произведенных в j -м месяце);

dj - число изделий, которые должны быть отгружены в j -й месяц;

fj (xj,yj+1) - затраты на хранение и производство изделий в j -м месяце.

Будем считать, что величины запасов к началу первого месяца y1 и к концу последнего yn+1 заданы.

Задача состоит в том, чтобы найти план производства

(x1, x2,..., xn) (1)

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

xj + yj - dj = yj+1 j = 1,n (2)

и минимизируют суммарные затраты за весь планируемый период

(3)

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

 
 


xj ³ 0, yj ³ 0, j = 1,n (4)

Прежде чем приступить к решению поставленной задачи, заметим, что для любого месяца j величина yj+1 запаса к концу месяца должна удовлетворять ограничениям

0 £ yj+1 £ dj+1 + dj+2 +... + dn (5)

т.е. объем производимой продукции xj на этапе j может быть настолько велик, что запас yj+1 удовлетворяет спрос на всех последующих этапах, но не

имеет смысла иметь yj+1 больше суммарного спроса на всех последующих этапах. Кроме того, из соотношений (2) и (4) непосредственно следует, что переменная xj должна удовлетворять ограничениям

0 £ xj £ dj + yj+1 (6)

Следует также заметить, что переменные xj, yj могут принимать только целые неотрицательные значения, т.е. мы получили задачу целочисленного нелинейного программирования.

Будем решать задачу (1)-(6) методом динамического программирования.

Введем параметр состояния и составим функцию состояния.

 
За параметр состояния x примем наличный запас в конце k -го месяца

x = yk+1 (7)

а функцию состояния Fk(x) определим как минимальные затраты за первые k месяцев при выполнении условия (5)

(8)

где минимум берется по неотрицательным целым значениям x1,...,xk, удовлетворяющим условиям

xj + yj - dj = yj+1 j = 1, k-1 (9)

xk + yk - dk = x (10)

Учитывая, что

(11)

и величина запаса yk к концу (k-1) периода, как видно из уравнения (10), равна

yk = x + dk - xk (12)

приходим к рекуррентному соотношению

(13)

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

0 £ xk £ dk + x (14)

принимая целые значения, причем верхняя граница зависит от значений параметра состояния, изменяющегося в пределах

0 £ x £ dk+1 + dk+2 +... + dn (15)

а индекс k может принимать значения

k = 2, 3, 4,..., n (16)

Если k=1, то

F1(x = y2) = min f1(x1, x) (17)

x1

где

x1 = x + d1 - y1 (18)

0£ x £ d2 + d3 +... + dn (19)

 
т.е. на начальном этапе при фиксированном уровне y1 исходного запаса каждому значению параметра x отвечает только одно значение переменной x1, что несколько уменьшает объем вычислений.

Применив известную вычислительную процедуру динамического программирования, на последнем шаге (при k = n) находим значение последней компоненты xn* оптимального решения, а остальные компоненты определяем как

(20)

Рассмотрим более подробно функции затрат fj(xj, yj+1) и рекуррентные соотношения. Пусть

jj(xj) = axj2 + bxj + c

jj (xj) - затраты на производство (закупку) xj единиц продукции на этапе j;

hj - затраты на хранение единицы запаса, переходящей из этапа j в этап j+1.

Тогда затраты на производство и хранение на этапе j равны

fj(xj, yj+1) = jj(xj) + hj yj+1 = axj2 + bxj + c + hj yj+1. (21)

Выведенные ранее рекуррентные соотношения динамического программирования для решения задачи управления производством и запасами в нашем случае принимают вид:

(22)

где

k = 2, 3,..., n (23)

0 £ yk+1 £ dk+1 + dk+1 +... + dn (24)

0 £ xk £ dk + yk+1 (25)

yk = yk+1 + dk - xk (26)

(27)
Если же k=1, то

(30)
(29)
(28)

Остается заметить, что полезно обозначить выражение в фигурных скобках через

Wk(xk, yk+1) = axj2 + bxj + c + hkyk+1 + Fk-1(yk) (31)

и записать рекуррентное соотношение (22) в виде

Fk(x=yk+1) = min Wk(xk, yk+1) (32)

xk

 
где минимум берется по целочисленной переменной xk, удовлетворяющей условию (25).

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

Пусть спрос (заявки) потребителей на нашу продукцию составляют: на первый этап d1=3 единицы, на второй – d2=2, на третий - d3=4 единицы. К началу первого этапа на складе имеется только 2 единицы продукции, т.е. начальный уровень запаса равен y1=2. Затраты на хранение единицы продукции на разных этапах различны и составляют соответственно h1=1, h2=3, h3=2. Затраты на производство xj единиц продукции на j-м этапе определяются функцией

jj(xj) = xj2 + 5xj + 2 (33)

т.е. а=1; b=5; с=2. Требуется указать, сколько единиц продукции на отдельных этапах следует производить, чтобы заявки потребителей были удовлетворены, а наши общие затраты на производство и хранение за все три этапа были наименьшими.

Исходные данные задачи можно кратко записать одной строкой:

d1 d2 d3 a b c h1 h2 h3 y1

1 2 4 1 5 2 1 3 2 2

Воспользовавшись рекуррентными соотношениями, последовательно вычисляем

F1 (x = y2), F2 (x = y3),..., Fk (x = yk+1),... и соответственно находим 1 (x= y2), 2 (x = y3),..., ` k (x = yk+1),...

Положим k = 1. Согласно (27) имеем

(34)

Учтем, что согласно (28) параметр состояния x = у2 может принимать целые значения на отрезке

0 у2 d2 + d3

0 y2 2 + 4

т.е.

у2 = 0, 1, 2, 3, 4, 5, 6.

При этом, вообще говоря, каждому значению параметра состояния должна отвечать определенная область изменения переменной x1, характеризуемая условием (29)

0 х1 3 + у2

Однако, на первом этапе объем производства х1 не может быть меньше единицы, так как спрос d1 = 3, а исходный запас у1 = 2. Более того, из балансового уравнения

х1 + у1 - d1 = у2

непосредственно следует, что объем производства связан со значением параметра состояния x= у2 соотношением

x1 = y2 + d1 - y1 = y2 + 3 - 2 = y2 +1 (35)

В этом и состоит особенность первого этапа. Если задан уровень запаса к началу первого этапа, то каждому значению у2 отвечает единственное значение х1 и потому

F1(x = y2) = W1 (x1, y2)

 
Придавая у2 различные целые значения от 0 до 6 и учитывая (35), находим





Дата публикования: 2015-04-06; Прочитано: 341 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.096 с)...