Algebraic Algorithms CS 282 Spring 2002 Lecture 1
Algebraic Algorithms: CS 282 Spring, 2002 Lecture 1 Richard Fateman CS 282 Lecture 1 1
The subject: “Symbolic Computation” • Computer algebra systems (CAS) and their supporting algorithms for performing symbolic mathematical manipulation. • Math surprises: Can you program, or make constructive, various more-or-less well-known symbolic computations? • Computer Science tasks: Can you build a mathematical intelligence? Or at least a skilled assistant? Richard Fateman CS 282 Lecture 1 2
An aside on your non-constructive education In freshman calculus you learned to integrate rational functions. You could integrate 1/x and 1/(x-a) into logarithms, and you used partial fractions. Unless you’ve recently taken (or taught) this course, you’ve forgotten the details. Richard Fateman CS 282 Lecture 1 3
Here’s an integration problem Richard Fateman CS 282 Lecture 1 4
Fortunately you can factor the denominator this way by guesswork Richard Fateman CS 282 Lecture 1 5
And then do the partial fraction expansion Richard Fateman CS 282 Lecture 1 6
And then integrate each term… Richard Fateman CS 282 Lecture 1 7
Non-constructive parts Do you really know an algorithm to factor the denominator into linear and quadratic factors? • Can you do this one, say… • And if it does not factor (it need not, you know… what do you do then? ) Richard Fateman CS 282 Lecture 1 8
If the denominator doesn’t factor And it gets worse … there is no guarantee that you can even express the roots of irreducible higher degree polynomials in radicals. Richard Fateman CS 282 Lecture 1 9
Moral of this story • You probably never knew how to integrate rational functions. Only some rational functions. • Writing a program to (say) factor or integrate uses ideas you may have never seen before. End of aside Richard Fateman CS 282 Lecture 1 10
Some History: Ancient • Ada Augusta, 1844 foresaw prospect of nonnumeric computation using Babbage’s machines. Just encode symbols as numbers, and operations as arithmetic. Richard Fateman CS 282 Lecture 1 11
Some History: Less Ancient • Philosophers/Mathematicians, e. g. G. Frege, but best known: B. Russell, A. N. Whitehead (Principia Mathematica 1910 -1913) Richard Fateman CS 282 Lecture 1 12
Some History: No, you can’t do it all… • Godel, Turing Richard Fateman CS 282 Lecture 1 13
Some History: New optimism? 1958 -60 first inklings. . automatic differentiation, tree representations, Lisp, • Minsky ->Slagle, (1961), Moses(1966); Is it AI? Richard Fateman CS 282 Lecture 1 14
Computer Algebra Systems : threads • Three trends emerged in the 1960 s: – AI / later…expert systems – Mathematics e. g. Berlekamp [factoring] , Liouville-> Risch [integration], computational group theory – Algorithms / Computer Science e. g. Knuth/Brown/Collins [polynomial GCD] • Richard Fateman CS 282 Lecture 1 15
Some Historical Systems • Early to mid 1960's - big growth period, considerable optimism in programming languages, as well as in computer algebra… • - Mathlab, Symbolic Mathematical Laboratory, • Formac, Formula Algol, PM, ALPAK, Reduce; Special purpose systems, • optimism about conquering all of math by coming up with the right programming formalism, and accumulating “facts”. Richard Fateman CS 282 Lecture 1 16
Mathematics’ flirting with computing. . • Constructive algorithmic algebra was fashionable in the early 20 th century (early editions of van der Waerden's classic "Modern Algebra“ book), but existence proofs became more popular. Too bad. I think the tide is turning towards constructive approaches. Richard Fateman CS 282 Lecture 1 17
Some theory/algorithm breakthroughs • • • 1967 -68 algorithms: Polynomial GCD, Berlekamp’s polynomial Factoring, Risch Integration "near algorithm", Knuth’s Art of Computer Programming 1967 - Daniel Richardson: interesting zeroequivalence results. Richard Fateman CS 282 Lecture 1 18
Some well-known systems • Computers got comparatively cheaper, so systems get more ambitious, more available (1968 -78) – SAC-1 Altran, Macsyma, Scratchpad. – Mathlab 68, Mu. Simp/Mu. Math, SMP, Automath, others. • Further development; new entrants of 1980's – Maple, Mathematica (1988), Derive, Axiom, Theorist, Milo, • Consolidation: 1990 s improving existing systems, – new experimental systems (theorem proving, niche math) Richard Fateman CS 282 Lecture 1 19
Some support systems • • • Common Lisp gets standardized. Scheme gets standardized too. C++ popularized as “the answer” Portability (UNIX™? Linux, Windows, Apple) Java HTML, XML and Browsers Richard Fateman CS 282 Lecture 1 20
The Marketing Blitz and shakeout • Mathematica, Ne. XT, Apple, graphics. • Maple comes out from under a rock. • IBM/Scratchpad goes public as Axiom under NAG sponsorship, then is killed. (2001) • Mu. Pad at Univ of Paderborn, is free, then sold. • Macsyma goes into hiding, parts come out free. • Openmath and Math. ML put “Math on the Web”. • Connections. – Links from Matlab to Maple, – Scientific Workplace to Maple or Mathematica. • The arrival of network agents for problem solving. – Calc 101, Tilu, The. Integrator, Ganith, … Richard Fateman CS 282 Lecture 1 21
Are there really differences in systems? • What we see today in systems: – Mathematica essentially takes the view that mathematics is a collection of rules with a procedure for pattern matching; and that a system needs neat graphics for Marketing. – Axiom takes the view that a computer algebra system is an implementation of Modern Algebra – Almost everyone concedes that good algorithms and data structures are necessary for effective, efficient computation; sometimes Math takes a back seat. Richard Fateman CS 282 Lecture 1 22
Next time • What do these CAS and the many systems we haven’t explicitly mentioned, have in common? • Algebraic systems – – Objects Operations Properties? Axioms? Extensions to a base system (programming? Declarations? ) – Underlying all of this: efficient representations Richard Fateman CS 282 Lecture 1 23
- Slides: 23