Автор работы: Пользователь скрыл имя, 27 Сентября 2011 в 10:26, курсовая работа
Целью исследования методов является выявление наилучшего способа действия при решении той или иной задачи. Главная роль при этом отводится математическому моделированию. Для решения математических моделей предназначены различные математические методы. Среди них метод динамического программирования, рассмотренный в данной работе.
ВВЕДЕНИЕ…………………………………………………………………..3
I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ……………………………………………..5
1.1. Задача динамического программирования ………………………..5
1.2. Примеры задач динамического программирования………………9
1.3. Общая структура динамического программирования……………13
1.4. Понятие о методе ветвей и границ………………………………….15
II.ПРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………21
2.1.Применение метода ветвей и границ для задач календарного планирования ……………………………………………………………….21
ЗАКЛЮЧЕНИЕ………………………………………………………………27
Библиографический список………………………………………………..28
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
СРЕДНЕГО
ПРОФЕССИОНАЛЬНОГО
ОБРАЗОВАНИЯ –
ТЕХНИКУМ «ШЕНТАЛИНСКОЕ
МЕДИЦИНСКОЕ УЧИЛИЩЕ»
КУРСОВАЯ
РАБОТА
Дисциплина:
Математические методы
Тема:
Динамическое программирование.
Филиппов Александр
Владимирович
Курс ІV, группа 496
Научный руководитель:
Шентала,
2011г.
Содержание
ВВЕДЕНИЕ…………………………………………………………
I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ……………………………………………..5
1.1. Задача динамического программирования ………………………..5
1.2. Примеры
задач динамического
1.3. Общая
структура динамического
1.4. Понятие о методе
ветвей и границ………………………………….15
II.ПРАКТИЧЕСКАЯ ЧАСТЬ………………………………………………21
2.1.Применение
метода ветвей и границ для
задач календарного
ЗАКЛЮЧЕНИЕ……………………………………………………
Библиографический
список………………………………………………..28
ВВЕДЕНИЕ
Работа над данным курсовым проектом позволяет закрепить знания по предмету «Математические методы».
В наше время наука уделяет все большое внимание вопросам организации и управления, это приводит к необходимости анализа сложных целенаправленных процессов под углом зрения их структуры и организации. Потребности практики вызвали к жизни специальные методы, которые удобно объединять под названием «исследование операций». Под этим термином понимается применение математических, количественных методов для обоснования решений во всех областях целенаправленной человеческой деятельности.
Актуальность темы заключается в том, что метод динамического программирования, в частности метод ветвей и границ, применяется при решении многих экономических и практических задач.
Целью исследования методов является выявление наилучшего способа действия при решении той или иной задачи. Главная роль при этом отводится математическому моделированию. Для решения математических моделей предназначены различные математические методы. Среди них метод динамического программирования, рассмотренный в данной работе.
Для выполнения поставленной цели мною решены следующие задачи:
- изучен теоретический
материал по динамическому
- дано понятие о методе ветвей и границ;
- решена практическая задача по применению метода ветвей и границ.
Курсовая работа состоит из
введения, теоретической части,
I.ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
I. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Большинство методов исследования операций связано в первую очередь с задачами вполне определенного содержания. Классический аппарат математики оказался малопригодным для решения многих задач оптимизации, включающих большое число переменных и/или ограничений в виде неравенств. Несомненна привлекательность идеи разбиения задачи большой размерности на подзадачи меньшей размерности, включающие всего по нескольких переменных, и последующего решения общей задачи по частям. Именно на этой идее основан метод динамического программирования.
Динамическое программирование (ДП) представляет собой математический метод, заслуга создания и развития которого принадлежит прежде всего Беллману. Метод можно использовать для решения весьма широкого круга задач, включая задачи распределения ресурсов, замены и управления запасами, задачи о загрузке. Характерным для динамического программирования является подход к решению задачи по этапам, с каждым из которых ассоциирована одна управляемая переменная. Набор рекуррентных вычислительных процедур, связывающих различные этапы, обеспечивает получение допустимого оптимального решения задачи в целом при достижении последнего этапа.
Происхождение названия динамическое программирование, вероятно, связано с использованием методов ДП в задачах принятия решений через фиксированные промежутки времени (например, в задачах управления запасами). Однако методы ДП успешно применяются также для решения задач, в которых фактор времени не учитывается. По этой причине более удачным представляется термин многоэтапное программирование, отражающий пошаговый характер процесса решения задачи.
Фундаментальным принципом, положенным в основу теории ДП, является принцип оптимальности. По существу, он определяет порядок поэтапного решения допускающей декомпозицию задачи (это более приемлемый путь, чем непосредственное решение задачи в исходной постановке) с помощью рекуррентных вычислительных процедур.
Динамическое программирование позволяет осуществлять оптимальное планирование управляемых процессов. Под «управляемыми» понимаются процессы, на ход которых мы можем в той или другой степени влиять.
Пусть
предполагается к осуществлению
некоторое мероприятие или
Сформулируем общий принцип, лежащий в основе решения всех задач динамического программирования («принцип оптимальности»):
«Каково бы ни было состояние системы S перед очередным шагом, надо выбрать управление на этом шаге так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным».
Динамическое программирование – это поэтапное планирование многошагового процесса, при котором на каждом этапе оптимизируется только один шаг. Управление на каждом шаге должно выбираться с учетом всех его последствий в будущем.
При постановке задач динамического программирования следует руководствоваться следующими принципами:
Этому выигрышу соответствует условное оптимальное управление на i-м шаге xi(S) (причем в уже известную функцию Wi+1(S) надо вместо S подставить измененное состояние )
Заметим, что если состояние системы в начальный момент известно (а это обычно бывает так), то на первом шаге варьировать состояние системы не нужно - прямо находим оптимальный выигрыш для данного начального состояния S0. Это и есть оптимальный выигрыш за всю операцию
Данные
этапы рассматривались для
(если
только выигрыши wi положительны).
Эти задачи решаются точно так же, как
задачи с аддитивным критерием, с той единственной
разницей, что в основном уравнении (1.2)
вместо знака «плюс» ставится знак «умножения»:
1.2.
Примеры задач динамического
программирования
Задача планирования рабочей силы:
При выполнении некоторых проектов число рабочих, необходимых для выполнения какого-либо проекта, регулируется путем их найма и увольнения. Поскольку как наем, так и увольнение рабочих связано с дополнительными затратами, необходимо определить, каким образом должна регулироваться численность рабочих в период реализации проекта.
Предположим, что проект будет выполнятся в течение n недель и минимальная потребность в рабочей силе на протяжении i-й недели составит bi рабочих. При идеальных условиях хотелось бы на протяжении i-й недели иметь в точности bi рабочих. Однако в зависимости от стоимостных показателей может быть более выгодным отклонение численности рабочей силы как в одну, так и в другую сторону от минимальных потребностей.
Если xi – количество работающих на протяжении i-й недели, то возможны затраты двух видов: 1) С1(xi- bi)-затраты, связанные с необходимостью содержать избыток xi - bi рабочей силы и 2) С2(xi- xi-1)-затраты, связанные с необходимостью дополнительного найма (xi- xi-1) рабочих.
Элементы модели динамического программирования определяются следующим образом: