Search code examples
randomparameterssimulationanylogic

Define agent with parameter (%) and delay time in main is based of it. (Anylogic)


I have a simple model which has a separate Agent called 'Passenger'. Inside the Passenger I have a parameters called 'WITH_CHILDREN' which it's default value is randomTrue(0.5).

In my main process, I would like the Passenger that results TRUE for 'WITH_CHILDREN' to take longer at a specific delay process.

I thought it would be something like (inside the on enter action of the delay):

if(passenger.WITH_CHILDREN == true){

    delayTime = triangular(1,5,15);
else{
    delayTime = triangular(0,1,1.5);
}

However there are many errors with this :( I would like to link it from the Agent as oppose to setting the percentage in the delay as I have future percentages parameters that will be used on other delays.... If that makes sense.


Solution

  • You can define this directly in the delay time of the delay block using the following code:

    agent.WITH_CHILDREN ?  triangular(1,5,15) : triangular(0,1,1.5)
    

    And because an image is better than 1000 words (I made a mistake in the image... it's agent. not passenger. delay time magic

    when you use delayTime in the actions, it's only a readable variable, you can't change it.

    And learn about the ? and : operators in java in here: http://www.cafeaulait.org/course/week2/43.html