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.
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 ;-)
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
This archive was generated by hypermail 2b29 : 03/25/17-12:40:12 AM Z CET