Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::DualFeasibleFunctionF0 Class Reference

#include <2d_orthogonal_packing.h>

Public Member Functions

 DualFeasibleFunctionF0 (IntegerValue max_x, IntegerValue k)
 
IntegerValue operator() (IntegerValue x) const
 x must be in [0, max_x].
 
IntegerValue LowestInverse (IntegerValue x) const
 

Detailed Description

If we have a container of size C and a parameter k taking values in [0, C/2], the Dual Feasible Function often named f_0^k(x) is equivalent to the operation of removing all values of size less than k, and symmetrically increasing to C the size of the large values. It is defined as:

/ C, if x > C - k,
const Variable x
Definition qp_tests.cc:127

f_0^k(x) = | x, if k <= x <= C - k, \ 0, if x < k.

This is a Maximal DFF. See for example [1] for some discussion about it.

[1] Clautiaux, François, Cláudio Alves, and José Valério de Carvalho. "A survey of dual-feasible and superadditive functions." Annals of Operations Research 179 (2010): 317-342.

Definition at line 221 of file 2d_orthogonal_packing.h.

Constructor & Destructor Documentation

◆ DualFeasibleFunctionF0()

operations_research::sat::DualFeasibleFunctionF0::DualFeasibleFunctionF0 ( IntegerValue max_x,
IntegerValue k )
inline

Definition at line 223 of file 2d_orthogonal_packing.h.

Member Function Documentation

◆ LowestInverse()

IntegerValue operations_research::sat::DualFeasibleFunctionF0::LowestInverse ( IntegerValue x) const
inline

Return the lowest integer y so that Dff(x) >= y. y must be in [0, Dff(max_x)].

Definition at line 244 of file 2d_orthogonal_packing.h.

◆ operator()()

IntegerValue operations_research::sat::DualFeasibleFunctionF0::operator() ( IntegerValue x) const
inline

x must be in [0, max_x].

Definition at line 230 of file 2d_orthogonal_packing.h.


The documentation for this class was generated from the following file: