위대한 질문입니다.
첫째, 구체적인 답변 : 하나 개의 조건보다는 이상에 해당하면
이 한 행동보다 더 많은 일을 할 수있는 하나 명의 틱 에이전트에 의미 하는가?
이 상황에 대해 이야기하고 있습니까? 그렇다면 xcor > 5
, ycor > 7
및 color = red
모두에 해당하는 경우
to go
ask turtles [ move ]
tick
end
to move
if xcor > 5 [ fd 1 ]
if ycor > 7 [ rt 15 ]
if color = red [ bk 2 ]
end
, 다음 네, 거북이는 바로 15 차례, 앞으로 1을 이동하고, 2 뒤로이를 방지 할 수있는 주요 방법을 이동하는 것은을 사용하는 것입니다 ifelse
S 시퀀스는 :
to move
ifelse xcor > 5 [
fd 1
] [
ifelse ycor > 7 [
rt 15
] [
if color = red [ bk 2 ]
]
]
end
이렇게, 두 번째 조건 (ycor > 7
)의 첫 번째 조건 (xcor > 5
)이 거짓 인 경우에보고한다. 마찬가지로 세 번째 조건은 첫 번째 두 조건이 실패한 경우에만 보입니다.
나는 에이전트가 거리를 찾을 수 있어야 목표로하고 대상 에이전트에 직면 한 후 이동해야하고 목표에 도달 할 때까지 1 전략 중, 그것이 걸릴 N 완료 틱한다는 의미 않는 기능이?
완료하려면 n
진드기를 사용하는 것이 좋습니다. 그렇지 않으면 한 번에 하나의 거북이 만 대상으로 이동합니다! 그러나 repeat n [ fd 1 ]
은 거북이를 앞으로 모두 n
으로 만들 것입니다. 사실 fd n
과 같습니다. repeat
블록은 거북이 완료되기 전에 move
절차를 수행하면서 완료됩니다. 그런 다음
to move [t]
face t
fd 1
end
단지 (예를 들어, distance t < 1
)와 거북이가 목표에 도달 할 때 찾을 수있는 조건을 가지고 n
틱을 그것을 얻기 위해 다음과 같이
당신은 당신의 move
기능을 편집 할 수 있습니다 그에 따라 뭔가를하십시오.
여러 가지 거북이를 사용하여 이러한 다양한 기법을 사용하여 차이점을 느낄 수 있도록 권장합니다.
예를 들어 모든 에이전트가 동일한 대상이 아닌지 확인하는 방법을 잘 모르겠습니다!
이것은 상황에 따라 약간 다릅니다. 각 거북이의 목표를 저장 target
라는 turtles-own
변수가 가정하면, 당신이 뭔가를 할 수 있습니다 :
to-report get-available-target [ possible-targets ]
report one-of possible-targets with [ not any? turtles with [ target = myself ] ]
end
get-available-target
누구의 대상 아니다 possible-targets
에서 임의의 에이전트를보고합니다. one-of
은 에이전트 세트에서 임의의 에이전트를 가져옵니다.
netlogo에서 작업을 예약하려면 어떻게해야합니까? 조건과 동작이 있지만 어떻게 에이전트를 한 번에 하나의 작업으로 만들 수 있습니까?
종종 이것은 단지 처리됩니다. 예를 들어, 상담원이 배가 고프다면 식량 공급소로 걸어 가서 먹어야한다. 걷는 동안, 당신은 그것이 벗어나서 무엇이든하는 것을 원하지 않습니다. 그러나 여전히 배가 고파우므로 ifelse
을 사용했다면 식량 공급을 계속할 것입니다. 따라서 상담원은 무료로 집중됩니다! 일반적으로 상담원이 해결할 때까지 유효한 상태로 설계하는 것이 가장 좋습니다. ifelse
연쇄물이나 비슷한 행동으로 일반적인 주문 우선 순위를 정할 수 있습니다 (예 : 식량 공급원에게 걸어 다니는 요원이 육식 동물에게 위협을 받으면 도망 가야 함).
실제로 에이전트가 여러 틱에 대해 작업을 수행하려는 경우 기본적으로이 아이디어를 확장 할뿐 아니라보다 인공적인 방식으로 확장합니다. 예를 들어 상담원이 앞으로 3 번 앞으로 이동해야하는 경우 turtles-own
변수를 3으로 설정합니다. 해당 변수가 0보다 큰 경우 에이전트는 앞으로 이동하여 해당 변수를 줄이고 다른 작업은 수행하지 않습니다.
덕분에 ALOT, 정말 감사합니다 조건이 충족되고 작업이 선택된 경우, 내 이동 기능에 N을 포함하는 이유가 있는지 확인하는 것입니다 데 도움이, 나는 에이전트에 작업을 완료 있는지 확인하려면 다른 하나를 시작하기 전에 손을 잡아야하지만 한꺼번에 몇 가지 틱을 받아야합니다. netlogo에서 작업을 예약하려면 어떻게해야합니까? 조건과 동작이 있지만 어떻게 에이전트를 한 번에 할 수 있습니까? –
괜찮습니다! 도와 줄 수있어서 기뻐. 나는 내 게시물을 편집하여 후속 질문에 답변했습니다. –