在 AnyLogic 中计算司机工资

calculating drivers salary in AnyLogic

在 Anylogic 中,我试图根据模型 run-time 期间收集的一些统计数据来计算平均 driver 工资。我已经弄清楚如何收集所需的统计信息。 但是我想知道如何创建一个函数,在模拟结束时给出以下等式的输出。
薪资方程为:(距离系数)(距离)+(接机系数)(接机次数)+(离职系数)*(离职人数)

收集有关代理人数的统计数据

我假设您在变量中的每个代理中为每个 driver 代理收集三个值:

documentation 之后,您可能在 driver 的群体中创建了三个统计元素:

计算函数

最后是你的问题,一个简单的函数调用统计元素来检索值并将其与因子组合。这些因素在 Main 中定义为静态常量变量,以及函数:

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

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

return salary;

可以通过Main的On destroy代码触发函数,或者通过定时事件等方式执行。您可以使用 traceln(calculateAverageSalary) 打印到控制台或导出为 CSV,Excel 或在您的模型中显示。