The purpose of the Needs of Industry task was to study the relationship between the current state of the art in polynomial system solving and industrial needs in this area. The goal of this study was to collect the industrial requirements for polynomial system solving by means of the identification of key problems and necessary algorithms and implementations required for their solution. A report was produced at the end of the first year to guide the algorithms tasks, with a further supplement added at the end of the second year.
The main purpose of this chapter is, therefore, to describe our perception of the particular needs of European Industry in this field. This information, gathered mainly during the first two years of the FRISCO project, has strongly determined the choice of algorithms which have been developed and implemented during the project.
This chapter is divided into three parts. In the first we describe the procedure used to approach European companies, industries and researchers; in the second we present our perception, shown in an unified way, of how users from industries regard and manage polynomial system solving; and in the third we describe the most relevant cases we encountered.
The information gathered from the answers to the questionnaire and from the contacts in the Open Workshop are described in section 8.1.2. About one hundred companies, enterprises and R&D laboratories have already been contacted. Most of them were from Spain and France since, with the Open Workshop taking place in Barcelona, it was easier to persuade them to spend one or two days discussing their needs and experiences of polynomial system solving in ``real-world problems''. Another reason was that the main Spanish vendor of mathematical software, Addlink, was strongly involved in the preparation and organisation of the Open Workshop by providing the FRISCO project with a list of all the Spanish companies, enterprises and R&D laboratories using mathematical software such as Mathematica, Maple, Matlab, NAG Libraries, Axiom, etc. In the second year the activity was mainly concentrated in France and culminated in an industrial day which took place during the MEGA conference at St. Malo where several researchers from the FRISCO project and various companies exchanged their points of view about the role of polynomial system solving in industrial problems. A summary of this meeting, produced by B. Mourrain and M.-F. Roy, will appear in the ``SMAI Bulletin'' (SMAI: Societe pour les Mathematiques Appliquees et Industrielles).
There were three main difficulties found when contacting the companies, enterprises and R&D laboratories:
The nonlinear problems to be solved appear mainly in two different ways: either as a nonlinear system of equations, or as an optimisation problem where the objective function is nonlinear or the feasible set is defined by some set of nonlinear conditions.
The number of equations (and of unknowns) goes from 16 in the case of the mathematical modelling of the mechanical components of a shock absorber from LABEIN, to the several thousands arising from some nonlinear systems coming from the application of Finite Elements to solve some differential or integral equations (forging process modelling from LABEIN and nuclear plant simulation from TECNATOM) or from the resolution of a variational problem (bridge design from APIA XXI).
The equations appearing in the nonlinear system are usually quite sparse, in many cases being presented in a non-expanded form which produces this sparsity. The degree is not usually very big: either the total degree or the degree in every unknown is bounded by two or three.
With respect to the coefficients, these were real numbers in every
example except the EdF case where the coefficients belong to
3. In most cases they come from experimental data and thus are
known only up to a limited accuracy. We also mention that, in the
design of a variational CAD/CAE system at LABEIN, the coefficients are
exact rational numbers.
Finally, parameters also appear quite often, but they are usually specialised in a first stage and, thus, the solution of the nonlinear system is obtained by interpolating the solutions of the specialised systems.
It is important to quote the CCETT case where the design of a new filter bank was accomplished by using Gb and RealSolving, two packages developed by members (J.-C. Faugere and F. Rouillier) of the FRISCO consortium.
There are two possibilities for the time to be spent on the resolution of the nonlinear system under consideration: the solution must be available in real time (in the inverse kinematics problem for a manipulator) or more time is allowed (when fitting the parameters of the theoretical model according to the experimental data available).
The solutions to be computed are always real (with the exception of the EdF example) and the best accuracy of the answers is around 10-7. This arises from the design of a variational CAD/CAE system at LABEIN where the coefficients were exact rational numbers. It is a surprising fact that, in at least two cases (tolerance analysis at LABEIN and simulation at TECNATOM), the real-world problem implied that the particular nonlinear system of equations had only one real solution.
One of the most common request from companies, enterprises and R&D laboratories, apart from speed and accuracy, is the need of interactivity for the user and interconnectivity in the manipulation of different mathematical software packages. The provision of good-quality interfaces, together with the possibility of exporting functions to be integrated easily in specialised C++ libraries, would greatly simplify the task of researchers in industry.
The availability of up-to-date methods for polynomial system solving would be very useful. For example, a nonlinear system of equations containing parameters is only solved by specialising the parameters several times and solving the corresponding specialised system, while some parametric computations (Gröbner Basis, resultants, etc) could be useful. Another example of this situation appears when convergence problems arise in the application of a Newton-like method: instead of replacing the algorithm by another one which is more powerful or better adapted (symbolic method, homotopy, ...), the mathematical model is simplified or changed.
A particular problem from a fluid structure interaction at LABEIN shows how the FRISCO capabilities can be useful in the near future. The problem is no more than the optimisation of an objective function whose analytical expression is not available and whose value is obtained when a concrete system of polynomial equations is solved (the input values of the function provide the coefficients of the system). This implies that an analytical expression of the function could either be computed exactly, or approximated by performing an elimination procedure.
Finally, and related to the previous point, a good collection of test suites, not only with statements of the problems and results, but also containing calling sequences allowing the user to experiment with every system on a WWW server, would be really useful. A preliminary version of auch a WWW server can be found at the FRISCO test suite site.
This system is converted to an algebraic one by expanding the cosine function and by introducing the new variables:
The case n = 2 is very easily solved and the solution is given by the following:
We consider the design of M-band bidimensional FIR filter banks, i.e. M polynomials H0,...HM - 1 exhibiting some desirable properties. A filter bank implements signal decomposition onto a basis, which we want to be orthogonal. It is also desirable in image processing to use linear-phase filters, which means (at least) centro-symmetric or centro-antisymmetric. It is well known that orthogonality and phase-linearity cannot be achieved for 2-band systems, expect in the case of Haar filters. Thus these properties cannot hold simultaneously for separable filter banks with sampling matrix 2I, which are the most common in image processing. This means that the simplest system allowing simultaneously orthogonality and phase-linearity is made of non-separable filters and sampling matrix 2I. Examples under cascade form are proposed in [4]. We consider a particular family of non-separable filter banks for sampling matrix 2I, holding structurally orthogonality and centrosymmetry. This family [4] is defined by polynomial matrix products. These matrices include some angles that can be chosen arbitrarily.
It is well known that such filter banks may generate wavelet bases [1], [3], and a necessary condition for that is that the filters vanish at some aliasing frequencies. In addition, the resulting wavelets can be N times continuously differentiable only if the polynomials H0,...HM - 1 vanish as well as their derivatives up to order N at their aliasing frequencies. It is known for 1-D dyadic systems that in practice imposing these vanishing moments is an efficient way to obtain some regularity [2], so that we expect that designing maximally flat non-separable filter banks will provide regular wavelet bases.
The coefficients of polynomials H0,...HM - 1 from the cascade in [4] are polynomials in terms of the cosines and sines of the angles. The flatness equations for the polynomials H0,...HM - 1 are linear combinations of the coefficients of the polynomials H0,...HM - 1. This shows the principle leading to the use of techniques for solving polynomial systems in this signal processing context.
Actually the straightforward application of existing algorithms to the polynomial system obtained by writing the flatness equations in terms of the cascade parameters cannot design filters with support larger than 6x6 and 2 degrees of flatness. So to design filter banks with higher regularity we propose a change of variables, splitting the system into two smaller subsystems, which make it possible to design filters with support 16x16 and 5 degrees of flatness.
The cascade form we use in the sequel, borrowed from [4], and the formulation of the issue, maximising the flatness of filters of given size, turns it into a polynomial system.
For dealing with polynomial systems, we used recently-developed computer algebra tools which provide facilities for the computation of Gröbner bases (Gb, RealSolving), and related functionality (Hilbert function, lexicographic Gröbner basis computations by change of ordering, Triangular sets computations, Real Root counting, Rational Univariate representation of zero-dimensional systems). In addition, because of the complexity of the computations (size of the input/output), we designed a special change of variables and an adapted strategy to solve the problem.
The most flat and regular non-separable wavelets ever designed have been computed. We give for each flatness order the minimal size for achieving it, the number of remaining free degrees, a parametrisation of the family of the minimal size filters for this flatness order, the optimisation of the remaining free degrees and the analysis of the resulting filter banks in terms of regularity, frequency characteristics and performance in image compression.
The results of our study concerns four scientific communities:
Further work might include the study of other cascade forms for filter banks, or a proof that arbitrarily high flatness and regularity can be achieved in this filter bank family.
One of the critical steps when they implement prototypes modelling slope-parametric hybrid automata (see F. Boniol, A. Burgueño, O. Roux and V. Rosu: Analysis of slope-parametric hybrid automata. Proc. of HART-97, Lecture Notes in Computer Science 1201, 75-80, 1997) is the resolution (real solutions) of a polynomial system of equalities and inequalities. This must be done once for every automata and it can be considered as a preprocessing step and, thus, the computing time it is not important. A first system sent is the one given by the system of non-linear inequalities
The method used at ONERA-CERT to deal with this problem (a generalisation of the Fourier-Motzkin elimination method) provides the description of a set containing the solutions being sought but also contains other points which are not interesting. In this case the solution is presented in the following way:
|
(8.2) |
|
(8.3) |
This solution provides much more useful information than the previous
solutions when trying to use these automata for the development of
communication protocols (see P.-H. Ho and H. Wong-Toi: Automated
analysis of an audio control protocol. Proc. of CAV-95, Lecture Notes
in Computer Science 939, 381-394, 1995). The solution set looks like:
Apart from the work accomplished directly for the specific three FRISCO applications described in the next section, a big effort was concentrated on continuing the successful contact with the CANDEMAT company initiated at the beginning of the FRISCO project. It is important to state, as main points, the following facts:
Next we describe briefly some of the results obtained during the third year of the FRISCO project in cooperation with the company CANDEMAT.
The abstract of the project entitled `` Integrating new algebraic-numerical techniques in Computer Aided Geometric Design (CAGD): Developing Problem Solving Environments and Implementation into an industrial CAD/CAM framework'' is the following:
This research project looks for, as a global objective, the development of several high level Problem Solving Environments specially devoted for CAGD (Computer Aided Geometric Design). This will allow to integrate, already evaluated into the Problem Solving Environments before mentioned, new algebraic and numerical techniques for CAGD into an industrial use and, in particular, in the CAD/CAM framework CSIS at the CANDEMAT company.
According to this approach, three different classes of objectives, well differentiated, can be isolated: first, the study and improvement of the graphical capabilities provided by the most frequently used high level software packages for Scientific Computing (Axiom/Aldor, Mathematica, Matlab, Maple) together with the development, into these packages or through a set of WWW servers, of several Problem Solving Environments specifically designed for Geometric Modelling and Visualisation; second, the development and integration of the new techniques in Polynomial System Solving produced inside the projects PoSSo (ESPRIT/BRA 6846: European Union) and FRISCO (ESPRIT/LTR 21024: European Union) to the resolution of different problems arising when dealing, in an very efficient way, with parametric curves and surfaces; and third, the resolution of a list of ``real-world'' problems to cover new requirements into the automotive industry and to improve already existing solutions into the CAD/CAM/CAE framework CSIS used by CANDEMAT for the design and production process of car pieces in the automotive industry.
If the goals previously described are achieved then a real transfer of basic research results, obtained under public funding (European Union, DGES), to the Spanish industry will be actually obtained: the impact of this technological transfer would be measured in terms of improvements into the production scheme at CANDEMAT through the optimisation and the enlargement of the capabilities of CSIS.
The CAD/CAM CSIS software was prepared in order to support a database containing the different implicit equations of the most usual type of parametric surfaces appearing in the usual activity of the company. A concrete algorithm for sectioning was also implemented in CSIS but now using the implicit equation and this was compared with the previously used technique. The obtained result showed a considerably speed up when using the implicit equation.
In order to see how this technique works, we include a concrete example. The database, for this generic parametric surface,
In this case the generic implicit equation is:
c10=((s2-s0)*t0*t0*x01+(-s2+s0)*t0*t2*x00+((s2-s0)*t0*t2+(-s2+s0)*t0*t0)*x)*z11
+((-s2+s0)*t0*t2*x01+(s2-s0)*t2*t2*x00+((-s2+s0)*t2*t2+(s2-s0)*t0*t2)*x)*z10
+((-s2+s0)*t0*t0*x11+(s2-s0)*t0*t2*x10+((-s2+s0)*t0*t2+(s2-s0)*t0*t0)*x)*z01
+((s2-s0)*t0*t2*x11+(-s2+s0)*t2*t2*x10+((s2-s0)*t2*t2+(-s2+s0)*t0*t2)*x)*z00
+(((-s2+s0)*t0*t2+(s2-s0)*t0*t0)*x11+((s2-s0)*t2*t2+(-s2+s0)*t0*t2)*x10
+((s2-s0)*t0*t2+(-s2+s0)*t0*t0)*x01+((-s2+s0)*t2*t2+(s2-s0)*t0*t2)*x00)*z
c11=(((-2*s2)+2*s0)*t0*x01+((s2-s0)*t2+(s2-s0)*t0)*x00+((-s2+s0)*t2+(s2
-s0)*t0)*x)*z11+(((s2-s0)*t2+(s2-s0)*t0)*x01+((-2*s2)+2*s0)*t2*x00+((s2-s0)*t2
+(-s2+s0)*t0)*x)*z10+((2*s2+(-2*s0))*t0*x11+((-s2+s0)*t2+(-s2+s0)*t0)*x10
+((s2-s0)*t2+(s0-s2)*t0)*x)*z01+(((s0-s2)*t2+(s0-s2)*t0)*x11+2*(s2-s0)*t2*x10
+((-s2+s0)*t2+(s2-s0)*t0)*x)*z00+(((s2-s0)*t2+(-s2+s0)*t0)*x11+((-s2+s0)*t2
+(s2-s0)*t0)*x10+((-s2+s0)*t2+(s2-s0)*t0)*x01+((s2-s0)*t2+(-s2+s0)*t0)*x00)*z
c12=((s2-s0)*x01+(-s2+s0)*x00)*z11+((-s2+s0)*x01+(s2-s0)*x00)*z10
+((-s2+s0)*x11+(s2-s0)*x10)*z01+((s2-s0)*x11+(-s2+s0)*x10)*z00
c20=((s2-s0)*t0*t0*y01+(-s2+s0)*t0*t2*y00+((s2-s0)*t0*t2+(s0-s2)*t0*t0)*y)*z11
+((-s2+s0)*t0*t2*y01+(s2-s0)*t2*t2*y00+((-s2+s0)*t2*t2+(s2-s0)*t0*t2)*y)*z10
+((-s2+s0)*t0*t0*y11+(s2-s0)*t0*t2*y10+((-s2+s0)*t0*t2+(s2-s0)*t0*t0)*y)*z01
+((s2-s0)*t0*t2*y11+(-s2+s0)*t2*t2*y10+((s2-s0)*t2*t2+(-s2+s0)*t0*t2)*y)*z00
+(((-s2+s0)*t0*t2+(s2-s0)*t0*t0)*y11+((s2-s0)*t2*t2+(-s2+s0)*t0*t2)*y10
+((s2-s0)*t0*t2+(-s2+s0)*t0*t0)*y01+((-s2+s0)*t2*t2+(s2-s0)*t0*t2)*y00)*z
c21=(((-2*s2)+2*s0)*t0*y01+((s2-s0)*t2+(s2-s0)*t0)*y00+((-s2+s0)*t2
+(s2-s0)*t0)*y)*z11+(((s2-s0)*t2+(s2-s0)*t0)*y01+((-2*s2)+2*s0)*t2*y00
+((s2-s0)*t2+(-s2+s0)*t0)*y)*z10+((2*s2+(-2*s0))*t0*y11+((-s2+s0)*t2
+(s0-s2)*t0)*y10+((s2-s0)*t2+(s0-s2)*t0)*y)*z01+(((s0-s2)*t2+(s0-s2)*t0)*y11
+(2*s2+(-2*s0))*t2*y10+((-s2+s0)*t2+(s2-s0)*t0)*y)*z00+(((s2-s0)*t2
+(-s2+s0)*t0)*y11+((-s2+s0)*t2+(s2-s0)*t0)*y10+((-s2+s0)*t2+(s2-s0)*t0)*y01
+((s2-s0)*t2+(-s2+s0)*t0)*y00)*z
c22=((s2-s0)*y01+(-s2+s0)*y00)*z11+((-s2+s0)*y01+(s2-s0)*y00)*z10+((-s2+s0)*y11
+(s2-s0)*y10)*z01+((s2-s0)*y11+(-s2+s0)*y10)*z00
And the concrete implicit equation, after substitution, is:
= 5.5134296417236327 . 10-9
The sectioning by the plane X = k of a B-spline proceeds by performing the following steps:
If the sectioning by using the implicit procedure has been a first successful application, this will be much more important when dealing with the offsetting by taking into account that the offset of a B-spline is no longer a B-spline or a parametric surface (but an algebraic surface) and thus the use of implicit equations is a direct method not currently used in any CAD/CAM software.
The main difference between these two formats lies in the fact that VDA only accepts surfaces defined by polynomial parameterisations while IGES accepts both rational and polynomial. This is a very important problem in many companies in the automobile industry since they get the information in the IGES format but the specific CAD/CAM software they use only allows the use of the VDA format. The only way of solving this problem up to now has been by means of a method based upon an uniform subdivision of the parameter domain plus a polynomial interpolation procedure whose efficiency depends strongly on the degree of the polynomials to appear in required polynomial parameterisation (see Patrikalakis N., Approximate Conversion of Rational B-spline Patches, CAGD 6 (1989) 189-204). The Computer Algebra behind this problem is still not completely well understood and new algorithms for solving this problem have been developed and initially checked by using new Hermite-Birkhoff interpolation schemes for multivariate polynomials. These techniques also permit the reduction of the degree of the considered surface which produces a simplification of the implicitation procedure since the degree of the parametric equations are smaller.
Many important problems in Computer Aided Geometric Design are reduced to the computation of the graph of a planar algebraic curve presented implicitly. For example if we want to section the surface
, y =
, z =
; s, t
The problem of computing the graph (even topologically) of a planar algebraic curve defined implicitly has received special attention from Computer Algebra since it has been responsible for many advances regarding sub-resultants, real root counting, infinitesimal computations, etc. These algorithms have been successfully implemented in AXIOM/ALDOR and now we are involved in the process of integrating the final algorithm coming from ALDOR into the CSIS software (but some new problems have arisen since CSIS has just moved to Visual Basic under Windows 95).
The main reason for including this algorithm in CSIS apart from its use in the sectioning procedure is the manipulation of trimmed surfaces: parametric surfaces with holes defined as parametric curves in the parametric domain of the surface. For example the sectioning of this kind of surfaces is not currently available in the CSIS software.
A first version of a C++ library allowing the use of the PoSSo library from the Ilog Solver has been developed and provided as deliverable 5.2.1. This task is combined with the experiment of an application based on the enhanced Ilog Solver that was demonstrated at the First Open Workshop. The sub-contractor Ilog has participated in the development of the library and brought some expertise on the use of the Ilog Solver.
The aim of this task was to provide a way to access the PoSSo library (PL) from the Ilog Solver (IS). The IS and the PL are both written in C++ and originally it was foreseen that the PL would be simply linked to the IS. However there is no version of the IS for the g++ compiler and, when we began this work, the only PL version available was a g++ version. As a first experiment we tried to link the PL to the IS via the C interface but this method failed due to the difference of format of the object files generated by CC and g++. After investigating various options it was decided to use an abstract class for the communication part which can be derived into various communication subclasses (pipe, socket, direct linking). The current version of the library is using a client/server style interface which could be replaced by a direct library interface if a CC version of the PL became available. The current interface exchanges data via UNIX pipes between the IL and the PL which run as two independent processes.
The architecture of the library can be summarised by the following picture:
Within the IS, the main class needed for the communication with the PL is Groebner class. This architecture has been drawn from previous extension of the IS. The class Groebner contains three objects:
The library is based on the following software:
This application uses the standard browser architecture to allow a user to use a number of different FRISCO components to solve problems connected to the design of filter banks for digital signal processing. While the browser architecture turned out not to be ideal for a number of reasons, it does provide an environment where a user who is not an expert in the FRISCO components can use them in an effective way.
The application considers six problems in the literature of Digital Signal Processing (DSP) and shows how the construction of filters and filter banks in these problems can be done by solving algebraic systems of equations. For each problem or model, there is a built-in sequence of computational steps where the user can choose from possibly several tools to carry out a particular operation.
This application comprises a number of related parts, outlined below.
At this moment another two projects, involving FRISCO partners, are under preparation: the first one dealing with the analysis and design of parallel manipulators (arising from the third application, Deliverable 5.4.1) and the second one devoted to the analysis of hybrid automata by using Quantifier Elimination algorithms (see 8.1.3).