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

Автор работы: Пользователь скрыл имя, 17 Ноября 2013 в 19:56, курсовая работа

Краткое описание

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

Содержание

Введение 5
1.Нормативные ссылки. 7
2.Детерминированные модели 8
3.Динамическое програмирование 10
3.1.Задачи динамического програмирования 10
3.2.Общая постановка задач динамического програмирования 13
3.3.Общая структура динамического програмирования 14
4.Статистические модели управления запасами 16
4.1.Классическая задача экономического размера заказа 16
4.2.Задача экономического размера заказа с разрывами цен 18
4.3.Многопродуктовая статистическая модель с ограниченной вместимостью склада. 21
5.Динамические задачи экономического размера заказа 24
5.1..Модель при отсутствии затрат на оформление заказа 24
5.2.Модель с затрвттами на оформление заказа 25
6. Решение задач 29
6.1 Математическое решение задач. 29
6.2 Реализация примера 1 31
Заключение 33
Список использованной литературы. 34

Прикрепленные файлы: 1 файл

Курсовая работа..docx

— 334.00 Кб (Скачать документ)

Содержание

 

Введение 5

1.Нормативные ссылки. 7

2.Детерминированные модели 8

3.Динамическое програмирование 10

    3.1.Задачи динамического програмирования 10

    3.2.Общая постановка задач динамического програмирования 13

    3.3.Общая структура динамического програмирования 14

4.Статистические модели управления запасами 16

    4.1.Классическая задача экономического размера заказа 16

   4.2.Задача экономического размера заказа с разрывами цен 18

    4.3.Многопродуктовая статистическая модель с ограниченной вместимостью склада. 21

5.Динамические задачи экономического размера заказа 24

  5.1..Модель при отсутствии затрат на оформление заказа 24

    5.2.Модель с затрвттами на оформление заказа 25

6. Решение задач 29

     6.1 Математическое решение задач. 29

     6.2 Реализация примера 1 31

Заключение 33

Список использованной литературы. 34

 

 

 

 

ВВЕДЕНИЕ

 

В наше время наука уделяет  все большое внимание вопросам организации  и управления, это приводит к необходимости  анализа сложных целенаправленных процессов под углом зрения их структуры и организации. Потребности практики вызвали к жизни специальные методы, которые удобно объединять под названием «исследование операций». Под этим термином понимается применение математических, количественных методов для обоснования решений во всех областях целенаправленной человеческой деятельности. Целью исследования операций является выявление наилучшего способа действия при решении той или иной задачи. Главная роль при этом отводится математическому моделированию. Для построения математической модели необходимо иметь строгое представление о цели функционирования исследуемой системы и располагать информацией об ограничениях, которые определяют область допустимых значений. Цель и ограничения должны быть представлены в виде функций. В моделях исследования операций переменные, от которых зависят ограничения и целевая функция, могут быть дискретными (чаще всего целочисленными) и континуальными (непрерывными). В свою очередь, ограничения и целевая функция делятся на линейные, и нелинейные. Существуют различные методы решения данных моделей, наиболее известными и эффективными из них являются методы линейного программирования, когда целевая функция и все ограничения линейные. Для решения математических моделей других типов предназначены методы динамического программирования, целочисленного программирования, нелинейного программирования, многокритериальной оптимизации и методы сетевых моделей. Практически все методы исследования операций порождают вычислительные алгоритмы, которые являются итерационными по своей природе. Это подразумевает, что задача решается последовательно (итерационно), когда на каждом шаге (итерации) получаем решение, постепенно сходящиеся к оптимальному решению. Итерационная природа алгоритмов обычно приводит к объемным однотипным вычислениям. В этом и заключается причина того, что эти алгоритмы разрабатываются, в основном, для реализации с помощью вычислительной техники.

Работа над данным курсовым проектом позволяет закрепить знания по предмету «Алгоритмы и структуры  данных».

В курсовой работе рассматриваются детерминированные модели в динамическом программировании, задачи динамического программирования, постановка задач и их общая структура, статистические модели управления запасами, динамические задачи размера заказа.

 

1.Нормативные ссылки

В пояснительной записке использованы ссылки на следующие государственные  стандарты:

  • ГОСТ Р 1.5-2004. Стандарты национальные РФ. Правила построения, изложения, оформления и обозначения;
  • ГОСТ 2.301-68 ЕСКД. Форматы;
  • ГОСТ Р 7.0.5-2008 СИБИД. Библиографическая ссылка. Общие    требования и правила составления;
  • ГОСТ 7.12-93 СИБИД. Библиографическая запись. Сокращения слов на русском языке. Общие требования и правила;
  • ГОСТ 7.9-95 СИБИД. Реферат и аннотация. Общие требования;
  • ГОСТ  7.82-2001 СИБИД. Библиографическая запись.

Библиографическое описание электронных  ресурсов. Общие     требования и правила составления.

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Детерминированные модели

Детерминированные модели такого типа исследуются аналитически, если они достаточно просты, и с использованием ЭВМ, если вместо одного уравнения в описании модели фигурируют, например, системы большого числа уравнений и искомые функции зависят от большого числа переменных. Имитационный эксперимент с помощью ЭВМ состоит для таких моделей в численном решении соответствующих уравнений. При этом, как правило, требуется замена исходной системы уравнений разностной системой или применение другой дискретизации, что вносит в общем случае дополнительную погрешность, обусловленную выбором численного метода.  Характеризуются тем, что знание их параметров в некотором интервале позволяет полностью определить динамику этих моделей вне этого интервала. Для стохастических моделей знание параметров модели для некоторого интервала времени позволяет определить лишь вероятностные характеристики этих моделей.  Детерминированная модель может применяться для описания объекта, если факторы и отклик по своей природе являются неслучайными величинами, погрешностями измерения которых можно пренебречь. В данном случае каждому набору значений факторов соответствует одно или четко определенное множество значений отклика.  Детерминированные модели игнорируют эти случайные изменения. Не позволяют одновременно определить влияние нескольких факторов и не учитывают взаимозаменяемости факторов в системе обратных связей.  Детерминированные модели бывают периодическими и непериодическими. И те и другие могут быть непрерывными во времени или представлены в виде последовательности дискретных импульсов. Эти сигналы описываются либо с помощью интеграла Фурье, либо изображением по Лапласу. Строятся на основе математических закономерностей, описывающих физико-химические процессы в объекте. Поведение системы можно предсказать достаточно точно. Детерминированные модели строятся на основе обобщенных уравнений материального и теплового балансов, которые определяются макрокинетикой процесса. Детерминированная модель позволяет прогнозировать будущее оригинала при наличии достаточной исходной информации о прошлом объекта. Соответствует определенным связям входных и выходных параметров процесса. Стохастические модели используют в случае неполной определенности связей переменных параметров и показателей качества отливок, но которые можно оценить статистически. Детерминированная модель задана в виде логических, алгебраических, дифференциальных уравнений или их решений (записанных как функции времени), а также экспериментальных данных, полученных в натурных условиях и при проведении ускоренных коррозионных испытаний. Детерминированные модели используются в тех технологических задачах, в которых по тем или иным причинам можно пренебречь реально существующими флуктуациями реальных значений параметров и результатов их измерений. В детерминированных моделях отсутствуют вероятностные элементы.

 

Даны параметры α,β,γ        Вычислить x = f(α,β,γ)    Вычислить y = (α,β,γ)       А



А          Вычислить z = (α,β,γ)  Выход


            

Рисунок 1 – Пример детерминированной модели

 

 

 

 

 

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

3.1  Задача динамического программирования

Динамическое  программирование представляет собой  метод оптимизации многошаговых процессов принятия решении, позволяющий указать пути исследования целого класса экстремальных задач. 
Большинство методов исследования операций связано в первую очередь с задачами вполне определенного содержания. Классический аппарат математики оказался малопригодным для решения многих задач оптимизации, включающих большое число переменных и/или ограничений в виде неравенств. Несомненна привлекательность идеи разбиения задачи большой размерности на подзадачи меньшей размерности, включающие всего по нескольких переменных , и последующего решения общей задачи по частям. Именно на этой идее основан метод динамического программирования. Динамическое программирование (ДП) представляет собой математический метод, заслуга создания и развития которого принадлежит прежде всего Беллману. Метод можно использовать для решения весьма широкого круга задач, включая задачи распределения ресурсов, замены и управления запасами, задачи о загрузке. Характерным для динамического программирования является подход к решению задачи по этапам, с каждым из которых ассоциирована одна управляемая переменная. Набор рекуррентных вычислительных процедур, связывающих различные этапы, обеспечивает получение допустимого оптимального решения задачи в целом при достижении последнего этапа. Происхождение названия динамическое программирование, вероятно, связано с использованием методов ДП в задачах принятия решений через фиксированные промежутки времени (например, в задачах управления запасами). Однако методы ДП успешно применяются также для решения задач, в которых фактор времени не учитывается. По этой причине более удачным представляется термин многоэтапное программирование, отражающий пошаговый характер процесса решения задачи. Фундаментальным принципом, положенным в основу теории ДП, является принцип оптимальности. По существу, он определяет порядок поэтапного решения допускающей декомпозицию задачи (это более приемлемый путь, чем непосредственное решение задачи в исходной постановке) с помощью рекуррентных вычислительных процедур.

Динамическое  программирование позволяет осуществлять оптимальное планирование управляемых процессов. Под «управляемыми» понимаются процессы, на ход которых мы можем в той или другой степени влиять. Пусть предполагается к осуществлению некоторое мероприятие или серия мероприятий («операция»), преследующая определенную цель. Спрашивается: как нужно организовать (спланировать) операцию для того, чтобы она была наиболее эффективной? Для того, чтобы поставленная задача приобрела количественный, математический характер, необходимо ввести в рассмотрение некоторый численный критерий W, которым мы будем характеризовать качество, успешность, эффективность операции. Критерий эффективности в каждом конкретном случаи выбирается исходя из целевой направленности операции и задачи исследования (какой элемент управления оптимизируется и для чего). Сформулируем общий принцип, лежащий в основе решения всех задач динамического программирования («принцип оптимальности»): «Каково бы ни было состояние системы S перед очередным шагом, надо выбрать управление на этом шаге так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным». Динамическое программирование – это поэтапное планирование многошагового процесса, при котором на каждом этапе оптимизируется только один шаг. Управление на каждом шаге должно выбираться с учетом всех его последствий в будущем. При постановке задач динамического программирования следует руководствоваться следующими принципами:

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

налагаемые  на них ограничения.

  • Определить какой выигрыш приносит на i-ом шаге управление xi

, если перед  этим система была в состоянии  S, т.е. записать «функцию выигрыша»:

  • Определить, как изменяется состояние S системы S под влиянием

управление  xi на i-ом шаге: оно переходит в новое состояние

  • Записать основное рекуррентное уравнение динамического программирования, выражающее условный оптимальный выигрыш Wi(S) (начиная с i-го шага и до конца) через уже известную функцию Wi+1(S): Этому выигрышу соответствует условное оптимальное управление на i-м шаге xi(S) (причем в уже известную функцию Wi+1(S) надо вместо S подставить измененное состояние)
  • Произвести условную оптимизацию последнего (m-го) шага, задаваясь гаммой состояний S, из которых можно за один шаг дойти до конечного состояния, вычисляя для каждого из них условный оптимальный выигрыш по формуле
  • Произвести условную оптимизацию (m-1)-го, (m-2)-го и т.д. шагов по формуле (1.2), полагая в ней i=(m-1),(m-2),., и для каждого из шагов указать условное оптимальное управление xi(S), при котором максимум достигается. Заметим, что если состояние системы в начальный момент известно (а это обычно бывает так), то на первом шаге варьировать состояние системы не нужно – прямо находим оптимальный выигрыш для данного начального состояния S0. Это и есть оптимальный выигрыш за всю операцию.
  • Произвести безусловную оптимизацию управления, «читая» соответствующие рекомендации на каждом шаге. Взять найденное оптимальное управление на первом шаге; изменить состояние системы по формуле  ; для вновь найденного состояния найти оптимальное управление на втором шаге х2* и т.д. до конца.
  • Данные этапы рассматривались для аддитивных задач, в которых выигрыш за всю операцию равен сумме выигрышей на отдельных шагах. Метод динамического программирования применим также и к задачам с так называемым «мультипликативным» критерием, имеющим вид произведения.

 

3.2 Общая постановка задачи динамического программирования

Метод оказывается весьма эффективным при анализе задач с аддитивной целевой  функцией 

f(x1,x2,…,xn) =          (1)

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

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

Предположим, что интересующий нас процесс можно разбить  на N шагов, а действия, совершаемые  на i-ом шаге, характеризуются совокупностью показателей . Состояние процесса к началу этого шага имеет характеристику в виде набора параметров  . Обычно предпринимаемые действия не являются полностью произвольными, а зависят от состояния  , которое возникло перед i-ым шагом. Очевидно, результирующее значение критерия Z, получаемое в конце процесса, будет определяться теми, которые были приняты. Возникает вопрос: Как выбрать x , чтобы величина Z приняла экстремальное значение? Ответ можно получить, рассматривая Z как функцию переменных  и находя экстремум z одним из известных способов, однако этот путь не всегда прост. Появляется идея провести оптимизацию поэтапно, анализируя последовательно каждый шаг процесса в поисках наилучших вариантов его продолжения. Эта идея лежит в основе метода динамического программирования, реализующего принцип последовательной оптимизации. Следовательно, важным условием применимости рассматриваемого метода является возможность разбиения процесса принятия решений на ряд однотипных шагов или этапов, каждый из которых планируется отдельно, но с учетом результатов, полученных на других шагах. Динамическое программирование основывается на двух важных принципах- Принцип оптимальности и принцип вложения. Принцип оптимальности формулируется следующим образом: Каково бы ни было состояние системы в результате какого-то числа шагов, мы должны выбирать управление на ближайшем шаге так, чтобы оно, в совокупности с оптимальным управлением на всех последующих шагах, приводило к максимальному выигрышу на всех оставшихся шагах, включая данный.

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

Реализация названных  принципов дает гарантию того, что, во-первых, решение, принимаемое на очередном шаге, окажется наилучшим  с точки зрения всего процесса (а не "узких интересов" отдельного этапа) и, во-вторых, последовательность решений одношаговой, двух шаговой и т. п. задач приведет к решению исходной N-шаговой задачи.

Информация о работе Детерминированные модели динамического программирования