02.11.2012 Views

Reduction and Elimination in Philosophy and the Sciences

Reduction and Elimination in Philosophy and the Sciences

Reduction and Elimination in Philosophy and the Sciences

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algorithms <strong>and</strong> Ontology<br />

Walter Dean, New York, USA<br />

This purpose of this note is to advertise — but not answer<br />

— a question which is of significant foundational<br />

importance to both ma<strong>the</strong>matics <strong>and</strong> computer science but<br />

which has been largely overlooked with<strong>in</strong> philosophy of<br />

ma<strong>the</strong>matics. Succ<strong>in</strong>ctly stated it is as follows:<br />

58<br />

(A) Are <strong>the</strong> ma<strong>the</strong>matical procedures conventionally<br />

termed algorithms <strong>the</strong>mselves ma<strong>the</strong>matical objects?<br />

1<br />

I will assume that some general notion of algorithm — i.e.<br />

of a practical method for solv<strong>in</strong>g a ma<strong>the</strong>matical problem<br />

— is already implicit <strong>in</strong> ma<strong>the</strong>matical practice. This seems<br />

reasonable s<strong>in</strong>ce algorithms for simple arithmetic operations<br />

(e.g. <strong>the</strong> “grade school” long division algorithm) have<br />

long been commonplaces of our <strong>in</strong>formal computational<br />

practice. Specific algorithms (e.g. Euclid's algorithm) are<br />

well known not only because of <strong>the</strong>ir antiquity but also<br />

because of <strong>the</strong> ways <strong>in</strong> which <strong>the</strong>y have contributed to<br />

modern ma<strong>the</strong>matics (e.g. <strong>in</strong> <strong>the</strong> def<strong>in</strong>ition of Euclidean<br />

doma<strong>in</strong> or <strong>in</strong> <strong>the</strong> proof of Sturm's <strong>the</strong>orem). F<strong>in</strong>ally, a great<br />

many o<strong>the</strong>r algorithms have been developed <strong>in</strong> conjunction<br />

with specific subfields of ma<strong>the</strong>matics — e.g. Brent’s<br />

method <strong>in</strong> numerical analysis, Gosper’s algorithm <strong>in</strong> comb<strong>in</strong>atorics,<br />

Strassen’s algorithm <strong>in</strong> matrix algebra — <strong>and</strong><br />

will thus be known to specialists <strong>in</strong> <strong>the</strong>se fields.<br />

Ma<strong>the</strong>maticians have traditionally been most<br />

<strong>in</strong>terested <strong>in</strong> apply<strong>in</strong>g algorithms to solve ma<strong>the</strong>matical<br />

problems such as determ<strong>in</strong><strong>in</strong>g whe<strong>the</strong>r a given number is<br />

prime or that a function has a root <strong>in</strong> a given <strong>in</strong>terval. This<br />

flags two important observations about <strong>the</strong> role of<br />

algorithms <strong>in</strong> contemporary ma<strong>the</strong>matics: 1) that many of<br />

<strong>the</strong> <strong>in</strong>dividual ma<strong>the</strong>matical statements which we now take<br />

ourselves to know (e.g. that certa<strong>in</strong> numbers are prime)<br />

have been derived by <strong>the</strong> application of specific<br />

algorithms; <strong>and</strong> 2) that ma<strong>the</strong>matical <strong>in</strong>terest has generally<br />

been focused on <strong>the</strong> results of apply<strong>in</strong>g <strong>the</strong>se methods<br />

ra<strong>the</strong>r than on <strong>the</strong> computational properties of <strong>the</strong> methods<br />

<strong>the</strong>mselves. 2<br />

The situation is quite different <strong>in</strong> contemporary<br />

computer science. In this context, algorithms are regarded<br />

as abstract objects <strong>in</strong> <strong>the</strong>ir own right whose properties may<br />

be directly studied <strong>and</strong> compared. This is evident from <strong>the</strong><br />

sort of language used to describe <strong>in</strong>dividual algorithms, of<br />

which <strong>the</strong> follow<strong>in</strong>g observations are typical:<br />

I) Individual algorithms are referred to by proper<br />

names — e.g. “Euclid's algorithm”, MERGESORT,<br />

1 Although it appears that this question has not been systematically <strong>in</strong>vestigated<br />

by philosophers, <strong>the</strong> technical proposals of (Moschovakis 1998) <strong>and</strong><br />

(Gurevich 1999) both seek to establish positive solutions. However, both of<br />

<strong>the</strong>se approaches arguably fall victim to <strong>the</strong> problem of “computational artifacts”<br />

which is discussed below.<br />

2 This is not, of course, to say that properties of algorithms are completely<br />

ignored by ma<strong>the</strong>maticians. For <strong>in</strong> particular, it is acknowledged that prior to<br />

claim<strong>in</strong>g that <strong>the</strong> fact that <strong>the</strong> application of an algorithm A to a value a yields b<br />

as output is a proof that <strong>the</strong> value of a function f at a is equal to b, A must be<br />

proven correct with respect to f -- i.e. it must be shown that ∀x[f(x) = A(x)].<br />

Such proofs generally proceed by construct<strong>in</strong>g a ma<strong>the</strong>matical model M of A --<br />

i.e. a purely ma<strong>the</strong>matical representation of its mode of operation. The availability<br />

of such representations might be taken to suggest that ma<strong>the</strong>matical<br />

practice is already committed to some version of (A). However, s<strong>in</strong>ce ma<strong>the</strong>maticians<br />

are not generally <strong>in</strong>terested <strong>in</strong> <strong>the</strong> computational properties of <strong>in</strong>dividual<br />

algorithms (e.g. <strong>the</strong>ir runn<strong>in</strong>g time), <strong>the</strong>y will generally accept correctness<br />

proofs based on models M which only weakly reflect <strong>the</strong> operation of <strong>the</strong><br />

algorithms which <strong>the</strong>y are <strong>in</strong>troduced to represent.<br />

HEAPSORT, etc.<br />

II) Such names are used to predicate computational<br />

properties directly of <strong>in</strong>dividual algorithms — e.g.<br />

“MERGESORT” has runn<strong>in</strong>g-time O(nlog2(n)).”<br />

III) General results are stated us<strong>in</strong>g quantifiers rang<strong>in</strong>g<br />

over algorithms — e.g. “There is a polynomial<br />

time algorithm for primality”, “If P ≠ NP, <strong>the</strong>n <strong>the</strong>re is<br />

no polynomial time algorithm for decid<strong>in</strong>g propositional<br />

satisfiability”, “There is no comparison sort<strong>in</strong>g<br />

algorithm with runn<strong>in</strong>g-time less than O(nlog2(n)).”<br />

If we apply conventional st<strong>and</strong>ards of ontological commitment<br />

to I)-III), we are led to <strong>the</strong> conclusion that computer<br />

science is committed to regard<strong>in</strong>g algorithms realistically<br />

— i.e. as form<strong>in</strong>g a class of objects to which algorithmic<br />

names (such as those <strong>in</strong> I)) refer, <strong>and</strong> over which quantifiers<br />

(such as those <strong>in</strong> III)) range.<br />

To get an impression of what is at stake <strong>in</strong> our<br />

<strong>in</strong>terpretation of such claims, it will be useful to consider<br />

<strong>the</strong> developments which led to <strong>the</strong> adoption of <strong>the</strong> idiom<br />

exemplified by I)-III). Statements of this sort are<br />

characteristic of a field known as algorithmic analysis<br />

which was established <strong>in</strong> <strong>the</strong> late 1950s by (Knuth 1973).<br />

Knuth proposed a means of measur<strong>in</strong>g <strong>and</strong> compar<strong>in</strong>g <strong>the</strong><br />

efficiency of algorithms <strong>in</strong> terms of <strong>the</strong>ir so-called big-O<br />

runn<strong>in</strong>g-time complexity — i.e. <strong>the</strong> asymptotic rate of<br />

growth of <strong>the</strong> number of steps O(tA(|x|)) it takes algorithm<br />

A to return a value on an <strong>in</strong>put x as a function of its size.<br />

The development of this <strong>the</strong>ory was motivated by <strong>the</strong> dual<br />

observations that i) <strong>the</strong>re exist <strong>in</strong>tuitively dist<strong>in</strong>ct algorithms<br />

A1 <strong>and</strong> A2 which compute <strong>the</strong> same function but which<br />

differ <strong>in</strong> <strong>the</strong>ir asymptotic runn<strong>in</strong>g-time <strong>and</strong> ii) <strong>the</strong> relative<br />

efficiency of A1 <strong>and</strong> A2 <strong>in</strong> practice is often <strong>in</strong>variant with<br />

respect to how <strong>the</strong>y are implemented relative to a<br />

particular formal model of computation M (e.g. as RAM<br />

mach<strong>in</strong>es).<br />

The first of <strong>the</strong>se observations illustrates that with<strong>in</strong><br />

computer science, algorithms are treated <strong>in</strong>tensionally.<br />

This is to say that an algorithm A is generally not identified<br />

with <strong>the</strong> function fA it computes, but ra<strong>the</strong>r with a<br />

procedure or method whose operation <strong>in</strong>duces this<br />

function. That algorithms are <strong>in</strong>deed <strong>in</strong>dividuated <strong>in</strong> this<br />

manner may be illustrated by observ<strong>in</strong>g that a<br />

computational predicate like “A has runn<strong>in</strong>g-time O(t(|x|))”<br />

creates a context <strong>in</strong> which <strong>the</strong> substitution of names for<br />

algorithms which compute <strong>the</strong> same function need not<br />

preserve truth value. 3 The second observation records <strong>the</strong><br />

fact that it is conventional to treat algorithms as <strong>the</strong><br />

<strong>in</strong>tr<strong>in</strong>sic bearers of asymptotic complexity <strong>the</strong>oretic<br />

properties. For not only is it often difficult to reason<br />

ma<strong>the</strong>matically about <strong>the</strong> complexity of an algorithm if we<br />

are forced to work with a particular ma<strong>the</strong>matical<br />

representation (e.g. RAM mach<strong>in</strong>e), but <strong>the</strong> comb<strong>in</strong>atorial<br />

features of such representations often turn out to be<br />

irrelevant for compar<strong>in</strong>g <strong>the</strong> behavior of different<br />

algorithms <strong>in</strong> practice.<br />

These observations shed some light on why it is<br />

useful to adopt an idiom which treats algorithms as<br />

3 For <strong>in</strong>stance, it does not follow from <strong>the</strong> fact that 1) MERGESORT has runn<strong>in</strong>g-time<br />

O(|x|log2(|x|)), <strong>and</strong> 2) that MERGESORT <strong>and</strong> SELECTIONSORT compute<br />

<strong>the</strong> same function that 3) SELECTIONSORT has runn<strong>in</strong>g-time<br />

O(|x|log2(|x|)).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!