[Couenne] Multilinear model formulations

Pietro Belotti pbelott at clemson.edu
Thu Mar 29 21:30:42 EDT 2012


Akshay,

> For a product written as x1*(\sum_i y_i), I guess there is only one 
> auxiliary created. or is the sum disaggregated ?

There are two auxiliaries:

w = \sum_i y_i
z = x1*w

The sum would be disaggregated only if expressed as \sum_i (x1 * y_i) 
(i.e., Couenne does not factor x1 if expressed this way).

Pietro

--
Pietro Belotti
Dept. of Mathematical Sciences
Clemson University
email: pbelott at clemson.edu
phone: 864-656-6765
web:   http://myweb.clemson.edu/~pbelott

On Thu, 29 Mar 2012, Akshay Gupte wrote:

> Hi Pietro,
>
> Thanks for your input. It surely helps a lot. I have one more question: 
> For a product written as x1*(\sum_i y_i), I guess there is only one 
> auxiliary created. or is the sum disaggregated ?
>
> Akshay.
>
> Sent from my iPad
>
> On Mar 28, 2012, at 3:42 PM, Pietro Belotti <pbelott at clemson.edu> wrote:
>
>> Akshay,
>>
>> some similar experiments I did (although that was long ago, with 
>> Couenne not even stable/0.1) suggest there is no difference in the 
>> performance w.r.t. the order in which one orders the bilinear terms.
>>
>> The reformulation step would produce a new problem (with auxiliaries) 
>> that would be the same whether or not you define those auxiliaries 
>> explicitly beforehand. Some difference in performance may come from the 
>> order in which products are created, but that is not easy to measure 
>> and I could not determine whether certain groupings are better than 
>> others.
>>
>>> For example, does this pre-empt any cut generation ? Is it able to 
>>> detect the original multilinear constraint from the new computational 
>>> graph and generate the same multi-term (if any) cuts as before ?
>>
>> Interesting point. First answer: the default options decompose all 
>> multilinear terms (x1 * x2 * ... * xn) into products of two variables 
>> using the recursive procedure of Ryoo and Sahinidis. Hence it 
>> subsequently forgets the set of terms it came from.
>>
>> Second: there are options in Couenne to add cuts for trilinear terms 
>> (see http://www.lix.polytechnique.fr/~liberti/quarticbook.pdf). Every 
>> product of four or more variables is decomposed as follows depending on 
>> the option "quadrilinear_decomp" in the option file:
>>
>> "rAI" (default): as in Ryoo and Sahinidis.
>>
>> "tri+bi": the multilinear terms is decomposed in as many trilinear 
>> terms as possible plus (possibly) one bilinear term.
>>
>> "bi+tri": a first bilinear term and as many trilinear terms as 
>> possible.
>>
>> "hier-bi": consecutive bilinear terms are grouped and reformulated with 
>> new auxiliaries, which are then grouped in turn (the structure is that 
>> of a balanced binary tree).
>>
>>> Are the user defined auxiliary variables considered as original 
>>> problem variables and hence preprocessed, bound tightened, branched 
>>> upon like all other variables ?
>>
>> Yes.
>>
>> Hope this helps.
>>
>> Regards,
>> Pietro
>>
>> --
>> Pietro Belotti
>> Dept. of Mathematical Sciences
>> Clemson University
>> email: pbelott at clemson.edu
>> phone: 864-656-6765
>> web:   http://myweb.clemson.edu/~pbelott
>>
>> On Wed, 28 Mar 2012, Akshay Gupte wrote:
>>
>>> Hi,
>>>
>>> I was just wondering the following: Suppose I formulate a multilinear 
>>> problem with AMPL where I replace each multilinear term with its 
>>> auxiliary variable and write explicit constraints for defining these 
>>> auxiliary variables. Is this likely to affect the performance of 
>>> Couenne in a significant way - good or bad ?
>>>
>>> For example, does this pre-empt any cut generation ? Is it able to 
>>> detect the original multilinear constraint from the new computational 
>>> graph and generate the same multi-term (if any) cuts as before ? Are 
>>> the user defined auxiliary variables considered as original problem 
>>> variables and hence preprocessed, bound tightened, branched upon like 
>>> all other variables ?
>>>
>>> Thanks,
>>> Akshay.
>>>
>>> Sent from my iPad
>>> _______________________________________________
>>> Couenne mailing list
>>> Couenne at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/couenne



More information about the Couenne mailing list