Extending prototype development, the agent was made to invert its direction when it reached the other side of the environment, leading to some further issues with the presentation of the landmark distance and motion plots due to the way in which the heading calculations were performed.
Also, work began on the development of a very simple memory system for the agent, though the idea is not fully formed at this time. My thoughts behind this are:
- To take a snapshot of the scene, recording the distinguishing features in the landscape. This allows the bug to recall the position, scale and colour of a landmark in its view.
- To give preference to higher-weighted scenes over new snapshots, on the basis that we only need to remember the important places. This weighting is adjusted as the bug locates goals, so that certain snapshots leading to goals take precedence. Similarly, once a valid goal has diminished/disappeared, the snapshot should make room for a replacement.
- To evaluate the current scene against snapshots for determining how close to the target the bug is.
- The introduction of threshold values for taking snapshots and weighting values, to allow for their simple adjustment to find optimum values.
To progress this over the coming week, the intention is to focus on the following areas of development:
- To only take snapshots when certain goals are in play, i.e. only when hunting for food or learning the home location.
- Implement goal determination code.
- Implement landmark / scene weighting reduction.
- Implement hill-climbing when in the vicinity of a goal.
To ease development and reduce the need to create complex structures, an investigation into the various extensions available for NetLogo have lead to the use of the Array and Table extensions and the Matrix extension.