Closed colinhanrahan closed 1 month ago
Fantastic! Is there a means of perpetually spawning waves? Currently, once the second peak becomes colonized, the behavior shifts to the more traditional clusters of agents around the peaks.
Perhaps have a low max age and agent replacement? I know that deviates from the book, so please let me know if you have any other ideas.
That may or may not work—I'll look into it. The problem there is that diagonal waves are not generated by the agent locations, but by directional differences in the sugar distribution. These directional differences are initially created by agents being forced to move out of the corner in a wave shape and continue while the agents migrate. Once agents migrate the first time, the sugar distribution becomes more noisy, so the same kind of wave might not happen again.
The other option is the second video I sent you: fill the entire sugarscape with sugar and make it regenerate more slowly so that agents are forced to stay on the move. There are clear, permanent waves of agents here.
Another thought: maybe we could put two peaks in the far corners of a larger environment with a small sugar bridge between them and seasons turned on. When the season changes, agents would have to cross the bridge, which might create a wave. But they would have to be really packed together when the season changes because the forced movement based on locations they cannot move (cells with other agents) creates the wave shape.
Remind me: is the growback rate constant or immediate for this example?
Growback is constant—if it was immediate, agents would have no incentive to continue moving in the same direction.
That's what I figured. It's a puzzle. If this is as close as we get given the simulation setup, that's okay.
I'm not seeing any more waves with agent replacement than without (although I did find a couple other bugs while investigating this). Are you interested in adding something like video number 2 I sent you as an example?
What you have here is sufficient for demonstrating the behavior.
Diagonal migration is generated when the sugar in "front" of an agent is greater than all the sugar it can see behind it, even accounting for growback, for a continuous period of time. With the combination of max vision 10, max sugar 4, and the shape of our sugar peaks, the small situational window that generates the emergent behavior is nearly lost. Our example might be slightly closer to the book (using max sugar 4) if we copied the sugar distribution exactly. Hervé Lange's diagonal migration example uses a max sugar of 10 and our repo generates a similar result with those settings.
@nkremerh I'll send you some related videos via Outlook.