Как использовать индивидуальное условие в симуляции на основе агента AnyLogic - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь смоделировать клиента с помощью агентов.На диаграмме состояний, которую я построил, я хотел бы применить к каждому отдельному агенту время ожидания, проведенное в системе, путем определения различных переменных:

WatingTimeStart, WaitingTimeEnd и WaitingTime

, чтобы назначить ожиданиеДля каждого агента я использую следующую команду при переходе до состояния, в котором я хотел бы применить условие:

this.WaitingTimeStart=time();

В следующем состоянии я затем использую следующее:

this.WaitingTimeEnd=time();
this.WaitingTime=this.WaitingTimeEnd-this.WaitingTimeStart;

После следующего перехода с условием (TolerarableWaitingTime - это предопределенная переменная)

this.WaitingTime>TolerarableWaitingTime;

Моя проблема: переход не принимает условие и не обрабатывает агентов до следующего состояния.

Возможно, я ошибаюсь в:

  • передаче переменной WaitingTime каждому агенту
  • , применяя условие правильно

Спасибомного для любых мыслей.

Бастиан

1 Ответ

0 голосов
/ 27 мая 2018

Было трудно понять ваш вопрос, но здесь он идет: во-первых, вам не нужно использовать «это», вы можете просто сделать это при переходе, предшествующем рассматриваемому состоянию:

WaitingTimeStart=time();

также условно ваши переменные должны начинаться с буквы нижнего регистра, поэтому она должна быть waitingTimeStart.

Но вам на самом деле даже не нужен этот код, и вы слишком усложняете себя ... если хотитечтобы применить время ожидания (или задержку), вам не нужен условный переход, вы можете просто использовать вместо него переход по тайм-ауту, где время ожидания равно TolerarableWaitingTime

statechart timeout transition

...