Name: Bertfried Fauser Date: 05/19/04-05:53:03 PM Z
On Wed, 19 May 2004, Stavros Macrakis wrote:
> Good algorithms (as opposed to naïve ones) are often connected to
theory
> in complicated ways – just look at published algorithms. Then
the
> practical implementation of the algorithm is often connected to
the
> published algorithm in complicated ways.
Hi,
I am in the unfortunate situation to have to develop the code
for
my research on my own, or in a two person collaboration. Of course,
being
not a programmer, my algorithms are for sure badly implemented.
However,
“help” I received in the past, was mostly inspired from the
conventional
theory and _failed!_ in many cases to produce correct results.
Trying to check my code against theorems, it was not so
seldom,
that the program failed to produce the claim. In a few of these cases
not
the program but the theorems were wrong! (assuming mostly things for
granted which are not, so that pathological situations occure). Doing
such
work, I think, can only perfomed by persons which are living in both
parts
of the game, ….
> “Literate programming” is effective when the algorithm has a nice
> hierarchical structure, but there are many tricks that good
algorithm
> designers and programmers use which don’t fit well into that
structure.
Hence, for challenging problems, ie new math! and phys!, I would
_reject_
the lates goodies programmers can provide and favour to have a stable,
as
simple as possible, if possible provable algorithm. New goodies, may
be
later added (in a separate pamphlet file <grin>, also by people who do
not
fully understand the theory and purpose of the program. They can then
check against the slow but stable code. This method at least led me to
stable and reasonable fast code, which at the and was relatively
complex.
On the other hand, concrete mathematics (see the book of this
name
coathored by D. Knuth) will at the end be also effective mathematics. If
a
problem is _really_ understood, it will have a plain (that is not
necessarily a simple!) solution which can be straightly implemented.
> Personally, I think this is a fascinating area, but it really is
a
> research problem in itself. So if your goal is solving
physics/math
> problems, I would recommend that you be pragmatic about how far you
go
> in trying to systematize the transition from theory to code.
Of course, pragmatism is dictated by ones owns idioticy, so I
feel
personaly already dissabled anough not to accept further constratints
;-)
ciao
BF.
PS: There are algorithms, which were provedto be optimal in a certain
sense by the mathematician Gian-Carlo Rota and coworkes. What
hencforths
can be done is just efficiency in implementation, a rather wide field
in itself, ideed.
% PD Dr Bertfried Fauser
% Institution: Max Planck Institut for Mathematics Leipzig
<<http://www.mis.mpg.de>>
% Privat Docent: University of Konstanz, Physics Dept
<<http://www.uni-konstanz.de>>
% contact |-> URL : http://clifford.physik.uni-konstanz.de/~fauser/
% Phone : Leipzig +49 341 9959 735 Konstanz +49 7531 693491