我是 Anylogic 的新手,我有這些代理:
- 客戶(引數:姓名、緯度、經度)
- 終端(引數:名稱、緯度、經度)
- 訂單(引數:客戶、終端)
- 卡車(狀態圖先移動到 order.terminal 然后到 order.customer)
對于每個不同的終端(我有 5 個),每位客戶都有不同的訂購率。因此,我(在客戶內)為每個終端的訂單率創建了五個計劃。現在我想在 Customer 中創建一個事件來創建訂單(每個終端一個事件)。我現在有這個名稱為 terminalA 的終端:
Order order = new Order(this, terminal.name("terminalA"));
Truck truck = getNearestAgentByRoute(filter(main.trucks,
v -> v.inState(Truck.Free)));
if (truck != null)
send(order, truck);
但是,部分terminal.name("terminalA")不起作用,因為它無法決議為變數。我如何為每個終端創建訂單并告訴 Anylogic 它應該為哪個終端(使用什么名稱)創建訂單?
在此先感謝您的幫助!
親切的問候,艾拉
uj5u.com熱心網友回復:
您不需要使用terminal.name("terminalA"),只要terminalA您將該特定代理命名為terminalA; 否則您需要通過索引訪問它們,例如main.terminals(0). Order 代理中的引數型別應設定為Terminal. 例如,下面我創建了一個帶有許多不同引數和變數的訂單代理,每個引數和變數都有一個自定義型別。

編輯。您還需要確保您的代理串列不為空:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/390177.html
