**End Notes**
[1] The pioneering work in cellular automata was done by Stephen Wolfram [8]. [Back]
[2] The sum mod 2 of any number is the remainder that is left when one divides the number by two. Thus 3 mod 2 is 1. [Back]
[3] The neighborhoods are sorted in decreasing order of their representation as a base 2 numeral. [Back]
[4] It takes because the site and its relevant neighbors can take on different values, and each output is eight binary digits long. [Back]
[5] Sipper [9] gets around this problem through an approach known as cellular programming. We choose a different approach here. [Back]
[6] As discussed in more detail below, it is also possible to specify "translation rules" that, when used over and over again
against expressions written in the grammar, transform those expressions into ones that the *Mathematica* kernel is able to simplify. The patterns produced by a grammar thus become executable programs capable of yielding a result
such as a number or other value. [Back]
[7] When the price is 4, the amount logically supplied by an optimizing producer is 4 because the marginal cost at 4 is 4.
Thus, total revenue will be 16, which is the price of 4 multiplied by the optimal quantity 4. But 16 is also the amount that
it costs to produce 4 units. Hence, the producer is behaving optimally and making zero economic profit, which essentially
defines equilibrium. [Back]
[8] is some arbitrary number that represents the price that will drive demand to zero. [Back]
[9] The utilities make extensive use of the names for patterns provided in the previously defined expressions `automatonPattern` and `sitePattern` . [Back]
[10] Increasing the size of these computation costs coupled with various forms of evolution favoring the more profitable
behavior programs should result in more parsimonious programs. [Back]
[11] A functional programming style is one in which expressions that are capable of operating on other expressions are treated
as "first class" data and used frequently as parts of surrounding expressions. [Back]
[12] The array has six columns rather than five because an additional column is needed to hold the actual behavior. [Back]
[13] The first program at each site remains constant, however. [Back]
[14] The `combo` function avoids a tricky issue of infinite recursion. When the first argument of `combo` bears a head of `Function` , `combo` yields that function applied to the second argument. Otherwise, `combo` just yields the first argument. Permitting the first argument to have a `Function` head and various expressions with the head of `Slot` as its argument eliminates a problem of infinite recursion that would otherwise occur. Suppose, for example, that a process
of transformation on the expression `recombination[none]` should yield a pointer to an expression `recombination[none]` . If we then go grab the pointed to `recombination[none]` we set off an infinite recursion because, as known, `recombination[none]` is subject to transformation. We thus terminate the transformation process by giving the pointer a head of `Slot` and wrapping the pointer in a head of `Function` . We make sure not to have any transformations that operate on patterns with a head of `Function` . With the transformation process now complete, we use `combo` to apply the created `Function` expression to the object pointed to and resolve the reference. This method works so long as "terminal expressions" such as
`recombination[none]` cannot appear inside of other evaluatable expressions. Thus, if the expression `behavior[2]` transformed to `behavior[2]` , the expression `behavior[behavior[2]]` would be extremely difficult to handle. [Back]
[15] The transformation rules are separated into those that are position-independent and those that are position-dependent
to minimize recomputation of rules for each of the
blocks the `MapIndexed` function goes over. [Back]
[16] The `HoldAll` attribute must be used to prevent the replacement generation function from evaluating (once) before it is needed to create
random expressions. Otherwise, all new sites would be the same. [Back]
Copyright © 2001 Wolfram Media, Inc. All rights reserved.[Article Index][Prev Page][Next Page] |