. . , , , , . , () , .
. pick random household pick random enterprise . . ( Housing) / ( Business) .
19
, AnyLogic, , . , . , , .
. , . , .
n , . , . , , , . , , - , . . , , , , .
. , . , , , , - , : .
|
|
, , 0-, , , . . , , , . -, , , -, , , . .
, . 0 , . , . 0- : , .
. , , . [EWD840], , 0 n, . () . , , , :
1. . 1; 1. , , .
0, .
2. 0 , 0 n-1. i , . , i-1.
3. , . . , , . , . , , .
4. 0 , , . 0, , , . :
|
|
0 ;
;
0 0.
, 0 .
. , , , . . .
DistributedTermination1. : , Machine, , channel, Model. channel N .
. (. 19.1) 18 , .
, , . . , . i k , (i, k) . .
: , . , . (Get Help interval) . . n Model. , , , .
Message
, , , , . , , .
Message source destination.
Machine : ( ) basecolor ( : ). : owner, , I, r , . , Machine . , owner.
Machine main, (. 19.2).
, working, , idle. , .
|
|
processingTime ( t). Message. port. ( I). . , ( t1). , ( t2). 1, 1 .
- ( t3). getHelpTimeout . 1 . , , , t3 working.
Machine , (processingTime) (getHelpTimeout). . , , ( t3) ( t1 t2). working, idle messages Model, owner, Main.
(Channel)
channel , Message, . . , , , channelDelay. , , . . . , , destination . false.
(Model)
N . . , , , , . . exponential () , .
, ( ), .
|
|
, baseCoior main . Main . I . angle(i), , , i- X (, 0- Y, . . 90 ). .
Model , . n*n , ,k) , 1- k-. beginX, beginY, endX, endY, -
, i- -:
double beginX(int i) {
return (R-40)*Math.cos(angle(i/N)); } double beginY (int i) {
return (R-40)*Math.sin(angle(i/N)); } double endX(int ) {
return (R-40)*Math.cos(angle(k%N)); }
double endY(int ) {
return (R-40)*Math.sin(angle(k%N)); }
angle index:
Math.PI/2 + (2*Math.PI/N) * index
, i- k- . onWay n*n, 0, , i- k- ( t3 main Machine, . 19.2), onway 1. Machine, onway 1. i true, onway 0.