Last Update: 31 March 2010, 12:58
P.M.
Note: or material is highlighted |
"I haven't formalized my theory of belief revision, but I have an algorithm that does it."
|
In response to the above quote from a former graduate student, some might say that her algorithm is her theory.
The focus of this document is the question: Are computer programs scientific theories?
Let's begin with some distinctions:
FollowingRoth 1983, let's say that
x simulates y means that
x is a model of some real or
imagined system y,
and we
experiment with x in order to understand y.
And, following Habib 1983, let's say that x emulates y means that either:
This suggests that there is a continuum or spectrum,
with "pure"
simulation
at one end
(I/O-equivalent behavior),
and "pure" emulation
at the other end
(behavior that is equivalent with respect to I/O, all algorithms in
full
detail, and all data structures).
So, perhaps there is no real distinction between simulation and emulation except for the degree of faithfulness to what is being simulated or emulated.
The term "simulation" has a sense of "imitation" or "unreal":
But there are cases where a simulation is the real thing.
(Question to think about: Would such simulations be better called
"emulations"?)
For example:
In general, it seems that a simulation of information is that information.
There are at least two views within the philosophy of science about what
scientific theories are.
On the syntactic approach to theories (due to the
"Logical Positivists"),
On the semantic approach to theories (due largely to the
philosopher
Patrick Suppes),
The basic idea is that a theory must be expressed in some language.
Scientific theories, on this view, are sets of sentences. (I say more
about this
elsewhere.)
The sentences have to be in some language: The
claim here is that some theories can be expressed in a programming
language.
One advantage of expressing a theory as a computer program is that
all details must be filled in.
Of course, there will be implementation-dependent details.
Another advantage of expressing a theory as a computer program is that
you can run the program to see how it behaves and what predictions it
makes.
This dual, or
Janus-faced,
nature of models leads to what Smith 1987 calls a "correspondence
continuum":
In reading Moor or Thagard, here are some questions to ask yourself:
theories are descriptions of real-world situations expressed in a formal
language with an axiomatic structure,
i.e.,
a
formal system.
(this is the main sense in which the theory of evolution is a "theory").
(These phenomena either are directly
observable—either by unaided vision or with the help of microscopes and
telescopes—
or are theoretical terms (e.g., "electron") that are
definable in terms of directly observable phenomena (e.g., by a vapor
trail in a cloud chamber).
theories are the set-theoretic models of an
axiomatic formal system.
in the sense that they are languages for
theories or ways to express theories:
"2. Computer programs can be written that use
nonnumerical symbol manipulating processes to perform tasks which, in
humans, require thinking and learning.
"3. These programs can be regarded as theories, in a
completely literal sense, of the corresponding human processes. These
theories are testable in a number of ways: among them, by comparing the
symbolic behavior of a computer so programmed with the symbolic
behavior of a human subject when both are performing the same
problem-solving or thinking tasks." (Simon & Newell 1962: 97)
If you don't express it in a language, how do you know what it is?
As E.M. Forster is alleged to have said,
"How can I know what I think till I see what I say?".
And if you don't write your theory down in some language,
no one can evaluate it.
This is the sense of (scientific) "theory"
that is used when people talk about the "theory" of
evolution.
The ordinary, everyday sense of "theory"—in
which a theory is a mere conjecture—
is not what
is intended in the phrase "theory of evolution"
(contrary to
what some creationists or intelligent-design proponents
might say),
nor is it what we're talking about when we say
that a computer program might be a "theory".
That is, a computer program must
be a full "implementation" of the theory.
—with different implementation-dependent
details—
have the same I/O, algorithmic, and data-structure
behavior.
So, in a sense, the theory becomes its own model and can be used
to test itself.
There are different uses of the
term "model".
so the data are the syntactic domain, and the
formal
theory is its semantic domain.
so the formal theory is now the syntactic domain, and the
set-theoretic or mathematical model is the semantic domain.
so the model is now the syntactic domain, and the
real-world is the semantic domain.
on the grounds that they are neither sets
of (declarative) sentences nor set-theoretic models of axiom systems.
(A declarative sentence is a sentence that is either true
or else false.)
(An imperative sentence is a sentence that
says "Do this!"; it has no truth-value.)
References