Модель распределения ресурсов

Автор: Пользователь скрыл имя, 10 Мая 2012 в 19:32, курсовая работа

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

Модель распределения ресурсов между двумя предприятиями на n лет

Оглавление

Введение 3
1 Основные понятия 5
1.1 Модель динамического программирования 5
Рисунок 1 5
1.2 Принцип оптимальности. Уравнение Беллмана 8
Рисунок 2 9
Рисунок 3 11
1.3 Постановка задачи 13
1.4 Двумерная модель распределения ресурсов 16
1.5 Дискретная динамическая модель оптимального распределения ресурсов 17
Таблица 1 18
Таблица 2 20
Таблица 3 20
Таблица 4 21
Таблица 5 22
Таблица 6 23
2 Практическая часть 24
3 Проектирование интерфейса пользователя 27
3.1 Блок схема (алгоритм решения) 27
3.2 Интерфейс пользователя 28
Главное окно программы 28
Окно ввода исходных значений 29
Контрольный пример 30
Заключение 32
Список используемых источников 33

Файлы: 1 файл

Курсач.doc

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


Содержание

Введение              3

1 Основные понятия              5

1.1 Модель динамического программирования              5

Рисунок 1              5

1.2 Принцип оптимальности. Уравнение Беллмана              8

Рисунок 2              9

Рисунок 3              11

1.3 Постановка задачи              13

1.4 Двумерная модель распределения ресурсов              16

1.5 Дискретная динамическая модель оптимального распределения ресурсов              17

Таблица 1              18

Таблица 2              20

Таблица 3              20

Таблица 4              21

Таблица 5              22

Таблица 6              23

2 Практическая часть              24

3 Проектирование интерфейса пользователя              27

3.1 Блок схема (алгоритм решения)              27

3.2 Интерфейс пользователя              28

Главное окно программы              28

Окно ввода исходных значений              29

Контрольный пример              30

Заключение              32

Список используемых источников              33


Введение

 

На протяжении всей своей истории люди при необходимости принимать решения прибегали к сложным ритуалам. Они устраивали торжественные церемонии, приносили в жертву животных, гадали по звездам и следили за полетом птиц. Они полагались на народные приметы и старались следовать примитивным правилам, облегчающим им трудную задачу принятия решений. В настоящее время для принятия решения используют новый и, по-видимому, более научный «ритуал», основанный на применении электронно-вычислительной машины. Без современных технических средств человеческий ум, вероятно, не может учесть многочисленные и разнообразные факторы, с которыми сталкиваются при управлении предприятием, конструировании ракеты или регулировании движения транспорта. Существующие в настоящее время многочисленные математические методы оптимизации уже достаточно развиты, что позволяет эффективно использовать возможности цифровых и гибридных вычислительных машин. Одним из этих методов является математическое программирование, включающее в себя как частный случай динамическое программирование.

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

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

Как раздел математического программирования, динамическое программирование (ДП) начало развиваться в 50-х годах XX в. благодаря работам Р. Беллмана и его сотрудников. Впервые этим методом решались задачи оптимального управления запасами, затем класс задач значительно расширился. Как практический метод оптимизации, метод динамического программирования стал возможен лишь при использовании современной вычислительной техники.

В основе метода динамического программирования лежит принцип оптимальности, сформулированный Беллманом. Этот принцип и идея включения конкретной задачи оптимизации в семейство аналогичных многошаговых задач приводят к рекуррентным соотношениямфункциональным уравнениям относительно оптимального значения целевой функции. Их решение позволяет последовательно получить оптимальное управление для исходной задачи оптимизации.


1 Основные понятия

 

1.1 Модель динамического программирования

Дадим общее описание модели динамического программирования.

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

 

Рисунок 1

 

Состояние системы после k-го шага (k= 1,2 …,n) характеризуется параметрами , ,…, которые называются фазовыми координатами. Состояние можно изобразить точкой s-мерного пространства называемого фазовым пространством. Последовательное преобразование системы (по шагам) достигается с помощью некоторых мероприятий , ,…, , которые составляют управление системой , где управление на k шаге, переводящее систему из состояния в состояние (рис. 1). Управление на k-ом шаге заключается в выборе значений определенных управляющих переменных[*] .

Предполагаем впредь, что состояние системы в конце k-го шага зависит только от предшествующего состояния системы и управления на данном шаге (рисунок 1). Такое свойство получило название отсутствия последействия. Обозначим эту зависимость в виде

 

,              (1.1)

 

Равенства (1.1) получили название уравнений состояний. Функции   полагаем заданными.

Варьируя управление U, получим различную «эффективность» процесса[**], которую будем оценивать количественно целевой функцией Z, зависящей от начального состояния системы и от выбранного управления U:

 

.              (1.2)

 

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

 

.              (1.3)

 

Если свойство аддитивности целевой функции Z не выполняется, то этого иногда можно добиться некоторыми преобразованиями функции. Например, если Z— мультипликативная функция, заданная в виде , то можно рассмотреть функцию , которая является аддитивной.

Обычно условиями процесса на управление на каждом шаге накладываются некоторые ограничения. Управления, удовлетворяющие этим ограничениям называются допустимыми.

Задачу пошаговой оптимизации можно сформулировать так: определить совокупность допустимых управлении , ,…, , переводящих систему из начального состояния в конечное состояние и максимизирующих или минимизирующих показатель эффективности (1.3).

Для единообразия формулировок (но не вычислительных процедур!) в дальнейшем мы будем говорить только о задаче максимизации, имея в виду, что если необходимо минимизировать Z, то, заменив Z на Z' = —Z перейдем к максимизации Z'.

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

Если переменные управления принимают дискретные значения, то модель ДП называется дискретной. Если же указанные переменные изменяются непрерывно, то модель ДП называется непрерывной. В зависимости от числа параметров состояний (s) и числа управляющих переменных на каждом шаге (r) различают одномерные и многомерные модели ДП. Число шагов в задаче может быть либо конечным, либо бесконечным.

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

В некоторых задачах, решаемых методом ДП, процесс управления естественно разбивается на шаги. Например, при распределении на несколько лет ресурсов деятельности предприятия шагом естественно считать временной период; при распределении средств между n предприятиями номером шага естественно считать номер очередного предприятия. В других задачах разбиение на шаги вводится искусственно. Например, непрерывный управляемый процесс можно рассматривать как дискретный, условно разбив его на некоторые временные отрезки шаги. Исходя из условий каждой конкретной задачи, длину шага выбирают таким образом, чтобы на каждом шаге получить простую задачу оптимизации и обеспечить требуемую точность вычислений.

 

1.2 Принцип оптимальности. Уравнение Беллмана

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

Иллюстрацией к сказанному выше может служить задача о выборе кратчайшего пути для перехода из точки A в точку B, если маршрут должен пройти через некоторые пункты. На рисунке 2 эти пункты обозначены кружками, а соединяющие их дороги отрезками, рядом с которыми проставлены соответствующие расстояния.


Рисунок 2

 

С точки зрения интересов оптимизации только каждого ближайшего шага выбора кратчайшего пути из данной точки в соседнюю следует двигаться по маршруту, проходящему через точки . Длина этого маршрута равна 34. Такой путь из A в B не является кратчайшим. Например, маршрут, проходящий через точки , имеет меньшую длину, равную 25. Решив эту задачу, можно убедиться, что второй путь также не является оптимальным.

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

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

Использование этого принципа гарантирует, что управление, выбранное на любом шаге, является не локально лучшим, а лучшим с точки зрения процесса в целом.

Так, если система в начале k-го шага находится в состоянии , и мы выбираем произвольное управление , то система придет в новое состояние , и дальнейшие управления должны выбираться оптимальными относительно состояния . Последнее означает, что при этих управлениях максимизируется показатель эффективности на последующих до конца процесса шагах k+1,...,n, т. е. величина . Показатель, характеризующий суммарную эффективность от данного k-го до последнего п-го шага, будем обозначать через , т.е. . Задача оптимизации процесса, начиная с k-го до последнего n-го шага (рисунок 3), похожа на исходную при начальном состоянии системы , управлении и показателе эффективности [аналогично (1.2)]. Выбрав оптимальное управление на оставшихся пk+l шагах, получим величину , которая зависит только от , т. е.

 

.              (1.4)

 

Назовем величину условным максимумом. Если теперь мы выберем на k шаге некоторое произвольное управление , то система придет в состояние . Согласно принципу оптимальности, какое бы мы ни выбрали, на последующих шагах управление должно выбираться так, чтобы показатель эффективности достигал максимального значения, равного . Остается выбрать управление . Его нельзя выбирать из условия локальной максимизации показателя эффективности на данном k шаге, лишь бы получить . Такой подход был бы недальновидным, поскольку от выбора зависит новое состояние , а от последнегомаксимально возможная эффективность, которая может быть достигнута в дальнейшем, т. е. величина . Поэтому необходимо выбирать управление так, чтобы оно в совокупности с оптимальным управлением на последующих шагах (начиная с (k+1)-го) приводило бы к общему максимуму показателя эффективности на п—k+l шагах, начиная с k-го до конца. Это положение в аналитической форме можно записать в виде следующего соотношения:

 

,                            (1.5)

 

получившего название основного функционального уравнения ДП, или уравнения Беллмана. Схематически соотношение (1.5) иллюстрируется на рисунке 3.

 

Рисунок 3

 

Из уравнения (1.5) может быть получена функция , если известна функция ; аналогично можно получить , если найдена и т. д., пока не будет определена величина , представляющая по определению максимальное значение показателя эффективности процесса в целом: .

Соотношения (1.5) для определения последовательности функций через получили название основных рекуррентных уравнений Беллмана.

Решая уравнение (1.5) для определения условного максимума показателя эффективности за n—k+l шагов, начиная с k-го, мы определяем соответствующее оптимальное управление , при котором этот максимум достигается. Это управление также зависит от . Будем обозначать такое управление через и называть условным оптимальным управлением на k-м шаге.

Основное значение уравнения (1.5), в котором реализована идея динамического программирования, заключается в том, что решение исходной задачи определения - максимума функции (1.2) n переменных , ,…, сводится к решению последовательности n задач, задаваемых соотношениями (1.5), каждое из которых является задачей максимизации функции одной переменной . Эти задачи оказываются взаимосвязанными, так как в соотношении (1.5) при определении учитывается найденная при решении предыдущей задачи функция .


1.3 Постановка задачи

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

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

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

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

 

Задача 1. Имеется начальное количество средств , которое необходимо распределить в течение n лет между s предприятиями. Средства , выделенные в k-м году i-му предприятию, приносят доход в размере и к концу года возвращаются в количестве. В последующем распределении доход может либо участвовать (частично или полностью), либо не участвовать.

Требуется определить такой способ распределения ресурсов (количество средств, выделяемых каждому предприятию в каждом плановом году), чтобы суммарный доход от s предприятий за n лет был максимальным.

Следовательно, в качестве показателя эффективности процесса распределения ресурсов за n лет принимается суммарный доход, полученный от s предприятий:

 

.              (2.1)

 

Количество ресурсов в начале k-го года будем характеризовать величиной (параметр состояния). Управление на k-м шаге состоит в выборе переменных , обозначающих ресурсы, выделяемые в k-м году i-му предприятию.

Если предположить, что доход в дальнейшем распределении не участвует, то уравнение состояния процесса имеет вид

 

              (2.2)

 

Если же некоторая часть дохода участвует в дальнейшем распределении в каком-нибудь году, то к правой части равенства (2.2) прибавляется соответствующая величина.

Требуется определить ns неотрицательных переменных , удовлетворяющих условиям (2.2) и максимизирующих функцию (2.1).

Вычислительная процедура ДП начинается с введения функции , обозначающей доход, полученный за пk+1 лет, начиная с k-го года до конца рассматриваемого периода, при оптимальном распределении средств между s предприятиями, если в k-м году распределялось средств. Функции для удовлетворяют функциональным уравнениям (1.5), которые запишутся в виде

 

              (2.3)

 

При согласно (1.5) получаем

 

.              (2.4)

 

Далее необходимо последовательно решить уравнения (2.4) и (2.3) для всех возможных . Каждое из этих уравнений представляет собой задачу на оптимизацию функции, зависящей от s переменных. Таким образом, задача с ns переменными сведена к последовательности n задач, каждая из которых содержит s переменных. В этой общей постановке задача по-прежнему сложна (из-за многомерности) и упростить ее, рассматривая как ns-шаговую задачу, в данном случае нельзя. В самом деле, попробуем это сделать. Пронумеруем шаги по номерам предприятий сначала в 1-м году, затем во 2-м и т. д.:

 

 

и будем пользоваться одним параметром для характеристики остатка средств.

В течение k-го года состояние к началу любого шага (i=l, 2, .... s) определится по предыдущему состоянию с помощью простого уравнения . Однако по истечении года, т. е. к началу следующего года, к наличным средствам необходимо будет добавить средств и, следовательно, состояние в начале -го шага будет зависеть не только от предшествующего ks-го состояния, но и от всех s состояний и управлений за прошлый год. В результате мы получим процесс с последействием. Чтобы исключить последействие, приходится вводить несколько параметров состоянии; задача на каждом шаге остается по-прежнему сложной из-за многомерности.

 

1.4 Двумерная модель распределения ресурсов

Задача 2. Планируется деятельность двух предприятий (s=2) в течение n лет. Начальные средства составляют . Средства x, вложенные в предприятие I, приносят к концу года доход и возвращаются в размере ; аналогично, средства x, вложенные в предприятие II, дают доход и возвращаются в размере . По истечении года все оставшиеся средства заново перераспределяются между предприятиями I и II, новых средств не поступает и доход в производство не вкладывается.

Требуется найти оптимальный способ распределения имеющихся средств.

Будем рассматривать процесс распределения средств как n-шаговый, в котором номер шага соответствует номеру года. Управляемая система два предприятия с вложенными в них средствами. Система характеризуется одним параметром состояния количеством средств, которые следует перераспределить в начале k-го года. Переменных управления на каждом шаге две: и — количество средств, выделенных соответственно предприятию I и II. Так как средства ежегодно перераспределяются полностью, то . Для каждого шага задача становится одномерной. Обозначим через , тогда .

Показатель эффективности k-го шага равен . Этодоход, полученный от двух предприятий в течение k-го года.

Показатель эффективности задачидоход, полученный от двух предприятий в течение n летсоставляет

 

.              (2.5)

 

Уравнение состояния выражает остаток средств после k-го шага и имеет вид

 

.              (2.6)

 

Пусть — условный оптимальный доход, полученный от распределения средств между двумя предприятиями за пk+1 лет, начиная с k-го года до конца рассматриваемого периода. Запишем рекуррентные соотношения для этих функций:

 

;                                           (2.7)

,

 

где - определяется из уравнения состояния (2.6).

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

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

Рассмотрим двумерную задачу, аналогичную предыдущей, в которой строится дискретная модель ДП процесса распределения ресурсов.

 

Задача 3 Составить оптимальный план ежегодного распределения средств между двумя предприятиями в течение трёхлетнего планового периода при следующих условиях: 1) начальная сумма составляет 400; 2) вложенные средства в размере x приносят на предприятии I доход и возвращаются в размере 60% от x, а на предприятии II—соответственно и 20%; 3) ежегодно распределяются все наличные средства, получаемые из возвращенных средств: 4) функции и заданы в таблице 1:

 

Таблица 1

              x    

 

50

100

150

200

250

300

350

400

6

10

15

26

28

38

45

49

8

12

20

28

35

40

46

48

 

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

Процесс управления является трехшаговым. Параметр средства, подлежащие распределению в k году (k=1, 2, 3). Переменная управления — средства, вложенные в предприятие I в k-м году. Средства, вложенные в предприятие II в k-м году, составляют . Следовательно, процесс управления на k шаге зависит от одного параметра (модель одномерная). Уравнение состояния запишется в виде

 

,              (2.8)

 

а функциональные уравнения – в виде

 

,              (2.9)

.              (2.10)

 

Попытаемся определить максимально возможные значения, для которых необходимо проводить табулирование на k-м шаге (k=1, 2, 3). При из уравнения (2.8) определяем максимально возможное значение ; имеем =0,6-400= 2400 (все средства вкладываются в предприятие I). Аналогично, для получаем предельное значение . Пусть интервал изменения  совпадает с табличным, т. е. =50. Составим таблицу суммарной прибыли на данном шаге: (см. табл. 2). Это облегчит дальнейшие расчеты. Так как , то клетки, расположенные по диагонали таблицы, отвечают одному и тому же значению, указанному в 1-й строке (в 1-м столбце) табл. 2. Во 2-й строке таблицы записаны значения , а во 2-м столбце значения , взятые из табл. 1. Значения в остальных клетках таблицы получены сложением чисел и . стоящих во 2-й строке и во 2-м столбце и соответствующих столбцу и строке, на пересечении которых находится данная клетка. Например, для =150 получаем ряд чисел: 20—для x=0, у=150; 18—для x=50, y==100; 18— для x=100, y=50; 15—для x=150, y=0.

 

Таблица 2

       x

y

0

50

100

150

200

250

300

350

400

0

0

6

10

15

26

28

38

45

49

50

8

14

18

23

34

36

46

53

 

 

100

12

18

22

27

38

40

50

 

 

150

20

26

30

35

46

48

 

 

200

28

34

38

43

54

 

250

35

41

45

50

 

 

300

40

46

50

 

 

350

46

52

 

400

48

 

 

 

Аналогичную таблицу полезно подготовить и для расчетов по формуле (2.8). Расчет приведен в таблице 3.

 

Таблица 3

       x

y

0

50

100

150

200

250

300

350

400

0

0

30

60

90

120

150

180

210

240

50

10

40

70

100

130

160

190

220

 

 

100

20

50

80

110

140

170

200

 

150

30

60

90

120

150

180

 

 

200

40

70

100

130

160

 

 

 

250

50

80

110

140

 

 

300

60

90

120

 

 

350

70

100

 

400

80

 

 

 

Проведем условную оптимизацию по обычной схеме.

3-й шаг. Основное уравнение (2.9)

 

решим с помощью таблице 2. Как указывалось выше, . Просмотрим числа на диагоналях, соответствующих ; 50; 100; 150 и на каждой диагонали выберем наибольшее. Это и есть . В 1-й строке находим соответствующее условное оптимальное управление. Данные оптимизации на 3-м шаге поместим в основную таблицу (таблица 4). В ней введен столбец , который в дальнейшем используется при интерполяции.

Оптимизация 2-го шага проведена в таблице 5 согласно уравнению вида (2.10):

 

.

 

Таблица 4 (основная)

3-й шаг

2-й шаг

 

 

8

 

 

10,8

 

50

8

 

 

50

10,8

 

 

50

 

 

 

 

6

 

 

 

 

9,6

 

 

100

14

 

 

50

20,4

 

 

50

 

 

 

 

6

 

 

 

 

8,0

 

 

150

20

 

 

0

28,4

 

 

100

 

 

 

 

 

 

 

 

 

 

14

 

 

200

 

 

 

 

 

 

42,4

 

 

200

 

 

 

 

 

 

 

 

 

 

9,2

 

 

250

 

 

 

 

 

 

51,6

 

 

200

 


Таблица 5

50

100

150

0

50

0

50

100

0

50

100

150

50

0

100

50

0

150

100

50

0

10

30

20

40

60

30

50

70

90

8

6

12

14

10

20

18

18

15

1,6

4,8

3,2

6,4

9,2

4,8

8

10,4

12,8

9,6

10,8

15,2

20,4

19,2

24,8

26

28,4

27,8

Продолжение

200

250

0

50

100

150

200

0

50

100

150

200

250

200

150

100

50

0

250

200

150

100

50

0

40

60

80

100

120

50

70

90

110

130

150

28

26

22

23

26

35

34

30

27

31

28

6,4

9,2

11,6

14

16,4

8

10,4

12,8

16,2

17,6

20

34,4

35,2

33,6

37

42,4

43

44,4

42.8

42,2

51,6

48

 

Результаты оптимизации занесены в таблицу 4. Для значений, некратных 50, приведена линейная интерполяция функции в таблице 4.

Условная оптимизация 1-го шага согласно уравнению

 

 

для =400 приведена во вспомогательной таблице 6. Для значений, некратных 50, соответствующие значения функции получены интерполяцией в основной таблице 4.


Таблица 6

0

50

100

150

200

250

300

350

400

400

350

300

250

200

150

100

50

0

80

100

120

140

160

180

200

220

240

48

52

50

50

54

48

50

53

49

16,6

20,4

23,6

27,8

31,2

36,8

42,4

46,1

49,8

64,6

72,4

73,6

77,8

85,2

84,8

92,4

99,1

98,8

 

Перейдем к безусловной оптимизации. Из таблице 6 получаем Zmax=99,l, =350, =50. По и в таблице 3 находим =220; для этого значения из таблицы 4 получаем =200. Следовательно, =20. Этому управлению в таблице 3 соответствует =124; для полученного значения из таблицы 4 после интерполирования находим =24 и =100.

Итак, мы получили следующий оптимальный план распределения средств между двумя предприятиями по годам:

 

Предприятие

1-й год

2-й год

3-й год

I

350

200

24

II

50

20

100

 

При этом может быть получен максимальный доход, равный Zmax=99,l. Прямой подсчет дохода по таблице 2 для найденного оптимального управления дает 97,2. Расхождение в результатах на 1,9 (около 2%) объясняется ошибкой линейной интерполяции.

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

 


2 Практическая часть

Планируется деятельность двух предприятий (s=2) в течение n лет. Начальные средства составляют . Средства x, вложенные в предприятие I, приносят к концу года доход и возвращаются в размере ; аналогично, средства x, вложенные в предприятие II, дают доход и возвращаются в размере . По истечении года все оставшиеся средства заново перераспределяются между предприятиями I и II, новых средств не поступает и доход в производство не вкладывается.

Решить данную задачу при следующих условиях: ; ; ; ; ; .

Если и - средства, выделенные соответственно предприятиям I  и II в k-м году, то суммарный доход, полученный от обоих предприятий, равен

 

,

 

а уравнение состояния (2.6) принимает вид

 

.

 

Основные функциональные уравнения (2.7) запишутся следующим образом:

 

;

.

 

Проведем этап условной оптимизации.

4-й шаг. Условный оптимальный доход равен

 

,

 

так как линейная относительно функция достигает максимума в конце интервала, т.е. при .

3-й шаг:

 

.

Коэффициент при отрицателен, поэтому максимум в этой линейной относительно функции достигается в начале интервала, т.е.

; .

 

2-й шаг:

 

, откуда ; .

 

1-й шаг:

 

при .

 

Результат условной оптимизации:

 

; ; ; ;

; ; ;

 

Перейдем к безусловной оптимизации. Полагаем ; тогда , . Зная , находим ; используя , получаем и . Аналогично , . Наконец, . Следовательно, средства по годам нужно распределить так:

 

 

 

Год

Предприятие

1

2

3

4

I

0

0

0

5120

II

10000

8000

6400

0

 

При таком распределении средств (10000 руб.) за четыре года будет получен доход, равный .


3 Проектирование интерфейса пользователя

3.1 Блок схема (алгоритм решения)


3.2 Интерфейс пользователя

Главное окно программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.      Компонент TMainMenu – меню программы

2.      Компонент TRadioGroup – функции доходов

3.      Компонент TRadioGroup – функции возврата

4.      Компонент TRadioGroupколичество ресурсов и количество лет

5.      Компонент TButton – кнопка расчета

6.      Компонент TMemo – поле вывода


Окно ввода исходных значений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.      Компонент TEdit–поле ввода функции f1

2.      Компонент TEdit–поле ввода функции f2

3.      Компонент TEdit–поле ввода функции f1

4.      Компонент TEdit–поле ввода функции f2

5.      Компонент TEdit–поле ввода количества лет

6.      Компонент TEdit–поле ввода количества ресурсов

7.      Компонент TButton – кнопка ввода


Контрольный пример

 

Для начала работы необходимо нажать кнопку «Исходные данные» и выбрать один из пунктов подменю «Ввод данных» или «Контрольный пример».

После ввода данных необходимо нажать кнопку «Рассчитать», высветится поле вывода с ответом.


Для изменения исходных данных достаточно нажать «Исходные данные» - «Ввод данных», ввести новые данные и нажать кнопку «Расчет», поле вывода обновит ответ в соответствии с новыми данными.


Заключение

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

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


Список используемых источников

1.                  Сборник задач и упражнений по высшей математике: математическое программирование: учебник пособие / А.В. Кузнецов, В.А. Сакович, Н.И. Холод и др; МН.: выш. ик., 2002. – 447с.:ил.

2.                  Т.Л. Партыка, И.И. Попов Математические методы: учебник. – М.: ФОРУМ: ИНФА-М, 2005. – 464 с.: ил – (профессиональное образование)

3.                  Федосеев В.В. и др. Экономико-математические методы и прикладные модели: учебное пособие для ВУЗов. - М.: Юнити, 2002.

4.                  Акулич И.Л. Математическое программирование в примерах и задачах

 

2

 


[*] Управление на k-м шаге может характеризоваться качественно

[**] Термин «эффективность» понимается как некоторая оценка результата процесса. Она может выражать собой пoкaзaтeль, который желательно максимизировать (например, прибыль, фондоотдача, производительность) или показатель, который необходимо минимизировать (например, затраты, себестоимость, потери)

Информация о работе Модель распределения ресурсов