The project aims to produce a portable software solver using the latest in polynomial system solving algorithms and capable of being incorporated into applications programs. Research will be carried out to advance the state of the art and our understanding of polynomial systems, and various application areas will be studied, such as control theory, geometric modelling, and biochemistry in which problems reducible to polynomial system solving arise. These aims are not independent: the software will incorporate as much of the newly-discovered material as possible, and the applications will benefit from the facilities in the solver. Conversely, the solver will benefit from the experience of having been used on real problems. This project aims to produce a portable software solver using the latest in polynomial system solving algorithms and capable of being incorporated into applications programs. Research will be carried out to advance the state-of-the-art and our understanding of polynomial systems, and various application areas will be studied, such as control theory, geometric modelling and biochemistry, in all of which problems reducible to polynomial system solving arise.
These aims are not independent: the software will incorporate as much of the newly discovered material as possible, and the applications will benefit from the facilities in the solver. Conversely, the solver will benefit from the experience of having been used on real problems.
Some relevant results have been obtained in the 3 domains of the research: solver, algorithms, applications. In the solver construction, a customizable memory management (CMM) in C++ has been produced; the solver C++ library will be built in top of it. The CMM will be suitable of use outside of the project. It is currently in alpha test.
Protocols for data related to polynomial systems and symbolic computing have been proposed, and will be experimented.
Software for computing Groebner bases (GB) has been provided (beta test). It includes a preliminary version of CMM, big and modular integers, ability to split the work on a net of computer and a full interface with Axiom. It is a tool for experimenting during the construction of the solver, and some parts of GB are under adaption for being included in the solver.
A collection of tests for polynomial system solving has been prepared and continuously updated, and is currently distributed.
Algorithmic advances have been obtained, that allow in several examples of polynomial systems relevant for applications a speed up of a factor larger than 10. This has been included in some experimental software, and the inclusion in the future distribution of the C++ library is planned.
The complexity theory of problems related to polynomial system solving has been considerably improved, with better estimates in a sparse complexity model. For working with real algebraic numbers 2 different experimental implementations have been produced. Moreover new theoretical advances have been attained concerning real root counting and isolation in the multivariate case.
Applications have been studied, obtaining interesting results linking polynomial system solving with robot kinematics (Stewart Platform, path lifting), motion planning, curve and surface tracing, geometric modelling and singularity theory.
APPROACH AND METHODS
Purely numerical solving of polynomial systems leads to many problems: numerical inaccuracy; not finding all solutions, and not recognising under-determined systems; not understanding the structure of the solutions; and inability to handle over-determined systems. These problems are not purely theoretical: they have caused major practical problems in areas ranging from aerospace engineering to pharmacology. The solution to these problems is to perform symbolic computation on the set of polynomial equations (and inequalities) instead of, or as well as, numeric computation. Such computations require the careful use of advanced mathematical ideas.
The structure of the solver that we propose to produce will be radically different from what is customary in symbolic computation systems with built-in solvers that can be used only inside the system itself. POSSO will develop a solver in ``package'' form, so that to build an application only those parts that are necessary need to be obtained.
The advanced research issues developed inside the projects are aimed at algorithmic advances related to the solver. Whilst the current methods are satisfactory for zero dimensional systems, they are not completely suitable for higher dimensional systems, for which many qualitative aspects of solving still need to be clarified.
POSSO will investigate the problems connected to polynomial system solving, and for some application areas we will probably develop application-specific extensions to, or front-ends for, the solver.
The solver will be linked to several existing or future computer algebra systems, enhancing their performances. It is likely that the algorithmic research developed will allow considerable progress in the area of polynomial system solving, especially in higher dimension, and that several application areas will benefit from our application-specific versions.
The customisable memory management might be used as a basis for the construction of symbolic software including a default memory management and the possibility of customised memory management in some time-critical parts; in particular, an implementation of COMMON-LISP with these features might be easily produced, and could be the basis of many efficient computer algebra systems.
106 91 Stockholm
BA2 7AY Bath