2.3.2 Текст компьютерного решения задачи.
Programkurs9k;
uses crt;
type armarka=record
c1:real; {odezda}
c2:real; {obyv}
c3:real; {knigi}
c4:real; {igryshki}
end;
var
a:array [1..4] of armarka;
n1,n2,n3,n4:real; {chisla dlya min (minZij)}
codezda, cobyv, cknigi, cigryshki:real; {ceni za tovar}
b:array[1..4] of armarka;
i:integer;
z:integer; {dni}
r1,r2,r3,r4:real; {chisla dlya max (max b[i])}
min:real;
{shapka}
procedure shapka;
begin
writeln('___________________________________________________');
writeln('| | tovar | Zij - minZij |');
writeln('| |___________________________|__________________|');
writeln('| den | odezda | obyv | knigi |igryshki| c1 | c2 | c3 | c4 |');
writeln('|_____|______|_______|_____|_______|____|_____|____|____|');
end;
{vvod cen na tovar}
begin
writeLn('vvedite ceny na odezgy ');
readln(codezda);
writeLn('vvedite ceny na obyv ');
readln(cobyv);
writeLn('vvedite ceny na knigi ');
readln(cknigi);
writeLn('vvedite ceny na igryshki ');
readln(cigryshki);
{naxogdenie cluchainim obrazom pokupateley}
for i:=1 to 4 do
begin
a[i].c1:=random(100)+1;
a[i].c2:=random(100)+1;
a[i].c3:=random(100)+1;
a[i].c4:=random(100)+1;
end;
{podshet cen- pokupateli*ctovara}
for i:=1 to 4 do
begin
a[i].c1:= a[i].c1*codezda;
a[i].c2:= a[i].c2*cobyv;
a[i].c3:= a[i].c3*cknigi;
a[i].c4:= a[i].c4*cigryshki;
end;
{naxogdenie min v kagdom stolbce}
n1:=a[1].c1;
for i:=1 to 4 do
begin
if n1>a[i+1].c1 then
n1:=a[i+1].c1;
end;
n2:=a[1].c2;
for i:=1 to 4 do
begin
if n2>a[i+1].c2 then
n2:=a[i+1].c2;
end;
n3:=a[1].c3;
for i:=1 to 4 do
begin
if n3>a[i+1].c3 then
n3:=a[i+1].c3;
end;
n4:=a[1].c4;
for i:=1 to 4 do
begin
if n4>a[i+1].c4 then
n4:=a[i+1].c4;
end;
{nahogdenie (zij-minzij)}
writeln;
for i:=1 to 4 do
begin
b[i].c1:=a[i].c1-n1;
b[i].c2:=a[i].c2-n2;
b[i].c3:=a[i].c3-n3;
b[i].c4:=a[i].c4-n4;
end;
r1:=b[1].c1;
for i:=1 to 4 do
begin
if r1<b[i+1].c1 then
r1:=b[i+1].c1;
end;
r2:=b[1].c2;
for i:=1 to 4 do
begin
if r2<b[i+1].c2 then r2:=b[i+1].c2;
end;
r3:=b[1].c3;
for i:=1 to 4 do
begin
if r3<b[i+1].c3 then r3:=b[i+1].c3;
end;
r4:=b[1].c4;
for i:=1 to 4 do
begin
if r4<b[i+1].c4 then r4:=b[i+1].c4;
end;
{nahogdenie otveta}
min:=r1;
z:=1;
if min> r2 then
begin
min:=r2;
z:=2;
end;
if min> r3 then
begin
min:=r3;
z:=3;
end;
if min> r4 then
begin
min:=r4;
z:=4;
end;
shapka;
{vivod podschitannogo}
for i:=1 to 4 do
begin
writeln('| day ',i:1 ,'|',a[i].c1:8:2,'|',a[i].c2:8:2,'|',a[i].c3:8:2,'|',a[i].c4:8:2,'|',
b[i].c1:7:2,'|',b[i].c2:7:2,'|',b[i].c3:7:2,'|',b[i].c4:7:2,'|' );
writeln('|_________________________________________________________________|');
end;
writeln;
writeln;
writeln(' ________________________________________________________________ ');
writeln('| |') ;
writeln('|Max(Zij-minZij):|', r1:13:2,'| ',r2:13:2,'| ',r3:13:2,'| ',r4:13:2,'|' );
writeln('|_________________________________________________________________|');
writeln;
writeln('Otvet:Optimalni variant (po kriteriu Sevidga) coctavliyaet za 3 den s zna4eniem ', min:7:2);
readln ;
repeat until keypressed;
readln;
end.
{konec}
2.3.2. Инструкция по использованию решения задачи.
Во время запроса нужно ввести цены на товар (1)
Рисунок 1
После появляется посчитанная таблица (2), в которой, в графе tovar указана начальная матрица прибыли, а в графе Zij - minZijуказана матрица рисков. В нижней строчке под таблицей указан Max(Zij-minZij). На последней строчке показан ответ решения задачи.
Рисунок 2
Заключение.
Внедрение компьютеров в данную область науки привело к ускорению и упрощению расчетов, что высоко цениться у работников, производивших ранее эти расчёты в ручную. Это не только экономия времени и сил, но и точность ответа, т.к. компьютер никогда не ошибается.
На рис. 2 представлен результат работы программы на TurboPascal. Данный результат совпал с аналитическим решениемзадачи.
Список литературы.
1. Андреев В.Н., Герасимов Ю.Ю. Принятие оптимальных решений: Теория и применение в лесном деле. Йоэнсуу: Из-во ун-та Йоэнсуу, 1999. 200 с.
2. Беллман Р., Калаба Р. Динамическое программирование и современная теория управления. М.: Наука, 1969. 120 с.
3. Вентцель Е.С. Элементы динамического программирования. М.: Наука, 1964. 176 с.
4. Вентцель Е.С. Исследование операций: задачи, принципы, методология. М.: Наука, 1988.
5. Юдин Д.Б. Задачи и методы стохастического программирования. М.: Сов. радио, 1979. 392 с.
6. Davis L.S., Johnson K.N. Forest management. New York: McGraw-Hill Book Company, 1987. 790 p.
7. Моисеев Н.Н., Математические методы системного анализа М. Наука 1981 487 с.