Pseudo-Boolean function

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In mathematics and optimization, a pseudo-Boolean function is a function of the form

f:𝐁n→ℝ,

where B = {0, 1} is a Boolean domain and n is a nonnegative integer called the arity of the function. A Boolean function is then a special case, where the values are also restricted to 0 or 1.

Representations

[edit | edit source]

Any pseudo-Boolean function can be written uniquely as a multi-linear polynomial:[1][2]

f(𝒙)=a+βˆ‘iaixi+βˆ‘i<jaijxixj+βˆ‘i<j<kaijkxixjxk+…

The degree of the pseudo-Boolean function is simply the degree of the polynomial in this representation.

In many settings (e.g., in Fourier analysis of pseudo-Boolean functions), a pseudo-Boolean function is viewed as a function f that maps {βˆ’1,1}n to ℝ. Again in this case we can uniquely write f as a multi-linear polynomial: f(x)=βˆ‘IβŠ†[n]f^(I)∏i∈Ixi, where f^(I) are Fourier coefficients of f and [n]={1,...,n}.

Optimization

[edit | edit source]

Minimizing (or, equivalently, maximizing) a pseudo-Boolean function is NP-hard. This can easily be seen by formulating, for example, the maximum cut problem as maximizing a pseudo-Boolean function.[3]

Submodularity

[edit | edit source]

The submodular set functions can be viewed as a special class of pseudo-Boolean functions, which is equivalent to the condition

f(𝒙)+f(π’š)β‰₯f(π’™βˆ§π’š)+f(π’™βˆ¨π’š),βˆ€π’™,π’šβˆˆπn.

This is an important class of pseudo-boolean functions, because they can be minimized in polynomial time. Note that minimization of a submodular function is a polynomially solvable problem independent on the presentation form, for e.g. pesudo-Boolean polynomials, opposite to maximization of a submodular function which is NP-hard, Alexander Schrijver (2000).

Roof Duality

[edit | edit source]

If f is a quadratic polynomial, a concept called roof duality can be used to obtain a lower bound for its minimum value.[3] Roof duality may also provide a partial assignment of the variables, indicating some of the values of a minimizer to the polynomial. Several different methods of obtaining lower bounds were developed only to later be shown to be equivalent to what is now called roof duality.[3]

Quadratizations

[edit | edit source]

If the degree of f is greater than 2, one can always employ reductions to obtain an equivalent quadratic problem with additional variables. One possible reduction is

βˆ’x1x2x3=minz∈𝐁z(2βˆ’x1βˆ’x2βˆ’x3)

There are other possibilities, for example,

βˆ’x1x2x3=minz∈𝐁z(βˆ’x1+x2+x3)βˆ’x1x2βˆ’x1x3+x1.

Different reductions lead to different results. Take for example the following cubic polynomial:[4]

f(𝒙)=βˆ’2x1+x2βˆ’x3+4x1x2+4x1x3βˆ’2x2x3βˆ’2x1x2x3.

Using the first reduction followed by roof duality, we obtain a lower bound of βˆ’3 and no indication on how to assign the three variables. Using the second reduction, we obtain the (tight) lower bound of βˆ’2 and the optimal assignment of every variable (which is (0,1,1)).

Polynomial Compression Algorithms

[edit | edit source]

Consider a pseudo-Boolean function f as a mapping from {βˆ’1,1}n to ℝ. Then f(x)=βˆ‘IβŠ†[n]f^(I)∏i∈Ixi. Assume that each coefficient f^(I) is integral. Then for an integer k the problem P of deciding whether f(x) is more or equal to k is NP-complete. It is proved in [5] that in polynomial time we can either solve P or reduce the number of variables to O(k2logk). Let r be the degree of the above multi-linear polynomial for f. Then [5] proved that in polynomial time we can either solve P or reduce the number of variables to r(kβˆ’1).

See also

[edit | edit source]

Notes

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).

References

[edit | edit source]
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).