Carey Caginalp
Carey Caginalp

Reputation: 3

Making undirected links from an agent to an agentset

I am trying to create links from agents (in my case, towers) with a certain property to other towers with another set of properties. Only some of them should be linked, yet when I ask the observer, it says they all seem to have that link.

 to setup-links
  print count towers with [ any? tower-communications ]
  ask towers with [ heading = 0 ] [                        ; first consider the communications between different areas
    create-tower-communications-with other towers with [ heading = 0 ]          ; between two towers that are still standing
    in-radius tower-communication-radius                   ; and link towers to each other if they are close enough
    with [ heading = 0 ]                                   
    [set color green]
end
  print count( tower-communications with [ color = green ])
  print count( towers with [ any? tower-communications ])

The first print statement gives as expected, the number of links between these pairs. The second should print out the number of towers that have a link between them, but it gives me the full number of towers in the system instead. What is going wrong? I only want the set of agents that have tower-communications with at least one other agent.

Upvotes: 0

Views: 84

Answers (1)

JenB
JenB

Reputation: 17678

I think the problem is the way you are counting the turtles with links, not the way you are creating the links. Here is a full example (note that I took out the second with [heading = 0].

globals [tower-communication-radius]

to setup
  clear-all
  create-turtles 25
  [ setxy random-xcor random-ycor
    set heading 0
  ]
  set tower-communication-radius 5
  setup-links
end  

to setup-links
  print count turtles with [ any? links ]
  ask turtles with [ heading = 0 ]
  [ create-links-with other turtles with [ heading = 0 ]
    in-radius tower-communication-radius
    [set color green]
  ]

  print count turtles
  print count turtles with [ any? links ]
  print count turtles with [ any? my-links ]
end

Your count is print count turtles with [ any? links ]. However, the test you are asking is whether there are any links in the model, not whether there are any links attached to the turtle (or tower). You need my-links or link-neighbors to apply to the specific turtle.

Upvotes: 1

Related Questions