Методы динамического программирования. Курсовая работа (т). Информационное обеспечение, программирование.

Методы динамического программирования. Курсовая работа (т). Информационное обеспечение, программирование.




⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻


























































Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Методы динамического программирования

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

математический динамический
программирование


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


Задачи динамического программирования являются
многоэтапными, поэтому термин «динамическое программирование» не столько
определяет особый тип задач, сколько характеризует методы нахождения решения
отдельных классов задач математического программирования.


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


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


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


Второй класс задач - задачи
оптимального распределения ресурсов между различными направлениями во времени.


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


Рассмотрим основные теоретические
аспекты решения задач методом динамического программирования.


Будем считать, что состояние рассматриваемой
системы на - ом шаге




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


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




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


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




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


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


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


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




было бы наибольшим при ограничениях
общей суммы ,


где - общая сумма капитальных вложений.


Данная задача решается методом
динамического программирования. Для этого необходимо ввести параметр состояния и функцию состояния 


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


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


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







Общая сумма в 4 млн. руб.
распределяется между пятью предприятиями в количествах, кратных 1 млн. руб. В
результате выделение средств предприятию в размере оно дает доход =1,2,3,4,5 величина которого может
быть найдена из таблицы №1:




1.     Заполним таблицу первой итерации.




Строку f 1
(x-x 2 )
заполним данными первого субъекта f 1 (x 1 )
из таблицы 1. Столбец f 2 (x 2 )
заполним данными, соответствующими данным из таблицы 1. Незаполненные элементы
таблицы находятся путем сложения элементов строки f 1
(x-x 2 )
и столбца f 2 (x 2 )
, т.е. по формуле:





F K ( X K )
+ F K -1
( x - X K )           
(5)




где -некоторое количество субъектов, для которых
определяются параметры и функция состояния;


x-сумма капитальных вложений, выделяемая
нескольким субъектам.


. Затем находим максимумы среди элементов,
полученных в результате предыдущего шага, по побочным диагоналям таблицы
(максимальные элементы выделены в таблице №2. Например, среди элементов диагонали
12,14,13,10 выберем 14.


. После чего заполним новую таблицу данными,
полученными в результате предыдущего шага. Строкаx 2 (x)
заполняется элементами столбца ресурсов из таблицы 2, соответствующих
максимальным элементам побочных диагоналей, полученным на шаге 3.




Таблица №3. «Максимальный прирост прибыли на
первых двух предприятиях»




Строку f 2
(x-x 3 )
заполним данными строки F 2 (x)
из таблицы №3. Столбец f 3 (x 3 )
заполним данными, соответствующими данным из таблицы №1. Незаполненные элементы
находим аналогично шагу 2 (формула 5).


. Далее снова находим максимумы среди элементов,
полученных в результате предыдущего шага, по побочным диагоналям таблицы
(максимальные элементы выделены в таблице №4).


. За тем снова заполним новую таблицу данными,
полученными в результате предыдущего шага. Строка x 3 (x)
заполняется элементами столбца ресурсов из таблицы 4, соответствующих
максимальным элементам побочных диагоналей, полученных на данном шаге.




Таблица №5. «Максимальный прирост прибыли на
первых двух предприятиях»




. Заполним таблицу третьей итерации.




Строку заполним данными строки (x)
из таблицы №3. Столбец f 3 (x 3 ) заполним
данными, соответствующими данным из таблицы №1. Незаполненные элементы находим
аналогично шагу 2 (формула 5).


. Далее снова находим максимумы
среди элементов, полученных в результате предыдущего шага, по побочным
диагоналям таблицы (максимальные элементы выделены в таблице №6).


. За тем снова заполним новую
таблицу данными, полученными в результате предыдущего шага. Строка x 3 (x) заполняется элементами
столбца ресурсов из таблицы 6, соответствующих максимальным элементам побочных
диагоналей, полученных на данном шаге.




Таблица №7. «Максимальный прирост прибыли на
первых двух предприятиях»




Заполним последнюю диагональ таблицы путем
сложения элементов (формула 5).


Находим максимальное число побочной диагонали,
полученной на предыдущем шаге.


Делаем проверку так чтобы, средства между
предприятиями и их суммарный доход был максимальным.


Пятому предприятию должно быть выделено (см.
табл. 3.):


причем четвертому предприятию должно
быть выделено :


Тогда третьему предприятию должно
быть выделено (см. табл. 5.):




= 3 (4- - )= 3 (4-0-1)= 3(3)=1 млн. руб.




второму предприятию должно быть
выделено (см. табл. 7.):




Hа долю
первого предприятия остается:




которое обеспечивает
производственному объединению наибольший возможный прирост прибыли:




Описание решения с использованием
инструментальных средств MicrosoftExcel


.Используя данные из таблицы №1, составим
подобную таблицу в Excel.




Рисунок 1«Построение капиталовложений»




¦ j (x j )-Прирост
мощности или прибыли j-го
предприятия, если оно получит xj
денежных единиц капитальных вложений.


Xj-Сумма
капитальных вложений в j-ое
предприятие.


x-Сумма капитальных
вложений, выделяемая нескольким предприятиям (0 £x£b)


Рассмотрим теперь подробнее четыре предприятия.


f1(x1)
-прирост прибыли 1-го предприятия, если оно получит капитальные вложения;


f2(x2)
-прирост прибыли 2-го предприятия, если оно получит капитальные вложения;


f3(x3)
-прирост прибыли 3-го предприятия, если оно получит капитальные вложения;


f4(x4)
-прирост прибыли 4-го предприятия, если оно получит капитальные вложения.


Для заполнения Таблицы 2 «Первого предприятия»
необходимо в Таблице1«Построение капиталовложений» сложить значения функции ¦ 1 (x 1 )
и ¦ 2 (x 2 ).


В ячейку С 11 внесем формулу
=$B$11+C10


В ячейку D 11 внесем
формулу=$B$11+D10


В ячейку С 12 внесем формулу=$B$12+C10


И т.д для всех клеток. Для заполнения остальных
северо-восточной диагонали.




И на каждой северо-восточной
диагонали выбрать наибольшее число (отмечено голубым цветом), указав
соответствующие значение 2(x):


В ячейку С 23 внесем
формулу =МАКС(C11)


В ячейку D 23 внесем формулу
=МАКС(C12;D11)


В ячейку С 24 внесем формулу
=ЕСЛИ(C11=C23;A11)


В ячейку D 24 внесем
формулу =ЕСЛИ(C12=D23;A12;A11)


Рисунок 3 «Первое предприятие максимальное
значение»




Рисунок 4 «Подробное решение первого предприятия
и максимальное значение»




Рисунок 5 «Второе предприятие и максимальное
значение»




Рисунок 6 «Подробное решение второго предприятия
и максимальное значение»







Таблица 8 «Подробное решение третьего
предприятия»




Таблица 10 «Подробное решение четвертого
предприятия»


Чтобы найти Z max ,
нам
нужно в ячейку В 71 внести формулу =МАКС(C68;D67;E66;F65;G64)




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




Программа "Максимизации
капиталовложений" предназначена для вычисления максимально возможного
суммарного прироста прибыли всех предприятий (субъектов), прироста прибыли
каждого предприятия, а также количества ресурсов, которые необходимо выделить
каждому предприятию, чтобы суммарный прирост прибыли был максимальным.


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


·       ПК на базе процессора Intel,
AMD;


·       Видео:
совместимая VGA видеокарта;


·       Операционная система Windows
XP/Windows7;


·       Microsoft.NET
Framework 3.0;


Для начала работы с программой запустите файл RZMK.exe.
Далее вы должны заполнить пустые поля на форме данными.







Рисунок 17 «Главная форма приложения»




Для проведения операций над введенными данными
необходимо воспользоваться кнопками (Рис.19):


Результат - программа вычисляет и выводит
результат.
Файл - Пример - автоматически заполняет поля
вложения ресурсов и их распределения тестовыми значениями.


О программе - вызывает информацию о программе и
его разработчике




После нажатия кнопки "Рассчитать"
программа выдает результаты максимального суммарного прироста прибыли, прирост
прибыли на каждом предприятии и количество необходимых ресурсов (Рис.20),





Рисунок 20 "Максимальный прирост прибыли и
прирост прибыли и выделенные ресурсы на предприятиях "




Алгоритм решений унифицированной задачи




Рисунок 24 «Алгоритм решения унифицировнанной
задачи»







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







1. Кузнецов А.М., Сакович В.А, Холод
И.И. Высшая математика. Математическое программирование. Минск, Высшая школа,
2011.


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


.       Шикин Е.А., Чхартишвили
А.Г. Математические методы и модели в управлении - М:. Дело 2010.







unit Unit1;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Grids, Math, ExtCtrls,
Menus, ShellAPI;= class(TForm): TStringGrid;: TButton;: TButton;: TMainMenu;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;Button1Click(Sender: TObject);FormCreate(Sender:
TObject);Button2Click(Sender: TObject);N2Click(Sender: TObject);N3Click(Sender:
TObject);N4Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender:
TObject);


{ Public declarations };:
TForm1;:Array[0..5,0..5] of Integer; // Массив для хранение суммы:Array[1..5,1..5]
of Integer;
// Массив для хранение максимальных чисел


Cells:Array[0..20]
of TPoint;
// Массив точек (записи координат максимальных чисел)


{$R *.dfm}TForm1.FormCreate(Sender:
TObject);: TGridRect;:Integer;


// Смещаем фокус (выделение)myRect
do:=-1;:=-1;:=-1;:=-1;;.Selection:=myRect;


// Заполняем заголовки
таблицыStringGrid1 do[0,0]:='U';I:=1 to 5
do[0,I]:='L'+IntToStr(I)+'(U)';[I,0]:=IntToStr(I-1);;;


procedure Sum();, J: Integer;I:=1 to
5 doJ:=1 to 5 do[I,J]:=MasSum[I,0] + MasSum[0,J];;


// Процедура для нахождние максимальных чисел
(диагонали)


var,J,iMax,jMax:Integer;:TPoint;:=0;
jMax:=0;I:=5 downto 1 do[I,1]:=MasSum[1,I];J:=I downto 1 doMasSum[I-J+1,J]
>= MasMax[I,1] then[I,1]:=MasSum[I-J+1,J];:=I-J+1;:=J;[I,2]:=J-1;
// В какой строке найдено максимальное знач.


C.X:=jMax;
C.Y:=iMax;
// Координаты максимальных значений


// Сбрасываем введенные нами
значенияTForm1.Button1Click(Sender: TObject);,J: Integer;I:=1 to 5 doJ:=1 to 5
do.StringGrid1.Cells[I,J]:='';2.Close;


// Вывод результата в
таблицыTForm1.Button2Click(Sender: TObject);,J,K,C,P:Integer;.Show;:=0; C:=0;
P:=2;C<=6 do:=1;I:=1 to 5-K+1 doJ:=1 to 5-K+1 doC=0 then
MasSum[I,0]:=StrToInt(StringGrid1.Cells[I,1])MasSum[I,0]:=StrToInt((Form2.Components[C-1]
as TStringGrid).Cells[I,1]);[0,J]:=StrToInt(StringGrid1.Cells[J,P]);


(Form2.Components[C] as
TStringGrid).Cells[I,0]:=IntToStr(MasSum[I,0]);


(Form2.Components[C] as
TStringGrid).Cells[0,J]:=IntToStr(MasSum[0,J]);();


(Form2.Components[C] as
TStringGrid).Cells[I,J]:=IntToStr(MasSum[I,J]);


(Form2.Components[C+1] as
TStringGrid).Cells[I,0]:=IntToStr(K-1);;:=K+1;;();I:=1 to 5 do


(Form2.Components[C+1] as
TStringGrid).Cells[I,1]:=IntToStr(MasMax[I,1]);


(Form2.Components[C+1] as
TStringGrid).Cells[I,2]:=inttostr(MasMax[I,2]);


(Form2.Components[C+1] as
TStringGrid).Cells[0,0]:='E';


(Form2.Components[C+1] as
TStringGrid).Cells[0,1]:='F'+IntToStr(P)+'(E)';


(Form2.Components[C+1] as
TStringGrid).Cells[0,2]:='X'+IntToStr(P)+'(E)';;:=C+2;:=P+1;;.StringGrid1.Invalidate;


// z(max).LabeledEdit1.Text:='
'+Form2.StringGrid8.Cells[5,1];


// x5.LabeledEdit6.Text:='
'+Form2.StringGrid8.Cells[5,2];


// x4.LabeledEdit5.Text:='
'+Form2.StringGrid6.Cells[4-(Form2.LabeledEdit6.Text)+1,2];


// x3.LabeledEdit4.Text:='
'+Form2.StringGrid4.Cells[4-(Form2.LabeledEdit6.Text)-StrToInt(Form2.LabeledEdit5.Text)+1,2];


// x2.LabeledEdit3.Text:='
'+Form2.StringGrid2.Cells[4-(Form2.LabeledEdit6.Text)-(Form2.LabeledEdit5.Text)-(Form2.LabeledEdit4.Text)+1,2];


// x1.LabeledEdit2.Text:='
'+IntToStr(4-(Form2.LabeledEdit6.Text)-(Form2.LabeledEdit5.Text)-(Form2.LabeledEdit4.Text)-(Form2.LabeledEdit3.Text));;


// Кнопка "Решить"TForm1.N2Click(Sender:
TObject);.Button2.Click;;


// Кнопка "Мой
пример"TForm1.N3Click(Sender: TObject);:Integer;StringGrid1 doI:=1 to 5 do
Cells[1,I]:=IntToStr(0);[2,1]:='5'; Cells[4,1]:='11';[2,2]:='3';
Cells[4,2]:='5';[2,3]:='7'; Cells[4,3]:='10';[2,4]:='4';
Cells[4,4]:='12';[2,5]:='3'; Cells[4,5]:='7';[3,1]:='9';
Cells[5,1]:='12';[3,2]:='4'; Cells[5,2]:='10';[3,3]:='9';
Cells[5,3]:='11';[3,4]:='8'; Cells[5,4]:='14';[3,5]:='5'; Cells[5,5]:='9';;;


// Кнопка
"Сброс"TForm1.N4Click(Sender: TObject);.Button1.Click;;


// Кнопка
"Выход"TForm1.N5Click(Sender: TObject);.Close;.Close;;


// О программеTForm1.N6Click(Sender:
TObject);


ShowMessage('Программа
предназначена для решения задачи' + chr(13)
+


'максимизации капатиловложений' + chr(13)
+ chr(13) +


'Разработал студент группы 10п-1' + chr(13)
+


'Урусов Алексей' + chr(13)
+ chr(13) +


end;.Unit2;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Grids, Math, StdCtrls, ExtCtrls,
jpeg, ColorGrd, Buttons,;= class(TForm): TStringGrid;: TStringGrid;:
TStringGrid;: TStringGrid;: TStringGrid;: TStringGrid;: TStringGrid;:
TStringGrid;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;: TLabeledEdit;:
TLabeledEdit;: TLabeledEdit;: TStaticText;: TStaticText;: TStaticText;:
TStaticText;SG_OnDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);FormCreate(Sender: TObject);


{ Public declarations };: TForm2;
Unit1;


// Процедура для закрашивание максимальных
элементов


(Components[f] as
TStringGrid).Canvas.Brush.Color:=clRed;;


(Components[f] as
TStringGrid).Canvas.FillRect(Rect);


(Components[f] as
TStringGrid).Canvas.TextOut(Rect.Left, Rect.Top, (Components[f] as
TStringGrid).Cells[ACol, ARow]);;:=N+5;:=F+2;;


// Процедруа для смещений фокуса (выделения)


procedure TForm2.FormCreate(Sender:
TObject);:TGridRect;:Integer;myRect do begin:=-1;:=-1;:=-1;:=-1;;C:=1 to 8 do


(Form2.FindComponent('StringGrid'+IntToStr(C))
as TStringGrid).Selection:=myRect;



Похожие работы на - Методы динамического программирования Курсовая работа (т). Информационное обеспечение, программирование.
Контрольная работа: Об идее баланса Светлых и Тёмных сил и методах магического воздействия на общество
Курсовая работа по теме История становления музейного дела в Бразилии
Обеспечение Безопасности Труда Реферат
Реферат: Революция 1917 г в книгах С Г Кара Мурзы
Курсовая работа: Выдающиеся черты Ивана III как государственного деятеля
Доклад: Сёрен Кьеркегор
Методы государственного управления
Реферат: Reform Drug Laws Essay Research Paper REFORM
Методика Написания Кандидатской Диссертации
Курсовая работа по теме Анализ и пути увеличения прибыли и рентабельности Гомельского райпо
Дипломная работа по теме Современные мужские стрижки
Контрольная Работа На Тему Бухгалтерский Учет Строительных Предприятий
Курсовая работа: Требования предъявляемые к отчетности в России и ответственность за их искажение
Реферат по теме Система здравоохранения в России
Курсовая работа: Роль информационно-консультационной службы в развитии АПК России
Реферат: Электрометаллургия. устройство печей. Скачать бесплатно и без регистрации
Реферат по теме Просвещение во Франции
Курсовая Работа Теория Прав Человека
Рефераты По Учету В Торговле
Реферат по теме Иосиф Виссарионович Сталин
Доклад: Танго на краю пропасти
Реферат: Marx Essay Research Paper Karl Marx and
Похожие работы на - Программа социологического исследования о факторах, влияющих на выбор формы обучения абитуриентами

Report Page