-1
$\begingroup$

When I tried to solve an one-to-one assignment problem, I constructed it as the following optimization problem, which is a min-max optimization problem with the optimization objective being functions.

Define a permutation mapping $\sigma(\cdot):\mathcal{V}\longmapsto\mathcal{V}$ with $\mathcal{V}=\{1,2,\dots,N\}$, which can transform an integer in $\mathcal{V}$ consisting of $1,2,\dots,N$ into another integer. For instance, given a identity mapping $\sigma_0(\cdot)$, one has that $\sigma_0(i)=i$ for $i\in\mathcal{V}$. Given a constant matrix $T$ and its element can be denoted as $T_{i,j}$.

Now, I want to solve the optimization problem $\min_{\sigma}\max_{i\in\mathcal{V}}T_{\sigma(i),i}$, and what method should I use to solve it?

$\endgroup$
4
  • $\begingroup$ Take a square matrix of zeros and ones. Can you find a permutation of the columns such that the diagonal has no zero? If so, you can easily find an answer for your problem $\endgroup$
    – Exodd
    Commented Jul 3 at 13:32
  • $\begingroup$ Could you explain it in more detail? I cannot understand it. $\endgroup$
    – Jiayu Zou
    Commented Jul 3 at 13:43
  • $\begingroup$ Do you mean "transform an integer into another integer"? I don't understand why you write "transform a permutation into another permutation". $\endgroup$
    – D.W.
    Commented Jul 3 at 19:40
  • $\begingroup$ Please edit your post to address the feedback provided. Just deleting the word "interesting" from the title is not sufficient. $\endgroup$
    – D.W.
    Commented Jul 18 at 6:41

3 Answers 3

2
$\begingroup$

Let $S_m$ be the $0$-$1$ matrix with $S_{i,j} = 1$ if and only if $T_{i,j} \leq m$. Then $\min_\sigma \max_i T_{\sigma(i),i} \leq m$ if and only if the bipartite graph whose bipartite adjacency matrix is $S_m$ has a perfect matching. To find $\min_\sigma \max_i T_{\sigma(i),i}$, simply try as $m$ every $T_{i,j}$ in order and use your favorite efficient algorithm for bipartite perfect matching.

$\endgroup$
3
  • $\begingroup$ Thank you for your solutions! I have one question and want to ask you in more detail: 1) Could you explain how to transform the problem $\min_{\sigma}\max_{i}T_{\sigma(i),i}\leq m$ into the perfect matching $S_m$? $\endgroup$
    – Jiayu Zou
    Commented Jul 4 at 4:21
  • $\begingroup$ @JiayuZou you want some $\sigma$ for which every $T_{\sigma(i),i}$ is at most $m$, so we should only 'use' the entries of $T$ which are at most $m$ --- this is given by $S_m$. A perfect matching in a bipartite graph can be identified with a permutation using the bipartite adjacency matrix of the graph in precisely the way you want. $\endgroup$ Commented Jul 4 at 13:59
  • $\begingroup$ Thank you very much! $\endgroup$
    – Jiayu Zou
    Commented Jul 7 at 13:11
0
$\begingroup$

You can solve the problem via mixed integer linear programming as follows. For $i,j\in \mathcal{V}$, let binary decision variable $x_{ij}$ indicate whether $\sigma(i)=j$. Let decision variable $z$ represent $\max_{i\in \mathcal{V}} T_{\sigma(i),i}$. The problem is to minimize $z$ subject to \begin{align} \sum_{j\in \mathcal{V}} x_{ij} &=1 &&\text{for $i\in \mathcal{V}$} \tag1\label1 \\ \sum_{i\in \mathcal{V}} x_{ij} &=1 &&\text{for $j\in \mathcal{V}$} \tag2\label2 \\ \sum_{j\in \mathcal{V}} T_{ji} x_{ij} &\le z &&\text{for $i\in \mathcal{V}$} \tag3\label3 \end{align} Constraints \eqref{1} and \eqref{2} enforce that $\sigma$ is a permutation. Constraint \eqref{3} enforces the minimax objective.

$\endgroup$
5
  • $\begingroup$ Thank you for your solutions! Can such a mixed integer linear programming problem get globally optimal solutions by the existing solvers? And how long do these solvers take? $\endgroup$
    – Jiayu Zou
    Commented Jul 5 at 8:50
  • $\begingroup$ Yes, MILP solvers can return globally optimal solutions. The time depends on the problem size and the solver. Do you have sample data you can share? $\endgroup$
    – RobPratt
    Commented Jul 5 at 13:21
  • $\begingroup$ I am so sorry I cannot provide a sample of a large enough scale. Could you recommend a MILP solver so I can construct some simple samples to try it? $\endgroup$
    – Jiayu Zou
    Commented Jul 6 at 7:23
  • $\begingroup$ I recommend SAS. Disclaimer: I work for SAS. $\endgroup$
    – RobPratt
    Commented Jul 6 at 21:29
  • $\begingroup$ Thank you very much! $\endgroup$
    – Jiayu Zou
    Commented Jul 7 at 13:11
0
$\begingroup$

Thanks to the idea of Bob Krueger, it seems that I have found an algorithm: Given a $m=\min_{i,j}T_{i,j}$, let $S_m$ be the 0-1 matrix with $S_{i,j}=1$ if and only if $T_{i,j}\leq m$. Then, look for a perfect matching of $S_m$. If the matching cannot be found, then let $m$ be the second-smallest $T_{i,j}$ (If it cannot be found, then third, fourth...); Else, find all of the matchings and pick the minimal matching with maximal $T_{i,j}$ from it.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged .