summaryrefslogtreecommitdiff
path: root/nlpsolver/ThirdParty/EvolutionarySolver/src/net/adaptivebox/goodness/PenaltyComparator.java
blob: 54ff61ce7decc944aafe1fdda8f51522b11d54fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
 * Description: For comparison of goodness in landscape with penalty method.
 *
 * @Applied domain: efficiently for ridge class feasible space (SF), such as
 *  the problem with equality constraints
 *
 * Author          Create/Modi     Note
 * Xiaofeng Xie    May 29, 2004
 *
 * @version 1.0
  *
 * [1] Runarsson T P, Yao X. Stochastic ranking for constrained evolutionary
 * optimization. IEEE Trans. on Evolutionary Computation. 2000, 4 (3): 284-294
 *
 */

package net.adaptivebox.goodness;

import net.adaptivebox.global.*;

public class PenaltyComparator implements IGoodnessCompareEngine {
  public double Rg = 0;

  public PenaltyComparator() {}

  public PenaltyComparator(double rg) {
    this.Rg = rg;
  }

  public double calcPenaltyValue(double fit1, double fit2) {
    return fit1+Rg*fit2;
  }
  /**
   *  check the magnitude of two array, the frontial is more important
   * Stoch ranking: array size = 2
   **/
  public int compare(double[] fit1, double[] fit2) {
    return GlobalCompare.compare(calcPenaltyValue(fit1[1], fit1[0]), calcPenaltyValue(fit2[1], fit2[0]));
  }

}