Академический Документы
Профессиональный Документы
Культура Документы
GUSTAF JANSSON
epartment of Applied Information Technolog! C"A#$%&S UNI'%&SIT( OF T%C"NO#OG( Gothen)urg* Sweden* +,-, &eport No. +,-,/-+0 ISSN/ -12-34015
epartment of Applied Information Technolog! C"A#$%&S UNI'%&SIT( OF T%C"NO#OG( G8te)org* Sweden +,-,
Genetic Algorithm controlled Traffic Intersection A practical use of Standard Genetic Algorithm for Traffic Intersection control GUSTAF JANSSON 9 GUSTAF JANSSON* +,-, $aster:s Thesis report no +,-,/-+0 ISSN/ -12-34015 epartment of Applied Information Technolog! Chalmers Uni;ersit! of Technolog! S%34-+ 51 G8te)org Sweden Telephone < 41 =,>?-300+ -,,,
Co;er/ Figure of the traffic intersection* also found on page -+ &eproser;ice 7 epartment of Applied Information Technolog! G8te)org* Sweden +,-,
Genetic Algorithm controlled Traffic Intersection A practical use of Standard Genetic Algorithm for Traffic Intersection control GUSTAF JANSSON epartment of Applied Information Technolog! Chalmers Uni;ersit! of Technolog!
Abstract
In this master@s thesis* the possi)ilit! to use genetic algorithms to sol;e real world pro)lem is tested and e;aluated. The t!pe of genetic algorithm considered in this thesis is the standard genetic algorithm* and the chosen pro)lem in;ol;es traffic control of an intersection with road ;ehicle* tram and pedestrian traffic. Genetic algorithms are stochastic and )iolog! inspired search techniAues mostl! used in science related worB to find optimal solutions. The! are usuall! ;er! resource taBing in terms of C6U time and memor! size. A hardware issue* relating to how to implement the genetic algorithms into an em)edded s!stem* is also co;ered. The maCor part in this worB is concerned with appl!ing genetic algorithms to find optimized scheduling solutions for efficient traffic flow. The traffic intersection is used to illustrate pro)lems where optimal scheduling for dri;e order is needed* thus the results produced )! the genetic algorithm depend on the present situation in the intersection. An additional search method called epth First Search = FS> is used to ;erif! the results from the genetic algorithm. The pro)lems with constraint rules affecting this worB are also co;ered. F6GA and microcontroller are )oth suita)le hardware for genetic algorithm implementation* this worB will onl! co;er implementation of the microcontroller. The control of the intersection is assumed to )e directl! from this hardware implementation* and )eing totall! independent from an! outside control s!stem. The traffic intersection* which is not a real eDisting intersection* is independent from adCacent intersections. All simulation programs acts as controller programs for the intersection. There are three different simulation programs in total* all coded in programming language C. This worB will not present a complete final result* for eDample a hardware implementation read! to use. It sta!s on simulation programs onl!.
Ee!words/ Standard Genetic Algorithm* Traffic Intersection* %m)edded S!stems* F6GA* $icrocontroller* epth First Search* Constraint &ules.
iii
i;
Content
A)stract............................................................................................................................iii AcBnowledgement...........................................................................................................;ii - Introduction...................................................................................................................+ escription of Standard GA..........................................................................................? +.- Standard GA description........................................................................................? +.-.- Initialization...................................................................................................4 +.-.+ ecoding........................................................................................................2 +.-.? %;aluation......................................................................................................2 +.-.4 Fitness function..............................................................................................1 +.-.2 %litism............................................................................................................1 +.-.1 Tournament selection.....................................................................................0 +.-.0 Crosso;er........................................................................................................0 +.-.F $utation.........................................................................................................0 +.+ 6rogram details for Standard GA...........................................................................F +.? Search space...........................................................................................................5 ? Traffic intersection.......................................................................................................-?.- escription of the intersection.............................................................................-?.+ General functionalit!...........................................................................................-+ ?.? %as! worBing eDample.........................................................................................-? ?.4 etails and modifications....................................................................................-1 4 6rograms......................................................................................................................-0 4.- Standard GA ;ersions..........................................................................................-0 4.+ FS ;ersion.........................................................................................................-F 2 &ule pro)lems..............................................................................................................-5 2.- %Dample of rule pro)lems....................................................................................-5 2.+ Solutions for this pro)lem....................................................................................+, 1 %m)edded solutions.....................................................................................................+1.- F6GA...................................................................................................................+1.+ $icrocontroller....................................................................................................++ 0 Simulations..................................................................................................................+2 0.- A)out the simulations..........................................................................................+2 0.+ 6erformed simulations.........................................................................................+0 0.+.- Computed Standard GA simulations............................................................+0 0.+.+ $icrocontrolled Standard GA simulations...................................................+F 0.+.? FS ;ersion simulations..............................................................................+5 0.? Simulation results.................................................................................................?F Conclusion...................................................................................................................?2 F.- Simulation conclusion..........................................................................................?2 F.+ Future impro;ements...........................................................................................?2 F.? Summar!..............................................................................................................?1 5 &eferences...................................................................................................................?0 5.- GooBs...................................................................................................................?0 5.+ ocuments...........................................................................................................?0 5.? Internet.................................................................................................................?F -, AppendiD....................................................................................................................?5 AppendiD A Traffic intersection dri;e orders chart....................................................4AppendiD G $athematical fitness functions..............................................................4? AppendiD C 6ropositional logic for outputs..............................................................42 ;
6ropositional logic for dri;e order seAuence.........................................40 6rogram windows of Standard GA........................................................45 6rogram windows of FS ;ersion.........................................................26rogram code of Standard GA..............................................................2? 6rogram code of FS ;ersion...............................................................1-
;i
Acknowledgement
This master:s thesis is carried out in Chalmers and IT Uni;ersit! in Gothen)urg during +,-,. From m! point of ;iew it has )een ;er! inspiring to do this worB. Se;eral new ideas and perspecti;es ha;e coming up along this worB. $ore than a dozen millions artificial indi;iduals ha;e passing )! on de;elopments and simulations. Special thanBs to m! eDaminer and super;isor to this worB Claes StrannegHrd. I would also thanB class and famil! mem)ers for additional supports.
;ii
;iii
1 Introduction
The aim of this master:s thesis worB is twofold. The first is to find a wa! to implement a genetic algorithm =GA>* into an em)edded s!stem. The second and the maCor part* is to sol;e a real world pro)lem with this GA. This pro)lem is to find good traffic flow in the traffic intersection crossed with road ;ehicles* trams and pedestrians. The specific GA used in this worB is a Standard GA. GAs is an adapti;e and efficient heuristics that are a)le to sol;e optimization pro)lems. This is a stochastic search techniAue to looB for optimal solution. $ost GA is used in research and science related worB to looB for optimal solutions. The! usuall! run on powerful computers as GAs generall! are resources taBing in term of C6U time and memor! size. Some methods GA uses are selection* crosso;er and mutation inspired from e;olution in the real nature. A GA produced solutions comes out from one of man! artificial indi;iduals that contain the highest fitness ;alue. Out from this indi;idual a hopefull! good to perfect answer of the specified pro)lem can )e found. The main purpose of this worB is to test if a GA can )e used out in the field. To do this* it will )e applied and tested on a reasona)l! simple pro)lem. This worB also includes finding simpler hardware for implementation. This traffic intersection comes into illustrate a real world pro)lem to worB with. Optimal scheduling will )e the worB method to produce dri;e order seAuence depending up on the present situation. There are three simulation programs in totalI computed Standard GA* microcontrolled Standard GA and a computed FS ;ersion. The last one use depth first search = FS> algorithm. The FS will )e used to find the real answer in the search space. This answer will then )e compared with the results from )oth the other Standard GAs simulations. All simulation programs are coded in programming language C. The em)edded s!stem used during this worB is a microcontroller that must use C language. In terms of controlling the intersection with GA* onl! independent control from hardware implementation will )e considered in this worB. No other outside control s!stem will )e considered. The intersection will also )e assessed in isolation* meaning* not considering adCacent intersections.
2 Description of Standard GA
The specific Bind of GA used throughout this worB is a Standard GA JKahde* +,,FL. A Standard GA is one t!pe of different GAs. In a )ig ;iew GAs is one under group to the term of e;olutionar! algorithms. In general GAs is a search algorithm )ased on the natural selection and genetics JGold)erg* -5F5L. It uses a num)er of artificial indi;iduals looBing through a compleD search space )! using functions of selection* crosso;er and mutation. The purpose to use GA is searching and finding optimal or good enough solution. This solution will hide in a )ig search space to looB through. Is no guarant! to find an! eDact solutions when using a GA. Some result can e;en )e far from optimal when GA gets stucB in so called local optimum in the search space.
Figure +.-/ One indi;idual with +4 genes and three chromosomes Khen entire indi;iduals are decoded* all results from each chromosome are e;aluated for fitness calculation. After decoding and e;aluating all indi;iduals from entire population* the )est indi;idual is compared to the )est one so far. If this new indi;idual is )etter than the pre;ious )est indi;idual* it will )e sa;ed to the neDt generation and entitled as the new )est one so far. Khat is considered the fittest one depends on the pro)lem defined )! user. One eDample can )e a two ;aria)le function when the )est result is the minimum ;alue of the function. In this case the )est result is the smallest and =the result need to )e in;erted )! fitness=1/y>. In this worB* onl! maDimum ;alues are considered. Gefore the neDt generation is produced* three procedures will taBe place ?
to create a new population including selection* crosso;er and mutation. These are descri)ed in more detail further down and Figure +.+ shows the Standard GA worB flow. If a )est or good enough indi;idual is found* the Standard GA can terminate. In case of when the maDimum num)er of a generation run out without finding a )est or good enough solution* the )est indi;idual that is found will )e presented as the solution.
Figure +.+/ KorB flow o;er Standard GA The program starts with initialization and then )eginning the first generation in a loop )! decoding* e;aluation and fitness measure. After that loop is finish a new population are created )! first do elitism and there after selection )! tournament. #ast following two procedures is crosso;er and mutation )efore neDt generation )egins. The following descriptions for used Standard GA ha;e source code in AppendiD G.
2.1.1 Initialization
Initialization in;ol;es settings the parameters for the algorithm* set up input ;alues for the simulation* and creating population of indi;iduals to the first generation. The most )asic set up are the num)er of genes and chromosomes* the num)er of generations as well as the num)er of indi;iduals per population. The num)er of indi;iduals is prefera)l! e;en num)ered. Other adCusta)le settings for an! GA are the pro)a)ilities of crosso;er* mutation and tournament. These floating ;aria)le ;alues need smaller changes when impro;ing the performance of the GA. Other ;aria)les are to )e descri)ed in each part where the! )elong. Arra! population is gi;en random ;alues , and - to each gene and that maBes )inar! ;alues to each chromosome. A gene can for an eDample ha;e other ;alues for eDample natural num)er representing something as cities 4
in the Tra;elling Salesman 6ro)lem =TS6> JStuart M Nor;ig* +,,?L. A special ;ector in this program called inputValue containing Nreal world sensor inputsO from the intersection to simulate on. Arra! inputValues ha;e up to eight stored inputs for eight future time periods for simulations. All simulations do ten time periods* where the last two time periods are input free.
2.1.2 Decoding
After initialization* the program enters the main loop of Standard GA* commencing the decoding of the chromosomes. The decoding is user defina)le. For eDample* one chromosome can represent man! different ;alues* as demonstrated in Figure +.?.
Figure +.?/ Three different wa!s to decode one )inar! chromosome In this program each chromosome ha;e four )inar! genes representing )inar! num)er from , to -2* pro;iding -1 separate solutions representing dri;e orders for the intersection =see AppendiD A>. The arguments population and i* identifies certain indi;iduals to read from. The num)er of genes and chromosomes* and actual chromosome order* tells where to read on the actual indi;idual. The first gene on the chromosome is the #east Significant Git =#SG> and the resulting num)er is returned and stored in ;aria)le called parameterValue(chromosome number .
2.1.3
!aluation
The purpose of e;aluation is to determine the fitness of each indi;idual in a generation. The e;aluation function applies a mathematical function to calculate the fitness ;alues =see eDample in Figure +.4>. %ach calculated fitness ;alue will )e returned from the function called %;aluateIndi;idual. The arguments to the function contain chromosome ;alues* input ;ector and the pre;ious dri;e order.
Figure +.4/ Fitness calculation eDample from indi;idual with three chromosomes
The fitness calculation process is the same for all programs* and uses three calculation stages. %;aluation of present situation at the intersection are calculated according to inputs sensors from the site* older inputs with added priorit! and the pre;ious dri;e order that occurred. The first calculation stage* are summar! points cnInputs from new and old inputs )! mathematical functions =see AppendiD G>. These ;alues are retrie;ed from inputValue containing input ;alues from the intersection. The ;alues range from , to 1* where , is non3reAuesting sensor* - is new input and other ;alues are older remaining reAuests. The input is set to zero in the main code when the eAual output* of that input* is Bnown to )e eDecuted. In simulation ;iew will )e a road ;ehicle that ha;e dri;en awa! and then left the sensor. Also in main code is the priorit! )oost for non3eDecuted reAuests* is done )! adding ;alue one until neDt time period. The second calculation stage is dependent on the pre;ious dri;e order* ;aria)le pre!ious"#cecution and a set of rules* listed in AppendiD . The propositional rules onl! tell what pre;ious dri;e orders that will gi;e eDtra credits of two points or not )! sn. The purpose is to fa;our certain seAuence of dri;e orders that are good for the traffic flow. On e;er! simulation start are pre!ious"#cecution eAual to ;alue -1 that is a non3 ;alid zero credit dri;e order. In case of same dri;e order repeats itself* a penalt! calculation will )e used )! su)tract minus fi;e points to a;oid repetition. The last calculation stage summarise all chromosome points )! following eAuation/ 1 f = 0 n c nInputs s n n=This function is the actual fitness calculation returned )! the e;aluation function. %ach chromosome cn is a summar! from the pre;ious two stage calculations. %Dample of chromosome two is c$ = %(c$Inputs&s$ . The aim for the solution is to eDecute man! reAuests earliest as possi)le. So each chromosome is multiplied )! a num)er from siD and down* to fa;our higher points on the earl! time periods rather the last ones.
2.1.$
litism
Khen all indi;iduals ha;e )een e;aluated* the one with the highest fitness ;alue is stored unchanged in the first row in the neDt population arra!. This is done )ecause the following procedures for the other indi;iduals are going through tournament selection* 1
crosso;er and mutation. The last two will destro! or hopefull! impro;e current indi;iduals in the neDt generation.
2.1.' Crosso!er
Crosso;er and mutation are the two procedures that )ring new e;olutionar! material for the GA to worB on. In the crosso;er procedure two indi;iduals are chosen from the population to create new offspring. This is achie;ed )! choosing one or two randoml! chosen crosso;er point =one in this program> along the )it strings. The crosso;er points indicate where eDchange of ;alues )etween the indi;idual are to occur to create the new indi;iduals. In this case* the first section =)efore the crosso;er point> of the )it string of a new offspring of an indi;idual remains unchanged while the end section =after the crosso;er point> eDchanges ;alues with the other indi;idual. Khen a second crosso;er point is used the remaining third part is from same indi;idual again =see Figure +.2>. The pro)a)ilit! to do crosso;ers is defined )! ;aria)le crosso!er(robability which let most of all indi;iduals to undertaBe the crosso;er procedure.
2.1.( )utation
The mutation operation maBes small changes to an indi;idual and is used to maintain genetic di;ersit! from one generation to neDt. In this worB* the mutation operation in;ol;es generating a random ;aria)le for each )it in a seAuence. This random ;aria)le mutation(robability tells whether or not a particular )it will )e modified. Therefore* mutations might or might not ha;e an effect on an indi;idual =as shown in Figure +.1>. Khen a ;er! low mutation pro)a)ilit! is used* then this operation )ecomes rare. In the long3run* mutation )rings new and more different indi;iduals that hopefull! gi;e )etter fitness ;alue. 0
Figure +.1/ $utation on first indi;idual and no mutation on the other one
period has )een eDecuted* the Standard GA will start searching for a solution for the following time period. epending on the inputs to the new time period* this new solution ma! or ma! not )e eAual to the pre;ious predicted one for this actual time period. The result is presented in a s!m)olic wa! )! printout on the screen onl! =see AppendiD % and AppendiD F>. The final code for this description* and )elonging simulation inputs of *orst case one* are included in AppendiD G.
-,
3 &raffic intersection
The purpose of this worB is to assess the potential of appl!ing GA to sol;e a real world pro)lem. In this worB* it is represented )! a traffic intersection. This choice is )ased on the )asis the function and purpose of an intersection is easil! understood and still pro;ides an ad;anced enough pro)lem to worB on. T!picall! intersections eAual to this* with limited space and tramwa!s* are found in large cities. The purpose is to find an optimal schedule for optimal dri;e order seAuence. The time duration of the traffic lights is supposed to )e fiDed. The assumption maid in this worB* is the use of a controller unit with implemented hardware in form of an em)edded s!stem* contains the Standard GA program controlling the intersection in the realit!. Inputs to the controller are all sensors and push )utton around the intersection and the output is the actual light poles. The actual traffic lights are not printed on Figure ?.- )ut the output ;aria)les are mentioned in AppendiD A and listed in AppendiD C. The location of the input sensors are* for pedestrians the push )uttons =)lacB dots>* for road ;ehicles the sensors under the road lane edge where the! stops for red lights =under the arrows>* and for trams Cust )efore the turn out on tram line where the! usuall! stop for there red lights. There are se;eral worBs that ha;e pro;ided inspiration to this worB with GA and traffic controlling. One eDample is JGuan* et al.* +,,FL* a paper discussing signal time optimization tested on ?, intersections in Changchun cit!. !namic signal control is also used in J(ang* et al.* +,,1L* a paper a)out one isolated intersections onl!. A different )ut inspiriting paper is traffic flow for lane closures to minimize tra;el dela! J$a* et al.* +,,4L. In another paper with d!namic traffic lights time control for pedestrian and passing road ;ehicles on one intersection JTurB!* et al.* +,,5L. Gut almost all of these are outside the intention to do scheduling )! dri;e orders. Additional inspiration for scheduling has )een drawn from paper JFissgusL.
street. ue to hea;! traffic and the width of the streets* three of the crossings are di;ided up into three separate sections =road ;ehicle lane* tram lane* road ;ehicle lane>. Two push )uttons are pro;ided for each section. The intersection will not )e dependent on other adCacent intersections near)!. This scenario could )e assessed in a potential eDtension of this worB. The Standard GA is onl! to sol;e optimal dri;e order seAuences for this intersection.
Sets of mathematical functions and logic rules e;aluate each dri;e order to Bnow how ;alua)le the! are to )e eDecuted. ri;e order that eDecuting man! reAuests is )etter than less eDecuting ones. %Decuted reAuests get there input ;alue set to zero. For each new time period* outputs for eDecuting the reAuests are alwa!s coming from chromosome num)er one c1. Non3eDecuted reAuests will get their ;alue added )! one to get higher priorit!. This process pro;ides a )etter chance to get higher fitness ;alue in the neDt time period. The mathematical functions are listed in AppendiD G* additional logic rules in AppendiD and outputs according to certain dri;e order in AppendiD C. Further down is a list of letters that form the ;aria)le names of inputs reAuests and their eAual outputs. An eDample* a))re;iations meaning road ;ehicles going from south to north and east would )e called 3S4". Output ;aria)le name of this will then )e +3S4"* and corresponding input reAuest ;aria)le I3S4". First letter/ I for input O for output Second letter/ 6 for pedestrians T for trams & for road ;ehicles Third letter/ N from north)ound direction S from south)ound direction K from west)ound direction % from east)ound direction Forth letter/ N to north)ound direction S to south)ound direction K to west)ound direction % to east)ound direction Fifth letter/ K also to west)ound direction % also to east)ound direction
3.3
The following eDample scenario has )een created to further descri)e the functionalit!. This case has one of each pedestrian* tram and road ;ehicle reAuest. %ntire simulation taBes three time periods to complete. The pedestrian reAuest is (*1 on the north3west pa;ement. A push )utton acts as sensor input and input'alue I(*1 eAuals true. G! then is this pedestrian lane reAuested. This pedestrian lane will cause interference to the tram e;entuall!. 6edestrian lane (*$ might )e acti;ated there after. Assume a tram standing from east acti;ating sensor IT"** tempting to go west. Also assuming that the tram dri;er somehow can gi;e a direction order* depending on where the tram route going. Onl! one direction is possi)le to reAuest. On road lane 3S4"* a car coming to stop for red light and sensor I3S4" is acti;ated. "ow man! other road ;ehicles standing )ehind on this lane doesn:t matter. There is nothing that tells where this road ;ehicles going north* east or )oth* the! are allowed for )oth. Although the 3S4" reAuests do interfering the trams reAuest an!wa!. -?
This )eginning situation is shown on Figure ?.+. The car and the pedestrian do not interfering each others* the tram do. Onl! the tram or )oth pedestrian and the car can go on first time period. Two solutions are possi)le )! resulting seAuences F3-,3-2 and -,3 F3-2. $ost fitness do F3-,3-2 ha;e where the tram go first on dri;e order F. Output ;aria)le +T"* sets to true* eAuals to eDecute the tram reAuest. The second predicted dri;e order -, will )e neDt eDecuta)le* where )oth +(*1 and +3S4" are set to true. In theor! the pedestrian needs to acti;ate I(*$ although is not necessar!. The logical seAuence rule 31% in AppendiD gi;ing credits when dri;e order -2 comes after -,. No reAuest for (*$ is needed due this )ecomes eDecuted )! dri;e order -2 an!wa!. The second solution -,3F3-2 is an eDample of a result not as good as what could )e eDpected. The tram needs to wait and there are no eDtra credits for pre;ious dri;e order. For this simple eDample it doesn:t matter who goes first. Otherwise* it:s more crucial in hea;ier traffic situations. The real simulation result of this "#ample case is shown in Chapter 0.+.
-4
Ta)le ?.?/ Two different fitness calculations on each dri;e order seAuence
Tram first &. f=c1+c2+c3 &1 f=c1+c2+c3 P & R first &. f=c1+c2+c3 1. 18 ( 6 1. 48 *1 1. 40 1$ 10 *1 ( 10 *2 1$ 8 ( 0 *2 1$ 0 28 58 fitness 54 fitness
A close looB in Ta)le ?.? and a calculation eDample following. This ta)le show the second solution seAuence -,3F3-2. Kh! it:s second )est is simple pro;en )! ;erif!ing the fitness results +F against 24. Note that* in )oth solutions* dri;e order -, ha;e higher ;alue than F. This does not matter when the total fitness ;alue counts for the final result. In the ta)les* on T1 is eDecuta)le " dri;e order -,. Chromosome one c1 ha;e a total ;alue 4F* this ;alue is calculated further down. Note the pre;iousl! dri;e order on T2 is F. First calculation is to summarise inputs )elonging dri;e order -,* in following eAuation =see AppendiD G>/ c1Inputs = I(4$ & I(*1 & I(*$ & I(*5 & I(S$ & I(" & I34* & I34S & $I3S4" Note that the 3S4" is weighted with multiplication )! two. Goth (*1 and 3S4" ha;e ;alue one from pre;ious time period. Until this time period their input ;alues are added )! priorit! with one more point as follow/ c1Inputs = 2 & $ & 2 & 2 & 2 & 2 & 2 & 2 & $6$ = Second calculation ma! gi;e a credit of two points. Is depends on logic rules for dri;e order seAuence from AppendiD . The dri;e order -, has following seAuence rule/ 312 (12 7 ("(8 9 "(: ; <Two(oints
This gi;e in Goolean representation due is true that pre;iousl! dri;e order was F/ 312 true 7 (true 9 false ; true
As the result is Goolean <Two(oints R true* that is eAual to s1 = $ in the e;aluation function. This gi;e the first chromosome c1 = -(c1Inputs&s1 = -(-&$ = =8. The final fitness functions summarise all ;alues )! eAuation/ 1 f = 0 n c nInputs s n n=The second chromosome ha;e no more reAuests left and c$Inputs = 2* pre;ious dri;e order was -, gi;es s$ = $. Total chromosome ;alue is c$ = %(c$Inputs&s$ = 12. Then the total -2
fitness ;alue for T1 is f = =8&12 = %8. The outputs for dri;e order -, when it eDecutes are/ "12 ; +(4$ 7 +(*1 7 +(*$ 7 +(*5 7 +(S$ 7 +(" 7 +34* 7 +34S 7 +3S4" As all of these output ;aria)les are set to true* the pedestrian from (*1 can continue walBing directl! on to (*$ as this too* has green light.
-1
" *rograms
The programs that simulate the intersection =computed and microcontroller implemented>* )oth uses Standard GA to find the optimal dri;e order to eDecute. In this worB* an additional program with another search algorithm* epth First Search = FS> JStewart M Nor;ig* +,,?L* is used to ;erif! the performance of )oth Standard GAs. The specific simulation program used is called N FS ;ersionO. The results from the FS ;ersion will )e compared to the results deri;ed from each Standard GA program. The FS onl! looBs for one solution at the time and goes down all le;els in the search tree. The FS can )e programmed to terminate the search if a good solution is found. In this worB* the FS ;ersion will search trough the entire search space to find the )est answer =a complete path to )ottom le;el siD>. This path* representing the dri;e order seAuence* is illustrated in Figure +.0. In summar! the main characteristics of each search method are/ The Standard GA =computed and microcontroller implemented> is fast* although cannot guarantee a )est solution is identified. Otherwise* a good enough solution can )e found. The FS ;ersion will find the )est solution to the cost of eDtensi;e use of time and computation.
In addition to these three simulation programs there are four more ;ersions of simulations to e;aluate. All simulations are eDplained in Chapter 0 and the! are called "#ample case =from Chapter ?.?>* 4ormal case* *orst case one and *orst case two. #isted source codes are Standard GA ;ersion of *orst case one on AppendiD G and FS ;ersion of 4ormal case on AppendiD ". All programs are coded in program language C.
-0
&andFunBtion is called from se;eral places in the main code whene;er a random ;alue is needed. A good random function is essential for all GAs to worB properl!.
In main* the initializations are done in the )eginning. For simulation reasons* up to eight sets of input ;alues for each time period are used. The main loop runs ten times* starting with reading and updating present input ;alues for that time period. Then the Standard GA loop goes through all generations up to the num)ered ;alue of maDGeneration. Inside the Standard GA loop is the traditional worB flow with decoding* e;aluation* fitness measuring* elitism* tournament select* crosso;er and mutation. In the end is a special arra! list goodIndi;iduals that store the )est indi;idual for future time periods. The neDt new population will get the content from this list. In the long run* this list will contain )etter and more impro;ed indi;iduals. This list is a part of the self3learning process in this program. Khen the loop is completed* all )est parameter ;alues are send to function &eturn&esult for print out. In the simulations* the program is run through ten time periods in a so called Nfor loopO. In realit!* where the program is supposed to run continuousl! a Nwhile loopO will )e used.
-F
$ /ule problems
This chapter discuss eDperiences encountered during this worB related to rules and how the! can worB against the GA. The rules considered in this worB are Ofitness measuring rulesO and Nconstraint rulesO. The! are represented with propositional logic. Goth are supposed to )e applied in the e;aluation function to grade indi;iduals according to these rules. This chapter eDplains the constraint rules and the pro)lem the! cause. Constraint rules are strict and must )e fulfilled. Situation ma! occur where indi;iduals )reaB constrained rules. Khen this happens these indi;iduals ma! not )e allowed to sur;i;e and* to discard them* their fitness ;alues are simpl! set to zero. To eDclude or for)id indi;iduals and their solutions could )e considered wasted* )oth of computing time and other s!stem resources* as these solutions are not needed. Constrained relations are mentioned in JGold)erg* -5F5L where it is eDplained that constrains can )e fine* although finding a feasi)le solution can )e almost as difficult as finding the )est one. $ore reading and details in this area is found on J(oonL. In science research constrains are generall! not causing an! maCor pro)lems. The! generall! ha;e sufficient computation as the importance of finding good results are essential. Although constraint rules do not appear to )e a )ig issue* the! do cause a certain pro)lem in this worB. Significant time loss and memor! usage are to )e eDpected on the small* computerised s!stem used in this worB. Theoreticall! constraint rules ma! not )e needed in a well3defined pro)lem. $ore often than not the! cannot )e a;oided. Although a few constraint rules will ha;e little effect* the! ma! cause a real pro)lem in finding decent solutions if the! )ecome more in num)ers.
$.1
Imagine an indi;idual with one chromosome c containing three )inar! represented genes. That gi;es a search space of eight possi)le solutions. The )inar! genes are called g1* g$ and g5. Assume that if the com)ination of g$ and g5 is true and the g1 ;alue doesn:t matter* then =D--> will result in high fitness ;alue. Also assume a constraint rule declaring that if g1 is true =-DD> then that indi;idual must )e for)idden. The outcome will )e a half population )eing for)idden. If GA finds an indi;idual with content =--->* then that produced result will )e wasted. Otherwise content =,--> is not and can )e used. Assume the change of the constrained rule to onl! for)id when g1 is true and g$ is false =-,D>. G! this rule two solutions are gained )acB from the search space =--,> and =--->. #eft is =-,,> and =-,-> which represent +2P of the search space. The loss of possi)le solutions caused )! constrained rules depends on their amount and formulation. A Standard GA* worBing with )oth fitness rules and constrained rules* was used in earl! attempt in this worB. Fitness and constrained rules were )oth propositional logic* representing true or false ;alues. The! also shared and worBed with the same input ;aria)les. These ;aria)les were representing all inputs from the intersection and represented )! one single chromosome containing +5 genes. The search space had a)out -5
++5 S 2.4Q-,0 different solutions as a maDimum. The outcome from this attempt resulted in a serious loss of solutions e;en were onl! one set of constrained rules is used. Following eDample demonstrates how rule 31 for)id a solution when it )ecomes satisfied )! true ;alue/ 31 = I(41 7 (I34* 9 I34" 9 I34S To pass a non for)idden solution the rule 31 must )e unsatisfied )! false. This rule is satisfied when gene one I(41 is true and at least one of the other genes +, =I34*>* +- =I34"> and ++ =I34S> are true. All of the three last genes must )e false to ensure a safe traffic situation. The rule 31 is liBel! to )e satisfied when I(41 is true and at least one or more of the other genes are true =or holding ;alue -> in the following calculation/
0 I (*1 I 34* I I + 34S 34" + ok = = ,.44 + + 4 F F
ApproDimatel! 44P of the search space + will )e satisfied and therefore for)idden. If the last three genes are not included in this rule* the chance will )e Cust 2,P. The last genes actuall! gi;e )acB 1P of the search space* increasing possi)le solution to 21P. To ha;e in mind is that this eDample contains the first rule of +5 in total. Together the! drop the chances )! finding an! descent solution to almost nothing. The following worB will use another strateg! to a;oid all forms of constrained rules* with the one eDception of a single Nif statementO that acts as constrained rule. This statement a;oids chromosome c1 to get ;alue zero. If that happens* the first dri;e order will not eDecute an! reAuests and that would )e a pointless solution.
+,
mbedded solutions
One part of this worB in;ol;es worBing out how GA can )e implemented into an em)edded s!stem. Two main t!pes of em)edded s!stems* F6GA and microcontrollers* ha;e )een considered. This hardware implementation is one fundamental part of this worB. In realit! it would )e unrealistic for a control unit or rela! )oD* used to control the traffic intersection* to contain an ordinar! computer. It would )e more reasona)le to ha;e an electronic circuit )oard with one of the two mentioned em)edded s!stems. The two main reasons for this include component costs and more secure functionalit!. The aim in this worB is to test the potential to use GA in this t!pe of alternati;e application. Though the am)ition is to maBe it worB* it might not )e achie;a)le due to C6U and memor! limitations of the GA. ue to time constraints and necessar! resources not )eing a;aila)le* F6GAs will not )e tested in this worB* instead some earlier worB will )e presented. On other hand* a microcontroller and )elonging de;elop Bit JAtmel STE2,,L is a;aila)le. A draw)acB with the microcontroller is that its memor! size potentiall! is too small for what is reAuired for this application. Otherwise* with a few modifications* it can still achie;e some success. The microcontroller uses programming language C* thus all simulation programs will )e coded in C from the )eginning.
%.1 #*GA
F6GA =Field 6rogramma)le Gate Arra!> is a ;ersatile integrated circuit that can )e designed for specific functionalities. The most commonl! used program language is '" # ='er! high speed integrated circuit "ardware escription #anguage>* for more readings see J'" #L. Some earlier worB has )een done to implement GA into F6GA JAporntewan M Chongstit;atana* +,,-L and JShacBleford* et al.* +,,-L. In JAporntewan M Chongstit;atana* +,,-L a speed comparison was done using Compact GA running as software on +,, $"z computer and the +, $"z F6GA hardware. The result in this stud! was that the hardware ;ersion was -,,, times faster than software ;ersion. A similar comparison JShacBleford* et al.* +,,-L used - $"z F6GA and -,, $"z computer. The F6GA was more than ++,, times faster. Goth studies show faster and more effecti;e results )! the hardware. A draw)acB is when reconfiguration of the fitness function is reAuired* as that can taBe hours to do. Though the resulting effecti;eness appears promising* it is a different stor! when comes to computers. The worB stations used in these studies* around +,,,* was up to +,, $"z and this worB is done in +,-, using a computer with + G"z. Although the clocB speed on F6GAs has also impro;ed during the !ears. For more reading a)out F6GA see manufactures JTilinDL and JAlteraL.
+-
%.2 )icrocontroller
A microcontroller can )e eDplained as a small computer inside one single integrated circuit. The main components include processor* memor! and programma)le input and output peripherals. The microcontroller used in this worB is an ATmega-1 JAtmel Atmega-1L* programmed through a starter de;elopment Bit s!stem* called STE2,, JAtmel STE2,,L from Atmel JAtmelL. Kith a program memor! of -1 E)!tes it )ecomes difficult to fit in a reasona)le simulation program. The simulation program FS ;ersion =descri)ed in Chapter 4> will not )e implemented in a microcontroller* as it is not needed. It would )e possi)le to do so* although the result would )e the same as the computed one. In Figure 1.- is a picture of the entire set up for the simulations. Figure 1.+ illustrates a close up picture of the presented results. The Standard GA for the microcontroller will reAuire some smaller program changes in order to worB properl!. Small modifications are made in random and print out functions. %speciall! in the print out function as there is no computer screen to show the results on* onl! a #C displa!. The population is reduced from ?, to four indi;iduals as a direct conseAuence of the smaller memor! size. Goth the computed and the microcontrolled Standard GA will perform ?,,, indi;iduals per simulated time period. The microcontroller will compensate with 02, generations rather than -,,. One draw)acB is the num)er of performed elitism in each simulation. There is one elitism performed in each generation* now 02, rather that onl! -,,* in the microcontrolled Standard GA. %litism itself does not contri)ute with new material in the e;olutionar! process* with the conseAuence of potential limitation in performance.
++
+?
+4
' Simulations
It is important to remem)er that a complete or final result is not eDpected. The aim is to test how well the GA can perform and further impro;ements will still )e reAuired. This worB will compare and assess the simulations of the three programsI computed Standard GA* microcontrolled Standard GA and FS ;ersion. %ach program has four prepared simulation cases that will gi;e -+ different results. All results and their )eha;iours will )e eDplained )riefl!. The simulation outputs actuall! looBs in two different wa!s as follow. The first and last simulation programs are computed ones* doing their printout windows on a computer screen. The second simulation program is implemented inside a microcontroller* performing printouts on a #C 3displa!. These microcontrolled printouts looB rather different and onl! ha;e two printed lines =see Figure 1.+>. %Dample of result from printout windows from the computed Standard GA and the FS ;ersion can )e found in AppendiD % and AppendiD F.
The results from the simulations are listed in pairs* in the result ta)les further down. The first ta)le contains the "#ample case and the 4ormal case. The second ta)le contains )oth *orst case one and *orst case two. The "#ample case* with one of each pedestrian* tram and road ;ehicle reAuest* has some interference* which is further descri)ed in Chapter ?.?. In the program code there are three sets of input ;aria)les* which is enough for the entire simulation. The results are listed in Ta)le 0.+* Ta)le 0.4 and Ta)le 0.1. The 4ormal case is supposed to illustrate a real simulation from the dail! life. Normall! the sensor inputs are in a moderate amount most of the time =see ta)le 0.->. Some lanes ha;e more traffic and other less. A consistent and continuous pedestrian traffic is assumed* with an e;en distri)ution o;er the corners of the intersection. Trams tend to come and go from north)ound direction. The set of input ;alues are chosen in a wa! so no duplicated tram reAuests can occur in an! simulations* that is* a tram can onl! reAuest one direction. The input ;alues for time periods F and 5 all ha;e inputs set to zero. The reason for this is to ;erif! the ending of the simulation without an! new inputs +2
affecting the result. The results are listed in Ta)le 0.+* Ta)le 0.4 and Ta)le 0.1. Ta)le 0.-/ Input ;alues for 4ormal case empt! cells ha;e ;alue ,
Inputs from pedestrians i*01 &. &1 &2 &3 &" &$ &% &' &( &2 Inputs from trams i&01 &. &1 &2 &3 &" &$ &% &' &( &2 Inputs from road sensors i/01 &. &1 &2 &3 &" &$ &% &' &( &2 1 1 1 1 1 1 1 1 1 i/0 1 i/0S 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i/10 i/1S i/ 01 i/ S i/S1 1 i/S0 1 1 1 1 1 1 1 1 1 1 1 i&0 i&0S i&10 1 i&1 i& 0 i& 1 i& S i&S0 1 i&S 1 1 1 1 1 1 1 1 1 1 1 1 1 1 i*02 i*03 1 1 1 1 1 i*11 i*12 i*13 1 1 1 1 1 1 1 1 1 i* i*S1 i*S2 i*S3 1
+1
The following two simulations are less authentic the real world* the! can occur although not often. Khat *orst case one and *orst case two ha;e in common is that the! )oth onl! ha;e input ;alues in the first time period. The following time periods are free from an! reAuests to a;oid simulation interference. Ten time periods are used to get a complete ;iew of the sol;ed pro)lem. Goth cases ha;e all pedestrian and road ;ehicle reAuests set in the )eginning. The difference )etween the cases is the t!pe of reAuests coming from the trams. In *orst case one there is one tram on either side of the intersection waiting to go straight. These are TNS* TK%* T%K and TSN. In *orst case two* there are trams that intend to turn* resulting in more traffic )eing )locBed. These trams are TN%* TKN* T%S and TS%. The )est predicted dri;e order from *orst case one would )e 0* F* -+ and -?. This is for the first four time periods* followed )! two random dri;e orders. *orst case two reAuires siD time periods with dri;e orders of 2* 1* 0 or -,* F or --* -+ and -?. Note that some dri;e orders can complement each other to some eDtend. The results are listed in Ta)le 0.?* Ta)le 0.2 and Ta)le 0.0. Note that all simulations for each time period are dependent on the pre;ious eDecuted dri;e order. 6resent inputs with new and older prioritised reAuest ;alues will change the outcome in e;er! new time period. Also unpredicta)le results can occur along longer simulation time.
+0
Ta)les 0.+/ Standard GA on computer for "#ample case and 4ormal case
Standard GA -ample case *1 *2 *3 *" *$ )f &. 8 12 4 7 7 7 7 7 7 7 7 8 5 13 13 13 13 13 13 13 13 7 7 7 7 7 7 7 7 7 11 11 0 9 0 56 70 38 0 0 0 0 0 0 0 &. &2 &3 &$ &' 5 7 8 5 6 &1 10 &2 15 &3 15 &" 15 &$ 15 &% 15 &' 15 &( 15 &2 15 12 14 Standard GA 0ormal case *1 *2 *3 *" *$ )f 12 12 12 13 6 10 7 7 5 5 5 6 9 5 5 5 8 8 13 13 13 10 11 11 12 12 12 7 3 7 9 3 0 8 8 103 8 159 8 236 8 228 8 216 10 188 6 240 4 156 7 136 &1 13 12
13 15 13 15 13 15 13 15 13 15 13 15 13 15
&" 12 13 &% 13
10 15 11 202
&( 11 10 &2 10 15
*orst case one is almost as predicta)le* resulting in seAuence 03F3-+ and -?. In *orst case two it was predicted in the first time period T2 that four more dri;e orders were needed to sol;e the pro)lem. A closer looB in Ta)le 0.? re;eals that the pro)lem onl! )ecomes sol;ed in time period T%* rather than T=. In other words* one additional time period was needed to complete the simulation. Notice that dri;e order -? is first predicted in (1 for se;eral time periods. The reason for this is that the condition in each time period is affected )! pre;ious dri;e orders and new incoming reAuests. Ta)les 0.?/ Standard GA on computer for )oth worst cases
Standard GA 1orst case 1 *1 *2 *3 *" *$ )f &. &1 7 8 8 12 14 7 12 5 5 5 5 5 5 5 5 12 12 12 12 12 12 12 9 11 8 13 13 13 13 13 13 13 1 187 6 274 0 162 3 126 3 3 3 3 3 3 0 0 0 0 0 0 &. 5 12 13 5 5 5 5 5 5 5 Standard GA 1orst case 2 *1 *2 *3 *" *$ )f 13 7 6 6 6 7 5 5 5 5 5 11 6 11 180 8 240 8 230 8 238 12 166 12 12 12 12 0 0 0 0 &1 12 13 &2 11 13 &3 10 13 &" 6 13 0 0 0 0 0 &$ 13 &% 13 &' 13 &( 13 &2 13 11 10 15 240 10 15 8 11 13 13 13 13 13 12 0 5 5 5 5 5
Ta)les 0.4/ Standard GA on microcontroller for "#ample case and 4ormal case
Standard GA -ample case *1 *2 *3 *" *$ )f &. 10 &1 15 &2 8 &3 16 &" 16 &$ 16 &% 16 &' 16 &( 16 &2 16 8 8 0 0 0 0 0 0 0 7 12 0 0 0 0 0 0 0 13 8 9 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 3 5 0 0 0 0 0 0 0 51 46 0 0 0 0 0 0 0 &. 12 &1 &2 &3 &$ 5 8 7 5 12 14 53 Standard GA 0ormal case *1 *2 *3 *" *$ )f 5 10 10 5 7 9 9 13 6 8 7 5 3 6 1 5 9 10 13 11 12 4 9 12 1 9 102 3 139 2 199 4 274 9 203 13 230 5 304 5 330 3 192 14 11
12 14
13 12 12 13 6
&" 11
13 14 266
11 10
11 10 11 10
13 11
The general impression is that the microcontrolled Standard GA ha;e slightl! lower performance than the computed one. This is eDpected as it is affected )! man! more elitisms. The dri;e order seAuences for the microcontrolled Standard GA are different to )oth computed Standard GA and FS ;ersion. The fitness ;alues are also lower than in the other ;ersions* )ut not far )ehind the computed ones.
finish was a)out - minute and 2, seconds* or a)out -- seconds per time period. Ta)le 0.1/ FS ;ersion for "#ample case and 4ormal case
D#S !ersion -ample case *1 *2 *3 *" *$ )f &. 8 10 9 5 5 5 5 5 5 5 5 9 10 12 12 12 12 12 12 12 12 10 9 5 5 5 5 5 5 5 5 9 10 11 11 11 11 11 11 11 11 10 63 4 0 0 0 0 0 0 0 0 78 38 0 0 0 0 0 0 0 &. &2 &3 5 8 7 &1 10 &2 15 &3 15 &" 15 &$ 15 &% 15 &' 15 &( 15 &2 15 &1 12 D#S !ersion 0ormal case *1 *2 *3 *" *$ )f 12 8 7 13 5 13 6 5 8 7 13 5 5 13 6 10 7 13 5 13 6 10 5 9 8 5 11 7 10 4 11 9 10 7 108 11 178 0 202 4 270 8 224 4 253 0 292 0 319 10 324 4 194
11 12
11 10
11 10
In the "#ample case outlined in Ta)le 0.1 the seAuence F3-,3-2 is eDpected. All other num)ers ha;e no effect e;en though the! happen to )e in repeating order all the wa!. This is an effect in all FS simulations. After T$ no time period will ha;e an! effecti;eness. The 4ormal case uses almost the same dri;e orders as the computed Standard GA* onl! in a slightl! different order. Ta)le 0.0/ FS ;ersion for )oth worst cases
D#S !ersion 1orst case 1 *1 *2 *3 *" *$ )f &. &1 8 7 7 13 5 5 5 5 5 5 5 13 5 5 12 12 12 12 12 12 12 5 12 12 5 5 5 5 5 5 5 12 5 5 11 11 11 11 11 11 11 4 193 11 238 11 164 0 126 0 0 0 0 0 0 0 0 0 0 0 0 &. 12 &1 &3 5 6 &2 11 D#S !ersion 1orst case 2 *1 *2 *3 *" *$ )f 5 11 6 11 6 6 13 9 10 9 9 9 9 9 13 7 9 10 9 10 10 10 10 10 3 187 8 262 10 259 4 256 10 190 4 102 4 4 4 4 0 0 0 0
13 10 9 10 10 10 10 10
13 10 9 9 9 9 9
The results for *orst case one in Ta)le 0.0 show eDcellent result with eDecuted seAuence F303-?3-+. *orst case two has the same dri;e orders as the computed Standard GA* onl! in a different seAuence order.
?,
?-
Finall! in *orst case two a ;er! eAual performance is shown with onl! slightl! higher fitness ;alue in the FS ;ersion. The microcontrolled Standard GA performs ;er! well through the entire simulation* e;en slightl! )etter than the FS ;ersion in the ending. In T$ and T5 the fitness ;alue of the computed Standard GA is slightl! lower then the others. These results in much higher fitness ;alue in T= and T% compared to )oth the microcontrolled Standard GA and the FS ;ersion. Goth computed and microcontrolled Standard GA manage to a;oid getting stucB in Nlocal optimumO. A local optimum is a N)elie;edO good solution or result that is far from the reall! good one. It is pro;en )! the maDimum fitness ;alue* which will )e significant lower than the FS ;ersion fitness ;alue. If a search space could )e presented in a graph* it would appear as a mountain chain in the horizon with peaBs and ;alle!s. Khere the !3aDle is the fitness* represented )! the height of the mountains and horizon is the D3aDle. Although the highest peaB holds the )est solution* lower peaBs can mislead a GA to )elie;e the! actuall! are the highest peaB. A GA is more liBel! to continue clim)ing on the peeB it )elie;es is )eing the )est one. All simulations here do show what dri;e orders are )est for this particular intersection. It is possi)le to figure out good solutions directl! from the rules. ri;e orders 2* 1* 0* F* -+* -? and -2 are most usa)le and the )est seAuence to use in theor! is 03-?323-+3F according to the seAuence rules. Of all -1 dri;e orders some of them are rarel! or almost ne;er used as ,* -* +* ?* 4 and -4. This is )ecause their configuration easil! can )e replaced )! the others. A )rief conclusion of these simulations is summarised in Chapter F.-.
?+
350
Time peri! s
Figure 0.F/ "#ample case and 4ormal case with comparing )oth Standard GA and FS ;ersion
300
Time peri! s
Figure 0.5/ *orst case one and two with comparing )oth Standard GA and FS ;ersion
??
?4
( Conclusion
The nature of this traffic intersection )ecomes rather simple due to safet! reason. Although* it turn out to gain enough compleDit! when a seAuence of time periods are considered. Important to point out that more worB is reAuired for further impro;ements* the results from this thesis esta)lishes that Standard GA do worBs as eDpected. The test of implementing a microcontroller also turns out well.
Self learning is somewhat used in a simplified wa! in this worB )! storing good indi;iduals for future use. This method maBes it faster to looB for )etter solutions. It could )e eDtended in this worB. Otherwise it worBs well despite )eing ;er! simple. $ore ro)ust functionalit! is needed for direct control in the realit!. Things to impro;e include rules settings in the e;aluation function* and con;ert the hardware ;ersion of this simulation program into a real controller program.
(.3 Summar,
The result from this thesis ma! not contain a final solution* for eDample a hardware implementation read! to use* its onl! sta!s on simulation programs. Otherwise* it could )e seen as a tool or an optional idea for further de;elopment into similar pro)lems in the future. G! their nature* GAs has a somewhat unpredicted )eha;iour that ma! not fit in safet! critical en;ironments. Thus* whether or not to recommend direct control for the intersection is not straight forward. In guidance for de;elopments GA are reall! good. This is not a common area where not man! attempts are done. Usages of GAs are almost occurring in scientific area as research or optimization. A)out putting GA into a microcontroller is not ;er! common. The papers with scientific implementation of GAs on F6GAs are toda! old. The! where successful )! then and should )e e;en toda!. One aim in this worB is how to mo;e out the GAs to the real outside world for different needs. A conclusion so far is still not man! reasons to do that. Traffic intersection is )etter to )e de;eloped )! GA rather than controlled from it after all. In other hand this need of GA ma! groo;ing in the future. For eDample a hand held de;ices in car na;igator might need to sol;e Tra;elling Salesmen 6ro)lem =TS6>* which is commonl! sol;ed )! GA. The most interesting disco;er! is the constrained rules. It was hard to predict from the )eginning and a surprise when it was disco;ered. Otherwise the lesson from this is good and important to ha;e in mind when defining GA for certain pro)lems. %n;ironmental )enefits )ehind intersection control are )etter traffic flow and sa;ing time and pollution. $ost scientific worB with GA do traffic flow impro;ements through se;eral intersections* in some real cities around the world. AdCacent intersections where not considered in this worB. Is not that much worB on this area in general* and not man! other worBs to reference. Almost all scientific worBs referring to one single )ooB JGold)erg* -5F5L* that is the first real description a)out GAs. $ost of these simulation programs and rules de;eloping is made from the )eginning. At last the worB of this master:s thesis has )eing ;er! interesting to worB with. Se;eral new ideas and impro;ements to this worB ha;e coming up along the wa!. Otherwise* this worB will )e considered as good enough.
?1
2 /eferences
2.1 3ooks
JGold)erg* -5F5L Gold)erg* . %.* -5F5. ?enetic algorithm in search, optimi@ation an) machine learning/ 6u)lisher/ Addison3Kesle!. JStuart M Nor;ig* +,,?L Stuart* &. M Nor;ig* 6.* +,,?. <rtificial Intelligence < Mo)ern <pproach/ +nd ed. 6u)lisher/ 6rentice "all. JKahde* +,,FL Kahde* $.* +,,F. Aiologically inspire) optimi@ation metho)s an intro)uction/ Southampton/ KIT 6ress.
2.2 Documents
JAporntewan M Chongstit;atana* +,,-L Aporntewan* C. and Chongstit;atana* 6.* +,,-. A hardware Implementation Of The Compact Genetic Algorithm* -* pp. 1+4U1+5 JFissgusL Fissgus* U.* Scheduling Using Genetic Algorithms. JGuan* et al.* +,,FL Guan* V.* (ang* W.* Kang* (.* "u* J.* Vin* J.* +,,F. &esearch on the Coordination Optimization $ethod )etween Traffic Control and Traffic Guidance )ased on Genetic Algorithm* pp. ?+,3?+2. J$a* et al.* +,,4L $a* K.* Cheu* &. #.* #ee* 3".* +,,4. Scheduling of #ane Closures Using Genetic Algorithms with Traffic Assignments and istri)uted Simulations* Bournal of Transportation "ngineering* $a! -* -?, =?>* pp. ?++3?+5. JShacBleford* et al.* +,,-L ShacBleford* G.* Snider* G.* Carter* &.* OBushi* %.* (asuda* $.* Seo* E.* (asuura* ".* +,,-. A "igh36erformance* 6ipelined* F6GA3Gased Genetic Algorithm $achine* ?enetic (rogramming <n) "!ol!able Machines, +* pp. ??31, JTurB!* et al.* +,,5L TurB!* A. $.* Ahmad* $.S.* (usoff* $.W.$.* "ammad* G. T.* +,,5. Using Genetic Algorithm for Traffic #ight Control S!stem with a 6edestrian Crossing* pp. 2-+U2-5.
?0
J(ang* et al.* +,,1L (ang* W.* "uang* T.* #iu* ".* Tiang* C.* +,,1. $ulti3phase Traffic Signal Control for Isolated Intersections Gased on Genetic Fuzz! #ogic* pp. ??5-3??52. J(oonL (oon* J. 6.* TechniAues for ata and &ule 'alidation in Enowledge Gased S!stems* Department of "lectrical "ngineering Cni!ersity of 'lori)a, ?aines!ille, 'D 5$-1 I * pp. 1+30,.
2.3 Internet
JAlteraL A;aila)le at/ http/77www.altera.com7 JAccessed -5 $a! +,-,L. JAtmelL A;aila)le at/ http/77www.atmel.com7 JAccessed -5 $a! +,-,L. JAtmel ATmega-1L Atmel Corporation* +,,5. 8Ebit Microcontroller with 1-F Aytes InESystem (rogrammable 'lash, Jinternet L Atmel Corporation* A;aila)le at/ http/77www.atmel.com7d!n7resources7prodXdocuments7doc+411.pdf JAccessed -5 $a! +,-,L. JAtmel STE2,,L A;aila)le at/ http/77www.atmel.com7d!n7products7toolsXcard.aspYtoolXidR+0?2 JAccessed -5 $a! +,-,L. J'" #L A;aila)le at/ http/77www.eda.org7;asg7 JAccessed +, June +,-,L. JTilinDL A;aila)le at/ http/77www.DilinD.com7 JAccessed -5 $a! +,-,L.
?F
1. Appendi-
Traffic intersection drive orders chart Mathematical fitness functions Propositional logic for outputs Propositional logic for drive order sequence Program windows of tandard !A Program windows of D" version Program code of tandard !A Program code of D" version
?5
4,
4-
4+
4?
ri;e order --/ cnInputs = I(41 & I(4$ & I(45 & I(*$ & I(S1 & I(S$ & I(S5 & $I3"4* & $I3*S" ri;e order -+/ cnInputs = I(4$ & I(45 & I(*1 & I(*$ & I(*5 & I(" & I(S1 & I(S$ & $I34" & $I3S* ri;e order -?/ cnInputs = I(41 & I(4$ & I(45 & I(*1 & I(*$ & I(S1 & I(S$ & I(S5 & $I3*4 & $I3"S ri;e order -4/ cnInputs = ITS" & IT"S & I(41 & I(4$ & I(45 & I(*1 & I(*$ & I(*5 & I(S1 & I(S5 & I3"S ri;e order -2/ cnInputs = IT4" & IT"4 & I(41 & I(45 & I(*1 & I(*$ & I(S1 & I(S$ & I(S5 & $I3*S"
44
42
ri;e order --/ "11 ; +(41 7 +(4$ 7 +(45 7 +(*$ 7 +(S1 7 +(S$ 7 +(S5 7 +3"4* 7 +3*S" ri;e order -+/ "1$ ; +(4$ 7 +(45 7 +(*1 7 +(*$ 7 +(*5 7 +(" 7 +(S1 7 +(S$ 7 +34" 7 +3S* ri;e order -?/ "15 ; +(41 7 +(4$ 7 +(45 7 +(*1 7 +(*$ 7 +(S1 7 +(S$ 7 +(S5 7 +3*4 7 +3"S ri;e order -4/ "1= ; +TS" 7 +T"S 7 +(41 7 +(4$ 7 +(45 7 +(*1 7 +(*$ 7 +(*5 7 +(S1 7 +(S5 7 +3"S ri;e order -2/ "1% ; +T4" 7 +T"4 7 +(41 7 +(45 7 +(*1 7 +(*$ 7 +(S1 7 +(S$ 7 +(S5 7 +3*S"
41
40
4F
Appendi-
Two printout windows and the first window are Figure %.A and last window Figure %.G.
Figure %.A/ 6rint out image one with *orst case one results
45
Figure AppendiD %.G/ 6rint out image two with *orst case one results
2,
Figure F.A/ 6rint out image one with 4ormal case results
2-
Figure F.G/ 6rint out image two with 4ormal case results
2+
2?
)reaBI case -/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR -> ^points R points 3 2I_ )reaBI case +/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR +> ^points R points 3 2I_ )reaBI case ?/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR ?> ^points R points 3 2I_ )reaBI case 4/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -+>> ^points R points < +I_ if=pre;iousOrder RR 4> ^points R points 3 2I_ )reaBI case 2/ if==pre;iousOrder RR -+> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 2> ^points R points 3 2I_ )reaBI case 1/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 1> ^points R points 3 2I_ )reaBI case 0/ if==pre;iousOrder RR F> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 0> ^points R points 3 2I_ )reaBI case F/ if==pre;iousOrder RR 0> `` =pre;iousOrder RR -+>> ^points R points < +I_ if=pre;iousOrder RR F> ^points R points 3 2I_ )reaBI case 5/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -4>> ^points R points < +I_ if=pre;iousOrder RR 5> ^points R points 3 2I_ )reaBI case -,/ if==pre;iousOrder RR F> `` =pre;iousOrder RR 5>> ^points R points < +I_ if=pre;iousOrder RR -,> ^points R points 3 2I_ )reaBI case --/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ if=pre;iousOrder RR --> ^points R points 3 2I_ )reaBI case -+/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR F>> ^points R points < +I_ if=pre;iousOrder RR -+> ^points R points 3 2I_ )reaBI case -?/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ if=pre;iousOrder RR -?> ^points R points 3 2I_ )reaBI case -4/ if==pre;iousOrder RR 5> `` =pre;iousOrder RR -+>> ^points R points < +I_ if=pre;iousOrder RR -4> ^points R points 3 2I_ )reaBI case -2/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR -2> ^points R points 3 2I_ )reaBI _ if=i RR ,> ^f R 1ZpointsI_ if=i RR -> ^f R f < 2ZpointsI_ if=i RR +> ^f R f < 4ZpointsI_ if=i RR ?> ^f R f < ?ZpointsI_ if=i RR 4> ^f R f < +ZpointsI_ if=i RR 2> ^f R f < pointsI_ if=i RR , MM points \R +> ^p R -I_ _ if=p RR -> ^f R ,I_77if p- R , 3] f R , return fI _ ;oid &eturn&esult=int )est6arameter'alue-* int )est6arameter'alue+* int )est6arameter'alue?* int )est6arameter'alue4* int )est6arameter'alue2* int )est6arameter'alue1* int input'alueJ+5L* int maDFitness> ^ int f R ,* D R ,* points R ,* pre;iousOrderI int i6N- R input'alueJ,LI int i6N+ R input'alueJ-LI int i6N? R input'alueJ+LI int i6K- R input'alueJ?LI int i6K+ R input'alueJ4LI int i6K? R input'alueJ2LI
int i6% R input'alueJ1LI int i6S- R input'alueJ0LI int i6S+ R input'alueJFLI int i6S? R input'alueJ5LI int iTNK R input'alueJ-,LI int iTN% R input'alueJ--LI int iTNS R input'alueJ-+LI int iTKN R input'alueJ-?LI int iTK% R input'alueJ-4LI int iT%N R input'alueJ-2LI int iT%K R input'alueJ-1LI int iT%S R input'alueJ-0LI int iTSN R input'alueJ-FLI int iTS% R input'alueJ-5LI int i&NK R input'alueJ+,LI int i&N% R input'alueJ+-LI int i&NS R input'alueJ++LI int i&KN R input'alueJ+?LI int i&KS% R input'alueJ+4LI int i&%NK R input'alueJ+2LI int i&%S R input'alueJ+1LI int i&SK R input'alueJ+0LI int i&SN% R input'alueJ+FLI printf=abn 666 666 6 666 TTT TT TTT TT &&& && && &&bna>I printf=a NNN KKK % SSS NNN KK %%% SS NNN KK %% SSbna>I printf=a -+? -+? -+? K%S N% NKS N% K%S NS NS KNbna>I printf=a ``` ``` ` ``` ``` `` ``` `` ``` `% K` `%bna>I printf=ai PdPdPd.PdPdPd.Pd.PdPdPd / PdPdPd.PdPd.PdPdPd. PdPd / PdPdPd.PdPd.PdPd.PdPd $aD fitness/ Pdbna* i6N-* i6N+* i6N?* i6K-* i6K+* i6K?* i6%* i6S-* i6S+* i6S?* iTNK* iTN%* iTNS* iTKN* iTK%* iT%N* iT%K* iT%S* iTSN* iTS%* i&NK* i&N%* i&NS* i&KN* i&KS%* i&%NK* i&%S* i&SK* i&SN%* maDFitness>I for=int i R ,I i \R 1 3 -I i<<> ^ pre;iousOrder R DI if=i RR ,> ^D R )est6arameter'alue-I_ if=i RR -> ^D R )est6arameter'alue+I_ if=i RR +> ^D R )est6arameter'alue?I_ if=i RR ?> ^D R )est6arameter'alue4I_ if=i RR 4> ^D R )est6arameter'alue2I_ if=i RR 2> ^D R )est6arameter'alue1I_ points R ,I 77Inputs functions calculations switch=D> ^ case ,/ points R iTNK < iT%N < iTS% < i6N- < i6N+ < i6N? < i6S- < i6S? < i&NKI iTNK R ,I iT%N R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case -/ points R iTNK < iT%N < iTK% < i6N? < i6K- < i6S- < i6S+ < i6S? < i&KS%I iTNK R ,I iT%N R ,I iTK% R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case +/ points R iTNS < iT%N < iTS% < i6K- < i6K+ < i6K? < i6N? < i6S? < i&NK < i&NSI iTNS R ,I iT%N R ,I iTS% R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6N? R ,I i6S? R ,I i&NK R ,I i&NS R ,I )reaBI case ?/ points R iTNK < iTSN < i6K- < i6K? < i6% < i6S< i&NK < i&SN%I iTNK R ,I iTSN R ,I i6K- R ,I i6K? R ,I i6% R ,I i6S- R ,I i&NK R ,I i&SN% R ,I )reaBI case 4/ points R iT%K < iTS% < i6N- < i6N+ < i6N? < i6K? < i6S- < i6S? < i&%NKI iT%K R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N?R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%NK R ,I )reaBI case 2/ points R +ZiTNK < +ZiTKN < +ZiT%S < +ZiTS% < i6N? < i6K- < i6K? < i6S- < i6S? < i&NKI iTNK R ,I iTKN R ,I iT%S R ,I iTS% R ,I i6N? R ,I i6K- R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case 1/ points R +ZiTN% < 4ZiT%N < i6N? < i6K- < i6K+ < i6K? < i6S+ < i6S? < i&NK < i&NS < i&N%I iTN% R ,I iT%N R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6S? R ,I i&NK R ,I i&NS R ,I i&N% R ,I )reaBI case 0/ points R +ZiTNS < +ZiTSN < i6K- < i6K+ < i6K? < i6% < i&NK < i&NS < i&SN%I iTNSR ,I iTSN R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case F/ points R +ZiTK% < +ZiT%K < i6N- < i6N+ < i6N? < i6S- < i6S+ < i6S? < i&%NK < i&KS%I iTK% R ,I iT%K R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I
24
)reaBI case 5/ points R iTNK < iTKN < i6N- < i6N? < i6K- < i6S- < i6S+ < i6S? < +Zi&KN < i&KS%I iTNK R ,I iTKN R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&KS% R ,I )reaBI case -,/ points R i6N+ < i6K- < i6K+ < i6K? < i6S+ < i6% < i&NK < i&NS < +Zi&SN%I i6N+ R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case --/ points R i6N- < i6N+ < i6N? < i6K+ < i6S- < i6S+ < i6S? < +Zi&%NK < +Zi&KS%I i6N- R ,I i6N+ R ,I i6N? R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case -+/ points R i6N+ < i6N? < i6K- < i6K+ < i6K? < i6% < i6S- < i6S+ < +Zi&N% < +Zi&SKI i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i6S- R ,I i6S+ R ,I i&N% R ,I i&SK R ,I )reaBI case -?/ points R i6N- < i6N+ < i6N? < i6K- < i6K+ < i6S- < i6S+ < i6S? < +Zi&KN < +Zi&%SI i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&%S R ,I )reaBI case -4/ points R iTS% < iT%S < i6N- < i6N+ < i6N? < i6K< i6K+ < i6K? < i6S- < i6S? < i&%SI iTS% R ,I iT%S R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%S R ,I )reaBI case -2/ points R iTN% < iT%N < i6N- < i6N? < i6K- < i6K+ < i6S- < i6S+ < i6S? < +Zi&KS%I iTN% R ,I iT%N R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case -1/ points R ,I )reaBI _ 776re;ious order calculations switch=D> ^ case ,/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case -/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case +/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case ?/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 4/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case 2/ if==pre;iousOrder RR -+> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 1/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 0/ if==pre;iousOrder RR F> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case F/ if==pre;iousOrder RR 0> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case 5/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -4>> ^points R points < +I_ )reaBI case -,/ if==pre;iousOrder RR F> `` =pre;iousOrder RR 5>> ^points R points < +I_ )reaBI case --/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ )reaBI case -+/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR F>> ^points R points < +I_ ^points R points < +I_
)reaBI case -?/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> )reaBI case -4/ if==pre;iousOrder RR 5> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case -2/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case -1/ 77 )reaBI _ if=i RR ,> ^f R 1ZpointsI_ if=i RR -> ^f R f < 2ZpointsI_ if=i RR +> ^f R f < 4ZpointsI_ if=i RR ?> ^f R f < ?ZpointsI_ if=i RR 4> ^f R f < +ZpointsI_ if=i RR 2> ^f R f < pointsI_ printf=acPd PdPdPd.PdPdPd.Pd.PdPdPd / PdPdPd.PdPd. PdPdPd.PdPd / PdPdPd.PdPd.PdPd.PdPd Order R P+d 6oints R P+dbna* i<-* i6N-* i6N+* i6N?* i6K-* i6K+* i6K?* i6%* i6S-* i6S+* i6S?* iTNK* iTN%* iTNS* iTKN* iTK%* iT%N* iT%K* iT%S* iTSN* iTS%* i&NK* i&N%* i&NS* i&KN* i&KS%* i&%NK* i&%S* i&SK* i&SN%* D *points>I _ printf=abna>I 77Output print out switch=)est6arameter'alue-> ^ case ,/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oT%N* oTS%* o6N-* o6N+* o6N?* o6S-* o6S?* o&NKbna* )est6arameter'alue->I )reaBI case -/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oT%N* oTK%* o6N?* o6K-* o6S-* o6S+* o6S?* o&KS%bna* )est6arameter'alue->I )reaBI case +/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNS* oT%N* oTS%* o6K-* o6K+* o6K?* o6N?* o6S?* o&NK* o&NSbna* )est6arameter'alue->I )reaBI case ?/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTSN* o6K-* o6K?* o6%* o6S-* o&NK* o&SN%bna* )est6arameter'alue->I )reaBI case 4/ printf=a%Decuting reAuests on dri;e order Pd/bnoT%K* oTS%* o6N-* o6N+* o6N?* o6K?* o6S-* o6S?* o&%NKbna* )est6arameter'alue->I )reaBI case 2/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTKN* oT%S* oTS%* o6N?* o6K-* o6K?* o6S-* o6S?* o&NKbna* )est6arameter'alue->I )reaBI case 1/ printf=a%Decuting reAuests on dri;e order Pd/bnoTN%* oT%N* o6N?* o6K-* o6K+* o6K?* o6S+* o6S?* o&NK* o&NS* o&N%bna* )est6arameter'alue->I )reaBI case 0/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNS* oTSN* o6K-* o6K+* o6K?* o6%* o&NK* o&NS* o&SN%bna* )est6arameter'alue->I )reaBI case F/ printf=a%Decuting reAuests on dri;e order Pd/bnoTK%* oT%K* o6N-* o6N+* o6N?* o6S-* o6S+* o6S?* o&%NK* o&KS%bna* )est6arameter'alue->I )reaBI case 5/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTKN* o6N-* o6N?* o6K-* o6S-* o6S+* o6S?* o&KN* o&KS%bna* )est6arameter'alue->I )reaBI case -,/ printf=a%Decuting reAuests on dri;e order Pd/bno6N+* o6K-* o6K+* o6K?* o6S+* o6%* o&NK* o&NS* o&SN%bna* )est6arameter'alue->I )reaBI case --/ printf=a%Decuting reAuests on dri;e order Pd/bno6N-* o6N+* o6N?* o6K+* o6S-* o6S+* o6S?* o&%NK* o&KS%bna* )est6arameter'alue->I )reaBI case -+/ printf=a%Decuting reAuests on dri;e order Pd/bno6N+* o6N?* o6K-* o6K+* o6K?* o6%* o6S-* o6S+* o&N%* o&SKbna* )est6arameter'alue->I )reaBI case -?/ printf=a%Decuting reAuests on dri;e order Pd/bno6N-* o6N+* o6N?* o6K-* o6K+* o6S-* o6S+* o6S?* o&KN* o&%Sbna* )est6arameter'alue->I )reaBI case -4/ printf=a%Decuting reAuests on dri;e order Pd/bnoTS%* oT%S* o6N-* o6N+* o6N?* o6K-* o6K+* o6K?* o6S-* o6S?* o&%Sbna* )est6arameter'alue->I )reaBI case -2/
22
printf=a%Decuting reAuests on dri;e order Pd/bnoTN%* oT%N* o6N-* o6N?* o6K-* o6K+* o6S-* o6S+* o6S?* o&KS%bna* )est6arameter'alue->I )reaBI case -1/ printf=a o not eDecuting an! dri;e order.bna>I )reaBI _ printf=abna>I _ int TournamentSelect=int fitnessJ?,L* int populationSize* float tournament6ro)a)ilit!> ^ int ind;I int itemp- R - < rand=> P=populationSize 3 ->I int itemp+ R - < rand=> P=populationSize 3 ->I float r R ,I int ri R ,I ri R rand=> P55I r R ==float>ri7-,,>I if=r \R tournament6ro)a)ilit!> ^ if=fitnessJitemp-L ]R fitnessJitemp+L> ^ ind; R itemp-I _ else ^ ind; R itemp+I _ _ else ^ if=fitnessJitemp-L ]R fitnessJitemp+L> ^ ind; R itemp+I _ else ^ ind; R itemp-I _ _ return ind;I _ float &andFunBtion=;oid> ^ float r R ,I int ri R rand=> P55I return r R ==float>ri7-,,>I _ ;oid 6rintOutFunBtion=int msgOrder* int num)er%;alutaions6erformed* int generationN)r* int maDFitness* int )est6arameter'alue-* int )est6arameter'alue+* int )est6arameter'alue?* int )est6arameter'alue4* int )est6arameter'alue2* int )est6arameter'alue1> ^ if=msgOrder RR ,> ^ printf=aStart bna>I _ else if=msgOrder RR -> ^ printf=aGeneration/ P?d %;aluation/ P?d $aD fitness/ P?d bna* generationN)r* num)er%;alutaions6erformed* maDFitness>I _ else if=msgOrder RR +> ^ printf=a&esult generation P?d/ c- R Pd c+ R Pd c? R Pd c4 R Pd c2 R Pd c1 R Pd Fitness R Pdbna* generationN)r* )est6arameter'alue-* )est6arameter'alue+* )est6arameter'alue?* )est6arameter'alue4* )est6arameter'alue2* )est6arameter'alue1* maDFitness>I _ else if=msgOrder RR ?> ^ printf=abn%nd or Termination Criterion is reached. bnbna>I _ else ^ printf=a%rrorcbnbna>I _ _ int main=> ^ int populationSize R ?,I int num)erOfGenes R +4I int num)erOfChromosomes R 1I float crosso;er6ro)a)ilit! R ,.F2I float mutation6ro)a)ilit! R ,.,?I float tournament6ro)a)ilit! R ,.5,I int input'alueJ+5LI int input'aluesJ-,LJ+5LI77 JRsimLJ+5L int maDGeneration R -,,I int num)er%;alutaions6erformed R ,I int maDFitness R ,I int total$aDFitness R ,I int fitnessJpopulationSizeLI
int populationJpopulationSizeLJnum)erOfGenesLI int temp6opulationJpopulationSizeLJnum)erOfGenesLI int goodIndi;idualsJpopulationSizeLJnum)erOfGenesLI int newIndi;idual-Jnum)erOfGenesLI int newIndi;idual+Jnum)erOfGenesLI int tempIndi;idualJnum)erOfGenesLI int parameter'alue- R ,I int parameter'alue+ R ,I int parameter'alue? R ,I int parameter'alue4 R ,I int parameter'alue2 R ,I int parameter'alue1 R ,I int )estIndu;idual R ,I int )est6arameter'alue- R ,I int )est6arameter'alue+ R ,I int )est6arameter'alue? R ,I int )est6arameter'alue4 R ,I int )est6arameter'alue2 R ,I int )est6arameter'alue1 R ,I int pre;ious%Dcecution R -1I77Store c- =%> from pre;ious time period int sim R -,I77Num)er of simulations 77 Other ;aria)les int generationN)r* i R ,* C R ,* h R ,* ind;-* ind;+I float r R ,I int msgOrder R ,* m%Int R ,I float m%float R ,I for=C R ,I C \R +FI C<<> ^ input'alueJCL R ,I _ for=i R ,I i \R sim 3 -I i<<> ^ for=C R ,I C \R +FI C<<> ^ input'aluesJiLJCL R ,I _ _ 77Onl! 2 first is filled with inputs 77Init input'alue , input'aluesJ,LJ,L R -I 7Z 6N- Z7 input'aluesJ,LJ-,L R ,I 7Z TNK Z7 input'aluesJ,LJ+,L R -I 7Z &NK Z7 input'aluesJ,LJ-L R -I 7Z 6N+ Z7 input'aluesJ,LJ--L R ,I 7Z TN% Z7 input'aluesJ,LJ+-L R -I 7Z &N% Z7 input'aluesJ,LJ+L R -I 7Z 6N? Z7 input'aluesJ,LJ-+L R -I 7Z TNS Z7 input'aluesJ,LJ++L R -I 7Z &NS Z7 input'aluesJ,LJ?L R -I 7Z 6K- Z7 input'aluesJ,LJ-?L R ,I 7Z TKN Z7 input'aluesJ,LJ+?L R -I 7Z &KN Z7 input'aluesJ,LJ4L R -I 7Z 6K+ Z7 input'aluesJ,LJ-4L R -I 7Z TK% Z7 input'aluesJ,LJ+4L R -I 7Z &KS% Z7 input'aluesJ,LJ2L R -I 7Z 6K? Z7 input'aluesJ,LJ-2L R ,I 7Z T%N Z7 input'aluesJ,LJ+2L R -I 7Z &%NK Z7 input'aluesJ,LJ1L R -I 7Z 6% Z7 input'aluesJ,LJ-1L R -I 7Z T%K Z7 input'aluesJ,LJ+1L R -I 7Z &%S Z7 input'aluesJ,LJ0L R -I 7Z 6S- Z7 input'aluesJ,LJ-0L R ,I 7Z T%S Z7 input'aluesJ,LJ+0L R -I 7Z &SK Z7 input'aluesJ,LJFL R -I 7Z 6S+ Z7 input'aluesJ,LJ-FL R -I 7Z TSN Z7 input'aluesJ,LJ+FL R -I 7Z &SN% Z7 input'aluesJ,LJ5L R -I 7Z 6S? Z7 input'aluesJ,LJ-5L R ,I 7Z TS% Z7 77Init input'alue input'aluesJ-LJ,L R ,I 7Z 6N- Z7 input'aluesJ-LJ-,L R ,I 7Z TNK Z7 input'aluesJ-LJ+,L R ,I 7Z &NK Z7 input'aluesJ-LJ-L R ,I 7Z 6N+ Z7 input'aluesJ-LJ--L R ,I 7Z TN% Z7 input'aluesJ-LJ+-L R ,I 7Z &N% Z7 input'aluesJ-LJ+L R ,I 7Z 6N? Z7 input'aluesJ-LJ-+L R ,I 7Z TNS Z7 input'aluesJ-LJ++L R ,I 7Z &NS Z7 input'aluesJ-LJ?L R ,I 7Z 6K- Z7 input'aluesJ-LJ-?L R ,I 7Z TKN Z7 input'aluesJ-LJ+?L R ,I 7Z &KN Z7 input'aluesJ-LJ4L R ,I 7Z 6K+ Z7 input'aluesJ-LJ-4L R ,I 7Z TK% Z7 input'aluesJ-LJ+4L R ,I 7Z &KS% Z7 input'aluesJ-LJ2L R ,I 7Z 6K? Z7 input'aluesJ-LJ-2L R ,I 7Z T%N Z7 input'aluesJ-LJ+2L R ,I 7Z &%NK Z7 input'aluesJ-LJ1L R ,I 7Z 6% Z7 input'aluesJ-LJ-1L R ,I 7Z T%K Z7 input'aluesJ-LJ+1L R ,I 7Z &%S Z7 input'aluesJ-LJ0L R ,I 7Z 6S- Z7 input'aluesJ-LJ-0L R ,I 7Z T%S Z7 input'aluesJ-LJ+0L R ,I 7Z &SK Z7 input'aluesJ-LJFL R ,I 7Z 6S+ Z7 input'aluesJ-LJ-FL R ,I 7Z TSN Z7 input'aluesJ-LJ+FL R ,I 7Z &SN% Z7 input'aluesJ-LJ5L R ,I 7Z 6S? Z7 input'aluesJ-LJ-5L R ,I 7Z TS% Z7 77Init input'alue + input'aluesJ+LJ,L R ,I 7Z 6N- Z7 input'aluesJ+LJ-,L R ,I 7Z TNK Z7 input'aluesJ+LJ+,L R ,I 7Z &NK Z7 input'aluesJ+LJ-L R ,I 7Z 6N+ Z7 input'aluesJ+LJ--L R ,I 7Z TN% Z7 input'aluesJ+LJ+-L R ,I 7Z &N% Z7 input'aluesJ+LJ+L R ,I 7Z 6N? Z7 input'aluesJ+LJ-+L R ,I 7Z TNS Z7 input'aluesJ+LJ++L R ,I 7Z &NS Z7 input'aluesJ+LJ?L R ,I 7Z 6K- Z7 input'aluesJ+LJ-?L R ,I 7Z TKN Z7 input'aluesJ+LJ+?L R ,I 7Z &KN Z7 input'aluesJ+LJ4L R ,I 7Z 6K+ Z7 input'aluesJ+LJ-4L R ,I 7Z TK% Z7 input'aluesJ+LJ+4L R ,I 7Z &KS% Z7 input'aluesJ+LJ2L R ,I 7Z 6K? Z7 input'aluesJ+LJ-2L R ,I 7Z T%N Z7 input'aluesJ+LJ+2L R ,I 7Z &%NK Z7 input'aluesJ+LJ1L R ,I 7Z 6% Z7 input'aluesJ+LJ-1L R ,I 7Z T%K Z7 input'aluesJ+LJ+1L R ,I 7Z &%S Z7 input'aluesJ+LJ0L R ,I 7Z 6S- Z7 input'aluesJ+LJ-0L R ,I 7Z T%S Z7 input'aluesJ+LJ+0L R ,I 7Z &SK Z7 input'aluesJ+LJFL R ,I 7Z 6S+ Z7 input'aluesJ+LJ-FL R ,I 7Z TSN Z7 input'aluesJ+LJ+FL R ,I 7Z &SN% Z7
21
input'aluesJ+LJ-5L R ,I 7Z
77Init input'alue ? input'aluesJ?LJ,L R ,I 7Z 6N- Z7 input'aluesJ?LJ-,L R ,I 7Z TNK Z7 input'aluesJ?LJ+,L R ,I 7Z &NK Z7 input'aluesJ?LJ-L R ,I 7Z 6N+ Z7 input'aluesJ?LJ--L R ,I 7Z TN% Z7 input'aluesJ?LJ+-L R ,I 7Z &N% Z7 input'aluesJ?LJ+L R ,I 7Z 6N? Z7 input'aluesJ?LJ-+L R ,I 7Z TNS Z7 input'aluesJ?LJ++L R ,I 7Z &NS Z7 input'aluesJ?LJ?L R ,I 7Z 6K- Z7 input'aluesJ?LJ-?L R ,I 7Z TKN Z7 input'aluesJ?LJ+?L R ,I 7Z &KN Z7 input'aluesJ?LJ4L R ,I 7Z 6K+ Z7 input'aluesJ?LJ-4L R ,I 7Z TK% Z7 input'aluesJ?LJ+4L R ,I 7Z &KS% Z7 input'aluesJ?LJ2L R ,I 7Z 6K? Z7 input'aluesJ?LJ-2L R ,I 7Z T%N Z7 input'aluesJ?LJ+2L R ,I 7Z &%NK Z7 input'aluesJ?LJ1L R ,I 7Z 6% Z7 input'aluesJ?LJ-1L R ,I 7Z T%K Z7 input'aluesJ?LJ+1L R ,I 7Z &%S Z7 input'aluesJ?LJ0L R ,I 7Z 6S- Z7 input'aluesJ?LJ-0L R ,I 7Z T%S Z7 input'aluesJ?LJ+0L R ,I 7Z &SK Z7 input'aluesJ?LJFL R ,I 7Z 6S+ Z7 input'aluesJ?LJ-FL R ,I 7Z TSN Z7 input'aluesJ?LJ+FL R ,I 7Z &SN% Z7 input'aluesJ?LJ5L R ,I 7Z 6S? Z7 input'aluesJ?LJ-5L R ,I 7Z TS% Z7 77Init input'alue 4 input'aluesJ4LJ,L R ,I 7Z 6N- Z7 input'aluesJ4LJ-,L R ,I 7Z TNK Z7 input'aluesJ4LJ+,L R ,I 7Z &NK Z7 input'aluesJ4LJ-L R ,I 7Z 6N+ Z7 input'aluesJ4LJ--L R ,I 7Z TN% Z7 input'aluesJ4LJ+-L R ,I 7Z &N% Z7 input'aluesJ4LJ+L R ,I 7Z 6N? Z7 input'aluesJ4LJ-+L R ,I 7Z TNS Z7 input'aluesJ4LJ++L R ,I 7Z &NS Z7 input'aluesJ4LJ?L R ,I 7Z 6K- Z7 input'aluesJ4LJ-?L R ,I 7Z TKN Z7 input'aluesJ4LJ+?L R ,I 7Z &KN Z7 input'aluesJ4LJ4L R ,I 7Z 6K+ Z7 input'aluesJ4LJ-4L R ,I 7Z TK% Z7 input'aluesJ4LJ+4L R ,I 7Z &KS% Z7 input'aluesJ4LJ2L R ,I 7Z 6K? Z7 input'aluesJ4LJ-2L R ,I 7Z T%N Z7 input'aluesJ4LJ+2L R ,I 7Z &%NK Z7 input'aluesJ4LJ1L R ,I 7Z 6% Z7 input'aluesJ4LJ-1L R ,I 7Z T%K Z7 input'aluesJ4LJ+1L R ,I 7Z &%S Z7 input'aluesJ4LJ0L R ,I 7Z 6S- Z7 input'aluesJ4LJ-0L R ,I 7Z T%S Z7 input'aluesJ4LJ+0L R ,I 7Z &SK Z7 input'aluesJ4LJFL R ,I 7Z 6S+ Z7 input'aluesJ4LJ-FL R ,I 7Z TSN Z7 input'aluesJ4LJ+FL R ,I 7Z &SN% Z7 input'aluesJ4LJ5L R ,I 7Z 6S? Z7 input'aluesJ4LJ-5L R ,I 7Z TS% Z7 77Set ;alues to population for=i R ,I i \R populationSize 3 -I i<<> ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ if==rand=> P 1> ]R ?> ^ populationJiLJCL R -I _ else ^ populationJiLJCL R ,I _ _ _ 77Set ;alues to temp6opulation for=i R ,I i \R populationSize 3 -I i<<> ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ temp6opulationJiLJCL R ,I _ _ for=C R ,I C \R +FI C<<> ^ input'alueJCL R ,I _ 77Start main program 6rintOutFunBtion=msgOrder* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int>I for=h R ,I h \R sim 3 -I h<<> ^ printf=abnZZZZ Standard GA ZZZZbna>I printf=a6re;ious eDecuted dri;e order/ Pd* Simulation/ TPdbnbna* pre;ious%Dcecution* h>I for=i R ,I i \R sim 3 -I i<<> ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ populationJiLJCL R goodIndi;idualsJiLJCLI _ _ 77UpdateInput'alue=input'alue* )est6arameter'alue-* h>I if=-> ^ int i6N- R input'alueJ,LI int i6N+ R input'alueJ-LI int i6N? R input'alueJ+LI int i6K- R input'alueJ?LI int i6K+ R input'alueJ4LI
int i6K? R input'alueJ2LI int i6% R input'alueJ1LI int i6S- R input'alueJ0LI int i6S+ R input'alueJFLI int i6S? R input'alueJ5LI int iTNK R input'alueJ-,LI int iTN% R input'alueJ--LI int iTNS R input'alueJ-+LI int iTKN R input'alueJ-?LI int iTK% R input'alueJ-4LI int iT%N R input'alueJ-2LI int iT%K R input'alueJ-1LI int iT%S R input'alueJ-0LI int iTSN R input'alueJ-FLI int iTS% R input'alueJ-5LI int i&NK R input'alueJ+,LI int i&N% R input'alueJ+-LI int i&NS R input'alueJ++LI int i&KN R input'alueJ+?LI int i&KS% R input'alueJ+4LI int i&%NK R input'alueJ+2LI int i&%S R input'alueJ+1LI int i&SK R input'alueJ+0LI int i&SN% R input'alueJ+FLI switch=)est6arameter'alue-> ^ case ,/ iTNK R ,I iT%N R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case -/ iTNK R ,I iT%N R ,I iTK% R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case +/ iTNS R ,I iT%N R ,I iTS% R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6N? R ,I i6S? R ,I i&NK R ,I i&NS R ,I )reaBI case ?/ iTNK R ,I iTSN R ,I i6K- R ,I i6K? R ,I i6% R ,I i6S- R ,I i&NK R ,I i&SN% R ,I )reaBI case 4/ iT%K R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N?R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%NK R ,I )reaBI case 2/ iTNK R ,I iTKN R ,I iT%S R ,I iTS% R ,I i6N? R ,I i6K- R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case 1/ iTN% R ,I iT%N R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6S? R ,I i&NK R ,I i&NS R ,I i&N% R ,I )reaBI case 0/ iTNSR ,I iTSN R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case F/ iTK% R ,I iT%K R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case 5/ iTNK R ,I iTKN R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&KS% R ,I )reaBI case -,/ i6N+ R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case --/ i6N- R ,I i6N+ R ,I i6N? R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case -+/ i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i6S- R ,I i6S+ R ,I i&N% R ,I i&SK R ,I )reaBI case -?/ i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&%S R ,I )reaBI case -4/ iTS% R ,I iT%S R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%S R ,I )reaBI case -2/ iTN% R ,I iT%N R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case -1/ )reaBI _ 77 &ewrite input'alue input'alueJ,L R i6N-I input'alueJ-L R i6N+I input'alueJ+L R i6N?I input'alueJ?L R i6K-I input'alueJ4L R i6K+I input'alueJ2L R i6K?I
20
input'alueJ1L R i6%I input'alueJ0L R i6S-I input'alueJFL R i6S+I input'alueJ5L R i6S?I input'alueJ-,L R iTNKI input'alueJ--L R iTN%I input'alueJ-+L R iTNSI input'alueJ-?L R iTKNI input'alueJ-4L R iTK%I input'alueJ-2L R iT%NI input'alueJ-1L R iT%KI input'alueJ-0L R iT%SI input'alueJ-FL R iTSNI input'alueJ-5L R iTS%I input'alueJ+,L R i&NKI input'alueJ+-L R i&N%I input'alueJ++L R i&NSI input'alueJ+?L R i&KNI input'alueJ+4L R i&KS%I input'alueJ+2L R i&%NKI input'alueJ+1L R i&%SI input'alueJ+0L R i&SKI input'alueJ+FL R i&SN%I for=C R ,I C \R +FI C<<> ^ if=input'alueJCL cR ,> ^input'alueJCL R input'alueJCL < -I_77 Add priorit! to remaining inputs else ^input'alueJCL R input'alueJCL < input'aluesJhL JCLI_77 Add new inputs if there are an! _ _ 77Start of standard GA loop for =generationN)r R ,I generationN)r \R maDGeneration 3 -I generationN)r<<> ^ for=i R ,I i \R populationSize 3 -I i<<> ^ parameter'alue- R ecodeChromosome=population* i* num)erOfGenes* -* num)erOfChromosomes>I parameter'alue+ R ecodeChromosome=population* i* num)erOfGenes* +* num)erOfChromosomes>I parameter'alue? R ecodeChromosome=population* i* num)erOfGenes* ?* num)erOfChromosomes>I parameter'alue4 R ecodeChromosome=population* i* num)erOfGenes* 4* num)erOfChromosomes>I parameter'alue2 R ecodeChromosome=population* i* num)erOfGenes* 2* num)erOfChromosomes>I parameter'alue1 R ecodeChromosome=population* i* num)erOfGenes* 1* num)erOfChromosomes>I fitnessJiL R %;aluateIndi;idual=parameter'alue-* parameter'alue+* parameter'alue?* parameter'alue4* parameter'alue2* parameter'alue1* input'alue* pre;ious%Dcecution>I num)er%;alutaions6erformed R num)er%;alutaions6erformed < -I if ==fitnessJiL ]R maDFitness> MM =fitnessJiL cR maDFitness>>77fitness ] maDFitness ^ maDFitness R fitnessJiLI )estIndu;idual R iI )est6arameter'alue- R parameter'alue-I )est6arameter'alue+ R parameter'alue+I )est6arameter'alue? R parameter'alue?I )est6arameter'alue4 R parameter'alue4I )est6arameter'alue2 R parameter'alue2I )est6arameter'alue1 R parameter'alue1I msgOrder R -I 6rintOutFunBtion=msgOrder* num)er%;alutaions6erformed* generationN)r < -* maDFitness* )est6arameter'alue-* )est6arameter'alue+* )est6arameter'alue?* )est6arameter'alue4* )est6arameter'alue2* )est6arameter'alue1>I _ _ num)er%;alutaions6erformed R ,I for=i R ,I i \R populationSize 3 -I i<<>77cop! arra!/ temp6opulation R populationI ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ temp6opulationJiLJCL R populationJiLJCLI _ _ for=i R ,I i \R populationSize 3 -I i R i < +> ^ ind;- R TournamentSelect=fitness* populationSize* tournament6ro)a)ilit!>I ind;+ R TournamentSelect=fitness* populationSize* tournament6ro)a)ilit!>I r R &andFunBtion=>I if=r \R crosso;er6ro)a)ilit!> ^ int C* cp R rand=> Pnum)erOfGenes 3 -I 77Get crosso;er position. for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ if=C \R cp> ^
newIndi;idual-JCL R populationJind;-LJCLI newIndi;idual+JCL R populationJind;+LJCLI _ else ^ newIndi;idual-JCL R populationJind;+LJCLI newIndi;idual+JCL R populationJind;-LJCLI _ _77end of crosso;er for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ temp6opulationJiLJCL R newIndi;idual-JCLI temp6opulationJi < -LJCL R newIndi;idual+JCLI _ _ else ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ temp6opulationJiLJCL R populationJind;-LJCLI temp6opulationJi < -LJCL R populationJind;+LJCLI _ _ _ 77Set )est indi;idual first into temp6opulation for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ temp6opulationJ,LJCL R populationJ)estIndu;idualL JCLI _ for=i R -I i \R populationSize 3 -I i<<> ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ tempIndi;idualJCL R temp6opulationJiLJCLI r R &andFunBtion=>I if =r \R mutation6ro)a)ilit!> ^ r R &andFunBtion=>I if=r ]R ,.2> ^ tempIndi;idualJCL R -I _ else ^ tempIndi;idualJCL R ,I _ _ temp6opulationJiLJCL R tempIndi;idualJCLI _ _ for=i R ,I i \R populationSize 3 -I i<<>77cop! arra! population R temp6opulation ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ populationJiLJCL R temp6opulationJiLJCLI _ _ 77New population is made for neDt generation )estIndu;idual R ,I77 &esets until neDt generation if ==maDFitness ]R total$aDFitness> MM =maDFitness cR total$aDFitness>>77maDFitness ] total$aDFitness ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ goodIndi;idualsJhLJCL R temp6opulationJ,LJCLI _ total$aDFitness R maDFitnessI _ _ &eturn&esult=)est6arameter'alue-* )est6arameter'alue+* )est6arameter'alue?* )est6arameter'alue4* )est6arameter'alue2* )est6arameter'alue1* input'alue* maDFitness>I printf=a...............................................................................bna>I pre;ious%Dcecution R )est6arameter'alue-I maDFitness R ,I77 &esets until neDt generation _ printf=abnGood indi;iduals in )inar! form/bnbna>I for=int h R ,I h \R sim 3 -I h<<> ^ for=C R ,I C \R num)erOfGenes 3 -I C<<> ^ printf=aPda* goodIndi;idualsJhLJCL>I _ )est6arameter'alue- R ecodeChromosome=goodIndi;iduals* h*
2F
num)erOfGenes* -* num)erOfChromosomes>I )est6arameter'alue+ R ecodeChromosome=goodIndi;iduals* h* num)erOfGenes* +* num)erOfChromosomes>I )est6arameter'alue? R ecodeChromosome=goodIndi;iduals* h* num)erOfGenes* ?* num)erOfChromosomes>I )est6arameter'alue4 R ecodeChromosome=goodIndi;iduals* h* num)erOfGenes* 4* num)erOfChromosomes>I )est6arameter'alue2 R ecodeChromosome=goodIndi;iduals* h* num)erOfGenes* 2* num)erOfChromosomes>I )est6arameter'alue1 R ecodeChromosome=goodIndi;iduals* h* num)erOfGenes* 1* num)erOfChromosomes>I printf=a R P+d 3 P+d 3 P+d 3 P+d 3 P+d 3 P+dbna*
)est6arameter'alue-* )est6arameter'alue+* )est6arameter'alue?* )est6arameter'alue4* )est6arameter'alue2* )est6arameter'alue1>I _ msgOrder R ?I 6rintOutFunBtion=msgOrder* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int* m%Int>I printf=abna>I 77getchar=>I To stop command window. _
25
1,
1-
^points R points < +I_ if=pre;iousOrder RR 4> ^points R points 3 2I_ )reaBI case 2/ if==pre;iousOrder RR -+> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 2> ^points R points 3 2I_ )reaBI case 1/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 1> ^points R points 3 2I_ )reaBI case 0/ if==pre;iousOrder RR F> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR 0> ^points R points 3 2I_ )reaBI case F/ if==pre;iousOrder RR 0> `` =pre;iousOrder RR -+>> ^points R points < +I_ if=pre;iousOrder RR F> ^points R points 3 2I_ )reaBI case 5/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -4>> ^points R points < +I_ if=pre;iousOrder RR 5> ^points R points 3 2I_ )reaBI case -,/ if==pre;iousOrder RR F> `` =pre;iousOrder RR 5>> ^points R points < +I_ if=pre;iousOrder RR -,> ^points R points 3 2I_ )reaBI case --/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ if=pre;iousOrder RR --> ^points R points 3 2I_ )reaBI case -+/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR F>> ^points R points < +I_ if=pre;iousOrder RR -+> ^points R points 3 2I_ )reaBI case -?/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ if=pre;iousOrder RR -?> ^points R points 3 2I_ )reaBI case -4/ if==pre;iousOrder RR 5> `` =pre;iousOrder RR -+>> ^points R points < +I_ if=pre;iousOrder RR -4> ^points R points 3 2I_ )reaBI case -2/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -?>> ^points R points < +I_ if=pre;iousOrder RR -2> ^points R points 3 2I_ )reaBI _ if=i RR ,> ^f R 1ZpointsI_ if=i RR -> ^f R f < 2ZpointsI_ if=i RR +> ^f R f < 4ZpointsI_ if=i RR ?> ^f R f < ?ZpointsI_ if=i RR 4> ^f R f < +ZpointsI_ if=i RR 2> ^f R f < pointsI_ if=i RR , MM points \R +> ^p R -I_ _ if=p RR -> ^f R ,I_77if p- R , 3] f R , return fI _ ;oid &eturn&esult=int )est6arameter'alue-* int )est6arameter'alue+* int )est6arameter'alue?* int )est6arameter'alue4* int )est6arameter'alue2* int )est6arameter'alue1* int input'alueJ+5L* int maDFitness> ^ int f R ,* D R ,* points R ,* pre;iousOrderI int i6N- R input'alueJ,LI int i6N+ R input'alueJ-LI int i6N? R input'alueJ+LI int i6K- R input'alueJ?LI int i6K+ R input'alueJ4LI int i6K? R input'alueJ2LI int i6% R input'alueJ1LI int i6S- R input'alueJ0LI int i6S+ R input'alueJFLI int i6S? R input'alueJ5LI int iTNK R input'alueJ-,LI int iTN% R input'alueJ--LI int iTNS R input'alueJ-+LI int iTKN R input'alueJ-?LI int iTK% R input'alueJ-4LI int iT%N R input'alueJ-2LI int iT%K R input'alueJ-1LI int iT%S R input'alueJ-0LI int iTSN R input'alueJ-FLI int iTS% R input'alueJ-5LI int i&NK R input'alueJ+,LI int i&N% R input'alueJ+-LI int i&NS R input'alueJ++LI int i&KN R input'alueJ+?LI
int i&KS% R input'alueJ+4LI int i&%NK R input'alueJ+2LI int i&%S R input'alueJ+1LI int i&SK R input'alueJ+0LI int i&SN% R input'alueJ+FLI printf=abn 666 666 6 666 TTT TT TTT TT &&& && && &&bna>I printf=a NNN KKK % SSS NNN KK %%% SS NNN KK %% SSbna>I printf=a -+? -+? -+? K%S N% NKS N% K%S NS NS KNbna>I printf=a ``` ``` ` ``` ``` `` ``` `` ``` `% K` `%bna>I printf=ai PdPdPd.PdPdPd.Pd.PdPdPd / PdPdPd.PdPd.PdPdPd. PdPd / PdPdPd.PdPd.PdPd.PdPd $aD fitness/ Pdbna* i6N-* i6N+* i6N?* i6K-* i6K+* i6K?* i6%* i6S-* i6S+* i6S?* iTNK* iTN%* iTNS* iTKN* iTK%* iT%N* iT%K* iT%S* iTSN* iTS%* i&NK* i&N%* i&NS* i&KN* i&KS%* i&%NK* i&%S* i&SK* i&SN%* maDFitness>I for=int i R ,I i \R 1 3 -I i<<> ^ pre;iousOrder R DI if=i RR ,> ^D R )est6arameter'alue-I_ if=i RR -> ^D R )est6arameter'alue+I_ if=i RR +> ^D R )est6arameter'alue?I_ if=i RR ?> ^D R )est6arameter'alue4I_ if=i RR 4> ^D R )est6arameter'alue2I_ if=i RR 2> ^D R )est6arameter'alue1I_ points R ,I 77Inputs functions calculations switch=D> ^ case ,/ points R iTNK < iT%N < iTS% < i6N- < i6N+ < i6N? < i6S- < i6S? < i&NKI iTNK R ,I iT%N R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case -/ points R iTNK < iT%N < iTK% < i6N? < i6K- < i6S- < i6S+ < i6S? < i&KS%I iTNK R ,I iT%N R ,I iTK% R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case +/ points R iTNS < iT%N < iTS% < i6K- < i6K+ < i6K? < i6N? < i6S? < i&NK < i&NSI iTNS R ,I iT%N R ,I iTS% R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6N? R ,I i6S? R ,I i&NK R ,I i&NS R ,I )reaBI case ?/ points R iTNK < iTSN < i6K- < i6K? < i6% < i6S< i&NK < i&SN%I iTNK R ,I iTSN R ,I i6K- R ,I i6K? R ,I i6% R ,I i6S- R ,I i&NK R ,I i&SN% R ,I )reaBI case 4/ points R iT%K < iTS% < i6N- < i6N+ < i6N? < i6K? < i6S- < i6S? < i&%NKI iT%K R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N?R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%NK R ,I )reaBI case 2/ points R +ZiTNK < +ZiTKN < +ZiT%S < +ZiTS% < i6N? < i6K- < i6K? < i6S- < i6S? < i&NKI iTNK R ,I iTKN R ,I iT%S R ,I iTS% R ,I i6N? R ,I i6K- R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case 1/ points R +ZiTN% < 4ZiT%N < i6N? < i6K- < i6K+ < i6K? < i6S+ < i6S? < i&NK < i&NS < i&N%I iTN% R ,I iT%N R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6S? R ,I i&NK R ,I i&NS R ,I i&N% R ,I )reaBI case 0/ points R +ZiTNS < +ZiTSN < i6K- < i6K+ < i6K? < i6% < i&NK < i&NS < i&SN%I iTNSR ,I iTSN R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case F/ points R +ZiTK% < +ZiT%K < i6N- < i6N+ < i6N? < i6S- < i6S+ < i6S? < i&%NK < i&KS%I iTK% R ,I iT%K R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case 5/ points R iTNK < iTKN < i6N- < i6N? < i6K- < i6S- < i6S+ < i6S? < +Zi&KN < i&KS%I iTNK R ,I iTKN R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&KS% R ,I )reaBI case -,/ points R i6N+ < i6K- < i6K+ < i6K? < i6S+ < i6% < i&NK < i&NS < +Zi&SN%I i6N+ R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case --/ points R i6N- < i6N+ < i6N? < i6K+ < i6S- < i6S+ < i6S? < +Zi&%NK < +Zi&KS%I i6N- R ,I i6N+ R ,I i6N? R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I
1+
)reaBI case -+/ points R i6N+ < i6N? < i6K- < i6K+ < i6K? < i6% < i6S- < i6S+ < +Zi&N% < +Zi&SKI i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i6S- R ,I i6S+ R ,I i&N% R ,I i&SK R ,I )reaBI case -?/ points R i6N- < i6N+ < i6N? < i6K- < i6K+ < i6S- < i6S+ < i6S? < +Zi&KN < +Zi&%SI i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&%S R ,I )reaBI case -4/ points R iTS% < iT%S < i6N- < i6N+ < i6N? < i6K< i6K+ < i6K? < i6S- < i6S? < i&%SI iTS% R ,I iT%S R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%S R ,I )reaBI case -2/ points R iTN% < iT%N < i6N- < i6N? < i6K- < i6K+ < i6S- < i6S+ < i6S? < +Zi&KS%I iTN% R ,I iT%N R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case -1/ points R ,I )reaBI _ 776re;ious order calculations switch=D> ^ case ,/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case -/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case +/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case ?/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 4/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case 2/ if==pre;iousOrder RR -+> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 1/ if==pre;iousOrder RR --> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case 0/ if==pre;iousOrder RR F> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case F/ if==pre;iousOrder RR 0> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case 5/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -4>> ^points R points < +I_ )reaBI case -,/ if==pre;iousOrder RR F> `` =pre;iousOrder RR 5>> ^points R points < +I_ )reaBI case --/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ )reaBI case -+/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR F>> ^points R points < +I_ )reaBI case -?/ if==pre;iousOrder RR 2> `` =pre;iousOrder RR 0>> ^points R points < +I_ )reaBI case -4/ if==pre;iousOrder RR 5> `` =pre;iousOrder RR -+>> ^points R points < +I_ )reaBI case -2/ if==pre;iousOrder RR -,> `` =pre;iousOrder RR -?>> ^points R points < +I_ )reaBI case -1/ 77 )reaBI _ if=i RR ,> ^f R 1ZpointsI_
if=i RR -> ^f R f < 2ZpointsI_ if=i RR +> ^f R f < 4ZpointsI_ if=i RR ?> ^f R f < ?ZpointsI_ if=i RR 4> ^f R f < +ZpointsI_ if=i RR 2> ^f R f < pointsI_ printf=acPd PdPdPd.PdPdPd.Pd.PdPdPd / PdPdPd.PdPd. PdPdPd.PdPd / PdPdPd.PdPd.PdPd.PdPd Order R P+d 6oints R P+dbna* i<-* i6N-* i6N+* i6N?* i6K-* i6K+* i6K?* i6%* i6S-* i6S+* i6S?* iTNK* iTN%* iTNS* iTKN* iTK%* iT%N* iT%K* iT%S* iTSN* iTS%* i&NK* i&N%* i&NS* i&KN* i&KS%* i&%NK* i&%S* i&SK* i&SN%* D *points>I _ printf=abna>I 77Output print out switch=)est6arameter'alue-> ^ case ,/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oT%N* oTS%* o6N-* o6N+* o6N?* o6S-* o6S?* o&NKbna* )est6arameter'alue->I )reaBI case -/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oT%N* oTK%* o6N?* o6K-* o6S-* o6S+* o6S?* o&KS%bna* )est6arameter'alue->I )reaBI case +/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNS* oT%N* oTS%* o6K-* o6K+* o6K?* o6N?* o6S?* o&NK* o&NSbna* )est6arameter'alue->I )reaBI case ?/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTSN* o6K-* o6K?* o6%* o6S-* o&NK* o&SN%bna* )est6arameter'alue->I )reaBI case 4/ printf=a%Decuting reAuests on dri;e order Pd/bnoT%K* oTS%* o6N-* o6N+* o6N?* o6K?* o6S-* o6S?* o&%NKbna* )est6arameter'alue->I )reaBI case 2/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTKN* oT%S* oTS%* o6N?* o6K-* o6K?* o6S-* o6S?* o&NKbna* )est6arameter'alue->I )reaBI case 1/ printf=a%Decuting reAuests on dri;e order Pd/bnoTN%* oT%N* o6N?* o6K-* o6K+* o6K?* o6S+* o6S?* o&NK* o&NS* o&N%bna* )est6arameter'alue->I )reaBI case 0/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNS* oTSN* o6K-* o6K+* o6K?* o6%* o&NK* o&NS* o&SN%bna* )est6arameter'alue->I )reaBI case F/ printf=a%Decuting reAuests on dri;e order Pd/bnoTK%* oT%K* o6N-* o6N+* o6N?* o6S-* o6S+* o6S?* o&%NK* o&KS%bna* )est6arameter'alue->I )reaBI case 5/ printf=a%Decuting reAuests on dri;e order Pd/bnoTNK* oTKN* o6N-* o6N?* o6K-* o6S-* o6S+* o6S?* o&KN* o&KS%bna* )est6arameter'alue->I )reaBI case -,/ printf=a%Decuting reAuests on dri;e order Pd/bno6N+* o6K-* o6K+* o6K?* o6S+* o6%* o&NK* o&NS* o&SN%bna* )est6arameter'alue->I )reaBI case --/ printf=a%Decuting reAuests on dri;e order Pd/bno6N-* o6N+* o6N?* o6K+* o6S-* o6S+* o6S?* o&%NK* o&KS%bna* )est6arameter'alue->I )reaBI case -+/ printf=a%Decuting reAuests on dri;e order Pd/bno6N+* o6N?* o6K-* o6K+* o6K?* o6%* o6S-* o6S+* o&N%* o&SKbna* )est6arameter'alue->I )reaBI case -?/ printf=a%Decuting reAuests on dri;e order Pd/bno6N-* o6N+* o6N?* o6K-* o6K+* o6S-* o6S+* o6S?* o&KN* o&%Sbna* )est6arameter'alue->I )reaBI case -4/ printf=a%Decuting reAuests on dri;e order Pd/bnoTS%* oT%S* o6N-* o6N+* o6N?* o6K-* o6K+* o6K?* o6S-* o6S?* o&%Sbna* )est6arameter'alue->I )reaBI case -2/ printf=a%Decuting reAuests on dri;e order Pd/bnoTN%* oT%N* o6N-* o6N?* o6K-* o6K+* o6S-* o6S+* o6S?* o&KS%bna* )est6arameter'alue->I )reaBI case -1/ printf=a o not eDecuting an! dri;e order.bna>I )reaBI _ printf=abna>I _ int main=> ^ int input'alueJ+5LI77All inputs to worB with int input'aluesJ-,LJ+5LI77#ist of all time periods inputs JRsimLJ+5L int maDFitness R ,I int fitnessI77Store fitness ;alue for each indi;idual in present generation int parameter'alue- R -1I77Temporar! parameter ;alue =-1 is for null result>
1?
int parameter'alue+ R -1I77Temporar! parameter ;alue int parameter'alue? R -1I77Temporar! parameter ;alue int parameter'alue4 R -1I77Temporar! parameter ;alue int parameter'alue2 R -1I77Temporar! parameter ;alue int parameter'alue1 R -1I77Temporar! parameter ;alue int )est6arameter'alue- R -1I77Gest chromosome ;alue int )est6arameter'alue+ R -1I77Gest chromosome ;alue int )est6arameter'alue? R -1I77Gest chromosome ;alue int )est6arameter'alue4 R -1I77Gest chromosome ;alue int )est6arameter'alue2 R -1I77Gest chromosome ;alue int )est6arameter'alue1 R -1I77Gest chromosome ;alue int pre;ious%Dcecution R -1I77Store c- =%> from pre;ious time period int sim R -,I77Num)er of simulations int i* C* B* l* m* n* D R ,I int msgOrder R ,* m%Int R ,I float m%float R ,I77 Other ;aria)les for=C R ,I C \R +FI C<<> ^ input'alueJCL R ,I _ for=i R ,I i \R sim 3 -I i<<> ^ for=C R ,I C \R +FI C<<> ^ input'aluesJiLJCL R ,I _ _ 77Onl! 2 first is filled with inputs 77Init input'alue , input'aluesJ,LJ,L R -I 7Z 6N- Z7 input'aluesJ,LJ-,L R -I 7Z TNK Z7 input'aluesJ,LJ+,L R ,I 7Z &NK Z7 input'aluesJ,LJ-L R ,I 7Z 6N+ Z7 input'aluesJ,LJ--L R ,I 7Z TN% Z7 input'aluesJ,LJ+-L R -I 7Z &N% Z7 input'aluesJ,LJ+L R -I 7Z 6N? Z7 input'aluesJ,LJ-+L R ,I 7Z TNS Z7 input'aluesJ,LJ++L R -I 7Z &NS Z7 input'aluesJ,LJ?L R ,I 7Z 6K- Z7 input'aluesJ,LJ-?L R -I 7Z TKN Z7 input'aluesJ,LJ+?L R ,I 7Z &KN Z7 input'aluesJ,LJ4L R ,I 7Z 6K+ Z7 input'aluesJ,LJ-4L R ,I 7Z TK% Z7 input'aluesJ,LJ+4L R ,I 7Z &KS% Z7 input'aluesJ,LJ2L R -I 7Z 6K? Z7 input'aluesJ,LJ-2L R ,I 7Z T%N Z7 input'aluesJ,LJ+2L R ,I 7Z &%NK Z7 input'aluesJ,LJ1L R ,I 7Z 6% Z7 input'aluesJ,LJ-1L R ,I 7Z T%K Z7 input'aluesJ,LJ+1L R ,I 7Z &%S Z7 input'aluesJ,LJ0L R ,I 7Z 6S- Z7 input'aluesJ,LJ-0L R ,I 7Z T%S Z7 input'aluesJ,LJ+0L R -I 7Z &SK Z7 input'aluesJ,LJFL R ,I 7Z 6S+ Z7 input'aluesJ,LJ-FL R -I 7Z TSN Z7 input'aluesJ,LJ+FL R -I 7Z &SN% Z7 input'aluesJ,LJ5L R -I 7Z 6S? Z7 input'aluesJ,LJ-5L R ,I 7Z TS% Z7 77Init input'alue input'aluesJ-LJ,L R ,I 7Z 6N- Z7 input'aluesJ-LJ-,L R ,I 7Z TNK Z7 input'aluesJ-LJ+,L R -I 7Z &NK Z7 input'aluesJ-LJ-L R -I 7Z 6N+ Z7 input'aluesJ-LJ--L R ,I 7Z TN% Z7 input'aluesJ-LJ+-L R -I 7Z &N% Z7 input'aluesJ-LJ+L R ,I 7Z 6N? Z7 input'aluesJ-LJ-+L R ,I 7Z TNS Z7 input'aluesJ-LJ++L R -I 7Z &NS Z7 input'aluesJ-LJ?L R -I 7Z 6K- Z7 input'aluesJ-LJ-?L R ,I 7Z TKN Z7 input'aluesJ-LJ+?L R -I 7Z &KN Z7 input'aluesJ-LJ4L R -I 7Z 6K+ Z7 input'aluesJ-LJ-4L R ,I 7Z TK% Z7 input'aluesJ-LJ+4L R ,I 7Z &KS% Z7 input'aluesJ-LJ2L R ,I 7Z 6K? Z7 input'aluesJ-LJ-2L R ,I 7Z T%N Z7 input'aluesJ-LJ+2L R ,I 7Z &%NK Z7 input'aluesJ-LJ1L R -I 7Z 6% Z7 input'aluesJ-LJ-1L R ,I 7Z T%K Z7 input'aluesJ-LJ+1L R ,I 7Z &%S Z7 input'aluesJ-LJ0L R -I 7Z 6S- Z7 input'aluesJ-LJ-0L R ,I 7Z T%S Z7 input'aluesJ-LJ+0L R -I 7Z &SK Z7 input'aluesJ-LJFL R -I 7Z 6S+ Z7 input'aluesJ-LJ-FL R ,I 7Z TSN Z7 input'aluesJ-LJ+FL R -I 7Z &SN% Z7 input'aluesJ-LJ5L R ,I 7Z 6S? Z7 input'aluesJ-LJ-5L R ,I 7Z TS% Z7 77Init input'alue + input'aluesJ+LJ,L R ,I 7Z 6N- Z7 input'aluesJ+LJ-,L R ,I 7Z TNK Z7 input'aluesJ+LJ+,L R -I 7Z &NK Z7 input'aluesJ+LJ-L R ,I 7Z 6N+ Z7 input'aluesJ+LJ--L R ,I 7Z TN% Z7 input'aluesJ+LJ+-L R ,I 7Z &N% Z7 input'aluesJ+LJ+L R -I 7Z 6N? Z7 input'aluesJ+LJ-+L R -I 7Z TNS Z7 input'aluesJ+LJ++L R -I 7Z &NS Z7 input'aluesJ+LJ?L R -I 7Z 6K- Z7 input'aluesJ+LJ-?L R ,I 7Z TKN Z7 input'aluesJ+LJ+?L R -I 7Z &KN Z7 input'aluesJ+LJ4L R -I 7Z 6K+ Z7 input'aluesJ+LJ-4L R -I 7Z TK% Z7 input'aluesJ+LJ+4L R ,I 7Z &KS% Z7 input'aluesJ+LJ2L R ,I 7Z 6K? Z7 input'aluesJ+LJ-2L R ,I 7Z T%N Z7 input'aluesJ+LJ+2L R ,I 7Z &%NK Z7 input'aluesJ+LJ1L R ,I 7Z 6% Z7 input'aluesJ+LJ-1L R ,I 7Z T%K Z7 input'aluesJ+LJ+1L R ,I 7Z &%S Z7 input'aluesJ+LJ0L R -I 7Z 6S- Z7 input'aluesJ+LJ-0L R ,I 7Z T%S Z7 input'aluesJ+LJ+0L R ,I 7Z &SK Z7 input'aluesJ+LJFL R -I 7Z 6S+ Z7 input'aluesJ+LJ-FL R ,I 7Z TSN Z7 input'aluesJ+LJ+FL R -I 7Z &SN% Z7 input'aluesJ+LJ5L R ,I 7Z 6S? Z7 input'aluesJ+LJ-5L R ,I 7Z TS% Z7 77Init input'alue ? input'aluesJ?LJ,L R -I 7Z 6N- Z7 input'aluesJ?LJ-,L R ,I 7Z TNK Z7 input'aluesJ?LJ+,L R ,I 7Z &NK Z7 input'aluesJ?LJ-L R ,I 7Z 6N+ Z7 input'aluesJ?LJ--L R ,I 7Z TN% Z7 input'aluesJ?LJ+-L R -I 7Z &N% Z7 input'aluesJ?LJ+L R ,I 7Z 6N? Z7 input'aluesJ?LJ-+L R ,I 7Z TNS Z7 input'aluesJ?LJ++L R ,I 7Z &NS Z7 input'aluesJ?LJ?L R ,I 7Z 6K- Z7 input'aluesJ?LJ-?L R ,I 7Z
TKN Z7 input'aluesJ?LJ+?L R -I 7Z &KN Z7 input'aluesJ?LJ4L R ,I 7Z 6K+ Z7 input'aluesJ?LJ-4L R ,I 7Z TK% Z7 input'aluesJ?LJ+4L R -I 7Z &KS% Z7 input'aluesJ?LJ2L R ,I 7Z 6K? Z7 input'aluesJ?LJ-2L R ,I 7Z T%N Z7 input'aluesJ?LJ+2L R -I 7Z &%NK Z7 input'aluesJ?LJ1L R ,I 7Z 6% Z7 input'aluesJ?LJ-1L R ,I 7Z T%K Z7 input'aluesJ?LJ+1L R ,I 7Z &%S Z7 input'aluesJ?LJ0L R -I 7Z 6S- Z7 input'aluesJ?LJ-0L R ,I 7Z T%S Z7 input'aluesJ?LJ+0L R -I 7Z &SK Z7 input'aluesJ?LJFL R -I 7Z 6S+ Z7 input'aluesJ?LJ-FL R ,I 7Z TSN Z7 input'aluesJ?LJ+FL R ,I 7Z &SN% Z7 input'aluesJ?LJ5L R -I 7Z 6S? Z7 input'aluesJ?LJ-5L R ,I 7Z TS% Z7 77Init input'alue 4 input'aluesJ4LJ,L R ,I 7Z 6N- Z7 input'aluesJ4LJ-,L R ,I 7Z TNK Z7 input'aluesJ4LJ+,L R ,I 7Z &NK Z7 input'aluesJ4LJ-L R ,I 7Z 6N+ Z7 input'aluesJ4LJ--L R ,I 7Z TN% Z7 input'aluesJ4LJ+-L R -I 7Z &N% Z7 input'aluesJ4LJ+L R ,I 7Z 6N? Z7 input'aluesJ4LJ-+L R ,I 7Z TNS Z7 input'aluesJ4LJ++L R -I 7Z &NS Z7 input'aluesJ4LJ?L R -I 7Z 6K- Z7 input'aluesJ4LJ-?L R ,I 7Z TKN Z7 input'aluesJ4LJ+?L R -I 7Z &KN Z7 input'aluesJ4LJ4L R ,I 7Z 6K+ Z7 input'aluesJ4LJ-4L R ,I 7Z TK% Z7 input'aluesJ4LJ+4L R ,I 7Z &KS% Z7 input'aluesJ4LJ2L R ,I 7Z 6K? Z7 input'aluesJ4LJ-2L R ,I 7Z T%N Z7 input'aluesJ4LJ+2L R ,I 7Z &%NK Z7 input'aluesJ4LJ1L R -I 7Z 6% Z7 input'aluesJ4LJ-1L R ,I 7Z T%K Z7 input'aluesJ4LJ+1L R ,I 7Z &%S Z7 input'aluesJ4LJ0L R ,I 7Z 6S- Z7 input'aluesJ4LJ-0L R -I 7Z T%S Z7 input'aluesJ4LJ+0L R -I 7Z &SK Z7 input'aluesJ4LJFL R ,I 7Z 6S+ Z7 input'aluesJ4LJ-FL R ,I 7Z TSN Z7 input'aluesJ4LJ+FL R ,I 7Z &SN% Z7 input'aluesJ4LJ5L R ,I 7Z 6S? Z7 input'aluesJ4LJ-5L R -I 7Z TS% Z7 77Init input'alue 2 input'aluesJ2LJ,L R ,I 7Z 6N- Z7 input'aluesJ2LJ-,L R ,I 7Z TNK Z7 input'aluesJ2LJ+,L R ,I 7Z &NK Z7 input'aluesJ2LJ-L R ,I 7Z 6N+ Z7 input'aluesJ2LJ--L R -I 7Z TN% Z7 input'aluesJ2LJ+-L R ,I 7Z &N% Z7 input'aluesJ2LJ+L R ,I 7Z 6N? Z7 input'aluesJ2LJ-+L R ,I 7Z TNS Z7 input'aluesJ2LJ++L R ,I 7Z &NS Z7 input'aluesJ2LJ?L R ,I 7Z 6K- Z7 input'aluesJ2LJ-?L R ,I 7Z TKN Z7 input'aluesJ2LJ+?L R ,I 7Z &KN Z7 input'aluesJ2LJ4L R ,I 7Z 6K+ Z7 input'aluesJ2LJ-4L R ,I 7Z TK% Z7 input'aluesJ2LJ+4L R ,I 7Z &KS% Z7 input'aluesJ2LJ2L R -I 7Z 6K? Z7 input'aluesJ2LJ-2L R ,I 7Z T%N Z7 input'aluesJ2LJ+2L R ,I 7Z &%NK Z7 input'aluesJ2LJ1L R ,I 7Z 6% Z7 input'aluesJ2LJ-1L R ,I 7Z T%K Z7 input'aluesJ2LJ+1L R -I 7Z &%S Z7 input'aluesJ2LJ0L R ,I 7Z 6S- Z7 input'aluesJ2LJ-0L R ,I 7Z T%S Z7 input'aluesJ2LJ+0L R ,I 7Z &SK Z7 input'aluesJ2LJFL R ,I 7Z 6S+ Z7 input'aluesJ2LJ-FL R ,I 7Z TSN Z7 input'aluesJ2LJ+FL R -I 7Z &SN% Z7 input'aluesJ2LJ5L R -I 7Z 6S? Z7 input'aluesJ2LJ-5L R ,I 7Z TS% Z7 77Init input'alue 1 input'aluesJ1LJ,L R ,I 7Z 6N- Z7 input'aluesJ1LJ-,L R ,I 7Z TNK Z7 input'aluesJ1LJ+,L R -I 7Z &NK Z7 input'aluesJ1LJ-L R ,I 7Z 6N+ Z7 input'aluesJ1LJ--L R ,I 7Z TN% Z7 input'aluesJ1LJ+-L R ,I 7Z &N% Z7 input'aluesJ1LJ+L R ,I 7Z 6N? Z7 input'aluesJ1LJ-+L R ,I 7Z TNS Z7 input'aluesJ1LJ++L R -I 7Z &NS Z7 input'aluesJ1LJ?L R -I 7Z 6K- Z7 input'aluesJ1LJ-?L R ,I 7Z TKN Z7 input'aluesJ1LJ+?L R ,I 7Z &KN Z7 input'aluesJ1LJ4L R ,I 7Z 6K+ Z7 input'aluesJ1LJ-4L R ,I 7Z TK% Z7 input'aluesJ1LJ+4L R ,I 7Z &KS% Z7 input'aluesJ1LJ2L R ,I 7Z 6K? Z7 input'aluesJ1LJ-2L R ,I 7Z T%N Z7 input'aluesJ1LJ+2L R -I 7Z &%NK Z7 input'aluesJ1LJ1L R ,I 7Z 6% Z7 input'aluesJ1LJ-1L R ,I 7Z T%K Z7 input'aluesJ1LJ+1L R ,I 7Z &%S Z7 input'aluesJ1LJ0L R -I 7Z 6S- Z7 input'aluesJ1LJ-0L R ,I 7Z T%S Z7 input'aluesJ1LJ+0L R ,I 7Z &SK Z7 input'aluesJ1LJFL R ,I 7Z 6S+ Z7 input'aluesJ1LJ-FL R ,I 7Z TSN Z7 input'aluesJ1LJ+FL R -I 7Z &SN% Z7 input'aluesJ1LJ5L R ,I 7Z 6S? Z7 input'aluesJ1LJ-5L R ,I 7Z TS% Z7 77Init input'alue 0 input'aluesJ0LJ,L R -I 7Z 6N- Z7 input'aluesJ0LJ-,L R ,I 7Z TNK Z7 input'aluesJ0LJ+,L R ,I 7Z &NK Z7 input'aluesJ0LJ-L R ,I 7Z 6N+ Z7 input'aluesJ0LJ--L R ,I 7Z TN% Z7 input'aluesJ0LJ+-L R -I 7Z &N% Z7 input'aluesJ0LJ+L R -I 7Z 6N? Z7 input'aluesJ0LJ-+L R ,I 7Z TNS Z7 input'aluesJ0LJ++L R ,I 7Z &NS Z7 input'aluesJ0LJ?L R ,I 7Z 6K- Z7 input'aluesJ0LJ-?L R ,I 7Z TKN Z7 input'aluesJ0LJ+?L R ,I 7Z &KN Z7 input'aluesJ0LJ4L R ,I 7Z 6K+ Z7 input'aluesJ0LJ-4L R ,I 7Z TK% Z7 input'aluesJ0LJ+4L R -I 7Z &KS% Z7 input'aluesJ0LJ2L R -I 7Z 6K? Z7 input'aluesJ0LJ-2L R -I 7Z T%N Z7 input'aluesJ0LJ+2L R ,I 7Z &%NK Z7 input'aluesJ0LJ1L R -I 7Z 6% Z7 input'aluesJ0LJ-1L R ,I 7Z T%K Z7 input'aluesJ0LJ+1L R ,I 7Z &%S Z7 input'aluesJ0LJ0L R ,I 7Z 6S- Z7 input'aluesJ0LJ-0L R ,I 7Z T%S Z7 input'aluesJ0LJ+0L R ,I 7Z &SK Z7 input'aluesJ0LJFL R ,I 7Z 6S+ Z7 input'aluesJ0LJ-FL R ,I 7Z TSN Z7 input'aluesJ0LJ+FL R ,I 7Z &SN% Z7 input'aluesJ0LJ5L R ,I 7Z 6S? Z7 input'aluesJ0LJ-5L R -I 7Z TS% Z7 77Start main program printf=aStartbna>I for=int h R ,I h \R sim 3 -I h<<>
14
^ if=-> ^ int i6N- R input'alueJ,LI int i6N+ R input'alueJ-LI int i6N? R input'alueJ+LI int i6K- R input'alueJ?LI int i6K+ R input'alueJ4LI int i6K? R input'alueJ2LI int i6% R input'alueJ1LI int i6S- R input'alueJ0LI int i6S+ R input'alueJFLI int i6S? R input'alueJ5LI int iTNK R input'alueJ-,LI int iTN% R input'alueJ--LI int iTNS R input'alueJ-+LI int iTKN R input'alueJ-?LI int iTK% R input'alueJ-4LI int iT%N R input'alueJ-2LI int iT%K R input'alueJ-1LI int iT%S R input'alueJ-0LI int iTSN R input'alueJ-FLI int iTS% R input'alueJ-5LI int i&NK R input'alueJ+,LI int i&N% R input'alueJ+-LI int i&NS R input'alueJ++LI int i&KN R input'alueJ+?LI int i&KS% R input'alueJ+4LI int i&%NK R input'alueJ+2LI int i&%S R input'alueJ+1LI int i&SK R input'alueJ+0LI int i&SN% R input'alueJ+FLI switch=)est6arameter'alue-> ^ case ,/ iTNK R ,I iT%N R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case -/ iTNK R ,I iT%N R ,I iTK% R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case +/ iTNS R ,I iT%N R ,I iTS% R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6N? R ,I i6S? R ,I i&NK R ,I i&NS R ,I )reaBI case ?/ iTNK R ,I iTSN R ,I i6K- R ,I i6K? R ,I i6% R ,I i6S- R ,I i&NK R ,I i&SN% R ,I )reaBI case 4/ iT%K R ,I iTS% R ,I i6N- R ,I i6N+ R ,I i6N?R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%NK R ,I )reaBI case 2/ iTNK R ,I iTKN R ,I iT%S R ,I iTS% R ,I i6N? R ,I i6K- R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&NK R ,I )reaBI case 1/ iTN% R ,I iT%N R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6S? R ,I i&NK R ,I i&NS R ,I i&N% R ,I )reaBI case 0/ iTNSR ,I iTSN R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case F/ iTK% R ,I iT%K R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case 5/ iTNK R ,I iTKN R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&KS% R ,I )reaBI case -,/ i6N+ R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S+ R ,I i6% R ,I i&NK R ,I i&NS R ,I i&SN% R ,I )reaBI case --/ i6N- R ,I i6N+ R ,I i6N? R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&%NK R ,I i&KS% R ,I )reaBI case -+/ i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6% R ,I i6S- R ,I i6S+ R ,I i&N% R ,I i&SK R ,I )reaBI case -?/ i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KN R ,I i&%S R ,I )reaBI case -4/ iTS% R ,I iT%S R ,I i6N- R ,I i6N+ R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6K? R ,I i6S- R ,I i6S? R ,I i&%S R ,I )reaBI case -2/ iTN% R ,I iT%N R ,I i6N- R ,I i6N? R ,I i6K- R ,I i6K+ R ,I i6S- R ,I i6S+ R ,I i6S? R ,I i&KS% R ,I )reaBI case -1/
)reaBI _ 77 &ewrite input'alue input'alueJ,L R i6N-I input'alueJ-L R i6N+I input'alueJ+L R i6N?I input'alueJ?L R i6K-I input'alueJ4L R i6K+I input'alueJ2L R i6K?I input'alueJ1L R i6%I input'alueJ0L R i6S-I input'alueJFL R i6S+I input'alueJ5L R i6S?I input'alueJ-,L R iTNKI input'alueJ--L R iTN%I input'alueJ-+L R iTNSI input'alueJ-?L R iTKNI input'alueJ-4L R iTK%I input'alueJ-2L R iT%NI input'alueJ-1L R iT%KI input'alueJ-0L R iT%SI input'alueJ-FL R iTSNI input'alueJ-5L R iTS%I input'alueJ+,L R i&NKI input'alueJ+-L R i&N%I input'alueJ++L R i&NSI input'alueJ+?L R i&KNI input'alueJ+4L R i&KS%I input'alueJ+2L R i&%NKI input'alueJ+1L R i&%SI input'alueJ+0L R i&SKI input'alueJ+FL R i&SN%I for=C R ,I C \R +FI C<<> ^ if=input'alueJCL cR ,> ^input'alueJCL R input'alueJCL < -I_77 Add priorit! to remaining inputs else ^input'alueJCL R input'alueJCL < input'aluesJhL JCLI_77 Add new inputs if there are an! _ _ 77Start loop maDFitness R ,I for=i R ,I i \R -1 3 -I i<<> ^ for=C R ,I C \R -1 3 -I C<<> ^ for=B R ,I B \R -1 3 -I B<<> ^ for=l R ,I l \R -1 3 -I l<<> ^ for=m R ,I m \R -1 3 -I m<<> ^ for=n R ,I n \R -1 3 -I n<<> ^ parameter'alue- R i* parameter'alue+ R C* parameter'alue? R B* parameter'alue4 R l* parameter'alue2 R m* parameter'alue1 R nI fitness R %;aluateIndi;idual=parameter'alue-* parameter'alue+* parameter'alue?* parameter'alue4* parameter'alue2* parameter'alue1* input'alue* pre;ious%Dcecution>I if ==fitness ]R maDFitness> MM =fitness cR maDFitness>>77fitness ] maDFitness ^ maDFitness R fitnessI )est6arameter'alue- R parameter'alue-I )est6arameter'alue+ R parameter'alue+I )est6arameter'alue? R parameter'alue?I )est6arameter'alue4 R parameter'alue4I )est6arameter'alue2 R parameter'alue2I )est6arameter'alue1 R parameter'alue1I _ _ _ _ _ _ _ printf=aZZZZ FS ;ersion ZZZZbna>I printf=a6re;ious eDecuted dri;e order/ Pd* Simulation/ TPdbna* pre;ious%Dcecution* h>I &eturn&esult=)est6arameter'alue-* )est6arameter'alue+* )est6arameter'alue?* )est6arameter'alue4* )est6arameter'alue2* )est6arameter'alue1* input'alue* maDFitness>I printf=a...............................................................................bnbna>I pre;ious%Dcecution R )est6arameter'alue-I _ printf=abna>I 77getchar=>I To stop command window. _
12