|
Representation:
"A representation is a formal
system making explicit certain entities or types of information,
together with a specification of how the system does this. And
I shall call the result of using a representation to describe
a given entity a description of the entity in that representation.
For example, the Arabic, Roman, and binary numeral systems are
all formal systems for representing numbers. The Arabic representation
consists of a string of symbols drawn from the set {0, 1, 2,
3, 4, 5, 6, 7, 8, 9}, and the rule for constructing the description
of a particular integer n is that one decomposes n into a sum
of multiples of powers of 10 and unites these multiples into
a string with the largest powers on the left and the smallest
on the right. Thus, thirty-seven equals 3 x 101 + 7 x 100 , which
becomes 37, the Arabic numeral system's description of the number.
What this description makes explicit is the number's decomposition
into powers of 10. The binary number system's description of
the number 37 is 100101, and this description makes explicit
the number's decomposition into powers of 2. In the Roman numeral
system, thirty-seven is represented as XXXVII."
Process:
Example of a cash register at
the checkout counter of a supermarket:
"There are several levels at which one needs to understand such a device, and it is perhaps most useful to think in terms of three of them. The most abstract is the level of what the device does and why. What it does is arithmetic, so our first task is to master the theory of addition. Addition is a mapping, usually denoted by +, from pairs of numbers into single numbers; for example + maps the pair (3,4) to 7, and I shall write this in the form (3 + 4) -> 7. Addition has a number of abstract properties, however. It is commutative: both (3 + 4) and (4 + 3) are equal to 7; and associative: the sum of 3 + (4 + 5) is the same as the sum of (3 + 4) + 5. Then, there is the unique distinguished element, zero, the adding of which has no effect: (4 + 0) -> 4. Also, for every number there is a unique "inverse," written (-4) in the case of 4, which when added to the number gives zero: [4 = (-4)] -> 0.
Notice that these properties are part of the fundamental theory
of addition. They are true no matter how the numbers are written-whether
in binary, Arabic, or Roman representation-and no matter how
the addition is executed. Thus part of this first level is something
that might be characterized as what is being computed.
The other half of this level of explanation has to do with the
question of why the cash register performs addition and not,
for instance, multiplication when combining the prices of the
purchased items to arrive at a final bill. The reason is that
the rules we intuitively feel to be appropriate for combining
individual prices in fact define the mathematical operation of
addition. These can be formulated as constraints in the following
way:
1. If you buy nothing, it should
cost you nothing; and buying nothing and something should cost
the same as buying just the something. (The rules for zero.)
2. The order in which goods are presented to the cashier should
not affect the total. (Commutative.)
3. Arranging the goods into two piles and paying for each pile
separately should not effect the total amount you pay. (associative;
the basic operation for combining prices.)
4. If you buy an item and then return it for a refund, your total
expenditure should be zero. (Inverses.)
It is a mathematical theory that
these conditions define the operation of addition, which is therefore
the appropriate computation to use.
This whole argument is what I call the computational theory of
the cash register. Its important features are (1) that it contains
separate arguments about what is computed and why and (2) that
the resulting operation is defined uniquely by the constraints
that it has to satisfy. In the theory of visual processes, the
underlying task is to reliably derive properties of the world
from images of it; the business of isolating constraints that
are both powerful enough to allow a process to be defined and
generally true of the world is a central theme of our inquiry.
In order that a process shall actually run, however, one has
to realize it in some way and therefore choose a representation
for the entities that the process manipulates. The second level
of the analysis of a process, therefore, involves choosing two
things: (1) a representation for the input and for the output
of the process and (2) and an algorithm by which the transformation
may actually be accomplished. ...
There are three important points here. First, there is usually
a wide choice of representation. Second, the choice of algorithm
often depends rather critically on the particular representation
that is employed. And third, even for a given fixed representation,
there are several possible algorithms for carrying out the same
process. Which one is chosen will usually depend on any particularly
desirable or undesirable characteristics that the algorithms
may have; for example, one algorithm may be much more efficient
that another, or another may be slightly less efficient but more
robust (that is, less sensitive to slight inaccuracies in the
data on which it must run). Or again, one algorithm may be parallel,
and another serial. The choice, then, may depend on the type
of hardware or machinery in which the algorithm is to be embodied
physically.
This brings us to the third level, that of the device in which
the process is to be realized physically. The important point
here is that, once again, the same algorithm may be implemented
in quite different technologies. ..
|