Задача о замене оборудования

Автор: Пользователь скрыл имя, 22 Декабря 2011 в 08:48, курсовая работа

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

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

Содержание

Введение
1. Динамическое программирование
1.1 Основные понятия
1.2 Принципы динамического программирования. Функциональные уравнения Беллмана
1.3 Особенности задач динамического программирования
1.4 Примеры задач динамического программирования
2. Задача о замене оборудования
3. Расчет показателей экономико-математической модели
Список использованных источников
Приложение

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

Курсовая работа.docx

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

if (b >= a) 

then 

begin 

F := b; 

action := SELL; 

end 

else 

begin 

F := a; 

action := SAVE; 

end; 

exit; 

end; 

a := R(T) - U(T) + outMatrix.items[order - 1, t + 1].value; 

b := S(T) - P(T) + R(0) - U(0) + outMatrix.items[order - 1, 1].value; 

if (b >= a) 

then 

begin 

F := b; 

action := SELL; 

end 

else 

begin 

F := a; 

action := SAVE; 

end; 

end; 

{----------------------------------------------------------------------------} 

procedure BuildOutMatrix; 

var 

i : word; 

j : word; 

action : byte; 

begin 

outMatrix.rows := vectorR.size - 1; 

outMatrix.cols := vectorR.size; 

for i := 1 to outMatrix.rows do 

for j := 0 to outMatrix.cols do 

begin 

outMatrix.items[i, j].value := F(j, i, action); 

outMatrix.items[i, j].action := action; 

end; 

end; 

{----------------------------------------------------------------------------} 

procedure GetOptimalPlan(startTime : word; count : byte); 

var 

i : word; 

currTime : word; 

begin 

currTime := startTime; 

optimalPlan.size := count; 

for i := count downto 1 do 

begin 

optimalPlan.items[count - i + 1] := outMatrix.items[i, currTime].action; 

if (outMatrix.items[i, currTime].action = SELL) 

then 

currTime := 1 

else 

Inc(currTime); 

end; 

end; 

{----------------------------------------------------------------------------} 

begin 

ClrScr; 

ReadData('data.txt'); 

BuildOutMatrix; 

GetOptimalPlan(startTime, count); 

WriteData; 

Readln; 

end.

Информация о работе Задача о замене оборудования