Черепахи просят go, чтобы определенные районы все собирались в одном месте - PullRequest
2 голосов
/ 16 апреля 2020

Я пишу модель «хищник-жертва», в которой у хищника есть небольшая внутренняя модель машинного обучения, чтобы решить, в какой среде он будет охотиться.

Если хищник не имел успешной охоты днем ​​ранее они назначают себя из четырех стратегий случайным образом. Каждая стратегия имеет уникальную среду обитания, в которой они могут охотиться, однако, несмотря на то, что все они перемещаются из случайных областей среды в центральное место, а затем «рисуют» с помощью режима пера и игнорируют все другие части среды, я не могу понять, почему ,

Я пробовал много комбинаций кода, чтобы исправить это, и он всегда делает то же самое. Моя последняя попытка состоит в следующем


    if strat = "strat1" [ifelse any? patches in-cone 0 250 with [habitat = "rugged slope"]
      [set target-patch min-one-of patches in-cone 0 250 with [habitat = "rugged slope"] [distance myself]
 face target-patch
  fd 1]
      [face one-of patches with [habitat = "rugged slope"]
        fd 1]]

    if strat = "strat2" [ifelse any? patches in-cone 0 250 with [habitat = "gentle slope"]
      [set target-patch min-one-of patches in-cone 0 250 with [habitat = "gentle slope"] [distance myself]
 face target-patch
  fd 1]
      [face one-of patches with [habitat = "gentle slope"]
        fd 1]]

    if strat = "strat3" [ifelse any? patches in-cone 0 250 with [habitat = "rugged forest"]
      [set target-patch min-one-of patches in-cone 0 250 with [habitat = "rugged forest"] [distance myself]
 face target-patch
  fd 1]
      [face one-of patches with [habitat = "rugged forest"]
        fd 1]]

        if strat = "strat4" [ifelse any? patches in-cone 0 250 with [habitat = "gentle forest"]
      [set target-patch min-one-of patches in-cone 0 250 with [habitat = "gentle forest"] [distance myself]
 face target-patch
  fd 1]
      [face one-of patches with [habitat = "gentle forest"]
        fd 1]]

  ]
end

Как вы можете видеть, им говорят go в определенных областях, но результат выглядит следующим образом (картинка прилагается)

Хищники покидают свои den (розовый), и, несмотря на наличие уникальных команд о том, где go, они просто встречаются посередине и рисуют. turtles painting the map

1 Ответ

3 голосов
/ 16 апреля 2020

Я думаю, что нам, возможно, потребуется увидеть больше вашего кода, чтобы увидеть, как распределены области. Но проблема может заключаться в том, что patches in-cone 0 250 будет смотреть только на патч, на котором сейчас находится хищник (в радиусе ноль). Таким образом, если (скажем) strat = "strat2" и хищник находится на патче с habitat = "gentle slope", целевым патчем будет патч, на котором находится хищник. Если среда обитания не «пологая», что, вероятно, является наиболее вероятным, ее путь будет довольно бесцельным, даже если поблизости будет определенная среда обитания с пологим склоном.

Надеюсь, это поможет, Чарльз

...