Print

Print


Thanks, Sean.  I followed Joey's guidance and got the code working.

Russ


On 7/17/12 4:12 PM, "Sean Luke" <[log in to unmask]> wrote:

> Joey is correct.  The issue is that the adjacency matrix does not make new
> edges -- the edges it's constructed of are the same edges that are owned by
> (in your case) softRestartSocialNetwork.  You're trying to also use them in
> consumerSocialNetwork, which is a no-no.  And Joey is right that you can just
> use the copy-constructor.
> 
> Sean
> 
> On Jul 17, 2012, at 3:06 PM, Joey Harrison wrote:
> 
>> Hey Russell,
>> 
>> I just took a look at the MASON code and I think I know what's happening.
>> First, note the following from Edge.java:
>> 
>>     // to prevent edges from breaking fields by being stored in two different
>> fields.
>>     // if null, then no owner -- the Edge is free to be added to a field.
>>     Network owner;
>> 
>> Then, in Network.addEdge(final Edge edge):
>> 
>>         if (edge.owner!=null)
>>             throw new RuntimeException("Attempted to add an Edge already
>> added elsewhere");
>> 
>> When you created the network the first time, each of your edge's had their
>> owner variable set. You can't really reuse edges like that, but I think you
>> can use the copy constructor like so:
>> 
>> consumerSocialNetwork.addEdge(new Edge(e[i][j]));
>> 
>> Good luck,
>> Joey
>> 
>> On Tue, Jul 17, 2012 at 3:02 PM, Joey Harrison <[log in to unmask]>
>> wrote:
>> Hey Russell,
>> 
>> I just took a look at the MASON code and I think I know what's happening.
>> First, note the following from Edge.java:
>> 
>>     // to prevent edges from breaking fields by being stored in two different
>> fields.
>>     // if null, then no owner -- the Edge is free to be added to a field.
>>     Network owner;
>> 
>> Then, in Network.addEdge(final Edge edge):
>> 
>>         if (edge.owner!=null)
>>             throw new RuntimeException("Attempted to add an Edge already
>> added elsewhere");
>> 
>> When you created the network the first time, each of your edge's had their
>> owner variable set. You can't really reuse edges like that, but I think you
>> can use the copy constructor like so:
>> 
>> consumerSocialNetwork.addEdge(new Edge(e[i][j]));
>> 
>> Good luck,
>> Joey
>>