Free cookie consent management tool by TermsFeed Policy Generator

source: stable/HeuristicLab.Problems.Programmable/3.3/Templates/CompiledMultiObjectiveProblemDefinition.cs

Last change on this file was 17105, checked in by mkommend, 5 years ago

#2520: Merged 16584, 16585,16594,16595, 16625, 16658, 16659, 16672, 16707, 16729, 16792, 16796, 16797, 16799, 16819, 16906, 16907, 16908, 16933, 16945, 16992, 16994, 16995, 16996, 16997, 17014, 17015, 17017, 17020, 17021, 17022, 17023, 17024, 17029, 17086, 17087, 17088, 17089 into stable.

File size: 2.8 KB
Line 
1using System;
2using System.Linq;
3using System.Collections.Generic;
4using HeuristicLab.Common;
5using HeuristicLab.Core;
6using HeuristicLab.Data;
7using HeuristicLab.Encodings.BinaryVectorEncoding;
8using HeuristicLab.Encodings.IntegerVectorEncoding;
9using HeuristicLab.Encodings.RealVectorEncoding;
10using HeuristicLab.Encodings.PermutationEncoding;
11using HeuristicLab.Encodings.LinearLinkageEncoding;
12using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
13using HeuristicLab.Optimization;
14using HeuristicLab.Problems.Programmable;
15
16namespace HeuristicLab.Problems.Programmable {
17  public class CompiledMultiObjectiveProblemDefinition : CompiledProblemDefinition, IMultiObjectiveProblemDefinition {
18    public bool[] Maximization { get { return new[] { false, false }; } }
19
20    public override void Initialize() {
21      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
22      // Define the solution encoding which can also consist of multiple vectors, examples below
23      //Encoding = new BinaryVectorEncoding("b", length: 5);
24      //Encoding = new IntegerVectorEncoding("i", length: 5, min: 2, max: 14, step: 4);
25      //Encoding = new RealVectorEncoding("r", length: 5, min: -1.0, max: 1.0);
26      //Encoding = new PermutationEncoding("p", length: 5, type: PermutationTypes.Absolute);
27      //Encoding = new LinearLinkageEncoding("l", length: 5);
28      //Encoding = new SymbolicExpressionTreeEncoding("s", new SimpleSymbolicExpressionGrammar(), 50, 12);
29      // The encoding can also be a combination
30      //Encoding = new MultiEncoding()
31      //.Add(new BinaryVectorEncoding("b", length: 5))
32      //.Add(new IntegerVectorEncoding("i", length: 5, min: 2, max: 14, step: 4))
33      //.Add(new RealVectorEncoding("r", length: 5, min: -1.0, max: 1.0))
34      //.Add(new PermutationEncoding("p", length: 5, type: PermutationTypes.Absolute))
35      //.Add(new LinearLinkageEncoding("l", length: 5))
36      //.Add(new SymbolicExpressionTreeEncoding("s", new SimpleSymbolicExpressionGrammar(), 50, 12))
37      ;
38      // Add additional initialization code e.g. private variables that you need for evaluating
39    }
40
41    public double[] Evaluate(Individual individual, IRandom random) {
42      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
43      var qualities = new[] { 0.0, 0.0 };
44      //qualities = new [] { individual.RealVector("r").Sum(x => x * x), individual.RealVector("r").Sum(x => x * x * x) };
45      return qualities;
46    }
47
48    public void Analyze(Individual[] individuals, double[][] qualities, ResultCollection results, IRandom random) {
49      // Use vars.yourVariable to access variables in the variable store i.e. yourVariable
50      // Write or update results given the range of vectors and resulting qualities
51    }
52    // Implement further classes and methods
53  }
54}
55
Note: See TracBrowser for help on using the repository browser.