reset password
Author Message
rabbott
Posts: 1649
Posted 12:33 Feb 25, 2018 |

is available here.

► It includes a second greedy path algorithm. In this one the edges are sorted and then added to the path smaller to larger -- excluding edges that would create a cycle. It seems like an interesting approach. In practice, it doesn't seem to produce better paths. But since it includes edges that may not otherwise be added, you may want to include it as one of the kinds of random paths you add to your population.

 There is a button to write the current set of nodes to a file so that others can try them. It also writes the current best-path. I'd like to see some of the examples you have tried and how well your GA did on them. Look at test-file.txt for the format: a label followed by a list of the x-y coordinates to two decimal places. The read-file procedure expects that format.

 The continual improvement button, which does a pretty good job but should not do as well as a GA, will stop when it's tried everything it can. (It uses a paths field called improvements-tried to keep track of the mutations it has tried on a given path. This field is used only when a path is the best-path.)

 The Reposition button finds the best place for whichever node is highlighted. It does the same thing the continual improvement cycle will do when it picks that node (at random) to reposition. If your GA is stuck and you think that moving a node would make a difference, try highlighting the node and pressing the R key.

 When nodes are generated randomly or when nodes are dragged around on the screen, no two nodes are permitted to be within a given short distance of each other. (So no two nodes will overlap and appear to be one node.) 

 I've adopted a convention to name fields as <breed>.<field>.  For example, the route field in path agents is called paths.route. That way field names are easy to spot and are not likely to be shadowed by other identifiers you want to use. The "." in the name is just another character in the field name. It has no semantic content as far as NetLogo is concerned.

Please don't wait until the last minute to work on this. It was not the purpose of putting all class time on Friday to encourage you not to work on course material until a day or two before class. Use this forum for questions.

On Friday March 2 be prepared to explain your GA code, including both (a) the GA structure, e.g., how you produce new generations in general, and (b) whatever special evolutionary operators you devised for this problem. Also talk about how well your GA worked, what problems you ran into, what additional work could be done on it, etc. Each of the three groups should plan for half an hour (starting at 9:00).

This will be the end of the GA section. We will go on to other material starting the week of March 5--i.e., the class of March 9.

 

 

Last edited by rabbott at 15:00 Feb 25, 2018.