Compare simulated annealing and quantum annealing algorithm in node placement problem
Title: A quantum annealing based approach to optimize the deployment cost of a multi-sink multi-contoller WSN
Conference Name: 16th International Conference on Mobile Systems and Pervasive Computing
Quantum annealing algorithm implementation is available in java and python
Simulated annealing algorithm implementation is available in java
Initialize graph (nodes and edges). Then select a candidate list for controllers and sinks. Tune parameters (sink and controller max distance, max sink and controller coverage, etc.). Then execute an instance of TestQuantumAnnealingAlgorithm
. A sample of this procedure exists here.
qaTest = TestQuantumAnnealingAlgorithm(
graph,
main.candidate_sinks_list,
main.candidate_controllers_list,
main.sink_Y_spin_variables_2d_arr,
main.controller_Y_spin_variables_2d_arr,
main.SENSOR_SINK_MAX_DISTANCE,
main.SENSOR_CONTROLLER_MAX_DISTANCE,
main.MAX_SINK_COVERAGE,
main.MAX_CONTROLLER_COVERAGE,
main.MAX_SINK_LOAD,
main.MAX_CONTROLLER_LOAD,
main.COST_SINK,
main.COST_CONTROLLER
)
qaTest.execute()
The procedure is exactly the same as python version. The sample exists here.
TestQuantumAnnealingAlgorithm qaTest = new TestQuantumAnnealingAlgorithm(
graph,
m.candidateSinks,
m.candidateControllers,
m.sinkYSpinVariables,
m.controllerYSpinVariables,
SENSOR_SINK_MAX_DISTANCE,
SENSOR_CONTROLLER_MAX_DISTANCE,
MAX_SINK_COVERAGE,
MAX_CONTROLLER_COVERAGE,
MAX_SINK_LOAD,
MAX_CONTROLLER_LOAD,
COST_SINK,
COST_CONTROLLER
);
qaTest.execute();