на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Реализация на ЭВМ решения задачи оптимальной политики замены оборудования
p align="left">s(t) - p + r(0) - u(0) > r(t) - u(t)

Если же

s(t) - p + r(0) - u(0) < r(0) - u(0)

то старое оборудование целесообразно сохранить. Итак, для последнего года оптимальная политика и максимальная прибыль F1(t) находятся из условия

Пусть k = 2, т. е. рассмотрим прибыль за два последних года. Де лаем предположение о возможном состоянии t оборудования на начало предпоследнего года. Если в начале этого года принять решение о со хранении оборудования, то к концу года будет получена прибыль r(t) u(t). На начало последнего года оборудование перейдет в состоя ние t + 1 и при оптимальной политике в последнем году оно принесет прибыль, равную F1 (t+1). Значит общая прибыль за два года составит r(t) u(t) + F1(t + 1). Если же в начале предпоследнего года будет принято решение о замене оборудования, то прибыль за предпоследий год составит

s(t) p + r(0) - u(0).

Поскольку приобретено но вое оборудование, на начало последнего года оно будет в состоянии t = 1. Следовательно, общая прибыль за последние два года при оптимальной политике в последнем году составит

s(t) - p + r(0) - u(0) + F1(1)

Условно оптимальной в последние два года будет политика, доставляющая максимальную прибыль

Аналогично находим выражения для условно оптимальной прибыли за три последних года, четыре и т. д. При k=T получим max Z = FT (t0).

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

3. Расчет показателей экономико-математической модели

Решим задачу замены оборудования на плановый период в N = 10 лет, оборудование пятилетнего возраста (T = 5).

В начале планового периода продолжительности в N лет имеется оборудование возраста t, известна стоимость r(t) продукции, производимой в течение года с использованием этого оборудования; ежегодные расходы u(t) связанные с эксплуатацией оборудования; его остаточная стоимость s; стоимость p нового оборудования (сюда же включены затраты, связанные с установкой, запуском оборудования). Данные задачи приведены в таблице.

Возраст оборудования

0

1

2

3

4

5

6

7

8

9

10

r(t)

30

30

29

29

29

28

28

27

27

26

26

u(t)

10

10

12

13

14

15

16

17

18

19

20

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

Запишем функциональные уравнения для последнего года планового периода F1(t) и последних k лет планового периода Fk(t) при исходных числовых значениях параметра:

Пользуясь этими выражениями, будем последовательно вычислять значения максимальной прибыли Fk(t) и записывать их в табл. 1. Первую строку получим, придавая параметру t в равенстве (1) значения 0, 1, 2, +, 10 и используя исходные данные. Например при t = 0: = 20 (сохранение).

Аналогично расчет ведется до t = 9: = 7 (сохранение).

Заметим, что если прибыль от нового оборудования ровна прибыли от старого, то старое лучше сохранить еще на год. При t = 10= = = 7 (замена).

Из табл.1 видно, что r(t) - л(t) с ростом t убывает. Поэтому при t > 9 оптимальной будет политика замены оборудования. Чтобы различать, в результате какой политики получается условно-оптимальное значение прибыли, будем эти значения разграничивать (до t = 9 включительно оптимальной является политика сохранения). Для заполнения второй строки табл.1, используем формулу (2) для k = 2:

Придавая параметру t значения 0, 1, 2,+ ,10, используя исходные данные и значения F1(t+1) из первой строки таблицы, заполним вторую строку. Например, при t = 4= = =28(сохранение).

Для третьей строки таблицы используем формулу (2) для k = 3:= = и т.д.

Таблица 1

т

0

1

2

3

4

5

6

7

8

9

10

F1(t)

20

20

17

16

15

13

12

10

9

7

7

F2(t)

40

37

33

31

28

27

27

27

27

27

27

F3(t)

57

53

48

44

44

44

44

44

44

44

44

F4(t)

73

68

61

60

60

60

60

60

60

60

60

F5(t)

88

81

77

76

75

75

75

75

75

75

75

F6(t)

101

97

93

91

90

88

88

88

88

88

88

F7(t)

117

113

108

106

104

104

104

104

104

104

104

F8(t)

133

128

123

120

120

120

120

120

120

120

120

F9(t)

148

143

137

136

135

135

135

135

135

135

135

F10(t)

163

157

153

151

150

150

150

150

150

150

150

Пусть, например, в начале планового периода имелось оборудование возраста T = 5 лет. Разработаем политику "замен" на десятилетний период доставляющий максимальную прибыль. Информация для этого представлена в табл.1 на пересечении столбца t = 5 строки F10(t); она составляет 150 единиц.

Значение максимальной прибыли F10(5) = 150 записано в области "политики замены". Это значит, что для достижения в течение 10 лет максимальной прибыли в начале первого года оборудование надо заменить. В течение первого года новое оборудование постареет на год, т.е., заменив оборудование и проработав на нем год, за 9 лет до конца планового периода будем иметь оборудование возраста 1 год. Из табл. 1 берем F9(1) = 143. Это значение располагается в области "политики сохранения", т.е. во втором году планового периода надо сохранить оборудование возраста 1 год, и, проработав на нем год, за 8 лет до конца планового периода будем иметь оборудование возраста 2 года.

Значение F8(2) = 123 помещено в области сохранения. Работаем на оборудовании еще год. Теперь до конца планового периода осталось 7 лет, а возраст оборудования составляет 3 года. Находим F7(3) = 106. Это область сохранения. Работаем на оборудовании еще год. Его возраст становится равным 4 годам. До конца планового периода остается 6 лет. Определяем F6(4) = 90. Это область сохранения. Работаем на оборудовании еще год. Его возраст становится равным 5 годам. До конца планового периода остается 5 лет. Определяем F5(5) = 75. Это область замен. Заменяем оборудование на новое. Проработаем на нем в течение пятого года. Оно постареет на год. До конца планового периода остается 4 года. Продолжая подобные рассуждения, получим, что F4(1) = 68, F3(2) = 48, F2(3) = 31, F1(4) = 15 расположены в области сохранения. Разработанную политику изобразим следующей цепочкой:

F10(5) F9(1) F8(2) F7(3) F6(4) F5(5) F4(1)

F3(2) F2(3) F1(4)

Из табл.1 можно найти оптимальную стратегию замены оборудования с любым начальным состоянием от 0 до 10 лет и на любой плановый период, не превосходящий 10 лет.

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

Список использованных источников

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

2. Исследование операций в экономике: Учеб. пособие для вузов / Н.Ш. Кремер, Б.А. Путко, И.М. Тришин, М.Н. Фридман; Под ред. проф. Н.Ш. Кремера. - М.: Банки и биржи, ЮНИТИ, 1997.

3. Колемаев В.А. Математическая экономика.- М.: Юнити,1998.

Приложение

program Kurs;

uses

Crt;

const

(* ACTIONS CONSTANT *)

SELL = 0;

SAVE = 1;

(* TYPES SIZE CONSTANT *)

MAX_VECTOR_SIZE = 64;

type

TOutMatrixCell = record

action : byte;

value : real;

end;

TOutMatrix = record

rows : word;

cols : word;

items : array[1..MAX_VECTOR_SIZE - 1, 0..MAX_VECTOR_SIZE - 1] of TOutMatrixCell;

end;

TPlanCell = record

year : word;

action : byte;

end;

IVector = record

size : word;

items : array[1..MAX_VECTOR_SIZE - 1] of byte;

end;

DVector = record

size : word;

items : array[0..MAX_VECTOR_SIZE - 1] of real;

end;

var

vectorR : DVector;

vectorU : DVector;

outMatrix : TOutMatrix;

optimalPlan : IVector;

startTime : word;

count : word;

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

procedure ReadData(path : string);

var

inFile : Text;

i : word;

elem : real;

s : string;

begin

Assign(inFile, path);

Reset(inFile);

Writeln('Условие:');

repeat

Readln(inFile, s);

Writeln(s);

until (s = '');

Writeln('Начальные данные:');

Write('R(x) : ');

i := 0;

while not Eoln(inFile) do

be

Read(inFile, elem);

Write(elem:3:1, ' ');

vectorR.items[i] := elem;

Inc(i);

end;

vectorR.size := i;

Readln(inFile);

Writeln;

Write('U(x) : ');

i := 0;

while not Eof(inFile) do

begin

Read(inFile, elem);

Write(elem:3:1, ' ');

vectorU.items[i] := elem;

Inc(i);

end;

vectorU.size := i;

Close(inFile);

Writeln;

Write('начальный возраст оборудования = ');

Readln(startTime);

Write('расчетный период = ');

Readln(count);

Writeln;

end;

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

procedure WriteData;

var

i : word;

q : array[0..1] of string;

begin

Writeln('Решение:');

q[0] := 'заменить';

q[1] := 'сохранить';

for i := 1 to optimalPlan.size do

Writeln(i, ' year -> ', q[optimalPlan.items[i]]);

end;

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

function S(t : word) : real;

begin

S := 2;

end;

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

function P(t : word) : real;

begin

P := 15;

end;

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

function U(t : word) : real;

begin

U := vectorU.items[t];

end;

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

function R(t : word) : real;

begin

R := vectorR.items[t];

end;

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

function F(t : word; order: word; var action : byte) : real;

var

a : real;

b : real;

begin

if (order = 1)

then

begin

a := R(t) - U(t);

b := S(t) - P(t) + R(0) - U(0);

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.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.