How to linearize a constraint of the form of a product?

57 Views Asked by At

Is there a way to linearize a constraint of the form:

$$\prod\limits_{ i=1 }^{ n }y_i\geqslant b,$$

where $y_i$ are discrete variables in the set $\{1,2,\ldots,2^m\}$ for some $m>2$ and $b$ is a positive real number.

1

There are 1 best solutions below

2
On BEST ANSWER

Consider \begin{equation} \textrm{log} \left( \prod_{i=1}^n y_i \right) = \sum\limits_{i=1}^{n} \textrm{log}(y_i) \geq \textrm{log}(1) = 0 \end{equation}

As $y_i = 2^{k_i}$ then \begin{equation} \textrm{log}(y_i) = \textrm{log}\left(2^{k_i}\right) = k_i \textrm{log}(2) \end{equation}

Therefore an equivalent linearized constraint is: \begin{equation} \sum\limits_{i=1}^{n} k_i \geq 0 \end{equation}

But as $k_i \in \mathbb{N}$ the constraint is always valid.