A heuristic solver for Quadrantic Unconstrained Binary Optimization (QUBO) Problems.
Group 08:
- Michael Adipoetra - 408045
- Gennesaret Kharistio Tjusila - 407687
- Francisco Jose Manjon Cabeza Garcia - 369293
- Arya Prasetya - 473184
Before running the code, you can change the number of iteration in "create_jobs.py" on line 10. Default number of iteration is 100.
python3 create_jobs.py
bash run_job.sh
First, compile the source code while creating a build directory, i.e. in root.
bash compile.sh
Then you can run the program. The code takes 3 inputs:
- Path to the instance from QPLIB
- Path to the solution of this instance from QPLIB
- Name of the solver
Use the following command to run the QUBO solver by changing {instances_name} and {solver_name}. Optionally {timelimit}
./build/gummy ./problem_instances/qplib/instances/QPLIB_{instances_name}.qs ./problem_instances/qplibsolution/QPLIB_{instances_name}_answer.qs {solver_name} {timelimit(seconds):optional}
we have the following instances and solver:
instance_name = ['3506', '3565', '3642', '3650', '3693', '3705', '3706', '3738', '3745', '3822', '3832', '3838', '3850', '3852', '3877', '5721', '5725', '5755', '5875', '5881', '5882', '5909', '5922']
solver_name = ['DTSS', 'MSTS', 'SA']
For example:
./build/gummy ./problem_instances/qplib/instances/QPLIB_3506.qs ./problem_instances/qplib/solution/QPLIB_3506_answer.qs DTSS 5
The above solves QPLIB_3506.qs with the DTSS solver for 5 second.
DTSS = Diversification Driven Tabu Search
MSTS = Multistart Tabu Search
SA = Simulated Annealing