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.
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.
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
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.
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.
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.
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.
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. )
4hood*Test_If_Number_Neighbors_Having_Attribute
Remote_Test
Test_Absolute_Row/Col_Val
Test_String_Attribute
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!