示例#1
0
文件: Solver.cpp 项目: JeGa/mknap_pso
    void Solver::startSolveProblem(std::shared_ptr<KnapsackProblem> problem)
    {
        currentProblem = problem;

        swarm.initializeSwarm(parameters.getNumberOfParticles());
        initializeParticles();

        solving = true;
    }
示例#2
0
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);
}
示例#3
0
文件: Solver.cpp 项目: JeGa/mknap_pso
    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";
    }
示例#4
0
void ParticleFilter::reInitialiaze()
{
    m_particles.clear();
    initializeParticles();
}