Автор работы: Пользователь скрыл имя, 02 Апреля 2014 в 21:38, курсовая работа
Электронды есептеуіш машинаның шығуымен байланысты жаңа ғылыми-техникалық революция ғылымның жаңа даму бағытын орнатты. Осындай бағыттардың бірі – операцияны зерттеу ғылымы.
Операция дегеніміз – белгілі мақсатқа жеткізетін және нақты ниетпен біріктірілген шаралар жиынтығы. Операциялар: басқарылатын және басқарылмайтын болады.
Операцияны зерттеу дегеніміз – автоматтандырылған басқару жүйесіндегі басқару есептерін шешуге қолданатын ғылыми тәсіл. Операцияны зерттеу методологиясы негізгі мына топтарға бөлінеді:
- анықтамалар, кезеңдер, принциптер, есептер;
- операцияны зерттеудің математикалық әдістері. Оған сызықтық бағдарламалау, транспорттық, дискреттік бағдарламалау, бейсызықтық бағдарламалау, динамикалық бағдарламалау, ойындар теориясы кіреді;
- АБЖ жобалау кезіндегі операцияларды зерттеудің әдістерін қолдану. Онда АБЖ-ң алгоритмін қамтамасыз ету, информациямен АБЖ-ны қамтамасыз ету, техникалық қамтамасыз ету керек.
Кіріспе..............................................................................................................................4
1 Қарапайым актілерді белгілеп көрсету.....................................................................5
2 Жалпы математикалық модельді құру, мақсатты функцияны таңдау және негіздеу............................................................................................................................5
3 Алгоритмнің маңызды ойын баяндау.......................................................................5
3.1 Солтүстік-батыс және минималдау әдісі...................................................6
3.2 Потенциалдау әдісі......................................................................................6
4 Оңтайландыру есебінің айқын математикалық өрнегінің өңделіп, жетілдіруі, оның сандық түрдегі шешімі...................................................................................................7
5 Программа листингісі...............................................................................................12
Программаны баяндау бөлімі.......................................................................................22
Қорытынды....................................................................................................................23
Қолданылған әдебиеттер..............................................................................................24
Қосымшалар...................................................................................................................25
Vj
Ui |
V1=2 |
V2=4 |
V3=6 |
V4=5 |
V5=6 |
U1=0 |
2 80 |
_ 4 40 |
+ |
||
U2=1 |
+ 3 20 |
_ 5 70 |
4 20 |
||
U3=2 |
3 80 |
4 50 |
J(-)min{40;70}=40
Vj Ui |
V1=2 |
V2=-1 |
V3=1 |
V4=0 |
V5=1 |
U1=0 |
2 80 |
4 |
1 40 |
6 6 |
7 |
U2=4 |
3 |
3 60 |
5 30 |
_ 4 20 |
+ 2 |
U3=-3 |
8 |
9 |
6 |
3 + 80 |
4 4 _ 50 |
2*80+1*40+3*60+5*30+4*20+3*80+
vj-ui=cii
vj-ui<=cij
v1-u1=cij
v1-u1=2
v2-u2=3
v3-u1=1 v1-u2<=3
v3-u2=5
v4-u2=4
v4-u3=3
v5-u3=4
v1-u1=2
u1=0,v1=2
v3-u1=1
u1=0,v3=1
v2-u2=3
v2=-1,u2=-4
v3-u1=1
v3=1,u1=0 v3-u3<=6
v-u2=5
v2=1, u2=4
v4-u2=4
v2=-4, v4=0
v4=0, u3=3
v5-u3=u
v3=-3, v5=1
uj-ui=cij
v1-u1=2 v2-u1<=4
v3-u1=3
v2-u2=3
v3-u1=1
v3-u2=5
v4-u2=4 v1-u3<=8
v4-u3=3
v5-u3=4
Vj Ui |
V1=2 |
V2=-1 |
V3=1 |
V4=-3 |
V5=-2 |
U1=0 |
_ 2 80 |
4 |
+ 1 40 |
6 |
7 |
U2=-4 |
+ 3 |
3 60 |
5 _ 30 |
4 |
2 20 |
U3=-6 |
8 |
9 |
6 |
3 100 |
4 30 |
vj-ui=cij
v1-u1=2 v1=2 v2-u1≤4
v3-u1=1 v3=1 v4-u1≤ 6
v1-u2=3 v3=-1 v5-u1≤7
v3-u2=5 u2=-4 v1-u2≤ 3 α 21=3
v5-u2=2 v5=-2 v4-u2 ≤4
v4-u2=3 v4=-3 v1-u2 ≤8
v5-u3=4 u3=-6 v2-u3 ≤9
Vij Ui |
V1=2 |
V2=2 |
V3=1 |
V4=0 |
V5=1 |
U1=0 |
50 2 |
4 |
70 1 |
6 |
7 |
U2=-1 |
30 3 |
60 3 |
5 |
4 |
20 2 |
U3=-3 |
8 |
7 |
6 |
100 3 |
30 4 |
Vj-ui=cij
V1-u1= 2 v1=2
V3-u2=1
V1-u2=3
V2-u2=3 v2=2
V5-u2=2 v5=1 z*=100+70+90+180+
V4-u3=3
V5-u3=4 u3=-3
5 Программа листингісі
Program transportnaj_zadatsha;
Uses Crt;
Label l1;
Const N=6;
n1=7; n2=7;
Sa:longint=0;
Sb:longint=0;
Type predpr=Array [1..N] of longint;
rasp=Array [1..N,1..N] of longint;
Var A,B,alfa,betta,B_d,x:predpr;
c,p:rasp;
f,f0,x_min,Sp:longint;
Nt,x_p,r,r_min,ki,kj,Na,Nb,h,
d:char;
u:Array[1..N*N] of byte;
Procedure Nul (var a:predpr); {обнуляет массив}
var i:byte;
Begin
for i:=1 to N do a[i]:=0;
End;
Procedure PrintS (x,y:byte; s:string; c:byte);
Begin {вывод строки s}
TextColor(c);
GotoXY(x,y);
Write(s);
End;
Procedure Print (x,y:byte; n:byte; a:longint; c:byte);
Begin {вывод числа a}
TextColor(c);
GotoXY(x,y); Write(' ':n);
GotoXY(x,y); Write(a);
End;
Procedure Rid (var x:longint; y:byte); {проседура ввода числа x}
var i:integer;
s:string;
c:char;
j,k:byte;
Begin
s:=''; i:=1;
TextColor(11);
Repeat
c:=ReadKey;
Case ord(c) of
48..57: begin s:=s+c;
Write(c);
inc(i);
end;
8: if i>1 then begin dec(i);
Delete(s,i,1);
Write(chr(8),' ',chr(8));
end;
end;
j:=WhereX;
GotoXY(60,1); ClrEOL;
if i>y then begin
TextColor(4);
Write('Не более ');
for k:=1 to y-1 do Write('9');
TextColor(11);
end;
GotoXY(j,1);
Until (ord(c)=13) and (i<y+1);
val(s,x,i);
End;
Procedure goriz (a,b,c,d,e:char); {Процедуры goriz, wertic}
var i,j:byte;
Begin
Write(a);
for i:=1 to n2 do Write(b);
Write(c);
for i:=1 to Nb do begin
for j:=1 to n1 do Write(b);
if i<>Nb then Write(d) else Write(c);
end;
for i:=1 to 4 do Write(b);
Write(e);
End;
Procedure wertic;
var i:byte;
Begin
Write('¦',' ':n2,'¦');
for i:=1 to Nb-1 do Write(' ':n1,'¦');
WriteLn(' ':n1,'¦',' ' :4,'¦');
End;
Procedure Tabl;
Begin
ClrScr;
TextColor(1);
h:=6+Na*3;
l:=14+Nb*7;
GotoXY(1,3);
for i:=3 to h do wertic;
GotoXY(1,2);
goriz('+','-','-','-','+');
for i:=1 to Na+1 do begin
GotoXY(1,i*3+2);
if (i=1) or (i=Na+1)
then goriz('¦','-','+','+','¦')
else goriz('+','-','+','+','¦');
end;
GotoXY(1,h+1);
goriz('+','-','-','-','+');
TextColor(9);
for i:=1 to Na do begin
GotoXY(5,i*3+3);
Write('A',i);
end;
for i:=1 to Nb do begin
GotoXY(i*(n1+1)+n2-2,3);
Write('B',i);
end;
l:=Nb*(n1+1)+n2+3;
h:=Na*3+6;
PrintS(4,3,'\Bj',9);
PrintS(4,4,'Ai\',9);
PrintS(1,1,'Таблица N1',14);
PrintS(l,4,'alfa',9);
PrintS(3,h,'betta',9);
End;
Procedure W_W (var a:predpr; b:byte; c:char); {Ввод в таблицу}
var i,l,m:byte;
Begin
for i:=1 to b do begin
TextColor(3);
GotoXY(32,1);
ClrEOL;
Write(c,i,'= ');
Rid(a[i],n1);
TextColor(14);
Case c of
'A': GotoXY(n2-trunc(ln(a[i])/ln(
'B': GotoXY(n2+i*(n1+1)-trunc(ln(a[
end;
Write(a[i]);
end;
End;
Function FF:longint; {Вычисление стоимости плана}
var i,j:byte;
f:longint;
Begin
f:=0;
for i:=1 to Na do
for j:=1 to Nb do
if p[i,j]>0 then inc(f,c[i,j]*p[i,j]);
GotoXY(65,Nt+2);
TextColor(10);
Write('F',Nt,'=',f);
FF:=f;
End;
Function a_b:boolean; {Расчет потенциалов}
var k,i,j:byte; {alfa и betta}
Z_a,Z_b:predpr;
d:boolean;
Begin
Nul(Z_a); Nul(Z_b);
alfa[1]:=0; Z_a[1]:=1; k:=1;
Repeat
d:=1=1;
for i:=1 to Na do
if Z_a[i]=1 then
for j:=1 to Nb do
if (p[i,j]>-1) and (Z_b[j]=0) then begin