Математические методы, их виды

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

Описание работы

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

Содержание

1. введение…….....................................................................................(2-5) с
1.1динамическоепрограммирование…………………………...….(5-6)с.
1.2 Дополнительная информация ……………..…………………(6-8) с.
1.3 Модели динамического программирования ………..…….…(8-11) с.
1.4 Постановка задач динамического программирования выбор стратегии обновления оборудования ...............................................(11-14)с.00
2. Решение задачи …………………………………………………(14-15) с..
2.1. Экономическая постановка задачи ……………………(14-15) с
2.2. Численное решение задачи ……………………………..(15-20) с.
2.3 Получение результатов…………………………………(20-21) с.
3. Описание автоматизированных расчетов …………………..…(20-21) с.
3.1 Выбор языка программирования ……………………..…….(20-21) с.
3.2 Описание программы………………………….. ……..…….…(21-30) с.
3.3 Заключение ………….………………………………………..………(31) с.
4.Список литературы ……………………………..…………...………(31-32) с.
4.1Приложение …………………………………………………………………
4.2инструкция для пользователя по форме №1и№2(включая описание формы)…………………………………………………………………(32-34) с.

Работа содержит 1 файл

моя курсовая.doc

— 327.00 Кб (Скачать)
 

      I этап. Условная оптимизация.

       1-й шаг: к = 6. Для него возможные  состояния системы t = 1,2, ..., 6. 

Функция   Fk(t)=Max   .r(t)+fk+1(t-1) ©

         S(t)-p+r(0)+fk+1(1) (з)

Функция fk(t)вычисляется на каждом шаге управления для всех  1≤t≤t0+k-1.Управление при котором достигается максимум дохода,является оптимальным. 
 

F6(t)=max r(t)+Fk+1(t-1)©

 S(t)-p+r(o)+fk+1(1)(3)

F6(1)=Max     720846-900+891 =846©

F6(2)=Max     630828-900+891=828©

F6(3)=Max     540810 -900+891 =810©

F6(4)=Max      450765-900+891 =765©

F6(5)=Max     315720-900+891 =720©

F6(6)=Max       225675-900+891 =675© 

2-й шаг:k=5.Для него шага возможные состояния системы t=1.2…..5.Функциональное уравнение имеет вид:

R(t)+F6(t+).(c)

F5(t)=max         1≤t≤5.

     S(t)-P+r(0)+F6(1).(3)

F5(1)=max 720-900846+828+891+846=1674(с)

F5(2)=max 630-900828+810+891+846=1638(с)

F5(3)=max 540-900810+765+891+846=1575(с)

F5(4)=max 450-900765+720+891+846=1485(с)

F5(5)=max 315-900720+765+891+846=1395(с)

                         r(t)+F5(t+1)(c)   ≤t≤4.

F4(t)=max       S(t)-p+r(0)+F5(1)(3)

F4(1)=max 720846+1638-900+891+1674=2484©

F4(2)=max 630828+1575-900+891+1674=2403©

F4(3)=max 540810+1485-900+891+1674=2303©

F4(4)=max 450765+1395-900+891+1674=2160© 

4-й шаг.

R(t)+F4(t+1) © 1≤t≤3

F3(t)=max s(t)-p+r(0)+f4(1)(3)

F3(1)=max 720846+2403-90+891+2484=3249© 

F3(2)=max 630828+2303-90+891+2484=3131© 

F3(3)=max 540810+2160-90+891+2484=3015© 

.

5-й шаг k=2

F2(t)=max r(t)+F3(t+1) ©

                            S(t)-P+r(0)+F3(1)(3)

F2(1)=max 720-900846+3131+891+3249=3978© 
 

F2(2)=max 630-900828+3015+891+3249=3870© 

6-ой шаг 

R(t)+F2(t+1) © 1≤t

F1(t)=max s(t)-p+r(0)+f2(1)(3) 

F1(1)=max 720-900846+3870+891+3978=4716© 
 

      2.3Получение  результатов.

      Результаты  вычислений Беллмана Fk(t) приведены в табл. , в которой k - год эксплуатации, t - возраст оборудования.

k               t
1 2 3 4 5 6
1 4716 - - - - -
2 3978 3870 - - - -
3 3249 3131 3015 - - -
4 2484 2403 2303 2160 - -
5 1674 1638 1575 1485 7395 -
6 846 828 810 765 720 675
 

      В табл. выделено значение функции, соответствующее состоянию «с» - сохранение оборудования.

      II этап. Безусловная оптимизация.

Безусловная оптимизация начинается с шага при  k = 1. Максимально возможный доход от эксплуатации оборудования за годы с 1-го по 6-й составляет F1(l) = 4716. Этот оптимальный выигрыш достигается, если на втором году заменить оборудование.

  1. Описание автоматизированных расчетов

    3.1 Выбор языка программирования

Почему Delphi? 

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

Delphi —  результат развития языка Турбо  Паскаль, который, в свою очередь,  развился из языка Паскаль. Delphi оказал огромное влияние на  создание концепции языка C# для  платформы .NET. Многие его элементы  и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16;

Версии  со второй компилируют программы под 32-х разрядную платформу Win32;

Вместе  с 6-й версией Delphi вышла совместимая  с ним по языку и библиотекам  среда Kylix, предназначенная для компиляции программ под операционную систему Linux;

Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);

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

3.2 Описание программы.

Ко д  первой формы unit Unit1; 

interface 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Menus; 

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

Label1: TLabel;

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Edit14: TEdit;

Edit15: TEdit;

Button1: TButton;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

procedure Button1Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure Panel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end; 

var

Form1: TForm1;

r,S:array [0..6]of integer;

t,k,P:integer;

F,otvet:array [0..6,0..6]of integer; 
 

implementation 
 

uses Unit2;

{$R *.dfm}

function max (a,b:integer):integer;

begin

if a >=b then max:=a else max:=b;

end; 
 

procedure TForm1.N1Click(Sender: TObject);

begin

Form1.Edit1.Clear();

Form1.Edit2.Clear();

Form1.Edit3.Clear();

Form1.Edit4.Clear();

Form1.Edit5.Clear();

Form1.Edit6.Clear();

Form1.Edit7.Clear();

Form1.Edit8.Clear();

Form1.Edit9.Clear();

Form1.Edit10.Clear();

Form1.Edit11.Clear();

Form1.Edit12.Clear();

Form1.Edit13.Clear();

Form1.Edit14.Clear();

Form1.Edit15.Clear();

Form1.Edit1.SetFocus();

end; 
 
 

procedure TForm1.Button1Click(Sender: TObject);

begin

p:=StrToInt(Edit15.Text);

r[0]:=StrToInt(Edit1.Text);

r[1]:=StrToInt(Edit3.Text);

r[2]:=StrToInt(Edit5.Text);

r[3]:=StrToInt(Edit7.Text);

r[4]:=StrToInt(Edit9.Text);

r[5]:=StrToInt(Edit11.Text);

r[6]:=StrToInt(Edit13.Text); 

s[0]:=StrToInt(Edit2.Text);

s[1]:=StrToInt(Edit4.Text);

s[2]:=StrToInt(Edit6.Text);

s[3]:=StrToInt(Edit8.Text);

s[4]:=StrToInt(Edit10.Text);

s[5]:=StrToInt(Edit12.Text);

s[6]:=StrToInt(Edit14.Text);

k:=6;{количество лет }

for t:=1 to k do

begin

F[k,t]:=max(r[t],S[t]-P+r[0]);

if(F[k,t]=r[t]) then otvet[k,t]:=0

else otvet[k,t]:=1;

end;

for k:=5 downto 1 do

for t:=1 to k do

begin

f[k,t]:=max(r[t]+F[k+1,t+1],S[t]-p+r[0]+F[k+1,1]);

if(F[k,t]=r[t]+F[k+1,t+1])then otvet[k,t]:=0

else otvet[k,t]:=1;

end; 
 

for k:=1 to 6 do

for t:=1 to k do

if(otvet[k,t]=1) then Form2.StringGrid1.Cells[t,k]:=IntToStr(F[k,t])+'(з)'

else Form2.StringGrid1.Cells[t,k]:=IntToStr(F[k,t])+'(c)'; 
 

Информация о работе Математические методы, их виды