Integer programming: Constraint on binary variable based on parameter value I have a set of employees $E$ that I want to allocate to a set of rooms $R$, with indices $e$ and $r$ respectively. A binary variable $x_{er}$ is 1 if an employee $e$ is allocated to a room $r$, 0 otherwise. Each room has a priority for each employee, given by the parameter $V_{er}$, which is an integer value. Each employee has a prioritized preferred list of rooms, i.e. employee #2 might prefer room 3 first, room 5 second and room 1 third.  How can you ensure that no employee is assigned to a room over an employee with a higher priority for that room, represented as a constraint for an integer program?
Additional comments
The problem is to be solved as a minimization problem, where the objective is to allocate each employee to a room with as high preference as possible, without violating the constraint I am describing above. An employee getting its second preferred room is punished with a cost $W2$, getting its third preferred room is punished with a cost $W3$ and so on, where $W3$ > $W2$. 

You can enforce the rule with a linear "conflict" constraint $$x_{e_1,r_1} + x_{e_2,r_2} \le 1$$ if $V(e_1,r_1) < V(e_2,r_1)$ and $V(e_2,r_2) < V(e_2,r_1)$.
