<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2024.122005</article-id><article-id pub-id-type="publisher-id">JCC-131242</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Rapid Prototype Development Approach for Genetic Programming
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Pei</surname><given-names>He</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Lei</surname><given-names>Zhang</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>School of Cyberspace Security, Guangzhou University, Guangzhou, China</addr-line></aff><aff id="aff1"><addr-line>School of Computer Science and Cyber Engineering, Guangzhou University, Guangzhou, China</addr-line></aff><pub-date pub-type="epub"><day>05</day><month>02</month><year>2024</year></pub-date><volume>12</volume><issue>02</issue><fpage>67</fpage><lpage>79</lpage><history><date date-type="received"><day>7,</day>	<month>January</month>	<year>2024</year></date><date date-type="rev-recd"><day>18,</day>	<month>February</month>	<year>2024</year>	</date><date date-type="accepted"><day>21,</day>	<month>February</month>	<year>2024</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  Genetic Programming (GP) is an important approach to deal with complex problem analysis and modeling, and has been applied in a wide range of areas. The development of GP involves various aspects, including design of genetic operators, evolutionary controls and implementations of heuristic strategy, evaluations and other mechanisms. When designing genetic operators, it is necessary to consider the possible limitations of encoding methods of individuals. And when selecting evolutionary control strategies, it is also necessary to balance search efficiency and diversity based on representation characteristics as well as the problem itself. More importantly, all of these matters, among others, have to be implemented through tedious coding work. Therefore, GP development is both complex and time-consuming. To overcome some of these difficulties that hinder the enhancement of GP development efficiency, we explore the feasibility of mutual assistance among GP variants, and then propose a rapid GP prototyping development method based on 
  πGrammatical Evolution (
  πGE). It is demonstrated through regression analysis experiments that not only is this method beneficial for the GP developers to get rid of some tedious implementations, but also enables them to concentrate on the essence of the referred problem, such as individual representation, decoding means and evaluation. Additionally, it provides new insights into the roles of individual delineations in phenotypes and semantic research of individuals.
 
</p></abstract><kwd-group><kwd>Genetic Programming</kwd><kwd> Grammatical Evolution</kwd><kwd> Gene Expression  Programming</kwd><kwd> Regression Analysis</kwd><kwd> Mathematical Modeling</kwd><kwd> Rapid Prototype Development</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Genetic Programming (GP) [<xref ref-type="bibr" rid="scirp.131242-ref1">1</xref>] is an automatic programming approach applied in a wide range of application areas, such as circuit design, mathematical modeling, data mining, image analysis, regression analysis, natural disaster prediction, etc. [<xref ref-type="bibr" rid="scirp.131242-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref6">6</xref>] . Its fundamental design idea comes from a genetic algorithm [<xref ref-type="bibr" rid="scirp.131242-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref8">8</xref>] , which is derived from such a rule as “survival of the fittest”, that is, evolving constantly populations of individuals, followed by the evaluations, and finally obtaining the desired solution with the best fitness value to some given problem. With the rapid development of computing technology, this search-based method has become one of the most important tools to deal with many optimization problems.</p><p>GP algorithm consists of 5 steps: a) constructing an initial population of individuals associated with approximate solutions to some given problem; b) evaluating individuals in the population for their fitness values and algorithmic termination condition. If the condition holds, go to step e); otherwise, execute the next step; c) generating a new generation of individuals on the basis of genetic operators and strategies; d) go to step b); e) regarding the individual with the best fitness value as the desired result. This is the common structure of various GP systems.</p><p>Up to now, there appear a great many GP variants, which include Grammatical Evolution (GE) [<xref ref-type="bibr" rid="scirp.131242-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref11">11</xref>] , Gene Expression Programming (GEP) [<xref ref-type="bibr" rid="scirp.131242-ref12">12</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref13">13</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref14">14</xref>] , Multi-Expression Programming (MEP) [<xref ref-type="bibr" rid="scirp.131242-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref14">14</xref>] , Cartesian Genetic Programming (CGP) [<xref ref-type="bibr" rid="scirp.131242-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref15">15</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref16">16</xref>] , etc. Generally speaking, both their designs and implementations will be concerned with individual representations, genetic operators, evolutionary controls, evaluations, and the like. Consequently, novel GPs designed for some specific problems have the characteristics of structural consistency, but it will be very time-consuming and laborious to design and develop them from scratch.</p><p>In this paper, we intend to make a preliminary discussion on the rapid prototyping development of Genetic programming. To our knowledge, similar work related to it is relatively rare. Since many GP variants share the same structure, we manage to build a suitable bridge between them, so that the rapid prototyping development conception and target GP variants can be explored and tested on certain public GP platforms.</p></sec><sec id="s2"><title>2. Basic Principle</title><p>Representation plays an important role in GP system. As Rothlauf put it in reference [<xref ref-type="bibr" rid="scirp.131242-ref17">17</xref>] without representations, no use of genetic and evolutionary algorithms is possible. Several other concepts related to genotype representations range from decoding, solution space or phenotypic space to individual evaluation. Search, control and other related operations are primarily applied in genotype space. After individuals have been obtained from some constrained rules, they are generally interpreted as an approximate solution in phenotype space by decoding method, and whether or not it is a good result depends on the fitness evaluation.</p><p>Consider GP<sub>1</sub> and GP<sub>2</sub> as two GP systems with the same solution space, regressively analyzed sample dataset S, and evaluation criteria E: SolutionSpace &#180; {S} → Real, I<sub>1</sub> and I<sub>2</sub> as their individual spaces, D<sub>1</sub>: I<sub>1</sub> → SolutionSpace and D<sub>2</sub>: I<sub>2</sub> → SolutionSpace as their decoding methods respectively, then what is the relationship, mathematically speaking, between their search processes? Can they help each other to some extent?</p><p>In principle, we can establish the relation Equation (1) for these two search-based GP systems, where ε stands for the error term.</p><p>E ( D 1 ( arg O P T s . t . a 1 ∈ I 1 ( E ( D 1 ( a 1 ) , S ) ) ) , S ) = E ( D 2 ( arg O P T s . t . a 2 ∈ I 2 ( E ( D 2 ( a 2 ) , S ) ) ) , S ) + ε (1)</p><p>If having h: I<sub>1</sub> → I<sub>2</sub>, then there is Equation (2):</p><p>E ( D 1 ( arg O P T s . t . a 1 ∈ I 1 ( E ( D 1 ( a 1 ) , S ) ) ) , S ) = E ( D 2 ( h ( arg O P T s . t . a 1 ∈ I 1 ( E ( D 2 ( h ( a 1 ) ) , S ) ) ) ) , S ) + ε ′ (2)</p><p>E ( D 1 ( arg O P T s . t . a 1 ∈ I 1 ( E ( D 1 ( a 1 ) , S ) ) ) , S ) | D 1 D 2 h = E ( D 2 ( h ( arg O P T s . t . a 1 ∈ I 1 ( E ( D 2 ( h ( a 1 ) ) , S ) ) ) ) , S ) (3)</p><p>Since the non-error term on the right side of Equation (2) can be formally obtained from the left side of Equation (2) by replacing its two occurrences of D<sub>1</sub> with D<sub>2</sub>h, we can formally get Equation (3). This means the calculation of the right side of Equation (3) can be approximately computed in GP<sub>1</sub> through substitution of D<sub>2</sub>h for D<sub>1</sub> in GP<sub>1</sub>. Since GP<sub>1</sub> embraces services many other GPs need, we call it the basic GP development platform.</p><p>It is worth noticing that D<sub>2</sub> and h play a critical role in rapid prototype development of GP system. In Section 3, we will solve the selection problem of h, a mapping from individuals of the basic GP platform onto that of target GPs.</p></sec><sec id="s3"><title>3. Proposed Approach</title><p>The first step of the proposed method is to choose πGrammatical Evolution (πGE) [<xref ref-type="bibr" rid="scirp.131242-ref18">18</xref>] as the basic GP platform. GE is a GP variant with variable length genotypes [<xref ref-type="bibr" rid="scirp.131242-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref19">19</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref20">20</xref>] . One of its advantages is that it can use a context-free grammar to describe phenotypes of individuals, therefore theoretically generating programs in an arbitrary programming language. However, GE is usually implemented in terms of leftmost derivations. For example, let δ = αAβ be a sentential form of some grammar G = (V<sub>N</sub>, V<sub>T</sub>, S, P) [<xref ref-type="bibr" rid="scirp.131242-ref21">21</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref22">22</xref>] , where V<sub>N</sub> is a finite set of non-terminal symbols, V<sub>T</sub> on the contrary a finite set of terminals. Any derivation of sentential form in G will be derived from the start symbol S based on some production rule in P. So, the leftmost derivation of αγβ from αAβ with respect to A ::= γ in P is the substitution of γ for the leftmost non-terminal , say A, in δ. In order to realize this leftmost derivation, i.e. αAβ =&gt; αγβ, in GE whose genotype consists of codons, the production A ::= γ selected is determined by Equation (4), where the number of alternative productions for A is denoted as NumChoices(A).</p><p>The production rule selected</p><p>= (value of the current codon) mod NumChoices(A) (4)</p><p>To enhance the flexibility of derivations, a novel encoding method which make codons to encode both expanded non-terminal and production information to be used, i.e. codon = (v1, v2), achieves the desired efficacy. This improvement leads to the πGE. The algorithm structure is similar to that of GP, and the detail can be found in [<xref ref-type="bibr" rid="scirp.131242-ref18">18</xref>] . The major difference between πGE and canonical GE lies in the fact that both the expanded non-terminal, say X, and candidate production rule of X, selected for the derivations are determined by Equations (5) and (6). cNumNonterminals used below is the number of all non-terminals occurring in current sentential form. <xref ref-type="table" rid="table1">Table 1</xref> demonstrates an example grammar and a derivation of a Boolean expression in the case of the grammar.</p><p>The nonterminal X expanded = v1 mod cNumNonterminals + 1 (5)</p><p>The candidate production of X = v2 mod NumChoices(X) (6)</p><p>What we should deal with in the second step of the proposed approach is to effectively delineate individuals of objective GP using a context-free grammar, and treat them as sentences of the corresponding language. Once πGE has been selected as the basic GP platform, as is done in this paper, there come a lot of</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Example derivation of a Boolean expression</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Value of Codon</th><th align="center" valign="middle"  colspan="5"  >Context-free Grammar B ::= V (0) O ::= and (0) V ::= t (0) B ::= (BOB) (1) O ::= or (1) V ::= f (1) B ::= ~B (2)</th></tr></thead><tr><td align="center" valign="middle" >Sentential Form</td><td align="center" valign="middle" >Number of Nonterminals</td><td align="center" valign="middle" >Nonterminal Expanded</td><td align="center" valign="middle" >Rule Selected</td><td align="center" valign="middle" >Number of Choices</td></tr><tr><td align="center" valign="middle" >10 31</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >B ::= (BOB)</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >5 11</td><td align="center" valign="middle" >(BOB)</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >2<sup>nd</sup> B</td><td align="center" valign="middle" >B ::= ~B</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >31 3</td><td align="center" valign="middle" >(BO ~B)</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >O</td><td align="center" valign="middle" >O ::= or</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >14 9</td><td align="center" valign="middle" >(B or ~B)</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1<sup>st</sup> B</td><td align="center" valign="middle" >B ::= V</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >22 3</td><td align="center" valign="middle" >(V or ~B)</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >V</td><td align="center" valign="middle" >V ::= f</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >45 6</td><td align="center" valign="middle" >(f or ~B)</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >B</td><td align="center" valign="middle" >B ::= V</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >88 8</td><td align="center" valign="middle" >(f or ~V)</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >V</td><td align="center" valign="middle" >V ::= t</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >73 56</td><td align="center" valign="middle" >(f or ~t)</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td><td align="center" valign="middle" ></td></tr></tbody></table></table-wrap><p>Notes: Nonterminal and production rule are determined by Equations (5) and (6).</p><p>mappings from πGE onto individual space of the target GP system. In the present paper, Formulas (5) and (6) are also used to define the mapping relation h discussed in Section 2.</p><p>Finally, as far as the third step is concerned, we will focus on the programming of individual decoder and evaluation component which play an essential part in all GP designs. After completing the previous work, the rapid GP prototyping development system without extra coding requirements will be successfully achieved. In addition, the decoding process may also encounter such problem as incomplete mapping of individuals, that is, the derived sentential form still contains some non-terminal symbols, therefore, it is not a valid expression. The measure taken here is to design and implement default mapping rules (see complete mapping used in [<xref ref-type="bibr" rid="scirp.131242-ref19">19</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref20">20</xref>] ) compatible with description grammar of individuals for dealing with it. The following provides an overview of the rapid prototype development procedure:</p><p>a) Implementing a basic GP prototyping development platform like πGE;</p><p>b) Specifying target GP individuals using a context-free grammar;</p><p>c) Designing targeted individual decoders, evaluation components and default mapping rules in terms of sample dataset and results of steps a and b;</p><p>d) Running programs and analyzing the obtained results.</p></sec><sec id="s4"><title>4. Experiment and Analysis</title><p>This section intends to conduct regression analysis on problems from the literature [<xref ref-type="bibr" rid="scirp.131242-ref10">10</xref>] [<xref ref-type="bibr" rid="scirp.131242-ref23">23</xref>] in the context of the above method. The observation dataset is sampled in the same way as that of [<xref ref-type="bibr" rid="scirp.131242-ref10">10</xref>] at 20 observation points of variable y like {−1, −0.9, −0.8, −0.76, −0.72, −0.68, −0.64, −0.4, −0.2, 0, 0.2, 0.4, 0.63, 0.72, 0.81, 0.90, 0.93, 0.96, 0.99, 1} in the range of [−1, 1].</p><p>f ( y ) = y 4 + y 3 + y 2 + y (7)</p><p>g ( y ) = 0.3 y sin ( 2 π y ) (8)</p><p>h ( y ) = 1 + 3 y + 3 y 2 + y 3 (9)</p><p>To demonstrate that developing GP on rapid prototyping development system is of easiness and efficiency, we have designed and implemented two GP systems, which can be functionally categorized into the standard tree-based GP and the improved GEP (ImpGEP) [<xref ref-type="bibr" rid="scirp.131242-ref24">24</xref>] according to their decoding means. Having implemented πGE as the basic development platform, experiments with them on Formula (7) through Formula (9) can be carried out. The individual descriptions, default mapping rules and decoding algorithms used by these GPs are shown in Figures 1-4, respectively. Except that their decoding methods are different from each other and representations should be specified by some grammars, other components such as evolutionary controls, genetic operators implemented in πGE, the basic GP development platform, are shared among various objective GPs. Major parameters employed here are given in <xref ref-type="table" rid="table2">Table 2</xref>.</p><p>Experiment with GP on the regression problems</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Parameters used in these experiments</title></caption><table><tbody><thead><tr><th align="center" valign="middle" ></th><th align="center" valign="middle" >Runs</th><th align="center" valign="middle" >GenSize</th><th align="center" valign="middle" >PopSize</th><th align="center" valign="middle" >MxLength</th><th align="center" valign="middle" >MnLength</th><th align="center" valign="middle" >FixLength</th><th align="center" valign="middle" >ProCro</th><th align="center" valign="middle" >ProMut</th></tr></thead><tr><td align="center" valign="middle" >GP ImpGEP</td><td align="center" valign="middle" >100 100</td><td align="center" valign="middle" >100 100</td><td align="center" valign="middle" >50 50</td><td align="center" valign="middle" >50 50</td><td align="center" valign="middle" >20 20</td><td align="center" valign="middle" >no yes</td><td align="center" valign="middle" >0.9 0.9</td><td align="center" valign="middle" >0.15 0.15</td></tr></tbody></table></table-wrap><p>Notes: MxLength = Max Length of individual; FixLength = Fixed Length individual; ProCro = Probability of Crossover.</p><p>1) Brief comment on GP</p><p>Classical GP [<xref ref-type="bibr" rid="scirp.131242-ref1">1</xref>] is proposed by Koza for automatically programming computer programs to solve given problems. The major idea embedded in GP is to decode the evolved tree-based individuals into expressions on the basis of its five-step algorithm framework (see Section 1). On the one hand, individuals can</p><p>be constantly generated from the algorithm, decoding mechanism within it is responsible for the transformation of them into expressions on the other. Since a context-free grammar can represent tree-based embedded relations between sub-expressions, we introduce it to specify both genotypes and phenotypes. In this case, the phenotypic space is the same as the language obtained. Naturally, the identity mapping is suitable for the decoder.</p><p>2) Experimental process</p><p>Having implemented the required πGE, our major work towards solving the above problems by GP includes 2 steps:</p><p>a) Designing a grammar as well as its corresponding default mapping rule as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>, so as to specify the individuals of concern;</p><p>b) Programming both the decoder and evaluation component so that phenotypes and fitness values can be decoded from individuals and well evaluated, respectively.</p><p>In this experiment, the decoder and evaluation mechanism are the identity mapping and the least square error principle, respectively.</p><p>Experiment with the Improved GEP on the regression problems</p><p>1) Brief comment on GEP</p><p>GEP [<xref ref-type="bibr" rid="scirp.131242-ref12">12</xref>] is a linearly represented GP variant with fixed-length individuals of terminal symbols and functions. Its decoding method as partly given in <xref ref-type="fig" rid="fig2">Figure 2</xref> is impressive. It transforms individuals into expression trees (ET trees) at first, and followed by traversal operations on them to get the expected expressions [<xref ref-type="bibr" rid="scirp.131242-ref12">12</xref>] . However, for the sake of simplicity, the decoder M1 used here is designed according to the depth-first decoding mode.</p><p>Another feature is its structural constraint of individuals, that is to say, each individual is composed of a head and a tail that satisfy such length restriction as t = h * (n − 1) + 1, where t, h represent length of tail and head, and n is the maximum arity of functions involved. Considering that the decoder of canonical GEP can only find one possible solution in each run, we have made an improvement for figuring out many expressions from genotype reusing technique [<xref ref-type="bibr" rid="scirp.131242-ref24">24</xref>] on it so that the wining chance can be enhanced. For instance, the improved GEP tends to reuse genotype information through continuously applying original GEP decoding approach (say M1 in <xref ref-type="fig" rid="fig2">Figure 2</xref>) to every element (or word) of an individual as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>, thus obtaining many alternative solutions. The improved decoder M2 is also declared in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>2) Experimental process</p><p>Having finished the implementation of πGE as basic development platform, we have the following problem solving process:</p><p>a) Designing both the grammar and the corresponding default mapping as given in <xref ref-type="fig" rid="fig3">Figure 3</xref> for specifying the individuals of concern;</p><p>b) Coding both the decoder and evaluation component so as to decode and evaluate individuals and their fitness values, respectively.</p><p>In this experiment, evaluation criterion is the least square error. Given the following three functions, the decoder of the improved GEP, denoted M2 in <xref ref-type="fig" rid="fig2">Figure 2</xref>, can be realized by applying the function DecodeOfDepthFirstGEP firstly to different elements of an individual to get many candidate expressions, then evaluating and choosing the fittest expression as the desired solution. The implementation of M2 is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p><p>DecodeOfDepthFirstGEP(Individual, cPos): A function to construct an expression from the element indexed by cPos in the individual.</p><p>GetFuncOrOpnd(Individual, pos): A function to get a element/word indexed by pos in the individual.</p><p>LeastSquareError(p, q, 'y', Points): A function to compute the least square error between functions p and q. 'y' stands for the variable of them. The variable Points is a list of the observation points of y.</p><p>Finally, running the decoders and evaluation components obtained above in the context of πGE, sample dataset and grammars given above will result in <xref ref-type="fig" rid="fig5">Figure 5</xref> and <xref ref-type="fig" rid="fig6">Figure 6</xref>. The evaluation procedure used here is realized on the least square error principle. It follows from these results that the solutions obtained from each rapid developed method can gradually approach to the optimization</p><p>goals when applying that method to solve the regression problems of concern. Additionally, it can also be seen from <xref ref-type="fig" rid="fig6">Figure 6</xref> that in the given environment of these experiments, the tested GP outperforms the GEP variant on g and h with respect to the fitness values, and from <xref ref-type="fig" rid="fig5">Figure 5</xref>(a) and <xref ref-type="fig" rid="fig5">Figure 5</xref>(b) that the regression analysis on g seems easier than on f and h. With the help of the proposed method, we can quickly establish a GP prototyping system and simulate it on πGE, the basic GP development platform. Besides, this approach also provides with a common environment for comparisons among many GPs.</p><p>Although the number of examples given here is small, we can get some important cognition and enlightenment from them. So far, there are many GP variants. The essential intention implied in the abovementioned method and effect is to construct and search the target semantic objects in the phenotypic space by changing both the search space and corresponding decoders. As such, this method not only helps designers to improve the efficiency of GP research and development, but also helps to use genotype space, an unpredictable kaleidoscope, to examine and understand semantic objects and domain knowledge.</p></sec><sec id="s5"><title>5. Conclusion</title><p>We have made a preliminary investigation into rapid GP prototype development and applications in the present paper, and more systematical and in-depth issues like how to integrate formal structures and semantics into it will become our future work. The major advantage of using this approach to design and implement GP is that designers and implementers can ignore many implementation details and concentrate their energy on the essence of the problem, such as representation, decoding method and population evaluation. For representation, what we need to do is to define individuals by designing a context-free grammar. And decoder and evaluation procedure are the components to be programmed only provided mapping relation between the basic development platform and target GPs is determined. These GE-based task segmentation methods are of great theoretical and practical significance to solving complex practical problems and studying high-performance computing of genetic programming.</p></sec><sec id="s6"><title>Acknowledgements</title><p>This work was supported partly by the National Natural Science Foundation of China under Grant No. 61977018.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>He, P. and Zhang, L. (2024) Rapid Prototype Development Approach for Genetic Programming. Journal of Computer and Communications, 12, 67-79. https://doi.org/10.4236/jcc.2024.122005</p></sec></body><back><ref-list><title>References</title><ref id="scirp.131242-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Koza, J.R. (1992) Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA.</mixed-citation></ref><ref id="scirp.131242-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Zhong, J.H., Feng, L. and Ong, Y.-S. (2017) Gene Expression Programming: A Survey. IEEE Computational Intelligence Magazine, 12, 54-72. https://doi.org/10.1109/MCI.2017.2708618</mixed-citation></ref><ref id="scirp.131242-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Oltean, M., Gro&amp;scedil;an, C., Dio&amp;scedil;an, L. and Mih&amp;abreve;il&amp;abreve;, C. (2009) Genetic Programming with Linear Representation: A Survey. International Journal on Artificial Intelligence Tools, 18, 197-238. https://doi.org/10.1142/S0218213009000111</mixed-citation></ref><ref id="scirp.131242-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Angelis, D., Sofos, F. and Karakasidis, T.E. (2023) Artificial Intelligence in Physical Sciences: Symbolic Regression Trends and Perspectives. Archives of Computational Methods in Engineering, 30, 3845-3865. https://doi.org/10.1007/s11831-023-09922-z</mixed-citation></ref><ref id="scirp.131242-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Bi, Y., Xue, B., Mesejo, P., Cagnoni, S. and Zhang, M. (2023) A Survey on Evolutionary Computation for Computer Vision and Image Analysis: Past, Present, and Future Trends. IEEE Transactions on Evolutionary Computation, 27, 5-25. https://doi.org/10.1109/TEVC.2022.3220747</mixed-citation></ref><ref id="scirp.131242-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Hosseini, M. and Lim, S. (2022) Gene Expression Programming and Data Mining Methods for Bushfire Susceptibility Mapping in New South Wales, Australia. Natural Hazards, 113, 1349-1365. https://doi.org/10.1007/s11069-022-05350-7</mixed-citation></ref><ref id="scirp.131242-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Holland, J.H. (1975) Adaptation in Natural and Artificial Systems. The University of Michigan Press, Ann Arbor, MI.</mixed-citation></ref><ref id="scirp.131242-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Mitchell, M. (1996) An Introduction to Genetic Algorithm. MIT Press, Cambridge.</mixed-citation></ref><ref id="scirp.131242-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Brabazon, A., O’Neill, M. and McGarraghy, S. (2015) Grammatical Evolution. In: Natural Computing Algorithms, Springer, Berlin, Heidelberg, 357-373. https://doi.org/10.1007/978-3-662-43631-8_19</mixed-citation></ref><ref id="scirp.131242-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">O’Neill, M. and Ryan, C. (2001,) Grammatical Evolution. IEEE Transactions on Evolutionary Computation, 5, 349-358. https://doi.org/10.1109/4235.942529</mixed-citation></ref><ref id="scirp.131242-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Bartoli, A., Castelli, M. and Medvet, E. (2020) Weighted Hierarchical Grammatical Evolution. IEEE Transactions on Cybernetics, 50, 476-488. https://doi.org/10.1109/TCYB.2018.2876563</mixed-citation></ref><ref id="scirp.131242-ref12"><label>12</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Ferreira</surname><given-names> C. </given-names></name>,<etal>et al</etal>. (<year>2001</year>)<article-title>Gene Expression Programming: A New Adaptive Algorithm for Solving Problems</article-title><source> Complex Systems</source><volume> 13</volume>,<fpage> 87</fpage>-<lpage>129</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.131242-ref13"><label>13</label><mixed-citation publication-type="book" xlink:type="simple">Ferreira, C. (2006) Automatically Defined Functions in Gene Expression Programming. In Nedjah, N., Mourelle, L.d.M. and Abraham, A., Eds., Genetic Systems Programming, Vol. 13, Springer, Berlin, Heidelberg, 21-56. https://doi.org/10.1007/3-540-32498-4_2</mixed-citation></ref><ref id="scirp.131242-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Oltean, M. and Grosan, C. (2003) A Comparison of Several Linear Genetic Programming Techniques. Complex Systems, 14, 285-313.https://wpmedia.wolfram.com/uploads/sites/13/2018/02/14-4-1.pdf</mixed-citation></ref><ref id="scirp.131242-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Miller, J.F. (2020) Cartesian Genetic Programming: Its Status and Future. Genetic Programming and Evolvable Machines, 21, 129-168. https://doi.org/10.1007/s10710-019-09360-6</mixed-citation></ref><ref id="scirp.131242-ref16"><label>16</label><mixed-citation publication-type="book" xlink:type="simple">Miller, J.F. (2011) Cartesian Genetic Programming. In: Miller, J., Ed., Cartesian Genetic Programming, Springer, Berlin, Heidelberg, 17-34. https://doi.org/10.1007/978-3-642-17310-3_2</mixed-citation></ref><ref id="scirp.131242-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Rothlauf, F. (2006) Representations for Genetic and Evolutionary Algorithms. In: Representations for Genetic and Evolutionary Algorithms, Springer, Berlin, Heidelberg. https://link.springer.com/content/pdf/10.1007/3-540-32444-5_2.pdf</mixed-citation></ref><ref id="scirp.131242-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Fagan, D., Nicolau, M., O’Neill, M., Galván-López, E., Brabazon, A. and McGarraghy, S. (2010) Investigating Mapping Order in πGE. IEEE Congress on Evolutionary Computation, Barcelona, 18-23 July 2010, 1-7.</mixed-citation></ref><ref id="scirp.131242-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">He, P., Johnson, C.G. and Wang, H.F. (2011) Modeling Grammatical Evolution by Automaton. Science China Information Sciences, 54, 2544-2553. https://doi.org/10.1007/s11432-011-4411-8</mixed-citation></ref><ref id="scirp.131242-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">He, P., Deng, Z.L., Gao, C.Z., Wang, X.N. and Li, J. (2017) Model Approach to Grammatical Evolution: Deep-Structured Analyzing of Model and Representation. Soft Computing, 21, 5413-5423. https://doi.org/10.1007/s00500-016-2130-1</mixed-citation></ref><ref id="scirp.131242-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Hopcroft, J.E., Motwani, R. and Ullman, J.D. (2008) Introduction to Automata Theory, Languages, and Computation. 3rd Edition, Pearson Education, Inc., San Antonio, TX.</mixed-citation></ref><ref id="scirp.131242-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Aho, A.V., Lam, M.S., Sethi, R. and Ullman, J.D. (2007) Compilers: Principles, Techniques, and Tools. 2nd Edition, Pearson Education, Inc., San Antonio, TX.</mixed-citation></ref><ref id="scirp.131242-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Gupt, K.K., Raja, M.A., Murphy, A., Youssef, A. and Ryan, C. (2022) GELAB—The Cutting Edge of Grammatical Evolution. IEEE Access, 10, 38694-38708. https://doi.org/10.1109/ACCESS.2022.3166115</mixed-citation></ref><ref id="scirp.131242-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Deng, W., He, P. and Qian, J.Y. (2013) Multi-Gene Expression Programming with Depth-First Decoding Principle. Pattern Recognition and Artificial Intelligence, 26, 819-828. (In Chinese)</mixed-citation></ref></ref-list></back></article>