Example #1
0
int main(int argc, char **argv)
{
  parameters.handleArgs(argc,argv,"settings/defaults-swarming.settings");
  parameters.afterSetting();

  rng_t rng;
  rng.seed(parameters.randSeed());
  // rand() used in random_shuffle()
  srand(parameters.randSeed());

  // set up the (initial) swarming pattern and do the experiment
  if (parameters.swarming_pattern() == "NETWORK")
  { graph_swarming_pattern swp;
    swp.inheritParametersFrom(parameters);
    const unsigned nr = swp.n_rooms();
    swp.fixed.set_size(nr);
    swp.n = graph_swarming_pattern::network_t(nr);
    construct_network(swp.n,swp,rng);
    int fixed = (swp.n_individuals() - swp.n_mobile());
    int fpr = fixed / nr;
    for (int i = 0; i < nr; ++i)
    { swp.fixed[i] = fpr;
      fixed -= fpr;
    }
    if (fixed > 0)
      swp.fixed[0] += fixed;
    swarm_selection_indicator<graph_swarming_pattern,rng_t,ParamsClass>
      sind(rng);
    do_experiment(swp,sind,rng);
  }
  else if (parameters.swarming_pattern() == "STATIC_LATTICE")
  { static_lattice_swarming_pattern swp;
    swp.inheritParametersFrom(parameters);
    swp.initialize(rng);
    static_lattice_swarm_selection_indicator<rng_t,ParamsClass>
      sind(rng);
    do_experiment(swp,sind,rng);
  }
  else if (parameters.swarming_pattern() == "DYNAMIC_LATTICE")
  { dynamic_lattice_swarming_pattern dsp;
    dsp.inheritParametersFrom(parameters);
    dynamic_lattice_swarm_selection_indicator<rng_t,ParamsClass>
      sind(rng);
    do_experiment(dsp,sind,rng);
  }
}
Example #2
0
 void setup() override
 {
     construct_network(opts());
 }