CGAL::Quadratic_program_pricing_strategy

#include <CGAL/QP_options.h>

Definition

This is an enumeration type containing the values QP_CHOOSE_DEFAULT, QP_DANTZIG, QP_PARTIAL_DANTZIG, QP_FILTERED_DANTZIG, QP_PARTIAL_FILTERED_DANTZIG, andQP_BLAND.

It indicates the pricing strategy to be used in solving a linear or quadratic program. This strategy determines how the solver gets from one intermediate solution to the next during any of its iterations.

Here we briefly describe when to choose which strategy.

QP_CHOOSE_DEFAULT

This is the default value of the pricing strategy in Quadratic_program_options, and it lets the solver choose the strategy that it thinks is most appropriate for the problem at hand. There are only few reasons to deviate from this default, but you are free to experiment, of course.

QP_PARTIAL_DANTZIG

If the input type is not double, this is usually the best choice for linear and quadratic programs of medium size.

QP_DANTZIG

If the input type is not double, this can sometimes make a difference (be faster or slowe) than QP_PARTIAL_DANTZIG for problems with a high variable/constraint or constraint/variable ratio.

QP_PARTIAL_FILTERED_DANTZIG

If the input type is double, this is usually the best choice for linear and quadratic programs of medium size. If the input type is not double, this choice is equivalent to QP_PARTIAL_DANTZIG.

Note: filtered strategies may in rare cases fail due to double exponent overflows, see Section 8.8.1. In this case, the slower fallback option is the non-filtered variant QP_PARTIAL_DANTZIG of this strategy.

QP_FILTERED_DANTZIG

If the input type is double, this can sometimes make a difference (be faster or slowe) than QP_PARTIAL_FILTERED_DANTZIG for problems with a high variable/constraint or constraint/variable ratio. If the input type is not double, this choice is equivalent to QP_DANTZIG.

Note: filtered strategies may in rare cases fail due to double exponent overflows, see Section 8.8.1. In this case, the slower fallback option is the non-filtered variant QP_DANTZIG of this strategy.

QP_BLAND

This is hardly ever the most efficient choice, but it is guaranteed to avoid internal cycling of the solution algorithm, see Section 8.8.2.

See Also

Quadratic_program_options