AGES Command Palettes


Genetic Actions
Genetic Conditions
4hood*See_Food_in_Neighborhood
Do_Not_See
Neighbor_of
4hood_Test_Number_Neighbors_Having_Attribute
Remote_Test
Test_Absolute_Row/Col_Val
Test_String_Attribute
Download All AGES Commands

Genetic Conditions


4hood*See_Food_in_Neighborhood


Figure 8: 4hood*See_Food_in_Neighborhood command.

The 4hood*See_Food_in_Neighborhood command looks for a user-specified food-type <Fisch1> agent in a title-specified neighborhood type of user-specified depth <vision>. This command is often used in conjunction with one of the eating action commands described above. It provides flexibility to users by allowing to them treat different agents as food and by allowing users to enter attribute-based formulas in order to specify neighborhood_depth. For example, this command could be used in implementing long-range vs. short range vision where short range vision searches over a von Neumann neighborhood of normalvision depth while long range vision searches over a von Neumann neighborhood of longrangevision depth.


Do_Not_See


Figure 9: Do_Not_See command.

The Do_Not_See command is just the negation of the normal See command found in AS-VAT's default command palette. It is extremely useful in defining sims that will contain shared agents. For example, if one creates a sim with shooting space ships, one might want to determine an "immunity list" of agents not susceptible to laser fire. The Do_Not_See comand could be used to specify this list. Then, adding an agent to a given simulation might only require that a developer equip his/her new agents with a standard method defining what to do when one gets "hit." If sharing agents between sims is to be a goal, negation commands (and perhaps a built-in negation operator) will be a great additions to Agentsheets command palettes.


Neighbor_of


Figure 10: Neighbor_of command.

The Neighbor_of command can be used in any situation where an agent wants to check a Moore neighborhood of depth 1 for the presence of comparator < ">" > a user-specified number <1> of a user-specified agent-type . Such considerations are relevant to many kinds of actions in sims; e.g. pollution diffusion, mating, food-search, etc. In general, such considerations are integral to research involving cellular automata or similar systems.


4hood*Test_If_Number_Neighbors_Having_Attribute


Figure 11: 4hood*Test_Number_Neighbors_Having_Attribute command.

This boolean command can be used to test if comparator < ">" > a user-specified number of neighbors <2> in a title-specified neighborhood-type <4hood> of user-specified neighborhood_depth <vision> of a given agent have a user-specified attribute <sugar>. (The above command checks its Moore neighborhood of depth "vision" to see if greater than 2 agents in this region have pollution attributes.) This neighborhood-perusing command is also useful when programming cellular automata and like entities.

In my opinion, it is good to provide language pieces that address varying levels of discourse. For example, it is different to test if an agent "has a given attribute" as opposed to testing "the value of a given attribute" that an agent definitely possesses. Even if one can always find a way to pose one type of question in terms of the other, the fact that these two approaches point to different ways of representing a given question lends credence to the idea that both forms of representation should be provided by a good language. i.e. It is often a good idea for a programming language to give users more than one way to implement their ideas. Providing commands that address different levels of discourse is one way to achieve this language-design goal.


Remote_Test


Figure 12: Remote_Test command.

This command tells an agent to check a user-specified attribute value <energy> of an agent at the cell in a user-specified direction 1 cell away to see if this attribute value is comparator < ">" > a user-specified value <29>. This command can be used in many situations; e.g. an agent might check its northwest neighbors energy value to see if it is high enough for mating to ensue.


Test_Absolute_Row/Col_Val


Figure 13: Test_Absolute_Row_Val and Test_Absolute_Column_Val commands.

These commands tell an agent to test itself (or any of its Moore neighbors at depth 1) to see if its row or column value (xposition and yposition in a worksheet) is comparator < ">" > a user-specified formula value <e.g. midpoint + 10>. These commands can be used in situations where an agent requires information about its own position within a worksheet in order to execute a given rule. For example, I use these commands to help implement seasons in one of my Sugarscape sims. Winter and summer alternate between northern and southern sugar&spice agents (i.e. those located above and below the middle row of the worksheet, respectively) every "seasonchange" time steps.


Test_String_Attribute


Figure 14: Test_String_Attribute command.

This command tells an agent to test if a user-specified attribute <season> is string-comparator <String-Equal> a user-specified string <winter>. This command should be useful in numerous situations. For example, I also use it in making sugar&spice agents change from season to season as described above.


Download AGES Commands

Click here to download all the AGES commands currently available. This link will download a "stuffed" and binhexed version of a file called AGES_Commands_1_2.lisp. After you have uncompressed this file using Stuffit Expander (Just drag and drop the file on your Stuffit Expander icon if your browser doesn't expand the file for you.) you must place it in the "Extensions" folder of Agentsheets and restart Agentsheets. After this, these commands will be housed in a Genetic_Conditions and a Genetic_Actions palette available via the Agentsheets Tools menu. Hope you enjoy playing with your evolution engine! Have fun!

Of course, if you don't have Agentsheets, you can get a free version from the Agentsheets Website. (First, you'll have to get a password. Email Jonathan Phillips, Andri Ioannidou, or Alex Repenning to obtain a one. )


Home | AGES Projects | Genetic Actions | AGES