Автор: Пользователь скрыл имя, 22 Декабря 2011 в 08:48, курсовая работа
Задачами данной курсовой работы являются:
1) Рассмотреть теоретические аспекты решения задач динамического программирования: реккурентность природы задач данного типа; принципы оптимальности Беллмана
2) Разработка алгоритма. Блок-схемы. Структура алгоритма
3) Реализация на ЭВМ построенного алгоритма на выбранном языке программирования
Введение
1. Динамическое программирование
1.1 Основные понятия
1.2 Принципы динамического программирования. Функциональные уравнения Беллмана
1.3 Особенности задач динамического программирования
1.4 Примеры задач динамического программирования
2. Задача о замене оборудования
3. Расчет показателей экономико-математической модели
Список использованных источников
Приложение
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.