2015-01-29 2 views
1

승객을 데려다 목적지로 가져가는 NetLogo 택시 모델이 있습니다.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_xdestin_y는 X이며, y는 택시의 현재 대상의 각각 좌표를 다음과 같이 택시 품종의 나의 현재 정의입니다.

각 택시 내 노선 또는 각 택시의 목적지 목록을 저장하고 싶습니다. 나는. [[x1 y1], [x2 y2] [x3 y3] ...].

에이전트는 다음과 같은 목록 구조를 소유 할 수 있습니까? 입문과 같은 목록 명령을 내에서 사용할 수 있습니까? 상담원에게 명령 하시겠습니까? 이 문제를 해결할 대안이 있습니까?

지금까지 시도한 것이 아닙니다. 아래를 참조

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 
     ] 
    ] 
    ] 
] 

최종

답변

2

는 에이전트가 이와 같은 목록 구조를 소유 할 수 있습니까?

예.

에이전트의 ask 명령에서 lput과 같은 목록 명령을 사용할 수 있습니까?

예.

; NEXT LINE DOES NOT WORK 
lput list ([xcor] of myself [ycor] of myself) route 

대해 어떻게 :

set route lput [ list xcor ycor ] of myself route 

난 당신이 list의 괄호의 배치에 의해 혼란 조금되었을 수 있습니다 생각합니다. 일반적으로 전체 표현을 사용합니다 (예 : (list a b c d)). 이 경우 인수가 두 개인 경우 괄호가 필요하지 않습니다.

+0

또한'lput' 전에'set route ...'가 누락 되었습니까? –

+0

네, 그렇습니다. 편집 됨. –

+0

감사합니다. 내 문제는 @SethTisue가 지적한 것처럼'lput' 전에 놓친'set route '였다. –

관련 문제