Проектирование модели для составления оптимального рациона кормления скота

end;

x[k]:=0; x[p]:=s;

for i:=1 to p do

begin

for j:=1 to p do u[i,j]:=0; u[i,i]:=1;

end;

end;

Блок5 -------------------------------------------------------

Блок6 -------------------------------------------------------

procedure ms(var k,l:integer; var x:arm2);

var j,i:integer;

ex,stop:boolean;

s,d:real;

y:arm2;

Блок6 ---------------------

----------------------------------

Блок7 -------------------------------------------------------

begin

stop:=false;

repeat

if (x[p] >= 0) then q:=m+1;

d:=0;

for j:=1 to n do

begin

s:=0;

for i:=1 to p do s:=s+u[q,i]*a[i,j];

if d > s then begin d:=s; k:=j end;

end;

if d >= 0 then

begin

stop:=true; f:=x[q];

end

else

begin

for i:=1 to q do

begin

s:=0; for j:=1 to p do s:=s+u[i,j]*a[j,k]; y[i]:=s;

end;

ex:=true; d:=1e30;

for i:=1 to m do

if y[i] > 0.000001 then

begin

s:=x[i]/y[i]; if ex or (s < d) then

begin

d:=s; l:=i; end;

ex:=false;

end;

if ex then stop:=true

else

begin

w[l]:=k; s:=1/y[l];

for i:=1 to q do

for j:=1 to q do

if i <> l then u[i,j]:=u[i,j]-u[l,j]*y[i]*s;

for j:=1 to q do u[l,j]:=u[l,j]*s;

for i:=1 to q do

if i <> l then x[i]:=x[i]-d*y[i];

x[l]:=d;

for i:=1 to q do

begin

write(t,x[i]:7:2,y[i]:7:2,w[i]:2);

for j:=1 to q do write(t,u[i,j]:7:2);

writeln(t);

end;

writeln(t,'---------------------------------------------');

end;

end

until stop;

end;

Блок7 -------------------------------------------------------

Блок8 -------------------------------------------------------

procedure vivod;

var i:integer;

f:real;

Блок8 -------------------------------------------------------

Блок9 -------------------------------------------------------

begin

writeln(t,Количество продуктов:');

f:=0;

for i:=1 to m do

if c[w[i]] <> 0 then

begin

writeln(t,w[i]:2,x[i]:10:2);

f:=f+c[w[i]]*x[i];

end;

writeln(t,'Значение стоимости',f:16:2);

end;

Блок9 -------------------------------------------------------

Блок10 -------------------------------------------------------

begin

vvod(c,b,a,m,n);

assign(t,'w_'); rewrite(t);

wp(w,x,u); ms(k,l,x);

vivod;

close(t);

end.

Блок10 ---------------------------------------------------------

ОПИСАНИЕ ПРОГРАММЫ

Блок1 – самый первый блок прграммы, в котором описываются константы, переменные, типы переменных, массивы которые в дальнейшем будут использоваться в программе.

Блок2 - описание переменных процедуры «Ввод»

Блок3 – текст процедуры «Ввод». В данном фрагменте программы происходит обращение к файлу и считывание с него исходных данных.

Блок4 - описание переменных процедуры «Вспомогательные построения - wp».

Блок5 - текст процедуры «wp», происходит построение вспомогательной модели для получения опорного плана исходной задачи.

Блок6 - описание переменных процедуры «Модифицированный симплекс – метод -ms».

Блок7 – текст процедуры «ms», выполняются основные шаги алгоритма модифицированного симплекс – метода : выбор разрешающего элемента, построение обратной матрицы, пересчет опорного плана и оценочной строки. Данный фрагмент можно разбить на 2 этапа:

1 этап – заключается в проверки плана на оптимальность

2 этап – выбор разрешающего столбца, разрешающей строки, вычисление значения целевой функции.

Блок8 - описание переменных процедуры «Вывод- vivod».

Блок9 – блок вывода результата

Блок10 – основной блок данной программы, происходит ввод всех процедур.

РАСШИФРОВКА ПЕРЕМЕННЫХ ПРОГРАММЫ

- константы, определяют максимальную размерность основного массива

- матрицы коэффициентов небазисных переменных размерности .

- вспомогательные массивы

- значение целевой функции

- параметры целевой функции

- свободные части системы ограничений

-переменные системы ограничений

- файл с исходными данными

- текст

- строки матрицы

- столбцы матрицы

- счетчики

ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

К курсовой работе прилагается дискета с программой на задачу приведенную выше в разделе 4.2. Даннная программа написана на языке Turbo Pascal 7.0 в среде операционной сиситемы Windows 98 на диске находится файл с расширением simplех.exe, 4 файла с исходными данными (w1,w2,w3,w4) и 4 файла с конечным результатом вычислений (w1_,w2_,w3_w4).

Для начала включите компьютер, вставте дискету в дисковод, откройте ее, перед вами появятся выше перечисленные файлы. Выберете файл simplех.exe и перед вами появится окно с изображением

После чего введите имя файла : w1 или w2 или w3 или w4 и нажмите Enter. Можете закрывать окно с программой, так как результат автоматически отправляется в файл: w1_ или w2_ или w3_ или w4_.

Елси пользователь решит внести изменения в текст программы, то ему необходимо выбрать D:\Pascal\Bp\Bin\Turbo после чего зайти в File\Open\Simplех, вам откроется текст программы в среде Turbo Pascal. После работы с программой вам необходимо ее сохранить и закрыть, но не всега легко удается закрыть программу, так как Turbo Pascal – язык программирования, который используестя средой MSDos и иногда после закрытия программы компьютер самостоятельно перезагружается.

ПРИЛОЖЕНИЕ Б

(входная информация)

Файл c исходными данными W1

3 6

-3 -2 -5 0 0 0

50 20 180 -1 0 0

6 4 3 0 -1 0

2 1 1 0 0 -1

2000 120 40

Файл c исходными данными W2

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14 


Другие рефераты на тему «Экономико-математическое моделирование»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы