Разделение ошибки влияния соседства на расширение сети на ноль после ввода черепах каждые 10 тиков - PullRequest
0 голосов
/ 18 января 2019

У меня есть модель с сетью преференциальных вложений, связывающей одну породу агентов. Они должны влиять друг на друга, основываясь на одной собственности, которой они [доверяют?], И на своих соседях. Таким образом, если больше соседей имеют [доверие? = true], они также должны принять это свойство. Код влияния установлен как таковой и работает в обычном режиме:

to influence

  ; defines sexworkers-trust as the link to trusting sexworkers     
  let sexworkers-trust link-neighbors with [ trust? = true ]

  ; defines total-neighbors as the total link to neighbors    
  let total-neighbors link-neighbors

  ; if mistrusting sex workers are surrounded by more trusting neighbors, they are influenced and start trusting  

  if not trust? and random-float 1.0 <   (neighbors-influence * (count sexworkers-trust / count total-neighbors ) ) [
    set trust? true
    set color green   ]

end

На данный момент у меня также есть дополнительная опция, в которой (если установлено «вкл.») Определенное количество секс-работников входит в мир каждые 10 тиков. Они также добавляются в сеть. Теперь, как только эта опция ввода включена, симуляция через некоторое время останавливается с сообщением об ошибке «деление на ноль». Здесь ниже мой код ввода, может быть, там есть ошибка?

to enter

  ; creates 5 sex workers, randomly trusting/mistrusting  

  create-sexworkers 5 [

    setxy random-xcor random-ycor
    set trust? one-of [ true false ]
    if trust? = TRUE [ set color green ]
    if trust? = FALSE [ set color red ]
    set birth-tick ticks   ]

  ; asks trusting sex workers to create a link to one of the other trusting sex workers
  ask sexworkers with [ trust? = true ]
  [ create-link-with one-of other sexworkers with [ trust? = true ] ]

end

Кроме того, нормально доверять? = true должно указываться секс-работниками, становящимися зелеными, но почему-то код ввода также делает это неправильно, они, кажется, не имеют соответствующих цветов в своих свойствах. Возможно, мне придется разделить это на два вопроса, но я думаю, что это связано с процессом ввода, который, в свою очередь, приводит к сбою процесса влияния.

Большое спасибо!

1 Ответ

0 голосов
/ 19 января 2019

У вас есть проблемы с заказом. Если у узла нет link-neighbors, то общее число соседей набора ссылок будет пустым, и ваш расчет доверительной пропорции сгенерирует ошибку деления на ноль.

Здесь недостаточно кода, чтобы дать вам полный ответ. Но я думаю, что у вас есть только доверяющие секс-работники, создающие ссылки на других доверяющих секс-работников, поэтому у не доверяющих нет ссылок и, следовательно, нет соседей по ссылкам.

...