.


:




:

































 

 

 

 





, . , , . . 15.4 Model, world. . 7.12 7. : . , , , . . , , . , .


. 15.3. , . , function i-ro Model (. 15.4), :

agent.item(i).function(...);

Model , , :

for(int i=0; i < agent.size (); i++){

Agent a = agent. item(i),-

// - }

world, world . owner:

Model owner = (Model)getOwner();

i-ro world :

owner.agent.item(i).function(...);

, , :

((Model)getOwner()).agent.item(i);

. , , , . 15.4, Model , MiddieAge, . . . 15.2. :

Model m = (Model(getOwner();

MiddieAge :

.++;

:

.--;

Agent, , , , . : , , , .


15.6.

. , "" . Agent Agent :

Agent other;

. , , , . , . 15.4, Model:

Model m = (Model)getOwner();

i i-o agent:

other = m.agent.item(i);

, , :

do

other = m.agent.random(); while(other == this);

, other , :

other.function();

.

other.port. receive (...);

. .

, , . . Agent , vx, vy, . , agent ( Agent), Environment. , (. 15.5).


width height:

= uniform(width);

= uniform(height);

vx, vy:

+= vx;

+= vy;

□ Environment :

double distance) Agent a, Agent ) { double dx = a.x - b.x; double dy = . - b.y return sqrt(dx*dx + dy*dy);

}

- r:

Environment env = (Environment)getOwner(); for(int i=0; i<env.agent.size(); i++)

if(env.distance(this, env.agent.item(i)) < R)

// - ...

, (. 15.6).


Environment. , , . Java 7, vector.

vector . cell

Vector.

□ :

cell.size();

F

□ agentA cell:

cell.add(agentA);

□ agentA cell:

cell.remove(agentA);

□ i- :

(Agent)cell.get(i);

. Java , object. get object. , , . . Agent, , .

- cells nxm ( Agent), :

cells = new Vector[n][m]; fort int r=0; r<n; r++)


for(int c=0; c<m; C++)

cells[r][c] = new Vector();

Agent cells:

Vector[][] cells = ((Environment)getOwner()).cells;

, . r, , , .

□ :

= uniform_discr(0,-1); = uniform_discr(0,m-l); cells[][].add(this);

□ 1 , :

cells[][++].remove(this); cells[][].add(this);

□ :

int N = cells[r+1] [].size ();

□ r, c:

int k = uniform_discr(0,cells[r][].size()-1); // Agent a = (Agent)cells[r][].get();

get vector, , . . object Agent, .

, , , . , , (. 15.7).

agent, Agent (. 15.7). ( ) Environment, locations. , .. location[i] i- "", . "" , Environment , , 25 : Vector [ ] locations = new Vector[25];


:

for(int i=0; i<25; i++)

locations[i] = new Vector();

, , , , "". -, . env: Environment env = ((Environment)getOwner());

env. locations. location vector (. 15.7). , .

□ "" :

int k = unifrom_discr(0, locations.length-1) location = env.locations[ ]; location.add(this);

□ "":

location.remove(this);

□ "", :

int N = location.size();

□ "", :

int k = unifrom_discr(0, locationo.length-1) Agent a = (Agent)location.get();

get vector, object Agent.


15.8. :

(contagious Ants) , . - , "" . , : , . , , .

, , . , .

Model Examples\Part IV. . . 15.8.

, . . , .

. . . , , . . , , . . , . ( ) , , , . () , .


. (Ant), Model, , -. ants ( Ant). numAnts , . 0 maxX, Y 0 maxY,

maxVelocity. maxX, maxY maxVelocity . .

Ant ()

: , , .


, . main , health : (. 15.9).

. . , vx, vy , obsticie , . m , .

, X Y, , . , vx, vy , Ant , . , , 0 mX maxY . , , : uniform) -maxVelocity, maxVelocity)

obsticie () Ant , . , null . , .


m Model, . . null, :

m = (Model)getOwner();

Ant v, . .

. maxvelocity, maxX maxY Ant . turnAngle , , , . stopTime , . , , Ant (. . ).

doctor trace Ant, . , true , . randomTrue(p), true . doctor trace :

randomTrue(0.1) randomTrue(0.03)

, 10 % 3 % .

. main (. 15.10). : going stop. , , , .

, . border, Border .


border Ant. , stop ().

border AnyLogic, going "" . setModified () . Model. .

going stop , . (obsticle). : , ( health "cure"). , ( health "afflict").

stop , stopTime, . turnAngle, . .

health (. 15.11), , ok bad.


, ( ), "" ("afflict") .

, , , "" ("cure") .

ok m.numOk++, , . , m Model, . m.numOk--. bad .

Model

Model , numAfflicted, . , . , ok bad . ( Ant) stepTimer. :

- numAnts ;

- maxX, maxY, maxVelocity, turnAngle stopTime , Ant, Model,

Model;


- visionAngle , , ;

- step , Ant .

Model , mX maxY 600. , 600x600, 0 600.

, , ants. , , , , . .

doctor trace Ant

randomTrue(0.03) randomTrue (0.1) .

Model ants. ants . , . , ants (maxX, maxY, maxvelocity, turnAngle stopTime), Ant, Model, Model, Ant.

stepTimer step update, Model. "" , , . . . . , - . checkobsticle, . , obsticle , , ( setModified ).

update , , - ( obsticle null). , (vx, vy), , ( setModified). , ,


step. , . .

. , ( ) ( ). , . :

doctor? Color.black: health.isStateActive(health.ok)? Color.blue: Color.red

, (color.black), doctor ( , ). , (color.blue), health ok (. . ). , , .

( obsticle!= null), ( obsticle). , , 0.3 Math, sin (getTime() * 2) * 0.3

. ( ), , . . obsticie . , , , . , , .

(, trace true) . , ( -) , trace, . . , trace . path. ,


, , Ant, , :

if(' trace && obsticle == null) {

path.setPoint(0, x, );

for(int i=path.getPoints()-1; i>=l; i--)

path.setPoint(i, path.getPointX(i-l), path.getPointY(i-1)); } .

, , . ( , ), ( , -), ( , , , ) .



16






:


: 2018-10-15; !; : 452 |


:

:

: , .
==> ...

1845 - | 1444 -


© 2015-2024 lektsii.org - -

: 0.082 .