Changeset 14450 for branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Binary/LocalSearch/StaticAPI/ExhaustiveBitflip.cs
- Timestamp:
- 12/03/16 00:32:09 (8 years ago)
- Location:
- branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Binary/LocalSearch/StaticAPI
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Binary/LocalSearch/StaticAPI/ExhaustiveBitflip.cs
r14449 r14450 23 23 using System.Linq; 24 24 using System.Threading; 25 using HeuristicLab.Algorithms.MemPR.Util; 25 26 using HeuristicLab.Core; 26 27 using HeuristicLab.Encodings.BinaryVectorEncoding; … … 28 29 29 30 namespace HeuristicLab.Encodings.Binary.LocalSearch { 30 public static class Heuristic { 31 private static bool IsBetter(bool maximization, double a, double b) { 32 return maximization && a > b 33 || !maximization && a < b; 34 } 35 36 public static Tuple<int, int> ExhaustiveBitFlipSearch(IRandom random, BinaryVector solution, ref double quality, bool maximization, Func<BinaryVector, double> evalFunc, CancellationToken token, bool[] subspace = null) { 31 public static class ExhaustiveBitflip { 32 public static Tuple<int, int> Optimize(IRandom random, BinaryVector solution, ref double quality, bool maximization, Func<BinaryVector, double> evalFunc, CancellationToken token, bool[] subspace = null) { 37 33 if (double.IsNaN(quality)) quality = evalFunc(solution); 38 34 var improved = false; … … 53 49 var after = evalFunc(solution); 54 50 evaluations++; 55 if ( IsBetter(maximization, after, quality)) {51 if (FitnessComparer.IsBetter(maximization, after, quality)) { 56 52 steps++; 57 53 quality = after; … … 65 61 } 66 62 } while (improved); 67 63 68 64 return Tuple.Create(evaluations, steps); 69 65 }
Note: See TracChangeset
for help on using the changeset viewer.