Exemplo n.º 1
0
        public void makeNewDecision(DecisionArchive archive, Random rand, double xi)
        {
            double sigma = calcSigma(archive, xi);

            decision = new Decision(position);
            decision.updateDecision(archive[l]);

            if (rand.NextDouble() > sigma)
            {
                decision.invert();
            }
        }
Exemplo n.º 2
0
      public Colony(int antCount, int decisionArchiveCount, int numPosition, bool Various)
      {
          Position = numPosition;
          for (int i = 0; i < antCount; i++)
          {
              Ant the_Ant = new Ant(Position);
              theAnts.Add(the_Ant);
          }
          theArchive = new DecisionArchive(decisionArchiveCount, Position);

          Value = Various;
      }
Exemplo n.º 3
0
        private double calcSigma(DecisionArchive archive, double xi)
        {
            double sigma = 0;

            for (int i = 0; i < archive.Count; i++)
            {
                int differ = 0;
                if (archive[i].Value != archive[l].Value)
                {
                    differ = 1;
                }
                sigma = (differ) / archive.Count;
            }
            sigma *= xi;
            return(sigma);
        }
Exemplo n.º 4
0
 public void getL(DecisionArchive archive, Random rand)
 {
     double[] propability = archive.Propability;
     l = getOneOfArchive(propability, rand);
 }