Для умных!Книга такая.
Кремер Н.Ш. (ред.) Исследование операций в экономике [...]Есть более интересные книги и задачи. Например:
Смотрите страницы 68-69
[...] Ниже код, вроде по книге как
Python — для этой задачи по замене оборудования, содержащий авторские ошибки.
Прошу внести исправления в код, чтобы он начал работать.
// программа ZamenaPe.sce
// ========================
// Замена оборудования - полный перебор. 10.6.2. Полный перебор,стр 68-69
// Визгунов Н.П. 25 марта 2011 года
clc, clear, mode(0), lines(0)
// s: 1 2 3 4 5
r1 = [80 75 65 60 60]; // Доход от авто возраста s - 1 лет
c1 = [20 25 30 35 45]; // Затраты на него
Cn = 40; // Цена нового авто
y1 = 0; // В начале 1971 года авто - новый
n = 5; // Кол-во месЯцев в плановом периоде
if y1 + length(c1) > n
error('не хватает данных')
end
// Rnew = r1(1) - c1(1) - Cn;// Прибыль от нового автомобилЯ
f_opt = -%inf;
x_opt = zeros(1, n + 1);
x_max = ones(1, n);
x_min = zeros(1, n);
x = zeros(1, n);
j = n;
while %t
if x(j) <= x_max(j)
for j = 1 : n
if x(j) == 1
y(j) = 0;
elseif x(j) == 0 & j >= 2
y(j) = y(j - 1) + 1;
elseif x(1) == 0
y(1) = y1;
end
end // j
f = Cn;
for j = 1 : n
if x(j) == 0 & y(j) >= 1
f = f + r1(y(j) + 1) - c1(y(j) + 1);
elseif x(j) == 1
f = f + r1(1) - c1(1) - Cn;
end
end
if f_opt < f
f_opt = f;
write(6, f_opt, '( ""<<<<<< f_opt = "", i6 )' )
x_opt = x
elseif f_opt == f
write(6, f_opt, '( ""====== f_opt = "", i6 )' )
x_opt = [x_opt; x]
end // elseif
j = n;
else // x(j) > x_max(j)
x(j) = x_min(j);
j = j - 1;
if j <= 0.00001
break
end // if
end // if
x(j) = x(j) + 1;
end // while %t
disp('ответ')
x_opt, f_opt