Соответствие между переменными примет вид
Учитывая это соответствие, выпишем из индексной строки последней итерации компоненты искомого плана
min f = max Z =84000.
Запишем это неравенство в развернутой форме:
48000*15 + 2400*5 + 1500*0 = 65*0 + 70*0 + 60*400 + 120*500
Учитывая, что компонеты представляют собой оценки ресурсов заключаем:
При оптимальном плане оценка ресурсов, затраченных на выпуск продукции, совпадает с оценкой произведенной продукции.
Теперь установим степень дефицитности используемых ресурсов и обоснуем рентабельность оптимального плана.
Мы нашли оптимальный план
0+2-400+500= 1300< 1500. Это означает, что расход ресурса
А вот оценки
Поскольку 15>5, ресурс
На основе теоремы (о дополняющей нежесткости) нетрудно объяснить, почему не вошла в оптимальный план продукция
Это означает, что оценки ресурсов, расходуемых на изготовление единицы продукции
Таким образом, в оптимальный план войдет только та продукция, которая выгодна предприятию, и не войдет убыточная продукция. В этом проявляется рентабельность оптимального плана.
Рассмотрим возможность дальнейшего совершенствования оптимального ассортимента выпускаемой продукции.
Выше установлено, что ресурсы
Что же касается избыточного ресурса
Выясним экономический смысл оценок
По оптимальному плану
Таким образом, нулевая оценка показывает, что эта продукция является неубыточной, поскольку оценка ресурсов, расходуемых на выпуск единицы такой продукции, совпадает с оценкой единицы изготовленной продукции.
Что же касается продукции
Отсюда видно, что оценка убыточной продукции показывает, насколько будет снижать каждая единица такой продукции достигнутый оптимальный уровень.
§8. Программа и расчеты.
{Программа составлена для решения задачи линейного программирования
симплексным методом}
uses crt;
const n=2;{число неизвестных исходной задачи}
m=3;{число ограничений}
m1=0;{последняя строка равенств}
m2=1;{последняя строка неравенств вида >=}
label 5,15,20,10;
var b,cb:array[1..m] of real;c,x,e:array[1..50] of real;a:array[1..m,1..50] of real;
s0,max,mb,s1:real;i,j,k,i0,j0,m21,nm1,n1:integer; Bi:array[1..m] of integer;
begin
clrscr;
writeln;
writeln (' Симплексный метод решения задачи линейного программирования:');
writeln;
writeln (' Проведем некоторые преобразования с данной задачей:');
writeln;
writeln (' Подготовьте матрицу: сначала равенства, потом неравенства вида >= и неравенства вида <=;');
writeln (' Целевая функция должна быть на минимум (привести ее к такому виду); ');
writeln (' Вектор b должен состоять только из положительных элементов (привести его к та- кому виду);');
writeln(' Введите матрицу А ',m,'*',n,' построчно:');
for i:=1 to m
do begin for j:=1 to n
do read (a[i,j]);
readln
end;
writeln (' Введите в виде строки вектор b, состоящий из ',m,' компонент:');
for i:=1 to m
do read (b[i]);
writeln(' Введите теперь вектор с, состоящий из ',n,' компонент:');
for i:=1 to n
do read (c[i]);
m21:=m2-m1+n;nm1:=n+m-m1;n1:=n+m-m1+m2;
for i:=1 to m
do for j:=n+1 to n1
do a[i,j]:=0;
{переход к равенствам в неравенствах >=}
for i:=m1+1 to m2
do a[i,n+i-m1]:=-1;
{переход к равенствам в неравенствах <=}