Quantcast
Channel: Yet Another Math Programming Consultant
Viewing all articles
Browse latest Browse all 809

Scheduling Business Dinners

$
0
0

In (1) a problem is discussed where an optimization model can help us.

We want to set up \(N\) business dinners attended by customers and suppliers with the following peculiarities:

  • there are \(T\) tables,
  • we need to seat \(C\) customers and \(S\) suppliers,
  • at most \(Maxc\) customers and at most \(Maxs\) suppliers can sit at a single table,
  • a customer \(c\) and supplier \(s\) must sit at the same table exactly once,
  • two suppliers can only sit at the same table at most once

We want to minimize the number of dinners \(N\) we need to organize such that all these constraints are met.


Restaurant Flo in Barcelona, Spain [link]

The data

We use the example data from (1):

  • 6 customers, 5 suppliers
  • \(Maxc=3\), \(Maxs=2\)
  • 2 tables

A (non-optimal) solution is given:

image

An MINLP model

We start with our central binary variable \(x_{i,t,n}\in\{0,1\}\) indicating if person \(i\) sits at table \(t\) in dinner round \(n\). With this we can develop a Mixed Integer Nonlinear Programming model:

\[\boxed{\begin{align}
\min\>&\sum_n y_n \\
        &\sum_t x_{i,t,n} \le 1 &&\forall i,n&&\text{sit at one table}\\
        &\sum_s x_{s,t,n} \le Maxs &&\forall t,n&&\text{limit suppliers at table}\\
        &\sum_c x_{c,t,n} \le Maxc &&\forall t,n&&\text{limit customers at table}\\
        &\sum_{t,n} x_{c,t,n}\cdot x_{s,t,n} = 1&&\forall c,s&&\text{customers and suppliers meet exactly once}\\
       &\sum_{t,n} x_{s1,t,n} \cdot x_{s2,t,n} \le 1&&\forall s1,s2&&\text{suppliers sit at most once at the same table}\\
       &y_n = \max_{i,t} \{x_{i,t,n}\} && \forall n &&\text{we need a dinner round}\\
       &x_{i,t,n},y_n \in \{0,1\}
\end{align}}\]

We have some binary multiplications in here and a \(\max\) function. These constructs can be linearized with a little bit of effort.

A linearized model

The binary multiplication can be linearized using a standard reformulation:

\[\begin{matrix}
\boxed{\begin{align}&z=x\cdot y\\
                             &x,y,z\in \{0,1\}\end{align}}&\Longleftrightarrow&
\boxed{\begin{align}&z \le x\\&z \le y\\&z\ge x+y-1\\&x,y,z\in \{0,1\}\end{align}}
\end{matrix}\]

Other tricks we can use:

  • When checking if suppliers \(s1,s2\) are at the same  table, we can skip comparing \(s2,s1\). Similarly we don’t need to check \(s1,s1\). Hence we only compare \(s1,s2\) with \(s1<s2\).
  • We can simplify the binary multiplication further in the supplier case: we only need to make sure that \(z \ge x+y-1\). That will save us some constraints.
  • The constraint \(y_n = \max_{i,t} \{x_{i,t,n}\}\) can be written as a collection of inequalities \(y_n \ge x_{i,t,n}\) (we use the objective to help us drive down \(y_n\)).
  • Optionally we can require that \(y_n \ge y_{n+1}\), This makes the solutions more readable but also reduces symmetry.

The complete linearized model can look like:  

image

image

An optimal solution is:

image

 

References

  1. Alejandra Estanislao, Frédéric Meunier, “A Business Dinner Problem”, Journal of Combinatorial Mathematics and Combinatorial Computing, 97, 173-188, 2016. [link]

Viewing all articles
Browse latest Browse all 809

Trending Articles