**1. Introduction**

200 Genetic Programming – New Approaches and Successful Applications

*Research Journal,* Vol. 77, pp. 105-110, 2007.

Technology, Departmetn of Textile Technology, 1975.

Fabrics«, *Journal of the Textile Institute,* Vol. 92, pp. 288-298, 2001.

Materials«, *Journal of the Textile Institute,* Vol. 83, pp. 127-132, 1992.

[31] A. T. Purdy, Needle-punching, Manchester: The Textile Institute, 1980, pp. 49.

Nonwoven Fabrics«, *Textile Research Journal,* Vol. 73, pp. 939-944, 2003.

Structures«, *Textile Research Journal,* Vol. 79, pp. 1364-1370, 2009.

York - Oxford: IOP Publishing and Oxford University Press, 1997.

Fabrics«, *Textile Research Journal,* Vol. 79, pp. 147-153, 2009.

*Manufacturing Processes,* Vol. 20, pp. 497-508, 2005.

[30] J. C. Russ, The image Processing Handbook, CRC Press, 1996.

pp. 299-307, 1995.

Engineeeing, 1999.

pp. 915-919, 2000.

pp. 614-624, 2008.

Vol. 71, pp. 737-742, 1990.

Wiley & Sons, Inc., 1997.

2002.

21-26, 2005.

[22] Y. L. Hsieh, »Liquid Transport in Fabric Structures«, *Textile Research Journal,* Vol. 65,

[23] D. Jakšić and N. Jakšić, »Assessment of Porosity of Flat Textile Fabrics«, *Textile* 

[24] V. Nagy and L. M. Vas, »Pore Charachteristic Determination with Mercury Porosimetry in Polyester Staple Yarns«, *Fibres & Textiles in Eastern Europe,* Vol. 13, pp.

[25] D. Jakšić, The Development of the New Method to Determine the Pore Size and Pore Size Distribution in Textile Products, Ljubljana: Faculty of Natural Sciences and

[26] P. D. Dubrovski, The Influence of Woven Fabric Geometry on Porosity of Biaxial Fabrics, Doctoral Disertation, Maribor: University of Maribor, Faculty of Mechanical

[27] P. D. Dubrovski, »Volume Porosity of Woven Fabrics«, *Textile Research Journal,* Vol. 70,

[28] P. D. Dubrovski, »A Geometrical Method to Predict the Macroporosity of Woven

[29] A. V. Kulichenko and L. Langenhove, »The Resistance to Flow Transmission of Porous

[32] R. D. Anandjiwala and L. Boguslavsky, »Development of Needle-punched Nonwoven Fabrics from Flax Fibers for air Filtration Applications«, *Textile Research Journal,* Vol. 78,

[33] J. Mao and S. J. Rusell, »Modelling Permeability in Homogeneous Three-Dimensional

[34] X. Chen, F. Vroman, M. Lewandowski and A. Perwuelz, »Study of the Influence of Fiber Diameter and Fiber Blending on Liquid Absorption Inside Nonwoven

[35] A. Patanaik and R. Anandjiwala, »Some Studies on Water Permeability of Nonwoven

[36] M. Kienbaum, »Gewebegeometrie and Produktenwicklung«, *Melliand Textilberichte,* 

[37] P. D. Dubrovski and M. Brezočnik, »Using Genetic Programming to predict the Macroporosity of Woven Cotton Fabrics«, *Textile Research Journal,* Vol. 72, pp. 187-194,

[38] M. Brezočnik, M. Kovačič and L. Gusel, »Comparison Between Genetic Algorithm and Genetic Programming Approach for Modelling the Stress Distribution«, *Material and* 

[39] T. Bäck, D. B. Fogel and Z. Michalewicz, Handbook of evalutionary computation, New

[40] M. Gen and R. Cheng, Genetic algorithms and engineering design, Canada: John

The use of artificial intelligence in day to day life has increased since late 20th century as seen in many home appliances such as microwave oven, washing machine, camcorder etc which can figure out on their own what settings to use to perform their tasks optimally. Such intelligent machines make use of the soft computing techniques which treat human brain as their role model and mimic the ability of the human mind to effectively employ modes of reasoning that are approximate rather than exact. The conventional hard computing techniques require a precisely stated analytical model and often a lot of computational time. Premises and guiding principles of Hard Computing are precision, certainty, and rigor [1]. Many contemporary problems do not lend themselves to precise solutions such as recognition problems (handwriting, speech, objects and images), mobile robot coordination, forecasting, combinatorial problems etc. This is where soft computing techniques score over the conventional hard computing approach. Soft computing differs from conventional (hard) computing in that, unlike hard computing, it is tolerant of imprecision, uncertainty, partial truth, and approximation. The guiding principle of soft computing is to exploit the tolerance for imprecision, uncertainty, partial truth, and approximation to achieve tractability, robustness and low solution cost [1]. The principal constituents, i.e., tools, techniques of Soft Computing (SC) are Fuzzy Logic (FL), Neural Networks (NN), Evolutionary Computation (EC), Machine Learning (ML) and Probabilistic Reasoning (PR). Soft computing many times employs NN, EC, FL etc, in a complementary rather than a competitive way resulting into hybrid techniques like Adaptive Neuro-Fuzzy Interface System (ANFIS).

The application of soft computing techniques in the field of Civil Engineering started since early nineties and since encompassed almost all fields of Civil Engineering namely Structural Engineering, Construction Engineering and Management, Geotechnical

© 2012 Londhe and Dixit, licensee InTech. This is an open access chapter distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. © 2012 Londhe and Dixit, licensee InTech. This is a paper distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Engineering, Environmental Engineering and lastly Hydraulic Engineering which is the focus of this chapter. The technique of ANN is now well established in the field of Civil Engineering to model various random and complex phenomena. Other techniques such as FL and EL caught attention of many research workers as a complimentary or alternative technique to ANN, particularly after knowing the drawbacks of ANN [2]. The soft computing tool of Genetic Programming which is essentially classified as an Evolutionary Computation (EC) technique has found its foot in the field of Hydraulic Engineering in general and modeling of water flows in particular since last 12 years or so. Modeling of water flows is perhaps the most daunting task ever faced by researchers in the field of Hydraulic Engineering owing to the randomness involved in many natural processes associated with the water flows. In pursuit of achieving more and more accuracy in estimation/forecasting of water related variables the researchers have made of use Genetic Programming for various tasks such as forecasting of runoff with or without rainfall, forecasting of ocean waves, currents, spatial mapping of waves to name a few. The present chapter takes a stalk of the applications of GP to model water flows which will enable the future researchers who want to pursue their research in this field. The chapter is organized as follows. Next section deals with basics of GP. A review of applications of GP in the field of Ocean Engineering is presented in the next section followed by review of applications in the field of hydrology. Few applications in the field of Hydraulics are discussed in the subsequent section. It may be noted that papers published in reputed international journals are only considered for review. Two case studies are presented next which are based on publications of the first author. The concluding remarks and future scope as envisaged by the authors are discussed at the end.

Genetic Programming: A Novel Computing Approach in Modeling Water Flows 203

in the form of selection, mutation and reproduction on a population of individual structures that undergo evolution. The criterion of heredity is assured through the application of a crossover operator, whereas the criterion of variability is maintained through the application of a mutation operator. A selection mechanism then 'favours' the more fit entities so that they reproduce more often, providing the fecundity requirement necessary

Like genetic algorithm (GA) the concept of Genetic Programming (GP) follows the principle of 'survival of the fittest' borrowed from the process of evolution occurring in nature. But unlike GA its solution is a computer program or an equation as against a set of numbers in the GA and hence it is convenient to use the same as a regression tool rather than an optimization one like the GA. GP operates on parse trees rather than on bit strings as in a GA, to approximate the equation (in symbolic form) or computer program that best describes how the output relates to the input variables. A good explanation of various concepts related to GP can be found in [5] Koza (1992). GP starts with a population of randomly generated computer programs on which computerized evolution process operates. Then a 'tournament' or competition is conducted by randomly selecting four programs from the population. GP measures how each program performs the user designated task. The two programs that perform the task best 'win' the tournament. GP algorithm then copies the two winner programs and transforms these copies into two new programs via crossover and mutation operators i.e. winners now have the 'children.' These two new child programs are then inserted into the population of programs, replacing the two loser programs from the tournament. Crossover is inspired by the exchange of genetic material occurring in sexual reproduction in biology. The creation of offspring's continues (in an iterative manner) till a specified number of offspring's in a generation are produced and further till another specified number of generations are created. The resulting offspring at the end of all this process (an equation or a computer program) is the solution of the problem. The GP thus transforms one population of individuals into another one in an iterative manner by following the natural genetic operations like reproduction, mutation

and cross-over. Figure 1 shows general flowchart of GP as given by [5].

The tree based GP corresponds to the expressions (syntax trees) from a 'functional programming language' [5]. In this type, Functions are located at the inner nodes; while leaves of the tree hold input values and constants. A population of random trees representing the programs is initially constructed and genetic operations are performed on these trees to generate individuals with the help of two distinct sets; the terminal set T and

**Population:** These are the programs initially constructed from the data sets in the form of trees to perform genetic operations using Terminal set and Function set. The function set for a run is comprised of operators to be used in evolving programs eg. addition, subtraction, absolute value, logarithm, square root etc. The terminal set for a run is made up of the

for an evolutionary process to proceed.

**3. Genetic programming:** 

the function set F.

## **2. The evolutionary computation**

The paradigm of evolutionary processes distinguishes between an organism's genotype, which is constructed of genetic material that is inherited from its parent or parents, and the organism's phenotype, which is the coming to full physical presence of the organism in a certain given environment and is represented by a body and its associated collection of characteristics or phenotypic traits. Within this paradigm, there are three main criteria for an evolutionary process to occur as per [3] and they are


The evolutionary techniques can be differentiated into four main streams of Evolutionary Algorithm (EA) development [4] namely Evolution Strategies (ES), Evolutionary Programming (EP), Genetic Algorithms (GA) and Genetic Programming (GP) [5]. However, all evolutionary algorithms share the common property of applying evolutionary processes in the form of selection, mutation and reproduction on a population of individual structures that undergo evolution. The criterion of heredity is assured through the application of a crossover operator, whereas the criterion of variability is maintained through the application of a mutation operator. A selection mechanism then 'favours' the more fit entities so that they reproduce more often, providing the fecundity requirement necessary for an evolutionary process to proceed.
