Function hercules::local_search::simple_mixed_search

source ยท
pub fn simple_mixed_search(
    qubo: &Qubo,
    x_0: &Array1<usize>,
    max_steps: usize
) -> Array1<usize>
Expand description

Given a QUBO and a fractional or integral initial point, run a mixed search until the point converges or the step limit is hit. This is a combination of local search and gain criteria search, where the gain criteria search is run on the local search.

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.num_x(), &mut prng, 0.5);

// perform a simple mixed search starting at x_0
let x_sol = local_search::simple_mixed_search(&p, &x_0, 1000);