Does anyone have any idea of how I can linearize the following logical constraints set?

$$(\sum_{t'=1}^t x_{it'}<1 \quad \rightarrow \quad \lambda_{it}=0), \quad \forall i,t$$

$$(\sum_{t'=1}^t x_{it'}=1 \quad \rightarrow \quad \lambda_{it}=1), \quad \forall i,t$$

$$\lambda_{it} \in \textbf{boolean}$$

$$x_{it} \in [0,1]$$

asked 27 Dec '17, 03:06

monash's gravatar image

accept rate: 0%

edited 27 Dec '17, 03:08

You cannot. Strict inequalities are incompatible with mathematical programming. You can linearize, but only one of two relaxations. You either have to convert \(\ldots < 1\) to \(\ldots \le 1\) (which means \(\lambda_{it}\) can be either 0 or 1 if the sum equals 1), or \(\ldots < 1\) to \(\ldots \le 1 - \epsilon\) for some \(\epsilon > 0\) (in which case any value between \(1-\epsilon\) and 1 for the sum becomes infeasible).

Linearizing implications is a FAQ here, so details for whichever one you choose shouldn't be too hard to find using the search functionality.


answered 27 Dec '17, 15:18

Paul%20Rubin's gravatar image

Paul Rubin ♦♦
accept rate: 19%

edited 27 Dec '17, 15:20

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "Title")
  • image?![alt text](/path/img.jpg "Title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: 27 Dec '17, 03:06

Seen: 601 times

Last updated: 27 Dec '17, 18:07

OR-Exchange! Your site for questions, answers, and announcements about operations research.