20
ME8107 Artificial Intelligence for Mechanical Engineers Prof. Vincent Chan Project Report Xuming Gao 500420541 Nov 26, 2014

AI Final Report

Embed Size (px)

Citation preview

Page 1: AI Final Report

ME8107

Artificial Intelligence for Mechanical Engineers

Prof. Vincent Chan

Project Report

Xuming Gao

500420541

Nov 26, 2014

Page 2: AI Final Report

2

Table of Contents

1. Introduction 3

2. State of the Problem 5

3. Literature Review 6

4. Solve by GA 8

5. Conclusion 14

6. Reference 15

7. Appendix 16

Page 3: AI Final Report

3

Introduction

In many fields, looking for a shortest path is a need in order to achieve time and

economic efficient. To an international company, a well-organized shipping plan

means more cargoes could be shipped to their destination with the same amount of

time, or the same amount of goods reaches their purchasers in a shorter time. To a

family, a carefully designed travelling plan could be considered cheaper in cost on

transportation or having time to visit more places, resulting a more enjoyable journey.

Path planning is not new, and there are many experts from different fields solved

this problem with very smart methods. Strangely, humans are never satisfied with

their current status. Therefore, more elites have been joining in the study of the path

planning problem, and more and more systems have been developed to solve the path

planning problem more efficiently with better solutions.

Genetic algorithm is one of the artificial algorithms that have been developed to

solve not only the mathematical problem, but also other engineering and/or scientific

problems such as path planning problem. The genetic algorithm is based on Charles

Darwin’s biological theory of evolution in the mid-19th century (Hillier, Frederick S.

and Lieberman, Gerald J., 2005). Features are depended based on genes, and

chromosomes are carrying all genes that an object has. Two chromosome pairs a

group of parents when it happens to create the next generation, and some part

chromosomes, which is genius, will be passed from parents to children. Children

having better genes will have a higher chance to survive and become parents and pass

on genes. There is also a chance that a mutation happens. Most mutation causes

Page 4: AI Final Report

4

disadvantage or no effect; however, sometimes a mutation give a better feature to fit

the environment, which means a higher chance to survive. The entire process happens

randomly; as a result, the next generation is not guaranteed to be better than the

current generation, but always children with more suitable features survive. Similar to

the biological evolution theory, genetic algorithm contains randomly happening

crossover, mutation, and selection (select children with better features). Because of its

randomness, the local maxima and minima will be avoided; and this allows the

answer is closer to the real optical solution.

Page 5: AI Final Report

5

State of the Problem

There is a new couple are planning where to spend their honeymoons. They came

across an idea that spend their days to visit Europe. They found a travel agency to

plan a trip for them so that they do not spend too much money on the travelling.

During the travel planner was trying to design a trip for the new couple, there is an

unexpectable system shutdown at him. After he reboot his computer, he found that the

must-visit countries that the couple mentioned were lost.; and he also could not recall

the must-visit countries as well as the starting country and ending country. Because

the flight-ticket are already booked, the first country and last country to visit cannot

be changed due to they would not like to pay for the cancellation fee; but the order of

the rest visiting countries are not important to them. No one country is planned to visit

twice. Because the deadline to deliver the travelling plan is almost due and the planer

cannot reach the couple with any method, he has no time to wait for contact them

again. Therefore, he decided to write a program with a graphical user interface which

allows the couple to select all the countries that they want to visit including the

starting and ending country. As return, the best travel plan will be shown to them.

Page 6: AI Final Report

6

Literature Review

The travelling salesman problem (TSP) is a classic example of path planning. The

travelling salesman provides an optimal (shortest) path of the traveler to cover all

stated places. There is no specific starting or ending point. The traveler could start in

any place, but must return to the same place at the end of the journey. Except the

starting place (also the ending place), there is no other place can be visited more than

once. There is no limit on the sequence of the place to be visited. The next places can

be chosen from any remaining (has-not-been-visited) places. The distance between

any of the two places are known.

One of the popular method is solving TSP by simulated annealing. This

arithmetic is simulating annealing process in metallurgy. The entire process of

annealing includes heating and slow cooling stages. Temperature is an important

variable in simulated annealing algorithm, and temperature is usually manually set

high to enlarge the searching area in order to find the most optimal solution. The

internal energy is calculated at this temperature and recorded. Then, the cooling

process starts. With slowly decreasing temperature, internal energy is calculated at

each temperature and then comparing with the current minimum energy. The

minimum energy updates itself during each iteration. If energy at new temperature is

lower, the minimum energy gets updates; if the new temperature is higher, by

predefined possibility, it will choose either update or eject the new value. Either

iteration reaches its predefined number or the minimum energy decreases below the

desired energy threshold, the program will stopped. [2]

Page 7: AI Final Report

7

There are two major problems in simulated annealing method. One is being the

initial temperature setup. If the temperature is set high, there is higher chance to

acquire the most optimal solution but taking longer computing time; or with

reasonable low temperature, it might not find the most optimal solution but saving

computational cost. Another major problem is rate of decreasing temperature. It

always needs several times experiments to determine a suitable cooling rate. [3, 4]

Overall, TSP problem could be solved by using simulated annealing algorithm,

and it gives better optimal solution than by greedy method [4].

Another method is done by ant colony optimization algorithm. This algorithm

simulates the ant finding shortest path to its colony during foraging. Ant returns

colony the earliest it chose the shortest path, and pheromone is left on the path earliest.

Following ants will select this path due to higher pheromone intensity, and this path

will be reinforced to attract more ants. Eventually, the longer paths will be abandoned.

Ant colony algorithm is a good candidate when dealing with problems such as

travelling salesman problem and 0-1 knapsack problem although computation cost is

relatively high. [5-9]

Page 8: AI Final Report

8

Solve by GA

The real European map is used with manually marked European countries as

shown in Figure 1. Each black spot represents a country.

Figure 1 Marked European Country

In order to acquire the relative position of all the spotted countries on the map,

MatLab image toolbox is utilized to convince. First, the image is converted to a gray

scale image from a regular RGB image, the gray image can be seen in figure 2. Then,

the grayscale image is being further processed to be a binary image with threshold

0.99 as shown in figure 3. A matrix of x- y- coordinates of black spots are acquired,

and the distance between any two countries could be calculated based on x- y-

coordinates.

Page 9: AI Final Report

9

Figure 2 Gray Scale Image

Figure 3 Binary Image with threshold 0.99

Page 10: AI Final Report

10

Figure 4 Centroid to acquire x-y coordinates

Once all the countries’ coordinates are acquired, all data is transferred to an excel

file along with the corresponding country name to store the original data. In this excel

file, the numerical index (1, 2, 3…) can be used to index country name and

coordinate.

With the selection of user, all parameters are written to variables and these

variables are corresponding parameters in the genetic algorithm.

Starting country and ending country are passed on separately from must-visit

countries since starting and ending country are fixed variables once the user select and

the program is started. The coordinate and name of starting country and ending

country are pulled from the original data and written to four variables (start country

coordinate, start country name, end country coordinate, and end country name). User

selected must-visit countries are stored in a one-dimensional array, and there will be

no country index that the user did not select. Two new matrices are created by pulling

selected countries coordinates and name, one matrix (n by 2) stores coordinates and

Page 11: AI Final Report

11

the other one (n by 1) stores name (n is the number of country selected). Selected

countries’ coordinates and names have new indexes. With all the coordinates, distance

between any two selected countries are calculated and stored for later use.

And here, genetic algorithm starts.

Initiation

Firstly, population size, mutation rate are defined to be 20 and 1%, respectively.

The gene used is the index of the country, and the chromosome (parent) is a string of

country index. 20 parents are randomly generated.

Evaluation

The fitness function is applied to each parent to calculate the total distance of

travelling based on the order of country index in the parent. All the fitness values are

gathered. In this case, lower fitness value is better because lower fitness value means

shorter distance.

Grouping

The fitness value is sorted from low to high in a row, and only the top ten lowest

total distance will be kept and used in the next step. The parent in the i-th row is

paired with the parent in the (11-i)th row to form five groups in total. Each group of

parents creates four children to keep the population remains the same for the next

generation. Children are created after mate and mutation.

Page 12: AI Final Report

12

Mating

Two numbers are randomly generated: rand1 and rand2. Rand1 is responsable for

the selection of parent, and rand2 is for gene.

Parent 1: 0~0.4999

Parent 2: 0.5~0.9999

First Half Gene: 0~0.4999

Second Half Gene: 0.5~0.9999

If rand1 falls in the range of parent 1, then parent 1 is selected; otherwise parent 2

is selected. If rand2 falls in the first half gene’s range, then the first half gene is passed

on to the child; otherwise, the second half gene is passed on. For example,

rand1=0.2365 and rand2=0.9666, then the second half gene in parent 1 is passed on to

the child. The remaining gene of this child is selected from the other parent in the

group in the same order of this parent from available genes (numbers that have not

been appeared in the child).

Mutating

The rate of mutation is predefined as 1%. A link is chosen to be the place when

mutation happens. Whenever a mutation happens, the two numbers connected by the

link will be exchanged. If there are in total 12 selected must-visit countries, there will

be 12 numbers to represent each country and 11 links to connect all the numbers.

Therefore, for one child, there are 11 links that possibly a mutation happens. Similar

to select parent and gene, random numbers are generated to decide where the mutation

happens. 11 random numbers are created and any number is less than 0.01 (1%)

means mutation happens: switch two numbers connected by the corresponding link.

Page 13: AI Final Report

13

Once the mutation process is over, one iteration is done. Children become parents

and next iteration starts. The entire process is repeated from evaluation to mutation

until the maximum iteration is reached.

In every iteration, after sorting the fitness value, the shortest fitness value in this

iteration is compared with the global minimum: if global minimum is greater than this

fitness value, then, the global minimum is updated to this fitness value and the

corresponding path (index sequence is stored); if global minimum is smaller, then the

process continues. The global minimum is initially set to be positive infinity to ensure

it is bigger than any total travel distance of any possible travel sequence.

After maximum iteration is reached, distances from starting country to the first

index country in optimal solution and from the last index country to ending country

are calculated and then added onto global minimum. In addition, starting and ending

country names are inserted in the optimal solution sequence in the first and last place.

Updated string of names and global minimum are returned to the user. String of names

displays the best travel sequence, while the global minimum is showing the optimal

travel distance.

Output

The output of this program is the sequence of visiting country. The path can be

either seen in the MatLab workspace or in an Excel file that created by the program.

In addition, a path map will also be shown for convenience.

Page 14: AI Final Report

14

Conclusion

The genetic algorithm is quite suitable for traveling salesman problem. It is unlike

heuristic search which needs much computational cost. Although the genetic

algorithm method does not guarantee the best solution will be found, the result is

close enough to the best solution. It also has potential to get even closer to the best

answer. One method is adding more iterations. Because only the best results from

iteration will be kept, the solution gets closer and closer to its ultimate optimal

solution. So, by running more iterations, the answers become more optimal. Another

method is applying different mating method. This may cause improve the answer, but

also may decrease the performance. The mutation rate is another option to apply

change which may either advance or dis-advance the performance.

In conclusion, genetic algorithm suits problems that do not need the best solution,

but a good-enough solution. Path planning or travelling salesman problem is one of

the perfect example of genetic algorithm programming.

Page 15: AI Final Report

15

Reference

[1] Hillier, Frederick S. and Lieberman, Gerald J. (2005). Introduction of Operations

Research. Toronto; Boston: McGraw Hill.

[2] Corana, A., Marchesi, M., Martini, C., & Ridella, S. (1987). Minimizing multimodal

functions of continuous variables with the "simulated annealing" algorithm corrigenda

ACM Transactions on Mathematical Software (TOMS), 13(3), 262-280.

doi:10.1145/29380.29864

[3] Randelman, R. E., & Grest, G. S. (1986). N-city traveling salesman problem: Optimization

by simulated annealings. Journal of Statistical Physics, 45(5-6), 885-890.

doi:10.1007/BF01020579

[4] Ismail, Z., & Ibrahim, W. R. W. (2008). Traveling salesman approach for solving petrol

distribution using simulated annealing. American Journal of Applied Sciences, 5(11),

1543-1546. doi:10.3844/ajassp.2008.1543.1546

[5] Ellis, J. F. (2002). Ant colony optimization for approximate solutions to the traveling

salesman problem

[6] Dorigo, M., & Blum, C. (2005). Ant colony optimization theory: A survey. Theoretical

Computer Science, 344(2), 243-278. doi:10.1016/j.tcs.2005.05.020

[7] Dorigo, M., Dorigo, M., Birattari, M., Birattari, M., Stutzle, T., & Stutzle, T. (2006). Ant

colony optimization. IEEE Computational Intelligence Magazine, 1(4), 28-39.

doi:10.1109/MCI.2006.329691

[8] Chaharsooghi, S. K., Chaharsooghi, S. K., Meimand Kermani, A. H., & Meimand

Kermani, A. H. (2008). An intelligent multi-colony multi-objective ant colony

optimization (ACO) for the 0-1 knapsack problem. 1195-1202.

doi:10.1109/CEC.2008.4630948

[9] Ke, L., Feng, Z., Ren, Z., & Wei, X. (2010). An ant colony optimization approach for the

multidimensional knapsack problem. Journal of Heuristics, 16(1), 65-83.

doi:10.1007/s10732-008-9087-x

Page 16: AI Final Report

16

Appendix

Figure 5 Image Processing Code

Page 17: AI Final Report

17

Country Coordinates and Name Data (Unit: pixels)

X-coordinate Y-Coordinate Country

98 915 Portugal

100 1134 Morocco

195 936 Spain

202 150 Iceland

218 549 Ireland

320 1121 Algeria

328 556 UK

377 775 France

435 685 Belgium

453 636 Netherlands

492 1133 Tunisia

496 795 Switzerland

538 513 Denmark

545 653 Germany

558 350 Norway

565 911 Italy

627 764 Austria

627 831 Slovenia

634 700 Czech Republic

657 265 Sweden

669 843 Croatia

706 898 Bosnia and Herzegovina

717 629 Poland

718 728 Slovakia

739 783 Hungary

758 996 Albania

763 879 Serbia

792 962 Macedonia

798 541 Lithuania

803 242 Finland

801 1008 Greece

810 430 Estonia

826 489 Latvia

835 806 Romania

867 898 Bulgaria

878 558 Belarus

956 683 Ukraine

1009 326 Russia

Page 18: AI Final Report

18

Graphical User Interface

Figure 6 User Interface before Selection

Figure 7 User Interface with An Example Selection

Page 19: AI Final Report

19

Program Output

Figure 8 Output to Workspace (Left) and to Excel File (Right)

Figure 9 Path Plan Graphical Result (Green dot is starting country, and blue is end country)

Page 20: AI Final Report

20

Instruction of running the MatLab code

1. Download all the files including “data.xlsx”, “search,m”, “userfront.fig”,

“userfront.m”, and “ImageProcessing.m” and save under the same folder.

Copy the folder directory.

2. Start MatLab program

3. Open “search.m” file and replaced directory in xlsread command with

the directory just copied, and then save and close “search.m” file.

4. Open “userfront.m” and click run.

5. Choosing start and end country on user interface as well as the must-visit

country section.

6. Click on “start” to run.

7. Once the program finished, the result can be reviewed either on

workspace or in the excel file named “path.xls”.

Note:

Every time the program is opened, the user interface needs to be

“activated”. To do this, click on drop down menus and select any

countries to both starting and ending country, and check all the check box

followed by clicking the “start” button. Once the first run is done, the

following running does not require this step.

After each running, created “guidata.xls” and “path.xls” are necessary to

deleted or moved to another folder in order to run the program

functionally.