Я пытаюсь разработать способ или алгоритм, чтобы мои агенты путешествовали по дороге, избегая при этом перемещения по «зданиям» с целью достижения района для еды и возвращения домой. Я закодировал здания и дороги, однако движение по дорогам оказалось трудным. Программа показывает город в сетке 8 x 8, дороги - это линии, здания - квадраты сетки. Я закодировал здания как барьеры. Я требую, чтобы агенты двигались по оптимальному пути к месту назначения. Это мой код:Путь к агентам в netlogo
to get-aid
ask humans
[
ifelse (energy >= 500)
[
ifelse (patch-here = origin)
[
set energy energy - 10
stop
]
[
face origin
avoid-barrier
forward 1
set energy energy - 20
]
]
[
face min-one-of centres with [aid > 0]
[distance myself]
avoid-barrier
forward 1
set energy energy - 20
]
]
end
to avoid-barrier
if (nobody != patch-ahead 1) and ([barrier?] of patch-ahead 1)
[
right 90 + random 180
right random 40
]
end
Что вы хотите сказать? –
andrew, расширяющийся на комментарий Сета: «Движение по дорогам оказывается трудным»: каким образом? Разве агенты не двигаются вообще? Они застревают в определенных точках? Они двигаются с дороги? Пройдя через здания? Происходит ли ошибка в конкретной строке? Постарайтесь предоставить достаточно информации, чтобы другие могли выяснить, с чем вам нужна помощь. (Имейте в виду, что у нас нет остальной части программы.) Это также помогло бы, если бы вы показали нам код, который не содержит ничего, что явно не имеет значения (энергия?), Что может даже помочь вам решить проблему самостоятельно. – Mars
Я установил белые пятна, чтобы быть дорогими, которые могут двигаться. Коричневые пятна - это здания, которые они не могут пройти, и действуют как барьеры. Моя проблема заключается в том, что я хочу, чтобы агенты достигли места назначения, используя оптимальный маршрут, следуя по дорогам, но не проходя через здания. Есть ли более простой способ кодировать движение по дорогам, избегая барьеров? Поскольку мой код видит, что агенты попадают в барьер, поверните направление в другом направлении, чтобы найти цель. – andrew