Реализация на ЭВМ решения задачи оптимального распределения средств на расширение производства

Автор: Пользователь скрыл имя, 18 Сентября 2011 в 21:13, курсовая работа

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

Целью данной работы является реализация на ЭВМ решения задачи оптимального распределения средств на расширение производства.

Задачи курсовой работы:

Рассмотреть теоретические аспекты решения задач динамического программирования; рекуррентность природы задач данного типа; принципы оптимальности Беллмана.
Разработка алгоритма. Блок - схемы. Структура алгоритма.
Реализация на ЭВМ разработанного алгоритма на выбранном языке программирования

Оглавление

ВВЕДЕНИЕ 3
1. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ 4
1.1. Основные понятия 4
1.2. Принципы динамического программирования. Функциональные уравнения Беллмана 4
1.3. Особенности задач динамического программирования 8
1.4. Примеры задач динамического программирования. 10
2. ЗАДАЧА РАСПРЕДЕЛЕНИЯ РЕСУРСОВ 12
2.1. Общая постановка задачи. 12
2.2. Пример задачи распределения ресурсов 14
ЗАКЛЮЧЕНИЕ 18
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 19
ПРИЛОЖЕНИЕ А 20
ПРИЛОЖЕНИЕ В 25

Файлы: 1 файл

курсовая.doc

— 1.16 Мб (Скачать)

      Fk(x) = (zk(xk)+Fk-1(x – xk-1))

Решение исходной задачи получим при х = Х0, k= N, т. е. из соотношения

      FN(X0) = (zN(xN)+FN-1(X0 - xN)).

Найдя FN(X0) =  (X0), определяем . Зная , находим X0 . Следовательно, найдем и FN-1(X0 ). Из выражения

      FN-1(X0 ) = (zN-1(xN-1) + FN-2(X0 – xN-1))

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

     Вычислительная  схема решения задачи распределения ресурсов методом динамического программирования состоит в следующем: промежуток 0 ≤ x ≤ X0 разбивают, например, на n интервалов с шагом ∆ и считают, что функции zi(x) и Fi(x)определены только в точках х =0, ∆, 2∆, 3∆,..., причем n∆ =X0. Значения FN(x) для х, отличных от точек k∆, где k=0, 1, 2,.., n, получают интерполяцией. При i=1 функция F1(x) определяется равенством F1(x) = z1(x). Множество значений F1(k∆) =z1(k∆) (к=0,1,2, …, n) записывают в таблицу. Зная значения F1(k∆), переходят к вычислению значений функции F2(k∆):

      F2(x) = (z2(k∆)+F1(X0-k∆)).

В ходе вычислений устанавливаются не только значения F2(x)
x = k∆,
0≤k≤X0 (k =0,1,2, …, n), но и такие значения x2, при которых достигает максимума выражение z2(k∆)+ F1(X0-k∆).

      Переходим к отысканию функции F3(x) и т. д. Пройдя весь процесс вычисления функций Fi(x) (i= ), получим

      FN(X0) = (zN(xN)+FN-1(X0-xN)).

т. е. FN(X0) =max Z, . На последнем этапе достигается максимальное значение функции цели FN(X0) и оптимальный объем ресурса, выделяемого  
N-му предприятию, т. е. . Затем процесс вычислений просматривается в обратном порядке. Зная находим X0 – объем ресурса, подлежащего распределению между оставшимися N–1 предприятиями. Так как раньше найдено значение

      FN-1(x) = (zN-1(xN-1)+FN-2(X0-xN-1))

отсюда  находим FN-1(X0- ) и, следовательно, и т.д. Продолжая процесс к началу, определяем . Тем самым будет завершен процесс определения оптимального плана распределения ограниченного ресурса. Практическое применение рассмотренной выше схемы представлено в приложении. Ниже проиллюстрируем рассмотренную задачу числовым примером.

    1. Пример задачи распределения ресурсов

     Имеются 6 предприятий, между которыми следует  распределить 200 единиц ограниченного  ресурса. Получаемая предприятиями  прибыль в зависимости от выделенной суммы х представлена в табл. 1. Приняв ∆ = 40, найти оптимальный план распределения

      Таблица 1 Прибыль, получаемая предприятиями в зависимости от выделенных средств.

Выделяемый объем ресурса z1(x) z2(x) z3(x) z4(x) z5(x) z6(x)
0 0 0 0 0 0 0
40 30 28 31 25 30 35
80 58 62 67 73 77 80
120 120 122 130 125 127 133
160 150 146 144 152 149 155
200 180 175 183 180 170 187

     Пусть N = 1, тогда F1(x) = z1(x)

Значения  функции F1(x) помещены в табл. 2. Предположим теперь, что ресурс X0 = 200 единиц распределяется между двумя предприятиями. Тогда 
F2(x) = (z2(x2) + F1(x-x2)), 0 ≤ x ≤ X0

Произведем  вычисления значений функций F2(x) и представим их в табл. 2.

     F2(40) = (z2(0) + F1(40), z2(40) + F1(0)) = (0 + 30, 28 + 0) = 30,

     F2(80) = (z2(0) + F1(80), z2(40) + F1(40), z2(80) + F1(0)) = (0 + 58
28 + 30, 62 + 0) = 62,

     F2(120) = (z2(0) + F1(120), z2(40) + F1(80), z2(80) + F1(40), z2(120) + 
+ F
1(0)) = (0 + 120, 28 + 58, 62 + 30, 122 + 0) = 122.

     Аналогично  имеем

     F2(160) = (0 + 150, 28 + 120, 62 + 58, 122 + 30, 146 + 0) = 152,

     F2(200) = (0 + 180, 28 + 150, 62 + 120, 122 + 58, 146 + 30, 175 + 
+0) = 122.

     Пусть далее, имеющаяся сумма распределяется между тремя предприятиями. Получим  F3(x) = (z3(x3) + F2(x-x3)), 0 ≤ x ≤ X0 . Значения функции F3(x) представлены в табл 2

     F3(40) = (z3(0) + F2(40), z3(40) + F2(0)) = (0 + 30, 31 + 0) = 31,

     F3(80) = (z3(0) + F2(80), z3(40) + F2(40), z3(80) + F2(0)) = (0 + 62
31 + 30, 67 + 0) = 67,

     F3(120) = (0 + 122, 31 + 62, 67 + 30, 130 + 0) = 130,

     F3(160) = (0 + 152, 31 + 122, 67 + 62, 130 + 30, 144 + 0) = 160.

     F3(200) = (0 + 182, 31 + 152, 67 + 122, 130 + 62, 144 + 30, 183 + 
+ 0) = 152

     Затем распределяем ресурсы между четырьмя предприятиями

     F4(x) = (z4(x4) + F3(x-x4)), 0 ≤ x ≤ X0

     F4(40) = (0 + 31, 25 + 0) = 31,

     F4(80) = (0 + 67, 25 + 31, 73 + 0) = 73,

     F4(120) = (0 + 130, 25 + 67, 73 + 31, 125 + 0) = 130,

     F4(160) = (0 + 160, 25 + 130, 73 + 67, 125 + 31, 152 + 0) = 160.

     F4(200) = (0 + 192, 25 + 160, 73 + 130, 125 + 67, 152 + 31, 180 + 
+ 0) = 203

Таблица 2

x F1(x) F2(x) F3(x) F4(x) F5(x) F6(x)
0 0 0 0 0 0 0
40 30 30 31 31 31 35
80 58 62 67 73 77 80
120 120 122 130 130 130 132
160 150 152 160 160 160 165
200 180 182 192 203 2070 210

     Аналогично  распределяем ресурсы между пятью, а затем шестью предприятиями  F5(x) = (z5(x5) + F4(x-x5)), 0 ≤ x ≤ X0

     F5(40) = (0 + 31, 30 + 0) = 31,

     F5(80) = (0 + 73, 30 + 31, 77 + 0) = 77,

     F5(120) = (0 + 130, 30 + 73, 77 + 31, 127 + 0) = 130,

     F5(160) = (0 + 160, 30 + 130, 77 + 73, 127 + 31, 149 + 0) = 160,

     F5(200) = (0 + 203, 30 + 160, 77 + 130, 127 + 73, 149 + 31, 170 + 
+ 0) = 207

     И наконец F6(x) = (z6(x6) + F5(x-x6)), 0 ≤ x ≤ X0

     F6(40) = (0 + 31, 35 + 0) = 35,

     F6(80) = (0 + 77, 35 + 31, 80 + 0) = 80,

     F6(120) = (0 + 130, 35 + 77, 80 + 31, 132 + 0) = 132,

     F6(160) = (0 + 160, 35 + 130, 80 + 77, 132 + 31, 155 + 0) = 165.

     F6(200) = (0 + 207, 35 + 160, 80 + 130, 132 + 77, 155 + 31, 187 + 
+ 0) = 210

     Из таблицы 2 находим оптимальный план распределения. Как видно из табл.2 максимальное значение функции цели составляет 210 единиц, т.е. . Из приведенных расчетов значений F6(х) находим, что шестому предприятию должно быть выделено = 80 единиц ресурса, остальным пяти 200 – 80 = 120 единиц. Из табл. 2 находим, что оптимальное распределение ресурса 120 единиц ресурса между пятью предприятиями составляет 130 единиц прибыли. При этом третьему предприятию следует выделить = 120 единиц ресурса. Отсюда = 0, =0, = 0, = 0. Оптимальный план распределения

     X*=, z(X*)= 210

     Проверка  очевидна z(X*) = z1(0) + z2(0) + z3(120) + z4(0) + z5(0)
+z
6(80) = 210

ЗАКЛЮЧЕНИЕ

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

Информация о работе Реализация на ЭВМ решения задачи оптимального распределения средств на расширение производства