data4co provides convenient dataset generators for the combinatorial optimization problem


License
MulanPSL-2.0
Install
pip install data4co==0.0.1a19

Documentation

Data4CO

PyPi version PyPI pyversions Downloads GitHub stars

A data generator tool for Combinatorial Optimization (CO) problems, enabling customizable, diverse, and scalable datasets for benchmarking optimization algorithms.

Current support

solver

Problem Base Impl. First Impl. Second Impl. Third Impl. Fourth Impl.
TSP TSPSolver ✔ LKH ✔ Concorde ✔ NAR 📆 AR 📆
MIS MISSolver ✔ KaMIS ✔ Gurobi ✔ -- -- -- --

generator

Problem Type1 Impl. Type2 Impl. Type3 Impl. Type4 Impl.
TSP uniform ✔ gaussian ✔ cluster 📆 -- --
MIS ER ✔ BA ✔ HK ✔ WS ✔

✔: Supported; 📆: Planned for future versions (contributions welcomed!).

How to Install

Github Clone with the url https://github.com/heatingma/Data4CO.git , and the following packages are required, and shall be automatically installed by pip:

Python >= 3.8
numpy>=1.24.4
networkx==2.8.8
lkh>=1.1.1
tsplib95==0.7.1
tqdm>=4.66.1
pulp>=2.8.0, 
pandas>=2.0.0,
scipy>=1.10.1

PyPI It is very convenient to directly use the following commands

pip install data4co

How to Use Solver (TSPLKHSolver as example)

from data4co.solver import TSPLKHSolver

tsp_lkh_solver = TSPLKHSolver(lkh_max_trials=500)
tsp_lkh_solver.from_txt("path/to/read/file.txt")
tsp_lkh_solver.solve()
tsp_lkh_solver.evaluate()
tsp_lkh_solver.to_txt("path/to/write/file.txt")

How to Use Generator (TSPDataGenerator as example)

from data4co import TSPDataGenerator

tsp_data_lkh = TSPDataGenerator(
    num_threads=8,
    nodes_num=50,
    data_type="uniform",
    solver="lkh",
    train_samples_num=16,
    val_samples_num=16,
    test_samples_num=16,
    save_path="path/to/save/"
)

tsp_data_lkh.generate()