Как создать сеть дружбы между разными породами - PullRequest
0 голосов
/ 14 апреля 2020

Уважаемые специалисты NetLo go,

Пожалуйста, вы можете дать мне несколько советов? Это первая модель NetLo go, которую я собрал, и впервые я разместил запрос на этом форуме.

В настоящее время я адаптирую модель голосования Виленского из библиотеки NetLo go.

Мне интересно создавать две породы. Первыми являются агенты, которые являются частью «Эхо-камеры», вторая порода «не в Эхо-камере».

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
breed [ Echos Echo ]
breed [ NotEchos NotEcho ]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Как и в случае с моделью Виленского, я бы хотел, чтобы агенты основывали свое решение о голосовании на выборе восьми своих друзей. Я могу настроить сеть, в которой агенты «Эхо-камеры» дружат с «Эхо-камерой», а агенты «не в Эхо-камере» дружат с агентами «не в Эхо-камере». Я достиг этого адаптационного кода от JenB. Текущий код ниже.

Ограничением этого метода является то, что дружба не распространяется на пород.

В идеале я хотел бы получить код, который позволил бы мне выбрать из восьми друзей, которые имеют породу, и сколько из их собственной породы и сколько другой породы. Например, я хотел бы, чтобы у агентов в «Эхо-камере» было шесть друзей-агентов «Эхо-камеры» и двух друзей «не в Эхо-камере». Любая помощь приветствуется.

Большое спасибо за ваше время,

Пол

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to make-network
  ;; THE PURPOSE OF THIS IS TO CREATE A NETWORK WHERE EACH AGENT IN THE ECHO CHAMBER IS FRIENDS WITH
;; 8 OTHER AGENTS IN THE ECHO CHAMBER
  ask NotEchos
  [ let needed 8 - count my-links
    if needed > 0
    [ let NotEchoscandidates other NotEchos with [ count my-links < 8]
      create-links-with n-of min (list needed count NotEchoscandidates) NotEchoscandidates
      [ hide-link]
    ]
  ]

;; THE PURPOSE OF THIS IS TO CREATE A NETWORK WHERE EACH AGENT NOT IN THE ECHO CHAMBER IS FRIENDS WITH
;; 8 OTHER AGENTS NOT IN THE ECHO CHAMBER
    ask Echos
  [ let needed 8 - count my-links
    if needed > 0
    [ let Echoscandidates other Echos with [ count my-links < 8]
      create-links-with n-of min (list needed count Echoscandidates) Echoscandidates
      [ hide-link]
    ]
  ]

  ;; THE PURPOSE OF THESE IS TO CREATE MEASURES TO VALIDATE AND QUALITY ASSURE THE ABM

  ask NotEchos [ set num_NotEchos_friends count my-links ]
  ask NotEchos [ set total_NotEchos_vote (sum [vote] of link-neighbors) ]

  ask Echos [ set num_Echos_friends count my-links ]
  ask Echos [ set total_Echos_Vote (sum [vote] of link-neighbors) ]



  ask Echos [show total_Echos_vote]
ask NotEchos [show total_NotEchos_vote]
End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

1 Ответ

1 голос
/ 14 апреля 2020

У вас есть ссылки NotEcho на NotEcho, Echo на Echo и Echo на NotEcho, и вам понадобятся отдельные конструкции для каждой из них. Пока вы ограничиваете своих кандидатов до правильной породы, но вы не скорректировали свои показатели того, есть ли у них еще свободные слоты. Вам нужно что-то вроде (не проверено):

ask NotEchos
  [ let needed 6 - count my-link-neighbors with [breed = NotEchos]
    if needed > 0
    [ let NotEchoscandidates other NotEchos with [ count my-neighbors with [breed = NotEchos] < 6]
      create-links-with n-of min (list needed count NotEchoscandidates) NotEchoscandidates
      [ hide-link]
    ]
  ]

Обратите внимание, что я переключился на my-link-neighbors вместо my-links, потому что у черепах в конце есть порода, а не ссылки. Я также изменил 8 на 6, потому что вы хотите 6 из той же породы.

Кроме того, вам нужно будет подумать о том, сколько у каждой породы у вас есть, чтобы все числа вышли и их было достаточно, чтобы сделать ссылки.

Наконец, Echo и NotEcho действительно разные черепахи? Подумайте о двух разных группах мнений A и B. Разговор с A, скорее всего, будет отражать сходные чувства, и B также говорить с B, но A и B, говорящие друг с другом, не повторяют. В вашей модели, что вы имеете в виду, когда NotEcho связан с NotEcho. Возможно, вам действительно нужны две группы мнений, имеющие преимущественную привязанность к одной и той же группе, и затем, являются ли они одинаковыми или разными на каждом конце, является функцией связи (отношения), а не черепахи.

...