An evolutionary approach to Wall Shear Stress prediction in a grafted artery

An evolutionary approach to Wall Shear Stress prediction in a grafted artery

Applied Soft Computing 4 (2004) 139–148 An evolutionary approach to Wall Shear Stress prediction in a grafted artery R. Muhammad Atif Azad a,∗ , Ali ...

157KB Sizes 1 Downloads 26 Views

Applied Soft Computing 4 (2004) 139–148

An evolutionary approach to Wall Shear Stress prediction in a grafted artery R. Muhammad Atif Azad a,∗ , Ali R. Ansari b , Conor Ryan a , Michael Walsh c , Tim McGloughlin c a

c

Department of Computer Science and Information Systems, University of Limerick, Limerick, Ireland b Department of Mathematics and Statistics, University of Limerick, Limerick, Ireland Department of Mechanical Engineering, Biomedical Engineering Research Centre, University of Limerick, Limerick, Ireland Received 14 August 2002; accepted 11 November 2003

Abstract Restoring the blood supply to a diseased artery is achieved by using a vascular bypass graft. The surgical procedure is a well documented and successful technique. The most commonly cited hemodynamic factor implicated in the disease initiation and proliferation processes at graft/artery junctions is Wall Shear Stress (WSS). WSS distributions are predicted using numerical simulations as they can provide quick and precise results to assess the effects that alternative graft/artery junction geometries have on the WSS distributions in bypass grafts. Validation of the numerical model is required and in vitro studies, using laser Doppler anemometry (LDA), have been employed to achieve this. Numerically, the Wall Shear Stress is predicted using velocity values stored in the computational cell near the wall and assuming zero velocity at the wall. Experimentally obtained velocities require a mathematical model to describe their behavior. This study employs a grammar based evolutionary algorithm termed Chorus for this purpose and demonstrates that Chorus successfully attains this objective. It is shown that even with the lack of domain knowledge, the results produced by this automated system are comparable to the results in the literature. © 2004 Elsevier B.V. All rights reserved. Keywords: Wall Shear Stress; Computational Fluid Dynamics; Laser Doppler anemometry; Mathematical modeling; Context free grammars; Evolutionary Algorithms; The Chorus system

1. Introduction Since their inception, Evolutionary Algorithms (EAs) have been seen as a step towards automatic problem solving. They have already been shown to be effective in Preprint submitted to Elsevier Science 23 August 2003 domains as diverse as mathematical modeling [19], data mining [6], automatic generation of ∗ Corresponding author. E-mail addresses: [email protected] (R. Muhammad Atif Azad), [email protected] (A.R. Ansari), [email protected] (C. Ryan), [email protected] (M. Walsh), [email protected] (T. McGloughlin).

computer programs [4,8], timetable scheduling [7] and electronic circuit design [5]. As Evolutionary Computation methods are bottom up methods, they do not, as such, require problem specific (be it theoretic or practical) information. This distinguishes them from domain specific problem solving techniques and provides us with a different approach to attack the problem. The problem investigated in this paper relates to perhaps the most serious of issues, life itself. Most of us are familiar with the idea of occluded, stenosed or blocked arteries. Any such blockage, in any part of the human body, can result in disease in the body part with possible amputation resulting. Fortunately, most cases

1568-4946/$ – see front matter © 2004 Elsevier B.V. All rights reserved. doi:10.1016/j.asoc.2003.11.001

140

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

of this nature are treatable by a surgical procedure where a bypass graft (a man made artery) is used to allow the blood to flow past the blockage. Various procedures are used for different occluded arteries in different parts of the body. We will concentrate on limb extremities where it is well known that such grafting has been successful in the restoration of blood supply (see [10,12,15]). Bypass grafts have moderate long-term patency rates, which indicate how long the graft can remain disease free. These patency rates vary with surgical technique and also from one surgical group to the next. It is widely agreed that the endto-side graft/artery junctions created during bypass surgery result in flow patterns that place abnormal Wall Shear Stress (WSS) distributions in the endothelial cells which occur on the bed of the junction and normally cover the inner surface of blood vessels [16]. Therefore, the most commonly cited hemodynamic factor responsible for the initiation of disease and proliferation processes at graft/artery junction beds is Wall Shear Stress. Hence, the computation of the Wall Shear Stress distribution on a graft/artery beds is important in determining the role of hemodynamics in the disease formation process after the installation of a bypass graft. The bypass graft is connected to the artery at a certain angle, to investigate the optimal angle which would result in flow patterns that are least damaging to the endothelial cells, is the main focus of the research being undertaken in the development of bypass grafts. The Wall Shear Stress prediction requires a velocity profile for the values measured near the wall and assuming zero velocity at the wall. This requires a mathematical model which fits the experimentally observed values for the velocities. This paper demonstrates the use of a position independent, grammar based evolutionary algorithm, Chorus [17] for the problem. As is the case with Genetic Programming (GP) [4] and its variants such as Paterson’s approach [20] and Grammatically-based Genetic Programming by Whigham [21], Chorus belongs to the same class of EAs which evolve computer programs to solve the given problem. Following a biological metaphor, where the genetic print out is responsible for the observable traits of an organism, Chorus recognizes a distinction between genotype and phenotype. A genotype–phenotype mapping process dictates the translation from the genetic material to

the observable behavior, which in our case represents a candidate solution to the problem. As with [20,21] and Grammatical Evolution (GE) [13,18], Chorus makes use of the context free grammars represented in Backus Naur Form (BNF) to describe the language in which the computer programs are produced. The use of grammars gives the user the flexibility of selecting the language of his choice. It should be noted that, usually, only a subset of a high level language is used. A complete high level programming language specification is not needed and may lead to unnecessarily large search space for most of the problems. The paper first gives a brief introduction to the concept of artificial evolution, as all EAs can be seen as simplified simulations of very complex process of evolution going in nature. It is followed by a description of a context free grammar in Backus Naur Form, which is used to specify the language we want our solutions to be in. We then describe the Chorus system and the process involving the mapping from a genotype to phenotype is discussed, with an example. Section 6 discusses the problem domain and the experimental results, to be followed by conclusions. The problem domain selected for this paper focuses on the research work being undertaken by scientists engaged in the development and analysis of the grafting process in arteries (see [9,15,23]).

2. Artificial evolution The process of evolution by natural selection is seen as a procedure of finding individuals that fit their environment. A simplified simulation extrapolates this phenomenon to automated problem solving. A pool of candidate solutions is created for a particular problem. It is subjected to a process of refinement derived from a subset of the principles of natural evolution. It is analogous to a population of individuals undergoing adaptation to match the requirements of an environment. Every solution is tried against the problem and a numerical measure of the performance is represented by a notion of fitness. Given a starting set of solutions, selection reduces the set to over-represent the individuals that perform better in terms of fitness. Different types of techniques are employed to implement the selection. Roulette wheel selection is one such method, where a roulette wheel

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

is built for the entire population and every individual’s share is proportional to its fitness value. The chunk size can be calculated by dividing an individual’s fitness by the sum of fitnesses of the entire population. A random number is then generated to pick a member of the population. Thus, an individual with high fitness value has a greater chance of being selected. Various genetic operators are then used to produce a new population, which can either be a completely new generation or a mix of parents and their offsprings depending upon the replacement policy. Contrary to what happens in nature, the population size is usually fixed in EAs and a replacement strategy sets the criterion of survival, i.e getting a place in the population. Several different replacement strategies exist. Generational replacement restricts the next generation to the offsprings produced by the selected parents and a small percentage of the individuals present in the previous population. The new individuals are not allowed to indulge into any reproductive activity until the new generation is produced completely. Steady-state replacement, on the other hand, maintains only one pool of individuals, where an offspring is eligible to reproduce the moment it gets into the population. It occupies a place in the population by displacing an existing member. The victim can be the poorest performer of the population at that time. This means that an individual may get to reproduce with its parents. Also, it allows an individual to stay in the population until it becomes the worst member of the community and gets eliminated. The genetic operators can either introduce new genetic material (mutation) or combine the material from the parents (crossover). The new population is evaluated against the problem and it is hoped that the new generation will have at least some individuals who perform better than their ancestors. Upon repeated application of the sequence of evaluation, selection and genetic operations, the population generally evolves towards better fitness. The interested reader may consult [4] and [2] for the details.

3. Backus Naur Form Backus Naur Form is a notation for describing grammars. A grammar is represented by a tuple {N,T,P,S,}, where T is a set of terminals, i.e. items

141

that can appear in legal sentences of the grammar, and N is a set of non-terminals, which are interim items used in the generation of terminals. P is the set of production rules that map the non-terminals to the terminals, and S is a start symbol, from which all legal sentences may be generated. All legal sentences are produced by modifying the start symbol according to the production rules. Below is a sample grammar, which is similar to that used by Koza [4] to solve his symbolic regression and integration problems using GP. Koza has used abstract syntax trees to represent an individual. The trees are generated from two sets termed functions and terminals. To avoid confusion with some other computer science terms, we can call them GP-functions and GP-terminals, respectively. GP-terminals represent items which can only appear as the leaves of the trees and in a programming terminology, can be seen as functions with zero arity. The examples can be a numerical constant or a function which returns current time. GP-functions are functions with positive arity. An arithmetic operator or a trigonometric function is an example. Both GP-functions and GP-terminals combine to form the set of terminals for a context free grammar.

4. The Chorus System Chorus [17] is an automatic programming system based coarsely on the manner in which enzymes regulate the metabolism of a cell. Chorus belongs to the same family of algorithms as Grammatical Evolution [13,18], and shares several characteristics with it. In particular, the output of both systems is governed by a BNF grammar as above, and the genomes, variable length binary strings, interpreted as 8 bit integers, are used to produce legal sentences from the grammar. The integers are read to pick production rules from

142

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

the grammar in an attempt to generate a sentence of a language the grammar represents. The structure of DNA is double helix and is composed of a sequence of base pairs. Transcription leads to a single strand of messenger RNA (mRNA). mRNA has different sections, some of which are used for encoding amino acids. Groups of three consecutive bases on the encoding sections of mRNA are termed as codons. A codon is a template for the production of a particular amino acid. Amino acids combine to form proteins which lead to the phenotypic traits. Following a similar analogy, the bits that constitute the integers act as bases and the integers themselves behave as codons. The codons are read to pick production rules from the grammar which lead to a sentence, the phenotype in this case. A similar analogy has already been used elsewhere [13]. Whenever a non-terminal has to be mapped to one of the rules, GE requires that a codon should be moded with the number of rules that are associated with that non-terminal. This means that a rule that a codon decodes to, depends upon the state of the mapping at that time and hence its position in the chromosome (the binary string). Chorus, on the other hand requires that when a codon is being processed, it is moded with the total number of production rules in the grammar. As total number of the rules remains fixed regardless of the state of the mapping, a codon can only be interpreted in a single way regardless of when it is read during the mapping process. It means that a codon points to a fixed rule no matter where it occurs on the chromosome. This behavior is different from GE, where an integer is moded with the number of rules that are relevant to the non-terminal to be rewritten. Depending upon the non-terminal to be resolved, a codon can be interpreted in several different ways. Thus, the meaning of a codon is determined by those that precede it. For example, consider a Chorus individual: 18

28

32

27

42

17

18

31

In the process of cell metabolism, the genes are responsible for the production of several types of proteins. The more of a gene that is present in the genome, the greater the concentration of the corresponding protein will be during the mapping process [1,3]. During the mapping of a Chorus genotype, a non-terminal can be replaced with many different rules, e.g. in the grammar from Section 3 the start symbol has four possible mappings. The decision is made in the favor of the rule that has the greatest claim. To keep track of the claims of different rules, we introduce the notion of a concentration table. The table contains one column corresponding to every rule in the grammar. It is initialized with each claim or concentration at zero. At any stage, the rule with the greatest concentration will be chosen. Many decisions are made during the mapping process. For example, the start symbol has four possible mappings. When a decision has to be made, the relevant area (columns corresponding to rules 0–3) from the concentration table is consulted and the rule with the maximum concentration is chosen. In case of a tie, as is the case when the concentrations of all the rules are zero, the genotype is read in from left to right, searching for any codon that decodes to an applicable rule. Every rule that is read in gets its concentration incremented in the table. Reading is stopped when concentration of one of the applicable rules becomes greater than all of its competitors. This is analogous to the scenario where there are a number of voices striving for attention, and only the loudest is heard. While searching for an applicable production rule, one may encounter rules that are not relevant at that point in time, e.g. rules 4 through D are irrelevant when non-terminal is mapped. In this case, the concentrations of those rules are increased, so 27

which can be looked upon as a collection of hard coded production rules. When moded with the number of rules in the grammar (see Section 3), which in this case is 14, the same individual can now be represented as follows (using hexadecimalnumbers): 4

0

4

D

0

3

4

3

14

45

46

45

18

27

55

65

when that production rule is involved in a decision, it will be more likely to win. This is where the position independence comes into the system; the crucial thing is the presence or absence of a gene, while its position is less so. Importantly, absolute position almost D

0

3

4

3

4

D

D

9

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

never matters, while occasionally, relative position (to another gene) is important. Once chosen, the concentration of that production rule is decremented. However, it is not possible for a concentration to fall below zero. Sticking to the left most non-terminal in the current sentence, mapping continues until there are none left or we are involved in a choice for which there is no concentration in either the table or the genome. An incompletely mapped individual is given a fitness value of exactly zero in the current version of Chorus, thus removing its chances of indulging into any reproductive activity.

None of these have a value yet, so we must read the first gene from the genome, which will cause it to produce its protein. This gene decodes to 4, which is not involved in the current choice. The concentration of 4 is incremented, and another gene read. The next gene is 0, and this is involved in the current choice. Its concentration is amended, and the choice is made. As this is the only relevant rule with a positive concentration, it is chosen and its concentration is reduced, and the current expression becomes: The process is repeated for the next leftmost non-terminal, which is another expr. In this case, again the concentrations are at their minimal level for the possible choices, so another gene is read and processed. This gene is 4, which is not involved in the current choice, so we move on and keep reading the genome till we find rule 0 which is a relevant rule. Meanwhile we increment the concentrations of rules

4.1. Example Individual Using the grammar from Section 3 we will now demonstrate the genotype–phenotype mapping of a Chorus individual. The particular individual is encoded by the following genome: 18

28

32

27

42

17

18

31

27

0

4

D

0

3

4

3

0

1

2

3

4

D

0

1

2

3 2

4

46

45

18

27

55

65

0

3

4

3

4

D

D

9

The state of the concentration table at the moment is given below. 5

The sentence starts as , so the first choice must be made from productions 0..3, that is: Rule # Concentration

45

Reading the genome once more for the non-terminal expr, produces rule 3 so the expression becomes

The first step in decoding the individual is the creation of the concentration table. There is one entry for each production rule (0, . . . , D), each of which is initially zero. Rule # Concentration

14

4 and 0. Similar to the previous step, production rule 0 is chosen, so the expression is now

For clarity, we also show the normalized values of each gene, that is, the genes mod 14. This is only done for readability as, in the Chorus system, the genome is only read on demand, and not decoded until needed. 4

143

6

7

8

9

A

B

C

D

The next choice is between rules C and D, however, as at least one of these already has a concentration, the 5

6

7

8

9

A

B

C

D 1

system does not read any more genes from the chromosome, and instead uses the values present. As a result, rule →X is chosen to introduce first terminal symbol in the expression. Once this non-terminal

144

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

boundary restriction permits the system to perform crossover on well-formed structures, which promotes the possibility of using schema analysis to examine the propagation of building blocks. Unrestricted crossover will not harm the system, merely make this kind of analysis more difficult. When two parents are selected, they undergo crossover with a probability of 0.9. After crossover, each of the two offsprings (which can be the same as parents if they do not cross) is subjected to mutation. It involves inverting every bit of each codon with 0.01 probability. Steady state replacement is used, with roulette wheel selection.

has been mapped to a terminal, we move to the next left most terminal, and carry on from there. If, while reading the genome, we come to the end, and there is still a tie between 2 or more rules, the one that appears first in the concentration table is chosen. However if concentrations of all the relevant rules is zero, the mapping terminates and the individual responsible is given a suitably chastening fitness. With this particular individual, mapping continues until the individual is completely mapped. The interim choices made by the system are in the order: 4, 3, D, 4, 0, 3, D, 4, 3, D. The mapped individual is

6. Blood flow problems in grafted arteries

X+X+X+X

In this section we demonstrate one of the multi faceted applications of the Chorus system. As men-

The state of the concentration table at the end of the mapping is given in the next table. Rule # Concentration

0

1

2

3

4 2

Notice that there are still some concentrations left in the table. These are simply ignored in the mapping process and, in the current version of Chorus, are not used again. Notice also that the rule 9 is not read because the mapping terminates before reading this codon.

5. Genetic operators The binary string representation of the genotypes of the individuals effectively provides a separation of search and solution spaces [22]. The genotypes that are directly subjected to the genetic operators come from the search space where the evolutionary search process looks for the right set of codons which can be mapped to high quality solutions from the solution space. This is different from tree based GP [4] where no distinction is made between genotype and phenotype. This separation permits us to use all the standard genetic operators at the string level. Simple one point crossover is used with the restriction being that it takes place at the codon boundaries. Two random points are selected, one in each parent, and the right hand sides are swapped. This means that the lengths of the offsprings can be quite different from their parents. Codon

5

6

7

8

9

A

B

C

D

tioned at the onset, our aim is to address the problem of computing the Wall Shear Stress. This study is concerned with lower limb arteries and the stenoses (reduction in internal cross-sectional area) and occlusions (blockages) that occur there. As mentioned earlier, a graft is used to bypass the occluded or stenosed region. A typical graft is illustrated in Fig. 1 where we see the proximal anastomosis or the junction where the graft begins and the distal anastomosis, i.e., the junction where the graft rejoins the artery after bypassing the blockage. The computation of the Wall Shear Stress distribution at the bed of the graft/artery junction requires first the computation of the Wall Shear rate which in turn depends on the point velocities of the fluid flow and the viscosity of the fluid which is constant. Laser Doppler anemometry (LDA) is a well-established accurate technique for measuring point velocities in fluid flow [11]. It is very suitable for applications with reversing flow because of its directional sensitivity with particular advantages being it’s non-intrusive nature and high spatial and temporal resolution. LDA measures the velocity of suspended particles in a moving fluid by detecting the frequency of Doppler shift of laser light scattered from the moving particles [23].

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

145

Fig. 1. An illustration of a bypass graft.

Fig. 2. Illustrations of the axial locations of the LDA measurements.

The model used in this investigation was an idealized model of a graft/artery junction. The model had two cylindrical conduits with equal diameters of 6 mm (D = 0.006 m), intersecting at an angle of 45◦ . The host artery was 16.6D long with the heel of the junction located 5.5D from the start of the conduit. The graft is 8.5D in length. This model was chosen as it was widely used previously as an idealized end-to-side graft/artery junction geometry, [9,14]. The measurement locations are illustrated in Figs. 2 and 3. In the experimental set-up, a pump-controlled diaphragm imposed a pulsatile flow waveform onto the steady flow velocity fluid. A dimethylsulfoxide/water (DMSO) solution, 51.7dimethylsulfoxide with 48.3de-ionised water, used by Liepsch et al. [11] is an appropriate fluid to simulate the behavior of blood for in vitro flow studies. Velocity measurements were recorded at each of the axial positions illustrated in the figures. Subsequently, the results were analyzed at one specific axial location, i.e., 15 mm (2.5D) from the heel of the junction and at one point of the flow waveform, i.e., the mean velocity in the deceleration phase of the pulse. More details on the experimental set-up with a schematic can be found in Walsh et al. [23].

Fig. 3. Illustrations of the radial locations of the LDA measurements.

6.1. Experimental set-up for chorus The Chorus System was set up to go through 250 generations with a population size of 2000. Twenty runs were conducted with different random seeds and the best individual of every run was seeded into the initial generation of the next run. The grammar used for the experiment is

146

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

Protected division and Log functions are used returning 1.0 over the domain where the functions are undefined. Log here represents natural log. pow function is used to raise an expression to an arbitrary power. Note that the grammar can define any real constant. Absolute differences are summed up over all the test cases. The reciprocal of the sum represents the fitness of an individual. 6.2. Results and discussion Now we show the results obtained by Chorus and compare them to standard results in the literature. The

experimental point velocities measured using LDA are also compared to numerical predictions which used Computational Fluid Dynamics (CFD) to predict the velocity field in the model under the experimental conditions. The CFD package used was Fluent Europe (FLUENT). In Fig. 4, we consider the fluid point velocities by plotting the graph of the experimental data, the fit by Chorus, the Computational Fluid Dynamics result and one of the fits from the literature [23]. It is worth noting that a search of the literature for curve-fits to the near wall velocity measurements at specific distances from the wall shows mainly polynomial fits which give reasonable coefficient of determination 0 ≤ r 2 ≤ 1 where 1 is a perfect fit. A table of this measure for the curve-fits available in the literature and for the fit provided by Chorus are given in Table 1. We can clearly see that Chorus not only gives a good fit, it actually gives a better one, where the 6th-order polynomial employed is given as v(x) = (31156974276177)x6 + (1107371469426)x5 − (26418773600)x4 + (190313877.6)x3 − 579819x2 + 659.54x − 0.0109 with fluid point velocity v, and distance from wall x. In addition the fifth-order polynomial is given as (1668197006397)x5 − (3.0202851579)x4 +(202073281)x3 − 596303.85x2 + 667.92x −0.0116

Fig. 4. Comparison of the actual measurements with the fit provided by Chorus, the simulated results from FLUENT (the CFD result for the fluid velocity) and the sixth-order polynomial.

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148 Table 1 A comparison of coefficients of determination for different fits Fit

Coefficient of determination, r2

Sixth-order polynomial Fifth-order polynomial Chorus

0.9829 0.9829 0.9859



ξ = sin ln(x + 0.000000001) 

ex sin(x2x ) + 4212.0(x + 0.000000001)

parable to the experimental data. This is indeed clear from the curve-fit to the fluid velocity measurements. The CFD model can provide a flexibility to simulate flow and associate Wall Shear Stress distribution for various angles of bypass graft/artery junctions.

7. Conclusions

and the fit by Chorus is given as ξ  1.4 e v(x) = 60.2 where

147



10.89 + 5.55461

In addition, it is worth noting that the exponential function computed by Chorus is not a natural choice for this data set. As most curve-fitting toolboxes are user experience based, it is difficult to imagine even an experienced user suggesting this function. A straight forward exponential fit of the form v(x) = p1 ep2 x +p3 with p1 , p2 and p3 determined by method of least squares provide a poor fit to the data thus diverting the user to other choices of fitting functions. Whereas the “experience” of a user is an arguable assessment it is plausible to assume that most average users would be swayed away from employing an exponential fit to the data. This amplifies the unbiased approach of Chorus. It should also be noted that Chorus has to deal with a much larger search space compared to the other approaches where the order of the polynomial is specified by the user. The Wall Shear Stress can be determined from the product of the viscosity of the fluid and the wall shear rate. The viscosity of the fluid is known, therefore, it remains to estimate the wall shear rate to allow calculation of Wall Shear Stress distributions. The wall shear rate is the derivative of the fluid point velocity. The wall shear rate was predicted at a point 250 ␮m from the wall. The accuracy of the experimental Wall Shear Stress distributions depends on the accuracy of the near-wall velocity measurements and the curve-fit used to determine the wall shear rate. Note that the objective is to determine if the CFD results are com-

In this paper we have shown the application of a grammar based evolutionary algorithm, Chorus, as an aid in solving real life problems. The results obtained by Chorus are not only slightly better than the standard methods employed by researchers engaged in this work, they are innovative as well. This can be attributed to the bottom up approach where the system assumes little familiarity with the problem domain and user experience. Such an approach can be extremely useful in giving an unbiased view of the dynamics of the system. On the other hand, use of the grammar also makes it possible to easily incorporate any biases based on the user experience. Although this may affect the system’s creative abilities, yet may reduce the search time by incorporating valuable user experience, which can prove very helpful in exploring complex search spaces for the harder problems. References [1] B. Lewin, Genes VII, Oxford University Press, 1999. [2] D.E. Goldberg, Genetic Algorithms in Search, Optimization & Machine Learning, Addison-Wesley, 1989. [3] G. Zubay, Biochemistry, Wm. C. Brown Publishers, 1993. [4] J.R. Koza, Genetic Programming, MIT Press, 1992. [5] J.R. Koza, F.H. Bennett III, D. Andre, M.A. Keane, Genetic Programming III: Darwinian Invention and Problem Solving, Morgan Kaufmann, 1999. [6] M.L. Wong, K.S. Leung, Data Mining Using Grammar Based Genetic Programming and Applications, Kluwer, 2000. [7] H.L. Fang, Genetic Algorithms in Timetabling and Scheduling, Ph.D. Thesis, Department of Artificial Intelligence, University of Edinburgh, 1994. [8] R. Olsson, Inductive Functional Programming Using Incremental Program Transformation, Ph.D. Thesis, University of Oslo, 1995. [9] C.R. Ethier, D.A. Steinman, X. Zhang, S.R. Karpik, M. Ohja, Flow waveform effects on end-to-side anastomotic flow patterns, J. Biomech. 31 (1998) 609–617. [10] D.P. Giddens, C.K. Zarins, S. Glagov, The role of fluid mechanics in localisation and detection of atherosclerosis, J. Biomech. Eng. 115 (1993) 588–594.

148

R. Muhammad Atif Azad et al. / Applied Soft Computing 4 (2004) 139–148

[11] D.W. Liepsch, G. Pflugbeil, T. Matsuo, B. Lesniak, Flow visualisation and 1- and 3-D laser-Doppler-anemometer measurements in models of human carotid arteries, Clin. Hemorheol. Microcirc. 18 (1998) 1–30. [12] M.J. Eagleton, K. Ouriel, C. Shortell, R.M. Green, Femoral-infrapopliteal bypass with prosthetic grafts, Surgery 26 (4) (1999) 759–764. [13] M. O’Neill, C. Ryan, Grammatical evolution, IEEE Trans. Evolut. Comput. 5 (4) (2001) 349–358. [14] M. Ohja, R.S. Cobbold, K.W. Johnston, Influence of angle on Wall Shear Stress distribution for an end-to-side anastomosis, J. Vasc. Surg. 19 (6) (1994) 1067–1073. [15] N. Noori, R. Scherer, K. Perktold, M. Czerny, G. Karner, W. Trubel, P. Polterauer, H. Schima, Blood flow in distal end-to-side anastomoses with PTFE and a venous patch: results of an in vitro Flow Visualisation Study, Eur. J. Endovasc. Surg. 18 (1999) 191–200. [16] S.S. White, C.K. Zarins, D.P. Giddens, H. Bassiouny, F. Loth, S.A. Jones, S. Glagov, Hemodynamics patterns in two models of end-to-side vascular graft anastomoses: effects of pulsatility, flow division, Re No. and hood length, J. Biomech. Eng. 115 (1993) 104–111. [17] C. Ryan, A. Azad, A. Sheahan, M. O’Neill, No coercion and no prohibition, a position independent encoding scheme for evolutionary algorithms—The Chorus System, in: Proceedings of European Conference on Genetic Programming (EuroGP 2002).

[18] C. Ryan, J.J. Collins, M. O’Neill, Grammatical evolution: evolving programs for an arbitrary language, in: EuroGP’98: Proceedings of the First European Workshop on Genetic Programming (Lecture Notes in Computer Science 1391), Paris, France, Springer, 1998, pp. 83–95. [19] M. Keijzer, V. Babovic, Genetic programming within a framework of computer-aided discovery of scientific knowledge, in: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2000). [20] N. Paterson, M. Livesey, Evolving caching algorithms in C by GP, in: Genetic Programming 1997: Proceedings of the 2nd Annual Conference, MIT Press, 1997, pp. 262–267. [21] P. Whigham, Grammatically-based Genetic Programming, in: Proceedings of the Workshop on GP: From Theory to Real-World Applications, Morgan Kaufmann, 1995, pp. 33–41. [22] R. Keller, W. Banzhaf, Genetic Programming using genotype–phenotype mapping from linear genomes into linear phenotypes, in: J.R. Koza, D.E. Goldberg, D.B. Fogel, R.L. Riolo (Eds.), Genetic Programming 1996: Proceedings of the 1st Annual Conference, Stanford, CA, MIT Press, 1996, pp. 116–122. [23] M. Walsh, T. McGloughlin, D.W. Liepsch, T. O’ Brien, L. Morris, A.R. Ansari, On using experimentally estimated wall shear stresses to validate numerically predicted results, Proc. IMechE Part H: J. Eng. Med. 217 (2003) 77–90.