Автор: Пользователь скрыл имя, 25 Января 2012 в 15:10, курсовая работа
Целью исследования является выявление наилучшего способа действия при решение той или иной задачи. Для построения математической модели необходимо иметь строгое представление о цели функционирования исследуемой системы и располагать информацией об ограничениях, которые определяют область допустимых значений.
Введение 3
1. Динамическое программирование 5
1.1 Задача динамического программирования 5
1.2 Общая структура динамического программирования 8
2. Задача о загрузке. Общие сведения 10
3. Практическая часть. Задача 12
Заключение 19
Список литературы 21
Максимизировать z=r1m1+r2m2+…+rnmn.
при условии, что
w1m1+w2m2+…+wnmn
m1,m2,…,mn
Три элемента модели динамического программирования определяются следующим образом:
Пусть fi(xi)-максимальная суммарная прибыль от этапов і,і+1,...,n при заданном состоянии xi. Проще всего рекуррентное уравнение определяется с помощью следующей двухшаговой процедуры.
Шаг 1. Выразим fi(xi) как функцию fi+1(xi+1) в виде
где fn+1(xn+1)=0.
Шаг 2. Выразим xi+1 как функцию xi для гарантии того, что левая часть последнего уравнения является функцией лишь xi. По определению xi-xi+1 представляет собой вес, загруженный на этапе і, т.е. xi-xi+1=wimi или xi+1=xi-wimi. Следовательно, рекуррентное уравнение приобретает следующий вид:
3.
Практическая часть.
Задача
Депутат
некоторого округа баллотируется на
следующий срок. Денежные средства
на предвыборную кампанию составляют
примерно 100000 руб. Хотя комитет по переизбранию
хотел бы провести кампанию во всех
пяти избирательных участках округа, ограниченность
денежных средств, предписывает по-другому.
Приведенная ниже таблица содержит данные
о числе избирателей и денежных средств,
необходимых для проведения успешной
кампании по каждому избирательному участку.
Каждый участок может либо использовать
все предназначенные деньги, либо вовсе
их не использовать. Как следует распределить
денежные средства?
Участок | Число
избирателей, w |
Необходимые
средства (руб.), m |
1 | 3100 | 35000 |
2 | 2600 | 25000 |
3 | 3500 | 40000 |
4 | 2800 | 30000 |
5 | 2400 | 20000 |
По условию задачи максимальная сумма денежных средств на предвыборную кампанию не должна превышать 100000 руб., т.е. M = 100000 руб. Тогда m – необходимые средства по каждому участку, а w – число избирателей.
Построение экономико-математической модели:
Отметим, что в данной задаче выполняются основные допущения метода динамического программирования: отсутствие последействия и аддитивность результирующей целевой функции. Значит, можно непосредственно приступить к расчетам в соответствии с методом динамического программирования.
В данном курсовом проекте все получаемые при решении задачи таблицы приведены сразу окончательно заполненными.
Предварительный этап. Данный этап проводится в естественном порядке для i=1,2,3,4,5, причем заполняются только первая строка вспомогательной таблицы и четыре левых столбца основной таблицы. Заполнение второй строки вспомогательной таблицы и оставшихся столбцов основной таблицы производится на этапе условной оптимизации. B0(x0) выражает максимальное значение сумм частных целевых функций на шагах от 1 до 5. Эта функция вычисляется с учетом функции B1(x1), которая является максимальным значением сумм частных целевых функций на шагах от 2 до 5 и т.д.
i
= 1.
Вспомогательная
таблица соответствует
Таблица 3.1
Вспомогательная
таблица на шаге 1
x0 | 0 |
B0(x0) | 9200 |
Заполнение
основной таблицы проводится обычным
образом. Для заданного единственного
допустимого значения x0=0
выбираются все возможные значения управления
r1 и заносятся во второй столбец
таблицы. При этом r1 может
принимать только значения 1 или 0. По формулам,
приведенным выше, проводится расчет соответствующих
значений переменных x1 и z1.
Они заносятся в третий и четвертый столбцы.
Получается основная таблица.
Таблица 3.2
Основная таблица на шаге 1
x0 | r1 | x1 | z1 | B1(x1) | z1+B1 | B0(x0) |
0 | 0
1 |
0
35000 |
0
3100 |
8900
6100 |
8900
9200 |
9200 |
i = 2.
На
втором шаге в первую строку вспомогательной
таблицы внесем все переменные
x1, рассчитанные на предшествующем
шаге и фигурирующие в третьем столбце
предыдущей основной таблицы:
Таблица 3.3
Вспомогательная таблица на шаге 2
x1 | 0 | 35000 |
B1(x1) | 8900 | 6100 |
Для заполнения основной таблицы будем последовательно выбирать все допустимые значения х1, внесенные во вспомогательную таблицу, и проводить соответствующие расчеты:
Таблица 3.4
Основная таблица на шаге 2
x1 | r2 | x2 | z2 | B2(x2) | z2+B2 | B1(x1) |
0 | 0
1 |
0
25000 |
0
2600 |
8700
6300 |
8700
8900 |
8900 |
35000 | 0
1 |
35000
60000 |
0
2600 |
5900
3500 |
5900
6100 |
6100 |
Аналогичные расчеты производятся на остальных этапах решения.
i
= 3.
Таблица 3.5
Вспомогательная таблица на шаге 3
x2 | 0 | 25000 | 35000 | 60000 |
B2(x2) | 8700 | 6300 | 5900 | 3500 |
Таблица 3.6
Основная таблица на шаге 3
x2 | r3 | x3 | z3 | B3(x3) | z3+B3 | B2(x2) |
0 | 0
1 |
0
40000 |
0
3500 |
5200
5200 |
5200
8700 |
8700 |
25000 | 0
1 |
25000
65000 |
0
35000 |
5200
2800 |
5200
6300 |
6300 |
35000 | 0
1 |
35000
75000 |
0
3500 |
5200
2400 |
5200
5900 |
5900 |
60000 | 0
1 |
60000
100000 |
0
3500 |
2800
0 |
2800
3500 |
3500 |