Code and solutions for the best lower bounds of the MMDP instances used in the paper:


Daniel Cosmin Porumbel, Jin-Kao Hao, Fred Glover. A Simple and Effective Algorithm for the MaxMin Diversity Problem. Annals of Operations Research 186(1): 275-293, 2011.


1) The source code of our algorithm is available at: http://www.info.univ-angers.fr/pub/hao/mmdp/mmdp.zip.

In order for us to know who are using the code, please send us (hao@info.univ-angers.fr,daniel.porumbel@univ-artois.fr) an email when you download the code and cite the above paper in your publications when this is appropriate.

We make the code available only for the purpose of academic research. For other uses, please contact the authors.

2) We present a certificate for a new lower bound (for Ran 500 3) and there are three instances for which we did not reach the existing lower bound (see [Della Croce et. al., A heuristic approach for the max-min diversity problem based on max-clique])

ALowerBoundRan 500 3.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 55)
Geo 500 10.sol.txt: MMDP Objective function value = 159.976 ; (previous best known bound = 159.98)
Geo 500 12.sol.txt: MMDP Objective function value = 71.4635 ; (previous best known bound = 71.46)
Geo 500 13.sol.txt: MMDP Objective function value = 134.465 ; (previous best known bound = 134.47)
Geo 500 14.sol.txt: MMDP Objective function value = 111.631 ; (previous best known bound = 111.63)
Geo 500 15.sol.txt: MMDP Objective function value = 36.1775 ; (previous best known bound = 36.18)
Geo 500 16.sol.txt: MMDP Objective function value = 132.577 ; (previous best known bound = 132.58)
Geo 500 17.sol.txt: MMDP Objective function value = 129.491 ; (previous best known bound = 129.49)
Geo 500 18.sol.txt: MMDP Objective function value = 72.6545 ; (previous best known bound = 72.65)
Geo 500 19.sol.txt: MMDP Objective function value = 123.986 ; (previous best known bound = 123.99)
Geo 500 1.sol.txt: MMDP Objective function value = 124.789 ; (previous best known bound = 124.79)
Geo 500 20.sol.txt: MMDP Objective function value = 123.429 ; (previous best known bound = 123.43)
Geo 500 2.sol.txt: MMDP Objective function value = 13.7864 ; (previous best known bound = 13.79)
Geo 500 3.sol.txt: MMDP Objective function value = 165.039 ; (previous best known bound = 165.04)
Geo 500 4.sol.txt: MMDP Objective function value = 132.501 ; (previous best known bound = 132.5)
Geo 500 7.sol.txt: MMDP Objective function value = 132.514 ; (previous best known bound = 132.51)
Geo 500 8.sol.txt: MMDP Objective function value = 113.597 ; (previous best known bound = 113.6)
Geo 500 9.sol.txt: MMDP Objective function value = 168.959 ; (previous best known bound = 168.96)
Ran 500 10.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)
Ran 500 11.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 12.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 13.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 14.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 15.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 16.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 17.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 18.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 19.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 1.sol.txt: MMDP Objective function value = 55 ; (previous best known bound = 55)
Ran 500 20.sol.txt: MMDP Objective function value = 5 ; (previous best known bound = 5)
Ran 500 2.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)
Ran 500 3.sol.txt: MMDP Objective function value = 55 ; (previous best known bound = 55)
Ran 500 4.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)
Ran 500 5.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)
Ran 500 6.sol.txt: MMDP Objective function value = 55 ; (previous best known bound = 55)
Ran 500 7.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)
Ran 500 8.sol.txt: MMDP Objective function value = 55 ; (previous best known bound = 55)
Ran 500 9.sol.txt: MMDP Objective function value = 56 ; (previous best known bound = 56)

The files can be opend as text. The validity of each solution can be checked by searching the lowest value in the presented matrix -- the selected values are marked with G(prefix) and S (suffix) in the full matrix.
See instances at http://www.uv.es/rmarti/paper/mdp.html