void Planet::findPosition() { Point2D a; for ( int j = 0; j <getPopulation(); j++) { for (int k = j + 1; k < getPopulation(); k++) { if (a.getDistance(population[j]->getPosition(), population[k]->getPosition()) < 5) { int random = rand() % 2 + 1; switch (random) { case 1: population[j]->Attack(*population[j]); break; case 2: addPopulation(entity, 1); } } else if (a.getDistance(population[j]->getPosition(), population[k]->getPosition()) == 0) { movePopulation(); } } } }
void CPSORSwarm::createSubswarms( ){ m_clst.setNormalizationFlag(false); m_clst.setSpace(0); m_clst.initialize(m_pop,m_popsize); m_clst.roughClustering(m_subSize); for(int k=0;k< m_clst.getSize();k++){ CPSORSubSwarm *s=new CPSORSubSwarm(m_clst[k]); s->updateCurRadius(true); addPopulation(*s); } m_clst.clear_(); remove(m_popsize); measureMultiPop(); }