Manual
Manual
DISCLAIMER
tbw
Copyright ©2022,
UT-Battelle, LLC
All rights reserved
2
Contents
1 Preliminaries 5
1.1 Disclaimer and Licensing . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Please cite this work . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 References . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Verifying, Building and Running . . . . . . . . . . . . . . . . . . 6
1.2.1 Hash of the latest commit . . . . . . . . . . . . . . . . . . 6
1.2.2 Building and Running evendim . . . . . . . . . . . . . . . 6
2 Arithmetic Example 9
2.1 Finding a Function from Training . . . . . . . . . . . . . . . . . . 10
2.2 Multiple Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Computational Engine Overview . . . . . . . . . . . . . . . . . . 10
3 QuantumGEP 11
3.1 Description of the Problem . . . . . . . . . . . . . . . . . . . . . 11
3.2 QuantumGEP for Ground State . . . . . . . . . . . . . . . . . . 11
3.3 Input File Details . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Evendim 13
4.1 Procedural Description . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Mutations, Recombinations and Swaps . . . . . . . . . . . . . . . 13
4.3 Interfaces to Primitives . . . . . . . . . . . . . . . . . . . . . . . 14
4.4 Interfaces to Fitness . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.5 The TestSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3
CONTENTS
4
Chapter 1
Preliminaries
1.1.2 References
@book{ferreira2006gene,
title={Gene Expression Programming: Mathematical Modeling by an Artificial Intelligence},
author={Ferreira, C.},
isbn={9783540328490},
series={Studies in Computational Intelligence},
url={https://books.google.com/books?id=NkG7BQAAQBAJ},
year={2006},
publisher={Springer Berlin Heidelberg}
5
CHAPTER 1. PRELIMINARIES
Required Software
1. GNU C++ or LLVM clang++. Other C++ compilers may also work but
evendim was only tested on these two.
Quick Start
1. Use your distribution repository tool to install gcc with support for C++
(or LLVM clang++), the LAPACK and BLAS libraries, the GSL library,
make, perl, and git if you don’t have them.
2. Issue
cd someDirectory/
6
1.2. VERIFYING, BUILDING AND RUNNING
4. Now issue
cd evendim/src
cp Config.make.sample Config.make
make
7
CHAPTER 1. PRELIMINARIES
8
Chapter 2
Arithmetic Example
This driver program named gep2 runs different “example” cases consisting of
using GEP to find a function knowning only some inputs and outputs.
The primitives are under Primitives/PlusMinusMultiplyDivide.h, and the
functions under Example1.h, Example2.h and Example3.h
The following command line arguments to gep2 are mandatory.
-i inputs. The number of inputs to the function.
-h headSize. The maximum number of the head or effective gene size.
-p population. The number of GEP individuals to consider in each genera-
tion.
-t generations. The number of generations to run GEP.
The following command line arguments to gep2 are optional.
-e example. The example number to run: 1, 2 or 3. Defaults to 1.
-g genes. The number of genes to be used. Defaults to 1.
-s seed. The seed for the random number generator. Defaults to 1234.
-c constants. The number of GEP constants to use. Default to 0.
-H maximum head size for ADF. ADF stands for automatic defined funtions.
Defaults to 0.
-a adfs. The number of ADFs to use. Defaults to 0.
-n samples. The number of training samples to cache. Defaults to 100.
-v indicates that GEP should be verbose. Defaults to false.
-S indicates that GEP should stop when a perfect individual is found. De-
faults to false.
The options -v and -S take no arguments.
9
CHAPTER 2. ARITHMETIC EXAMPLE
10
Chapter 3
QuantumGEP
11
CHAPTER 3. QUANTUMGEP
##Ainur1.0
Input parameters can be divided in engine parameters, which are those that
deal with the GEP algorithm itself regardless of the fitness function used. Then
there are fitness parameters, which for quantumGEP will include those regard-
ing the Hamiltonian for RunType=“GroundState” and also the minimization
parameters. We list and describe them in turn in what follows.
The engine parameters can be specified with Generations=100; in the input
file, and similarly for the others, which are as follows.
Generations The number of GEP generations. Integer. Mandatory.
Population The number of GEP individuals. Integer. Mandatory.
HeadSize The size of the head (that is, the maximum effective gene size). Integer.
Mandatory.
Samples The samples to be cached. Optional. Defaults to 50 and is unused in
quantumGEP.
12
Chapter 4
Evendim
13
CHAPTER 4. EVENDIM
Returns the fitness of the passed chromosome, where seed is a seed for a random
number generator, and threadNum is the number of the thread in case fitness
is computed in parallel.
virtual RealType maxFitness () const = 0;
14
4.5. THE TESTSUITE
15