Академический Документы
Профессиональный Документы
Культура Документы
4
759
. .
,
AnyLogic 7
-
2014
681.142.1.001.57
681.142.33
. .
: , AnyLogic7:. .: , 2014.
432 .
,
, , . AnyLogic7.
, GPSS World AnyLogic7 6. .
.
, , .
. ., 2014
2
........................................................................................................................ 8
1. ................................................... 10
1.1. .......................................................................................... 10
1.2. ...................................................................... 10
1.3. , ......................... 14
1.3.1. ........................... 14
1.3.2. ................................................................ 18
1.3.3. .................................................................................... 19
1.4. ........................................................................... 24
1.5. .................................................... 29
1.6. .............................. 34
1.7. ................................ 37
1.7.1. Java ............................................. 39
1.7.2. ................................................... 45
1.7.3. ........................................ 46
1.7.4. .......................... 50
1.8. ........................................ 51
1.9. ................................................................................. 56
1.10. .................................... 57
1.11. .............................................. 60
2. .................................... 65
2.1. .......................................................................................... 65
2.1.1. .............................................................................. 65
2.1.2. .................................................................. 66
2.1.3. ................................................... 66
2.2. AnyLogic ......................................................................................... 67
2.2.1. . ....................................... 67
2.2.2. ................................................. 71
2.2.2.1. .................................................................... 71
2.2.2.2. 1, 2, 3.......................... 75
2.2.2.3. ............................................. 78
2.2.2.4. ..................................... 79
2.2.2.5. ......................................................... 82
2.2.2.6. ............................... 83
2.2.2.7. ................................................... 85
2.2.2.8. . ..... 86
2.2.2.9. .
............................................... 87
2.2.2.10. .. 87
2.2.3. ........................ 88
2.3. ................................................ 91
3. ................................. 96
3.1. .......................................................................................... 96
3.2. ........................................................ 96
3.3. AnyLogic ......................................................... 97
3.3.1. ................................................................................... 97
3.3.2. ....................................................... 98
3
3.3.3. ................................................. 99
3.3.3.1. ................................................................. 100
3.3.3.2. , ........................................ 101
3.3.3.3. ................................. 105
3.4. ............................................................................................. 107
3.5. .............................................. 112
4. ............................................... 115
4.1. AnyLogic ....................................................................................... 115
4.1.1. ................................................................................ 115
4.1.2. ................................................................................. 116
4.1.3. ...................................................................... 116
4.1.4. ................................................... 116
4.1.5. ............................................................ 121
4.1.6. ............................................................. 122
4.1.7. .................................................................................. 122
4.1.7.1. ......................................................................... 122
4.1.7.2. .................... 125
4.1.7.3. ......................... 128
4.1.7.4. .................................... 131
4.1.8. ...................................................................... 143
4.1.8.1. ......................................................................... 143
4.1.8.2. ............................. 144
4.1.8.2.1. 1 ......................................................................... 144
4.1.8.2.2. 1 .............................................................................. 147
4.1.8.2.3. ...................................................... 148
4.1.8.2.4. 2 ......................................................................... 149
4.1.8.2.5. 2 .............................................................................. 152
4.1.8.2.6. ............................. 153
4.1.8.2.7. ..................... 154
4.1.9. ...................................................................................... 155
4.1.9.1. ......................................................................... 155
4.1.9.2. ........................................... 155
4.1.9.3. .............................. 157
4.1.9.4. ................................................. 158
4.1.10. .......................................................... 159
4.1.11. .................................... 171
4.1.12. .................................................................... 174
4.2. .............................................. 177
5. .................................... 180
5.1. AnyLogic ....................................................................................... 180
5.1.1. ................................................................................ 180
5.1.2. ...................................................................... 180
5.1.3. ................................................... 180
5.1.4. ..................................................... 184
5.1.4.1. ................................................................ 184
5.1.4.2. ........................................ 186
5.1.4.3. ..................................................... 191
5.1.4.4. ........................................... 192
4
,
, , ,
().
GPSS World,
GPSS.
AnyLogic ( 7). AnyLogic
The AnyLogic Company
- . ,
:
-, , . . , GPSS World.
, .
, , , , , .
, - . , . . .
AnyLogic 7 , AnyLogic 6, -
. ,
8
[8, 13]. AnyLogic 6 GPSS World
AnyLogic 7.
AnyLogic 7
. .
.
, AnyLogic 7, 6 GPSS World.
GPSS World . [13, 20]. , , ,
, .
.
AnyLogic 7.
.
AnyLogic7.
The AnyLogic
Company . . , . . , AnyLogic 7.
. . .
1.
1.1.
, , 2 .
3 .
5 .
.
,
, (. 1.1).
1.1 AnyLogic,
. . .
. 1.1.
1.2.
1. //
. (. 1.2).
2. .
Server.
3. , .
- ,
, .
10
. 1.2.
4. . (. 1.3). .
5.
. , .
. .
. ,
Java .
, , . .
6. ( )
, .
. 1.3 . , . .
7. .
( ) .
8. AnyLogic
Main.
11
. 1.3.
9. .
10. . (. 1.4). ,
. 1.5. ,
, , .
11. , . , , ,
, .
,
. .
. . .
12
. 1.4.
. 1.5.
13
.
12. Source .
, . , Source
.
13. Queue ,
, .
, .
14. Delay
. , .
15. Sink .
( ).
1.3. ,
, ,
.
- ( ), ,
.
AnyLogic
, .
, , (. . 1.5)
.
1.3.1.
( AnyLogic)
.
, . .
14
.
,
, ,
,
.
,
,
, .
Source. source . , , , , - : , , , , ..
,
source .
. 1.6. source
15
, () 2 .
. , , ,
, .
1. source.
: ,
: (. 1.6).
2. exponential(1). ,
source. 1 1/120.0.
Java / , .. , . 1/120 .
, ,
(double).
(
) 1/120.0
1.0/120.
queue. .
, ,
. ,
, ,
.
queue (. 1.7).
1. . : 5.
5 .
2. ,
. . , ,
.
, , , Java .
16
. 1.7. queue
delay. , , .
delay (. 1.8).
1. 3 . , 3 .
: exponential(1/180.0). exponential()
AnyLogic. AnyLogic
, , , . .
2. .
17
. 1.8. delay
delay Java .
-
sink. .
( ).
.
1.3.2.
. ,
. , , .
18
. ,
Simulation,
(. ).
,
, , .
( ,
), .
, .. 3600 .
1. Simulation:Main.
2. .
3. ( )
(. 1.9).
4. :
.
5. : 3600.
6. .
7. ( ).
8. : 9.
9. , Server (. 1.10).
10. :
.
1.3.3.
(F7) (
AnyLogic - ). - ,
,
, .
, . .
19
. 1.9.
. 1.10.
, :
1.
( F5) , .
Server/Simulation.
20
2. ( F5)
,
. ,
,
, (
).
3.
(. 1. 11). . AnyLogic ,
, (Main).
4. . . ,
, - ,
, ,
,
(. 1.12).
. 1.11.
5. , .
, .
: , , , .
21
,
, ,
(. 1.12). , source queue, ,
5, .
(. 1.13)
. 1.12.
. 1.13.
6. OK. queue, . .
(. . 1.7).
15. ,
6 14 -
.
.
7. .
22
. 1.14.
8. . ,
. , ,
. ,
,
.
9.
: , queue , ,
. .
delay (. 1.14).
23
10. ,
.
11.
queue
queue.
source
, . .
delay,
. ,
. ,
, .
1.4.
,
(. . 1.12, 1.14).
.
.
,
.
( ),
.
,
.
1. (. 1.15).
- ,
.
2. (. 1.15)
,
. ,
, , ,
, , .
24
. 1.15.
3.
.
, . 1.16.
. 1.16.
4. ,
,
.
5.
.
(. 1.17).
25
, -
, , .
. , ,
: , :
delay.size()>0?red:green
. 1.17.
, ,
. , .
, .
.
,
.
. 1.18.
7.
. . queue. queue
: path
(. 1.19).
8.
. delay. :
: node
(. 1.20).
27
. 1.19.
. 1.20.
28
. 1.21.
9. . ,
(. 1.21).
, .
1.5.
AnyLogic
.
Enterprise Library . , .
delay queue,
, , (, )
.
:
1. . , .
2.
, . 1.32.
29
. 1.22.
3. . .
(chart ),
(. 1.23).
. 1.23.
30
4. SERVER utilization.
5. delay.statsUtilization.mean()
. delay delay. delay statsUtilization,
.
mean()
. , , min() max().
: StatisticsContinuous ( ).
6. (. 1.24). :
, , , , , .
. 1.24.
7. ()
, , (. 1.25).
,
( , ),
, , , , , .
31
. 1.25. , ,
8.
.
9. .
(chart1 ),
(. 1.26).
10. : : ,
. 1.26. : Queue lenqth,
: queue.statsSize.mean().
11. , ,
, . .
32
. 1.26. ,
. 1.27.
13.
(. 1.26),
,
, (. 1.27).
14. ,
3600 ,
(. 1.28).
1.6.
. 1.28 ( ) , 14 15. 5 .
- (.
. 1.22)
source, 5 .
15 .
AnyLogic? , . , . .
34
. 1.28.
queue ,
, ,
.
. .
queue :
out, ,
- , ;
outTimeout,
( );
outPreempted, (
);
, remove() removeFirst().
queue ,
( ). outTimeout outPreempted,
35
. ,
queue ,
.
: FIFO (
), .
,
- . ,
, ,
. ,
outPreempted.
, .
. ,
source, .
(5 ) . .
1. queue.
15 5 .
2. .
3. sink. sink (. 1.29).
. .
4. outPreempted queue InPort sink1. ,
, ,
outPreempted, , .
5. ,
. ,
. , , .
36
. 1.29.
. 1.30.
n , . . n. i- .
:
time_vxod ,
time_vixod (
sink).
time_obrabotki=time_vixod-time_vxod
. , ( sink).
:
col_vxod ,
col_vixod .
38
ver_obrabotki=col_vixod/col_vxod
.
. ,
. AnyLogic
, .
1.7.1. Java
. . Inquiry.
1.
/Java .
2. Java (. 1.31).
: Inquiry.
3. :
Entity . .
. 1.31. Java
4. Java .
(. 1.32).
39
. 1.32. Java
. 1.33.
10. ,
. , Java
. .
41
Inquiry.
1. .
2. .
Entity (. 1.34).
3. (. 1.35).
1. .
: Inquiry.
: 2D , , .
.
4. . 2. (. 1.36).
5. <>. :
time_vxod (. 1.37).
6. : double.
7. <>. :
time_vixod.
8. : double.
9. <>. :
col_vxod.
10. : int.
. 1.34. Entity
42
. 1.35. . 1.
1. <>. :
col_vixod.
2. : int.
. 1.36. . 2.
43
. 1.37. . 2.
Inquiry
3. , 0.
. 1.38. Inquiry
4. . ,
Inquiry (. 1.38). ,
.
44
1.7.2.
. .
(, , , ..).
1.
,
.
2. (. 1.39):
: time_obrabotki;
- : 50;
. : 0.01.
. 1.39.
.
1.
.
45
2. (. 1.40):
: ver_obrabotki;
- : 50;
. : 0.01.
. 1.41.
. 1.40.
1.7.3.
, Inquiry, source. , ,
Inquiry,
Entity.
Inquiry.
, .
source .
46
. 1.41.
. 1.42. source
.
1. source (. 1.42):
47
Inquiry :. Inquiry ;
Inquiry()
:.
Inquiry;
entity.time_vxod=time();
:. -
time_vxod Inquiry.
time()
.
2. queue:
Inquiry :.
3. delay:
Inquiry :.
4. sink1:
Inquiry :.
5. sink:
Inquiry :;
:
time_obrabotki.add(time()-entity.time_vxod);
time_obrabotki.
time() . add
.
entity.col_vixod=sink.count();
entity.col_vxod=source.count();
, sink
source . count() ,
sink source .
ver_obrabotki.add(entity.col_vixod/entity.col_vxod);
ver_obrabotki
sink. .
48
. 1.43.
6. . . . (. 1.43).
. 1.44.
7. Java
Main.java.399 (. 1.44). .
int col_vxod col_vixod (.
. 1.32). double.
49
1.7.4.
,
time_vixod,
time(), , ,
.
time_vixod.
1. Inquiry. Inquiry (. . 1.38).
2. time_vixod, Delete.
3. col_vxod. : int double (. 1.45).
4. col_vixod. : int double.
. 1.45. time_vixod
5. ,
.
, . :
.
.
, .
, ,
. . (. 1.46).
50
. 1.46.
1.8.
.
.
. , , .
time_mean delay.
1. .
2. Main
delay, ,
.
3. (. 1.47).
4. time_mean (
). .
5. double.
51
. 1.47.
6. 180.
, Java .
7. delay.
8. exponential(1/180.0) exponential(1/time_mean).
time_mean . .
1.
Main
(. 1.48).
2. time_mean,
, delay.
3. 1 300.
1 :, 300
: (. 1.49).
4. :
time_mean.
. .
1.
Main
(. 1.49).
52
. 1.48.
. 1.49.
2. queue, ,
, .
53
3. 0 15
. 15 .
4. :
queue.capacity.
5. .
.
,
, (. 1.50).
6. Main.
.
, ,
, .
,
.
. 1.50.
54
: ,
. , ,
(, ).
: ; ; .
: ; (boolean); (String).
1. time_mean.
2. .
3. time_mean.
4. (. 1.51).
5. : 240.0.
6. . 240.0.
7. delay.
. 1.51.
55
1.9.
, .
1. , .
2. , , :
: time_obrabotki (. 1.52). .
3. : Histogram Time obrabotki.
,
.
1. .
2.
: ver_obrabotki. .
3. : Histogram Ver obrabotki.
4. . . 1.53.
. , time_mean=180, 240.
. 1.52.
56
. 1.53.
1.10.
(. 1.2.1).
, ,
()
T 2 = 3 .
Q= 6 105 / ,
57
9604,
1,96
2
0,012
t = 1,96 , p
, .
,
,
p = 0,5.
AnyLogic- 9604 .
,
58
. 1.54. AnyLogic-,
9604 , 9604, .
10.
3600 , AnyLogic 3600*9604 = 34574400 .
11. Simulation. .
12. 34574400.
13. .
. 1.55.
59
. 1.55.
1.11.
.
, .
1.
Main. S1_,
S2_, Q_. ,
. , .
. .
60
2. . : timeMean
. double.
3. 120.
4. source. 120.0 timeMean.
.
5. . :
kolProg .
,
. double.
6. 9604.
7. sink.
8. :
KolZap=round(sink.in.count()/kolProg);
. 1. KolZap
. , round, .
, .
- . ,
1000 ,
3600*1000=3600000.
9. . :
emkBuf . int.
10. 5.
11. queue.
emkBuf.
12. . . 1.56.
.
timeMean , ,
timeMean .
emkBuf
Q_ .
61
. 1.56.
. 1.1.
1 2 ,
0,025, .
1,27 1,48 .
( 3 4) : 36 30.
62
1.1
GPSS
AnyLogic6 AnyLogic7
World
1) timeMean = 120, emkBuf = 5
29
29
29
0,970
0,971
0,970
255,262
254,942
255,727
1,254
1,261
0,810
0,810
0,810
2) timeMean = 120, emkBuf = 10
29
30
30
0,995
0,995
0,995
328,328
321,540
325,017
1,841
1,870
0,833
0,831
0,831
3) timeMean = 40, emkBuf = 5
36
36
36
0,400
0,399
0,400
1055,335 1055,108
554,983
4,552
4,550
1,00
1,00
1,00
4) timeMean = 40, emkBuf = 10
36
36
36
0,399
0,399
0,400
591,860
591,304
1054,907
9,551
9,549
1,00
1,00
1,00
5) timeMean = 40, emkBuf = 10, Q_ = 1000000
59
60
60
0,666
0,665
0,667
591,860
591,304
591,129
63
. 1.1
GPSS
World
AnyLogic6 AnyLogic7
8,855
1,00
1,00
6) timeMean = 40, emkBuf = 15, Q_ = 2000000
90
90
1,00
1,00
74,859
75,049
1,096
0,751
0,750
8,852
1,00
90
1,00
75,096
1,128
0,751
2,5
, 3,25 .
1. ,
.
5 6
1000000 2000000 /c .
1 5 2 , 6
3 ( 1).
2
5, 6 3,4 .
,
, 5
8,852, 6 1,128,
7,85 .
6
0,751. , .
AnyLogic
7090 .
64
2.
2.1.
T . . ,
. n1 . .
. 2.1 :
2.1
0,05
10
0,13
14
0,16
21
0,22
22
0,29
28
0,15
25
n T1 , T2 , ..., Tn .
T1 , T 2 , ..., Tn . . q1 , q2 , ..., qn % .
, T
. qn +1 % , (1 qn +1 ) %
,
. ,
.
2.1.1.
n1 6; Exponential
%, q2 15 %;
=
=
(T ) Exponential ( 30=
) ; q1 12=
=
n 3; Exponential(
=
T1 ) Exponential(30);=
q3 10
=
%, q4 80 %;
Exponential(T2 )
Exponential(25);
Exponential (T3 ) Exponential(35);
=
Exponential (T3 )
Exponential(15);
=
Exponential(T ) Exponential(8).
65
2.1.2.
, 8 .
, .
= 0,01 = 0,99.
2.1.3.
,
(. 2.1). .
. 2.1.
66
, 1, 2 3 () 1, 2, 3
4 .
. GPSS
. 2.1.
. 1 . . . = 1.
,
.
. , :
N =t2
0,5 (1 0,5 )
2
0, 25
=2,582
=6, 656
16641.
0, 0001
2
0, 012
2.2. AnyLogic
AnyLogic-
(. 2.1) :
;
;
1;
2;
3;
;
;
.
.
2.2.1. .
.
1. // .
2. ___. ,
.
3. .
.
4.
.
67
5. : .
6. : . .
7. : .
8. :
X: 0, Y: 0, : 780, : 530.
9. .
:
X: 280, Y: 300, : 250, : 220.
10. text
: .
11. .
.
, . 2.4. . 2.3.
12. . 2.4, , , ,
.
. 2.1
( ) (
).
. 2.4.
68
2.3
35
Tk1
double
4
30
Tk2
double
5
25
Tk3
double
15
35
Tk
double
8
0.12
double
480
0.15
double
16641
0.10
0.80
Tn
T1
T2
T3
q1
q2
q3
q4
double
double
double
double
double
double
double
double
. . . 2.1 . ,
10. 10 .
1.
/.
2.
.
3. : .
4. : 1-10.
5. .
.
.
1. .
2. :
. : double.
3. .
(. 2.5 ). .
4. Edit dimensions (. 2.6 ). : .
5.
. .
6. . . .
69
. 2.5. -
. 2.6.
7. .
(2.7 ).
. 2.7.
70
8. . .
. [].
9. :
0.05,0.18,0.34,0.56,0.85,1,0,0,0,0
, . 2.1 , , =
. 2.1 + . 2.1, = +
. 2.1 .. . , . 2.1.
10. . .
: . .
,
{}.
11.
.
12. : :
{10,14,21,22,28,25,0,0,0,0}
2.2.2.
() . , AnyLogic
,
.
.
2.2.2.1.
, , .
1. .
. : X: 20, Y: 300, : 240, : 150.
2. text
: (. 2.8).
71
. 2.8.
3. . source Main
.
4. . Detail.
5.
Java .
6. Java .
: Detail.
7. :
Entity . .
8. Java .
Java ,
:
double n;
double a;
double Tn1;
n .
72
,
. a
. ,
.
9.
toString().
10. . Java . .
11. Java .
Java Java .
12. c
Detail.
13.
.
: b, : double.
14. source.
. 2.9.
, ,
:,
.
entity.n=uniform_pos();
if (entity.n <= .get(1))
entity.Tn1=.get(1);
else if (entity.n > .get(1) && entity.n
<= .get(2)) entity.Tn1=.get(2);
else if (entity.n > .get(2) && entity.n
<= .get(3)) entity.Tn1=.get(3);
else if (entity.n > .get(3) && entity.n
<= .get(4)) entity.Tn1=.get(4);
else if (entity.n > .get(4) && entity.n
<= .get(5)) entity.Tn1=.get(5);
else if (entity.n > .get(5) && entity.n
<=.get(6)) entity.Tn1=.get(6);
73
. 2.9. source
1. queue
:
:
: Detail
2. : .
3. delay
:
:
74
: Detail
:
: exponential (1/entity.Tn1)
: 1
: entity.a = 1;
2.2.2.2. 1, 2, 3
1, 2 3 , , ,
,
, .
1. , . 2.10.
: X:
20, Y: 60; X: 280, Y: 60; X:
530, Y: 60. : 240, : 180.
2. text
: 1, 2, 3 (. 2.10).
3.
queue, delay
selectOutput, . 2.7.
4. , queue
1,
. 2.10 . 2.4.
1 :
1 1; 1 1; 1 1; 11 1; 12 .
75
. 2.10. 1, 2, 3
76
2.4
1
1
Detail
delay
1
Detail
exponential (1/T1)
1
queue1
1
Detail
delay1
11
Detail
exponential (1/Tk1)
1
entity.n = 1;
selectOutput
12
Detail
true
1-q1
2
queue
2
Detail
delay
2
Detail
exponential (1/T2)
1
queue1
2
Detail
queue
77
. 2.4
delay1
21
Detail
exponential (1/Tk2)
1
entity.n = 2
selectOutput
22
Detail
true
1-q2
3
queue
3
Detail
delay
3
Detail
exponential (1/T3)
1
queue1
3
Detail
delay1
31
Detail
exponential (1/Tk3)
1
entity.n = 3
selectOutput
32
Detail
true
1-q3
2.2.2.3.
. 2.10 , 18 AnyLogic.
, 78
: : 20 .
( ). .
1.
Main, ,
/ .
2. 1. .
3. .
4. : Kontrol.
5. , : , .
6. .
2.2.2.4.
.
, . ,
.
,
Main (3+3+1).
Kontrol.
1.
(. 2.11).
2.
port
1.
3.
1.
4.
(. . 2.11). :
2, 3.
. 2.11.
79
5. (. . 2.11).
6. port 1 ( ,
1
).
7. 1.
8. (. . 2.11).
9. (. . 2.11).
10. port .
11.
( )
.
12. Main.
Kontrol, Main
Kontrol, . 2.12.
13. Kontrol .
: _.
14. .
. 2.12. : X: 570, Y:
270, : 140, : 220.
15. text
.
-
1, 2 3 .
1. F (false) 12, 22,
32 1, 2, 3 .
2. 1, 2, 3 1, 2, 3 .
3. (true) 32 3 .
. 2.12 .
Main.
80
2.2.2.5.
, , :
,
.
7 AnyLogic
.
, .
,
,
. ,
.
. (. . 2.12),
,
.
Main
.
1. .
.
2. . ,
.
3. .
4. : zex.
5. , ,
: . .
6. : .
7. : X: 0,
Y: 0, : 780, : 530.
82
2.2.2.6.
,
.
:
1. ,
.
2. , .
:
1. , ,
,
.
2.
... , ( , , , ).
,
. .
1. .
text, : , . 2.12.
2. text,
: .
3.
: Java :
_.kontr.navigateTo();
_
Kontrol, kontr ,
Kontrol.
. 2.13 Kontrol
. .
83
. 2.13. Kontrol
84
2.2.2.7.
1. , . 2.10.
: X: 110, Y: 70, : 580, : 240.
: X: 190, Y: 330, : 250, : 140;
X: 460, Y: 330, : 250, : 140.
2. text
: text ,
,
(. 2.13).
3.
selectOutput, queue, delay selectOutput5, e , . 2.13. 1, 2 3
selectOutput. T (true)
3 selectOutput.
4. ,
selectOutput, . 2.13 . 2.5.
.
2.5
selectOutput
true
queue
delay
85
1
Detail
entity.a<2
Detail
2
Detail
exponential
(1/main.Tk)
1
. 2.5
selectOutput
selectOutput5
true
(true)
:
1
2
3
3
Detail
1-main.q4
entity.a=2
Detail
entity.n==1
entity.n==2
entity.n==3
2.2.2.8. .
1.
.
: , . 2.13. : double.
2.
sink.
3. :
:
;
: Detail
:
= .count()/main.;
= /( + );
=
(main.*main.)/.count();
: , .
4.
. 2.13.
86
2.2.2.9. .
1.
.
: , . 2.13. : double.
2.
sink.
3. :
:
;
: Detail
= .count()/main.;
= /(+);
: .
4.
. 2.13.
Main, Kontrol, , , : main.;
2.2.2.10.
1.
.
2. .
3. : kontr.
4. , ,
: . .
5. : .
6.
: X: 30, Y: 10, : 670, : 480.
87
7. , .
8. text,
: , . 2.13.
9.
: Java :
main.zex.navigateTo();
10. text,
: .
11.
. , , ,
, ,
.
.
2.2.3.
()
13
java-.
1. Kontrol . 2.14.
Main,
.
2. text,
: .
3. . , . 2.14.
double.
4.
1. double.
5. 1.
, 2 3 (. . 2.14). double.
6.
.
88
. 2.14.
89
7. .
:
_.=
.statsUtilization.mean();
8. 1.
:
_.1=
1.statsUtilization.mean()
9. 2.
:
_.2=
2.statsUtilization.mean()
10. 3.
:
_.3=
3.statsUtilization.mean()
11.
. 1 . . . = 1.
,
.
. , :
N =t2
0,5 (1 0,5 )
2
0, 25
=2,582
=6, 656
16641.
2
2
0,
0001
0, 01
2.3.
, AnyLogic
16641 ( GPSS World 16641 ).
8 , . 2.6. . . 2.15
. 2.6.
,
, ,
.
, .
, Tn = 35 Tn = 30,
(. 2.6).
. ,
( ).
GPSS World AnyLogic7, .
, 0 0,002,
0,023 0,238.
13
, 0,001 0,006.
(. 2.6) .
. 9,916 (9,885), 48,407 (48,559),
21,220 (21,161) 22,620
(22,683) . 0,277
0,116.
91
. 2.15.
92
1
2
3
11
12
13
1
2
3
21
22
23
1
2
3
31
32
33
GPSS World
AnyLogic6
1)
9,885
9,882
0,721
0,723
3,821
3,778
0,279
0,277
48,559
48,573
0,639
0,638
0,879
0,877
0,662
0,658
0,801
0,801
0,002
0,002
0,152
2) Tn = 30
11,284
11,333
0,722
0,723
4,338
4,343
0,278
0,277
42,538
42,353
0,749
0,746
1,000
1,000
0,752
0,762
0,915
0,916
0,002
0,002
0,038
3) T1 = 25, T3 = 30
11,552
11,555
0,722
0,724
4,459
4,414
0,278
0,276
41,553
41,542
0,748
0,746
0,852
0,852
0,774
0,770
0,802
0,801
0,001
0,001
0,023
93
2.6
AnyLogic7
9,916
0,723
3,804
0,277
48,407
0,640
0,879
0,664
0,803
11,294
0,724
4,312
0,276
42,500
0,746
1,000
0,755
0,916
11,558
0,723
4,437
0,277
41,530
0,748
0,852
0,770
0,802
. 2.6
GPSS World
AnyLogic6
4) Tn = 25, T1 = 20, T2 = 15, T3 = 25
13,845
13,900
0,723
0,724
5,314
5,305
0,277
0,276
34,669
34,532
0,895
0,899
1
0,817
0,822
2
0,555
0,558
3
0,801
0,803
41
0,001
42
0,001
43
0,112
5) Tn = 20, T3 = 20
15,453
15,499
0,723
0,724
5,932
5,915
0,277
0,276
31,063
30,969
1,000
1,000
1
0,911
0,913
2
0,619
0,621
3
0,716
0,718
51
0,001
52
0,001
53
0,238
6) q3 = 0,05
16,200
16,206
0,755
0,757
5,246
5,192
0,245
0,243
29,629
29,619
1,000
1,000
1
0,916
0,911
2
0,622
0,620
3
0,710
0,711
61
0,002
62
0,002
63
0,034
94
AnyLogic7
13,882
0,724
5,303
0,276
34,577
0,897
0,818
0,557
0,801
15,572
0,724
5,925
0,276
30,825
1,000
0,918
0,623
0,720
16,219
0,757
5,202
0,243
29,595
1,000
0,913
0,621
0,711
. 2.6
1
2
3
71
72
73
AnyLogic7
18,991
0,884
2,491
0,116
25,275
1,000
0,907
0,651
0,833
8) T1=15, ={7,11,18,19,23,22,0,0,0,0}
1
2
3
81
82
83
21,161
0,883
2,801
0,117
22,683
0,939
0,756
0,725
0,929
21,250
0,884
2,785
0,116
22,588
0,940
0,760
0,729
0,932
0,001
0,001
0,063
21,220
0,884
2,795
0,116
22,620
0,938
0,759
0,728
0,931
, 1=0,879, 3=0,803, 1.
.
1 3. .
57 1. .
.
95
3.
3.1.
(
) mk
.
,
1 = 3 2 = 4 .
.
3 = 2 .
,
4 = 15 . ,
. 5 = 5
, , .
6 = 3 .
.
7 = 2 .
.
2 .
:
;
;
1 2;
.
3.2.
-
.
( ) .
,
(),
96
() .
FIFO.
: 1
1 , , , 2
, 2*60*60 = 7200 .
1 = 120, 2 =240 ..
:
;
;
, ;
;
.
3.3. AnyLogic
3.3.1.
.
1. // .
2. . ,
. .
3. ,
, . .
4.
.
5. :
: X: 630, Y: 20, : 320, : 280.
6. text
text .
7. .
.
, . 3.1.
. 3.1.
. (
) .
97
. 3.1.
3.1
double
double
180
240
int
___
___
double
double
120
180
___
double
10
____
___
double
double
900
120
__1
__2
_
3.3.2.
.
98
1. .
.
2. :
: X: 470, Y: 330, : 490, : 320.
3. text
text .
4. .
. ,
. 3.2. double, . int.
3.3.3.
, , (
).
1. . , . 3.3.
2. :
: X: 20, Y: 20, : 150, : 190.
. 3.2.
99
. 3.3.
3. ,
:
X: 190, Y: 20, : 370, : 200.
4. :
X: 20, Y: 350, : 380, : 130.
5. text
text ,
. 3.3.
3.3.3.1.
,
1 2.
1. .
2. source
Main .
100
3. .
Message.
4.
Java .
5. Java .
: Message.
6. :
Entity . .
7. Java .
Java ,
1 2:
int
numPotok
8.
toString().
9. . Java . .
10. Java .
Java Java .
11. c
Detail.
12.
soure.
. 3.3.
3.3.3.2. ,
,
,
, .
1. .
2. Main , , . 3.4. , .
101
source
_1
_2
3.3
Message
exponential(1/__
1)
Message
entity.numPotok = 1;
__1 ++;
__ ++;
Message
exponential(1/__
2)
Message
entity.numPotok = 2;
__2 ++;
__ ++;
3. source . hold
. /
-.
, , ,
.
4. setBlocked(). ,
true, false.
5. isBlocked() true,
.
false. .
102
. 3.4.
6.
. 3.4.
3.4
:
:
Message
_
__=.size();
__=.size();
hold1
Message
hold
Message
__
Message
if (entity.numPotok == 1)
__1 ++;
if (entity.numPotok == 2)
__2 ++;
__ ++;
_
Message
103
. 3.4
exponential(1/___)
_
Message
1
exponential(1/___)
if (==0)
= ___;
if (==1)
{ = ___ +
___;
=0;}
if (hold.isBlocked()== true)
hold1.setBlocked(false);
sink
Message
if (entity.numPotok == 1)
{__1 ++;
___1 =
__1
/__1;}
if (entity.numPotok == 2)
{__2 ++;
___2 =
__2
/__2;}
__ ++;
__ =
__
/__;
__ = 1__;
104
3.3.3.3.
, ,
,
,
.
,
. 3.5. .
, .
,
.
, .
C
.
.
GPSS- (. . 3.2).
,
, ,
.
, ,
.
.
1.
source delay, . 3.5.
2.
. 3.5.
. 3.5.
105
3.5
source
Agent
1
1
___
Agent
exponential
(1/____)
1
hold.setBlocked(true);
if (_.size()!=0)
{_.remove((Message)
_.get(0));
__ ++;}
hold1.setBlocked(false);
=1;
___
Agent
exponential
(1/___)
1
hold.setBlocked(false);
hold1.setBlocked(true);
,
,
.
.
,
106
.
, ,
, .
, - .
.
GPSS-,
Kont (. . 3.2).
AnyLogic
hold1 . ,
, hold ,
.
GPSS-,
UNLINK Nak,Prov3,1
,
.
3.4.
_.
, , (. 3.6).
.out
hold1.in hold.in.
. (. . 3.4).
, ,
, (round-robin) , .
. 3.6.
107
, ,
, ,
. ,
AnyLogic
. , ,
, .
, SelectOutput
,
.
,
SelectOutput.
1.
hold1 hold.
2. selectOutput
,
hold1 hold (. 3.7).
3. , true selectOutput , hold ,
hold.isBlocked().
4. : Agent Message.
5. true :
.
6. : hold.isBlocked().
7. .
. 3.7. selectOutput
108
8.
__ = 0,568, __ = 0,690,
___ = 0,614.
9. ? .
? ,
: , ,
,
, , . , .
10. selectOutput, hold1, _ .
11. hold.
12. . . . :
hold1
hold1
13. .
hold1.
14. .
hold1.
15. . : __ = 0,691, , . ___ = 0,805, . , .
16. . (. . 3.7). . , .
17. hold.
hold hold1 selectOutput.
18. selectOutput _ _ (. 3.8).
19. .
__. : boolean.
: true.
20. selectOutput. : Agent
Message. true : .
109
. 3.8. hold
21. : __.
22. ___. : :
__ = false;
if (_.size()!=0){
Message m = _.get(0);
_.stopDelayForAll();
__ ++;
__--;
if (m.numPotok == 1){
__1--;
}
if (m.numPotok == 2){
__2--;
}
}
=1;
if , _ .
stopDelayForAll() ,
_.
.
. .
110
23. ___. : :
__ = true;
____=
1-___.statsUtilization.mean();
24. _.
: :
___=
_.statsUtilization.mean()
25. .
. 3.9. ,
0,773 > 0,568.
1,003,
. , GPSS World.
AnyLogic 6 hold (. . 3.4).
.
. 3.9.
111
3.5.
.
. 3.6.
8 . , ,
2, .
,
, ,
.
, .
,
5 10 ,
(. 3.6).
= 0,01 = 0,95 GPSS World
9604 .
10000 .
AnyLogic 10 000
72 000 000 .
, GPSS World
, ,
10 000 .
. 3.6 , 0,002 0,004.
, GPSS World AnyLogic7, 0,017 0,029, .
. , 5 10
0,773 (0,752)
0,831 (0,829). ( )
1 2 (90 120) 0,831 (0,829) 0,456
(0,438).
(60) 5
0,456 (0,438) 0,815 (0,844).
57 ( AnyLogic7 ).
112
3.6
GPSS
AnyLogic6 AnyLogic7
World
1) _ = 5
__
0,752
0,773
0,773
___1 0,752
0,772
0,771
___2 0,753
0,773
0,774
1 __
1 = 0,021
__
0,248
0,227
0,227
___
0,777
0,757
0,718
___
0,152
0,222
0,286
0,929
0,979
1,003
___
2) _ = 10
__
0,829
0,861
0,831
___1 0,829
0,861
0,832
___2 0,829
0,862
0,831
2 __
2 =0,002
__
0,171
0,139
0,169
___
0,861
0,841
0,756
___
0,157
0,250
0,327
1,018
1,091
1,084
___
3) __1 = 90, __2 = 120
__
0,438
0,454
0,456
___1 0,438
0,454
0,456
___2 0,438
0,453
0,456
3 __
3 = 0,002
__
0,562
0,546
0,544
___
0,882
0,882
0,808
___
0,209
0,266
0,393
1,091
1,148
1,201
___
0,844
0,844
0,845
0,156
0,971
0,043
1,014
0,848
0,848
0,848
4 = 0,029
0,152
0,970
0,058
1,028
0,815
0,815
0,815
0,185
0,922
0,088
1,010
. 3.6
4.
4.1. AnyLogic
4.1.1.
n1 ,
. .
n1 T1 , T2 ,..., Tn1 .
n2 1)
p1 , p 2 , ..., pn2 ( p1 + p 2 + ... + pn2 =
S1 , S 2 , ..., S n2 .
k k , 1
L1 , . () Q /.
1 . ,
.
,
i- , i = 1, k . L2i , i = 1, k .
.
.
.
Vi /, i = 1, k .
. T T1 , T 2 , ..., T n
. T T1 , T 2 , ..., T n .
.
115
4.1.2.
=
n1 6;=
k 4;
exponential (T1 =
) exponential (T2 =) ...= exponential (T6 =) exponential ( 30 ) ;
=
n2 =
4; p1 0,3;
=
p 2 0,=
2; p3 0,=
2; p4 0,3;
=
Q 40000
=
/; L1 5000000;
( )
exponential (T =
)
( )
exponential (T =
) exponential ( 3.2 ) ;
...=
=
Vi 5000 /,=
n3i 1,=
L2i 250000,
=
i 1, 4.
4.1.3.
. , ,
.
4.1.4.
n1 = 6 . , (exponential),
(normal). , , ,
.
,
.
( )
(. 4.1).
116
. 4.1.
1 2 1 1, 3 4 2 1,
5 3 1, 6
4 1.
1 , ,
1 2 1 2, 3 4 2 2.
2 , 14 , , 14 .
,
(),
.
117
(. 4.2).
4.2.
118
1, () , , 2,
.
AnyLogic.
, .
.
, ,
:
numAbOtpr - ;
numAbPol - ;
numKat ;
timeOtpr ;
dlina , ;
timeObr , ;
timePered , .
:
kolAbonent ;
timeAbonent , ;
verKat={verKat1, verKat2, verKat3, verKat4}
, , ,
verKat1+verKat2+verKat3+verKat4=1;
dlKat={dlKat1, dlKat2, dlKat3, dlKat4} , , , ,
;
dlKat0={dlKat01, dlKat02, dlKat03, dlKat04}
, , , ,
;
proizvod , /c;
skorPeredKan , /;
119
skorPeredKanR
, /;
timeBklKanR .
:
kolOtprKat1, kolOtprKat2, kolOtprKat3,
kolOtprKat4, kolOtpr , , , ;
kolPolKat1, kolPolKat2,kolPolKat3,kolPolKat4,
kolPol ,
, , ;
1, 2, 3,
4,
, , , ;
1, 2, 3, 4, , , , ;
;
.
:
;
;
;
.
.
:
emkBuferVx , ;
120
tekEmkBuferVx , ;
emkBufer1 ,
;
tekEmkBufer1 , ;
emkBuferNapr1,emkBuferNapr2,emkostBuferNapr3,
emkBuferNapr4 ,
, , ;
tekEmkNapr1, tekEmkNapr2, tekEmkNapr3,
tekEmkNapr4 , , ,
.
:
timeOtk ;
timeVosst ;
timeOtkKan ;
timeVosstKan .
4.1.5.
. , . 4.1 ():
;
;
.
AnyLogic, ,
,
Main.
: , , .
1. // . .
2. .
_. , . .
3. Main / .
4. .
121
5.
6.
7.
: .
.
.
4.1.6.
Main, ,
, . , ,
.
. 4.1.
:
, : .
4.1
:
:
Y:
:
:
:
:
Y:
:
:
:
:
Y:
:
:
Main
0
0
770
470
viewData
870
600
470
620
viewResult
0
600
442
820
1
0
0
0
0
810
740
360
470
viewData
viewData
0
0
700
550
450
330
420
250
viewResult
0
1200
470
432
.
4.1.7.
4.1.7.1.
1. .
2. viewData.
122
0
0
400
340
viewData
0
700
400
180
3. . :,
.
4.
X: 5, Y: 745, : 435, : 365.
5. text
text (. 4.3).
6. . 1 .
. 4.3.
123
7. ,
. 4.3.
, tekEmkBuferVx, double.
tekEmkBuferVx int. .
8. , . 4.3. , emkBuferVx numAbonent, double. emkBuferVx numAbonent
int. . 4.2.
4.2
kolAbonent
timeAbonent
kolProg
numAbonent
emkBuferVx
verKat
dlKat
dlKatO
KolKat
KolKat
KolKat
6
30
100
1
80000
{0.3, 0.5, 0.7, 1.0}
{53000,86000,66000,50000}
{6100,5000,7000,500}
3. Edit dimensions.
: Kol.
. Kol
4.
.
5. . . Kol.
6. .
.
7. . .
. [].
8. :
. 4.4.
.
125
4.4.
1. .
.
2. : , . .
3. .
X: 13, Y: 1250, : 447, : 371.
4. text. : .
5. .
. , . 4.4.
. 4.3. editbox editbox5 : 100, : 31. : 50.
126
.
1. .
2. .
. 4.3.
4.3
editbox
editbox1
editbox2
editbox3
editbox4
X: 21
X: 177
X: 247
X: 317
X: 389
Y: 1310
Y: 1310
Y: 1310
Y: 1310
Y: 1310
editbox5
editbox6
editbox7
editbox8
editbox9
X: 19
X: 179
X: 249
X: 319
X: 389
Y: 1390
Y: 1390
Y: 1390
Y: 1390
Y: 1390
editbox13
editbox12
editbox15
X: 319
X: 319
X: 319
Y: 1470
Y: 1520
Y: 1570
hart-
X: 19
Y: 1450
: 240 : 160
3. :
, . .
4.
: .
5. : .
6. ( .)
.
7. ( , , , .) . 4.4.
,
, Main , , .
, .
127
4.1.7.3.
1. Main.
2. ViewData.
. 4.5.
128
3. , . 4.5.
4. double. 1166
. ,
23 , 2 3, 32 , 3 2. 1266
.
5. . ,
, .
6.
.
7. :
: ;
: 10;
. : 0.01.
.
. 4.6 . ,
.
1. ViewResult.
2. .
3.
.
4. Main ViewResult
(. . 4.6).
5. (editbox10)
.
6. . 4.6.
7. .
.
8. :
, . .
129
. 4.6.
130
9.
: .
10. : .
11. ( .)
.
12. .
ViewResult.
13. : , . .
14.
X: 10, Y: 1000, : 420, : 410.
15. text. : -.
16. .
. X: 20, Y: 1078, :
48, : 25. : 11.
.
17. text. : 11.
18. text .
. 4.6. : 12 16. : , .. 11.
. 4.6. text ,
.
19. text
. 4.6.
.
4.1.7.4.
, 1, - , , - , ,
, .
131
. 4.7. 1
4.
source. , . 4.8.
1
.
132
. 4.8. 1 AnyLogic
Java, .
,
(. . 4.1.4).
Message.
1. source.
2.
/Java .
3. Java .
: : Message.
4. :
Entity . .
133
. 4.9. Message
5. Java .
Java , . 4.9.
6.
toString (). . .
7.
Java Java . .
1.
1. source.
:
: Message
exponential(1/timeAbonent)
Message
134
:
double a=0;
double b=kolAbonent;
//
a=uniform();
for (int i=1; i<(kolAbonent+1); i++)
{if (a<=((1/kolAbonent)*b))
entity.numAbPol=i;
b=b-1;}
entity.timeOtpr=time();
entity.numAbOtpr=numAbonent;
source
, . , - . - ,
numAbPol. timeOtpr .
2. selectOutput. source. selectOutput
sink , , . sink.
T selectOutput.
3. selectOutput5. .
F selectOutput.
. 4.4.
. , ,
,
, .
4.
selectOutput5
(
selectOutput1 selectOutput2). .
5. queue.
6. : : . :
Message. 100. 14 selectOutput1 (. . 4.8).
135
selectOutput
:
true
Message
:
:
Message
a=uniform();
f++;
kolOtpr=f/kolProg;
editbox5.setText(kolOtpr, true);
main.f++;
main.=main.f/kolProg;
main.editbox5.setText(main.,
true);
a<=verKat.get(1)
entity.numKat=1;
b=normal(dlKatO.get(entity.numKat),
dlKat.get(entity.numKat));
entity.dlina=(int)(b);
d1++;
kolOtprKat1=d1/kolProg;
editbox6.setText(kolOtprKat1, true);
main.d1++;
main.1=main.d1/kolProg;
main.editbox6.setText(main.
1, true);
entity.numAbPol==numAbonent
a<=ver verKat.get(2)
entity.numKat=2;
b=normal(dlKatO.get(entity.numKat),
dlKat.get(entity.numKat));
entity.dlina = (int)(b);
d2++;
kolOtprKat2=d2/kolProg;
editbox7.setText(kolOtprKat2, true);
main.d2++;
136
. 4.4
selectOutput
main.2=main.d2/kolProg;
main.editbox7.setText(main.
2, true);
a<=verKat.get(3)
entity.numKat=3;
3 b=normal(dlKatO.get(entity.numKat),
dlKat.get(entity.numKat));
entity.dlina=(int)(b);
d3++;
kolOtprKat3=d3/kolProg;
editbox8.setText(kolOtprKat3, true);
main.d3++;
main.3=main.d3/ kolProg;
main.editbox8.setText(main.
3, true);
4
a<=verKat.get(4)
entity.numKat=4;
4 b=normal(dlKatO.get(entity.numKat),
dlKat.get(entity.numKat));
entity.dlina=(int)(b);
d4++;
kolOtprKat4=d4/kolProg;
editbox9.setText(kolOtprKat4, true);
main.d4++;
main.4=main.d4/kolProg;
main.editbox9.setText(main.
4, true);
selectOutput1
:
:
Message
entity.numAbPol==1
entity.numAbPol==2
2++;
2 main.12=2;
137
. 4.4
selectOutput1
entity.numAbPol==3
3++;
main.13=3;
entity.numAbOtpr==4
4++;
main.14=4;
:
:
1
selectOutput2
Message
entity.numAbPol==5
5++;
main.15=5;
entity.numAbPol==6
6++;
main.16=6;
8. selectOutput2 ,
. 4.4. selectOutput2
.
.
.
.
1. .
2.
X: 210, Y: 100, : 65, : 60.
3. .
. 4.8. : .
4. ,
. 1
.
Main.
138
, , .
. 1.
1. selectOutput ( selectOutput3).
.
, .
2. selectOutput3.
3. sink ( sink1).
F selectOutput3.
4. selectOutput3 :
: Message
true
emkBuferVx-tekEmkBuferVx>=entity.dlina
5. queue. :
:
: Message
emkBuferVx
tekEmkBuferVx+=entity.dlina;
tekEmkBuferVx-=entity.dlina;
selectOutput3.
6. selectOutput5 ( selectOutput4). .
7. . 4.5. . :
,
,
,
.
8.
selectOutput4.
9. selectOutput5 ( selectOutput5
selectOutput6).
. . 4.5. selectOutput5 selectOutput6.
139
4.5
:
:
selectOutput4
Message
g++;
kolPol=g/kolProg;
editbox.setText(kolPol, true);
main.g++;
main.=main.g/
kolProg;
main.editbox.setText(main.
, true);
entity.numKat==1
k1++;
kolPolKat1=k1/kolProg;
editbox1.setText(kolPolKat1, true);
main.k1++;
main.1=main.k1/kolProg;
main.editbox1.setText(main.
1, true);
entity.numKat==2
k2++;
kolPolKat2=k2/kolProg;
editbox2.setText(kolPolKat2, true);
main.k2++;
main.2=main.k2/kolProg;
main.editbox2.setText(main.
2, true);
entity.numKat==3
k3++;
kolPolKat3=k3/kolProg;
editbox3.setText(kolPolKat3, true);
main.k3++;
main.3=main.k3/kolProg;
main.editbox3.setText(main.
3, true);
140
. 4.5
4
entity.numKat==4
k4++;
kolPolKat4=k4/kolProg;
editbox4.setText(kolPolKat4, true);
main.k4++;
main.4=main.k4/kolProg;
main.editbox4.setText(main.
4, true);
:
:
1
selectOutput5
Message
entity.numAbOtpr==1
entity.numAbOtpr==2
2++;
main.21=2/main.21;
main.21.setText(main.21,
true);
entity.numAbOtpr==3
3
4
3++;
main.31=3/main.31;
main.31.setText(main.31,
true);
entity.numAbOtpr==4
4++;
main.41=4/main.41;
main.41.setText(main.41,
true);
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
5++;
main.51=5/main. 51;
main.51.setText(main.51,
true);
141
. 4.5
2
entity.numAbOtpr==6
6++;
main.61=6/main.
61;
main.61.setText(main.61,
true);
10. sink2.
14 selectOutput5 selectOutput6.
11. sink2 . 4.6.
.
4.6
sink2
Message
.add(time()-entity.timeOtpr);
editbox11.setText(.mean(),
true);
editbox12.setText(.max(),
true);
editbox13.setText(.min(),
true);
main.=main.
/main.;
main.editbox10.setText(main.
, true);
main..add(time()entity.timeOtpr);
main.editbox11.setText(main.
.mean(), true);
main.editbox12.setText(main.
.max(), true);
main.editbox13.setText(main.
.min(), true);
.
142
4.1.8.
4.1.8.1.
1. .
2. viewData.
3. . :
, .
4.
X: 10, Y: 600, : 314, : 190.
5. text : (. 4.9.).
6. . . 4.10.
7.
. 4.7.
8. timeOtkBK, timeVosstBK, proizvod double,
int.
. 4.10.
143
4.7
emkBufer1
timeOtkBK
timeVosstBK
proizvod
5000000
3600
3.7
40000
emkBuferNapr1
emkBuferNapr2
emkBuferNapr3
emkBuferNapr4
250000
250000
250000
250000
4.1.8.2.
. 4.11. ,
2, -, .
1, 1, .
.
4.1.8.2.1. 1
1
. 1
, ,
1, .
1 . 4.12.
AnyLogic selectOutput,
hold sink.
1. .
.
2.
X: 26, Y: 50, : 154, : 150.
3. selectOutput, hold sink , , . 4.11.
4. text
text 1.
5. selectOutput.
6. : selectOutput blokKontrol_1.
7. : Agent Message.
144
. 4.11.
145
. 4.12. 1
8. true
.
9. :
(emkostBufer1-tekEmkostBufer1>=entity.dlina)&&
(hold.isBlocked()==false)
T ( , true)
F ( , false), , .
10. sink. : Agent Message.
11. kolPotBK++;
, .
12. hold. : Agent Message.
146
4.1.8.2.2. 1
1 ,
.
1 . 4.13.
AnyLogic 1
queue, (FIFO).
1. .
.
2.
X: 190, Y: 50, : 126, : 100.
3. :
Rectangle. .
4. text
text 1.
. 4.13. 1
147
5. queue.
6. : queue bufer1.
7. : Agent Message.
8. emkBufer1.
9.
, :
tekEmkBufer1 += entity.dlina;
10.
, :
tekEmkBufer1 -= entity.dlina;
entity.timeObr=entity.dlina/proizvod;
11. .
4.1.8.2.3.
.
. 4.14.
. 4.14.
148
AnyLogic delay.
1. .
.
2. :
Rectangle. .
3.
X: 336, Y: 50, : 194, : 100.
4. text
text .
5. delay,
bufer_1 , . 4.11.
6. delay.
: delay omputer.
7. : Agent Message.
8. .
9. :
exponential(1/entity.timeObr)
10. 1.
11.
1=computer.statsUtilization.mean();
12. .
13. .
.
14. :
Rectangle. .
15.
X: 20, Y: 40, : 520, : 170.
16. text
text
.
4.1.8.2.4. 2
2
() .
2 . 4.15.
149
. 4.15. 2
,
. .
.
selectOutput5 sink. AnyLogic: exit enter. , .4.11
2 , .
1. exit, computer (. 4.10).
2. : Agent Message.
3. :
int i;
i=entity.numIstPol;
{
switch (i)
{
case 1:if (emkBuferNapr1tekEmkNapr1>=entity.dlina) {
enter1.take(entity);
150
break;}
else {enter.take(entity);
break;}
case 2:if (emkBuferNapr1tekEmkNapr1>=entity.dlina) {
enter1.take(entity);
break;}
else {enter.take(entity);
break;}
case 3:if (emkBuferNapr2tekEmkNapr2>=entity.dlina) {
enter2.take(entity);
break;}
else {enter.take(entity);
break;}
case 4:if (emkBuferNapr2tekEmkNapr2>=entity.dlina) {
enter2.take(entity);
break;}
else {enter.take(entity);
break;}
case 5:if (emkBuferNapr3tekEmkNapr3>=entity.dlina) {
enter3.take(entity);
break;}
else {enter.take(entity);
break;}
case 6:if (emkBuferNapr4tekEmkNapr4>=entity.dlina) {
enter4.take(entity);
break;}
else {enter.take(entity);
break;}
}
}
, , .
, , ,
. (. . 4.1).
151
4.1.8.2.5. 2
2 ,
.
.
,
1 (. . 4.13).
queue.
1. .
(. . 4.11).
2. :
Rectangle.
.
3.
X: 550, Y: 20, : 140, : 290.
4. text
: 2.
5. enter, queue
sink, , ,
. 4.11.
6. buferNapr1,
enter1 .
7. : Agent Message.
8. emkBuferNapr1
9. :
tekEmkNapr1 += entity.dlina;
10. :
tekEmkNapr1 -= entity.dlina;
11. .
12. buferNapr2,
enter2 .
13. : Agent Message.
14. emkBuferNapr2
15. :
tekEmkNapr2 += entity.dlina;
16. :
tekEmkNapr2 -= entity.dlina;
152
17. .
18. buferNapr3,
enter3 .
19. : Agent Message.
20. emkBuferNapr3
21. :
tekEmkNapr3 += entity.dlina;
22. :
tekEmkNapr3 -= entity.dlina;
23. .
24. buferNapr4,
enter4 .
25. : Agent Message.
26. emkBuferNapr4
27. :
tekEmkNapr4 += entity.dlina;
28. :
tekEmkNapr4 -= entity.dlina;
29. .
4.1.8.2.6.
,
, ,
, .
.
1. .
2.
X: 536, Y: 340, : 83, : 110.
3.
. . 4.11. :
. 4.11.
.
4. ,
. .
153
5. buferNapr1 buferNapr4
1 4, 1 4
blokKontrol_1 ( 1).
4.1.8.2.7.
,
. , , . ,
,
, .
1. .
2.
X: 160, Y: 224, : 340, : 140.
3. source delay.
. 4.11.
4. source :
1
, 1
1
1
5. delay
:
: ___
exponential(1/timeOtkBK)
1
hold.setBlocked(true);
if (computer.size()!=0) {
computer.remove((Message)computer.get(0));
kolPoterBK ++;}
6. delay
:
: __
exponential(1/timeVosstBK)
154
1
hold.setBlocked(false)
4.1.9.
.
AnyLogic ( 2),
.
4.1.9.1.
1. .
viewData.
2. .
3.
X: 10, Y: 752, : 377, : 118.
4. , . 4.16.
5.
. 4 8.
4.8
skorPeredKan
skorPeredKanR
timeOtkKan
timeVosstKan
timeBklResK
__
double
double
double
double
double
int
5000
5000
360
3.2
0.1
0
4.1.9.2.
1. .
2. .
3.
X: 186, Y: 50, : 200, : 135.
4. selectOutput,
. 4.17.
5. .
6. : Agent Message.
155
. 4.16.
. 4.17.
156
7. true : .
8. : __.
9. (true):
entity.timePered=entity.dlina/skorPeredKan;
10. 1.
11. (false):
if (==0)
entity.timePered=entity.dlina/skorPeredKanR;
if (==1)
{entity.timePered=entity.dlina/skorPeredKanR +
timeBklResK;
=0;}
=1;
12. .
13. delay. .
_, .
14. _ _.
15.
=_.statsUtilization.mean();
=+;
1. .
2.
X: 50, Y: 80, : 60, : 52.
3. .
. 4.17. : . 4.17.
.
4. ,
.
.
157
5. _ _ , selectOutput.
4.1.9.4.
.
1. .
2.
X: 10, Y: 212, : 380, : 120.
3. source delay.
. 4.17.
4. source :
1
, 1
1
5. delay
:
: ___
exponential(1/timeOtkKan)
1
:
__ = false;
if (_.size()!=0){
Message m = _.get(0);
_.stopDelayForAll();
__ ++;}
6. delay
:
___
158
exponential(1/timeVosstkKan)
1
:
__ = true;
4.1.10.
, . .
1. Main .
2. 1 . 4.18.
3. 1 1. 1 26 1. , 2
1, 36 2 ..
4. 26.
5. 1. .
6. 2
6.
7. . 4.9.
8. 2 6.
9.
(. . 4.18). :
1.
10. 1. . . 4.18. , .
11. 16 16.
12. .
: 1.
13. 1, 2, 3,
4 1.
159
. 4.18.
160
4.9
2
:
true
numAbonent
selectOutput
Message
entity.numAbPol == numAbonent
2
:
:
1
selectOutput1
Message
entity.numAbPol==1
1++;
main.21=1;
entity.numAbPol==2
entity.numAbPol==3
3++;
main.23=3;
entity.numAbPol==4
4++;
main.24=4;
:
:
1
1
2
:
:
1
selectOutput2
Message
entity.numAbPol==5
5++;
main.25=5;
entity.numAbPol==6
6++;
main.26=6;
selectOutput5
Message
entity.numAbOtpr==1
161
. 4.9
1++;
main.12=1/main.12;
main.12.setText(main.12,
true);
entity.numAbOtpr==2
entity.numAbOtpr==3
3++;
main.32=3/main.32;
main.32.setText(main.32,
true);
entity.numAbOtpr==4
4++;
main.42=4/main.42;
main.42.setText(main.42,
true);
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
5++;
main.52=5/main.52;
main.52.setText(main.52,
true);
entity.numAbOtpr==6
6++;
main.62=6/main.62;
main.62.setText(main.62,
true);
3
:
true
numAbonent
selectOutput
Message
entity.numAbPol == numAbonent
3
162
. 4.9
:
:
1
selectOutput1
Message
entity.numAbPol==1
1++;
main.31=1;
entity.numAbPol==2
2++;
main.32=2;
entity.numAbPol==3
entity.numAbOtpr==4
4++;
main.34=4;
:
:
1
1
2
:
:
1
selectOutput2
Message
entity.numAbPol==5
5++;
main.35=5;
entity.numAbPol==6
6++;
main.36=6;
selectOutput5
Message
entity.numAbOtpr==1
selectOutput5
1++;
main.13=1/main.13;
main.13.setText(main.13,
true);
entity.numAbOtpr==2
163
. 4.9
2++;
main.23=2/main.23;
main.23.setText(main.23,
true);
entity.numAbOtpr==3
entity.numAbOtpr==4
4++;
main.43=4/main.43;
main.43.setText(main.43,
true);
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
5++;
main.53=5/main.53;
main.53.setText(main.53,
true);
entity.numAbOtpr==6
6++;
main.63=6/main.63;
main.63.setText(main.63,
true);
4
:
true
numAbonent
selectOutput
Message
entity.numAbPol == numAbonent
4
:
:
1
selectOutput1
Message
entity.numAbPol==1
1++;
main.41=1;
164
. 4.9
2
entity.numAbPol==2
2++;
main.42=2;
entity.numAbPol==3
3++;
main.43=3;
entity.numAbOtpr==4
:
:
1
1
2
:
:
1
selectOutput2
Message
entity.numAbPol==5
5++;
main.45=5;
entity.numAbPol==6
6++;
main.46=6;
selectOutput5
Message
entity.numAbOtpr==1
1++;
main.14=1/main.
14;
main.14.setText(main.14,
true);
entity.numAbOtpr==2
2++;
main.24=2/main.24;
main.24.setText(main.24,
true);
entity.numAbOtpr==3
3++;
main.34=3/main.34;
main.34.setText(main.34,
true);
165
. 4.9
4
entity.numAbOtpr==4
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
5++;
main.54=5/main.54;
main.54.setText(main.54,
true);
entity.numAbOtpr==6
6++;
main.64=6/main.64;
main.64.setText(main.64,
true);
5
:
true
numAbonent
selectOutput
Message
entity.numAbPol == numAbonent
5
:
:
1
1
2
2
3
3
4
selectOutput1
Message
entity.numAbPol==1
1++;
main.51=1;
entity.numAbPol==2
2++;
main.52=2;
entity.numAbPol==3
3++;
main.53=3;
entity.numAbOtpr==4
166
. 4.9
:
:
1
4++;
main.54=4;
selectOutput2
Message
entity.numAbPol==5
entity.numAbPol==6
6++;
main.56=6;
:
:
selectOutput5
Message
selectOutput5
entity.numAbOtpr==1
1++;
main.15=1/main.15;
main.15.setText(main.15,
true);
entity.numAbOtpr==2
2++;
main.25=2/main.
25;
main.25.setText(main.25,
true);
entity.numAbOtpr==3
3++;
main.35=3/main.35;
main.35.setText(main.35,
true);
entity.numAbOtpr==4
4++;
main.45=4/main.45;
main.45.setText(main.45,
true);
167
. 4.9
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
entity.numAbOtpr==6
6++;
main.65=6/main.65;
main.65.setText(main.65,
true);
6
:
true
numAbonent
selectOutput
Message
entity.numAbPol == numAbonent
6
:
:
1
1
2
2
3
3
4
selectOutput1
Message
entity.numAbPol==1
1++;
main.61=1;
entity.numAbPol==2
2++;
main.62=2;
entity.numAbPol==3
3++;
main.63=3;
entity.numAbPol==4
4++;
main.64=4;
selectOutput2
entity.numAbPol==5
168
. 4.9
1
1
5++;
main.65=5;
entity.numAbPol==6
:
:
1
selectOutput5
Message
entity.numAbOtpr==1
1++;
main.16=1/main.16;
main.16.setText(main.16,
true);
entity.numAbOtpr==2
2++;
main.26=2/main.26;
main.26.setText(main.26,
true);
entity.numAbOtpr==3
3++;
main.35=3/main.35;
main.35.setText(main.35,
true);
entity.numAbOtpr==4
3++;
main.36=3/main.36;
main.36.setText(main.36,
true);
:
:
1
selectOutput6
Message
entity.numAbOtpr==5
5++;
main.56=5/main.56;
main.56.setText(main.56,
true);
entity.numAbOtpr==6
169
,
.
,
.
1. 1.
2. .
3. .
4. 1 .
5. exit :
int i;
i=entity.numAbPol;
{
switch (i) {
case 1:if (emkBuferNapr1tekEmkNapr1>=entity.dlina)
{enter1.take(entity);
break;}
else {enter.take(entity);
break;}
case 2:if (emkBuferNapr2tekEmkNapr2>=entity.dlina) {
enter2.take(entity);
break;}
else {enter.take(entity);
break;}
case 3:if (emkBuferNapr3tekEmkNapr3>=entity.dlina) {
enter3.take(entity);
break;}
else {enter.take(entity);
break;}
case 4:if (emkBuferNapr4tekEmkNapr4>=entity.dlina) {
enter4.take(entity);
break;}
else {enter.take(entity);
break;}
}
}
6. 1 ,
14 14.
170
7. 1.
: 2.
8. 1 1 1 2, 2 2.
9. 1. .
. 4.18.
10. 3 1 11, 4 12.
11. 14 2 710
.
12. 712 16 .
. .
4.1.11.
,
, ,
. .
button
.
1. button (. . 4.18).
2. :
: 1
: 1.1.navigateTo()
3. 1. .
: :, :
: 2
: 2.2.navigateTo()
4. button. :
:
: viewData.navigateTo()
5. button. :
: 1
: 1.1.navigateTo()
6. 1. :
: 2
: 2.2.navigateTo()
171
. 4.19.
12, , 12 (. 4.19).
1.
. : .
2.
. X: 0, Y: 1780, : 450, :
200.
3. button.
4. :
: 1
: 1..navigateTo()
5. 1. .
: :. :
: 2
: 2..navigateTo()
6. button.
7. :
:
: .navigateTo()
8. .
button.
9. :
:
: .navigateTo()
172
Main .
,
button
. 4.10.
. 4.3 4.6, 4.8, 4.10, 4.11, 4.16 4.18.
4.10
viewData
viewData
viewData
viewData
viewData
viewData
viewData
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
173
main..navigateTo()
viewData.navigateTo()
main..navigateTo()
.navigateTo()
main..navigateTo()
viewData.navigateTo()
.navigateTo()
main..navigateTo()
viewData.navigateTo()
main..navigateTo()
.navigateTo()
main..navigateTo()
viewData.navigateTo()
main..navigateTo()
.navigateTo()
4.1.12.
:
1. _.
2.
: .
3. Simulation: Main.
4. :
: ( )
: .
5. : 3600000. 1000 .
6.
( ).
7. : 897.
8. . , .
,
. 4.20.
: 0,815 6,050. , , 2 3 0,816.
.
:
.
, 3600 .
, , kolProg=1000
1000 .
600,559, 490,035.
,
.
,
, .
, .
, , , 2. , . 4.21.
174
. 4.20.
175
. 4.21. 2
176
4.2.
6 .
, .
,
, ,
. (timeAbonent) 30 20.
Anylogic : 3600000.0.
1000
. GPSS 3600 1000 .
. 4.11. , . (11 (61) 00,001,
( 12 62 )
0,0711,064 . 00,022,
0,0000,001.
1 2
, .
,
GPSS World AnyLogic.
GPSS World
22 24 , AnyLogic 15 .
177
4.11
. 4.11
5.
5.1. AnyLogic
5.1.1.
n1 () n2 (n21 +
n22 + + n2n2 = n2) n3 .
.
T21, T22, , T2n2 , , .
, ,
. , ,
. n4.
n5 . T1, T2,
, Tn2 ,
, .
, , S1 . S2, , S2n2 .
S31, S32, , S3n2 .
S4
.
5.1.2.
- 1000 .
.
.
,
.
5.1.3.
, (. 5.1)
.
180
. 5.1.
( )
.
, (. 5.2):
;
;
;
.
. 5.2.
181
, ,
():
tipCC ;
timeOtkaz ;
timeMeanRem ;
nach ;
nach1 .
, , n2 = 5. 1, 2, 3, 4,
5 .
:
KCC1 KCC5 ;
KCC1 KCC5 .
KolCC1 KolCC5,
KolCC.
timeOtkaz
.
timeOtkaz1 timeOtkaz5.
timeMeanRem
.
timeRem1 timeRem5.
, , timeOtkaz =
1/timeOtkaz1 exponential(timeOtkaz).
nach1 nach .
. .
,
( , ):
doxDegCC1 doxDegCC5
;
182
zatrResCC1 zatrResCC5 ;
stoimRem1 stoimRem5
.
,
:
PribCC1 PribCC5, SumPribil
;
KoefPribCC1 KoefPribCC5, KoefPribil
.
PribCC1
KoefPribCC1.
, DoxMaxCC1 , , :
DoxMaxCC1= KCC1*doxDegCC1*
.
DoxDegCC1
:
DoxDegCC1+=(time()-entity.nach1)*
main.doxDegCC1;
(time()-entity.nach1)
.
:
UbitokCC1=(1-degCC1.statsUtilization.mean())*
main.ubitokCC1**KCC1;
(1-degCC1.statsUtilization.mean())
.
:
ZatrRemCC1+=(time()-entity.nach)*stoimRemCC1;
ZatrResCC1= KCCP1*zatrResCC1*
183
:
PribCC1=DoxDegCC1-(ZatrRemCC1+ZatrRemCC1+UbitokCC1).
:
KoefPribCC1=PribCC1/DoxMaxCC1.
:
SumPribil=SumDoxDeg(SumZatrRes+SumZatrRem+SumUbitok),
KoefPrib=SumPrib/SumDoxMax,
SumDoxMax, SumDoxDeg, SumZatrRes, SumZatrRem,
SumUbitok .
5.1.4.
.
1. // . .
2. . _. .
3. .
5.1.4.1.
, , , .
.
1. .
. .
2. : __.
3.
: . .
4. : .
5. . X: 0, Y: 500, : 450, : 340.
6. . X: 0, Y: 500, : 450, : 340.
184
. 5.3.
7.
.
8. . X: 20, Y: 520, : 390, : 300.
9. text text
__ ( ).
10. .
__ , . 5.3.
11. . 5.1.
KolCC1KolCC5
, KolCC .
1 5 1 5
ol , .
,
, , .
185
__
KolCC1
KolCC2
KolCC3
KolCC4
KolCC5
KolCC
NumCC
doxdegCC1
doxdegCC2
doxdegCC3
doxdegCC4
doxdegCC5
zatrResCC1
zatrResCC2
zatrResCC3
zatrResCC4
zatrResCC5
ubitokCC1
ubitokCC2
ubitokCC3
ubitokCC4
ubitokCC5
int
int
int
int
int
int
int
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
0
0
0
0
0
0
0
20
24.2
32.8
23
25.5
21
24.2
28
26
25.5
32
34.2
37
31
32.5
5.1
5.1.4.2.
Main .
1.
.
2. : .
3. : . .
4. : .
5. . X: 0, Y: 0, : 700, : 350.
6. .
, . .
186
21. source.
22. .
23. : : Agent
ComFacility. :
.
1
1
: Java :
KolCC1=degurstvo.KCC1+degurstvo.KCCP1;
degurstvo.DoxMaxCC1=
round((degurstvo.KCC1*doxDegCC1)**100);
degurstvo.DoxMaxCC1=degurstvo.DoxMaxCC1/100;
degurstvo.ZatrResCC1=
round((degurstvo.KCCP1*zatrResCC1)**100);
degurstvo.ZatrResCC1=degurstvo.ZatrResCC1/100;
KolCC2=degurstvo.KCC2+degurstvo.KCCP2;
degurstvo.DoxMaxCC2=
round((degurstvo.KCC2*doxDegCC2)**100);
degurstvo.DoxMaxCC2=degurstvo.DoxMaxCC2/100;
degurstvo.ZatrResCC2=
round((degurstvo.KCCP2*zatrResCC2)**100);
degurstvo.ZatrResCC2=degurstvo.ZatrResCC2/100;
KolCC3=degurstvo.KCC3+degurstvo.KCCP3;
degurstvo.DoxMaxCC3=
round((degurstvo.KCC3*doxDegCC3)**100);
degurstvo.DoxMaxCC3=degurstvo.DoxMaxCC3/100;
degurstvo.ZatrResCC3=
round((degurstvo.KCCP3*zatrResCC3)**100);
degurstvo.ZatrResCC3=degurstvo.ZatrResCC3/100;
KolCC4=degurstvo.KCC4+degurstvo.KCCP4;
degurstvo.DoxMaxCC4=
round((degurstvo.KCC4*doxDegCC4)**100);
degurstvo.DoxMaxCC4=degurstvo.DoxMaxCC4/100;
degurstvo.ZatrResCC4=
round((degurstvo.KCCP4*zatrResCC4)**100);
degurstvo.ZatrResCC4=degurstvo.ZatrResCC4/100;
KolCC5=degurstvo.KCC5+degurstvo.KCCP5;
degurstvo.DoxMaxCC5=
round((degurstvo.KCC5*doxDegCC5)**100);
degurstvo.DoxMaxCC5=degurstvo.DoxMaxCC5/100;
KolCC=KolCC1+KolCC2+KolCC3+KolCC4+KolCC5;
188
degurstvo.ZatrResCC5=
round((degurstvo.KCCP5*zatrResCC5)**100);
degurstvo.ZatrResCC5=degurstvo.ZatrResCC5/100;
degurstvo.SumDoxMax=degurstvo.DoxMaxCC1+
degurstvo.DoxMaxCC2+degurstvo.DoxMaxCC3+
degurstvo.DoxMaxCC4+degurstvo.DoxMaxCC5;
degurstvo.SumZatrRes=degurstvo.ZatrResCC1+
degurstvo.ZatrResCC2+degurstvo.ZatrResCC3+
degurstvo.ZatrResCC4+degurstvo.ZatrResCC5;
,
.
split. Degyrstvo,
, , , degyrstvo.KCC1.
,
.
, (), .
. ,
.
round().
100, . :
degyrstvo.DoxMaxCC1=
round((degyrstvo.KCC1*doxDegCC1)**100);
degyrstvo.DoxMaxCC1=degyrstvo.DoxMaxCC1/100;
NumCC .
entity.tipCC, , entity.tipCC = 5,
,
.
1. sink -.
190
. 5.5. split
5.1.4.3.
, . . .
selectOutput
queue (. 5.6). selectOutput5
queue.
queue ,
, .
1. selectOutput
queue
Main. , . 5.6.
2. selectOutput . 5.2 ( selectOutput5 ).
191
1
2
3
4
:
ComFacility
ComFacility
ComFacility
ComFacility
true
entity.tipCC==1
entity.tipCC==2
entity.tipCC==3
entity.tipCC==4
3. false
4, selectOutput .
4. queue
.
5. 100 .
6. text
: , . 5.6.
5.1.4.4.
. 5.7
. , , .
.
192
. 5.7.
193
7.
Main, ,
/ .
8. 1. .
9. .
10. : Degurstvo.
11. , : , .
12. .
Degurstvo .
13. .
.
14. .
15. : .
16. , ,
: . .
17. : .
1. . X: 40, Y: 0, : 730, : 420.
5.1.4.5.
Degyrstvo
. , , ,
.
1. .
.
2. . X: 110, Y: 130, : 100, : 180.
3.
, . 5.8.
.
4. Main.
194
. 5.8. Degyrstvo
5.
Degyrstvo, , . 5.7.
,
Degyrstvo . .
5.1.5.
5.1.5.1.
.
. .
1. .
. : __.
2. : . .
3. .
4. X:
40, Y: 800, : 650, : 240.
5. . .
6. , .
195
. 5.9.
196
5.3
__
KCC1
KCC2
KCC3
KCC4
KCC5
KCC1
KCC2
KCC3
KCC4
KCC5
stoimRemCC1
stoimRemCC2
stoimRemCC3
stoimRemCC4
stoimRemCC5
timeRem1
timeRem2
timeRem3
timeRem4
timeRem5
timeOtkaz1
timeOtkaz2
timeOtkaz3
timeOtkaz4
timeOtkaz5
kol_master
int
int
int
int
int
int
int
int
int
int
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
int
double
double
55
100
60
45
60
2
4
4
3
4
17
18
16
20
21
6.5
4.2
2.8
3.0
5.5
373
301
482
325
470
3
1000
1000
5.1.5.2.
(. 5.10). ,
.
.
. . (. . 5.1.7).
197
. 5.10.
198
1. .
. : _.
2. : . .
3. .
4. X:
40, Y: 430, : 730, : 350.
5. .
6. . X: 54, Y:
466, : 710, : 300.
7. : . text :
.
8. . ,
, . , ,
. 5.10.
double.
5.1.5.3.
. 5.11.
1. .
.
2.
X: 60, Y: 50, : 600, : 360.
3. . , .
4. X:
250, Y: 60, : 170, : 330.
5. , .
6.
X: 440, Y: 60, : 190, : 330.
7. , ,
Degyrstvo : queue,
delay, queue, delay ,
. 5.11.
, . 5.4. , . 9.
8. text : . 5.11.
199
. 5.11.
200
5.4
1
2
3
4
5
degCC1
degCC2
degCC3
degCC4
degCC5
remont
degCC1
degCC2
degCC3
degCC4
degCC5
KCCP1
KCCP2
KCCP3
KCCP4
KCCP5
queue
entity.timeOtkaz=1/timeOtkaz1
entity.timeOtkaz=1/timeOtkaz2
entity.timeOtkaz=1/timeOtkaz3
entity.timeOtkaz=1/timeOtkaz4
entity.timeOtkaz=1/timeOtkaz5
delay
exponential(entity.timeOtkaz)
KCC1
exponential(entity.timeOtkaz)
KCC2
exponential(entity.timeOtkaz)
KCC3
exponential(entity.timeOtkaz)
KCC4
exponential(entity.timeOtkaz)
KCC5
exponential(entity.timeMeanRem)
3
DoxDegCC1+=(time()-entity.nach1)*
main.doxDegCC1;
entity.timeMeanRem=1/timeRem1;
DoxDegCC2+=(time()entity.nach1)*main.doxDegCC2;
entity.timeMeanRem=1/timeRem2;
DoxDegCC3+=(time()entity.nach1)*main.doxDegCC3;
entity.timeMeanRem=1/timeRem3;
DoxDegCC4+=(time()entity.nach1)*main.doxDegCC4;
entity.timeMeanRem=1/timeRem4;
DoxDegCC5+=(time()entity.nach1)*main.doxDegCC5;
entity.timeMeanRem=1/timeRem5;
9. , . 5.4, :
: Agent
ComFacility;
;
delay degCC1 degCC5 :
entity.nach1=time();
201
5.1.6.
. , , , .
(. 5.12).
1.
.
2. .
3. .
4. : .
5. : . .
6. : .
7. :
X: 0, Y: 1076, : 960, : 630.
8. .
9. :
X: 20, Y: 1116, : 930, : 580.
202
. 5.12.
203
10. text : .
X: 360, Y: 1126.
11. text,
: , . 5.12.
,
X: 100, Y: 1160,
X: 280, Y: 1490,
X: 280, Y: 1440.
5.1.6.1.
, .
String, double int. .
1. . 5.12
. . .
: editbox1.
2. :
, 14.
3. X:
70, Y: 1210, : 80, : 20.
4. editbox1. .
. ,
.
5. , ,
15. .
6. . .
7. . . 5.12.
8. editbox37.
.
204
5.5
3
4
5
editbox1
editbox2
editbox3
editbox4
editbox5
editbox6
editbox7
editbox8
editbox9
editbox10 editbox11 editbox12
editbox13 editbox14 editbox15 editbox16 editbox17 editbox18
editbox19 editbox20 editbox21 editbox22 editbox23 editbox24
editbox25 editbox26 editbox27 editbox28 editbox29 editbox30
editbox31 editbox32 editbox33 editbox34 editbox35 editbox36
1
5.1.6.2.
AnyLogic , .
, MS
Excel. ,
.
,
, . (PDF) (CDF), - .
(
).
AnyLogic .
:
;
;
.
( ):
;
;
;
.
.
205
, . .
, ,
. .
.
(
).
1.
. 5.12.
2. : : , .
3. :
:
,
.
4. X:
40, Y: 1510, : 230, : 180.
5. : 20, .
6. X: 40, Y: 10, : 60, : 140.
7. .
8. : 1.
9. : Java
degCC1.statsUtilization.mean()
10. .
11. 25. :
2, 3, 4, 5 .
12. : Java
25 :
degCC2.statsUtilization.mean()
206
degCC3.statsUtilization.mean()
degCC4.statsUtilization.mean()
degCC5.statsUtilization.mean()
.
5.1.7.
. .
,
. .
.
, . , ( () ). , , : , .
, .
, -
.
, .
( ).
, , .
AnyLogic ,
.
. , ,
,
,
.
, .
207
1.
(. 5.10). . Enter.
2. . T : .
3. : .
4. () 1000000.
5. Java , .
// 1
DoxDegCC1=round((DoxDegCC1/)*100);
DoxDegCC1=DoxDegCC1/100;
ZatrRemCC1=round((ZatrRemCC1/)*100);
ZatrRemCC1=ZatrRemCC1/100;
UbitokCC1=round((1degCC1.statsUtilization.mean())*main.ubitokCC1*
*KCC1*100);
UbitokCC1=UbitokCC1/100;
PribCC1=round((DoxDegCC1(ZatrResCC1+ZatrRemCC1+UbitokCC1))*100);
PribCC1=PribCC1/100;
koefPribCC1=round((PribCC1/DoxMaxCC1)*1000);
koefPribCC1=koefPribCC1/1000;
// 2
DoxDegCC2=round((DoxDegCC2/)*100);
DoxDegCC2=DoxDegCC2/100;
ZatrRemCC2=round((ZatrRemCC2/)*100);
ZatrRemCC2=ZatrRemCC2/100;
UbitokCC2=(1degCC2.statsUtilization.mean())*main.ubitokCC2*
*KCC2;
PribCC2=round((DoxDegCC2(ZatrResCC2+ZatrRemCC2+UbitokCC2))*100);
PribCC2=PribCC2/100;
koefPribCC2=round((PribCC2/DoxMaxCC2)*1000);
koefPribCC2=koefPribCC2/1000;
// 3
DoxDegCC3=round((DoxDegCC3/)*100);
DoxDegCC3=DoxDegCC3/100;
ZatrRemCC3=round((ZatrRemCC3/)*100);
ZatrRemCC3=ZatrRemCC3/100;
208
UbitokCC3=(1-degCC3.statsUtilization.mean())*
main().ubitokCC3**KCC3;
PribCC3=round((DoxDegCC3(ZatrResCC3+ZatrRemCC3+UbitokCC3))*100);
PribCC3=PribCC3/100;
koefPribCC3=round((PribCC3/DoxMaxCC3)*1000);
koefPribCC3=koefPribCC3/1000;
// 4
DoxDegCC4=round((DoxDegCC4/)*100);
DoxDegCC4=DoxDegCC4/100;
ZatrRemCC4=round((ZatrRemCC4/)*100);
ZatrRemCC4=ZatrRemCC4/100;
UbitokCC4=(1-degCC4.statsUtilization.mean())*
main.ubitokCC4**KCC4;
PribCC4=round((DoxDegCC4(ZatrResCC4+ZatrRemCC4+UbitokCC4))*100);
PribCC4=PribCC4/100;
koefPribCC4=round((PribCC4/DoxMaxCC4)*1000);
koefPribCC4=koefPribCC4/1000;
// 5
DoxDegCC5=round((DoxDegCC5/)*100);
DoxDegCC5=DoxDegCC5/100;
ZatrRemCC5=round((ZatrRemCC5/)*100);
ZatrRemCC5=ZatrRemCC5/100;
UbitokCC5=(1-degCC5.statsUtilization.mean())*
main.ubitokCC5**KCC5;
PribCC5=round((DoxDegCC5(ZatrResCC5+ZatrRemCC5+UbitokCC5))*100);
PribCC5=PribCC5/100;
koefPribCC5=round((PribCC5/DoxMaxCC5)*1000);
koefPribCC5=koefPribCC5/1000;
//
SumDoxDeg=DoxDegCC1+DoxDegCC2+DoxDegCC3+
DoxDegCC4+DoxDegCC5;
SumZatrRem=round((SumZatrRem)*100/);
SumZatrRem=SumZatrRem/100;
SumUbitok=UbitokCC1+UbitokCC2+UbitokCC3+
UbitokCC4+UbitokCC5;
SumPribil=round((SumDoxDeg(SumZatrRes+SumZatrRem+SumUbitok))*100);
SumPribil=SumPribil/100;
koefPribil=round((SumPribil/SumDoxMax)*1000);
koefPribil=koefPribil/1000;
209
// ,
editbox1.setText(DoxMaxCC1);
editbox7.setText(DoxDegCC1);
editbox2.setText(DoxMaxCC2);
editbox8.setText(DoxDegCC2);
editbox3.setText(DoxMaxCC3);
editbox9.setText(DoxDegCC3);
editbox4.setText(DoxMaxCC4);
editbox10.setText(DoxDegCC4);
editbox5.setText(DoxMaxCC5);
editbox11.setText(DoxDegCC5);
editbox6.setText(SumDoxMax);
editbox12.setText(SumDoxDeg);
//
editbox13.setText(ZatrRemCC1);
editbox14.setText(ZatrRemCC2);
editbox15.setText(ZatrRemCC3);
editbox16.setText(ZatrRemCC4);
editbox17.setText(ZatrRemCC5);
editbox18.setText(SumZatrRem);
//
editbox19.setText(PribCC1);
editbox20.setText(PribCC2);
editbox21.setText(PribCC3);
editbox22.setText(PribCC4);
editbox23.setText(PribCC5);
editbox24.setText(SumPribil);
//
editbox25.setText(koefPribCC1);
editbox26.setText(koefPribCC2);
editbox27.setText(koefPribCC3);
editbox28.setText(koefPribCC4);
editbox29.setText(koefPribCC5);
editbox30.setText(koefPribil);
//
editbox31.setText(ZatrResCC1);
editbox32.setText(ZatrResCC2);
editbox33.setText(ZatrResCC3);
editbox34.setText(ZatrResCC4);
editbox35.setText(ZatrResCC5);
editbox36.setText(SumZatrRes);
210
//
=(degCC1.statsUtilization.mean()+
degCC2.statsUtilization.mean()+
degCC3.statsUtilization.mean()+
degCC4.statsUtilization.mean()+
degCC5.statsUtilization.mean())/;
editbox37.setText();
, ,
1 000 000 , , .
(
,
) round().
1000 100, .
editbox setText(), , ,
editbox1.setText(DoxMaxCC1);
5.1.8.
, , .
, . 5.6.
, . - .
5.6
(. 5.7)
. degurstvo..navigateTo();
degurstvo..navigateTo();
__.navigateTo();
(. 5.3)
- .navigateTo();
211
. 5.6
(. 5.11)
- main..navigateTo();
.navigateTo();
__.navigateTo();
(. 5.9)
- main..navigateTo();
.navigateTo();
.navigateTo();
(. 5.10)
- main..navigateTo();
.navigateTo();
.navigateTo();
(. 5.12
- main..navigateTo();
.navigateTo();
_.navigateTo();
__.navigateTo();
5.1.9.
. , AnyLogic.
. , ,
(. 5.13 5.14).
pull .
,
, . ,
.
:
...-> split -> selectOutput -> queue -> delay ->...
, (split
selectOutput), queue delay,
.
212
. 5.13.
,
,
split, (. . 5.5)
.
.
. . 5.14 , 64 , 1, true,
false , 5.
, entity.tipCC ,
split.
, - ,
selectOutput, split,
plain Transfer. ,
split.
1. split selectOutput.
2. .
3. plain Transfer
split,
selectOutput. ComFacility.
4. split
: plain Transfer.
. . 5.15 . 5.16
.
213
. 5.14.
214
. 5.15.
215
. 5.16.
216
5.1.10.
AnyLogic
:
;
;
;
;
-;
;
;
.
AnyLogic
Professional.
5.1.10.1.
,
, , .
, Simulation.
.
.
,
,
.
AnyLogic University
,
, AnyLogic Professional .
5.1.10.2.
AnyLogic,
. __ (. 5.3)
__ (. 5.9) ,
.
217
, ,
, ,
. .
,
, . , .
, . 5.17. .
, , _1.
Main
Degyrstvo.
1. Main.
2. degyrstvo.
3. .
-
Main,
. , . 5.18.
. 5.17. __
218
. 5.18.
219
5.1.10.3.
AnyLogic
OptQuest
.
.
.
1. _
Co/ . : (. 5.19).
. 5.19.
220
2. : , , __1.
Java.
3. : Main. () .
, .
4.
, :
. , : Simulation.
5. .
(. 5.20).
6. .
7. root. root.degurstvo.koefPribil.
8.
( ).
9. 5672.
10. :.
( ).
.
11. , , :
I = k1 k2 ... ki ... km ,
ki i- , i = 1, m .
12.
_1_5 Kol_master, m=6 .
: k=
3, k=
k=
k=
6, k=
k=
5.
1
2
3
4
5
6
I = k1 k2 k3 k4 k5 k6 = 3 6 6 6 5 5 = 16 200.
221
. 5.20.
222
13. 500 :,
AnyLogic .
14. , .
. 5.21
Main.
15. , _1. . , . KCC_1
int, .
16. . . 1,
. , , 1, 3.
, 1.
17. , . 5.20.
18. .
19. .
20. () () . , ,
= 0,95 , = 0,1 = 0,1 :
2
2
2
2 0,1
=
N t=
=
1,96
3,8416 4,
2
0,12
t = 1,96 .
OptQust
,
( ).
.
,
.
21.
: () 4.
223
22. . .
(. 5.21) ( . .). . .
. 5.21.
224
. 5.22.
225
23. _ / __1.
24. . ,
. 200*4=800 ( . 5.22)
.
25.
. 5.22.
0,497. 28- : KCCP_1 = KCCP_2 =
KCCP_4 = KCCP_5 = Kol_master =1, KCCP_3 = 6.
.
5.1.10.4.
,
.
, (. 5.20, 5.21, 5.22).
.
1. Main
. .
2. _1 , ,
, (. 5.23).
3. _2 _5
Kol_master. , . 5.24.
4. Main.
5. Degurstvo. . .
6. 15
kol_master .
7. .
226
. 5.23.
. 5.24.
Main
227
5.1.10.5.
,
, .
1. _
Co/. : .
2. : __2
.
3. . : root.degurstvo.
4.
( ).
5. 5672.
6.
: () 4.
7. . ,
. .
(. 5.25)
0,813. 35-
: KCCP_1 = KCCP_2 =1,
KCCP_3 = KCCP_4 = 6, KCCP_5 = 5, Kol_master = 5.
8. .
KCCP_1KCCP_5 Kol_master __
, .
9. . 0,497, .. , .
0,803.
10. KCCP_1KCCP_5 Kol_master
__ , .
11. .
12.
,813, , . 0,475,
.
228
. 5.25.
229
5.1.10.6.
.
_
-.
1. _
.
2. : .
3. , , ___.
4. .
(. 5.26).
5. ,
, , .
AnyLogic
. ,
6. . . 5.26 .
. , . _1 int, . .
1,
3, 1.
7. , . 5.26.
8. .
9.
.
, .
10. , . 5.27. .
, .
230
. 5.26.
231
11.
.
12. : X:
260, Y: 100, : 510, : 400, : , : .
13. .
14. . : . : dataset.
.
15. . :
: 50, Y: 30, : 450, : 330.
16. . .
17. .
: . : public. : double.
18. .
Java :
:
= root.degurstvo. ;
dataset.add(getCurrentIteration(),);
19.
_ / ___.
20. . .
. . 5.28.
21. 301 .
. 0,801 _1=_5 = kol_master =1, _2=
_3=5, _4=3.
22. . 5.28 , 301
2029,3 .
232
. 5.27.
233
. 5.28.
234
5.2.
-,
.
GPSS World . , AnyLogic ,
, ,
. -, GPSS
World . -, ,
STORAGE A. , ,
.
.
-.
- .
,
. ,
(2) 4 6 - 3 5.
, 9
. GPSS World
, . . AnyLogic ,
.
. 5.6.
, , 00,001, 00,002.
2 - , 7: 2 = 4, = 5.
235
5.6
GPSS World
AnyLogic
1
2
3
4
5
1
2
3
4
5
1: 2 = 4, - = 3
0,374 0,327 0,627 0,400 0,573 0,380 0,332 0,633 0,405 0,576
0,460
0,468
0,779 0,741 0,853 0,780 0,846 0,781 0,743 0,856 0,781 0,847
0,799
0,800
2: 2 = 5, - = 3
0,377 0,336 0,626 0,397 0,571 0,369 0,332 0,624 0,393 0,570
0,462
0,462
0,779 0,749 0,852 0,778 0,845 0,777 0,747 0,851 0,776 0,844
0,801
0,800
3: 2 = 6, - = 3
0,364 0,330 0,619 0,385 0,564 0,361 0,331 0,620 0,390 0,563
0,453
0,457
0,774 0,751 0,849 0,773 0,842 0,774 0,751 0,850 0,775 0,841
0,797
0,797
236
. 5.6
GPSS World
AnyLogic
1
2
3
4
5
1
2
3
4
5
4: 2 = 4, - = 4
0,890 0,895 0,931 0,890 0,911 0,889 0,892 0,931 0,889 0,910
0,903
0,905
0,978 0,977 0,996 0,988 0,995 0,978 0,977 0,996 0,988 0,994
0,987
0,987
5: 2 = 5, - = 4
0,887 0,892 0,930 0,887 0,909 0,885 0,890 0,930 0,886 0,909
0,901
0,902
0,977 0,981 0,996 0,988 0,994 0,976 0,980 0,995 0,987 0,994
0,987
0,986
6: 2 = 6, - = 4
0,885 0,890 0,930 0,886 0,909 0,887 0,890 0,930 0,887 0,910
0,900
0,903
0,977 0,984 0,995 0,987 0,994 0,977 0,984 0,996 0,988 0,994
0,987
0,987
237
. 5.6
GPSS World
AnyLogic
1
2
3
4
5
1
2
3
4
5
7: 2 = 4, - = 5
0,935 0,944 0,939 0,914 0,922 0,936 0,945 0,940 0,915 0,923
0,931
0,934
0,996 0,998 1,000 0,999 1,000 0,996 0,998 1,000 0,999 1,000
0,998
0,998
8: 2 = 5, - = 5
0,936 0,936 0,939 0,915 0,922 0,936 0,936 0,940 0,915 0,923
0,930
0,932
0,996 0,999 1,000 0,999 1,000 0,996 0,999 1,000 0,999 1,000
0,998
0,998
9: 2 = 6, - = 5
0,936 0,927 0,939 0,915 0,922 0,936 0,928 0,940 0,915 0,923
0,928
0,929
0,996 0,999 1,000 0,999 1,000 0,996 0,999 1,000 0,999 1,000
0,998
0,998
238
6.
6.1.
n1 , n1 ,
. . .
C1 , C2 , ..., Cn1 .
C1 , C2 , ..., Cn1 .
T1 , T2 , ..., Tn 1 . n1 .
n11 , n12 , ..., n1n
.
T11 , T12 , ..., T1n .
C1 , C2 , ..., Cn1 . q11 , q12 , ..., q1n %
. , .
, . .
n2 .
. ,
n1 . Tc . C .
n3 .
. T .
C . q2 % . q3 % m . 1... n1
P1 ... Pn1 .
, . Ti . i- Ci .
.
. T . C . 239
q4 % , .
.
6.1.1.
=
n1 4;=
T1 19;=
T2 11;=
T3 15;=
T4 18;
=
=
=
=
Ck1 35;
Ck2 32;
Ck3 43;
Ck4 48;
=
=
=
=
1 35;
2 27;
3 36;
4 37;
=
=
=
n11 2;=
n12 2;=
n13 2;=
n14 2;
T11 12;=
T12 16;
T13 21;=
T14 17;
=
=
=
=
C1 12;
C2 23;
C3 32;
C4 28;
=
q11 0,=
02; q12 0,=
03; q13 0, 04; q14 = 0, 06;
=
n2 2;=
Tc 22; =
C 67;=
n3 2;=
T 26;=
Ck 74;=
q2 0, 05;
=
m=
1; Pk1 =
1, 0; P1 0,=
25; P2 0,=
25; P3 0,=
25; P4 0, 25;
=
=
=
=
T1 12;
T2 15;
T3 12;
T4 21;
=
=
=
=
C1 34;
C2 46;
C3 38;
C4 54;
=
=
n4 2;=
T 18;
C 53; q4 = 0,15.
,
, .
6.1.2.
.
( ,
, , , .) .
.
6.1.3.
,
(. 6.1):
;
;
240
;
( ,
, , );
;
.
. 6.1.
241
6.2. AnyLogic
6.2.1.
, (. . 6.1), :
;
;
;
;
;
;
;
;
.
():
block ( 14 ), ;
sign1 ,
;
numBlBrak1 numBlBrak4
14 ;
timeSbor ( );
cost .
.
timSbor .
, - .
(CMIN) . cost.
:
aveTimeShop1aveTimeShop4 14 14;
242
stKomplBlock1stKomplBlock4 14;
stIzgBlock1stIzgBlock4
14;
postKontr1postKontr4
14;
procBrakBlock1procBrakBlock4
14 ;
stTestBlock1stTestBlock4
( ) 14;
kolPunSborki ;
timeSborki ;
stSborki ;
kolStendKontr
;
timeKontrIzd
;
procBrakIzd ;
stKontrIzd ;
verBlock1 , ;
verBlock2 ,
;
verBlNum1verBlNum4 14;
timeZamBlock1 timeZamBlock4 ( ) 14;
stZamBlock1stZamBlock4 (
) 14;
kolPunPriem , ;
timePriemIzd ;
procBrakPriem
;
stPriemIzd .
243
:
kolIzBlock1kolIzBlock4
14;
kolTestBlock1kolTestBlock4 14 ( , );
brakBlock1brakBlock4
14;
gotBlock1gotBlock4
14;
ostGotBlock1ostGotBlock4
14;
kolSobrIzd, testSobrIzd, brakSobrIzd , ;
kolPriemIzd, brakPriemIzd
;
zamBlock1zamBlock4
14, ;
allBrakBlock1allBrakBlock4
14;
minCostIzd ;
;
,
.
:
costKomplBlock1costKomplBlock4,costKomplBlock
14
;
costIzgBlock1costIzgBlock4,costIzgBlock 14 ( );
CostBlock1CostBlock4 14 ;
244
sumCostBlock1sumCostBlock4, sumCostBlock
14 ;
costTestBlock1costTestBlock4,costTestBlock
14 ;
costSborIzd, costTestIzd, costPriemIzd , ;
;
;
costBlockIzd ;
costIzd ;
;
.
,
.
:
=
min Cmin N ,
N ( );
min , :
=
(C
n1
i =1
+ i + i ) + + + .
.
Cmax .
K c = Cmax / Cmin .
:
245
costBlock1=stKomplBlock1 + stIzqBlock1+stTestBlock1;
costBlock2=stKomplBlock2 + stIzqBlock2+stTestBlock2;
costBlock3=stKomplBlock3 + stIzqBlock3+stTestBlock3;
costBlock4=stKomplBlock4 + stIzqBlock4+stTestBlock4;
costBlockIzd=costBlock1 + costBlock2+costBlock3+costBlock4;
Cmin = costBlockIzd + stSborki + stKontrIzd + stPriemIzd;
Cmin =
Cmin ; C max =
+.
K c = =
Cmax
.
Cmin
. , , , .
6.2.2.
.
1. // .
2. .
3. , . .
4. . .
5. . :
.
6.
X: 0, Y: 1700, : 760, : 330.
7. . ,
.
8.
X: 10, Y: 1750, : 740, : 270.
9. text
: text
.
10. .
.
246
, . 6.2. . 6.1.
6.1
aveTimeShop1
aveTimeShop2
aveTimeShop3
aveTimeShop4
stIzgBlock1
stIzgBlock2
stIzgBlock3
stIzgBlock4
postKontr1
postKontr2
postKontr3
postKontr4
stTestBlock1
stTestBlock2
stTestBlock3
stTestBlock4
kolPunSborki
timeSborki
stSborki
verBlockNum1
verBlockNum2
verBlockNum3
verBlockNum4
stZamBlock1
stZamBlock2
stZamBlock3
stZamBlock4
double
double
double
double
double
double
double
double
int
int
int
int
double
double
double
double
int
double
double
double
double
double
double
double
double
double
double
19
11
15
18
35
27
36
37
2
2
2
2
12
23
32
28
2
22
67
0.25
0.25
0.25
0.25
34
46
38
54
stKomplBlock1
stKomplBlock2
stKomplBlock3
stKomplBlock4
timeTestBlock1
timeTestBlock2
timeTestBlock3
timeTestBlock4
procBrakBlock1
procBrakBlock2
procBrakBlock3
procBrakBlock4
kolStendKontrIzd
timeKontrIzd
procBrakIzd
stKontrIzd
verBlock1
verBlock2
double
double
double
double
double
double
double
double
double
double
double
double
int
double
double
double
double
double
35
32
43
48
12
16
21
17
0.02
0.03
0.04
0.06
2
26
0.05
74
0.9999
0.999999
timeZamBlock1
timeZamBlock2
timeZamBlock3
timeZamBlock4
kolPunPriem
timePriemIzd
procBrakPriem
stPriemIzd
double
double
double
double
int
double
double
double
12
15
12
21
2
18
0.15
53
247
. 6.2.
248
6.2.3.
. .
, .
1.
.
2. . :
.
3.
X: 0, Y: 700, : 700, : 520.
4. .
, .
5.
X: 10, Y: 750, : 690, : 450.
6. text
:
.
7. text
.
8. text :
.
9. .
. .
, . 6.3. ,
int.
double.
10. . , ,
. , .
249
. 6.3.
250
6.2.4.
(. . 6.1).
,
,
. .
Main.
1. .
.
2. .
3. : Mainview.
4.
X: 0, Y: 0, : 990, : 390.
5. .
. , .
6.
X: 10, Y: 60, : 970, : 320.
7. ,
. 6.2. ,
.. .
6.2
:
20
170
340
470
630
810
810
251
Y:
:
80
140
80
160
80
120
80
150
80
170
80
160
220
160
:
270
270
270
270
270
130
130
252
6.2.4.1.
,
, , ,
.
1.
soure Main .
2. . Product.
3.
Java
.
4. Java .
: Product.
5. :
Entity . .
6. Java .
Java ,
:
int numBlock;
int sign1;
int numBlBrak1;
int numBlBrak2;
int numBlBrak3;
int numBlBrak4;
double timeSbor;
double cost;
7.
toString().
8. . Java . .
9.
Java Java .
253
10. c Product.
11. source.
. 6.3.
6.3
source
Product
exponential(1/aveTimeShop1)
Product
if (a==0){
costBlock1=stKomplBlock1+
stIzgBlock1+stTestBlock1;
costBlock2=stKomplBlock2+
stIzgBlock2+stTestBlock2;
costBlock3=stKomplBlock3+
stIzgBlock3+stTestBlock3;
costBlock4=stKomplBlock4+
stIzgBlock4+stTestBlock4;
costBlockIzd=costBlock1+
costBlock2+costBlock3+
costBlock4;
minCostIzd=costBlockIzd+
stSborki+
stKontrIzd+stPriemIzd;
a=1;}
kolIzgBlock1++;
entity.numBlock = 1;
entity.timeSbor =
exponential(1/timeSborki);
costKomplBlock1 +=
stKomplBlock1;
costKomplBlock +=
stKomplBlock1;
costIzgBlock1 +=
stIzgBlock1;
sumCostBlock1 +=
(stKomplBlock1+stIzgBlock1);
costIzgBlock += stIzgBlock1;
sumCostBlock +=
(stKomplBlock1+stIzgBlock1);
254
. 6.3
Product
exponential(1/aveTimeShop2)
Product
kolIzgBlock2++;
entity.numBlock = 2;
costKomplBlock2 +=
stKomplBlock2;
costKomplBlock +=
stKomplBlock2;
costIzgBlock2 +=
stIzgBlock2;
sumCostBlock2 +=
(stKomplBlock2+stIzgBlock2);
costIzgBlock +=
stIzgBlock2;
sumCostBlock +=
(stKomplBlock2+stIzgBlock2);
3
Product
exponential(1/aveTimeShop3)
Product
kolIzgBlock3++;
:
entity.numBlock = 3;
costKomplBlock3 +=
stKomplBlock3;
costKomplBlock +=
stKomplBlock3;
costIzgBlock3 +=
stIzgBlock3;
sumCostBlock3 +=
(stKomplBlock3+stIzgBlock3);
costIzgBlock +=
stIzgBlock3;
sumCostBlock +=
(stKomplBlock3+stIzgBlock3);
255
. 6.3
Product
exponential(1/aveTimeShop4)
Product
kolIzgBlock4++;
entity.numBlock = 4;
costKomplBlock4 +=
stKomplBlock4;
costKomplBlock +=
stKomplBlock4;
costIzgBlock4 +=
stIzgBlock4;
sumCostBlock4 +=
(stKomplBlock4+stIzgBlock4);
costIzgBlock +=
stIzgBlock4;
sumCostBlock +=
(stKomplBlock4+stIzgBlock4);
12. source
.
13.
source. . : 2,
3, 4. ,
1.
14. , , source, . 6.3.
6.2.4.2.
.
,
, ,
.
, , .
256
1. Main
/ .
1. .
2. : .
3. .
.
1. .
.
2. .
3. : Kontr1.
4.
X: 0, Y: 0, : 590, : 390.
,
, ,
.
.
1. (. 6.5).
. 6.5.
257
2. port 1.
3. 1.
4. (. . 6.5). : 2, 3,
4.
5. (. . 6.5).
6. port 1.
7. 1.
8. (. . 6.5). : 2, 3,
4.
9. (. . 6.5).
10. port 1.
11. 1.
12. (. . 6.5). : 2, 3,
4.
13.
( )
.
14. Main.
15. , Main , ,
. 6.6. 14
sink , .
16. .
.
( ) :
queue ;
delay ;
selectOutPut .
258
. 6.6. Test
1. .
. , .
2.
X: 10, Y: 50, : 570, : 330.
Queue.
1.
queue , . 6.7.
2.
queue 1 ( 1).
3. : Entity Product.
4. : .
5. 1.
6. Queue (.
. 6.7).
Test Delay.
1. Enterprise Library
delay 1,
. 6.7.
259
. 6.7.
260
2. delay 1 ( 1).
3. : Agent Product.
4. :
exponential
(1/main.timeTestBlock1).
5. main.postKontr1 :.
6. :
main.kolTestBlock1++;
main.sumCostBlock1 += main.stTestBlock1;
main.costTestBlock1 += main.stTestBlock1;
main.costTestBlock += main.stTestBlock1;
main.sumCostBlock += main.stTestBlock1;
7. 1.
8. delay (. . 6.7).
9.
( . 6.4). .
6.4
2
3
4
exponential
(1/main.timeTestBlock2)
exponential
(1/main.timeTestBlock3)
exponential
(1/main.timeTestBlock4)
main.
postKontr2
main.
postKontr3
main.
postKontr4
SelectOutput.
1. selectOutput
1, . 6.7.
2. selectOutPut 1 ( 1).
3. . 6.5.
4. 1.
5. SelectOutput (. . 6.7).
6. . 6.5.
7.
. 6.7.
(true) ,
, 1:
261
gotBlock1 1.
(false)
brakBlock1 1.
6.5
true
:
(true)
(false)
1
Product
1-main.procBrakBlock1
main.gotBlock1++;
main.brakBlock1++;
entity.sign1 = 1;
entity.numBlBrak1 = 1;
true
:
(true)
(false)
2
Product
1-main.procBrakBlock2
main.gotBlock2++;
main.brakBlock2++;
entity.sign1 = 1;
entity.numBlBrak2 = 1;
true
:
(true)
(false)
3
Product
1-main.procBrakBlock3
main.gotBlock3++;
main.brakBlock3++;
entity.sign1 = 1;
entity.numBlBrak3 = 1;
true
:
(true)
(false)
4
Product
1-main.procBrakBlock4
main.gotBlock4++;
main.brakBlock4++;
entity.sign1 = 1;
entity.numBlBrak4 = 1;
262
entity.sign1 1
, entity.numBlock1
entity.numBlock4. .
Main.
6.2.4.3.
, ,
.
.
1. Main
/ .
2. 1. .
3. : .
4. .
.
1. .
.
2. .
3. : Sbor.
4.
X: 0, Y: 0, : 820, : 550.
5. .
. , .
6.
X: 10, Y: 60, : 800, : 480.
:
;
;
;
.
263
1. (. 6.8).
2. port 1.
3. 1.
4. (. . 6.8). : 2, 3, 4.
5.
, . 6.8.
6. Main.
7. , Main , ,
. 6.9. sink
.
8. . .
, .
. 6.8.
264
. 6.9.
,
( ). ,
. ,
AnyLogic,
(). Match
.
,
. AnyLogic
,
. Combine,
.
, , ,
queue.
delay, selectOutPut.
.
265
1. . ,
.
2.
X: 320, Y: 80, : 340, : 230.
3.
match combine. , . 6.10.
4. queue, delay, selectOutPut, ,
. 6.10.
:
matchmatch3:
: 1, 2: Product, Product
true
1
2
combinecombine2:
: 1, 2, : Product, Product,
Product
entity1
queue:
: Product
selectOutPut:
: Product
true
entity.sign1 == 0
match match1 1 2, 3 4 . match2 match3
1 3, 2 4 . , .
entity1 combinecombine2 combine, combine2 , 1. .
entity.timeSbor (. . 6.3).
: (entity.sign1=0)
(entity.sign1=2).
266
. 6.10.
267
, selectOutPut
entity.sign1==0, .
delay . . 6.6.
6.6
Product
entity.timeSbor
main.kolPunSborki
if (entity.sign1 == 0)
{main.kolSobrIzd++;
main.costSborIzd +=
main.stSborki;
entity.cost += main.stSborki;}
if (entity.sign1 == 2)
{if (entity.numBlBrak1== 1)
{main.zamBlock1++;
entity.cost +=
main.stZamBlock1;
main.costSborIzd +=
main.stZamBlock1;}
if (entity.numBlBrak2 == 1)
{main.zamBlock2++;
entity.cost +=
main.stZamBlock2;
main.costSborIzd +=
main.stZamBlock2;}
if (entity.numBlBrak3 == 1)
{main.zamBlock3++;
entity.cost +=
main.stZamBlock3;
main.costSborIzd +=
main.stZamBlock3;}
if (entity.numBlBrak4 == 1)
{main.zamBlock4++;
entity.cost +=
main.stZamBlock4;
main.costSborIzd +=
main.stZamBlock4;}
main.kolZamIzd++;}
(. 6.11).
268
. 6.11.
269
.
, , etity.sign1 = 2.
etity.numBlBrak1 etity.numBlBrak4
.
.
() .
, 1 4 ,
selectOutput5.
selectOutput
( selectOutput(N)
N , exit N enter).
1 4.
match match1.
- . ,
.
selectOutPut. 1
4 selectOutPut. true
match match1. , true
,
false .
1
4. ,
2 0, 2.
.
combine. selectOutput5
delay,
combine.
combine ,
,
.
,
.
270
true selectOutPut
,
.
. ,
.
, .
split.
, .
.
SelectOutPut (
, ), SelectOutPut5, Queue Combine,
Split . ,
, . 6.11.
. 6.7.
6.7
selectOutPut selectOutPut3
1
true
1 == 0
true
2 == 0
true
3 == 0
true
4 == 0
selectOutput5
entity.numBlBrak1 ==
0
entity.numBlBrak2 ==
1
entity.numBlBrak3 ==
2
entity.numBlBrak4 ==
3
271
1
1
1
1
. 6.7
: 1, 2:
1
2
: 1, 2:
1
2
: 1, 2:
1
2
: 1, 2:
1
2
: 1,
2,
1
: 1,
2,
1
match
_1_2
Product, Product
true
_3_4
Product, Product
true
_1_3
Product, Product
true
_2_4
Product, Product
true
combine
1
Product, Product, Product
if (entity.numBlBrak1 == 1)
1 ++;
entity1
if (entity.numBlBrak1 == 1)
1 --;
entity.cost +=
main.stZamBlock1;
entity.timeSbor =
exponential(1/main.
timeZamBlock1);
2
Product, Product, Product
if (entity.numBlBrak2 == 1)
272
. 6.7
: 1,
2,
1
: 1,
2,
1
:
()
2 ++;
entity1
if (entity.numBlBrak2 == 1)
2 --;
entity.cost +=
main.stZamBlock2;
entity.timeSbor =
exponential(1/main.
timeZamBlock2);
3
Product, Product, Product
if (entity.numBlBrak3 == 1)
3 ++;
entity1
if (entity.numBlBrak3 == 1)
3 --;
entity.cost +=
main.stZamBlock3;
entity.timeSbor =
exponential(1/main.
timeZamBlock3);
4
Product, Product, Product
if (entity.numBlBrak4 == 1)
4 ++;
entity1
if (entity.numBlBrak4 == 1)
4 --;
entity.cost +=
main.stZamBlock4;
entity.timeSbor =
exponential(1/main.
timeZamBlock4);
split
Product, Product
1
Product
entity.sign1 = 0;
entity.cost =
original.cost;
273
6.2.4.4.
, ,
,
,
.
, ,
,
queue.
,
, delay.
. selectOutput.
1. queue, delay selectOutput Main.
2. . 6.12.
3. queue :
:
: Product
4. delay :
: Product
exponential( 1/timeKontrIzd )
kolStendKontr
:
testSobrIzd++;
entity.cost += stKontrIzd;
entity.numBlBrak1 = 0;
entity.numBlBrak2 = 0;
entity.numBlBrak3 = 0;
entity.numBlBrak4 = 0;
. delay2 .
,
.
274
. 6.12. Main
275
5. selectOutput :
:
: Product
true
[0..1] 1-procBrakIzd
(true) costTestIzd += stKontrIzd;
(false)
double a = 0;
int numBlock = 0;
entity.sign1 = 2;
a = uniform();
if (a < 1) numBlock = 4;
if (a <= (verBlNum1 + verBlNum2 + verBlNum3)) numBlock=3;
(false) selectOutput
.
entity.numBlBrak1 entity.numBlBrak4 1
. entity.timeSbor
. entity.sign1
2 .
6.2.4.5.
, ,
,
.
,
queue.
276
delay.
. selectOutput.
1. queue, delay selectOutput Main.
2. . 6.12.
3. queue :
:
: Product
4. delay :
: Product
exponential( 1/timePriemIzd )
kolPunPriem
kolPriemIzd++;
costPriemkiIzd += stPriemIzd;
entity.cost += stPriemIzd;
5. selectOutput :
: Product
true
[0..1] 1-procBrakPriem
(false)
entity.sign1 = 2;
brakPriemIzd++;
delay
kolPriemIzd .
(false) selectOutput brakPriemIzd
entity.sign1 2 .
6.2.4.6.
sink
:
:
: Product
277
++;
= time()/;
+= entity.cost;
+=minCostIzd;
=
(+)/;
ostGotBlock1 = gotBlock1 - - zamBlock1;
ostGotBlock2 = gotBlock2 - - zamBlock2;
ostGotBlock3 = gotBlock3 - - zamBlock3;
ostGotBlock4 = gotBlock4 - - zamBlock4;
kolGotIzd , costGotIzd koefIncrCostIzd
.
, ,
,
ostGotBlock1 ostGotBlock4 .
6.2.4.7.
(. . 6.2.4.2)
sink.
,
.
entity.sign1
1 2.
1. selectOutput sink
Main.
2. . 6.12.
3. , selectOutput,
. 6.8.
: sink
. :
costzbrakBlock
, ;
allBrakBlock1
allBrakBlock4.
278
4.
.
6.8
:
true
selectOutput
Product
entity.sign1 == 1
sink
Product
if (entity.numBlBrak1 == 1)
{ += costBlock1;
allBrakBlock1++;}
if (entity.numBlBrak2 == 1)
{ += costBlock2 ;
allBrakBlock2++;}
if (entity.numBlBrak3 == 1)
{ += costBlock3;
allBrakBlock3++;}
if (entity.numBlBrak4 == 1)
{ += costBlock4;
allBrakBlock4++;}
Product
if (entity.numBlBrak1 == 1)
{ += costBlock1;
allBrakBlock1++;}
if (entity.numBlBrak2 == 1)
{ += costBlock2;
allBrakBlock2++;}
if (entity.numBlBrak3 == 1)
{ += costBlock3;
allBrakBlock3++;}
if (entity.numBlBrak4 == 1)
{ += costBlock4;
allBrakBlock4++;}
6.2.4.8.
. ,
.
, . 6.13.
. 6.13.
Mainview.
1. .
text Mainview,
: (. 6.13). : black, .
2. text,
: .
: blue,
. :
: .Kontr1.navigateTo();
. ,
.
3. text,
: . . : : .Sbor.navigateTo();
4. text.
: . :
: .navigateTo();
5. text,
: . :
: .navigateTo();
, Mainview . , .
280
1. . 6.13.
, .
2. ,
. 6.9.
6.9
Data
Mainview.navigateTo();
.Kontr1.navigateTo();
.Sbor.navigateTo();
.navigateTo();
Result
Mainview.navigateTo();
.Kontr1.navigateTo();
.Sbor.navigateTo();
.navigateTo();
Kontrol
main.Mainview.navigateTo();
main..Sbor.navigateTo();
main..navigateTo();
main..navigateTo();
Sbor
main.Mainview.navigateTo();
main..Kontr1.navigateTo();
main..navigateTo();
main..navigateTo();
. ,
AnyLogic . , , . 6.14.
. ,
AnyLogic. , uniform(1)
random(), Java,
.
281
. 6.14.
282
6.3.
, AnyLogic
1000 . 82874.
40 (2400 ).
. 6.10.
() ,
AnyLogic.
:
14 14 ;
;
;
.
, ,
, GPSS World AnyLogic 7.
, ,
, .
, ,
0,0040,005.
, AnyLogic 7
AnyLogic 6, .
0,0030,007 . ,
3
(3) 0,007 .
1. 3 3, () 1.
.
1,
(0,3150,398) (0,598) .
4.
283
6.10
GPSS World
AnyLogic6
AnyLogic7
1)
121,628
122,337
121,721
=
11 121, 628 121,=
721 0, 093
74410
75151
74763
70787
71200
70841
=
12 70787 70841
= 54
3099
3122
3079
1,095
1,099
1,099
1, 095 1, 099
=
= 0, 004
13
1
2
3
4
19,732
0,315
0,726
0,696
0,472
0,581
0,545
0,539
19,618
0,316
0,728
0,699
0,474
0,586
0,548
0,539
19,717
0,315
0,729
0,703
0,475
0,583
0,545
0,536
1
2
3
4
147,909
147,954
148,039
=
21 147,909 148,=
039 0,130
90487
90902
90941
86083
86109
86158
=
86083 86158
= 75
22
3848
3824
1,096
1,1
=
= 0, 004
1, 096 1,100
23
16,226
0,398
0,800
1,0
0,566
0,705
0,660
0,654
284
16,221
0,4
0,804
1,0
0,563
0,705
0,662
0,654
3844
1,1
16,212
0,401
0,801
1,0
0,566
0,704
0,665
0,655
. 6.10
GPSS World
AnyLogic6
AnyLogic7
3) aveTimeShop4=10
153,743
154,327
154,004
=
31 153, 743 154,=
004 0, 261
94050
94815
94614
89478
89818
89630
=
89478
89630
=
152
32
4412
4450
4432
1,100
1,105
1,105
1,100 1,105
=
= 0, 005
33
1
2
3
4
15,610
15,551
15,584
0,398
0,399
0,398
0,800
0,797
0,803
1,0
1,0
1,0
0,850
0,852
0,851
0,733
0,737
0,737
0,691
0,691
0,688
0,678
0,681
0,682
4) aveTimeShop1=10, postKontr3=3
209,234
209,086
209,596
=
41 209, 234 209,596
= 0,362
127880
128328
128659
121774
121688
121984
=
42 121744 121984
= 240
4952
4848
4880
1,091
1,094
1,095
=
1, 091 1, 095
= 0, 004
43
1
2
3
4
11,470
0,600
0,799
0,701
0,845
1,0
0,936
0,923
285
11,478
0,599
0,801
0,700
0,853
1,0
0,936
0,923
11,451
0,598
0,799
0,698
0,847
1,0
0,937
0,927
7.
7.1.
. 7.1. A, B.
1. ( ), , C. D ,
( FIFO).
2. ,
, E. 2 .
3. . ,
. , .
, , 10
. .
4. F , .
(,
, .). 2 .
. 7.1.
286
5. H, - I.
2 .
,
.
6. H ( ,
3). 10 .
- ( ),
H, .
2 .
, , 6.
5 .
7.
J. 2 .
8. .
2 .
8 .
:
;
;
;
.
.
( D, ,
F J, I Z)
(). ,
, , D_.
: 1
1 , , ,
8*60 = 480 .
.
287
,
.
. :
;
;
.
,
.
7.2. AnyLogic
7.2.1.
1. . // .
2. . ,
. .
.
, .
Main.
1.
.
2. :
_.
3.
: .
.
4. : .
5.
X: 0, Y: 750, : 560, : 330.
6. . , .
7.
X: 20, Y: 760, : 530, : 310. ,
288
, :
. .
8. : .
9.
X: 0, Y: 0, : 680, : 410.
10. . , .
11.
X: 30, Y: 40, : 640, : 350.
12. .
13. .
: .
14. ,
15. text
text .
16. text text
.
17. .
. , . 7.2.
18. . 7.1. ( ) ,
GPSS-.
7.1
D_
E_
F_
I_
ZP_
J_
int
int
int
int
int
int
10
5
5
7
2
7
timeD
timeE
timeF
timeI
timeZ
timeJ
timeA
timeFH
timeIJ
double
double
double
double
double
double
double
double
double
289
2
10
2
5
10
2
9
2
2
19. . .
. ,
. 7.2. double.
GPSS World , .
(
delay) AnyLogic. ,
KoefIsp_E, KoefIsp_F, KoefIsp_Z, KoefIsp_I, KoefIsp_J.
_, _F, _Z, _I, _J.
.
.
KolObrCar, TimeObr, KoefIsp
, GPSS-.
kolJ . TimeSum .
TimeObr .
Java-.
290
. 7.2.
7.2.2.
. 7.3.
(
): source (); queue (8); delay (8); split (1); match (1); sink.
.
_
, .
1. source. . 7.2.
2. Car :
long id;
double vxod;
id Car
match
. vxod
.
291
. 7.3.
292
, ,
. 7.3. . 7.3.
source
7.2
Car
exponential(1/timeA)
Car
entity.id =
_.count();
entity.vxod = time();
7.3
__D_
Car
_D_
Car
exponential(1/timeD)
D_
___E_
Car
10
if (_E <
___E_.size())
_E =
___E_.size();
293
. 7.3
()
1
2
1
2
_____
Car
exponential(1/timeE)
E_
___Z
Car
1
Car
entity.id = original.id;
entity.vxod = original.vxod;
___Z_
Car
100
if (_Z < ___Z_.size())
_Z =
___Z_.size();
____Z_
Car
exponential(1/timeZ)
ZP_
____Z_
Car
entity1.id == entity2.id
100
100
entity.id = 0;
if (_I <
____Z_.size2())
_I =
____Z_.size2();
294
. 7.3
___F_
Car
___F_
Car
F_
if (_F < ___F_.size())
_F =
___F_.size();
___F_
Car
exponential(1/timeF)
F_
queue1
Car
100
__F___
Car
exponential(1/timeFH)
10
___I_
Car
exponential(1/timeI)
I_
queue
Car
100
__I__J_
Car
295
. 7.3
exponential(1/timeIJ)
10
___J_
Car
10
if (_J < ___J_.size())
_J = ___J_.size();
___J_
Car
exponential(1/timeJ)
J_
. .
split
. , , Z,
, , . Z
( ), match ,
.
sink . ,
(
sink) combine.
combine ,
, .
. match
,
id
Car (entity1.id == entity2.id),
.
combine .
296
. 7.4 sink.
7.4
_J
Car
if (entity.id != 0){
kolJ ++ ;
KolObrCar = kolJ/10000;
KoefIsp = kolJ/_.count();
TimeSum += (time() - entity.vxod);
TimeObr = TimeSum / kolJ;
KoefIsp_E =
____E_.statsUtilization.
mean();
KoefIsp_F =
___F_.statsUtilization.mean();
KoefIsp_Z =
____Z_.statsUtilization.
mean();
KoefIsp_I =
___I_.statsUtilization.mean();
KoefIsp_J =
___J_.statsUtilization.mean();}
.
1 match
sink, sink .
,
(
).
, (
). 1
match entity.id = 0, id
. ,
sink, .
kolJ, count(),
, .
, - .
297
7.2.3.
. 7.5.
. GPSS-
,
AnyLoic- 1876. GPSS World
10000 , AnyLogic
10000 , 4800000 .
7.5
KolObrCar
TimeObr
KoefIsp
KoefIsp_E
KoefIsp_F
KoefIsp_Z
KoefIsp_I
KoefIsp_J
_E
_F
_Z
_I
_J
GPSS World
AnyLogic6
AnyLogic7
53,31
53,41
53,294
35,485
36,109
36,053
1,000
1,000
1,000
0,222
0,222
0,222
0,044
0,044
0,044
0,556
0,556
0,554
0,079
0,080
0,062
0,032
0,032
0,032
5
5
8
1
1
1
21
20
16
22
22
17
1
1
1
25 34
25 c
37 c
, .
, GPSS World 25
34 , 40 , AnyLogic7.
8
(KolObrCar)
(TimeObr)
.
.
7.3.
.
GPSS World AnyLogic. GPSS World
, AnyLogic .
, .
298
7.3.1. AnyLogic
AnyLogic. :
,
.
1. AnyLogic .
2.
Co/ .
3. : .
4. , , 1.
5. : Main. () . , .
6.
, :
.
7. .
8. root.TimeObr,
root.
9. ( ).
1687.
. , .
10. :.
( ).
.
11. timeA, time,
timeF, timeI, timeZ, timeFH. ,
m
6
k=2, m=6, =
I k=
2=
64 .
12. : 64. , . . 7.9
Main.
299
13. , . 7.9.
, . .
, . 5.1.10.4.
14. , time.
. , . ,
GPSS World,
( ),
.
15. .
10,
15. ,
5.
16. , . 7.9.
17. .
18. .
19. () () . , ,
= 0,95 , = 0,01 = 0,1
:
N= t2
2
0,12
= 1,962
= 3,8416 100 400,
2
0, 012
t = 1,96 .
20. 400.
21. .
( . .). .
.
22. /1.
300
. 7.9.
23. .
.
( ).
400*64=25600 (. 7.10) .
301
. 7.10.
7.3.2. AnyLogic
. :
, .
1. AnyLogic .
2.
Terminal Co/ . : .
3. , , 2.
4. . 58 .
302
5. .
6. root.KolObrCar.
7. . 1119 .
8. , = 0,95 ,
1, = 1 = 1 .
:
2
2
21
N t2 =
1,96
3,8416 1 4.
=
=
12
2
9. 4.
10. .
11. /2.
12. .
4*64=256 (. 7.11) . ( ) () : 48,129.
.
7.4.
. 7.7 7.8.
7.7
,
TimeObr
timeA
timeE
timeF
timeI
timeZ
timeFH
TimeObr
timeA
timeE
timeF
timeI
timeZ
timeFH
GPSS World
AnyLogic6
AnyLogic7
31,844
20
10
2
5
10
2
31,605
20
10
4
5
10
4
31,799
20
10
2
5
10
2
31,799
20
10
2
5
10
2
32,534
20
10
2
5
10
2
34,527
20
10
4
5
10
4
303
. 7.11.
()
GPSS World AnyLogic
. ,
GPSS World
, ,
AnyLogic .
. 7.7 7.8 .
, AnyLogic,
TimeObr = 32,534 (. . 7.10)
: timeA = 20, time = 10, timeF = 2, timeI = 5,
timeZ = 10, timeFH = 2.
GPSS
World (. . 7.7) TimeObr = 31,844 . ,
0,045 .
304
7.8
,
KolObrCar
timeA
timeE
timeF
timeI
timeZ
timeFH
KolObrCar
timeA
timeE
timeF
timeI
timeZ
timeFH
GPSS World
AnyLogic6
48,049
10
10
2
5
10
2
48,30
10
15
4
5
15
4
48,08
10
10
2
5
10
2
48,08
10
10
2
5
10
2
AnyLogic7
48,129
10
10
2
5
10
2
47,957
10
15
4
5
15
4
, AnyLogic,
KolObrCar = 48,129 (. . 7.11)
:
timeA = 10, time = 10, timeF = 2, timeI = 5, timeZ = 10,
timeFH = 2.
GPSS
World (. . 7.8) KolObrCar = 48,049. ,
,
( 0,08).
GPSS World
, ,
AnyLogic. ,
. 7.7 7.8 ( ).
GPSS World AnyLogic (48,300 47,957 = 0,343).
305
8.
8.1.
n
1, 2, , n .
.
1, 2, , k a1, a2,
, ak .
n1, n2, , nn
. n1
. n2, , nn
, .
. n2
. n3, n4, ,
nn , .
.
.
nn n- .
n- ,
, : 11, 12, 13
, 21, 22, 23 , , Tn1, Tn2,
, Tnn n- .
d . ,
, 1, .
q .
8.1.1.
exponential() = exponential (30); n = 4;
p1 = 0.2, p2 = 0.3, p3 = 0.25, p4 = 0.25;
p11 = 0.5, p12 = 0.25, p13 = 0.25;
n1 = 2; T11 = 30; T12 = 40; T13 = 50;
n2 = 1; T21 = 20; T22 = 30; T23 = 40;
n3 = 1; T31 = 15; T32 = 25; T33 = 35;
n4 = 1; T41 = 25; T42 = 35; T43 = 45;
d = 2; normal(T1, To1) = normal(15, 2); q = 2 %.
.
306
.
8.1.2.
.
p1, p2, p3, p4.
= 0,01 = 0,95.
.
8.1.3.
, (. 8.1)
.
. 8.1.
307
.
,
:
;
;
;
;
.
():
;
;
;
,
. , Tp
. Tp/n. n .
1, 2, 3, 4,
n=4. 13 . :
p1 p4 14 ;
p11 p43 14
13 .
.
.
:
1 1, 14 ;
1 1, 14 ;
11 43 14 13 .
308
,
. , 1=1/
.
:
1 4, 14 .
, 1=1/1.
8.2. AnyLogic
8.2.1.
Main.
1. // . .
2. _. ,
.
3. .
4.
Main.
.
: .
5. , ,
: . .
6. : .
7.
X: 0, Y: 650, : 610, : 590.
8. . , .
.
9.
X: 10, Y: 670, : 590, : 560.
10. text
text: .
309
. 8.2.
11. .
.
, . 8.2. .
12. . 8.1.
.
13. , 14 int.
double.
, . . 8.2
, , 11 . . ,
.
310
8.1
Tp
n
T11
T12
T13
T21
T22
T23
T31
T32
T33
T41
T42
T43
1
2
30
4
30
40
50
20
30
40
15
25
35
25
35
45
1000
2
1
T1
To1
p11
p12
p13
p21
p22
p23
p31
p32
p33
p41
p42
p43
3
4
15
2
0.50
0.75
1.00
0.50
0.75
1.00
0.50
0.75
1.00
0.50
0.75
1.00
2
1
1
8.2.2.
1. . , , .
2. text : text . .
3. .
. 8.2. double.
8.2.3.
AnyLogic
(. . 8.1.4):
;
311
;
;
.
1.
Main. . . .
2. , ,
: . .
3. : .
4.
X: 0, Y: 0, : 1240, : 460.
5. . , . source .
6.
X: 20, Y: 120, : 100, : 140.
7. text
.
8. .
, . .
9.
X: 130, Y: 30, : 590, : 410.
10. text
.
. 8.3 : . .
8.2.3.1.
1.
source
(. . 8.3). .
2.
/Java .
312
. 8.3.
3. Java .
: .
313
4. :
Entity . .
5. Java .
Java :
double ;
double ;
double ;
6.
toString ().
7. . Java
Java .
8. source.
. : Agent .
:
exponential(1/(Tp/n))
: entity.=uniform();
entity.=uniform();
Java- entity. entity.
.
.
8.2.3.2.
.
selectOutput5,
selectOutput, queue, delay sink
(. . 8.3).
1. (, ,
, ,
, , ) Main. , . 8.3.
2. . 8.2.
314
8.2
1
2
2
3
3
4
true
1
2
3
4
1
2
2
3
entity.<=p1
entity.=1;
1++;
++;
entity.<=p2
entity.=2;
2++;
++;
entity.<=p3
entity.=3;
3++;
++;
entity.<=p4
entity.=4;
4++;
++;
o
C
0.98
entity.==1
entity.==2
entity.==3
entity.==4
1
entity.<=p11
entity.=1;
entity.=exponential(1/T11);
entity. <=p12
entity.=2;
entity.=exponential(1/T12);
entity.=<p13
entity.=3;
entity.=exponential(1/T13);
315
. 8.2
1
2
2
3
1
2
2
3
1
2
2
3
true
entity.<=p21
entity.=1;
entity.=exponential(1/T21);
entity. <=p22
entity.=2;
entity.=exponential(1/T22);
entity.=<p23
entity.=3;
entity.=exponential(1/T23);
3
entity.<=p31
entity.=1;
entity.=exponential(1/T31);
entity. <=p32
entity.=2;
entity.=exponential(1/T32);
entity.=<p33
entity.=3;
entity.=exponential(1/T33);
4
entity.<=p41
entity.=1;
entity.=exponential(1/T41);
entity. <=p42
entity.=2;
entity.=exponential(1/T42);
entity.=<p43
entity.=3;
entity.=exponential(1/T43);
1_2
(1.size()==0)&&
(1.size()<1)&&
(2.size()!=0)
316
. 8.2
1_3
true
(1.size()==0)&&
(1.size()<1)&&
(3.size()!=0)
1_4
true
(1.size()==0)&&
(1.size()<1)&&
(4.size()!=0)
2_3
true
(2.size()==0)&&
(2.size()<2)&&
(3.size()!=0)
2_4
true
(2.size()==0)&&
(2.size()<2)&&
(4.size()!=0)
3_4
true
(3.size()==0)&&
(3.size()<3)&&
(4.size()!=0)
normal(To1,T1)
=.statsUtilization.mean();
. , entity.=0.723.
0: entity.=0.723<=p1=0.5. 0 . 1: entity.= 0.723
<=p2=0.75. 1 . 1. ,
1,
317
entity.=2;
2++;
++;
2 entity.=2, 2 .
.
03 ( queue) , (delay), .
(selectOutput) q = 2 %. , , sink.
. 03 14 .
14 13
.
. 8.1.7.3.
8.2.3.3.
,
.
queue delay.
1. . , .
2.
X: 740, Y: 30, : 200, : 410.
3. text
text .
4. Main. , , . 8.4.
318
5. 14 .
6. 14 :
:
entity.
7. 14 .
8. :
1=1.statsUtilization.mean();
2=2.statsUtilization.mean();
3=3.statsUtilization.mean();
4=4.statsUtilization.mean();
13 1 1 (queue).
24 1_2, 1_3, 1_4 .
, . . , 1_3
:
(1.size()==0)&&
(1.size()<1)&&(3.size()!=0)
1 ? 1 ? 3 ?
, , ,
true 1_3 1.
1_3, 1_4.
, false 24 .
2_3, 2_4 3 4 2 .
3_4
4 3 .
319
. 8.4.
320
8.2.3.4.
, .
selectOutput5 sink.
1. . , .
2.
X: 970, Y: 30, : 250, : 410.
3. text
text .
4. . , . 8.5.
. 8.5.
321
5.
. 8.3.
8.3
1
1
2
2
3
3
entity.==1
1++;
++;
1=
1/1;
entity.==2
2++;
++;
2=
2/2;
entity.==3
3++;
++;
3=
3/3;
entity.==4
4++;
++;
4=
4/4;
1
entity.==1
11++;
entity.==2
12++;
entity.==3
13++;
1
1
2
2
3
3
entity.==1
21++;
entity.==2
22++;
entity.==3
23++;
1
2
2
3
4
4
322
. 8.3
1
1
2
2
3
3
entity.==1
31++;
entity.==2
32++;
entity.==3
33++;
1
1
2
2
3
3
entity.==1
41++;
entity.==2
42++;
entity.==3
43++;
6. sink1:
:
=/
1 ,
. , , , ,
.
14 , .
sink1 .
.
8.2.3.5.
.
Simulation:Main. ( )
: 892. , : . : 1440000 ( 1000).
323
. 8.6.
. , .
_. ,
, AnyLogic.
. 8.6. ,
1 37,612. 0, 979. 188,476 0,980.
324
8.3.
.
. 8.48.6 .
(. 8.4) ,
, : = 20 .
, GPSS World AnyLogic7.
, 5 = 0,001,
6 = 0,0050,013. , ,
.
(. 8.5) ,
= 30 .
5 = 0,001, 6 = 0,0010,014. , , .
(. 8.6),
: = 20 , = 3, 2 = 2, 3 = 2.
5 = 0,001,
-:
5 = 0,0150,026.
- 240,075 281,239
1,174 (281,239: 240,075 = 1,174).
:
0,977 0,980. -
.
325
8.4
GPSS World AnyLogic6
20
1
37,879
37,428
1 = |37,879-37,707| = 0,172
: 11
19,021
18,705
12
9,461
9,354
13
9,397
9,369
2
56,297
56,330
2 = |56,297-56,524| = 0,227
: 21
28,195
28,378
22
13,900
13,914
23
14,202
14,038
3
47,075
46,946
3 = |47,075-47,322| = 0,247
: 31
23,570
23,414
32
11,831
11,788
33
11,674
11,744
4
46,857
47,486
4 = |46,857-47,000| = 0,143
: 41
23,443
23,552
42
11,811
12,050
43
11,603
11,884
0,654
0,655
5 = |0,654-0,653| = 0,001
: 1
0,832
0,838
2
0,865
0,868
3
0,659
0,668
4
0,637
0,662
6 = 0,0010,013
1,000
1,000
326
AnyLogic7
37,707
18,697
9,353
9,257
56,524
28,517
14,026
13,981
47,322
23,784
11,711
11,827
47,000
23,527
11,886
11,587
0,653
0,833
0,866
0,664
0,650
1,000
8.5
GPSS World
AnyLogic6
20
1
37,490
37,466
1 = |37,490-37,612| = 0,192
: 11
18,705
18,846
12
9,325
9,236
13
9,460
9,384
2
56,597
56,360
2 = |56,597-56,279| = 0,318
: 21
28,186
27,941
22
14,341
14,200
23
14,070
14,219
3
46,811
47,151
3 = |46,811-46,980| = 0,169
: 31
23,373
27,941
32
11,842
14,200
33
11,596
14,219
4
47,223
47,151
4 = |47,223-46,887| = 0,336
: 41
23,647
23,311
42
11,844
11,791
43
11,732
11,807
0,978
0,978
5 = |0,978-0,977| = 0,001
: 1
0,828
0,836
2
0,858
0,868
3
0,653
0,667
4
0,632
0,657
6 = 0,0010,014
1,000
0,999
327
AnyLogic7
37,612
18,893
9,283
9,436
56,279
28,014
14,070
14,195
46,980
23,680
11,662
11,638
46,887
23,445
11,801
11,641
0,977
0,832
0,864
0,649
0,633
0,998
8.6
GPSS World
AnyLogic6
20
1
56,592
56,221
1 = |56,592-55,849| = 0,743
: 11
28,398
28,069
12
14,158
14,152
13
14,036
14,000
2
84,227
84,740
2 = |84,227-84,592| = 0,355
: 21
42,087
42,513
22
21,196
21,285
23
20,974
20,942
3
70,679
70,586
3 = |70,679-70,377| = 0,302
: 31
35,256
35,072
32
17,671
17,659
33
17,752
17,855
4
70,244
70,486
4 = |70,244-70,421| = 0,177
: 41
35,112
34,974
42
17,757
17,696
43
17,375
17,816
0,979
0,980
5 = |0,979-0,979| = 0,001
: 1
0,932
0,949
2
0,874
0,893
3
0,667
0,646
4
0,772
0,796
6 = |0,932-0,947| = 0,015
0,998
0,999
328
AnyLogic7
55,849
28,075
13,889
13,885
84,592
42,411
21,026
21,155
70,377
35,147
17,662
17,568
70,421
35,344
17,491
17,586
0,980
0,947
0,891
0,641
0,793
0,996
9.
9.1. AnyLogic
9.1.1.
. . .
.
.
.
q1 q2 . (q1 <
q2). .
. . , .
9.1.2.
9.1
, .
, .
, .
, .
, .
,
.
,
, .
, .
, .
, .
329
1
2
2
0
50
50
1
0
100
100
1
1
15
22
0,5
0,4
. 9.1
,
,
,
,
1 2 2 1,
1 2 2
1,
1 2 2 1,
1 2 2
1,
1
2
0,1
0,2
0,1
0,1
0,2
0,2
0,2
0,2
3,4
3,6
0,5
0,6
3,2
4,1
0,5
0,8
9.1.3.
:
1 2;
;
1 2;
;
,
1 2 .
,
.
.
330
9.1.4.
(. 9.1).
. , ,
:
1;
2.
:
1:
1, ;
1;
1;
1 2;
1;
1;
2:
2;
2;
2;
2;
2;
2 1.
:
;
1;
2.
():
;
() ;
;
.
331
. 9.1.
.
1 2 .
332
1
2 1 2.
(. 9.1.6 . 9.1.7 ).
:
, ;
, .
:
1,
1,
2,
2
1 2 ;
1, 1,2,2 1 2 ;
12, 12, 21, 21
1 2 2 1 .
:
21=21/2 2 1, 21 2 1, 2 2;
12=12/1 1 2, 12
1 2, 1
1;
=(12+21)/(1+2)
;
1=1+1+12
1;
1=1+1+12
1;
2, 2 2.
333
9.1.5.
,
:
;
;
1;
2.
.
.
. 9.2.
9.2
:
:
Y:
:
:
10
1860
620
490
1 1
10
10
10
2600
10
790
530
1080
1110
470
480
490
:
, : .
9.1.6.
.
, ,
, 1 2.
1.
.
2.
X: 30, Y: 1880, : 580, : 450.
3. text : .
4.
, . 9.2.
5. . 9.3.
334
. 9.2.
9.3
1
1
1
1
1
1
1
1
1
1
1
12
12
int
int
1
int
int
double
int
int
int
int
double
double
double
double
double
double
335
2
50
1
15
0.5
2
2
3
3
0.1
0.1
0.2
0.2
3.4
0.5
. 9.3
12
12
2
2
2
2
2
2
2
2
2
2
2
12
12
12
12
double
double
int
int
2
int
int
double
int
int
int
int
double
double
double
double
double
double
double
double
3.2
0.5
1
100
1
22
0.4
2
2
2
2
0.2
0.1
0.2
0.2
3.6
0.6
4.1
0.8
9.1.7.
. ,
,
, .
,
.
1.
.
2.
X: 25, Y: 2610, : 510, : 450.
3. text : .
4. , . 9.3. double, 0.
336
. 9.3.
5. text . 9.3.
6. text : .
7. . 9.3.
double, 0.
8. (event).
,
, .
,
1 (. 9.4)
2 (. 9.5).
337
. 9.4. 1
338
. 9.5. 2
339
9.1.8. 1
9.1.8.1. 1.
() 1, , () .
1. .
2.
X: 30, Y: 50, : 310, : 200.
3. text : 1. .
4.
source, enter, queue, hold exit. , . 9.6.
Java, .
,
(. . 9.1.4).
.
1. source.
2.
/Java .
3. Java .
: : .
4. :
Entity . .
5. Java .
Java , . 9.7.
6.
toString (). . .
7. Java
Java .
8. 1 2 1 2 int .
, , 1 2 .
340
. 9.6. 1
. 9.7. Java
341
1 .
. 9.4.
9.4
:
:
,
source
1
entity.=1;
entity.=
;
source1
2
:
:
0
,
entity.=2;
entity.=
:
;
queue
1
:
342
. 9.4
:
:
:
:
:
:
:
:
queue1
1
hold
hold1
exit
1
if (entity.==1)
{hold.setBlocked(true);
enter2.take(entity);}
else
{hold1.setBlocked(true);
enter3.take(entity);}
enter
enter1
.
1 2 ,
. .
- queue
1 1 .
hold hold1 , - .
hold hold1
1. 1 , , , , hold.
343
- 1 (
exit) 1.
,
, hold1. -
1 ( exit) 1.
enter enter1
queue queue1 . -, 2,
1.
9.1.8.2. 1
1
(), ,
.
.
1. .
2.
X: 30, Y: 270, : 220, : 200.
3. text : 1.
4.
source, selectOutput5 ( selectOutput) sink.
, . 9.8.
. 9.5.
source 1 1 , . - selectOutput.
1 , . , - .
, 1.
344
. 9.8. 1
9.5
:
:
,
:
:
1
2
2
3
source
1
1
exponential(1/1)
1
1
a=(uniform_
discr(1,
1));
1+=a;
1+=a;
selectOutput
1
1<
1.size()>0&&
1.size()==0
1-=;
hold.setBlocked(false);
1<
345
. 9.5
4
4
:
1.size()>0&&
1.size()==0
1-=;
hold1.setBlocked(false);
sink
1
1 2:
.
2 hold (. . 9.1.8.2) .
2 , , , 3.
3 , , - .
3 ( ,
),
4: .
4 , - .
4 hold1 (. . 9.1.8.2) .
-.
1 .
9.1.8.3. 1
1
.
1.
1. .
2.
X: 350, Y: 50, : 460, : 200.
346
. 9.9. 1
3. text : 1.
4.
enter, split, queue, delay, selectOutput
exit sink. , . 9.9.
5. . 9.6.
9.6
:
:
:
,
()
enter2
enter3
split
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.tPolet=
original.tPolet;
entity.
=original.;
347
. 9.6
:
,
()
split1
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity.
=original.;
1
:
:
entity.=
1;
queue1
1
:
:
entity.=
1;
delay
1
:
:
exponential
(1/entity.)
1
1++;
delay1
1
:
:
348
. 9.6
exponential
(1/entity.)
1
1++;
selectOutput1
:
true
entity.
==1
entity.=
(true)
normal(12,
12);
1=0;
selectOutput2
:
true
entity.
==1
entity.=
(true)
normal(12,
12);
1=0;
exit
12
:
:
if (entity.==1)
enter4.take(entity);
else enter5.take(entity);
sink
,
enter2 - split.
split , , . .
, -. , , , , .
349
- 1,
1.
entity.=1,
- .
1,
(1++), -
selectOutput1.
(entity.
==1): ?
, ,
, - (exit).
- 1 2.
.
-
enter3 split1.
9.1.8.4. 1 2
1 2
1 2.
.
1. .
2.
X: 830, Y: 50, : 240, : 200.
3. text :
1 2.
4.
enter, delay exit. , . 9.10.
5. . 9.7.
, -
enter4 12 (delay). 12 ,
1 2. 2 -
.
350
. 9.10. 1 2
9.7
:
:
:
:
:
:
enter4
enter5
delay
12
entity.
delay1
12
entity.
exit
if (entity.==1)
enter10.take(entity);
else enter11.take(entity);
351
9.1.8.5. 1
1
,
2.
.
1. .
2.
X: 270, Y: 270, : 310, : 200.
3. text : 1.
4.
enter, queue, hold exit. , . 9.11.
5. . 9.8.
, - 2
enter6. , (1.size()==0),
hold2 - 1
.
. 9.11. 1
352
9.8
:
:
:
:
:
:
:
:
:
enter6
if (1.size()==0)
hold2.setBlocked(false);
enter7
if (1.size()==0)
hold3.setBlocked(false);
queue
1
queue1
1
hold2
hold3
exit
1
if (entity.==1)
{hold2.setBlocked(true);
enter8.take(entity);}
else
{hold3.setBlocked(true);
enter9.take(entity);}
1
hold2 hold2.setBlocked(true), 1 .
- ,
enter7. .
353
9.1.8.6. 1
1
, 2.
.
1. .
2.
X: 600, Y: 270, : 470, : 200.
3. text : 1.
4. enter, split, queue, delay, selectOutput exit sink.
, . 9.12.
5. . 9.9.
, enter8 - split2. split2 ,
, . - .
, -. , , , , .
. .
. 9.12. 1
354
9.9
:
:
:
,
()
:
,
()
:
:
enter8
enter9
split2
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity.=
original.;
split3
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity.
=original.;
queue
1
entity.=
1
355
. 9.9
queue1
1
:
:
entity.=
1
delay
1
:
:
exponential
(1/entity.)
1
1++;
delay1
1
:
:
exponential
(1/entity.)
1
1++;
selectOutput3
:
true
entity.==
1
1=0;
21+=
(true):
entity.;
hold2.setBlocked(false);
selectOutput4
:
true
entity.==
1
1=0;
21+=
(true):
356
. 9.9
entity.;
hold3.setBlocked(false);
exit
:
:
21+=
entity.;
if (entity.==1)
enter.take(entity);
else enter1.take(entity);
sink2
- 1,
1. entity.=1, -
.
1,
(1++), -
selectOutput3.
(entity.
==1): ?
, ,
, - 1 (exit).
selectOutput3 1
0, . , hold2,
1
1 (exit) -
1.
. -
enter9 split3.
357
9.1.9. 2
, 2, , 1,
.
9.1.9.1. 2
2
(), ,
( ).
1. .
2.
X: 30, Y: 830, : 290, : 190.
3. text : 2.
4. source, selectOutput5 ( selectOutput5) sink.
, . 9.13.
. 9.10.
. 9.13. 2
358
9.10
:
:
,
:
:
1
2
2
3
4
4
:
source
2
2
exponential
(1/2)
1
2
d=(uniform_discr(2,
2));
2+=d;
2+=d;
selectOutput5
2
2<
2.size()>0&&
2.size()==0
2-=;
hold6.setBlocked(false);
2<
2.size()>0&&
2.size()==0
2-=;
hold7.setBlocked(false);
sink
2
source 2 2 . - selectOutput5.
. 9.1.8.2
-. 2 .
, . 9.1.8.2, , 2, .
359
9.1.9.2. 2
2
, 1.
.
1. .
2.
X: 30, Y: 1040, : 310, : 220.
3. text : 2.
4.
enter, queue, hold exit. , . 9.14.
5. . 9.11
, - enter11.
: (2.size()==0)
? , hold5 2
2.
. 9.14. 2
360
9.11
:
:
:
:
:
:
:
enter10
if
(2.size()==0
&&2.size()==0)
hold4.setBlocked(false);
enter11
if
(2.size()==0
&&2.size()==0)
hold5.setBlocked(false);
queue
2
queue1
2
hold4
hold5
exit
2
if (entity.==1)
{hold4.setBlocked(true);
enter12.take(entity);}
else
{hold5.setBlocked(true);
enter13.take(entity);}
9.1.9.3. 2
2
, 1.
361
. 9.15. 2
.
1. .
2.
X: 360, Y: 1040, : 470, : 220.
3. text : 2.
4. enter, split, queue, delay, selectOutput exit sink.
, . 9.15.
5. . 9.12.
, (. 9.1.9.2)
enter13 -
split5. split5 , ,
. - . 1 , (entity.-1).
, , 1, . ,
, -,
, .
.
.
362
9.12
:
:
:
,
()
:
,
()
:
:
enter12
enter13
split4
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity. =
original.;
split5
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity.=
original.;
queue
2
entity.=
2;
363
. 9.12
queue1
2
:
:
entity.=
2;
:
delay
2
:
:
exponential
(1/entity.)
2
2++;
delay1
2
:
:
exponential
(1/entity.)
2
2++;
selectOutput6
:
true
entity.==
2
2=0;
(true)
12+=
entity.;
hold4.setBlocked(false);
selectOutput7
:
true
entity.==
2
2=0;
(true)
364
. 9.12
:
:
12+=
entity.;
hold5.setBlocked(false);
exit
2
12+=
entity.;
if (entity.==1)
enter14.take(entity);
else enter15.take(entity);
sink4
9.1.9.4. 2
2
, 1, 2 .
.
1. .
2.
X: 340, Y: 830, : 290, : 190.
3. text : 2.
4.
enter, queue, hold exit.
, . 9.16.
5. . 9.13.
1 ,
. -
queue 2 2
.
hold6 hold7 , - .
hold6 hold7
2.
365
. 9.16. 2
9.13
:
:
:
:
:
:
:
:
enter14
enter15
queue
2
queue1
2
hold6
hold7
366
. 9.13
exit
2
if (entity.==1)
{hold6.setBlocked(true);
enter16.take(entity);}
else
{hold7.setBlocked(true);
enter17.take(entity);}
9.1.9.5. 2
2
.
2.
1. .
2.
X: 350, Y: 50, : 460, : 200.
3. text : 1.
4. enter, split, queue, delay, selectOutput exit sink.
, . 9.17.
5. . 9.14.
. 9.17. 2
367
9.14
:
:
:
,
()
:
,
enter16
enter17
split6
,
entity.-1
entity.=
original.;
entity.=
original.;
entity.tPolet=
original.tPolet;
entity.=
original.;
split7
entity.-1
()
entity.=
original.;
entity.=
original.;
entity.=
original.;
entity.=
original.;
queue6
2
:
:
entity.=
2;
368
.9.14
queue7
2
:
:
entity.=
2;
delay
2
:
:
exponential
(1/entity.)
2
2++;
delay1
2
:
:
exponential
(1/entity.)
2
2++;
selectOutput8
:
true
entity.
==2
entity.=
(true)
normal(21,
21);
2=0;
selectOutput9
:
true
entity.
==2
369
.9.14
(true)
:
:
entity.=
normal(21,
21);
2=0;
exit
21
if (entity.==1)
enter18.take(entity);
else
enter19.take(entity);
sink
9.1.9.6. 2 1
2 1
2 1.
1. .
2.
X: 850, Y: 1040, : 250, : 220.
3. text :
2 1.
. 9.18. 2 1
370
4.
enter, delay exit. , . 9.18.
5. . 9.15.
9.15
:
:
:
:
:
:
enter18
enter19
delay
21
entity.
delay1
21
entity.
exit
1
if (entity.==1)
enter6.take(entity);
else enter7.take(entity);
9.1.9.7.
, .
5.
. 9.3.
. Enter.
6. .
7. T :
.
371
8. : .
9. () 720000.
10. Java , .
21=21/2;
12=12/1;
1=1.statsUtilization.mean();
1=1.statsUtilization.mean();
2=2.statsUtilization.mean();
2=2.statsUtilization.mean();
1=1.statsUtilization.mean();
1=1.statsUtilization.mean();
2=2.statsUtilization.mean();
2=2.statsUtilization.mean();
12=12.statsUtilization.mean();
12=12.statsUtilization.mean();
1=1+1+12;
1=1+1+12;
21=21.statsUtilization.mean();
21=21.statsUtilization.mean();
2=2+2+21;
2=2+2+21;
=(1+2)/2;
=(1+2)/2;
=(12+21)/(1+2);
=(+)/2;
9.1.10.
:
1. .
2.
: .
3. Simulation: Main.
4.
( ).
5. : 15657.
6. . : .
7. : 720000. 1000 GPSS
World. ,
720 (30- ).
372
. 9.19.
8. . , .
, . 9.19.
,
.
,
= 0,31 = 0,638. (0,481) = 0,795.
467,2 .
373
10.
10.1.
. 15 .
t = 12 .
.
. 0,95.
, .
10.2.
, , , . = 15
1
,
.
1
60
1
=
= = 5
. , t 12
, , .
.
:
P1
=
P0 , P2
=
1!
2
2!
P0=
, ..., Pn
n
n!
P0 , Pn +1
=
n +1
nn !
P0 , ...,
Pn + m
=
n+m
nm n!
P0 ,
n n +1 n + 2
n+m
P0 = 1 + + ... +
+
+ 2 + ... + m .
n ! nn ! n n !
n n!
1!
=
(). :
,
.
374
15
= = 3.
5
, P = P3 . :
1
3 32 33
33
P0 = 1 + + + = 0, 077, P3 =
P0 = 4,5 0, 077 = 0,346.
3!
1 2! 3!
0,34 (0,346), . , , P :
1
3 32 33 34 35 36
P0 = 1 + + + + + + = 0, 051,
1 2! 3! 4! 5! 6!
36
729
1
=1, 012 0, 051 =0, 052.
P6 = P0 =
6!
720 19, 412
P =
1 P =
1 0,052 0,95.
,
0,95.
10.3. AnyLogic
_.
1. // . .
2. _. ,
. .
3. _ . 10.1. Main, ,
. 10.1.
,
double, int:
,
4;
,
12;
, 3.
375
. 10.1.
10.1
source
Entity
exponential(1/)
true
selectOutput
delay.size()<
delay
exponential(1/)
sink
++;
=/;
=1-;
++;
376
, double:
;
;
;
.
AnyLogic- .
Simulation:Main.
, : . : 600000
( 10000). : ( )
( )
: 1055.
. ,
. 10.2.
. 10.2. AnyLogic7
377
;
T1
EQU 4 ;
T2
EQU 12 ;
Sotr STORAGE 3 ;
VrMod EQU
60 ;
;
GENERATE (Exponential(1053,0,T1));
GENERATE VrMod
TEST E TG1,1,Met4 ; TG1=1,
;
SAVEVALUE VerObr,(N$Met3/N$Met1);
SAVEVALUE VerOtk,(1-X$VerObr) ;
Met4 TERMINATE 1
START 10000 ;
378
(VEROTK) ,
, :
STORAGE CAP.REM.MIN.MAX. ENTRIES AVL. AVE.C. UTIL.
SOTR
3
2
0
3
98161
1
1.963 0.654
SAVEVALUE
RETRY
VALUE
VEROBR
0
0.654
VEROTK
0
0.346
,
.
.
, .
. ,
15 .
15 .
5 .
,
,
,
0,95, , ,
,
.
379
11. ANYLOGIC
GPSS World
[ ]. AnyLogic.
11.1.
1. 1 .
.
2. . , . 11.1.
3. . , . 11.1.
4. int.
: 29. .
5. GPSS-
(. . 1.3). double. : 1.
6. double.
7. sink : Java :
if( sink.in.count() == ){
= time();
stopSimulation();}
. 11.1.
380
( 29) .
,
, .
.
1.
.
2. : .
3. , .
4. .
(. 11.2). . 11.2.
. 11.2.
381
. 11.3.
5. Java
: data.reset();. : data.add(time()/);
6. ,
, .
7. (. 11.3). (. . 11.2).
8. . 11.3 , .
Main.
.
.
9. .
10. : . :
data. -: silver. :
crimson. .
11. . :
data.
.
12. text :.
382
13. text. ,
. : data.mean().
14.
. . , .
AnyLogic GPSS
World.
2916 . 11.4.
. 11.1.
. 24
. 11.1. ,
291,
10 .
,
, GPSS-
AnyLogic- : 1 =192,101 4 =
1,056 .
. 11.4.
383
11.1
GPSS World
AnyLogic6
AnyLogic7
1
29
29
29
1
1
1
, c
2
1,3
6,7
3589,688
3781,755
3789,765
789 192,101,
=
11 3589, 688 3781,=
=
12 3781, 789 3600
= 181, 789
2
291
291
291
10
10
10
, c
24
7
15
3596,113
3614,877
3616,752
21 =
3596,113 3614,877 =
20, 639, 22 =
3600 3614,877 =
10,877
3
2916
2916
2916
100
100
100
4 48 c
44 c
201,4
3603,039
3604,676
3604,718
31 =
3603, 089 3604, 718 =
1, 629, 32 =
3600 3604, 718 =
4, 718
4
29161
29161
29161
1000
1000
1000
40 48 c 11 17 1186,7
3604,526
3603,182
3603,470
41 =
3604,526 3603, 470 =
1, 056, 42 =
3600 3603, 470 =
3, 47
384
(3600) : 181,789 3,47
. ,
, .
.
, AnyLogic-,
, (.
. 11.2).
11.2.
2
GPSS World AnyLogic.
AnyLogic.
1. ___. ___ .
2. Main
.
3. int. : 9017. , .
4. GPSS- .
double. : 1000.
5. double.
6. Kontrol. sink :
Java :
if(.in.count() == main. ){
main.=time();
stopSimulation();}
.
1.
.
2. : .
385
3. : :
_____.
4. .
(. . 11.2).
. 11.2, .
16641.
5. Java.
6. :
data.reset();.
7. :
data.add( time()/ );
7. . .
8. (. . 11.3). (. . 11.2).
9. Main . .
.
10. .
11. : . :
data. -: silver. :
red. .
12. . :
data.
.
13. text :.
14. text. ,
. : data.mean().
15.
. . , .
.
AnyLogic.
. 11.5.
386
. 11.5.
. 11.2
GPSS World AnyLogic.
, 11 =
0,66 . , ,
, 11 .
12 =
42,903 . ,
480 ,
..
GPSS World
, AnyLogic7, 2 23 48 .
387
11.2
GPSS World
AnyLogic6
9017
9017
1000
1000
2 23 48 30 54 c
436,50
437,16
AnyLogic7
9017
1000
3046,4
437,097
11 =
436,500 437, 097 =
0,597, 12 =
480 437, 097 =
42,903
,
,
.
. ,
AnyLogic GPSS World
. ,
,
.
388
12.
1
n1 , n2
, L , n
. T1, T2, , Tn
.
. T1, T2, , Tn .
.
T1, T2, , Tn1 .
,
. ,
, . T1,
T2, , Tn2
. , ,
. T1, T2, , Tn2
.
. T1,
T2, , Tn1 .
,
.
.
T1, T2, , Tn2 .
. T1,
T2, , Tn2 .
.
, .
. L ,
N .
. .
= 0,1
= 0,95.
.
389
n1 , n2
, L , n
. T1, T2, , Tn
.
. T1, T2, , Tn .
.
T1, T2, , Tn1 .
,
. ,
, . T1,
T2, , Tn2
. , ,
. T1, T2, , Tn2
.
. T1,
T2, , Tn1 .
,
.
.
T1, T2, , Tn2 .
. T1,
T2, , Tn2 .
.
,
.
. ,
.
. .
.
.
390
n1 , n2
, L , n
. T1, T2, , Tn
.
. T1, T2, , Tn .
.
T1, T2, , Tn1 .
,
. ,
, . T1,
T2, , Tn2
. , ,
. T1, T2, , Tn2
T .
,
391
.
.
.
= 0,01 = 0,95.
.
4
n1 , n1 ,
. . .
T1, T2, , Tn1 . n1
.
n11, n12, ,
n1n .
T11, T12, , T1n .
q11, q12, , q1n %
.
.
, . .
n2 .
.
, n1
. Tc .
n3
.
. T .
q2 % .
,
. T
.
.
. T
. q4 % ,
.
.
392
.
,
.
.
.
= 1 = 0,95.
.
5
n1 , n1 ,
. . .
T1, T2, , Tn1 . n1
.
n11, n12, ,
n1n .
T11, T12, , T1n .
q11, q12, , q1n %
.
.
, . .
n2 .
.
, n1
. Tc .
n3
.
.
T .
q2 % .
,
. T
.
.
. T .
393
q4 % ,
.
.
.
N .
.
.
= 0,1 = 0,95.
.
6
n1 , n1 ,
. . .
T1, T2, , Tn1 . n1
.
n11, n12, ,
n1n .
T11, T12, , T1n .
q11, q12, , q1n %
.
.
, . .
n2 .
.
, n1
. Tc .
n3
.
. T .
q2 % .
q3 .
,
. T
.
394
. ,
,
. ,
,
.
. T .
q4 % ,
.
.
.
(42 ).
.
.
= 1 = 0,99.
.
7
()
n1 T1,
T2, , Tn1. n2
1, 2, , n2 (p1+p2+...+pn2 = 1)
S1, S2,... , Sn2 () .
. 1-
.
L1 ,
.
.
Q /.
n3 ,
k1, k2, , kn3 .
395
p1, p2, , pn3 (p1+p2++pn3 = 1).
V /.
,
, .
.
L2 .
.
T1 T2
. T1 T2
.
1-
,
. P
, ,
.
.
.
,
N
.
.
.
= 0,1 = 0,99.
.
8
()
n1 T1,
T2, , Tn1. n2
1, 2, , n2 (p1+p2+...+pn2 = 1)
S1, S2,... , Sn2 () .
.
L1 ,
396
. 1-
.
.
Q /.
n3 ,
k1, k2, , kn3 .
p1, p2, , pn3 (p1+p2++pn3 = 1).
V /.
,
, .
.
L2 .
.
T1 T2
. T1 T2
.
1-
,
. P
, ,
.
.
.
, ,
, Q V
T .
.
.
= 0,01 = 0,99.
.
397
()
n1 T1,
T2, , Tn1. n2
1, 2, , n2 (p1+p2+...+pn2 = 1)
S1, S2,... , Sn2 () .
.
L1 ,
. 1-
.
.
Q /.
n3 ,
k1, k2, , kn3 .
p1, p2, , pn3 (p1+p2++pn3 = 1).
V1, V2, , Vn3 /
.
1-
.
,
, ,
. L2
.
.
T1 T2
. T1 T2
.
1- ,
. P
, ,
.
.
398
.
,
, , Q V
.
.
.
= 0,01 = 0,95.
T .
.
10
()
n1 T1,
T2, , Tn1. n2
1, 2, , n2 (p1+p2+...+pn2 = 1)
S1, S2,... , Sn2 () .
.
L1 ,
. 1-
.
.
Q /.
n3 ,
k1, k2, , kn3 .
p1, p2, , pn3 (p1+p2++pn3 = 1).
V1, V2, , Vn3 /
.
1-
.
,
, , .
L21, L22, ,
L2n3 .
399
.
T1 T2
. T1 T2
.
1-
,
. P
, ,
.
.
.
,
, , Q V
.
. .
= 0,01
= 0,95. T
.
.
11
n1 () n2 (n21 +
n22 + + n2n2 = n2) n3 .
.
, ,
. ,
, .
n4.
n5 . T1, T2,
, Tn2 ,
, . T21,
T22, , T2n2
.
, , S1
.
400
S2 .
S31, S32, , S3n2
. S4
.
.
.
.
= 0,01
= 0,99.
,
.
12
n1 () n2 (n21 +
n22 + + n2n2 = n2) n3 .
.
, ,
. ,
, .
n4.
n5 . T1, T2,
, Tn2 ,
, . T21,
T22, , T2n2
.
, , S1
.
S2 .
S31, S32, , S3n2
. S4
.
. T
.
401
T .
= 0,01 = 0,99.
,
T
.
13
n1 () n2 (n21 +
n22 + + n2n2 = n2) n3 .
.
, ,
. ,
, .
n4.
n5 . T1, T2,
, Tn2 ,
, . T21,
T22, , T2n2
.
1, 2, , n2 n2
. ,
, .
,
S51, S52, , S5n2 .
, , S1
.
S2 .
S31, S32, , S3n2
. S4
.
. T
.
T .
402
= 0,01 = 0,99.
,
T
.
14
() n1
() (1), n2
(2) n3 .
T1/n1 .
i- p1i = 1/n1.
,
p2= n3/(n2+n3),
p3 = n2/(n2+n3).
, j-
p4j = 1/n2. t1
. t1
. ,
, p5. t2 .
T2/n2
. k-
p6k = 1/n2. ,
p7 = n3/(n1+n3),
p8 = n1/(n1+n3).
,
l- p9l = 1/n1.
t2 .
t3
. , ,
p10. t4 .
. ,
,
.
, t1
403
()
.
.
,
.
,
,
.
= 0,01
= 0,99.
15
() n1
() (1), n2
(2), n4 n3
.
T1/n1
. i-
p1i = 1/n1. ,
p2= n3/(n2+n3),
p3 = n2/(n2+n3).
, j-
p4j = 1/n2. t1
. t1
. ,
, p5. t2
.
T2/n2
. k-
p6k = 1/n2. ,
p7 = n3/(n1+n3),
p8 = n1/(n1+n3).
,
l- p9l = 1/n1.
t2 .
t3
404
. , ,
p10. t4 .
T3/n4
. k-
p11k = 1/n4.
, , .
p12k=1/(n1+n2).
t4 .
t5
. ,
, p13. t5 .
. ,
,
.
,
t1
()
.
.
,
.
,
,
.
= 0,01
= 0,99.
16
() n
() ,
.
. ,
().
405
. P1, P2, , Pn ,
. . . , .
11, T12,
, T1n.
, ,
,
. ,
.
.
.
. 1 , . 1 mk1 ,
1. 2
,
.
, ,
.
. T .
:
1 ,
;
1 ;
;
, ;
, .
406
.
.
= 0,01 = 0,99.
.
17
() n
() ,
.
. ,
().
. P1, P2, , Pn
,
. . . , .
11,
T12, , T1n.
, ,
,
. ,
.
.
.
. 1 , . 1 mk1 ,
1. 2
, .
, ,
407
.
.
:
N ;
1 ,
;
1 ;
;
, ;
, .
.
.
= 0,01 = 0,99.
.
18
() n
() ,
.
. ,
().
. P1, P2, , Pn ,
. . . , .
11, T12,
, T1n.
1
.
, .
.
, ,
408
,
. ,
.
.
.
. 1 , . 1 mk1 ,
1. 2
,
.
, ,
.
. T .
:
1 ,
;
1 ;
;
, ;
, .
.
.
= 0,01 = 0,99.
.
19
. .
409
,
. n1.
.
:
0,05
10
0,13
14
0,16
21
0,22
22
0,29
28
0,15
25
n
, 1, 2, , n .
1, 2, , n
. .
q1, q2, , qn % .
1, 2, , n.
q(n+1) % ,
1-q(n+1) %
, .
, .
.
,
.
.
.
.
= 0,01 = 0,95.
T .
.
410
20
. .
,
. n1.
.
:
0,05
10
0,13
14
0,16
21
0,22
22
0,29
28
0,15
25
n
, 1, 2, , n .
1, 2, , n
. .
q1, q2, , qn % .
1, 2, , n.
q(n+1) % ,
1-q(n+1) %
, .
, .
.
,
.
N
.
.
.
= 0,1 = 0, 99.
.
411
21
()
n 1, 2, , n
.
.
11, 21
31 .
n1, n2, , nn
.
n1 .
n2, , nn ,
.
.
n2 .
n3, n4, , nn ,
.
.
. nn
n- .
n- , ,
: 11, 12, 13
, 21, 22, 23 , , Tn1, Tn2, , Tnn
n- .
. ,
, .
q % .
.
.
.
.
= 0,01 = 0, 95.
.
412
22
()
n 1, 2, , n
.
.
11, 21
31 .
n1, n2, , nn
.
n1 .
n2, , nn , .
.
n2 .
n3, n4, , nn ,
.
.
. nn
n- .
n- , ,
: 11, 12, 13
, 21, 22, 23 , , Tn1, Tn2, , Tnn
n- .
. ,
, .
q % .
.
N
.
.
.
= 0,01 = 0, 95.
.
413
23
( . 4.1)
: , ,
, ,
,
. ()
2 3. 2
1 .
1.
:
;
;
;
;
;
() ;
414
. 12.1.
415
;
;
;
.
:
S
P = , S
S
, S ( );
T
t =
, T S
S ;
P = 1 P .
.
GPSS World.
1
Delphi ++. :
;
;
;
,
;
;
;
, GPSS
World;
;
,
,
, .
416
2
GPSS World
,
. 12.2.
1 . 2
. ,
.
.
3 , ,
, .
( ). -.
4
-.
5 - , 3.
6 . . 1, , - ( 7). 17
.
8 18 , 8,
18 , -. - , .
- 8 9,
18 19.
, .
- -
8 9. 9 - ,
1-.
417
. 12.2. (, 1)
418
. 12.2. (, 2)
419
9 : -
- 1- .
- ( 2 ).
9 10,
, . , -
11, - 1.
12 - 1, 13 () .
-
14, ,
, .
9. , -,
, - 1 1 . 15,
1-.
, -, 16, . 1 1214 .
18, 1-
1-
.
- 18 19, 1- 2 .
20 -, 21
2- .
2226 - .
22 - 2
.
23 ,
. ,
.
420
, - 24 25. , 2-.
2-. , - .
2- 2-. 26. 2- 2, - 22 2 .
2- 2-, 27,
2-, 28 1, 9.
29 . ,
.
, .
-,
, .
30 ,
.
. 1 2
.
, ,
,
.
3 4
AnyLogic
(. 12.1)
, . 12.2.
,
.
. 3 4
.
.
421
, , ,
.
,
70 %
. :
, - .
,
.
,
, .
,
, :
?
?
. [24]: ,
,
,
.
GPSS World AnyLogic
GPSS
World AnyLogic .
,
.
,
.
422
1. . .
GPSS World AnyLogic. 1 // . 6 (30).
2010. . 69-82.
2. . .
GPSS World AnyLogic. 2 // . 4 (34).
2011. . 50-62.
3. . .
- : .
. -2011 .: ,
2011.
4. . . GPSS World AnyLogic
- :
www.xjtek.ru, 2011.
5. . ., . .
: .
.
-2011 .: , 2011.
6. . ., . .
.
: . . .: , 2009.
7. . ., . . :
. , 2010.
8. . ., . ., . . : . .:
, 2011.
9. . . .
GPSS World: . . .: -, 2004.
10. . ., . ., . .
: .
.
-2007 .: , 2007.
11. . ., . .
: .
.
-2009 .: , 2009.
12. . ., . .
: .
.
-2009 .: , 2009.
13. . . AnyLogic
GPSS World. .ru, 2013, 436 . ISBN 978-5-9556-0146-5.
423
14. . ., . . . ,
- :
-2012.
.: , 2012. . 50-55.
15. . ., . ., . .
()
// 6
. ., 2011.
16. . ., . ., . . : .
www.xjtek.ru, 2011.
17. . . -
: . .
. -2005
.: , 2005.
18. . .
: . .
. -2005 .:
, 2005.
19. . ., ..
AnyLogic.
-2013 , 2013.
20. . . AnyLogic 7
GPSS World. .ru, 2013, 513 .
21. . .
:
: / .. - .: : , 2013. - 448 . ISBN 978-5-9558-0338-8
22. . . :
// . 4 (34). 2011. . 9-29.
23. ., . . .:
, -, 2004.
24. . ., . ., . .
- : .
, 2010, 7 (48).
25. . .
.: , 1978.
26. . GPSS. .:, 1980.
27. The AnyLogic Company anylogic.ru.
424
1
Source
Sink
Enter
.
,
.
, ,
,
.
/ -.
.
in1 in2 ( ),
.
.
(
) .
. , ,
.
, .
.
, .
,
.
Exit
Hold
Split
Combine
SelectOut
put
SelectOut
put5
Queue
Match
MoveTo
Restricted
AreaStart
Restricted
AreaEnd
425
Batch
Unbatch
Pickup
Dropoff
Assembler
Delay
-.
,
- . .
-.
.
, ( 5).
ResourcePool
Seize
Release
Service
ResourceTask
ResourceTaskStart
ResourceTaskEnd
ResourceSendTo
, .
.
.
, ,
.
,
, , .
,
( ).
,
(
).
() /
.
426
.
(
),
.
Conveyor
TimeMeasureStart
TimeMeasureStart
TimeMeasureEnd , , .
- .
TimeMeasureStart ,
,
.
TimeMeasureEnd
TimeMeasureEnd
,
TimeMeasureStart ,
.
RackSystem
,
( PalletRack), .
RackPick
(PalletRack) (RackSystem)
.
RackStore
(PalletRack) (RackSystem).
427
PML Settings
,
.
Wait
Queue : ( free(),
freeAll()).
( , ).
SelectOutputIn
SelectOutputOut
SelectOutput .
SelectOutputOut
SelectOutputIn
SelectOutput .
PlainTransfer
,
,
- .
428
(),
, :
- ,
, .
- , :
, ,
.
- -, .
- - -, .
- ,
, .
- ,
: , .
3D- ,
, ,
.
- ,
.
-
- .
-
: , , , , , , , . .
3D - : , ,
, , , , ..
, , .
429
. 2
430
. 2
431
3
AnyLogic:
;
;
;
;
;
;
;
;
.
432