void Solver::startSolveProblem(std::shared_ptr<KnapsackProblem> problem) { currentProblem = problem; swarm.initializeSwarm(parameters.getNumberOfParticles()); initializeParticles(); solving = true; }
ParticleFilter::ParticleFilter( int frameWidth, int frameHeight, int nParticles, int nIters, int particleWidth, int particleHeight, int histSize, Target *target ) { type = Rectangle; m_target = target; img_height = frameHeight; img_width = frameWidth; m_num_particles_to_display = 0; setNumParticles(nParticles); setNumIters(nIters); setParticleWidth(particleWidth); setParticleHeight(particleHeight); setParticlesToDisplay(m_num_particles_to_display); setHistSize(histSize); m_distortRange = 5; srand(time(nullptr)); initializeParticles(); auto seed = std::chrono::high_resolution_clock::now().time_since_epoch().count(); m_RandomGen = std::mt19937(seed); }
void Solver::solveProblem(std::shared_ptr<KnapsackProblem> problem) { currentProblem = problem; std::cout << "==============================\n"; std::cout << "Solving problem: " << std::endl; std::cout << "Nr. of elements: " << currentProblem->n << std::endl; std::cout << "Nr. of constraints: " << currentProblem->m << std::endl; std::cout << "==============================\n"; swarm.initializeSwarm(parameters.getNumberOfParticles()); initializeParticles(); for (int i = 0; i < parameters.getIterations(); ++i) findSolution(); int finalSolution = stopSolveProblem(); std::cout << "==============================\n"; std::cout << "Solution value: " << finalSolution << std::endl; std::cout << "==============================\n"; }
void ParticleFilter::reInitialiaze() { m_particles.clear(); initializeParticles(); }