The 10,000 instances of the XML100 dataset are in the <instances> folder. The instance name format is XML100_ABCD_EF, such that ABCD identifies the group as follows:
   A: Depot positioning (1. random, 2. centered, 3. cornered)
   B: Customer positioning (1. random, 2. clustered, 3. random-clustered)
   C: Demand distribution (1. unitary, 2. small values with large CV, 3. small values with small CV, 4. large values with large CV, 5. large values with small CV, 6. depending on quadrant, 7. many small values and few large values)
   D: Average route size (1. very short, 2. short, 3. medium, 4. long, 5. very long, 6. ultra long)
    
EF identifies the instance inside the group ABCD. For example, instance XML100_2216_01 is the first instance of the group with centered depot, clustered customers, unitary demands, and ultra long routes. There are 378 groups generated by the Cartesian product of {1,2,3}x{1,2,3}x{1,2,3,4,5,6,7}x{1,2,3,4,5,6} (possible values to ABCD), where the first 172 groups have 27 instances, whereas the other 206 groups have 26 instances.

All the solutions in <solutions> were proven to be optimal. The vast majority of these optimal solutions were found by VRPSolver (Pessoa et al., 2020; vrpsolver.math.u-bordeaux.fr), sometimes using customized parameterizations. Eighteen instances could only be solved using special branching rules and seventeen instances were solved by a Branch-and-Cut algorithm, as in Lysgaard et al. (2004) and Subramanian et al. (2011).  Both VRPSolver and BC approaches take advantage of very good initial solutions provided by HGS-CVRP (Vidal, 2022; github.com/vidalt/HGS-CVRP). 

A Python script <generate.py> is available to produce new XML100-like instances. 
Ex: "python generate.py 200 2 1 4 5 1 0" produces XML200_2145_01.vrp (call "python generator.py" to understand the arguments).

Script genXML100.sh produces the original XML100 instances, if run with Python 2.7.  Running with Python versions  >= 3 produces different instances.

References
Lysgaard, J. et al. 2004. A new branch-and-cut algorithm for the capacitated vehicle routing problem. Math. Program., 100(2): 423–445.
Pessoa, A. et al. 2020. A generic exact solver for vehicle routing and related problems. Math. Program., 183(1): 483–523.
Subramanian, A. et al. 2011. Branch-and-cut with lazy separation for the vehicle routing problem with simultaneous pickup and delivery. Operations Research Letters 39.5, pp. 338–341.
Vidal, T. 2022. Hybrid genetic search for the CVRP: Open-source implementation and SWAP* Neighborhood. Computers & Operations Research 140, p. 105643.
