47869 (Оптимальное распределение средств на расширение производства)
Описание файла
Документ из архива "Оптимальное распределение средств на расширение производства", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "47869"
Текст из документа "47869"
Курсовая работа
Оптимальное распределение средств на расширение производства
Содержание
Введение
1. Рекуррентная природа задач динамического программирования
1.1 Принцип оптимальности Беллмана
1.2 Вычислительная схема
2. Решение задачи оптимального распределения средств на расширение производства
2.1 Решение задачи оптимального распределения средств на расширение производства ручным способом
2.2 Решение задачи оптимального распределения средств на расширение производства в среде Microsoft Exсel
Заключение
Список использованных источников
Введение
С развитием техники, усложнением структуры производства, усложнением и удорожанием самих проектируемых конструкций начало складываться убеждение в необходимости создания более эффективной методики аналитического проектирования и планирования, основанного на выборе наилучшего, оптимального варианта в процессе предварительного математического исследования.
В настоящее время эта проблема оптимизации стала одной из основных проблем в технических и экономических науках. Необходимый для ее решения математический аппарат, казалось бы, имелся в готовом виде – это классический анализ и вариационное исчисление. Однако непосредственное применение известного аппарата столкнулось со значительными трудностями. Реальные задачи оптимизации не укладывались непосредственно в классические схемы.
Предложенный Р.Беллманом аппарат функциональных уравнений значительно расширяет возможности решения реальных проблем оптимизации. Его главным достоинством является хорошая "приспособленность" к использованию современной вычислительной техники.
Цель курсовой работы: решить задачу оптимального распределения средств на расширение производства.
Задачи: определить рекуррентную природу задач динамического программирования, изучить принцип Беллмана, его вычислительную схему, решить задачу в среде Microsoft Excel.
Курсовая работа состоит из 2-ух частей. В первом разделе рассмотрены теоретические основы задач динамического программирования. Во втором разделе приведен пример решения задачи оптимального распределения средств на расширение производства.
1 .Рекуррентная природа задач динамического программирования
Динамическое программирование (планирование) представляет собой математический метод для нахождения оптимальных решений многошаговых (многоэтапных) задач. Некоторые из таких задач естественным образом распадаются на отдельные шаги (этапы), но имеются задачи, в которых разбиение приходится вводить искусственно, для того чтобы их можно было решить методом динамического программирования.
Пусть на некоторый период времени Т, состоящий из m лет, планируется деятельность группы промышленных предприятий. В начале планируемого периода на развитие предприятий выделяются основные средства Qо, которые необходимо распределить между предприятиями. В процессе функционирования предприятий, выделенные им, средства частично расходуются. Однако каждое из этих предприятий за определенный период времени (хозяйственный год) получает прибыль, зависящую от объема вложенных средств. В начале каждого года имеющиеся средства могут перераспределяться между предприятиями. Требуется определить, сколько средств надо выделить каждому предприятию в начале каждого года, чтобы суммарный доход от всей группы предприятий за весь период времени Т был максимальным.
Процесс решения такой задачи является многошаговым. Шагом управления (планирования) здесь будет хозяйственный год. Управление процессом состоит в распределении (перераспределении) средств в начале каждого хозяйственного года.
Пусть имеется груз, состоящий из неделимых предметов различных типов, который нужно погрузить в самолет грузоподъемностью Р. Стоимость и масса каждого предмета j-гo типа известны и составляют соответственно cj, и pj единиц ( ). Требуется определить, сколько предметов каждого типа надо загрузить в самолет, чтобы суммарная стоимость груза была наибольшей, а масса не превышала грузоподъемности самолета.
Математически задача записывается следующим образом: найти такие целые неотрицательные значения хj ( ), которые бы максимизировали функцию:
(1.1)
при ограничении
(1.2)
где xj — количество груза j-гo типа, позволяющее достичь max .
Процесс решения рассматриваемой задачи не является многоэтапным. Она относится к классу задач целочисленного линейного программирования. Однако ее можно решить методом динамического программирования. Для этого весь процесс решения потребуется разбить на этапы искусственно. На первом этапе рассматривают всевозможные варианты загрузки самолета предметами первого типа и среди них находят оптимальный. На втором этапе определяют вариант загрузки самолета предметами первого и второго типов и т.д. Процесс решения задачи продолжается до тех пор, пока не будет найден оптимальный вариант загрузки самолета предметами n типов.[1, с 241]
Вычисления в динамическом программировании выполняются рекуррентно в том смысле, что оптимальное решение одной подзадачи используется в качестве исходных данных для следующей. Решив последнюю подзадачу, мы получим оптимальное решение исходной задачи. Способ выполнения рекуррентных вычислений зависит от того, как производится декомпозиция исходной задачи. В частности, подзадачи обычно связаны между собой некоторыми общими ограничениями. Если осуществляется переход от одной подзадачи к другой, то должны учитываться эти ограничения.[2, с 441]
1.1 Принцип оптимальности Беллмана
Метод динамического программирования позволяет одну задачу со многими переменными заменить рядом последовательно решаемых задач с меньшим числом переменных. Процесс решения задачи разбивается на шаги. При этом нумерация шагов, как правило, осуществляется от конца к началу.
Основным принципом, на котором базируются оптимизация многошагового процесса, а также особенности вычислительного метода, динамического программирования, является принцип оптимальности Р. Беллмана.
Оптимальное поведение обладает тем свойством, что каковы бы ни были начальное состояние и начальное решение, последующие решения должны быть оптимальными относительно состояния, полученного в результате первоначального решения.
Принцип оптимальности имеет конструктивный характер и непосредственно указывает процедуру нахождения оптимального решения. Математически он записывается выражением вида:
(1.3)
где — оптимальное значение эффекта, достигаемого за шагов; n — количество шагов (этапов); — состояние системы на - м шаге; — решение (управление), выбранное на - м шаге; — непосредственный эффект, достигаемый на - м шаге.
"Optimum" в выражении (1.3) означает максимум или минимум в зависимости от условия задачи. Все вычисления, дающие возможность найти оптимальное значение эффекта, достигаемого за n шагов, n(So), проводятся по формуле (1.3), которая носит название основного функционального уравнения Беллмана или рекуррентного соотношения. Действительно, при вычислении очередного значения функции используются значение функции , полученное на предыдущем шаге, и непосредственное значение эффекта , достигаемого в результате выбора решения при заданном состоянии системы . Процесс вычисления значений функции осуществляется при естественном начальном условии , которое означает, что за пределами конечного состояния системы эффект равен нулю.[1, с 243]
1.2 Вычислительная схема
Оптимальное решение задачи методом динамического программирования находится на основе функционального уравнения (1.3). Чтобы определить его, необходимо:
-
Записать функциональное уравнение для последнего состояния процесса (ему соответствует ):
; (1.4)
-
Найти из дискретного набора его значений при некоторых фиксированных и из соответствующих допустимых областей ( так как , то ). В результате после первого шага известно решение и соответствующее значение функции ;
-
Уменьшить значение на единицу и записать соответствующее функциональное уравнение. При оно имеет вид:
; (1.5)
-
Найти условно-оптимальное решение на основе выражения (1.5);
-
Проверить, чему равно значение . Если расчет условно-оптимальных решений закончен, при этом найдено оптимальное решение задачи для первого состояния процесса. Если перейти к выполнению п. 3;
-
Вычислить оптимальное решение задачи для каждого последующего шага процесса, двигаясь от конца расчетов к началу.[1, с 244]
2. Решение задачи оптимального распределения средств на расширение производства
2.1 Решение задачи оптимального распределения средств на расширение производства ручным способом
Широкий класс составляют задачи, в которых речь идет о наиболее целесообразном распределении во времени тех или иных ресурсов (денежных средств, рабочей силы, сырья и т.п.). Рассмотрим пример задачи такого рода.
Производственному объединению из четырех предприятий выделяется банковский кредит в сумме 60 млн. ден. ед. для реконструкции и модернизации производства с целью увеличения выпуска продукции. Значения дополнительного дохода, получаемого на предприятиях объединения в зависимости от выделенной суммы xi, приведены в табл. 2.1. Распределить выделенный кредит между предприятиями так, чтобы дополнительный доход объединения был максимальным.[1, с 261]
Таблица 2.1 – Значения дополнительного дохода
Выделенные средства xi, млн. ден. ед. | Предприятие | |||
Получаемый доход, млн. ден. ед. | ||||
|
|
|
| |
0 20 40 60 | 0 9 18 24 | 0 11 19 30 | 0 16 32 40 | 0 13 27 44 |
Решение. Пусть n=1. В соответствии с вычислительной схемой динамического программирования рассмотрим сначала случай n=1, т.е. предположим, что все имеющиеся средства выделяются на реконструкцию и модернизацию одного предприятия. Обозначим через 1(x) максимально возможный дополнительный доход на этом предприятии, соответствующий выделенной сумме x. Каждому значению x отвечает вполне определенное (единственное) значение дополнительного дохода, поэтому можно записать, что:
(2.1)