Mac Sierra의 NetLogo (5.3.1)에서 용량 제약 조건과 우선 순위를 모델링하려고합니다. 제한된 수의 거북이 (예 : n
)에게 특정 일을하고 그 거북이를 선택하여 (1) 특정 조건을 충족시키고 (2) 최대 값이 my-variable
인 n
거북이가되도록 선택합니다.NetLogo : 변수의 값으로 순위가 정해진 제한된 수의 거북이를 묻기
let subset-of-turtles turtles with [ condition-variable = some-value ]
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
을하지만 여러 문제가 있습니다 :
나는이 작업을 수행하려합니다. 어떠한 거북이[ condition-variable = some-value ]
한다는 조건을 만족하지 않는 경우
우선, NetLogo 오류 만 0 에이전트들의 세트로부터 임의의 제 N 신청
을 던진다.
은 내가 ask
명령 앞에 줄을 삽입하여 해결을 시도 :
let subset-of-turtles turtles with [ condition-variable = some-value ]
if subset-of-turtles != nobody [
ask max-n-of n subset-of-turtles [ my-variable ] [< do something >]
]
그러나 그것은 작동하지 않습니다
observer> show turtles with [ condition-variable = some-value ]
observer: (agentset, 0 turtles)
observer> let subset-of-turtles turtles with [ condition-variable = some-value ] show subset-of-turtles != nobody
observer: true
NetLogo 빈 agentset 여전히 agentset 것을 고려, 그래서 nobody
과 다른 시험에 합격합니다.
두 번째로 조건을 충족시키는 거북이가 있더라도 NetLogo는 n
보다 작 으면 같은 오류를 발생시킵니다. 내 모델은 용량이 처음부터 충분해야한다는 제약 조건을 충족시키는 성장 모델입니다. 따라서이 작업은 모델을 실행할 때마다 발생합니다.
나는 블록의 명령을 최대 n
번 실행하기를 NetLogo에 원합니다. 1. 경우, 모든 m
거북 에서 명령을 실행 my-variable
최고 값으로 n
거북의 명령을 실행하는 조건을 만족 m
거북있다하자. 아무도 조언 할 수 있습니까?
감사합니다. Jen. 지금 시도해 보겠습니다. :-) – AlbertoCottica
아 물론. 이것은 더 좋은 방법입니다, 감사합니다 Jen. –