Network operator matrix

Network operator matrix (NOM) is a representation of mathematical expressions in computer memory.

NOM is a new approach to the problem of automatic search of mathematical equations. The researcher defines the sets of operations, variables and parameters. The computer program generates a number of mathematical equations that satisfy given restrictions. Then the optimization algorithm finds the structure of appropriate mathematical expression and its parameters. Network operator is a directed graph that corresponds to some mathematical expressions. Every source nodes of the graph are variables or constants of mathematical expression, inner nodes correspond to binary operations and edges correspond to unary operations. The calculation’s result of mathematical expression is kept in the last sink node.

Example

Consider the following mathematical expression

The graph for Expression (), is presented in Fig. 1.

On the edges we place unary operations

ρ1(z) = z ;
ρ3(z) =  − z ;
$\rho_6(n) = \begin{cases} \varepsilon\!^{ -1}, & \text{if }z>\ln \varepsilon \!\\ e^z, & \text{ otherwise} \end{cases} ;$
ρ12(z) = sin z ;

In the inner and sink nodes we place binary operations
χ0(z′,z″) = z′ + z″ ;
χ1(z′,z″) = z′ × z″ ;

Expression 1 can be presented in the PC memory as a NOM

\Psi = \begin{bmatrix}

0 & 0 & 0 & 1 & 1 & 0 & 0 & 12 \\
0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 3 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 6 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0

\end{bmatrix}

Any mathematical expression can be presented as a network operator matrix.
To calculate the mathematical expression by the network operator matrix the node vector is used.
Each component of node vector corresponds to the nodes of the network operator graph. Initially each component is equal to the argument for the given node or the unit element of binary operation.
For addition and multiplication the number of operation equals its unit element. For addition it is 0, for multiplication it is 1. The node vector for the given example

z = [x1 q1 x2 0 1 0 1 0]T

The calculation by matrix Ψ is performed for nonzero nondaigonal elements ψ(i,j) ≠ 0 by

zj = χψj, j(zj,ρψi, j(zi))

Follow the rows of the matrix.
For the Row 1 we have ψ1, 4 = 1, that is i = 1, j = 4, ψj, j = ψ4, 4 = 0.

Take arguments from z = [x1 q1 x2 0 1 0 1 0]T

z1 = x1, z4 = 0 then

z4 = χψ4, 4(z4,ρψ1, 4(z1)) = χ0(z4,ρ1(z1)) = 0 + x1 = x1

Further in Row 1 we have ψ1, 5 = 1

z5 = χψ5, 5(z5,ρψ1, 5(z1)) = χ1(z5,ρ1(z1)) = 1 × x1 = x1

ψ1, 8 = 12

z8 = χψ8, 8(z8,ρψ1, 8(z1)) = χ0(z8,ρ12(z1)) = 0 + sin x1 = sin x1.

As a result after Row 1 we have z = [x1 q1 x2 x1 x1 0 1 sinx1]T.

For the Row 2 we have ψ2, 5 = 1
z5 = χψ5, 5(z5,ρψ2, 5(z2)) = χ1(z5,ρ1(z1)) = x1q1

then follow the rows

ψ3, 6 = 3
z6 = χψ6, 6(z6,ρψ3, 6(z3)) = χ0(z6,ρ3(z3)) = 0 + (−x2) =  − x2


ψ4, 8 = 1

z8 = χψ8, 8(z8,ρψ4, 8(z4)) = χ0(z8,ρ1(z4)) = sin x1 + x1


ψ5, 7 = 1

z7 = χψ7, 7(z7,ρψ5, 7(z5)) = χ1(z7,ρ1(z5)) = 1x1q1 = x1q1


ψ6, 7 = 6

z7 = χψ7, 7(z7,ρψ6, 7(z6)) = χ1(z7,ρ6(z6)) = x1q1ex2


ψ7, 8 = 1

z8 = χψ8, 8(z8,ρψ7, 8(z7)) = χ0(z8,ρ1(z7)) = sin x1 + x1 + x1q1ex2.