Next Article in Journal
Single-Shot Coherent X-ray Imaging Instrument at PAL-XFEL
Next Article in Special Issue
Regular Two-Dimensional Packing of Congruent Objects: Cognitive Analysis of Honeycomb Constructions
Previous Article in Journal
A Scheduling Algorithm for Multi-Workshop Production Based on BOM and Process Route
Previous Article in Special Issue
Determination of Workspaces and Intersections of Robot Links in a Multi-Robotic System for Trajectory Planning
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Universal Approach to Solution of Optimization Problems by Symbolic Regression

Federal Research Center “Computer Science and Control”, Russian Academy of Sciences, 119333 Moscow, Russia
*
Author to whom correspondence should be addressed.
Authors contributed equally to this work.
Appl. Sci. 2021, 11(11), 5081; https://doi.org/10.3390/app11115081
Submission received: 9 May 2021 / Revised: 26 May 2021 / Accepted: 28 May 2021 / Published: 30 May 2021
(This article belongs to the Special Issue 14th International Conference on Intelligent Systems (INTELS’20))

Abstract

:
Optimization problems and their solution by symbolic regression methods are considered. The search is performed on non-Euclidean space. In such spaces it is impossible to determine a distance between two potential solutions and, therefore, algorithms using arithmetic operations of multiplication and addition are not used there. The search of optimal solution is performed on the space of codes. It is proposed that the principle of small variations of basic solution be applied as a universal approach to create search algorithms. Small variations cause a neighborhood of a potential solution, and the solution is searched for within this neighborhood. The concept of inheritance property is introduced. It is shown that for non-Euclidean search space, the application of evolution and small variations of possible solutions is effective. Examples of using the principle of small variation of basic solution for different symbolic regression methods are presented.

1. Introduction

All optimization problems can be divided into two large classes. One class includes the problems, where a target function is calculated on values of elements of search space. In problems of another class, the calculation of target function is performed on elements from one space, and the search for optimal solutions is done on the other space with other metrics. These metrics do not coincide, although one-to-one mapping exists between these spaces. The problems of the second class will be referred to as the optimization in non-Euclidean space or, briefly, non-numerical optimization.
All NP-hard problems belong to non-numerical optimization. For solution of non-numerical optimization problems, random search or complete enumeration algorithms are usually used, or if the problem is of great importance then some special algorithms are developed.
Recently, symbolic regression methods have appeared. They can be applied to a non-numerical optimization. All methods of symbolic regression search for optimal solutions on a space of codes. The first method of symbolic regression is genetic programming (GP) [1]. The author of genetic programming applied a genetic algorithm to search for an optimal program code. For this purpose, a program was presented in a universal form with prefix notation. Each operator is the code of operator and codes of operands. The codes of other operators may be operands as well. The entire structure can be presented as a tree. Each node of the tree is associated with an operator. The number of branches from a node equals the number of operands for the operator associated with the node. Variables and constant parameters are placed on leaves of the tree.
One of main achievements of the author of GP is that he managed to apply genetic algorithm (GA) to search for a solution encoded by a complex computational operator tree. To do this, it was necessary to change the crossover operation of GA. In GP, the crossover operation is performed as an exchange of two branches of the trees, and it is not like crossing genes of living organisms.
GA is one of the few optimization algorithms that does not use arithmetic operations when constructing new possible solutions. Even when searching for solutions on a vector space with a numerical metrics crossover, mutation operations are applied to Gray codes of possible solutions.
Nowadays, there are many symbolic regression methods, such as grammatical evolution [2], Cartesian GP [3], analytic programming [4], network operator method [5], parser-matrix evolution [6], complete binary GP [7] including sparse regression [8,9,10], and others [11,12,13,14,15], for finding solutions to various non-numerical optimization problems in which it is necessary to find optimal structures, graphs, constructions, formulas, mathematical expressions, schemes, etc.
Some known applications in different areas are robotics [16], code cracking [17], design of antennas [18], Rubik’s cube solving [19], “deriving” partial differential equations [20], control synthesis [21], extraction of explicit physical relations [22,23], etc.
The basic idea behind creating symbolic regression methods is to code possible solutions in a computer-friendly way. Then, it is necessary to develop a crossover operation so that it results in the correct codes for new possible solutions. To avoid the problem of constructing rules for crossover of complex codes of symbolic regression methods, the principle of small variations of the basic solution was formulated in [24].
The principle of small variations emerged as a result of the analysis of the work of genetic algorithms. It was noticed that after many generations, a large number of the same or similar codes had been produced. We concluded that with small changes in the Gray code, part of the solutions had nearly the same values of quality criterion. Thus, it was suggested to organize the search not on the space of all possible solutions but on the space of variations of some solution.
Since authors have used symbolic regression methods mainly for control synthesis problems, practitioners in this area can create rather good control systems by applying known analytical methods, experience, and intuition. We propose to search for the optimal solution in the neighborhood of good basic solutions.
This work continues the study of the principle of small variations of the basic solution. The paper defines some additional properties that must be satisfied by small variations in order to find the optimal solution using the GA more effectively than a random search.
The rest of the paper is organized as follows. The optimization problem in non-Euclidean space is described in Section 2. The principle of small variations and its properties are discussed in Section 3. In Section 4, small variations for different symbolic regression methods are presented. Two case studies are given in Section 5: a control synthesis problem for mobile robot and a knapsack problem, both solved using universal approach of small variations. Results and Discussion are given in Section 6 and Section 7.

2. Optimization Problem in Non-Euclidean Space

Let us start from some basic definitions.
Definition 1.
Optimization in a non-numerical space is an optimization when a target function is calculated for elements in a space with one metrics, and the search of optimal solution is performed in a space with other metrics, and these two metrics do not coincide.
In many optimization problems, a target function is calculated for elements in the space of real vectors or functions. Metrics in these spaces are Euclidean distance or the maximal distance between functions for one value of argument
d R ( x 1 , x 2 ) = x 1 x 2 2 = i = 1 n ( x i 1 x i 2 ) ,
d C ( y 1 ( · ) , y 2 ( · ) ) = max a t b | y 1 ( t ) y 2 ( t ) | ,
d C ( y 1 ( · ) , y 2 ( · ) ) = max a t b y 1 ( t ) y 2 ( t ) 2 ,
where x 1 , x 2 R n , y 1 ( · ) , y 2 ( · ) C [ a , b ] , y 1 ( · ) , y 2 ( · ) C [ a , b ] .
f 0 ( x ) : R n R 1 ,
J ( y ( · ) ) : C [ a , b ] R 1 ,
J ( y ( · ) ) : C [ a , b ] R 1 ,
When calculating the target function, arithmetic operations are performed on the components of possible solutions.
The search for the optimal solution consists of performing certain actions on the elements of spaces, for example, calculating the gradient, addition, multiplication by scalars, etc., which also includes arithmetic operations on the components of possible solutions in order to obtain new possible solutions with the optimal value of the target function.
There are optimization problems in which the target function is calculated over the elements of possible solutions presented in spaces with metrics (1)–(3), but the possible solutions and the actions performed on them to obtain new solutions are presented in a different space, with different metrics. Let us call this generalized space the code space
s S ,
where s is a code of possible solution from space with numerical metrics (1)–(3), S is a code space.
There is a one-to-one correspondence between the code space and the spaces with numerical metrics
x = Ω R ( s ) : S R n ,
y ( · ) = Ω C ( s ) : S C [ a , b ] ,
y ( · ) = Ω C ( s ) : S C [ a , b ] .
It is also possible to define metrics in the code space, for example, the Levenshtein [25] or Hamming distance or some other, but these metrics will not be the same for the corresponding elements from the spaces with distances (1)–(3). It means that if the inequality is satisfied
d S ( s 1 , s 2 ) < d S ( s 1 , s 3 ) ,
where s 1 , s 2 , s 3 S , then the inequality
d G ( Ω G ( s 1 ) , Ω G ( s 2 ) ) < d G ( Ω G ( s 1 ) , Ω G ( s 3 ) ) ,
G { R , C , C } , may not be satisfied.
Typical optimization problems in a space with a non-numerical metrics are NP-hard problems. For example, the traveling salesman problem (TSP), when you need to visit all towns once minimizing some criterion (route). In the problem, the target function is calculated in a space with Euclidean metrics. Each possible route is given by the order of towns. A possible solution code is a combinatorial permutation of indices of towns. It is believed that the problem of solving many NP-hard problems is that the search for the optimal solution is performed in one space, and the value of the target function is calculated in another space.
In the second half of the 20th century, a genetic algorithm appeared [26]. The algorithm was designed to find the optimal solution in the vector space. The search for the optimal solution is done on the space of Gray codes, i.e., possible solutions are transformed from the vector space into the space of Gray codes. Genetic operations are performed on the Grey codes. Then, to evaluate the new codes of possible solutions they are decoded into real vectors. Such complications in the search are most likely associated with the fact that the problem of global optimization is being solved, and the target function is not unimodal.
This work is devoted to the methods of symbolic regression. These techniques emerged as a development in genetic programming [1]. Here, we use symbolic regression to find the mathematical expression of some function coded in some way. Then, GA is applied to these codes to find the optimal solution.
Note that classical GA performs the crossover operation similar to the crossover of genes in living organisms. The crossing point is determined randomly and the tails of the genes change after the crossing point. If GA crosses two identical codes then the same codes are obtained as a result of crossover.
In GP, the code for a possible solution is a computational tree. To encode a mathematical expression, it is necessary to determine a basic set of elementary functions. Each elementary function can be encoded by two integers, the function index and the number of its arguments. The computational tree of mathematical expression is a sequence of codes of elementary functions. Unlike codes in GA, codes of different mathematical expressions in GP have different lengths. Therefore, to perform the crossover, we need random crossing points for each parent. Crossover is performed by exchanging branches starting from crossing points. Since the sizes of the branches are different, the lengths of the offspring differ from the lengths of the codes of the parents. The crossover in GP is not similar to crossover of genes in living organisms. When crossing two identical codes we obtain two different codes due to two different crossover points.
Note that when searching for the structure of the mathematical expression, it is necessary to use the code space, since the mathematical notation of a function itself is also a specific code, in a space with a non-numerical metrics. Previously, the search for mathematical expressions ceased to search parameters with some accuracy. In the search process these mathematical expressions could become more complex, as happens in series or in neural networks. GP and other symbolic regression methods allow searching not only for parameters but also for the structure of mathematical expressions. Nowadays, many symbolic regression methods have emerged that eliminate some of the disadvantages of genetic programming. For example, due to redundancy, all codes of possible solutions may have the same length.
All methods of symbolic regression use special operations of crossover and mutation, which allow constructing codes for new possible solutions. It should be noted that, due to the complexity of the code, crossover operations can create new possible solutions that do not preserve the properties of the parents as in classical GA. In this case, complex operations of crossover and mutation can generate new possible solutions such as random number generators.
The effectiveness of symbolic regression methods is usually compared to random search. This means that the operations of crossover and mutation of symbolic regression methods should generate a set of codes of new possible solutions in which the guaranteed best possible solution has a value of target function less than the best possible in the set of codes of the same cardinality, generated randomly.
Let us define the inheritance property of crossover for symbolic regression methods.
Definition 2.
Symbolic regression method has an inheritance property, if at the performing crossover operation for M randomly selected possible solutions, α M , where 1 / M < α 1 , new possible solutions exist that have a value of target function that differs from parent values by no more than Δ 0 .
Theorem 1.
For the symbolic regression method with the inheritance property to be more efficient than the random search in solving optimization problems in a non-numerical space, it is enough that the value of the target function is uniformly distributed from f to f + and f * < α / 2 f + + ( 1 α / 2 ) f , where f * is a value of functional of possible solution, α is a neighborhood in the space of solutions with values of functionals differ from f * no more than α / 2 .
Proof. 
Let us find the possible solution with the target function f * . Then, according to the condition of the theorem, random search will find a possible solution with the value of target function f ˜ < f * with probability
p R S ( f ˜ < f * ) = f * f f + f .
In symbolic regression, the probability of getting into the neighborhood of parent solution is α . Due to uniform distribution, half of the solutions is better than the parent solution, and the other half is worse and, thus, the probability of finding the possible solution with target function f ˜ < f * according to inheritance property is
p S ( f ˜ < f * ) = α 2 .
Then p S > p R S if the condition is fulfilled
f * < α 2 f + + 1 α 2 f .
Consider a universal approach to creating symbolic regression methods that most likely preserves the inheritance property.

3. Principle of Small Variations of Basic Solution

The principle of small variations is universal and can be applied to any symbolic regression method. To apply the principle, small variations are initially determined for the code of symbolic regression method. Small variation is coded by an integer vector of small dimension. This code contains the information required to perform the small variation. Then, one possible solution, let us name it a basic solution, is encoded by the method of symbolic regression. The basic solution is set by the researcher, and it is the closest to the optimal solution of the problem. All other possible solutions are determined by ordered sets of vectors of small variations. The search for the optimal solution is performed by the GA, which is called variational genetic algorithm (VarGA), that searches for the optimal solution on the space of ordered sets of vectors of small variations. During the search and after a given number of generations, the basic solution is replaced by the best possible solution found by this moment.
Let us consider application of the principle of small variations in detail. In general, the elements of the code space of the non-numerical optimization problem can be written in the form of ordered sets of integer vectors
Ξ = { S 1 , S 2 , } ,
where S i is a coded element.
Each element of (16) consists of a given number of integer vectors
S k = ( s k , 1 , s k , 2 , , s k , n k ) .
Here, s k , j is an integer vector, j = 1 , n k ¯ , n k is a length of one element code,
s k , j = [ s 1 k , j s r k , j ] T ,
where r is a length of code vector.
An element of code can be a vector, a matrix or an ordered set of matrices. In general, these constructions of code can always be presented as an ordered set of integer vectors if you do not use special mathematical operations for them. For example, if a code is an integer matrix
A = [ a i , j ] , i = 1 , m ¯ , j = 1 , n ¯ ,
then
S = ( s 1 , , s m ) ,
where
s i = [ s 1 i = a i , 1 s n i = a i , n ] T , i = 1 , m ¯ .
Hence, the code of the symbolic regression method is an ordered set of integer vectors. A set can have a different number of vectors, but all integer vectors have the same number of elements.
Let us introduce an elementary variation of the code of a non-numerical element.
Definition 3.
An elementary variation of the code is the replacement of one element of an integer vector.
Replacement of one element does not always result in a new valid code. There are certain coding rules that should not be violated. Let us define a small variation.
Definition 4.
A small variation is the required minimum set of elementary variations that are necessary to obtain valid code of the element from another valid code.
In some symbolic regression methods, a small variation consists of one elementary variation, and in other methods, several elementary variations are needed.
For a given set of valid codes, let us define a finite set of small variations
Ω ( Ξ ˜ ) = { δ 1 ( S ) , , δ M ( S ) } .
Completeness is the main property of a set of small variations for a set of valid codes with bounded length.
Definition 5.
A set of small variations is complete if for any two valid codes S i , S j Ξ it is always possible to find a finite number of small variations to obtain a valid code S j Ξ from valid code S i Ξ .
S j = δ k 1 ( ( δ k d ( S i ) ) .
Any small variation is a mapping function of set of valid element codes into itself
δ k ( S ) : Ξ Ξ , δ k ( S ) Ω .
Let us define the distance between two valid codes.
Definition 6.
The distance between two valid codes equals the minimum number of small variations to obtain a valid code from another valid code.
d ( S i , S j ) = min d { S j = δ k 1 ( ( δ k d ( S i ) ) } ,
where δ k r ( S ) Ω ( Ξ ) , r = 1 , d .
Here, the distance corresponds to the Levenshtein metrics [25] but for symbolic regression codes.
Let us define the M-neighborhood Δ M ( S ) of code S .
Definition 7.
Neighborhood Δ R ( S ) of code S is a set of all codes that are less than R far from S .
S i Δ R ( S 0 ) Ξ d ( S i , S 0 ) R .
To describe a variation let us introduce a vector of variation
w = [ w 1 w r ] T ,
where r is a dimension of the vector of variation that is determined by the information required to perform a small variation δ i ( S ) . It depends on the symbolic regression method. For example, w 1 is an index of small variation, w 2 , w r 1 is the index of the variable symbol in the code or the indices of the element in vector or in matrix by which the variable element is determined, w r is the new value of the variable element of the code S .
Vector of variation is an operator that influences the code and transforms it into another code
S j = w S i .
According to the principle of small variations of the basic solution in the code space for symbolic regression methods, let us define a basic solution. The basic solution is set by the researcher based on the assumption that this possible solution should be the closest to the desired optimal solution. Here, the researcher may interfere with the machine search and “advise” the machine where to search for the optimal solution. If a researcher is looking for, for example, a mathematical expression for solving identification or a control synthesis problem, then he can simplify the statement, find an analytical solution, and use it as a basic one. Next, he encodes the basic solution using the symbolic regression method
S 0 = ( s 1 , , s n 0 ) .
Other possible solutions are given by the sets of vectors of variations
B = { W 1 , , W H } ,
where
W i = ( w i , 1 , , w i , R ) .
Thus, any possible solutions S i is in R-neighborhood of basic solution
S i = W i S 0 = w i , R w i , R 1 w i , 1 S 0 ,
that is why d ( S 0 , S i ) R , 1 i H .
Now, instead of searching for a solution on the entire set of codes (16), a solution is sought in the neighborhood of a given basic solution on the space of vectors of variations (30).
To find the optimal solution, we use a genetic algorithm. In this case, there is no need to develop special operations for crossover and mutation.
When performing the crossover, we select two sets of vectors of variations randomly or according to methods used in theory of GA
W i = ( w i , 1 , , w i , R ) , W j = ( w j , 1 , , w j , R ) .
Define a crossover point c { 1 , , R } . Exchange the vectors of variations after the crossover point in the selected sets. As a result, we obtain two new sets of vectors of variations
W H + 1 = ( w i , 1 , , w i , c , w j , c + 1 , , w j , R ) ,
W H + 2 = ( w j , 1 , , w j , c , w i , c + 1 , , w i , R ) .
Two new sets of vectors of variations are two new codes in the neighborhood of basic solution
S H + 1 = W H + 1 S 0 = w H + 1 , R w H + 1 , 1 S 0 ,
S H + 2 = W H + 2 S 0 = w H + 2 , R w H + 2 , 1 S 0 .
To perform the mutation in the obtained sets (34), (35), randomly select one of the vectors and replace it with a randomly generated vector of variations.

4. Small Variations for Symbolic Regression Methods

Nowadays, many symbolic regression methods are known. Let us name some of them: GP [1], analytic programming [4], grammatical evolution [2], Cartesian GP [3], inductive genetic programming [13], network operator method [5], parser-matrix evolution [6], and complete binary GP [7]. Only eight symbolic regression methods are listed here. All these methods, except for the network operator method, do not use the principle of small variations of the basic solution. The principle of small variations was firstly applied in the network operator method. If we apply the principle of small variations of the basic solution to the rest seven symbolic regression methods, then we get seven more new methods. Symbolic regression methods with the principle of small variations of the basic solution have the first word “variational” in their name. For example, variational GP, variational Cartesian GP, etc. Consider the application of the principle of small variations of the basic solution to GP.

4.1. Network Operator Method

The network operator method encodes mathematical expressions in the form of directed graphs [5,27]. For coding, the method uses functions with one and two arguments. On the graph, functions with one argument are associated with the edges, functions with two arguments are associated with the nodes, and the arguments of the encoded mathematical expression are associated with the source nodes of the graph. Functions with two arguments must be commutative, associative, and have a unit element. An integer matrix of the network operator is used to store the code in the computer memory.
Let us consider an example of coding in the network operator method. Let a mathematical expression be given as
y = sin ( cos ( q 1 x 1 + q 2 ) ) + exp ( q 2 x 2 ) ,
where q 1 , q 2 are parameters, x 1 , x 2 are variables. The parameters and the variables are arguments of the mathematical expression.
To encode a mathematical expression, it is sufficient to use the following sets of arguments and elementary functions
The set of arguments
F 0 = { x 1 , x 2 , q 1 , q 2 } .
The set of function with one argument
F 1 = { f 1 , 1 ( z ) = z , f 1 , 2 ( z ) = z , f 1 , 3 ( z ) = sin ( z ) , f 1 , 4 ( z ) = cos ( z ) , f 1 , 5 ( z ) = exp ( z ) } .
The set of function with two arguments
F 2 = { f 2 , 1 ( z 1 , z 2 ) = z 1 + z 2 , f 2 , 2 ( z 1 , z 2 ) = z 1 z 2 } .
The graph of the network operator for (38) is given in Figure 1. In the source nodes of the graph, there are arguments of the mathematical expression. The remaining nodes contain indices of functions with two arguments. Next to the edges there are indices of functions with one argument. The indices correspond to the second index of elements in the sets of elementary functions (40) and (41). The nodes are enumerated according to topological sorting in their upper parts. The number of the node from which the edge exits is less than the number of the node where the edge enters. Such enumeration is always possible for graphs without loops, and it allows one to obtain an upper triangular matrix of the network operator. For nodes 8 and 9, the second argument is not specified. We use a unit element, zero for the addition function, as the second argument.
The network operator matrix for (38) is the following
Ψ = 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 0 0 2 0 2 0 0 0 0 0 0 0 0 1 0 4 0 0 0 0 0 0 0 0 1 0 5 0 0 0 0 0 0 0 0 1 3 0 0 0 0 0 0 0 0 0 1 .
The numbers of rows and columns in the network operator matrix correspond to the node number in the graph. Edges exiting the node are located in a row, edges entering a node are located in a column. The diagonal elements contain indices of functions with two arguments. The rest nonzero elements are the indices of functions with one argument.
Let us introduce small variations for the code of the network operator: 1—replacement of a nonzero off-diagonal element, 2—replacement of a nonzero diagonal element, 3—replacement of a zero off-diagonal element, 4—zeroing of an off-diagonal nonzero element. Small variation 4 is performed only if at least one off-diagonal nonzero element remains in the given row and in the given column.
To present a small variation use a vector of four components
w = [ w 1 w 2 w 3 w 4 ] T ,
where w 1 is an index of small variation, w 2 is an index of row, w 3 is an index of column, w 4 is a new value of element.
Suppose that we have a set of four vectors of variations
w 1 = [ 1 7 9 2 ] T , w 2 = [ 4 6 8 1 ] T , w 3 = [ 2 6 6 1 ] T , w 4 = [ 3 5 9 3 ] T .
If we apply this set of variations to the network operator matrix (42), we obtain a new network operator matrix
w 4 w 3 w 2 w 1 Ψ = 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 2 0 1 0 3 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 1 0 5 0 0 0 0 0 0 0 0 1 3 0 0 0 0 0 0 0 0 0 1 .
Note that the second variation w 2 cannot be performed since, after this, there will be no nonzero nondiagonal elements left.
New network operator matrix (45) corresponds to the following mathematical expression
y = sin ( ( q 1 x 1 + q 2 ) + sin ( q 1 x 1 ) ) + exp ( ( q 2 + x 2 ) ) .

4.2. Variational Genetic Programming

The GP code for a mathematical expression is a computational tree. Arguments of a mathematical expression are located on the branches of the tree. The computational tree for the mathematical expression (38) is shown in Figure 2.
In GP computational tree functions are placed in the nodes. The functions from the sets (40) and (41) were used. The number of arguments in the leaves of the tree must match the number of times these arguments are used in the expression. For example, the parameter q 2 appears in a mathematical expression twice, so it appears twice in the leaves of the tree.
To store the computational tree in the computer memory a vector of two components is used
s G P = [ s 1 s 2 ] T ,
where s 1 is a number of function arguments, s 2 is the function index.
Arguments of a mathematical expression are represented as functions without arguments
F 0 = { f 0 , 1 = x 1 , f 0 , 2 = x 2 , f 0 , 3 = q 1 , f 0 , 4 = q 2 } .
GP code for (38) is
S = ( [ 2 1 ] T , [ 1 3 ] T , [ 1 4 ] T , [ 2 1 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 5 ] T , [ 1 2 ] T , [ 2 2 ] T , [ 0 2 ] T , [ 0 4 ] T ) .
Let us define small variations for GP: 1—change of the second component of the function code vector, while the value of the second component indicates the index of the element from the set given by the first component; 2—removal of the vector of the function code with one argument; 3—insertion of a function code vector with one argument; 4—increasing the value of the first component of the function vector code, while the vector of the argument code is inserted after the code of the function; 5—decreasing the value of the first component of the function vector code by one, while deleting the first argument code encountered after the variable code. If a contradiction arises when performing a variation, then the small variation is not performed.
To code small variation for GP we use a vector of variation of tree components
w = [ w 1 w 2 w 3 ] T ,
where w 1 is a type of variation, w 1 { 1 , , 5 } , w 2 is an index of variable element, w 3 is a value of new element.
Suppose that for a GP code (49) of expression (38) the following variations are defined
w 1 = [ 1 4 2 ] T , w 2 = [ 2 3 1 ] T , w 3 = [ 4 9 1 ] T w 4 = [ 3 5 4 ] T w 5 = [ 5 12 1 ] T
Perform small variations for code (49)
w 1 S = ( [ 2 1 ] T , [ 1 3 ] T , [ 1 4 ] T , [ 2 2 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 3 ] T , [ 1 2 ] T , [ 2 2 ] T , [ 0 2 ] T , [ 0 4 ] T ) ,
w 2 w 1 S = ( [ 2 1 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 3 ] T , [ 1 2 ] T , [ 2 2 ] T , [ 0 2 ] T , [ 0 4 ] T ) ,
w 3 w 2 w 1 S = ( [ 2 1 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 2 2 ] T , [ 0 2 ] T , [ 0 4 ] T ) ,
w 4 w 3 w 2 w 1 S = ( [ 2 1 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 2 2 ] T , [ 1 4 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 2 2 ] T , [ 0 2 ] T , [ 0 4 ] T ) ,
w 5 w 4 w 3 w 2 w 1 S = ( [ 2 1 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 2 2 ] T , [ 1 4 ] T , [ 0 1 ] T , [ 0 3 ] T , [ 0 4 ] T , [ 1 3 ] T , [ 2 2 ] T , [ 0 1 ] T , [ 1 2 ] T , [ 0 4 ] T ) .
As a result of small variations (51) for code (49), we obtain a code (56) of expression
y = sin ( q 1 q 2 cos ( x 1 ) ) + sin ( x 1 q 2 ) .

4.3. Variational Cartesian Genetic Programming

Cartesian genetic programming (CGP) does not use graphs to present codes of expressions. All elementary functions are combined into one set. The number of function arguments is determined by its index. A mathematical expression is coded as a sequence of calls of elementary functions. Each function call is coded by an integer vector. The first element of the vector is the function index, the remaining elements are the indices of elements from the set of arguments. The result of the calculation of the function call is immediately added to the set of arguments so that it can be used in subsequent calls.
Consider an example of coding mathematical expression (38) by CGP. We will use the set of arguments (39), combine all functions from (40) and (41) into one set, and exclude identity function f 1 , 1 ( z ) = z
F = { f 1 ( z ) = z , f 2 ( z ) = sin ( z ) , f 3 ( z ) = cos ( z ) , f 4 ( z ) = exp ( z ) , f 5 ( z 1 , z 2 ) = z 1 + z 2 , f 6 ( z 1 , z 2 ) = z 1 z 2 ) } .
Since in (58) there are only functions with one and two arguments, it is sufficient to use a vector of three elements to encode a function call. For the function with one argument, the third element is not used.
The CGP for a mathematical expression (38) is as follows
S = 6 3 1 , 5 5 4 , 3 6 1 , 2 7 2 , 6 4 2 , 1 9 3 , 4 10 4 , 5 8 11 .
Small variation of code in CGP is a change of one element of the code [28]. To present a small variation, it is enough to use an integer vector of three elements
w = [ w 1 w 2 w 3 ] T ,
where w 1 is an index of column in the code, w 2 is an index of row in the column w 1 , and w 3 is a new value of the element.
If we vary the first element of the vector of an elementary function, then its new value is determined by the index of the element from the set of elementary functions (58). If we vary some other element, then its value must be less than the sum of the number of elements in the set of arguments (39) and the index w 1 of the varied call vector.
Let us define some variations of the CGP code of (59).
w 1 = [ 2 1 3 ] T , w 2 = [ 3 2 5 ] T , w 3 = [ 6 2 8 ] T , w 3 = [ 6 1 6 ] T .
Having performed small variations (61), we obtain the following CGP code
w 4 w 3 w 2 w 1 S = 6 3 1 , 3 5 4 , 3 5 1 , 2 7 2 , 6 4 2 , 6 8 3 , 4 10 4 , 5 8 11 .
that corresponds to mathematical expression
y = exp ( q 1 sin ( cos ( q 1 x 1 ) ) ) + sin ( cos ( q 1 x 1 ) ) .
The disadvantage of CGP is that some calls of function in the final mathematical expression may not be used.

4.4. Variational Complete Binary Genetic Programming

Complete binary genetic programming (CBGP) encodes mathematical expressions as complete binary trees. For this structure, only functions with one or two arguments are used. Functions with two arguments are associated with tree nodes, functions with one argument are are associated with tree branches. Arguments of mathematical expressions and unit elements for functions with two arguments are placed on the leaves of the tree. Since the tree is complete, the number of elements at each level is known. There is no need to specify the number of arguments for the function when writing code to store it in computer memory. The quantity of arguments is determined by the position of the function in the code. Unit elements for functions with two arguments are added to the set of arguments.
To encode a mathematical expression (38) by CBGP, we use sets of elementary functions with one and two arguments (40) and (41). We add unit elements for functions with two arguments in the set of arguments (39), i.e. zero for addition and one for multiplication
F 0 = ( f 1 = x 1 , f 2 = x 2 , f 3 = q 1 , f 4 = q 2 , f 5 = 0 , f 6 = 1 ) .
A CBGP computational tree for mathematical expression (38) is given in Figure 3 and Figure 4.
CBGP code is an ordered set of function indices from a tree, written sequentially from left to right. At the last level, the indices of arguments from the set (64) are indicated.
The CBGP code for mathematical expression (38) is
S = ( 1 , 1 , 3 , 5 , 1 , 1 , 4 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 3 , 1 , 4 , 5 , 6 , 5 , 6 , 5 , 2 , 5 , 4 , 5 , 6 , 5 , 6 , 5 ) .
Here, for convenience, the CBGP code is presented on different lines according to the levels of the tree. Each level k contains 2 k number of functions with one argument and the same number of functions with two arguments. Altogether, there are 2 k + 1 elements at the level k. The total number of elements L in the CBGP code for a binary tree with K levels is calculated as
L = k = 0 K 2 k + 1 = 2 1 + 2 2 + + 2 K + 1 = 2 K + 2 2 .
In the considered example, we have K = 4 levels and thus 2 4 + 2 2 = 62 elements.
To determine whether element f s α , where α is an index of element in the code, belongs to one of the sets F 0 , F 1 , or F 2 , we use the following relations
f s α F 0 , if 2 k + 2 2 k α 2 k + 2 2 and k = K F 1 , if 2 k + 1 1 α 2 k + 2 2 k 2 F 2 , if 2 k + 2 2 k α 2 k + 2 2 and k < K ,
where k is the smallest number, that satisfies inequality
α 2 k + 2 2 .
To present a small variation of CBGP code, let us use a vector of two elements
w = [ w 1 w 2 ] T ,
where w 1 is an index of element position and w 2 is a new value of element.
Consider an example of small variations of CBGP code (65) that describes the mathematical expression (38)
w 1 = [ 12 1 ] T , w 2 = [ 55 3 ] w 3 = [ 7 5 ] T w 4 = [ 50 1 ] .
Having performed variations (70), we obtain a new CBGP code
S = ( 1 , 1 , 3 , 5 , 1 , 1 , 5 , 1 , 2 , 1 , 1 , 1 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 3 , 1 , 4 , 1 , 6 , 5 , 6 , 5 , 3 , 5 , 4 , 5 , 6 , 5 , 6 , 5 ) .
This code presents a new mathematical expression
y = sin ( exp ( q 1 x 1 + q 2 + x 1 ) ) + exp ( ( q 1 + q 2 ) ) .

5. Computational Experiments

5.1. Case 1. Control Synthesis for Mobile Robot

As an example, let us consider the application of the variational symbolic regression method for control synthesis of a mobile robot. In the problem, it is necessary to find a mathematical expression for the control function that transfers the object from the set of initial conditions to the terminal one with the optimal value of the quality criterion.
The mathematical model [29] of control object is
x ˙ 1 = 0.5 ( u 1 + u 2 ) cos ( x 3 ) , x ˙ 2 = 0.5 ( u 1 + u 2 ) sin ( x 3 ) , x ˙ 3 = 0.5 ( u 1 u 2 ) ,
where x = [ x 1 x 2 x 3 ] T is a state vector, u = [ u 1 u 2 ] T is a control vector.
The control is constrained
u = 10 u i 10 = u + , i = 1 , 2 .
The initial condition is a set of 30 states
X 0 = { x 0 , 1 = [ 2 2.5 5 π / 12 ] T , x 0 , 2 = [ 1 2.5 5 π / 12 ] T , x 0 , 3 = [ 0 2.5 5 π / 12 ] T , x 0 , 4 = [ 1 2.5 5 π / 12 ] T , x 0 , 5 = [ 2 2.5 5 π / 12 ] T , x 0 , 6 = [ 2 2.5 5 π / 12 ] T , x 0 , 7 = [ 1 2.5 5 π / 12 ] T , x 0 , 8 = [ 0 2.5 5 π / 12 ] T , x 0 , 9 = [ 1 2.5 5 π / 12 ] T , x 0 , 10 = [ 2 2.5 5 π / 12 ] T , x 0 , 11 = [ 2 2.5 0 ] T , x 0 , 12 = [ 1 2.5 0 ] T , x 0 , 13 = [ 0 2.5 0 ] T , x 0 , 14 = [ 1 2.5 0 ] T , x 0 , 15 = [ 2 2.5 0 ] T , x 0 , 16 = [ 2 2.5 0 ] T , x 0 , 17 = [ 1 2.5 0 ] T , x 0 , 18 = [ 0 2.5 0 ] T , x 0 , 19 = [ 1 2.5 0 ] T , x 0 , 20 = [ 2 2.5 0 ] T , x 0 , 21 = [ 2 2.5 5 π / 12 ] T , x 0 , 22 = [ 1 2.5 5 π / 12 ] T , x 0 , 23 = [ 0 2.5 5 π / 12 ] T , x 0 , 24 = [ 1 2.5 5 π / 12 ] T , x 0 , 25 = [ 2 2.5 5 π / 12 ] T , x 0 , 26 = [ 2 2.5 5 π / 12 ] T , x 0 , 27 = [ 1 2.5 5 π / 12 ] T , x 0 , 28 = [ 0 2.5 5 π / 12 ] T , x 0 , 29 = [ 1 2.5 5 π / 12 ] T , x 0 , 30 = [ 2 2.5 5 π / 12 ] T } .
The terminal condition is
x f = [ 0 0 0 ] T .
It is necessary to find a control as a function of state coordinates
u i = h i ( x 1 , x 2 , x 3 ) , u h i ( x 1 , x 2 , x 3 ) u + , i = 1 , 2 ,
to minimize the functional
J = k = 1 30 t f , k + i = 1 3 x i 2 ( t f , k , x 0 , k ) ,
where
t f , k = t , if i = 1 3 x i 2 ( t , x 0 , k ) < ε t + , otherwise ,
ε = 0.01 , t + = 1.5 s, x i ( t , x 0 , k ) is a partial solution of ODE system (73) with control (77) for initial state x 0 , k , k { 1 , , 30 } .
To solve the problem, we used variational CGP and obtained the following control function
h i ( x 1 , x 2 , x 3 ) = u , if u ˜ i < u u + , if u ˜ i > u + u ˜ i , otherwise , i = 1 , 2 ,
where
u ˜ 1 = sgn ( arctan ( q 2 x 2 / ( q 3 x 1 ) + 1 / x 1 ) ) ( exp ( q 3 arctan ( q 2 x 2 / ( q 3 x 1 ) + 1 / x 1 ) ) 1 ) 3 q 3 x 1 x 3 u ˜ 2 = ( ( q 3 x 1 x 2 sgn ( q 2 x 2 / ( q 3 x 1 ) + 1 / x 1 ) × ( exp ( q 3 arctan ( q 2 x 2 / ( q 3 x 1 ) + 1 / x 1 ) ) 1 ) ) 3 + 1 + q 1 ) 3
q 1 = 2.74121 , q 2 = 1.82129 , q 3 = 3.88281 . The value of quality criterion (78) for the solution is J = 34.6372 .
Trajectories of mobile robot from different initial states to terminal one on plane are presented on Figure 5. To solve the problem, the system (73) was integrated 2,386,440 times. The calculations were performed on Intel Core i7, 2.8 GHz. The computational time was approx. 15 min.
It should be noted here that CGP without applying the principle of small variations of the basic solution did not cope with the solution of the problem and could not find a single acceptable solution with the same search parameters.

5.2. Case 2. Knapsack Problem

Consider a classic NP-hard knapsack problem. We need to choose, among a number of objects, some set of objects that satisfy certain criteria. Vector of small variations consists of two elements: 1—index of element in the set of objects; 2—a new value.
Suppose that the capacity of knapsack is C. The set of objects with some weights is
X = ( x 1 , , x K ) , x x i x + , i = 1 , K ¯ ,
where x and x + are low and upper values of objects, K is a number of objects.
Each possible solution is
y = [ y 1 y K ] , y i { 0 , 1 } , i = 1 , K ¯ .
It is necessary to find a vector y to minimize the following quality criterion
F ( y ) = | C * i = 1 K y i x i | min ,
so that the weight of objects would be as close to the capacity of knapsack as possible.
Consider the following example. We have a K = 100 objects that have real values (suppose weights, kg) from 0 to 10. The capacity of the knapsack is 100 kg. We need to choose the objects so that their total weight is close to the capacity. In general case there are different types of constraints, on weight, volume, costs, etc.
To solve this problem, we applied VarGA. The parameters of algorithm are given in Table 1.
The set of objects is
X = { x 1 = 1.198973 , x 2 = 8.195864 , x 3 = 0.149163 , x 4 = 0.600499 , x 5 = 1.868563 , x 6 = 1.134450 , x 7 = 2.940746 , x 8 = 3.005569 , x 9 = 0.235667 , x 10 = 6.92442 , x 11 = 9.862742 , x 12 = 9.013933 , x 13 = 1.685997 , x 14 = 4.716708 , x 15 = 1.805467 , x 16 = 3.955157 , x 17 = 3.605431 , x 18 = 3.456106 , x 19 = 4.063158 , x 20 = 8.704509 , x 21 = 1.290323 , x 22 = 7.570359 , x 23 = 0.605452 , x 24 = 5.840240 , x 25 = 7.466071 , x 26 = 7.852390 , x 27 = 0.020214 , x 28 = 4.903944 , x 29 = 7.782723 , x 30 = 8.912633 , x 31 = 8.311701 , x 32 = 4.629041 , x 33 = 9.999174 , x 34 = 0.188699 , x 35 = 2.837382 , x 36 = 6.866526 , x 37 = 3.853656 , x 38 = 9.422472 , x 39 = 7.059892 , x 40 = 5.666469 , x 41 = 7.686985 , x 42 = 6.470105 , x 43 = 3.892209 , x 44 = 0.501044 , x 45 = 3.471120 , x 46 = 3.024267 , x 47 = 1.730138 , x 48 = 8.358248 , x 49 = 0.700096 , x 50 = 8.905066 , x 51 = 6.966928 , x 52 = 3.520369 , x 53 = 3.283775 , x 54 = 9.267853 , x 55 = 0.620899 , x 56 = 7.016356 , x 57 = 9.203328 , x 58 = 4.219690 , x 59 = 1.891819 , x 60 = 3.921507 , x 61 = 4.049162 , x 62 = 5.061787 , x 63 = 9.480431 , x 64 = 6.256851 , x 65 = 0.661214 , x 66 = 5.630264 , x 67 = 9.411684 , x 68 = 5.275044 , x 69 = 4.325184 , x 70 = 1.710065 , x 71 = 2.823965 , x 72 = 1.055504 , x 73 = 8.029722 , x 74 = 5.355668 , x 75 = 1.084831 , x 76 = 9.075759 , x 77 = 6.102632 , x 78 = 8.207962 , x 79 = 1.945653 , x 80 = 0.996382 , x 81 = 7.408127 , x 82 = 5.727311 , x 83 = 2.674080 , x 84 = 4.547363 , x 85 = 7.281093 , x 86 = 6.022923 , x 87 = 3.066631 , x 88 = 5.206564 , x 89 = 2.919562 , x 90 = 0.500339 , x 91 = 0.182961 , x 92 = 7.070480 , x 93 = 9.648925 , x 94 = 8.176261 , x 95 = 6.963208 , x 96 = 3.829286 , x 97 = 3.794559 , x 98 = 6.652624 , x 99 = 4.438315 , x 100 = 0.459797 } .
As a result, we obtained the following solution
y i = 1 , i = 1 , 4 , 5 , 6 , 11 , 14 , 15 , 16 , 21 , 23 , 27 , 28 , 29 , 31 , 32 , 43 , 44 , 46 , 47 , 48 , 51 , 59 , 65 , 69 , 78 , 90 , 91 , 92 .
The objective function for this solution is F ( y ) = 0.00125 ,
i = 1 100 y i x i = 99.998749 .

6. Results

Symbolic regression methods are currently used to solve complex optimization problems in non-numeric spaces. To expand the area of their application and, in particular, to simplify the execution of the operations of the genetic algorithm, a universal approach was developed based on the principle of small variations of the basic solution.
The main definitions, the distance between the codes, and the neighborhood of the code, including the concept of the inheritance property, were given. A proof of the theorem was presented for solving an optimization problem on a non-numerical space, and provided that the value of the functional is uniformly distributed over a certain interval, the use of symbolic regression methods with the inheritance property for search of optimal solution on a non-numerical space is more efficient than the random search.
Examples of constructing small variations of the basic solution for various methods of symbolic regression were given. It is proposed that the methods which use the principle of small variations be called variational. An example of solving the synthesis problem was given, in which it was necessary to find one control function to ensure the transfer of an object from 30 initial conditions to one terminal point according to the criterion of speed and accuracy. The problem was solved by the variational Cartesian genetic programming. In addition, the classical NP-hard knapsack problem for 100 objects was solved using a variational genetic algorithm.
The results presented in the article have both fundamental and practical importance.

7. Discussion

The principle of small variations of basic solution is considered as a universal approach to solving problems using symbolic regression methods. In the future, it is proposed to expand the area of its application for solving other optimization problems on a non-numerical space.
The set of types of elementary variations can be expanded by introducing new variations: inserting a code element at a certain position with a shift of the rest of the code to the right, deleting a code element with a shift to the left, exchanging code elements, etc. The depth of variations, that is, the number of small variations applied to the basic solution for obtaining a new code, affects the computational time to find the optimal solution and may vary. The study of the effectiveness of using various types of small variations and their depth are tasks to be solved.

8. Patents

Certificate of software registration No. 2020619911 Sofronova, E.A., Diveev, A.I., “Program for simulation and optimal control of traffic lights by variational genetic algorithm”, 25 August 2020.
Certificate of software registration No. 2021611714 Diveev, A.I. Shmalko, E.Yu. Konstantinov, S.V., “Synthesis of a multidimensional control function from the object state based on the approximation of optimal directories by the method of the network operator”, 3 February 2021.
Certificate of software registration No. 2021611899 Diveev, A.I. Shmalko, E.Yu., “Synthesis of a stabilization system based on variational Cartesian genetic programming”, 8 February 2021.

Author Contributions

Conceptualization, A.D.; Methodology, A.D.; Investigation, A.D., E.S.; Software, A.D., E.S.; Supervision, A.D.; Writing—original draft, A.D.; E.S.; Writing—review and editing, E.S. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Ministry of Science and Higher Education of the Russian Federation, project No 075-15-2020-799.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Acknowledgments

The authors thank the unknown reviewers for their useful comments.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

The following abbreviations are used in this manuscript:
GAgenetic algorithm
GPgenetic programming
CGPcartesian genetic programming
CBGPcomplete binary genetic programming
VarGAvariational genetic algorithm

References

  1. Koza, J.R. Genetic Programming; MIT Press: Cambridge, MA, USA, 1992. [Google Scholar]
  2. O’Neil, M.; Ryan, C. Grammatical Evolution. IEEE Trans. Evol. Comput. 2001, 4, 349–358. [Google Scholar] [CrossRef] [Green Version]
  3. Miller, J.; Thomson, P. Cartesian Genetic Programming. In Genetic Programming. EuroGP; Poli, R., Banzhaf, W., Langdon, W.B., Miller, J., Nordin, P., Fogarty, T.C., Eds.; Lecture Notes in Computer Science Series; Springer: Berlin/Heidelberg, Germany, 2000; Volume 1802. [Google Scholar]
  4. Zelinka, I.; Oplatkova, Z.; Nolle, L. Analytic Programming—Symbolic Regression by Means of Arbitrary Evolutionary Algorithms. Int. J. Smart Secur. Technol. (IJSST) 2005, 9, 44–56. [Google Scholar]
  5. Diveev, A.I.; Sofronova, E.A. Numerical method of network operator for multiobjective synthesis of optimal control system. In Proceedings of the Seventh International Conference on Control and Automation (ICCA’09), Christchurch, New Zealand, 9–11 December 2009; pp. 701–708. [Google Scholar]
  6. Luo, C.; Zhang, S.-L. Parse-matrix evolution for Symbolic Regression. Eng. Appl. Artif. Intell. 2012, 25, 1182–1193. [Google Scholar] [CrossRef] [Green Version]
  7. Diveev, A.I.; Sofronova, E.A. Automation of Synthesized Optimal Control Problem Solution for Mobile Robot by Genetic Programming. In Intelligent Systems and Applications, Proceedings of the 2019 Intelligent Systems Conference (Intellisys), London, UK, 5–6 September 2019; Be, Y., Bhatia, R., Kapoor, S., Eds.; Advances in Intelligent Systems and Computing Series; Springer: Cham, Switzerland, 2019; Volume 2, pp. 1054–1072. [Google Scholar]
  8. Arnaldo, I.; O’Reilly, U.-M.; Veeramachaneni, K. Building predictive models via feature synthesis. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, Madrid, Spain, 11–15 July 2015; pp. 983–990. [Google Scholar]
  9. Brunton, S.L.; Proctor, J.L.; Kutz, J.N. Discovering govering equations from data by sparse identification of nonlinear dynamical systems. Proc. Natl. Acad. Sci. USA 2016, 113, 3932–3937. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  10. Quade, M.; Abel, M.; Nathanutz, J.; Brunton, S.L. Sparse identification of nonlinear dynamics for rapid model recovery. Chaos 2018, 28, 063116. [Google Scholar] [CrossRef] [PubMed]
  11. McRee, R.K. Symbolic regression using nearest neighbor indexing. In Proceedings of the 12th Annual Conference Companion on Genetic and Evolutionary Comutation, GECCO’10, Portland, OR, USA, 7–11 July 2010; pp. 1983–1990. [Google Scholar]
  12. Kong, W.; Liaw, C.; Mehta, A.; Sivakumar, D. A new dog learns old tricks: RL finds classic optimization algorithms. In Proceedings of the International Conference on Learning Representations, New Orleans, LA, USA, 6–9 May 2019; pp. 1–25. [Google Scholar]
  13. Nikolaev, N.; Iba, H. Inductive Genetic Programming of Polynomial Learning Networks. In 2000 IEEE Symposium on Combinations of Evolutionary Computation and Neural Networks, Proceedings of the First IEEE Symposium of Combinations of Evolutionary Computation and Neural Networks, ECNN-2000, San Antonio, TX, USA, 11–13 May 2000; Yao, X., Ed.; IEEE Press: Piscataway, NJ, USA, 2000; pp. 158–167. [Google Scholar]
  14. Schmidt, M.; Lipson, H. Distilling free-form natural laws from experimental data. Science 2009, 324, 81–85. [Google Scholar] [CrossRef] [PubMed]
  15. Diveev, A.; Kazaryan, D.; Sofronova, E. Symbolic regression methods for control system synthesis. In Proceedings of the 22nd Mediterranean Conference on Control and Automation, Palermo, Italy, 16–19 June 2014; pp. 587–592. [Google Scholar]
  16. Eiben, A.E. Grand challenges for evolutionary robotics. Front. Robot. AI 2014, 4, 1–2. [Google Scholar] [CrossRef] [Green Version]
  17. Smetka, T.; Homoliak, I.; Hanacek, P. On the Application of Symbolic Regression and Genetic Programming for Cryptanalysis of Symmetric Encryption Algorithm. In Proceedings of the International Carnahan Conference on Security Technology (ICCST 2016), Orlando, FL, USA, 24–27 October 2016; pp. 1–8. [Google Scholar]
  18. Linden, D.S. Optimizing signal strength in-situ using an evolvable antenna system. In Proceedings of the 2002 NASA/DoD Conference on Evolvable Hardware, Alexandria, VA, USA, 15–18 July 2002; pp. 147–151. [Google Scholar]
  19. McAleer, S.; Agostinelli, F.; Shmakov, A.; Baldi, P. Solving the Rubik’s Cube with Approximate Policy Iteration. In Proceedings of the International Conference on Learning Representations, New Orleans, LA, USA, 6–9 May 2019; pp. 1–13. [Google Scholar]
  20. Kim, S.; Lu, P.; Mukherjee, S.; Gilbert, M.; Jing, L.; Ceperic, V.; Soljacic, M. Integration of Neural Network-Based Symbolic Regression in Deep Learning for Scientific Discovery. arXiv 2019, arXiv:1912.04825. [Google Scholar] [CrossRef] [PubMed]
  21. Diveyev, A.I.; Sofronova, E.A. Application of network operator method for synthesis of optimal structure and parameters of automatic control system. IFAC Proc. Vol. 2008, 41, 6106–6113. [Google Scholar] [CrossRef] [Green Version]
  22. Cranmer, M.; Sanchez-Gonzalez, A.; Battaglia, P.; Xu, R.; Cranmer, K.; Spergel, D.; Ho, S. Discovering Symbolic Models from Deep Learning with Inductive Biases. arXiv 2006, arXiv:2006.11287. [Google Scholar]
  23. Udrescu, S.M.; Tegmark, M. Al Feynman: A physics-inspired method for symbolic regression. Sci. Adv. 2020, 6, eaay2631. [Google Scholar] [CrossRef] [Green Version]
  24. Diveev, A. Small Variations of Basic Solution Method for Non-numerical Optimization. IFAC-PapersOnLine 2015, 48, 028–033. [Google Scholar] [CrossRef]
  25. Levenshtein, V.I. Binary codes capable of correcting deletions, insertions, and reversals. Dokl. Akad. Nauk SSSR 1965, 163, 845–848. [Google Scholar]
  26. Holland, J.H. Adaptation in Natural and Artificial Systems, 2nd ed.; MIT Press: Cambridge, MA, USA, 1992; p. 232. [Google Scholar]
  27. Diveev, A.I. A Numerical Method for Network Operator for Synthesis of a Control System with Uncertain Initial Values. J. Comput. Syst. Sci. Int. 2012, 51, 228–243. [Google Scholar] [CrossRef]
  28. Diveev, A.I. Cartesian Genetic Programming for Synthesis of Optimal Control System. In Proceedings of the Future Technologies Conference (FTC) 2020, Virtual Event, San Francisco, CA, USA, 5–6 November 2020; Arai, K., Kapoor, S., Bhatia, R., Eds.; Springer Nature: Cham, Switzerland, 2021; Volume 2, pp. 205–222. [Google Scholar]
  29. Šuster, P.; Jadlovská, A. Tracking Trajectory of the Mobile Robot Khepera II Using Approaches of Artificial Intelligence. Acta Electrotech. Inform. 2011, 11, 38–43. [Google Scholar] [CrossRef]
Figure 1. The network operator graph for mathematical expression (38).
Figure 1. The network operator graph for mathematical expression (38).
Applsci 11 05081 g001
Figure 2. GP computational tree for mathematical expression (38).
Figure 2. GP computational tree for mathematical expression (38).
Applsci 11 05081 g002
Figure 3. CBGP computational tree for mathematical expression (38).
Figure 3. CBGP computational tree for mathematical expression (38).
Applsci 11 05081 g003
Figure 4. CBGP computational tree for mathematical expression (38) (continued).
Figure 4. CBGP computational tree for mathematical expression (38) (continued).
Applsci 11 05081 g004
Figure 5. Trajectories of mobile robot from eight initial states.
Figure 5. Trajectories of mobile robot from eight initial states.
Applsci 11 05081 g005
Table 1. Parameters of VarGA for the knapsack problem.
Table 1. Parameters of VarGA for the knapsack problem.
ParameterValue
Number of solutions in generation1024
Number of generations128
Number of crossovers128
Depth of variation8
Number of generations between epochs8
Probability of mutation0.75
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Sofronova, E.; Diveev, A. Universal Approach to Solution of Optimization Problems by Symbolic Regression. Appl. Sci. 2021, 11, 5081. https://doi.org/10.3390/app11115081

AMA Style

Sofronova E, Diveev A. Universal Approach to Solution of Optimization Problems by Symbolic Regression. Applied Sciences. 2021; 11(11):5081. https://doi.org/10.3390/app11115081

Chicago/Turabian Style

Sofronova, Elena, and Askhat Diveev. 2021. "Universal Approach to Solution of Optimization Problems by Symbolic Regression" Applied Sciences 11, no. 11: 5081. https://doi.org/10.3390/app11115081

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop