    Next: Solutions and Distinct solutions Up: Mathematical background Previous: Managing the bisection and   Contents

An alternative: the single bisection

A possibility to reduce the combinatorial explosion of the previous algorithm is to bisect not all the variables i.e. to use the full bisection mode, but only one of them (it must be noted that the algorithms in ALIAS will not accept a full bisection mode if the number of unknowns exceed 10). This may reduce the computation time as the number of function evaluation may be reduced. But the problem is to determine which variable should be bisected. All the solving algorithms of ALIAS may manage this single bisection by setting the flag Single_Bisection to a value different from 0. The value of this global variable indicates various bisection modes. Although the behavior of the mode may change according to the algorithm here are the possible modes for the general solving algorithm and the corresponding values for Single_Bisection:
• 1 : we just split the variable having the largest width (valid for all algorithms). Note however that it is still possible to order the bisection i.e. to split first a subset of the unknowns until their width is small (i.e. lower than ALIAS_Accuracy, then another subset and so on. This is obtained by setting flag ALIAS_Ordered_Bisection to 1 and defining an integer matrix ALIAS_Order_Bisection whose rows indicate the bisected subset and should end by 0. For example if this matrix has as rows [1,3,0],[2,4,5,0], then the algorithm will first bisect the unknowns 1 and 3 until their width is small, then the unknowns 2,4,5. If all unknowns indicated in the rows of the matrix have a small width, then the bisection algorithm revert to the normal behavior.
• 2: to determine the variable that will be bisected we use the following approach: we compute the order criteria for the two boxes that will result from the bisection of variable and retain the lowest criteria . The variable that will be bisected is the one that has the lowest except if for at least one variable the interval evaluation of the function for or does not contain 0. In that case the variable that will be bisected is the one that verify the previous property and which has the lowest among all the input intervals having the property. However to avoid bisecting over and over the same variable we use another test: let be the width of the interval and be the maximum of all the . If we don't consider the variable as a possible bisection direction. It is also possible to mix this mode with mode 1. If the integer variable ALIAS_RANDG is set to a strictly positive value then ALIAS_RANDG bisection will be performed using mode 2 while the next bisection will be performed using mode 1 and the process will be repeated
• 3, 4 : similar to 1
• 5 : we use a round-robin mode i.e. each variable is bisected in turn (first , then and so on) unless the width of the input intervals is less than the desired accuracy on the variable, in which case the bisected variable is the next one having a sufficient width (valid for all algorithms) The flag ALIAS_Round_Robin is used to indicate at each bisection which variable should be bisected.
• 6: we emulate the smear function (see section 2.4.1.3) with an estimation of the gradient based on finite difference (procedure Select_Best_Direction_Grad)
• 7: here again we use the flag ALIAS_Ordered_Bisection set to 1 and defining an integer matrix ALIAS_Order_Bisection whose rows indicates an order for bisecting the unknowns. The largest variable in the first row will be bisected first and so on until all the variables in a row have a width lower than ALIAS_Accuracy. We then proceed to the second row. As soon as all variables in all rows have a width lower than ALIAS_Accuracy we use the bisection 1.
• 20: the user has defined its own bisection procedure, see section 11.3
For all general purpose solving procedures the number of the variable that has been bisected is available in the integer ALIAS_Selected_For_Bisection.

There is another mode called the mixed bisection: among the variables we will bisect variables, which will lead to new boxes. This mode is obtained by setting the global integer variable
ALIAS_Mixed_Bisection to . Whatever is the value of Single_Bisection we will order the variables according to their width and select the variables having the largest width.    Next: Solutions and Distinct solutions Up: Mathematical background Previous: Managing the bisection and   Contents
Jean-Pierre Merlet 2012-12-20