乗客を乗せて目的地まで運ぶタクシーの NetLogo モデルがあります。タクシーの品種の私の現在の定義は次のとおりです。
taxis-own [
route ; List of destinations in order, each an x y pair
destin_x ; Coordinates of the taxis current destination
destin_y
trip_distance ; Distance of current trip in Netlogo cells = 100 meters
speed ; Travel speed in Netlogo cells = 100 meters per minute
time_left ; Time left in current trip until arrival
status ; Waiting ; Picking Up ; Psngr Boarding; En Route ; Psngr Alighting ; Dropping off
vmt ; Vehicle miles traveled
]
destin_xとdestin_yは、それぞれタクシーの現在の目的地の x 座標と y 座標です。
各タクシー内にルート、または各タクシーの目的地のリストを保存したいと思います。すなわち [[x1 y1],[x2 y2][x3 y3]...].
エージェントはこのようなリスト構造を所有できますか? エージェントのaskコマンド内でlputなどのリスト コマンドを使用できますか? この問題を解決する別の方法はありますか?
これまでのところ、これを行う試みはうまくいきません。下記参照:
to hail-taxi ;
let available-taxis taxis with [status = "waiting"] ; Create a set of available taxis
let hailing-psngrs psngrs with [status = "hailing"] ; Create list of hailing passengers
foreach sort-by [ [wait_time] of ?1 > [wait_time] of ?2] hailing-psngrs [
ask ? [
let free-taxi min-one-of available-taxis [distance myself] ; Find the closest available taxi
let picked-taxi free-taxi
if ( picked-taxi != nobody )[
set status "waiting"
create-link-with picked-taxi
ask picked-taxi [
set status "picking up"
set available-taxis taxis with [status = "waiting"] ; Revise set of available taxis
; NEXT LINE DOES NOT WORK
lput list ( [xcor] of myself [ycor] of myself ) route
]
]
]
]
終わり