Top Banner
MTA MTA 1 Thuật toán Gen Thuật toán Gen Trần Cao Trưởng Trần Cao Trưởng Khoa CNTT-Học viện Khoa CNTT-Học viện KTQS KTQS
57

Ga

Jun 29, 2015

Download

Education

Tùng Lê
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ga

MTAMTA

11

Thuật toán GenThuật toán Gen

Trần Cao TrưởngTrần Cao Trưởng

Khoa CNTT-Học viện Khoa CNTT-Học viện KTQSKTQS

Page 2: Ga

MTAMTA

Nội dungNội dung

Thuật toán GenThuật toán Gen

Các thành phần cơ bản của thuật toán genCác thành phần cơ bản của thuật toán gen

Các khuyến cáo khi sử dụng thuật toán genCác khuyến cáo khi sử dụng thuật toán gen

Ưu và nhược điểm của thuật toán genƯu và nhược điểm của thuật toán gen

Demo chương trìnhDemo chương trình

Page 3: Ga

MTAMTA

33

Thuật toán Gen (GAs)Thuật toán Gen (GAs)• GAs (John Holland) mô phỏng tiến hóa tự nhiên GAs (John Holland) mô phỏng tiến hóa tự nhiên

(Darwinian Evolution) ở mức gen sử dụng tư (Darwinian Evolution) ở mức gen sử dụng tư tưởng của tưởng của survival of the fittestsurvival of the fittest

• Một cá thếMột cá thế ((chromosomechromosome) mô tả một lời giải ứng ) mô tả một lời giải ứng viên của bài toán. Một tập các cá thể "alive“, gọi viên của bài toán. Một tập các cá thể "alive“, gọi là quần thể (là quần thể (population)population) được tiến hóa từ thế hệ được tiến hóa từ thế hệ này tới thế hệ khác phụ thuộc vào sự thích nghi này tới thế hệ khác phụ thuộc vào sự thích nghi của các cá thểcủa các cá thể

• Hope: Thế hệ sinh ra sẽ chứa lời giải của bài toánHope: Thế hệ sinh ra sẽ chứa lời giải của bài toán

Page 4: Ga

MTAMTA

44

Thuật toán GenThuật toán Gen

Sinh ra thế hệ khởi tạo với quần thể P(0), chỉ số Sinh ra thế hệ khởi tạo với quần thể P(0), chỉ số ii chỉ ra thế hệ thứ i chỉ ra thế hệ thứ i Lặp cho đến khi quần thể hội tụ or tiêu chuẩn kết thúc đạt được Lặp cho đến khi quần thể hội tụ or tiêu chuẩn kết thúc đạt được

Đánh giá độ thích nghi của mỗi cá thể trong P(Đánh giá độ thích nghi của mỗi cá thể trong P(ii)) Lựa chọn các cha từ P(Lựa chọn các cha từ P(ii) dựa trên độ thích nghi của chúng trong P() dựa trên độ thích nghi của chúng trong P(ii)) Áp dụng các toán tử Gen (crossover, mutation) từ các cha đã chọn Áp dụng các toán tử Gen (crossover, mutation) từ các cha đã chọn

để sinh ra các con (để sinh ra các con (offspring)offspring) Đạt được thế hệ tiếp theo P(Đạt được thế hệ tiếp theo P(i i + 1) từ các con và các cá thể ở thế hệ + 1) từ các con và các cá thể ở thế hệ

P(P(ii))

Page 5: Ga

MTAMTA

55

Cấu trúc của Cấu trúc của GAGA

Procedure GAProcedure GAbegin begin

t := 0 ;t := 0 ;initialize P(t) ;initialize P(t) ;evaluate P(t) ;evaluate P(t) ;while (not termination-condition) dowhile (not termination-condition) dobeginbegin

t := t + 1t := t + 1 ;;select P(t) from P(t-1) ;select P(t) from P(t-1) ;alter P(t) ;alter P(t) ;evaluate P(t) ;evaluate P(t) ;

endendendend

Step 0 : InitializationStep 0 : Initialization

Step 1 : SelectionStep 1 : Selection

Step 2 : CrossoverStep 2 : Crossover

Step 3 : MutationStep 3 : Mutation

Step 5 : Termination TestStep 5 : Termination Test

Step 6 : EndStep 6 : End

Step 4 : EvaluationStep 4 : Evaluation

Page 6: Ga

MTAMTA

66

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 7: Ga

MTAMTA Bài toán Knapsack 01Bài toán Knapsack 01

Bạn chuẩn bị đi picnic Bạn chuẩn bị đi picnic Và bạn có một số các vật mà bạn có thể cầm Và bạn có một số các vật mà bạn có thể cầm

theo theo Mỗi vật có một weight và một benefit hay Mỗi vật có một weight và một benefit hay

value.value. Có một cái túi giới hạn weight bạn có thế Có một cái túi giới hạn weight bạn có thế

cầm theocầm theo Mỗi vật chỉ được chọn tối đa 1 lần Mỗi vật chỉ được chọn tối đa 1 lần Bạn muốn cầm các vật mang theo với max Bạn muốn cầm các vật mang theo với max

benefitbenefit

Mô tả bài toán:Mô tả bài toán:

Page 8: Ga

MTAMTA Bài toán Knapsack 01Bài toán Knapsack 01

Example:Example:

Đồ vật: Đồ vật: 1 2 3 4 5 6 71 2 3 4 5 6 7

Giá trị:Giá trị: 5 8 3 2 7 9 45 8 3 2 7 9 4

T.lượng:T.lượng: 7 8 4 10 4 6 47 8 4 10 4 6 4

Khối lượng tối đa có thể mang là 22 pounds Khối lượng tối đa có thể mang là 22 pounds

Xếp đồ vật để có giá trị lớn nhấtXếp đồ vật để có giá trị lớn nhất

Page 9: Ga

MTAMTA

99

51

32

4

14

12

11

23

8

10

6

Problem:Problem: Một người bán hàng cần ghé qua tất Một người bán hàng cần ghé qua tất cả các thành phố, mỗi thành phố một lầncả các thành phố, mỗi thành phố một lần và và trở lại thành phố ban đầutrở lại thành phố ban đầu. . Có chi phí di chuyển Có chi phí di chuyển giữa tất cả các thành phố. Tìm hành trình có giữa tất cả các thành phố. Tìm hành trình có tổng chi phí nhỏ nhấttổng chi phí nhỏ nhất

Bài toán Bài toán TSPTSP

Page 10: Ga

MTAMTA

1010

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 11: Ga

MTAMTAEncodingEncoding

Mã hóa nhị phân (Binary encoding)Mã hóa nhị phân (Binary encoding) là kiểu thông dụng nhất bởi vì: nghiên là kiểu thông dụng nhất bởi vì: nghiên cứu đầu tiên về thuật toán Gen sử dụng kiểu mã hóa này và bởi vì nó cứu đầu tiên về thuật toán Gen sử dụng kiểu mã hóa này và bởi vì nó đơn giản đơn giản

Trong mã hóa nhị phân, mọi nhiễm sắc thể là chuỗi Trong mã hóa nhị phân, mọi nhiễm sắc thể là chuỗi bitsbits - - 00 or or 11. .

Chromosome A 101100101100101011100101Chromosome A 101100101100101011100101Chromosome B 111111100000110000011111 Chromosome B 111111100000110000011111

Mã hóa nhị phân đưa ra nhiều khả năng của nhiễm sắc thể với một số Mã hóa nhị phân đưa ra nhiều khả năng của nhiễm sắc thể với một số lượng nhỏ các alenlượng nhỏ các alen

Các mã hóa này thường không tự nhiên cho nhiều bài toán và thỉnh Các mã hóa này thường không tự nhiên cho nhiều bài toán và thỉnh thoảng sai sau khi thự hiện các phép toán crossover and/or mutation. thoảng sai sau khi thự hiện các phép toán crossover and/or mutation.

Page 12: Ga

MTAMTABài toán Knapsack 01Bài toán Knapsack 01

Encoding: Encoding: 0 = not exist, 1 = exist in the Knapsack0 = not exist, 1 = exist in the KnapsackChromosome: 1010110Chromosome: 1010110

=> Items taken: 1, 3 , 5, 6.=> Items taken: 1, 3 , 5, 6.

Generate random population of Generate random population of nn chromosomes: chromosomes:

a)a) 01010100101010

b)b) 11001001100100

c)c) 01000110100011

Item.Item. 11 22 33 44 55 66 77

ChroChro 11 00 11 00 11 11 00

Exist?Exist? yy nn yy nn yy yy nn

Page 13: Ga

MTAMTAPermutation EncodingPermutation Encoding

Permutation encodingPermutation encoding có thể sử dụng để giải quyết các bài toán có thể sử dụng để giải quyết các bài toán

có thứ tự như: Người bán hàngcó thứ tự như: Người bán hàng Trong permutation encoding, tất cả các NST là chuỗi các số Trong permutation encoding, tất cả các NST là chuỗi các số

biểu diễn vị trí trong một dãy. biểu diễn vị trí trong một dãy.

NST A 1  5  3  2  6  4  7  9  8NST A 1  5  3  2  6  4  7  9  8 NST B 8  5  6  7  2  3  1  4  9NST B 8  5  6  7  2  3  1  4  9

Permutation encoding được sử dụng trong các bài toán có thứ Permutation encoding được sử dụng trong các bài toán có thứ tự. Trong một vài trường hợp, việc hiệu chỉnh lai ghép và đột tự. Trong một vài trường hợp, việc hiệu chỉnh lai ghép và đột biến phải thực hiện để tạo ra NST phù hợpbiến phải thực hiện để tạo ra NST phù hợp

Page 14: Ga

MTAMTA

1414

51

32

4

14

12

11

23

810

6

11 55 33 22 44

chromosomechromosome (individual)(individual)

genegene

Path RepresentationPath Representation

Page 15: Ga

MTAMTA

Value Encoding Value Encoding

VEVE được sử dụng trong các bài tóan mà việc mã hóa nhị phân là khó thực hiện được sử dụng trong các bài tóan mà việc mã hóa nhị phân là khó thực hiện

( Ví dụ như các bài tóan mà giá trị là các số thực). ( Ví dụ như các bài tóan mà giá trị là các số thực).

Trong VE mỗi chromosome là một chuỗi các giá trị có thể nhận dạng bất kỳ tùy Trong VE mỗi chromosome là một chuỗi các giá trị có thể nhận dạng bất kỳ tùy

thuộc vào từng bài tóan cụ thể. Ví dụ giá trị có thể là số thực, ký tự, hoặc một thuộc vào từng bài tóan cụ thể. Ví dụ giá trị có thể là số thực, ký tự, hoặc một

đối tượng nào đó. đối tượng nào đó.

Chromosome A 1.2324  5.3243  0.4556  2.3293  2.4545Chromosome A 1.2324  5.3243  0.4556  2.3293  2.4545

Chromosome B ABDJEIFJDHDIERJFDLDFLFEGTChromosome B ABDJEIFJDHDIERJFDLDFLFEGT

Chromosome C (back), (back), (right), (forward), (left)Chromosome C (back), (back), (right), (forward), (left)

VE là sự lựa chọn tốt đối với một số bài tóan cụ thể. VE là sự lựa chọn tốt đối với một số bài tóan cụ thể.

Với kiểu mã hóa này thường sẽ phải xây dựng một số phép lai ghép và đột biến Với kiểu mã hóa này thường sẽ phải xây dựng một số phép lai ghép và đột biến

cho các bài tóan cụ thể. cho các bài tóan cụ thể.

Page 16: Ga

MTAMTA Ví dụ về mã hóa giá trịVí dụ về mã hóa giá trị

Bài toán:Bài toán: Cho mạng nơ ron A có cấu trúc đã biết. Tìm trọng số Cho mạng nơ ron A có cấu trúc đã biết. Tìm trọng số

giữa các neurons trong mạng để nhận được kết quả ra mong giữa các neurons trong mạng để nhận được kết quả ra mong

muốn.muốn.

Mã hóa:Mã hóa: Giá trị thực trong các chromosome biểu diễn các trọng Giá trị thực trong các chromosome biểu diễn các trọng

số trong mạng.số trong mạng.

Page 17: Ga

MTAMTA

Mã hóa dạng cây Mã hóa dạng cây (Tree Encoding – TE )(Tree Encoding – TE )

TE thường được sử dụng trong các bài TE thường được sử dụng trong các bài tóan hoặc các biểu thức suy luận ví dụ tóan hoặc các biểu thức suy luận ví dụ như như genetic programminggenetic programming. .

Trong TE, mỗi chromosome là một cây Trong TE, mỗi chromosome là một cây gồm các đối tượng như là các hàm hoặc gồm các đối tượng như là các hàm hoặc các câu lệnh của ngôn ngữ lập trình. các câu lệnh của ngôn ngữ lập trình.

TE thường được dùng đối với các bìa tóan TE thường được dùng đối với các bìa tóan suy luận hoặc các cấu trúc có thể biểu suy luận hoặc các cấu trúc có thể biểu diễn bằng cây.diễn bằng cây.

Các phép lai ghép và đột biến đối với kiểu Các phép lai ghép và đột biến đối với kiểu mã hóa này cũng tương đối dễ thực hiện. mã hóa này cũng tương đối dễ thực hiện.

Chromosome A Chromosome B

( +  x  ( /  5  y ) ) ( do_until  step  wall )

Page 18: Ga

MTAMTA

1818

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 19: Ga

MTAMTABài toán Knapsack 01Bài toán Knapsack 01

Encoding: Encoding: 0 = not exist, 1 = exist in the Knapsack0 = not exist, 1 = exist in the KnapsackChromosome: 1010110Chromosome: 1010110

=> Items taken: 1, 3 , 5, 6.=> Items taken: 1, 3 , 5, 6.

Generate random population of Generate random population of nn chromosomes: chromosomes:

a)a) 01010100101010

b)b) 11001001100100

c)c) 01000110100011

StartStartItem.Item. 11 22 33 44 55 66 77

ChroChro 11 00 11 00 11 11 00

Exist?Exist? yy nn yy nn yy yy nn

Page 20: Ga

MTAMTA

2020

Bài toán Bài toán TSPTSP

1 5 3 2 4

3 2 4 5 1

2 3 4 1 5

4 5 3 2 1

Population

Population size

individual length

Page 21: Ga

MTAMTA

2121

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 22: Ga

MTAMTA

a)a) 0101010: Benefit= 19, Weight= 240101010: Benefit= 19, Weight= 24

b)b) 1100100: Benefit= 20, Weight= 19. 1100100: Benefit= 20, Weight= 19.

c)c) 0100011: Benefit= 21, Weight= 18. 0100011: Benefit= 21, Weight= 18.

FitnessFitness

ItemItem 11 22 33 44 55 66 77

ChroChro 00 11 00 11 00 11 00

BenefitBenefit 55 88 33 22 77 99 44

WeightWeight 77 88 44 1010 44 66 44

Bài toán Knapsack 01Bài toán Knapsack 01

=> We select Chromosomes b & c.

Page 23: Ga

MTAMTA

2323

Bài toán TSPBài toán TSP

1 5 3 2 4

3 2 5 1 4

2 3 4 1 5

4 5 3 2 1

f(indivd i (i+1) +dn1

1i < n

58

56

55

574 5 3 2 1

Page 24: Ga

MTAMTA

2424

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 25: Ga

MTAMTA Các kiểu lựa chọn Các kiểu lựa chọn

Các nhiễm sắc thể được chọn từ quần thể là các cha cho lai ghép Các nhiễm sắc thể được chọn từ quần thể là các cha cho lai ghép (crossover). Vấn đề là lựa chọn các nhiễm sắc thể như thế nào(crossover). Vấn đề là lựa chọn các nhiễm sắc thể như thế nào

Theo thuyết tiến hóa Darwin's những cá thể tốt nhất sẽ được chọn để Theo thuyết tiến hóa Darwin's những cá thể tốt nhất sẽ được chọn để tạo ra các con (tạo ra các con (offspringoffspring). ).

Có nhiều phương pháp để chọn nhiễm sắc thể tốt nhất. Có nhiều phương pháp để chọn nhiễm sắc thể tốt nhất.

Ví dụ là Ví dụ là roulette wheel selectionroulette wheel selection Boltzman selectionBoltzman selection tournament selectiontournament selection rank selectionrank selection steady state selectionsteady state selection and many other sometimes weird methods. and many other sometimes weird methods.

Page 26: Ga

MTAMTA

Roulette Wheel Selection Roulette Wheel Selection

Cha được chọn qua độ thích nghi của chúngCha được chọn qua độ thích nghi của chúng Nhiễm sắc thể tốt hơn, nhiều ngẫu nhiên hơn phải được chọnNhiễm sắc thể tốt hơn, nhiều ngẫu nhiên hơn phải được chọn

Tưởng tượng một Tưởng tượng một roulette wheelroulette wheel nơi tất cả các NST trong quần thể được nơi tất cả các NST trong quần thể được đặt lênđặt lên

Kích thước của đoạn trong roulete wheel tương ứng với giá trị của hàm Kích thước của đoạn trong roulete wheel tương ứng với giá trị của hàm thích nghithích nghi

Một hòn bi được lăn trong roulette wheel và NST nơi nó dừng lại được lựa Một hòn bi được lăn trong roulette wheel và NST nơi nó dừng lại được lựa chọnchọn

NST với giá trị thích nghi lớn sẽ được chọn nhiều hơn NST với giá trị thích nghi lớn sẽ được chọn nhiều hơn

Page 27: Ga

MTAMTA Rank Selection Rank Selection

Roulette Wheel Selection sẽ có vấn đề khi có sự khác nhau lớn giữa Roulette Wheel Selection sẽ có vấn đề khi có sự khác nhau lớn giữa các độ thích nghi các độ thích nghi

Ví dụ: nếu NST tốt nhất có độ thích nghi là 90% thì các NST khác rất ít Ví dụ: nếu NST tốt nhất có độ thích nghi là 90% thì các NST khác rất ít cơ hội được lựa chọncơ hội được lựa chọn

Rank selection tính hạng quần thể đầu tiên và sau đó mọi NST nhận Rank selection tính hạng quần thể đầu tiên và sau đó mọi NST nhận lại giá trị thích nghi được định nghĩa bởi hạng của chúnglại giá trị thích nghi được định nghĩa bởi hạng của chúng

NST tồi nhất sẽ có độ thích nghi là NST tồi nhất sẽ có độ thích nghi là 11, NST tồi thứ hai là , NST tồi thứ hai là 22 etc. và NST etc. và NST tốt nhất sẽ có độ thích nghi là tốt nhất sẽ có độ thích nghi là NN (number of chromosomes in (number of chromosomes in population). population).

Page 28: Ga

MTAMTA Roulette Wheel SelectionRoulette Wheel Selection

Tiến trình trên có thể được mô tả bởi thuật toán sau: Tiến trình trên có thể được mô tả bởi thuật toán sau:

1. 1. [Sum][Sum] Calculate the sum ( Calculate the sum (SS) of all chromosome fitnesses in ) of all chromosome fitnesses in population . population .

2. 2. [Select][Select] Generate random number (r) from the interval Generate random number (r) from the interval (0,S)(0,S). .

3. 3. [Loop][Loop] Go through the population and start summing the fitnesses Go through the population and start summing the fitnesses from from 00 – S (call this C). When C is greater then – S (call this C). When C is greater then rr, stop and return the , stop and return the chromosome where you are.chromosome where you are.

Page 29: Ga

MTAMTA

Rank SelectionRank Selection

Trạng thái sẽ thay đổi sau khi Trạng thái sẽ thay đổi sau khi độ thích nghi sẽ được thay đổi độ thích nghi sẽ được thay đổi bới rank bới rank

Situation before ranking (graph Situation before ranking (graph of fitnesses)of fitnesses)

Situation after ranking (graph of Situation after ranking (graph of order numbers)order numbers)

Bây giờ tất cả các NST sẽ có Bây giờ tất cả các NST sẽ có một số ngẫu nhiên để lựa chọnmột số ngẫu nhiên để lựa chọn

Page 30: Ga

MTAMTASteady-State Selection Steady-State Selection

Trong tất các thế hệ sẽ có một vài NST tốt (Với độ thích nghi Trong tất các thế hệ sẽ có một vài NST tốt (Với độ thích nghi cao) được chọn để tạo NST con mới. cao) được chọn để tạo NST con mới.

Một vài NST tồi (với độ thích nghi thấp) sẽ bị xóa bỏ và các Một vài NST tồi (với độ thích nghi thấp) sẽ bị xóa bỏ và các NST con mới sẽ thay thế chỗ của chúng. NST con mới sẽ thay thế chỗ của chúng.

Phần còn lại của quần thể tạo ra thế hệ mới. Phần còn lại của quần thể tạo ra thế hệ mới.

Page 31: Ga

MTAMTA

3131

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 32: Ga

MTAMTA

Crossover and Mutation Crossover and Mutation

Crossover and mutation là hai phép toán cơ bản của thuật toán gen Crossover and mutation là hai phép toán cơ bản của thuật toán gen

Sự thi hành thuật toán Gen phụ thuộc rất nhiều vào crossover và Sự thi hành thuật toán Gen phụ thuộc rất nhiều vào crossover và mutationmutation

Kiểu và sự thể hiện của các toán tử này phụ thuộc vào kiểu mã hóa và Kiểu và sự thể hiện của các toán tử này phụ thuộc vào kiểu mã hóa và cũng phụ thuộc vào bài toáncũng phụ thuộc vào bài toán

Có nhiều cách để thực hiện toán tử crossover và mutation. Có nhiều cách để thực hiện toán tử crossover và mutation.

Page 33: Ga

MTAMTA

Crossover for Binary Crossover for Binary Encoding Encoding

Single point crossoverSingle point crossover – một – một điểm crossover được lựa chọn, điểm crossover được lựa chọn, chuỗi nhị phân từ bắt đầu của chuỗi nhị phân từ bắt đầu của NST tới điểm crossover được NST tới điểm crossover được sao chép từ cha 1, phần cuối sao chép từ cha 1, phần cuối được sao chép từ cha còn lạiđược sao chép từ cha còn lại

1100111001011+11011011+11011111111 = = 1100111111001111

Page 34: Ga

MTAMTA

Two point crossoverTwo point crossover

Hai điểm crossover được chọnHai điểm crossover được chọn Một chuỗi nhị phân từ bắt đầu của Một chuỗi nhị phân từ bắt đầu của

NST tới điểm crossover đầu tiên NST tới điểm crossover đầu tiên được sao chép từ cha thứ nhất, được sao chép từ cha thứ nhất, phần từ điểm đầu tiên tới điểm thứ phần từ điểm đầu tiên tới điểm thứ hai crossover được sao chép từ cha hai crossover được sao chép từ cha thứ hai và phần cuối được sao chép thứ hai và phần cuối được sao chép từ cha đầu tiêntừ cha đầu tiên

1111001000101111 + 11 + 110111011111 = 11 = 1101111111011111

Page 35: Ga

MTAMTA Crossover for Binary EncodingCrossover for Binary Encoding

Uniform crossoverUniform crossover - Các bit được sao chép ngẫu nhiên từ cha - Các bit được sao chép ngẫu nhiên từ cha thứ nhất hoặc cha thứ haithứ nhất hoặc cha thứ hai

Arithmetic crossoverArithmetic crossover – Một phép toán được thực hiện để tạo ra – Một phép toán được thực hiện để tạo ra con mới (new offspring) con mới (new offspring)

11001011 + 11011111 = 11001001 (LOGICAL AND) 11001011 + 11011111 = 11001001 (LOGICAL AND)

Page 36: Ga

MTAMTA Mutation for Binary EncodingMutation for Binary Encoding

Đảo bitĐảo bit – chọn các bits và đảo ngược giá trị của chúng – chọn các bits và đảo ngược giá trị của chúng

1111001001 =>  1001001 =>  100001001 001001

Page 37: Ga

MTAMTACrossover for Permutation EncodingCrossover for Permutation Encoding

Single point crossoverSingle point crossover – lựa chọn một điểm để lai ghép, the – lựa chọn một điểm để lai ghép, the permutation được sao chép từ điểm đầu tiên đến điểm lai permutation được sao chép từ điểm đầu tiên đến điểm lai ghép, sau đó cha còn lại được duyệt qua từng số và nếu số đó ghép, sau đó cha còn lại được duyệt qua từng số và nếu số đó chưa có trong con, nó được thêm theo thứ tự của NST thứ haichưa có trong con, nó được thêm theo thứ tự của NST thứ hai

((1 2 3 4 51 2 3 4 5 | 6 7 8 9) + (4 5 3 | 6 7 8 9) + (4 5 3 6 6 22 9 9 11 7 7 88) = () = (1 2 3 4 51 2 3 4 5 6 9 7 8) 6 9 7 8)

Note: có nhiều cách để tạo ra phần sau điểm lai ghépNote: có nhiều cách để tạo ra phần sau điểm lai ghép

Page 38: Ga

MTAMTA Crossover for Permutation EncodingCrossover for Permutation Encoding

two point crossovertwo point crossover – – Đầu tiên, chọn hai điểm cắt, Đầu tiên, chọn hai điểm cắt,

biểu thị bởi dấu “|”, điểm cắt này được chen vào biểu thị bởi dấu “|”, điểm cắt này được chen vào

một cách ngẫu nhiên vào cùng một vị trí của mỗi một cách ngẫu nhiên vào cùng một vị trí của mỗi

mẫu cha mẹ. mẫu cha mẹ.

Page 39: Ga

MTAMTAVí dụ : Ví dụ :

- Có hai mẫu cho mẹ p1 và p2, với các điểm cắt - Có hai mẫu cho mẹ p1 và p2, với các điểm cắt

sau thành phố thứ ba và thứ bảy sau thành phố thứ ba và thứ bảy

p1 = (1 9 2 | 4 6 5 7 | 8 3) p1 = (1 9 2 | 4 6 5 7 | 8 3)

p2 = (4 5 9 | 1 8 7 6 | 2 3) p2 = (4 5 9 | 1 8 7 6 | 2 3)

- Hai mẫu con c1 và c2 sẽ được sinh ra theo cách - Hai mẫu con c1 và c2 sẽ được sinh ra theo cách

sau. Đầu tiên, các đoạn giữa hai điểm cắt sẽ được chép sau. Đầu tiên, các đoạn giữa hai điểm cắt sẽ được chép

vào các mẫu con: vào các mẫu con:

c1 = (x x x | 4 6 5 7 | x x) c1 = (x x x | 4 6 5 7 | x x)

c2 = (x x x | 1 8 7 6 | x x) c2 = (x x x | 1 8 7 6 | x x)

Page 40: Ga

MTAMTA- Bước kế tiếp là bắt đầu từ điểm cắt thứ hai - Bước kế tiếp là bắt đầu từ điểm cắt thứ hai

của một trong hai mẫu cha mẹ, nếu ta đang muốn của một trong hai mẫu cha mẹ, nếu ta đang muốn

hoàn tất mẫu c1, thì ta sẽ bắt đầu từ điểm cắt thứ hai hoàn tất mẫu c1, thì ta sẽ bắt đầu từ điểm cắt thứ hai

của mẫu p2, ta chép các thành phố từ điểm cắt này của mẫu p2, ta chép các thành phố từ điểm cắt này

theo thứ tự vào các chỗ còn trống của c1, bỏ qua theo thứ tự vào các chỗ còn trống của c1, bỏ qua

những thành phố mà c1 đã có. Khi đến cuối mẫu p2, những thành phố mà c1 đã có. Khi đến cuối mẫu p2,

thì quay lại đầu mẫu p2 tiếp tục chép sang c1 cho thì quay lại đầu mẫu p2 tiếp tục chép sang c1 cho

đến khi c1 đủ. đến khi c1 đủ.

Page 41: Ga

MTAMTA

Page 42: Ga

MTAMTA Mutation of Permuation EncodingMutation of Permuation Encoding

Order changingOrder changing – hai điểm được lựa chọn và thay đổi – hai điểm được lựa chọn và thay đổi

(1 (1 22 3 4 5 6 3 4 5 6 88 9 7) => (1 9 7) => (1 88 3 4 5 6 3 4 5 6 22 9 7) 9 7)

Page 43: Ga

MTAMTA Lai ghép đối với mã hóa giá trịLai ghép đối với mã hóa giá trị

Có thể sử dụng các lai ghép như kiểu mã hóa nhị Có thể sử dụng các lai ghép như kiểu mã hóa nhị

phânphân

Ví dụ:Ví dụ:

(back), (back),(back), (back), (right), (forward), (left) (right), (forward), (left)

(right), (back), (right), (back), (left), (back), (forward )(left), (back), (forward )

=>=> (back), (back),(back), (back), (left), (back), (forward )(left), (back), (forward )

Page 44: Ga

MTAMTA Đột biến đối với mã hóa giá trịĐột biến đối với mã hóa giá trị

Cộng vào hoặc trừ đi một số nhỏ từ các giá trị đã Cộng vào hoặc trừ đi một số nhỏ từ các giá trị đã

được chọn được chọn

Ví dụ:Ví dụ:(1.29  5.68  (1.29  5.68  2.862.86    4.114.11  5.55) => (1.29  5.68    5.55) => (1.29  5.68  2.732.73    4.224.22  5.55)  5.55)

Page 45: Ga

MTAMTA

Crossover for Tree EncodingCrossover for Tree Encoding

Tree crossoverTree crossover – Một điểm đột biến được chọn trong cả hai – Một điểm đột biến được chọn trong cả hai

cha, các cha được phân chia bởi điểm đột biến và những phần cha, các cha được phân chia bởi điểm đột biến và những phần

sau điểm đột biến được thay đổi để tạo ra các con sau điểm đột biến được thay đổi để tạo ra các con

Page 46: Ga

MTAMTAĐột biến đối với mã hóa dạng câyĐột biến đối với mã hóa dạng cây

^

3X

5^

3X

4

Page 47: Ga

MTAMTA

Crossover and Mutation ProbabilityCrossover and Mutation Probability

Có hai tham số cơ bản của các thuật toán gen - xác suất crossover và xác suất mutation Có hai tham số cơ bản của các thuật toán gen - xác suất crossover và xác suất mutation

Crossover probabilityCrossover probability: mức độ thường xuyên crossover được thực hiện : mức độ thường xuyên crossover được thực hiện

Nếu không có crossover, offspring được sao chép chính xác từ cha mẹ. Nếu không có crossover, offspring được sao chép chính xác từ cha mẹ.

Nếu có crossover, offspring con được tạo ra từ một phần của NST cha Nếu có crossover, offspring con được tạo ra từ một phần của NST cha

Nếu xác suất là Nếu xác suất là 100%100%, thì tất cả offspring được tạo ra bởi crossover. , thì tất cả offspring được tạo ra bởi crossover.

Nếu là Nếu là 0%0%, thế hệ mới tạo ra bằng cách sao chép nguyên các NST của thế hệ cũ, thế hệ mới tạo ra bằng cách sao chép nguyên các NST của thế hệ cũ

Crossover hy vọng tạo ra các NST mới sẽ chứa phần tốt của các NST cũ và như vậy NST Crossover hy vọng tạo ra các NST mới sẽ chứa phần tốt của các NST cũ và như vậy NST mới sẽ tốt hơn mới sẽ tốt hơn

Page 48: Ga

MTAMTAMutation ProbabilityMutation Probability

Mutation probabilityMutation probability: Mức độ thường xuyên của các phần sẽ được đột biến: Mức độ thường xuyên của các phần sẽ được đột biến

Nếu không có mutation, offspring sinh ra sẽ giống sau khi crossover (or Nếu không có mutation, offspring sinh ra sẽ giống sau khi crossover (or directly copied)directly copied)

Nếu mutation được thực hiện,một hay nhiều phần của NST sẽ được thay đổiNếu mutation được thực hiện,một hay nhiều phần của NST sẽ được thay đổi

Nếu xác suất là Nếu xác suất là 100%100%, thì NST sẽ được thay đổi, nếu là , thì NST sẽ được thay đổi, nếu là 0%0%, không có thay đổi gì, không có thay đổi gì

Mutation sinh ra để tránh thuật toán gen rơi vào cực trị địa phươngMutation sinh ra để tránh thuật toán gen rơi vào cực trị địa phương

Mutation should not occur very often, because then the genetic algorithm will Mutation should not occur very often, because then the genetic algorithm will change to a change to a random searchrandom search. .

Page 49: Ga

MTAMTA

4949

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 50: Ga

MTAMTA

5050

Các thành phần cơ bản của Các thành phần cơ bản của GAsGAs

Mã hóa (encoding)Mã hóa (encoding) Khởi tạo quần thể(innitial population generation )Khởi tạo quần thể(innitial population generation ) Hàm thích nghi (fitness Function)Hàm thích nghi (fitness Function) Lựa chọn cho sự kết hợp lại (Selection for recombination)Lựa chọn cho sự kết hợp lại (Selection for recombination) Lai ghép (Crossover)Lai ghép (Crossover) Đột biến (Mutation)Đột biến (Mutation) Chiến lược thay thế (Replacement Strategy)Chiến lược thay thế (Replacement Strategy) Tiêu chuẩn kết thúc (Termination Criteria)Tiêu chuẩn kết thúc (Termination Criteria)

Page 51: Ga

MTAMTA

5151

Termination Termination CriteriaCriteria Thuật toán dừng khi quần thể hội tụ,Thuật toán dừng khi quần thể hội tụ, i.e. cá thể tốt nhất trong i.e. cá thể tốt nhất trong

quần thể giống với kết quả mong muốnquần thể giống với kết quả mong muốn Kết thúc khi số thế hệ sinh ra đạt đến số sinh ra trướcKết thúc khi số thế hệ sinh ra đạt đến số sinh ra trước Kết thúc khi các cả thể trở lên giống nhauKết thúc khi các cả thể trở lên giống nhau Kết thúc khi cá thể tốt nhất trong quần thể không thay đổi Kết thúc khi cá thể tốt nhất trong quần thể không thay đổi

theo thời giantheo thời gian

Page 52: Ga

MTAMTAGeneral Recommendations for Genetic AlgorithmsGeneral Recommendations for Genetic Algorithms

Thử nghiệm thuật toán gen cho bài toán cụ thể, bởi Thử nghiệm thuật toán gen cho bài toán cụ thể, bởi vì không có lý thuyết chung có thế làm hợp các vì không có lý thuyết chung có thế làm hợp các tham số của thuật toán gen cho bất cứ bài toán nàotham số của thuật toán gen cho bất cứ bài toán nào

Sự giới thiệu thường là kết quả việc học kinh Sự giới thiệu thường là kết quả việc học kinh nghiệm của thuật toán gen, cái thường thực hiện chỉ nghiệm của thuật toán gen, cái thường thực hiện chỉ trên mã hóa nhị phân trên mã hóa nhị phân

Page 53: Ga

MTAMTA Recommendations for Genetic AlgorithmsRecommendations for Genetic Algorithms

Crossover rateCrossover rateTốc độ lai ghép thường là cao, khoảng Tốc độ lai ghép thường là cao, khoảng 80%-95%80%-95%. (Mặc dù vậy một vài kết quả cho một vài bài . (Mặc dù vậy một vài kết quả cho một vài bài toán, tốc độ lai ghép khoảng 60% là tốt nhất.)toán, tốc độ lai ghép khoảng 60% là tốt nhất.)

Mutation rateMutation rateXác suất đột biến thường là rất thấp. Tốc độ tốt nhất khoảng Xác suất đột biến thường là rất thấp. Tốc độ tốt nhất khoảng 0.5%-1%0.5%-1%. .

Population sizePopulation size

Kích thước quần thể rất lớn thường không cải tiến tốc độ của thuật toán gen (in the sense of speed of finding Kích thước quần thể rất lớn thường không cải tiến tốc độ của thuật toán gen (in the sense of speed of finding solution). solution).

Kích thước tốt khoảng Kích thước tốt khoảng 20-3020-30, Mặc dù một vài trường hợp khoảng 50-100 thì tốt hơn. , Mặc dù một vài trường hợp khoảng 50-100 thì tốt hơn.

Nghiên cứu thấy rằng kích thước của quần thể phụ thuộc vào kích thước của chuỗi mã hóa (chromosomes). Nghiên cứu thấy rằng kích thước của quần thể phụ thuộc vào kích thước của chuỗi mã hóa (chromosomes).

Nếu có NST 32 bits, thì kích thước quần thể nên cao hơn 16Nếu có NST 32 bits, thì kích thước quần thể nên cao hơn 16

Page 54: Ga

MTAMTARecommendations for Genetic AlgorithmsRecommendations for Genetic Algorithms

SelectionSelection

roulette wheel selectionroulette wheel selection có thế được sử dụng, nhưng thỉnh thoảng rank có thế được sử dụng, nhưng thỉnh thoảng rank selection có thể tốt hơn selection có thể tốt hơn

There are also some more sophisticated methods that change parameters of There are also some more sophisticated methods that change parameters of selection during the running of a genetic algorithm. selection during the running of a genetic algorithm.

ElitismElitism should be used if you do not use any other method for saving the best should be used if you do not use any other method for saving the best solutions. solutions.

EncodingEncodingPhụ thuộc vào bài toánPhụ thuộc vào bài toán

Crossover and mutation typeCrossover and mutation typePhụ thuộc vào mã hóa và bài toán Phụ thuộc vào mã hóa và bài toán

Page 55: Ga

MTAMTAƯu điểmƯu điểm

Ưu điểm chính là khả năng song song của thuật toán Ưu điểm chính là khả năng song song của thuật toán

Gas duyệt qua không gian tìm kiếm sử dụng nhiều cá thể (and with Gas duyệt qua không gian tìm kiếm sử dụng nhiều cá thể (and with genotype rather than phenotype) và ít mắc phải cực trị địa phương genotype rather than phenotype) và ít mắc phải cực trị địa phương như các thuật toán khác như các thuật toán khác

Dễ thể hiện Dễ thể hiện

Khi đã có thuật toán gen cơ bản, chỉ cần viết một NST mới (just one Khi đã có thuật toán gen cơ bản, chỉ cần viết một NST mới (just one object) để xử lý bài toán khácobject) để xử lý bài toán khác

Với cùng cách mã hóa bạn có thể thay đổi hàm thích nghi Với cùng cách mã hóa bạn có thể thay đổi hàm thích nghi

Mặc dù vậy, trong một số trường hợp chọn và thể hiện mã hóa sẽ gặp Mặc dù vậy, trong một số trường hợp chọn và thể hiện mã hóa sẽ gặp khó khănkhó khăn

Page 56: Ga

MTAMTA Nhược điểmNhược điểm

Nhược điểm chính của Gas là thới gian tính toán Nhược điểm chính của Gas là thới gian tính toán

GAs có thể chậm hơn các thuật toán khácGAs có thể chậm hơn các thuật toán khác

Có thể kết thúc tính toán bất cứ lúc nào, Có thể kết thúc tính toán bất cứ lúc nào,

Page 57: Ga

MTAMTA

5757