On Computing Ranges of Polynomials - Some Improvements to the Bernstein Approach

Download Presentation

On Computing Ranges of Polynomials - Some Improvements to the Bernstein Approach

Loading in 2 Seconds...

- 60 Views
- Uploaded on
- Presentation posted in: General

On Computing Ranges of Polynomials - Some Improvements to the Bernstein Approach

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

On Computing Ranges of Polynomials - Some Improvements to the Bernstein Approach

P. S. V. Nataraj

Shashwati Ray

IIT Bombay

Presented at the Second Taylor Model Workshop, Miami, Dec. 2003

Indian Institute of Technology, Bombay 2003

- Introduction
- Bernstein forms :
- Definition
- Properties
- Basis conversion

- Range calculations
- Important theorems
- Subdivision
- Subdivision direction selection strategies

- New propositions
- Comparison with Globsol
- Examples and conclusion
- Future work

INTRODUCTION

Polynomials are encountered in Engineering and Scientific Applications.

Required to find bounds for the range of polynomials over an interval.

Our method based on expansion of multivariate polynomial into Bernstein form.

- Avoids function evaluations – may be otherwise costly for polynomials of high degrees.
- Nice features about range enclosures with Bernstein form:
- Information when enclosure is exact.

- Sharpness of enclosure can be improved by elevating the Bernstein degree or by subdivision of the domain

- Any polynomial in power form is represented as
- Bernstein form of representation is
- Bernstein coefficientsare given by

- Bernstein functions on [0,1] are defined by
- On a general interval the Bernstein functions are defined as
- Each set of coefficients ai or bin can be computed from the other (i.e., power form to Bernstein form).

- On unit interval a polynomial’s equivalent power and Bernstein forms
- Using matrix multiplication p(x) = XA = BXB
- X is the variable (row) matrix.
- A is the coefficient (column) matrix
- BXis the Bernstein basis (row) matrix
- B is the Bernstein coefficient (column) matrix

- After certain computations, BXB = XUXB
- UX is a lower triangular matrix

- BX = XWXVXUX
- WX is an upper triangular matrix
- VX is a diagonal matrix

- XA = BXB
- XA = XWXVXUX B
- B=(UX)-1(VX)-1(WX)-1A

- For a bivariate case
- X1and X2 are variable matrices

- By analogy with univariate case

- Theorem 1 : The minimum and maximum Bernstein coefficients give an enclosure of the range of polynomial on the given interval.
- Theorem 2 :Vertex condition : If the minimum and maximum Bernstein coefficients of polynomial in Bernstein form occur at the vertices of the Bernstein coefficient array, then the enclosure is the exact range.
- Theorem 3 : Bernstein approximations converge to the range and the convergence is at least linear in the order of approximations.

- Minimum & maximum Bernstein coefficients enclose the range of the polynomial
- Vertex condition not satisfied – subdivide in the chosen component direction
- Calculate Bernstein coefficient of p(x) on all these subboxes
- Check vertex condition on each subbox
- Find range of polynomial

- Rule A
- Direction chosen is cyclic

- Rule B (derivative based)
- Find an upper bound for the absolute value of the partial derivative (from its Bernstein form) in the rth direction
- Compute the same for each direction
- The direction for which this is maximum is selected as the optimal direction for bisection

- Rule C (derivative based)
- Find an upper bound for the absolute value of the partial derivative (from its Bernstein form) in the rth direction
- Find the product of this upper bound and the degree of rth variable
- Compute the same for each direction
- The direction for which this is maximum is selected as the optimal direction for bisection

- Rule D (derivative based)
- Find an upper bound for the absolute value of the partial derivative (from its Bernstein form) in the rth direction
- Find the product of this upper bound and the edge length
- Compute the same for each direction
- The direction for which this is maximum is selected as the optimal direction for bisection

- Rule E (max width)
- Bisection is done along the component direction of maximal width

- Rule F (randomized)
- Pick a box randomly from the current list
- Bisect it in all component directions
- Find the maximal width of the polynomial over both these boxes
- Choose the component direction where this width is least

- Conventional method is veryinefficient for higher dimensional polynomials
- Even the Matrix multiplication method cannot begeneralized to higher dimensional polynomials

- The existing rules generally need large computation times.
- Certain existing rules are grosslyinefficient, especially for higher dimensional polynomials.

- Fortran 95 can not readily cater to more than six dimensional arrays.
- Bernstein coefficients generated are stored in multidimensional arrays
- For getting sharp enclosures, subdivision usually creates large amount of data
- All these are found to heavily slow down computations

- We propose new tools for
- Bernstein Coefficient Computations
- Subdivision Direction Selection
- Acceleration devices

- Matrix Method
- This gives

- Extending the above to trivariate case
- where transpose means converting 3rd coordinate direction to 2nd , 2nd coordinate direction to 1st , 1st coordinate direction to 3rd
- The same logic can be extended to the l-variate case

- For a 3-dimensional case instead of considering the polynomial coefficient matrix A as a 3 dimensional array, it can be considered as a matrix with 0 to n1 rows and 0 to (n2+1)(n3+1) –1 columns
- After the third transpose and reshape the ‘A’ matrix would come in its original form
- The same is shown as figures in the report.

- Inputs :
- Degree of each variable
- Widths of each interval component
- Lower end point of each interval component
- Polynomial coefficients “a” in matrix form

- Output : Bernstein coefficient “a” in matrix form
- BEGIN Algorithm
- Compute UX, VX and WX for each variable, j =1,2,…, n
- Compute their inverses (UX)-1, (VX )-1 and (WX)-1 for j =1,2,…, n
- Compute their product Mj for j =1,2,…, n
- FOR j =1,2,…, n Set a = Mj a
b= transpose(a)

a = reshape(b)

- END FOR

- END Algorithm

- Comparison is done between conventional method and the proposed Matrix method
- All problems are taken from Verschelde’s PHC pack (database of polynomial systems)
- Both methods generate the same Bernstein coefficients
- Proposed method gives results for all the examples
- Conventional method takes much longer time; it does not give results for some examples even after a long time.

Time in seconds taken by the Matrix and the Conventional methods to compute Bernstein coefficients

- Solution box is the box where ‘vertex property’ of the Bernstein coefficients is satisfied.
- Solution patch is given by enclosure of the Bernstein coefficients over the solution box.
- Current range is the hull of all solution patches.

- Proposed Rule 1 : Select patch with minimum hull
- Find the patches with smallest and largest Bernstein coefficients from the entire list of patches
- Find the respective distance of smallest and largest Bernstein coefficient to the infimum and supremum of the current range
- Select that patch as the onewhich gives the largest distance, and bisect this selected patch in all component directions

- Let a 3-d polynomial be given as
- The polynomial coefficient and the Bernstein coefficient matrices are given as
- Let at some stage the Current range be given by [1,20]

- Let the two existing patches in the entire list be
- Minimum and maximum value of Bernstein coefficients are 0.5 and 7.70 respectively
- The respective distances are (1-0.5) = 0.5 and (20-7.70) = 12.30
- Select the patch which has 7.70 as the Bernstein coefficient

- Select patch with minimum hull
- Hull of the Bernstein coefficients over both the generated subboxes is found out in each direction
- The selected bisection direction is the one which gives the minimal hull.

- Proposed Rule 2 : Randomized box with minimum hull
- Choose a box randomly from the current list.
- The chosen box is bisected along each and every component direction.
- Hull of the Bernstein coefficients over both the generated subboxes is found out in each direction.
- The selected bisection direction is the one which gives the minimal hull.

- All problems are taken from Verschelde’s PHC pack (database of polynomial systems)
- Comparison of the bisection direction selection rules, on the basis of the following performance metrics
- Number of solution boxes where vertex property/simplified vertex condition is satisfied
- Number of subdivisions
- Maximum patch list length
- Computation time in seconds

- With the proposed rules we are able to solve all the examples
- With rules A, B, C, D, E and F we are able to solve 90%, 70%, 70%, 50%, 90% and 90% of the examples, respectively

- Comparison is done with all the existing rules (except rule D, which is unable to solve half the problems).
- Proposed rules are found to be the most efficient, in terms of every performance metric
- Reduction in number of solution boxes compared to Rule A is 82%, Rule B is 83%, Rule C is 83%, Rule E is 81% and Rule F is 84%
- Reduction in number of subdivisions compared to Rule A is 84%, Rule B is 83%, Rule C is 83%, Rule E is 81% and Rule F is 84%

- Reduction in the maximum list length compared to Rule A is 85%, Rule B is 51%, Rule C is 46%, Rule E is 34% and Rule F is 63%
- Reduction in the computational time compared to Rule A is 98%, Rule B is 93%, Rule C is 93%, Rule E is 91% and Rule F is 93%
- Both the rules give the same amount of reductions

- Cut off test
- Let the enclosure of Bernstein coefficients over a box be included in the current range.
- This box can be deleted from further processing.
- Any further subdivision of this box is not going to improve the current range.
- Therefore, unnecessary subdivisions are eliminated

- Simplified Vertex Condition
- Let smallest Bernstein coefficient in a patch appear at the vertex ; and the upper bound of this patch be included in the current range
- This patch can be taken to be a solution patch
- No further subdivision is required, as it would not give any further improvement in the current range
- Same is true if the largest Bernstein coefficient in a patch is appearing at the vertex and the lower bound of the patch is included in the current range

- Monotonicity Test
- If the polynomial is monotonic w.r.t any direction on a box
- If the box is in the interior
- This box can be rejected

- If the box is not in the interior
- This box is retained
- No subdivision of this box in that direction

- If the box is in the interior
- Avoids unnecessary subdivisions

- If the polynomial is monotonic w.r.t any direction on a box

- Inputs :
- Maximum degree of each variable of the polynomial
- Coefficients of the polynomial in the form of a matrix
- Initial domain box
- Accuracy tolerances

- Outputs:
- An enclosure of the range of the specified accuracy
- Number of solution boxes
- Number of subdivisions
- Maximum patch list length used to store the patches

- BEGIN Algorithm
- Evaluate Bernstein coefficients in matrix form; put them as a patch in a list.
- Set flags for simplified vertex condition, cut off test and monotonicity test
- Take the first patch from the list and check for ‘vertex’/’simplified vertex’ condition.
- If ‘true’, then update current range.
- Else, perform ‘cut off test’.

- If list is not empty, choose a component direction based on a bisection rule

- Take each patch from list, do the monotonicity test. If test is passed, proceed to next step; else discard tested box and choose next patch from the list.
- Perform the necessary subdivision in the given direction and evaluate the new Bernstein coefficients
- Update the list of patches and remove the tested box
- Take the next patch from the list and perform the same operations, till the list is empty
- Get the range of the polynomial from the current range

- We compare our results with the results obtained with Globsol
- All problems are taken from Verschelde’s PHC pack, a database of polynomial systems.
- Comparison of the computation time required by both the algorithms in terms of values of :
- Ratio
- Percent reduction

- In one of the examples Globsol was unable to give any result (arithmetic exception core dumped) indicated by ‘*’ in the table.
- Compared to Globsol, the improved Bernstein method gives an average percent reduction in computational time of 47.38%

- The new algorithm Range is faster than Globsol in fourteen out of eighteen problems.
- Further, on the average, we obtain considerable reductions in computation time with the proposed Algorithm Range.

- Modify the new algorithm after incorporating certain modifications in the Monotonicity test , thusfurther speeding up the algorithm Range
- Integrate the code with COSY package of Berz et al.
- Apply the method to Engineering problems, especially control engineering !