-
Notifications
You must be signed in to change notification settings - Fork 8
Evaluators
Karel Kubicek edited this page Feb 13, 2017
·
6 revisions
Evaluators are modules for fitness computation based on circuit outputs.
Evaluators are identified by their evaluator type
which is used in EACirc configuration file. Every evaluator is build in evaluator_factory
and inherited from evaluator
abstract class. Evaluators should be deterministic and depend solely on provided test vectors and circuit outputs. Design of evaluators needs statistical background, to avoid typical pitfails, read EACirc 2 paper
-
weight_evaluator
Test vectors are considered as coming from 2 stream, differentiated by all bits of the expected output byte. Circuit outputs are interpreted by looking at all bits of each byte separately. Fitness is computed as an average per every bit of the ratio of correctly predicted test vectors and all test vectors. -
categories_evaluator
Test vectors are considered as coming from 2 stream, differentiated by top bit of the expected output byte. Circuit output bytes are mapped into categories (value modulo number of categories), each byte is considered separately. For each stream there is a separate category map. Fitness is based on weighed Euclidean distance of corresponding categories.
Evaluator has simple interface and it has no internal state.
-
void change_datasets(dataset const& a, dataset const& b)
Updates input to the dataset. -
double apply(Circuit const& circuit)
Return the circuit's fitness value based on the evaluation of datasetsa
andb
in circuitcircuit
.