Расчет зарплаты водителей в AnyLogic - PullRequest
0 голосов
/ 27 июня 2019

В Anylogic я пытаюсь рассчитать среднюю зарплату водителя на основе некоторой статистики, которая будет собрана во время выполнения модели. Я разобрался, как собрать необходимую статистику. Однако я хочу знать, как создать функцию, которая выдает результат следующего уравнения в конце симуляции.
Уравнение заработной платы: (коэффициент расстояния) (расстояние) + (коэффициент срабатывания) (количество срабатываний) + (коэффициент понижения) * (количество выбывших)

1 Ответ

0 голосов
/ 28 июня 2019

Сбор статистики по совокупности агентов

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

Agent Definition

Следуя документации , вы, вероятно, создали три статистических элемента в вашем составе драйверов:

Agent population statistics

Расчетfunction

Наконец, на ваш вопрос, простая функция, которая вызывает статистические элементы, чтобы получить значения и объединить их с факторами.Коэффициенты определяются как статические постоянные переменные в Main, а также как функция:

Function

double averageDistance = drivers.distance();
double averageNumberOfPickups = drivers.numberOfPickups();
double averageNumberOfDropoffs = drivers.numberOfDropoffs();

double salary =  distanceCoefficient * averageDistance 
                + pickupCoefficient * averageNumberOfPickups 
                + dropoffCoefficient * averageNumberOfDropoffs;

return salary;

Вы можете вызвать функцию, например, с помощью На уничтожить код Main или выполнить его по временному событию и так далее.Вы можете распечатать на консоль с traceln(calculateAverageSalary) или экспортировать в CSV, Excel или показать в вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...