Function hercules::local_search::particle_swarm_search

source ยท
pub fn particle_swarm_search<T: Algorithm>(
    qubo: &Qubo,
    num_particles: usize,
    max_steps: usize,
    prng: &mut PRNG<T>
) -> Array1<usize>
Expand description

Performs a particle swarm search on a QUBO.

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);

// perform particle swarm with 150 particles for 1000 iterations
let x_sol = local_search::particle_swarm_search(&p, 150, 1000, &mut prng);