papers:ezra_stallings
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
papers:ezra_stallings [2014/11/03 21:01] – vyross | papers:ezra_stallings [2014/12/01 21:45] (current) – vyross | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | + | {{: | |
- | + | {{: | |
- | ===== Abstract ===== | + | |
- | + | ||
- | Working in a spatially oriented system, creating a large network for communication or resource sharing is complicated by the difficulty of implementing useful data structures. We propose a node-based pathfinding system for use in a simulation where a number of central nodes attempt to engage in need-based resource allocation. We found that using spatially linked lists and a brownian search method made for a highly effective means of discovering routes and building a network organically in a chaotic environment. | + | |
- | + | ||
- | ===== Description of Model ===== | + | |
- | + | ||
- | The model was built to address some of the limitations of the MFM, and to attempt an architecture for overcoming these shortcomings for large-scale organized, stigmergic behavior. The primary limitation in question is the small event window for each element - a radius of 4 sites, manhattan distance, for a total of 49 elements visible. Two direct consequences of this size are speed of simulation (less processing per-site) at the expense of scope, and a slow “speed of light”. Nothing can move farther than the event window, so the maximum attainable speed in the machine is the size of the event window - 4 sites-per-update. | + | |
- | + | ||
- | As a framework for solving this problem in a simple yet possibly useful manner, we proposed a method for routing resources in the form of Res atoms, while trying to consume as little of space as possible with the routing mechanism itself, and without altering the Res. As a metric for evaluating the performance of the model, we used a Depot element. The Depot element is stationary, and will with some probability randomly go into a state of high Res demand. While in this state, it will consume any Res it encounters. Normally, it will occasionally go into a state of low Res demand, and consume an available single Res to satisfy the demand. A system where Depots stay in high demand for a long period of time can be estimated as performing more poorly than a system where their demand gets satisfied quickly. The low-demand state exists primarily to provide low-level signal noise. | + | |
- | + | ||
- | In order to form an actual network, a means of connecting Depots and passing messages/ | + | |
- | + | ||
- | The exact movement formula of Scouts is to move at speed S in direction vector D, with a one-in-[stutter_chance] odds of altering their final position by 1 in a randomly selected direction, and a one-in-[change_direction_chance] of changing D after each move. [stutter_chance] and [change_direction_chance] are global element parameters, and cannot change during run-time. | + | |
- | + | ||
- | Breadcrumbs are laid out behind Scouts, dropped in every site the Scout visits as it wanders around. Each breadcrumb knows what Scout it belongs to (a random 10-bit ID, chosen on creation time of the Scout), as well as the ID of it’s predecessor and successor in what amounts to a spatial linked-list. Breadcrumbs are therefore aware of a gradient direction (high-to-low). Although the Breadcrumb IDs are also 10-bits, they start with 0 at scout-creation-time, | + | |
- | + | ||
- | Breadcrumbs engage in a self-optimizing behavior to compensate for noise in the Scout’s movement. Each time a Breadcrumb gets an update, it scans the event window for it’s predecessor pred and successor succ Breadcrumbs. If it is somewhere in the middle of a trail, it will attempt to move to a random valid point halfway between pred and succ, as determined with manhattan distance. If pred and succ are within 3 sites of each other, the Breadcrumb atom will tell pred and succ to “point to” each other, and remove itself. | + | |
- | + | ||
- | Once a Scout finds an available Depot, a signal is passed along it’s trail of Breadcrumbs, | + | |
- | + | ||
- | The vital routing behavior is provided by Breadcrumbs, | + | |
- | + | ||
- | Message relaying is Breadcrumb-to-Breadcrumb. During a Breadcrumb’s behavior update, it will first check if the up/ | + | |
- | + | ||
- | We compared three scenarios to determine the viability of this technique for resource management in the MFM. In Scenario A, we have no network, just isolated, stationary Depots. In Scenario B, we have a network, but no message passing in order to alter the flow of resources - all Res goes in the default direction. And in Scenario C, a message can be passed to change the flow of Res. In order to make this message work, it is altered whenever transmitted to another trail’s end-node Breadcrumb with respect to that trail’s direction. | + | |
- | + | ||
- | + | ||
- | ===== Conclusion ===== | + | |
- | //////// | + | |
- | This method for pathfinding works well for sparse structures, demonstrating both an ability for the concept to work with a clear goal in the context of a more complex system (the conflict) and an ideal density level for the system to allow pathfinding to work well. If the machine is too sparsely populated, it can take scouts far too long to find their adversaries, | + |
papers/ezra_stallings.1415048510.txt.gz · Last modified: 2014/11/03 21:01 by vyross