Beispiel #1
0
 public static Position init_position(Problem problem)
 {
     double[] solution = new double[problem.dimension];
     for (int i = 0; i < problem.dimension; ++i)
     {
         solution[i] = GlobalMembers.randu() * 200.0f - 100.0f;
     }
     return(new Position(solution.ToList(), 1E100));
 }
Beispiel #2
0
 public void random_walk(List <Vibration> vibrations)
 {
     for (int i = 0; i < position.solution.Count; ++i)
     {
         previous_move[i] *= GlobalMembers.randu();
         double target_position = dimension_mask[i] ? vibrations[RandomNumbers.NextNumber() % vibrations.Count].position.solution[i] : target_vibr.position.solution[i];
         previous_move[i]     += GlobalMembers.randu() * (target_position - position.solution[i]);
         position.solution[i] += previous_move[i];
     }
 }
Beispiel #3
0
 public void mask_changing(double p_change, double p_mask)
 {
     if (GlobalMembers.randu() > Math.Pow(p_change, inactive_deg))
     {
         inactive_deg = 0;
         p_mask      *= GlobalMembers.randu();
         for (int i = 0; i < dimension_mask.Count; ++i)
         {
             dimension_mask[i] = (GlobalMembers.randu()) < p_mask;
         }
     }
 }