Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

SCIL::QuadRef Class Reference

The symbolic constraint for Quadratic Reformulation. More...

#include <quadref.h>

Inheritance diagram for SCIL::QuadRef:
Inheritance graph
[legend]
Collaboration diagram for SCIL::QuadRef:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QuadRef (ILP_Problem &IP_)
 Creates an instance of QuadRef.
status standard_separation (subproblem &S)
 Separates the SQK3 constraints from the internal SQK3 list (lc).
virtual void init (subproblem &S)
 Not necessary for this constraint.
status feasible (solution &S)
 Not necessary for this constraint.
void addCons (cons_obj *c)
 Every constraint from the ILP is added to cons_list via this method.
void hashPair (var &x, var &y, var &l)
 Inserts a pair of variables with the corresponding linearization variable into the hashmap.
void reformulate_forced_constraints ()
 Reformulates the constraints in cons_list which have a reformulation status flag other than NONE or CHECK.
void check_and_reformulate ()
 Reformulates each constraint in cons_list with SQK2 if every linearization variable is already present in the ILP.
cons_objreformulate_SQK2 (cons_obj *c, bool force)
 Reformulates a given constraint using SQK2 and returns the reformulated constraint.
void reformulate_SQK3 (cons_obj *c, bool force)
 Reformulates a given constraint using SQK3 and adds the reformulated constraints to lc.

Detailed Description

This symbolic constraint checks wether constraints should be reformulated or not. The two essential methods for reformulation are SQK2 and SQK3. While SQK2 adds one single quadratic constraint to the ILP, SQK3 adds n+1 quadratic constraints to an internal list, where n denotes the number of variables in the corresponding linear constraint. These SQK3 constraints are separated during the optimization process.

This symbolic constraint is for internal use only, and is not supposed to be added by the user separately. Though one can add a reformulation status flag to every manually added constraint to change the reformulation behaviour for that constraint.

Definition at line 21 of file quadref.h.


The documentation for this class was generated from the following files:
Generated on Mon Mar 28 22:03:52 2011 for SCIL by  doxygen 1.6.3