Проектирование модели для составления оптимального рациона кормления скота
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
Другие рефераты на тему «Экономико-математическое моделирование»:
Поиск рефератов
Последние рефераты раздела
- Выборочные исследования в эконометрике
- Временные характеристики и функция времени. Графическое представление частотных характеристик
- Автоматизированный априорный анализ статистической совокупности в среде MS Excel
- Биматричные игры. Поиск равновесных ситуаций
- Анализ рядов распределения
- Анализ состояния финансовых рынков на основе методов нелинейной динамики
- Безработица - основные определения и измерение. Потоки, запасы, утечки, инъекции в модели