|
отраслей методом динамического программирования ⇐ ПредыдущаяСтр 4 из 4
Необходимо найти однократное оптимальное распределение средств между фиксированным количеством отраслей. Исходными данными являются: m – количество отраслей; дискретное значение объемов вложений величина прибыли Исходные данные удобно представить в виде таблице 5
Таблица 5 - Исходные данные для задачи вложения средств
Необходимо таким образом распределить средства по отраслям, чтобы суммарная прибыль была максимальной. Решение этой задачи производится методом динамического программирования на основе процедур прямой прогонки. В задаче предполагается, что объемы вложений представляют конечное множество значений. Они определяются на основе величины начального объема вложений v 1 и значения приращения
Рассматриваемая задача может быть решена методом прямого перебора с помощью формирования множества всех возможных вариантов распределения средств между отраслями, вычисления суммарной прибыли для каждого из вариантов распределения и выбора оптимального варианта, обеспечивающего максимизацию суммарной прибыли. В частности, для случая v 1=0 множество вариантов распределения средств представляется в виде вектора
Тогда множество вариантов решений имеет следующий вид: вариант 1 вариант 2 вариант 3 вариант 4 ...................................................... вариант U 0 Для применения метода динамического программирования необходимо определить основные компоненты: этап, состояние, управление, оператор перехода, локальный доход, условный оптимальный доход за i этапов. Для рассматриваемой задачи: этап – соответствует распределению средств для текущего количества отраслей. Номера этапов меняются от единицы до m: номер текущего этапа равен состояние – количество распределяемых средств vj; управление Ui – количество средств, которые распределены на i -м этапе для инвестирования в отрасль с номером i; оператор перехода – для состояния vj и выбранного управления Ui устанавливает количество оставшихся средств для вложения в 1, 2, 3,..., i– 1-ю отрасли, т.е. локальный доход, полученный на i -м этапе, – это прибыль, достигнутая в i -й отрасли при вложении в нее средств в объеме Ui, т.е. qi (Ui); условный оптимальный доход Wi (vj)за i этапов для состояния vj – это доход, полученный от оптимального распределения имеющихся vj средств между i отраслями. Тогда уравнение Беллмана имеет следующий вид:
где Решение функционального уравнения производится в соответствии с процедурой прямой прогонки. Этап 1. На этом этапе принятия решений все средства вкладываются только в первую отрасль, т.е. i= 1, Реализация первого этапа может быть представлена в виде таблицы 6. Этап 2. Средства в объеме vj распределяются между первой и второй отраслями, управление U 2– это количество средств, которое распределено для вложения во вторую отрасль, vj – U 2 – количество оставшихся средств, направляемых для вложения в первую отрасль: i= 2, Тогда второму этапу будет соответствовать таблице 7.
Таблица 6 - Реализация первого этапа оптимального распределения средств
Таблица 7 - Реализация второго этапа
Первый столбец содержит перечень дискретных значений Определенную сложность представляет реализация процедуры формирования множества управлений. Предположим, что производится распределение средств в объеме vj, т.е. система находится в состоянии vj. Тогда управление U 2 принимает следующие значения: Этап 3. Производится распределение средств между тремя отраслями. Уравнение имеет следующий вид: i= 3, Управлением U 3 является вложение средств в третью отрасль, а остаток средств, равный vj – U 3 направляется для инвестирования в первую и вторую отрасли. При решении уравнения учитывается, что значения На последнем этапе i=m производится оптимальное распределение средств Функциональное уравнение Беллмана для i=m имеет следующий вид:
В результате решения функционального уравнения получается набор значений:
Ввиду того, что общее количество распределяемых средств равно vn, то оптимальное вложение в m -ю отрасль определяется, как Таким образом, последовательно определяются оптимальные объемы вложений. Пример. Руководство корпорации решило провести реконструкцию четырех заводов. Общий объем инвестиций, равный 400 единиц, необходимо распределить между заводами так, чтобы добиться максимальной суммарной прибыли. Величина прибыли qi (vj), получаемой от инвестирования vj средств в i -й завод корпорации, задается таблицей 8.
Таблица 8 - Величина прибыли
Решение задачи базируется на рассмотренном выше алгоритме при условии, что отраслям соответствуют заводы, входящие в корпорацию. Этап 1. Все средства инвестируются в завод 1. Уравнение Беллмана имеет следующий вид: W 1(vj) = q 1(vj). Для уменьшения громоздкости используется строчное представление результатов, а так же шрифтовое выделение наилучших вложений средств для каждого из состояний. Тогда W 1(0)=0; W 1(100)=40; W 1(200)=50; W 1(300)=65; W 1(400)=75. Этап 2. Производится распределение финансовых ресурсов между первым и вторым заводами. Управление U 2 – это инвестирование средств во второй завод. Уравнение Беллмана имеет следующий вид: W 2(vj) = max (q 2(U 2) + W 1(vj – U 2)), 0£ U 2£ vj; W 2(0) = max(q 2(0) + W 1(0)) = 0 + 0 = 0; W 2(100) = max(q 2(100) + W 1(0); q 2(0) + W 1(100)) =max(40 + 0; 0 + 50) = 50; W 2(200) = max(q 2(200) + W 1(0); q 2(100) + W 1(100); q 2(0) + W 1(200)) = = max(70 + 0; 50 + 40; 0 + 50)= 90; W 2(300) = max(q 2(300) + W 1(0); q 2(200) + W 1(100); q 2(100) + W 1(200); q 2(0) + W 1(300)) = = max(85 + 0; 40 + 70; 50 + 50; 0 + 65) =max(85;110;100;65) = 110; W 2(400) = max(q 2(400) + W 1(0); q 2(300) + W 1(100); q 2(200) + W 1(200); q 2(100) + + W 1(300) q 2(0) + W 1(400)) =max(95 + 0; 85 + 40; 70 + 50; 50 + 65; 0 + 75) = = max(95;125;120; 115;75) = 125; Этап 3. Производится распределение финансовых ресурсов между первым, вторым и третьим заводами. Управление U 3 – это инвестирование средств в третий завод. Уравнение Беллмана имеет следующий вид: W 3(vj) = max (q 3(U 3)+ W 2(vj – U 3)), 0£ U 3£ vj; W 3(0) = max(q 3(0) + W 2(0)) = 0; W 3(100) = max(q 3(100) + W 2(0); q 3(0) + W 2(100)) =max(30 + 0; 0 + 50) = 50; W 3(200) = max(q 3(200) + W 2(0); q 3(100) + W 2(100); q 3(0) + W (200)) = = max(0 + 90; 30 + 50; 55 + 0) = 90; W 3(300) = max(q 3(300) + W 2(0); q 3(200) + W 2(100); q 3(100) + W 2(200); q 3(0) + W 2(300))= = max(70 + 0; 55 + 50; 30 + 90; 0 + 110) =120; W 3(400) = max(q 3(400) + W 2(0); q 3(300) + W 2(100); q 3(200) + W 2(200); q 3(100) + W 2(300); q 3(0) + W 2(400)) =max(95 + 0; 70 + 50; 55 + 90; 30 + 110; 0 + 125) =145. Этап 4. Производится распределение финансовых ресурсов между всеми заводами. Управление U 4 – это инвестирование средств в четвертый завод. Уравнение Беллмана имеет следующий вид: W 4(vj) = max (q 4(U 4)+ W 3(vj – U 4)), 0£ U 4£ vj ; W 4(0) = max(q 4(0) + W 3(0)) = 0; W 4(100) = max(q 4(100) + W 3(0); q 4(0) + W 3(100)) =max(0 + 50; 60 + 0) = 60; W 4(200) = max(q 4(200) + W 3(0); q 4(100) + W 3(100); q 4(0) + W 3(200)) = = max(75 + 0; 60 + 50; 0 + 90) = 110; W 4(300) = max(q 4(300) + W 3(0); q 4(200) + W 3(100); q 4(100) + W 3(200); q 4(0) + W 3(300)) = = max(95 + 0; 75 + 50; 90 + 60; 0 + 120) =150; W 4(400) = max(q 4(400) + W 3(0); q 4(300) + W 3(100); q 4(200) + W 3(200); q 4(100) + W 3(300); q 4(0) + W 3(400)) =max(110 + 0; 95 + 50; 75 + 90; 60 + 120; 0 + 145) =180. Решение задачи в обратном порядке позволяет найти оптимальное распределение средств: завод 4 – 100; завод 3 – 100; завод 2 – 100; завод 1 – 100. Суммарная прибыль составляет 180 единиц. Приложение 2 Симплекс-метод Симплексный метод решения задачи основан на переходе от одного опорного плана к другому, при котором значение целевой функции возрастает (при условии, что данная задача имеет оптимальный план, и каждый ее опорный план является невырожденным). Указанный переход возможен, если известен какой-нибудь исходный опорный план. Рассмотрим задачу, для которой этот план можно непосредственно записать. Пусть требуется найти максимальное значение функции при условиях Здесь Векторная форма данной задачи имеет следующий вид: найти максимум функции
при условиях:
где Так как то по определению опорного плана X = ( Положим Теорема 1. (признак оптимальности опорного плана). Опорный план Х *= ( Теорема 2. Если Теорема 3. Если опорный план X задачи (16) —(18) не вырожден и Сформулированные теоремы позволяют проверить, является ли найденный опорный план оптимальным, и выявить целесообразность перехода к новому опорному плану. Исследование опорного плана на оптимальность, а также дальнейший вычислительный процесс удобнее вести, если условия задачи и первоначальные данные, полученные после определения исходного опорного плана, записать так, как показано в таблице 9. В столбце В столбце В таблице 9 первые m строк определяются исходными данными задачи, а показатели (m+1) -й строки вычисляют. В этой строке в столбце вектора Ро записывают значение целевой функции, которое она принимает при данном опорном плане, а в столбце вектора Рj — значение Зн ачени е Значение После заполнения таблицы 9 исходный опорный план проверяют на оптимальность. Для этого просматривают элементы (m+1)-й строки таблицы. В результате может иметь место один из следующих трех случаев: 1) 2) 3) В первом случае на основании признака оптимальности исходный опорный план является оптимальным. Во втором случае целевая функция не ограничена сверху на множестве планов, а в третьем случае можно перейти от исходного плана к новому опорному плану, при котором значение целевой функции увеличится. Этот переход от одного опорного плана к другому осуществляется исключением из исходного базиса какого-нибудь из векторов и введением в него нового вектора. В качестве вектора, вводимого в базис, можно взять любой из векторов Pj имеющий индекс j, для которого Для определения вектора, подлежащего исключению из базиса, находят min ( Столбец и строку, на пересечении которых находится разрешающий элемент, называют направляющими. После выделения направляющей строки и направляющего столбца находят новый опорный план и коэффициенты разложения векторов
а коэффициенты разложения векторов Рj через векторы нового базиса, соответствующего новому опорному плану,— по формулам
После вычисления
Наличие двух способов нахождения элементов (m + 1)-й строки позволяет осуществлять контроль правильности проводимых вычислений. Из формулы (21) следует, что при переходе от одного опорного плана к другому наиболее целесообразно ввести в базис вектор Итак, переход от одного опорного плана к другому сводится к переходу от одной симплекс-таблицы к другой. Элементы новой симплекс-таблицы можно вычислить как с помощью рекуррентных формул (19) — (22), так и по правилам, непосредственно вытекающим из них. Эти правила состоят в следующем. В столбцах векторов, входящих в базис, на пересечении строк и столбцов одноименных векторов проставляются единицы, а все остальные элементы данных столбцов полагают равными нулю. Элементы векторов Р0 и Рj в строке новой симплекс-таблицы, в которой записан вектор, вводимый в базис, получают из элементов этой же строки исходной таблицы делением их на величину разрешающего элемента. В столбце Сб в строке вводимого вектора проставляют величину сk, где k— индекс вводимого вектора. Остальные элементы столбцов вектора Р0 и Pj новой симплекс-таблицы вычисляют по правилу треугольника. Для вычисления какого-нибудь из этих элементов находят три числа: 1) число, стоящее в исходной симплекс-таблице на месте искомого элемента новой симплекс-таблицы; 2) число, стоящее в исходной симплекс-таблице на пересечении строки, в которой находится искомый элемент новой симплекс-таблицы, и столбца, соответствующего вектору, вводимому в базис; 3) число, стоящее в новой симплекс-таблице на пересечении столбца, в котором стоит искомый элемент, и строки вновь вводимого в базис вектора (как отмечено выше, эта строка получается из строки исходной симплекс-таблицы делением ее элементов на разрешающий элемент). Эти три числа образуют своеобразный треугольник, две вершины которого соответствуют числам, находящимся в исходной симплекс-таблице, а третья — числу, находящемуся в новой симплекс-таблице. Для определения искомого элемента новой симплекс-таблицы из первого числа вычитают произведение второго и третьего. После заполнения новой симплекс-таблицы просматривают элементы (т+1) -й строки. Если все Итак, нахождение оптимального плана симплексным методом включает следующие этапы: 1. Находят опорный план. 2. Составляют симплекс-таблицу. 3. Выясняют, имеется ли хотя бы одно отрицательное число 4. Находят направляющие столбец и строку. Направляющий столбец определяется наибольшим по абсолютной величине отрицательным числом 5. По формулам (19) — (22) определяют положительные компоненты нового опорного плана, коэффициенты разложения векторов 6. Проверяют найденный опорный план на оптимальность. Если план не оптимален и необходимо перейти к новому опорному плану, то возвращаются к этапу 4, а в случае получения оптимального плана или установления неразрешимости процесс решения задачи заканчивают.
Таблица 9
Таблица 10
![]() ![]() Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... ![]() Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... ![]() Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... ![]() Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|