![]() Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
![]() Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
![]() |
Задача о распределении средств между предприятиями
Рассмотрим предложенную схему на конкретной задаче о распределении средств между предприятиями. Формулировка задачи. Планируется деятельность четырех промышленных предприятий (системы) на очередной год. Начальные средства: S0 = 5 у.е. Размеры вложений в каждое предприятие кратны 1 у.е. средства Х, выделенные k-му предприятию (k=1÷4) приносят в конце года прибыль fk (х). функции fk заданы таблично. Таблица 1.
Предположим, что (допущения модели) 1. прибыль fk(х) не зависит от вложения средств в другие предприятия; 2. прибыль от каждого предприятия выражается в одних условных единицах; 3. суммарная прибыль равна сумме прибылей, полученных от каждого предприятия. Требуется определить: какое количество средств нужно выделить каждому предприятию, чтобы суммарная прибыль была наибольшей. Решение. Обозначим через хk количество средств, выделенных k-ому предприятию. Суммарная прибыль равна
Переменные хk удовлетворяют ограничениям:
хk ≥ 0, k=1÷4 Требуется найти переменные х1, х2, х3, х4, удовлетворяющие системе ограничений и обращающие в максимум целевую функцию. Особенности модели. Ограничения линейны, но переменные целочисленные, а функции fk(хk) заданы таблично, поэтому нельзя применить методы целочисленного линейного программирования. Схема решения задачи методом динамического программирования имеет следующий вид: процесс распределения средств S0 = 5 у.е. можно рассматривать как четырех шаговый, номер шага совпадает с номером предприятия, переменные х1, х2, х3, х4 – управления на I, II, III, IV – шагах. Sn - конечное состояние процесса распределения равно нулю, т.к. все средства должны быть вложены в производство; Sn = 0, согласно схеме:
Уравнения состояний в данной задаче имеют вид: Sk = Sk-1 – xk k= 1÷4, где Sk – параметр состояния – количество средств, оставшихся после k-ого шага, т.е. средства, которые нужно распределить между оставшимися (4-k) предприятиями. Введем в рассмотрение функцию Условный максимум целевой функции последнего шага k=4, S4 = 0 => и далее по шагам k=3, k=2, k=1, Теперь требуется последовательно решить записанные уравнения (рекуррентные соотношения Беллмана), проводя условную оптимизацию каждого шага. Шаг IV. Из таблицы следует, что f4(х) прибыли четвертого предприятия монотонно возрастает, поэтому все средства, оставшиеся к четвертому шагу, следует вкладывать в четвертое предприятие. При этом для возможных значений S3 = 0, 1, …, 5 получим:
Шаг III. Делаем все предположения относительно остатка средств S2 к третьему шагу (т.е. после выбора x1 и x2). S2 может принимать значения от 0 до 5 (например, S2 = 0, если все средства отданы первому и второму предприятиям, или S2 = 5, если первое и второе предприятия не получили ничего, и т.д.) В зависимости от этого выбираем 0≤ х3 ≤ S2, находим S3 = S2 – х3 и сравниваем для разных х3 и при фиксированном S2 значения суммы f(x3) + Оптимизация дана в таблице при k=3. Для каждого значения S2 Шаг II. Для всех возможных значений S1 значения Шаг I. Перед первым шагом S0 = 5 – всегда, следовательно достаточно заполнить раздел таблицы при S0 = 5. Рассмотрим подробно: если х1 = 0, то S1= 5, следовательно средства распределяются между всеми предприятиями, кроме первого. Оптимальное распределение прибыли между этими тремя предприятиями f1(0) + х1 = 2, S2= 3, f1(2) + х1 = 3, S2= 2, f1(3) + х1 = 4, S2= 1, f1(4) + сравнивая полученные значения, находим максимум
Используя уравнение связей Sk = Sk-1 – хk, находим Максимум суммарной прибыли равен 24 у.е. при условии, ято первому предприятию выделено 1 у.е., второму – 2 у.е., третьему и четвертому по 1 у.е. Замечание 1: на разобранной задаче видно, что метод динамического программирования безразличен к виду и способу задания функции: fk(x) были заданы таблично, поэтому Решение иллюстрирует таблица 2. Замечание 2: альтернативой методу динамического программирования для решения подобной задачи является метод перебора. Метод динамического программирования предпочтителен, т.к. на этапе условной оптимизации отбрасываются заведомо неэффективные варианты. Замечание 3: достоинством метода является возможность анализа решения на чувствительность к изменению S0 и n. Проведенные расчеты можно использовать для изменившихся начального состояния S0 и числа шагов n. Например, пусть в задачах произошло уменьшение начальных средств на 1 у.е. Для S0 = 4 достаточно в таблицу добавить расчеты для k=1 (и не рассматривать ее для пятой строки, где Sk-1 меняется от 0 до 5). В этом случае получаем а)
б)
В результате найдены два оптимальных решения. Если начальные средства увеличились, например, на 1 у.е., S0 = 6, а функции прибыли остались прежними, то в таблице достаточно добавить раздел S0 = 6. Таблица 3.
Получаем Zmax = 27,
Если принято решение распределить средства S0 = 5 между вторым и третьим предприятиями, то задача уже решена. В разделе k=2 таблицы находим
Наконец, если увеличилось число предприятий (число шагов), то схему можно дополнить, присоединяя шаги с номером k=0, -1, …. и т.д., расширяя таблицу по горизонтали вправо. Замечание 4: к недостаткам метода динамического программирования по-прежнему следует отнести возникновение технических трудностей при вычислениях в случае увеличения размерности.
Date: 2016-02-19; view: 1366; Нарушение авторских прав |