Tải bản đầy đủ (.pdf) (49 trang)

Áp dụng giải thuật di truyền giải bài toán người du lịch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 49 trang )

LỜI CAM ĐOAN
Những kiến thức trình bày trong luận văn là do tôi tìm hiểu, nghiên cứu và
trình bày theo những kiến thức tổng hợp của cá nhân. Kết quả nghiên cứu trong luận
văn này chưa từng được công bố tại bất kỳ công trình nào khác. Trong quá trình làm
luận văn, tôi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham
khảo. Tôi xin cam đoan đây là công trình nghiên cứu của tôi và không sao chép của
bất kỳ ai.
Tôi xin chịu hoàn toàn trách nhiệm, nếu sai, tôi xin chịu mọi hình thức kỷ
luật theo quy định.
Hà Nội, ngày 15 tháng 3 năm 2016
Học viên
Nguyễn Minh Thúy

i


LỜI CẢM ƠN
Để hoàn thành được luận văn này, tôi đã nhận được rất nhiều sự động viên,
giúp đỡ của nhiều cá nhân và tập thể.
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS. TS. Huỳnh Thị
Thanh Bình, Trường Đại học Bách Khoa Hà Nội đã nhiệt tình hướng dẫn, tạo điều
kiện thuận lợi cho tôi nghiên cứu khoa học và giúp tôi có thể hoàn thành luận văn
một cách tốt nhất.
Tôi cũng xin gửi lời cảm ơn tới các anh chị em và các bạn trong nhóm
nghiên cứu, tìm hiểu các phương thức phát triển, cải tiến để áp dụng giải thuật di
truyền trong giải bài toán người du lịch đã giúp đỡ tôi trong suốt quá trình học tập
và nghiên cứu.
Cuối cùng tôi xin gửi lời cám ơn đến gia đình, bạn bè, những người đã luôn
bên tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu
của mình.
Học viên


Nguyễn Minh Thúy

ii


MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ..............................................3
DANH MỤC CÁC BẢNG..........................................................................................4
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .....................................................................5
MỞ ĐẦU .....................................................................................................................7
CHƯƠNG 1 - TỔNG QUAN CƠ SỞ LÝ THUYẾT ..............................................9
1.1. Cơ sở lý thuyết đồ thị ....................................................................................9
1.1.1. Định nghĩa đồ thị ....................................................................................9
1.1.2. Đường đi, chu trình, đồ thị liên thông.....................................................9
1.1.3. Biểu diễn đồ thị trên máy tính...............................................................10
1.1.4. Đồ thị Euler và đồ thị Hamilton ............................................................12
1.2. Tổng quan về giải thuật di truyền................................................................14
1.2.1. Giới thiệu ..............................................................................................14
1.2.2. Các khái niệm cơ bản. ...........................................................................14
1.2.3. Mô hình giải thuật di truyền..................................................................16
1.2.4. Cơ chế thực hiện giải thuật di truyền ....................................................17
1.2.5. Các tham số cơ bản của giải thuật.........................................................22
1.2.6. Các ứng dụng của giải thuật di truyền. .................................................22
CHƯƠNG 2 - BÀI TOÁN NGƯỜI DU LỊCH .....................................................25
2.1. Giới thiệu bài toán. ......................................................................................25
2.2. Ứng dụng của bài toán.................................................................................26
2.3. Các nghiên cứu liên quan ............................................................................27
2.3.1. Giải thuật chính xác ..............................................................................27
2.3.2. Giải thuật xấp xỉ ....................................................................................28
CHƯƠNG 3 - GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN NGƯỜI DU LỊCH

...............................................................................................................................31
3.1. Mã hóa lời giải.............................................................................................31
3.2. Khởi tạo quần thể ........................................................................................31
3.3. Chọn lọc ......................................................................................................32
3.3.1. Lựa chọn tranh đấu ...............................................................................32
3.3.2. Lựa chọn tỷ lệ (bánh xe Roulette) .........................................................32
1


3.4. Lai ghép .......................................................................................................33
3.4.1. Phép lai ánh xạ từng phần (PMX - Partial Mappel Crossover) ............33
3.4.2. Phép lai thứ tự (OX - Order Crossover)................................................34
3.4.3. Phép lai MSCX (Modified Sequential Constructive Crossover) ..........34
3.5. Đột biến .......................................................................................................36
3.5.1. Đột biến đảo ngược trình tự (RSM - Reverse Sequence Mutation) .....36
3.5.2. Đột biến THRORS ................................................................................36
3.6. Chiến lược nạp lại quần thể .........................................................................36
CHƯƠNG 4 - KẾT QUẢ THỰC NGHIỆM .........................................................38
4.1. Dữ liệu thực nghiệm ....................................................................................38
4.2. Môi trường thực nghiệm..............................................................................38
4.3. Kết quả thực nghiệm ...................................................................................39
4.4. Kết luận .......................................................................................................44
4.5. Hướng phát triển ..........................................................................................45
TÀI LIỆU THAM KHẢO .........................................................................................46

2


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt


Thuật ngữ

Giải thích

GA

Genetic Algorithm

Giải thuật di truyền

TSP

Travelling Salesman problem

Bài toán người du lịch

PMX

Partial Mappel Crossover

Phép lai ánh xạ từng phần

OX

Order Crossover

Phép lai thứ tự

MSCX


Modified Sequential Constructive
Crossover

Phép lai MSCX

DSA

Digital Subtraction Angiography

Tên một hệ thống chụp
động mạch

RSM

Reverse Sequence Mutation

Đột biến đảo ngược trình
tự

THRORS

Phép đột biến THRORS

3


DANH MỤC CÁC BẢNG
Bảng 1: Ma trận khoảng cách (chi phí) .....................................................................35
Bảng 2: Danh sách các bộ dữ liệu sử dụng ...............................................................38

Bảng 3: Kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và tranh đấu .39
Bảng 4: Kết quả tốt nhất đạt được khi sử dụng các phép lai OX, PMX và MSCX ..41

4


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Sơ đồ mạng máy tính .....................................................................................9
Hình 2: Đồ thị đầy đủ ..................................................................................................9
Hình 3: Đồ thị G và ma trận kề của đồ thị G ............................................................10
Hình 4: Đồ thị có hướng và ma trận liên thuộc đỉnh – cạnh .....................................11
Hình 5: Đồ thị G và danh sách cạnh của đồ thị G .....................................................11
Hình 6: Đồ thị G và danh sách kề của đồ thị G ........................................................11
Hình 7: Đồ thị G1, G2, G3 ........................................................................................12
Hình 8: Đồ thị G1, G2, G3 ........................................................................................13
Hình 9: Đồ thị đấu loại D5, Đồ thị đấu loại liên thông mạnh D6 .............................13
Hình 10: Mô hình giải thuật di truyền.......................................................................17
Hình 11: Bài toán người du lịch ................................................................................25
Hình 12: Một lời giải của bài toán người du lịch ......................................................31
Hình 13: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và
tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 50.000 – 200.000
...................................................................................................................................39
Hình 14: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và
tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 5.000 – 50.000 .40
Hình 15: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và
tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 0 – 5.000 ..........40
Hình 16: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 5000 – 50.000 ......41
Hình 17: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 50.000 – 500.000 .42

Hình 18: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 0 – 5000 ...............42
Hình 19: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
MSCX qua từng thế hệ (xét 500 thế hệ đầu) của bộ dữ liệu wi29 ............................43

5


Hình 20: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
MSCX qua từng thế hệ (xét 10.000 thế hệ đầu) của bộ dữ liệu gil262.....................43
Hình 21: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai PMX và MSCX
qua từng thế hệ (xét 50.000 thế hệ đầu) của bộ dữ liệu pr1002 ................................44

6


MỞ ĐẦU
1. Tính cấp thiết của đề tài
Bài toán người du lịch (Traveling Saleman Problem – TSP) là một bài toán
được nghiên cứu rộng rãi trong lĩnh vực khoa học máy tính. Từ những năm 1940, có
rất nhiều bài báo, những công trình nghiên cứu giải quyết bài toán này. Tuy vậy, sau
hơn nửa thế kỷ nghiên cứu, bài toán vẫn chưa hoàn toàn được giải. Vì vậy, bài toán
người du lịch được xếp vào trong danh mục những bài toán khó. Không chỉ vậy, bài
toán người du lịch còn có nhiều ứng dụng trong cuộc sống hàng ngày.
Sau nhiều năm nghiên cứu, nhiều giải pháp đã được đưa ra nhằm giải bài toán
người du lịch. Đề tài “Áp dụng giải thuật di truyền giải bài toán người du lịch”
được thực hiện nhằm đưa ra những tìm hiểu khái quát nhất về giải thuật di truyền
đặc biệt là cơ chế thực hiện và nguyên lý hoạt động của nó. Từ đó có thể xây dựng
chương trình hoàn chỉnh về thuật giải và cách áp dụng thuật giải di truyền vào giải
bài toán người du lịch để đưa ra lời giải tốt nhất trong thời gian ngắn nhất.

2. Mục tiêu nghiên cứu
Về mặt lý thuyết, trước tiên tác giả nghiên cứu những kiến thức nền tảng như
cơ sở lý thuyết thuật giải di truyền, bài toán người du lịch và áp dụng giải thuật di
truyền giải bài toán người du lịch. Xây dựng chương trình thực nghiệm, đánh giá và
phân tích kết quả đạt được.
3. Bố cục luận văn
Cấu trúc luận văn gồm bốn chương với nội dung chính như sau:
Chương 1: Tổng quan cơ sở lý thuyết: Chương này giới thiệu về cơ sở lý thuyết đồ
thị, giải thuật di truyền.
Chương 2: Bài toán người du lịch: Phát biểu bài toán người du lịch, các nghiên cứu
liên quan và một số ứng dụng của bài toán trong thực tiễn.

7


Chương 3: Áp dụng giải thuật di truyền giải bài toán người du lịch
Chương 4: Kết quả thực nghiệm: Các kết quả trong quá trình chạy thực nghiệm, các
so sánh, đánh giá cũng sẽ được đưa ra trong chương này.

8


Áp dụng giải thuật di truyền giải bài toán người du lịch

CHƯƠNG 1 - TỔNG QUAN CƠ SỞ LÝ THUYẾT
1.1. Cơ sở lý thuyết đồ thị
1.1.1. Định nghĩa đồ thị
a) Định nghĩa 1
Đơn đồ thị vô hướng G = (V,E) bao gồm V là tập các đỉnh, và E là tập các cặp
không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh.


Hình 1: Sơ đồ mạng máy tính

b) Định nghĩa 2
Đồ thị

gọi là đầy đủ nếu mọi cặp đỉnh trong

đều có cạnh nối.

Hình 2: Đồ thị đầy đủ

1.1.2. Đường đi, chu trình, đồ thị liên thông
1.1.2.1. Định nghĩa 1
Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên dương, trên
đồ thị vô hướng G = (V, E) là dãy
x0 , x1 ,…, xn-1 , xn
trong đó u = x0 , v = xn , (xi , xi+1 ) ∈ E, i = 0, 1, 2,…, n-1.
9


Áp dụng giải thuật di truyền giải bài toán người du lịch

Đường đi nói trên còn có thể biểu diễn dưới dạng dãy các cạnh:
(x0 , x1 ), (x1 , x2 ), …, (xn-1, xn )
Đỉnh u gọi là đỉnh đầu, còn đỉnh v gọi là đỉnh cuối của đường đi. Đường đi có đỉnh
đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu trình . Đường đi hay chu trình
được gọi là đơn nếu như không có cạnh nào bị lặp lại.
1.1.3. Biểu diễn đồ thị trên máy tính
1.1.3.1. Ma trận kề, ma trận trọng số

Xét đơn đồ thị vô hướng G = (V, E), với tập đỉnh V = {1, 2,..., n}, tập cạnh
E={e1, e2, …, em}. Ta gọi ma trận kề của đồ thị G là (0,l)-ma trận
A= {aij : i,j= 1, 2 , …, n}
với các phần tử được xác định theo quy tắc sau đây:
aij = 0, nếu (i, j ) ∉ E và aij = 1, nếu (i, j ) ∈ E , i. j = 1,2.....n.
Ví dụ: Ma trận kề cuả đồ thị vô hướng G cho trong hình là:

Hình 3: Đồ thị G và ma trận kề của đồ thị G

1.1.3.2. Ma trận liên thuộc đỉnh - cạnh
Xét G = (V, E), {V = {1, 2, …, n}, E = {e1, e2, …, em} là đơn đồ thị có hướng.
Xây dựng ma trận A = {aij: i = 1, 2, …, n; j = 1,2, …, m), trong đó
aij = {

10


Áp dụng giải thuật di truyền giải bài toán người du lịch

Hình 4: Đồ thị có hướng và ma trận liên thuộc đỉnh – cạnh

1.1.3.3. Danh sách cạnh (cung)
Trong trường hợp đồ thị thưa (đồ thị có số cạnh m thoả mãn bất đẳng thức:
m<6n) người ta thường dùng cách biểu diễn đồ thị dưới dạng danh sách cạnh.
Ví dụ:
Đầu
1
1
1
2

2
3
4
4
5

Cuối
2
3
5
3
5
4
5
6
6

Hình 5: Đồ thị G và danh sách cạnh của đồ thị G

1.1.3.4. Danh sách kề

Hình 6: Đồ thị G và danh sách kề của đồ thị G

11


Áp dụng giải thuật di truyền giải bài toán người du lịch

1.1.4. Đồ thị Euler và đồ thị Hamilton
1.1.4.1. Đồ thị Euler

Định nghĩa:
Chu trình đơn trong G đi qua mỗi cạnh của nó một lần được gọi là chu trình
Euler. Đường đi đơn trong G đi qua mỗi cạnh của nó một lần được gọi là đường đi
Euler. Đồ thị được gọi là đồ thị Euler nếu nó có chu trình Euler, và gọi là đồ thị nửa
Euler nếu nó có đường đi Euler.
Mọi đồ thị Euler luôn là nửa Euler, nhưng điều ngược lại không luôn đúng.
Ví dụ: Đồ thị G1 trong hình 7 là đồ thị Euler vì nó có chu trình Euler a, e, c, d, e,
b, a. Đồ thị G3 không có chu trình Euler nhưng nó có đường đi Euler a, c, d, e, b, d,
a, b, vì thế G3 là đồ thị nửa Euler. Đồ thị G2 không có chu trình cũng như đường đi
Euler.

G1

G2

G3

Hình 7: Đồ thị G1, G2, G3

Định lý 1 (Euler): Đồ thị vô hướng liên thông G là đồ thị Euler khi và chỉ khi mọi
đỉnh của G đều có bậc chẵn.
Định lý 2: Đồ thị có hướng liên thông mạnh là đồ thị Euler khi và chỉ khi:
Deg+ (v)=deg- (v), ∀ v ∈ V.
1.1.4.2. Đồ thị Hamilton
Định nghĩa:
Đường đi qua tất cả các đỉnh của đồ thị mỗi đỉnh đúng một lần được gọi là
đường đi Hamilton. Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các đỉnh còn

12



Áp dụng giải thuật di truyền giải bài toán người du lịch

lại mỗi đỉnh đúng một lần rồi quay trở về v được gọi là chu trình Hamilton. Đồ thị
G được gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton và gọi là đồ thị nửa
Hamilton nếu nó có đường đi Hamilton
Ví dụ: Trong hình 8: G3 là Hamilton, G2 là nửa Hamilton còn G1 không là nửa
Hamilton.

Hình 8: Đồ thị G1, G2, G3

Định lý 1 (Dirak 1952): Đơn đồ thị vô hướng G với n>2 đỉnh, mỗi đỉnh có bậc
không nhỏ hơn n/2 là đồ thị Hamilton.
Định lý 2: Giả sử G là đồ có hướng liên thông với n đỉnh.
Nếu deg+ (v) ≥ n/2, deg – (v) ≥ n/2, ∀ v thì G là Hamilton.
Định lý 3:
 Mọi đồ thị đấu loại là nửa Hamilton.
 Mọi đồ thị đấu loại liên thông mạnh là Hamilton.
Ví dụ: Đồ thị đấu loại D5, D6 được cho trong hình 9.

Hình 9: Đồ thị đấu loại D5, Đồ thị đấu loại liên thông mạnh D6
13


Áp dụng giải thuật di truyền giải bài toán người du lịch

1.2. Tổng quan về giải thuật di truyền
1.2.1. Giới thiệu
Giải thuật di truyền (GA - Genetic Algorithm) là kỹ thuật được xây dựng theo
quá trình thích nghi tiến hóa của các quần thể sinh học dựa trên học thuyết Darwin.

GA là phương thức giải quyết vấn đề bắt chước sự tiến hóa của con người hay sinh
vật. GA giúp tìm ra giải pháp tối ưu hay tốt nhất trong điều kiện thời gian và không
gian cho phép. Tư tưởng của thuật toán di truyền là mô phỏng các hiện tượng tự
nhiên là kế thừa và đấu tranh sinh tồn.
GA xét đến toàn bộ các giải pháp, bằng cách xét trước nhất một số giải pháp
sau đó loại bỏ những thành phần không thích hợp và chọn những thành phần thích
nghi hơn để tạo sinh và biến hóa nhằm mục đích tạo ra nhiều giải pháp mới có hệ số
thích nghi ngày càng cao .
Quá trình phát triển của giải thuật di truyền bắt đầu từ năm 1960, khi ý tưởng
đầu tiên về tính toán tiến hóa được Rechenberg giới thiệu trong công trình
“Evolution Strategies” (Các chiến lược tiến hóa). Ý tưởng này sau đó được rất nhiều
nhà nghiên cứu phát triển. Tiếp theo đó, giải thuật gen do John Holland phát minh
năm 1975 đã được giới thiệu và tổng hợp đầy đủ trong tác phẩm “Adaption in
Natural and Artificial Systems” (Sự thích nghi trong các hệ tự nhiên và nhân tạo)
được xuất bản cùng năm đó. Sau đó đến năm 1992, Michalewicz đã phát triển và
hoàn thành phương pháp này. Hai lĩnh vực được thuật giải di truyền ứng dụng đầu
tiên là: tối ưu hóa và học tập máy. Ngày nay, giải thuật này vẫn được các nhà khoa
học trên thế giới tìm hiểu, nghiên cứu và phát triển đặc biệt trong các lĩnh vực tối ưu
hóa một lĩnh vực có rất nhiều bài toán thú vị, được ứng dụng nhiều trong thực tiễn
nhưng thường khó và chưa có giải thuật hiệu quả để giải.
1.2.2. Các khái niệm cơ bản.
Giải thuật di truyền là giải thuật được xây dựng dựa trên quá trình tiến hóa
trong tự nhiên. Chính vì vậy, các thuật ngữ và khái niệm được sử dụng để trình bày
giải thuật đều có liên quan đến các thuật ngữ trong di truyền học.

14


Áp dụng giải thuật di truyền giải bài toán người du lịch


1.2.2.1. Cá thể, nhiễm sắc thể.
Các cá thể hay còn được gọi là các chuỗi gen hay nhiễm sắc thể. Điều này có
thể sẽ gây ra một số nhầm lẫn với những ai chưa biết hay tìm hiểu về giải thuật di
truyền. Không giống như di truyền học trong tự nhiên, một cơ thể của một chủng
loại đã cho mang một số nhiễm sắc thể nào đó nhưng trong giải thuật di truyền ta
chỉ nói về những cá thể có một nhiễm sắc thể và các cá thể này biểu diễn một lời
giải của bài toán đang được giải. Do đó, trong giải thuật di truyền, cá thể và nhiễm
sắc thể là tương đương.
1.2.2.2. Quần thể.
Quần thể là tập hợp các cá thể thuộc cùng một loài hay dưới loài sinh sống
trong một sinh cảnh nhất định hay còn được biết với khái niệm khác là tập các đối
tượng có ít nhất một đặc tính chung là đối tượng của cuộc phân tích thống kê. Trong
giải thuật di truyền quần thể chính là tập hợp các lời giải của bài toán đang giải.
1.2.2.3. Chọn lọc.
Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm thay đổi các
cá thể trong quần thể. Những cá thể tốt, thích nghi được với điều kiện sống thì có
khả năng đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản. Các cá thể không thích
nghi được với điều kiện sống thì dần mất đi. Dựa vào nguyên lý của quá trình chọn
lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong GA chính là cách
chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai
ghép, với mục đích là sinh ra các cá thể mới tốt hơn biểu diễn lời giải tối ưu hơn. Có
nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể
tốt sẽ có khả năng được chọn cao hơn.
1.2.2.4. Lai ghép.
Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế
hệ con. Trong giải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tính
chất (thành phần) trong hai lời giải cha mẹ nào đó để sinh ra một lời giải mới mà có

15



Áp dụng giải thuật di truyền giải bài toán người du lịch

đặc tính mong muốn là tốt hơn thế hệ cha mẹ. Đây là một quá trình xảy ra chủ yếu
trong giải thuật di truyền.
1.2.2.5. Đột biến.
Đột biến là một sự biến đổi tại một ( hay một số ) gen của nhiễm sắc thể ban
đầu để tạo ra một nhiễm sắc thể mới. Đột biến có xác suất xảy ra thấp hơn lai ghép.
Đột biến có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu. Tuy
nhiên trong giải thuật di truyền thì ta luôn muốn tạo ra những phép đột biến cho
phép cải thiện lời giải qua từng thế hệ.
1.2.3. Mô hình giải thuật di truyền.
Có thể tóm tắt giải thuật di truyền thông qua các bước cơ bản sau:
1. Khởi tạo một quần thể ban đầu (các đáp án ban đầu của bài toán).
2. Xác định giá trị hàm mục tiêu (fitness) cho mỗi cá thể trong quần
thể.
3. Tạo ra quần thể mới bằng cách lai ghép (crossover) từ các cá thể
hiện tại có chọn lọc (selection), đồng thời tạo ra các đột biến
(mutation) trong quần thể mới theo một xác xuất nhất định.
4. Các cá thể trong quần thể mới sinh ra được thay thể cho các cá thể
trong quần thể cũ có độ thích nghi tồi hơn.
5. Nếu điều kiện dừng thỏa thì giải thuật dừng lại và đưa ra lời giải tốt
nhất cùng với giá trị hàm mục tiêu của lời giải đó, nếu không thì
quay lại bước 2. GA sẽ dừng lại khi chạy hết số thế hệ đã cho hoặc
sau một số thế hệ cố định không tìm ra kết quả tốt hơn.

16


Áp dụng giải thuật di truyền giải bài toán người du lịch


Hình 10: Mô hình giải thuật di truyền

1.2.4. Cơ chế thực hiện giải thuật di truyền
Phần này trình bày rõ hơn về các bước trong mô hình giải thuật di truyền đã
được giới thiệu trước đó.
1.2.4.1. Mã hóa cá thể
Vấn đề trước hết cần giải quyết là biểu diễn các cá thể như thế nào để phù hợp
và thuận lợi khi giải bài toán. Tuỳ theo từng bài toán cụ thể mà có những cách biểu
diễn khác nhau.
a) Mã hóa nhị phân
Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1. Ý nghĩa của các
bit này phụ thuộc vào từng tình huống cụ thể. Đây là cách biểu diễn đơn giải nhất
và là cách thông dụng nhất trong các cách biểu diễn.
Ví dụ trong bài toán đơn giản là tìm giá trị X sao cho:

các lời giải

được biểu diễn với dạng nhị phân:
Hệ thập phân

1

2

3

4

Hệ nhị phân 00001 00010 00011 00100


5

6

00101 00110

7
00111

8

...

01000 ...

Mã hóa nhị phân khá phổ biến, tuy nhiên phương thức mã hóa này có một
nhược điểm là có thể tạo ra không gian mã hóa lớn hơn so với không gian giá trị của

17


Áp dụng giải thuật di truyền giải bài toán người du lịch

nhiễm sắc thể, hơn nữa có thể xảy ra trường hợp là các nhiễm sắc thể được tạo ra
không thuộc không gian tìm kiếm. Vì vậy, đối với nhiều bài toán thì biểu diễn nhị
phân là không hữu hiệu.
b) Mã hóa hoán vị
Mã hóa hoán vị biểu diễn mỗi cá thể tương ứng với một hoán vị của tập n ký
hiệu nào đó. Chẳng hạn cách biểu diễn này đã được áp dụng cho bài toán người du

lịch: Một thương gia phải đi qua nhiều thành phố (n). Hãy vạch lộ trình đi qua tất cả
các thành phố đó sao cho quãng đường đi là ngắn nhất. Biết rằng mỗi thành phố chỉ
đi qua một lần. Thông thường, mã hóa hoán vị có ba cách biểu diễn:
1. Biểu diễn kề
Biểu diễn kề là biểu diễn một hành trình là danh sách n thành phố. Thành phố j
được đặt ở vị trí i khi và chỉ khi chuyến đi bắt đầu từ thành phố i đến thành phố j.
Ví dụ vec tơ ( 2 4 8 3 9 7 1 5 6 ) biểu diễn cho hành trình sau đây:
1–2–4–3–8–5–9–6–7
Mỗi thành phố chỉ xuất hiện 1 lần trong danh sách kề nhưng một số danh sách
kề có thể biểu diễn các hành trình bất hợp lệ. Ví dụ vec tơ
(2 4 8 1 9 3 5 7 6)
dẫn đến chu trình 1 – 2 – 4 – 1 không hợp lệ.
2. Biểu diễn thứ tự
Biểu diễn thứ tự biểu diễn hành trình là danh sách n thành phố, phần tử thứ i
của danh sách là một số trong khoảng từ 1 đến n-i+1. Ý nghĩa của biểu diễn thứ tự
như sau. Có một danh sách thứ tự các thành phố (giả sử là C), được dùng làm điểm
tham chiếu cho các danh sách trong biểu diễn thứ tự. Ví dụ: C = ( 1 2 3 4 5 6 7
8 9)
Một hành trình: 1 – 2 – 4 – 3 – 8 – 5 – 9 – 6 – 7 được biểu diễn là danh sách
l của các tham chiếu:
18


Áp dụng giải thuật di truyền giải bài toán người du lịch

l =(1 1 2 1 4 1 3 1 1)
3. Biểu diễn đường dẫn
Biểu diễn đường dẫn là biểu diễn tự nhiên nhất của một hành trình. Ví dụ hành
trình:
5–1–7–8–9–4–6–2–3

đơn giản được biểu diễn là:
(5 1 7 8 9 4 6 2 3)
Mã hóa hoán vị phù hợp cho các bài toán liên quan đến thứ tự. Đối với các bài
toán này, việc thao tác trên các nhiễm sắc thể chính là hoán vị các số trong chuỗi
đó làm thay đổi trình tự ban đầu của chuỗi.
c) Mã hóa bằng giá trị
Biểu diễn giá trị trực tiếp có thể được dùng trong các bài toán có chứa những
giá trị phức tạp. Mỗi nhiễm sắc thể là một chuỗi các giá trị, có thể là số nguyên, số
thực, ký tự… hay bất cứ cái gì có liên quan đến bài toán đều có thể được xem xét để
sử dụng sao cho thuận lợi trong quá trình giải quyết bài toán. Nếu dùng biểu diễn
nhị phân cho loại bài toán này thì rất phức tạp.
Mã hóa giá trị thường dùng cho các bài toán đặc biệt và thường phải nghiên
cứu, phát triển các toán tử lại ghép và đột biến sao cho phù hợp với từng bài toán.
Một ví dụ cho cách mã hóa này là bài toán tìm trọng số mạng nơron.
d) Mã hóa theo cây
Phương thức mã hóa này thường được sử dụng trong lập trình di truyền, mỗi
cá thể được biểu diễn dưới dạng cây (gọi là cây cá thể) có số lượng nút và độ sau
khác nhau. Tùy theo mỗi bài toán thì các nút mang ý nghĩa khác nhau. Thông
thường biểu diễn theo cây thường được áp dụng cho dạng bài toán xác định công
thức tối ưu (xác định công thức hồi quy trong thí nghiệm hóa sinh).

19


Áp dụng giải thuật di truyền giải bài toán người du lịch

1.2.4.2. Khởi tạo quần thể ban đầu
Sau khi đã mã hóa được các cá thể, công việc cần làm tiếp theo là khởi tạo
quần thể ban đầu bằng cách tạo ngẫu nhiên.
Như đã đưa ra ở phần trước, quần thể là tập hợp các cá thể có cùng chung một

số đặc điểm, trong giải thuật di truyền ta quan niệm quần thể là một tập các lời giải
của bài toán. Quần thể ban đầu khá ảnh hưởng đến hiệu quả giải thuật, thông thường
là do phụ thuộc kích thước quần thể. Theo như các nghiên cứu và thử nghiệm của
các nhà khoa học trước đó cho thấy kích thước quần thể không nên quá lớn cũng
không nên quá nhỏ vì nếu kích thước quần thể lớn thì giải thuật sẽ bị chậm, còn nếu
như kích thước quần thể quá nhỏ sẽ làm giảm đi không gian tìm kiếm. Cả hai vấn
đề này đều làm giảm hiệu quả của thuật toán.
1.2.4.3. Hàm mục tiêu
Hàm mục tiêu hay còn gọi là hàm tính độ thích nghi là hàm đánh giá thể hiện
tính thích nghi hay độ tốt của lời giải. Hàm mục tiêu có vai trò tương tự như là môi
trường sống trong sự tiến hóa của tự nhiên. Giá trị của hàm mục tiêu là nhỏ nhất hay
lớn nhất phụ thuộc vào bài toán được đưa ra và hàm mục tiêu được lựa chọn sao
cho phù hợp với bài toán.
1.2.4.4. Các toán tử di truyền.
a) Chọn lọc.
Kích thước quần thể là cố định qua các thế hệ. Ở mỗi thế hệ ta lại có các cá thể
mới sinh bằng lai ghép và đột biến. Do đó, cần phải có sự chọn lọc để đảm bảo tính
cân bằng của quần thể. Cách thức chọn lọc cá thể được đánh giá dựa trên chi phí
của mỗi chu trình. Cá thể được chọn làm lời giải cuối cùng là cá thể có chi phí nhỏ
nhất trong quần thể sau mỗi thế hệ tiến hóa.
Có rất nhiều phương thức chọn lọc và sau đây là các phương thức chọn lọc
thường được sử dụng khi giải bài toán người du lịch:
 Lựa chọn theo yếu tố ngẫu nhiên

20


Áp dụng giải thuật di truyền giải bài toán người du lịch

 Lựa chọn theo xếp hạng

 Lựa chọn tranh đấu
 Lựa chọn theo tỷ lệ (bánh xe Roulet)
b) Lai ghép.
Đây là quá trình xảy ra chủ yếu trong giải thuật di truyền. Tùy theo mỗi cách
mã hóa cá thể khác nhau sẽ có các cách lai ghép khác sau sao cho phù hợp với cách
mã hóa và tránh tạo ra các con không hợp lệ.
Phép lai là quá trình hình thành NST mới trên cơ sở các NST cha – mẹ, bằng
cách ghép một hay nhiều đoạn gen của hai hay nhiều NST cha – me với nhau. Phép
lai xảy ra với xác suất pc , được thực hiện như sau:
Đối với mỗi cặp NST cha - mẹ được chọn phát sinh ngẫu nhiên một số r trong
khoảng [0..1]
 Nếu r < pc thì cặp NST đó được chọn để lai ghép.
 Nếu r > pc thì cặp NST đó được trả lại quần thể.
c) Đột biến.
Có rất nhiều dạng đột biến khác nhau được các nhà khoa học nghiên cứu và sử
dụng khi giải bài toán người du lịch nhưng thông thường đều là thực hiện các thao
tác sau theo nhiều hình thức:
 Đảo: chọn một đọan nhiễm sắc thể con bất kỳ rồi đảo ngước chiều của đoạn
nhiễm sắc thể đã chọn và đưa ra một nhiễm sắc thể mới
 Chèn: chọn một thành phố và chèn thành phố đó vào vị trí ngẫu nhiên
 Dời chỗ: chọn một hành trình con rồi chèn nó vào vị trí ngẫu nhiên
 Trao đổi qua lại: hoán vị hai thành phố
Mỗi gen trong tất cả các NST có cơ hội đột biến như nhau, nghĩa là đối với
mỗi NST trong quần thể hiện hành (sau khi lai) và đối với mỗi gen trong NST, quá
trình đột biến được thực hiện như sau:

21


Áp dụng giải thuật di truyền giải bài toán người du lịch


 Phát sinh ngẫu nhiên một số r trong khoảng [0..1]
 Nếu r < pm thì đột biến gen đó. Trả cá thể mới này về quần thể để thực hiện
quá trình tiến hóa tiếp theo.
Đột biến làm tăng khả năng tìm được lời giải gần tối ưu của thuật toán di
truyền. Đột biến không được dùng thường xuyên vì đột biến là phép toán tìm kiếm
ngẫu nhiên.Với tỷ lệ đột biến cao thì thuật toán di truyền còn cho kết quả xấu hơn là
phương pháp tìm kiếm ngẫu nhiên.
1.2.5. Các tham số cơ bản của giải thuật.
Qua các phần trên chúng ta dễ dàng nhận ra trong giải thuật di truyền cần xác
định các tham số sau :
 q : kích thước của quần thể hay số lượng cá thể trong quần thể.
 Pc : xác suất lai ghép cho biết việc lai ghép được thực hiện thường xuyên như
thế nào.
 Pm : xác suất đột biến cho biết các phần của nhiễm sắc thể thay đổi thường
xuyên như thế nào.
1.2.6. Các ứng dụng của giải thuật di truyền.
Ban đầu giải thuật di truyền ra đời được áp dụng cho tối ưu hoá và học máy là
chủ yếu. Đến nay GA đã phát triển mạnh và có nhiều ứng dụng thực tế, đặc biệt là
các bài toán về trí tuệ nhân tạo. Ví dụ: ta có thể tối ưu công việc dự báo thời tiết sao
cho chính xác nhất dựa trên các thông số khí tượng do được. Năm 1967, Beglay xây
dựng máy chơi cờ Hexapawn dựa trên giải thuật di truyền và nhận ra rằng giải thuật
di truyền có thể thực hiện tốt mà không phụ thuộc độ phức tạp của trò chơi.
1.2.6.1. Tối ưu hoá và học máy:
Trong lĩnh vực tối ưu hóa có nhiều bài toán được áp dụng giải thuật di truyền
và đã thành công như tối ưu hoá hàm một biến, tối ưu hóa hàm nhiều biến, hay như
bài toán người du lịch, bài toán hộp đen, các bài toán kinh doanh, nhận dạng điều
khiển hệ thống… David E.Golderg đã ứng dụng GA để tối ưu hóa bài toán điều

22



Áp dụng giải thuật di truyền giải bài toán người du lịch

khiễn hệ thống đường ống dẫn khí thiên nhiên. Trong bài toán này, mục tiêu là cực
tiểu hóa năng lượng do quá trình nén, phụ thuộc vào áp suất tối đa và áp suất tối
thiểu và các ràng buộc tỉ lệ áp suất. Bên cạnh đó, rất nhiều đề tài liên quan đến tối
ưu hóa cũng được áp dụng giải thuật di truyền như tối ưu hóa khẩu phần thức ăn
chăn nuôi, tối ưu quãng đường của xe buýt trong thành phố, tối ưu hóa trong lĩnh
vực thiết kế mạng hoặc hệ thống máy, giải quyết các bài toán tối ưu kinh tế, …
Trong lĩnh vực học máy, giải thuật di truyền được sử dụng cho việc tìm hiểu
các quy luật có cấu trúc như cấu trúc IF-THEN trong môi trường nhân tạo.
1.2.6.2. Ứng dụng giải thuật di truyền trong xử lý ảnh và chuẩn đoán trong chữa
bệnh
Giải thuật di truyền đơn giản đã được sử dụng để thực hiện ghi hình ảnh, như
là bộ phận của hệ thống lớn có tên là Digital Subtraction Angiography (DSA).
Trong DSA, bác sĩ sẽ cố gắng xem xét bên trong của một động mạch khả nghi bằng
cách so sánh hình ảnh x-quang, một được chụp trước khi tiêm thuốc đã nhuộm màu
vào động mạch, một và một được chụp sau khi tiêm thuốc. Cả hai hình được số hóa
và được trừ nhau theo từng điểm một, với kết quả mong muốn cuối cùng nhận được
một hình ảnh sai khác phác họa rõ ràng hình ảnh bên trong động mạch chủ. Tuy
nhiên sự chuyển động nhẹ của bệnh nhân có thể tạo ra hai hình ảnh kế nhau, làm rối
loạn phần hình ảnh sai khác. Kết quả là, các hình ảnh phải được xếp kế nhau, để
tính toán phần hình ảnh sai khác.
Giải thuật di truyền được dùng để tìm kiếm các hệ số biến đổi để tìm kiếm các
hệ số giúp cực tiểu hóa sự sai biệt hình ảnh trước và sau khi tiêm, trên cơ sở các sai
khác hình ảnh tuyệt đối.
Ngoài ứng dụng trong chuẩn đóa hình ảnh đã đề cập bên trên, giải thuật di
truyền còn được dùng để xác định công thức hồi quy trong thí nghiệm hóa sinh,
1.2.6.3. Một số ứng dụng khác

 Thiết kế mạng nơron, kiến trúc lẫn trọng số.

23


×