Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/19/15 17:16:39 (9 years ago)
Author:
apolidur
Message:

#2221: Local improvement operator for VNS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PTSP/HeuristicLab.Problems.PTSP/3.3/MoveEvaluators/TwoOpt/PTSPAnalyticalInversionMovePathEvaluator.cs

    r12219 r12228  
    3535  public class PTSPAnalyticalInversionMovePathEvaluator : PTSPPathMoveEvaluator, IPermutationInversionMoveOperator {
    3636
    37     private static ItemList<DoubleValue> probabilities;
     37    private static DoubleArray probabilities;
    3838    private static DoubleMatrix A;
    3939    private static DoubleMatrix B;
     
    4646    }
    4747
    48     public IValueParameter<ItemList<DoubleValue>> ProbabilitiesParameter {
    49       get { return (IValueParameter<ItemList<DoubleValue>>)Parameters["Probabilities"]; }
     48    public IValueParameter<DoubleArray> ProbabilitiesParameter {
     49      get { return (IValueParameter<DoubleArray>)Parameters["Probabilities"]; }
    5050    }
    5151
     
    103103        case 1:
    104104          if (j == i + 1) {
    105             return (1/(1-probabilities[i+1].Value))*A[i,2]+(1 - probabilities[i].Value)*(A[i+1,1]-A[i+1,probabilities.Capacity-1]);
     105            return (1/(1-probabilities[i+1]))*A[i,2]+(1 - probabilities[i])*(A[i+1,1]-A[i+1,probabilities.Length-1]);
    106106          } else if (i == j) {
    107107            return A[i,1];
    108108          } else {
    109109            // Equation 25
    110             return ((1 - probabilities[i].Value) / (1 - probabilities[j].Value)) * RecursiveExpectedCost(1, i + 1, j - 1) + (1 - probabilities[i].Value) * (1);
     110            return ((1 - probabilities[i]) / (1 - probabilities[j])) * RecursiveExpectedCost(1, i + 1, j - 1) + (1 - probabilities[i]) * (1);
    111111          }
    112112         
    113113        case 2:
    114114          if (j == i + 1) {
    115             return (1 - probabilities[i + 1].Value) * (B[i, 1] - B[i, probabilities.Capacity - 1]) + (1 / (1 - probabilities[i].Value)) * (B[i + 1, 2]);
     115            return (1 - probabilities[i + 1]) * (B[i, 1] - B[i, probabilities.Length - 1]) + (1 / (1 - probabilities[i])) * (B[i + 1, 2]);
    116116          } else if (i == j) {
    117117            return B[i,1];
     
    123123        case 3:
    124124          if (j == i + 1) {
    125             return A[i, 2] + A[i + 1, 1] - A[i + 1, probabilities.Capacity - 1] + B[i, 1] - B[i, probabilities.Capacity - 1] + B[i + 1, 2];
     125            return A[i, 2] + A[i + 1, 1] - A[i + 1, probabilities.Length - 1] + B[i, 1] - B[i, probabilities.Length - 1] + B[i + 1, 2];
    126126          } else if (i == j) {
    127127            return A[i,1]+B[i,1];
Note: See TracChangeset for help on using the changeset viewer.