0

在 Anylogic 中,我试图根据模型运行时收集的一些统计数据来计算平均司机工资。我已经弄清楚如何收集所需的统计数据。但是我想知道如何创建一个函数,在模拟结束时给出以下方程的输出。
工资方程为:(距离系数)(距离)+(上车系数)(上车次数)+(下车系数)*(下车次数)

4

1 回答 1

0

收集代理人口统计数据

我假设您在一个变量中为每个代理中的每个驱动程序代理收集三个值:

代理定义

按照文档,您可能在您的驱动程序群体中创建了三个统计元素:

代理人口统计

计算功能

最后是您的问题,一个简单的函数调用统计元素来检索值并将其与因子结合。这些因子在 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 或显示在您的模型中。

于 2019-06-28T07:45:50.530 回答