/** This method creates a new population based on the bit probability vector */
  public void initPBIL() {
    InterfaceGAIndividual tmpIndy,
        template = (InterfaceGAIndividual) ((AbstractEAIndividual) this.get(0)).clone();
    BitSet tmpBitSet;

    this.clear();
    for (int i = 0; i < this.getTargetSize(); i++) {
      tmpIndy = (InterfaceGAIndividual) ((AbstractEAIndividual) template).clone();
      tmpBitSet = tmpIndy.getBGenotype();
      for (int j = 0; j < this.m_ProbabilityVector.length; j++) {
        if (RNG.flipCoin(this.m_ProbabilityVector[j])) tmpBitSet.set(j);
        else tmpBitSet.clear(j);
      }
      tmpIndy.SetBGenotype(tmpBitSet);
      super.add(tmpIndy);
    }
  }