1
- function predMap = createPredictionMap(gpModels ,p ,d , varargin )
1
+ function [ predMap , percImproved , rTest ] = createPredictionMap(gpModels , observation ,p ,d , varargin )
2
2
% createPredictionMap - Produce prediction map from surrogate model
3
3
%
4
- % Syntax: predictionMap = createPredictionMap(gpModels,p,d)
4
+ % Syntax: predictionMap = createPredictionMap(gpModels,observation, p,d)
5
5
%
6
6
% Inputs:
7
- % gpModels - GP model produced by SAIL
8
- % p - SAIL hyperparameter struct
9
- % d - Domain definition struct
7
+ % gpModels - [cell] GP model(s) produced by SAIL
8
+ % observation- [N X GenomeLength] Known inputs
9
+ % p - [struct] SAIL hyperparameters
10
+ % d - [struct] Domain definition
10
11
%
11
12
% Outputs:
12
13
% predMap - prediction map
13
- % .fitness [Rows X Columns]
14
- % .genes [Rows X Columns X GenomeLength]
15
- % .'otherVals' [Rows X Columns]
14
+ % .fitness [FeatureRes(1) X FeatureRes(2)]
15
+ % .genes [FeatureRes(1) X FeatureRes(2) X GenomeLength]
16
+ % .'otherVals' [FeatureRes(1) X FeatureRes(2)]
17
+ % percImproved [1 X nGens] - percentage of children which improved on elites
16
18
%
17
- % Example:
18
- % p = sail;
19
- % d = af_Domain;
19
+ % Example:
20
+ % p = sail; d = af_Domain;
20
21
% output = sail(d,p);
21
- % predMap = createPredictionMap(output.model,p,d,'featureRes',[50 50]);
22
- % viewMap(predMap.fitness,d, predMap.edges )
22
+ % predMap = createPredictionMap(output.model,output.model{1}.trainInput, p,d,'featureRes',[50 50]);
23
+ % viewMap(predMap.fitness,d)
23
24
%
24
25
% Other m-files required: mapElites nicheCompete updateMap d.createAcqFunction
25
26
%
28
29
% Author: Adam Gaier
29
30
% Bonn-Rhein-Sieg University of Applied Sciences (BRSU)
30
31
% email: adam.gaier@h-brs.de
31
- % Jun 2017; Last revision: 03-Aug -2017
32
+ % Jun 2017; Last revision: 01-Sep -2017
32
33
34
+ %% TODO: if no observations given take them from the gpModels
33
35
% ------------- INPUT PARSING -----------
34
36
parse = inputParser ;
35
37
parse .addRequired(' gpModels' );
36
38
parse .addRequired(' p' );
37
39
parse .addRequired(' d' );
38
- parse .addOptional(' nChildren' ,p .nChildren );
39
- parse .addOptional(' nGens' ,p .nGens );
40
- parse .addOptional(' featureRes' ,d .featureRes );
40
+ parse .addRequired(' observation' );
41
+ parse .addOptional(' nChildren' ,p .nChildren );
42
+ parse .addOptional(' nGens' ,p .nGens );
43
+ parse .addOptional(' featureRes' ,d .featureRes );
41
44
42
- parse .parse(gpModels ,p , d , varargin{: });
45
+ parse .parse(gpModels , observation , p , d , varargin{: });
43
46
p.nChildren = parse .Results .nChildren ;
44
47
p.nGens = parse .Results .nGens ;
45
48
d.featureRes = parse .Results .featureRes ;
51
54
acqFunction = feval(d .createAcqFunction ,gpModels ,d );
52
55
53
56
% Seed map with precisely evaluated solutions
54
- observation = gpModels{1 }.trainInput;
55
57
[fitness ,predValues ] = acqFunction(observation );
56
58
predMap = createMap(d .featureRes , d .dof , d .extraMapValues );
57
59
[replaced , replacement ] = nicheCompete(observation , fitness , predMap , d );
58
60
predMap = updateMap(replaced ,replacement ,predMap ,fitness ,observation ,...
59
- predValues ,d .extraMapValues );
61
+ predValues ,d .extraMapValues );
60
62
61
63
% Illuminate based on surrogate models
62
- predMap = mapElites(acqFunction ,predMap ,p ,d );
64
+ [predMap , percImproved ] = mapElites(acqFunction ,predMap ,p ,d );
65
+
63
66
64
67
% ------------- END OF CODE --------------
0 commit comments