#pragma interface

#ifndef _incl_indiv
#define _incl_indiv

using namespace std;

class hpg;

class indiv {

 private:

  public:

  int *values, uid, parent_id;
  vector<int> valindex, vars, vals;
  hpg *main;                                                                                
  vector<module*> modules;//indiv is collection of modules + indices into mod->optvalues

  virtual indiv *generate_new();
  virtual indiv *copy(bool copy_outcomes);
  virtual double objective_score();
  void getvalues();
  virtual void initialize();

  indiv(hpg *hpgp);
  virtual ~indiv();
};
#endif


