Function hercules::local_search::multi_simple_gain_criteria_search
source · pub fn multi_simple_gain_criteria_search(
qubo: &Qubo,
xs: &Vec<Array1<usize>>
) -> Vec<Array1<usize>>
Expand description
Given a QUBO and a vector of initial points, run gain searches on each initial point and return all of the solutions.
Example:
use hercules::qubo::Qubo;
use smolprng::{PRNG, JsfLarge};
use hercules::{initial_points, utils};
use hercules::local_search;
// generate a random QUBO
let mut prng = PRNG {
generator: JsfLarge::default(),
};
let p = Qubo::make_random_qubo(10, &mut prng, 0.5);
// generate a random point inside with x in {0, 1}^10
let x_0 = initial_points::generate_random_binary_point(&p, &mut prng, 0.5);
let x_1 = initial_points::generate_random_binary_point(&p, &mut prng, 0.5);
let x_2 = initial_points::generate_random_binary_point(&p, &mut prng, 0.5);
let xs = vec![x_0, x_1, x_2];
// perform a multiple simple gain criteria search starting at x_0
let x_sols = local_search::multi_simple_gain_criteria_search(&p, &xs);