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

Tiến hóa đa nhiệm vụ áp dụng cho bài toán người du lịch và bài toán order degree

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 (2.17 MB, 58 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
——————————-

LUẬN

VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

TIẾN HĨA ĐA NHIỆM VỤ
ÁP DỤNG CHO
BÀI TOÁN NGƯỜI DU LỊCH VÀ BÀI TOÁN ORDER/DEGREE

Học viên
Số hiệu

Lê Khắc Tuấn
CB160551

Giảng viên hướng dẫn PGS.TS Huỳnh Thị Thanh Bình


Lời cảm ơn
Đầu tiên, tôi muốn gửi lời cảm ơn chân thành tới giáo viên hướng dẫn PGS.TS
Huỳnh Thị Thanh Bình. Quá trình tìm hiểu, nghiên cứu và áp dụng, luận văn
được hồn thành khơng thể thiếu đi sự dẫn dắt về mặt định hướng chuyên môn,
trao dồi kỹ năng nghiên cứu cũng như những lời động viên từ cô. Kính chúc cơ
ngày càng có nhiều thành cơng trên con đường nghiên cứu khoa học, sự nghiệp
trồng người cũng như trong cuộc sống.
Tôi xin gửi lời cám ơn tới các thầy giáo, cô giáo Viện Công nghệ Thông tin
và Truyền thông, Trường Đại học Bách khoa Hà Nội, những người đã tận tâm
truyền đạt tri thức và những kinh nghiệm sống và làm việc quý báu. Những cơ


sở kiến thức, kinh nghiệm đóng vai trị hành trang vơ giá cho cuộc sống và sự
nghiệp sau này. Tôi cũng cảm ơn tới lãnh đạo Viện, lãnh đạo Trường đã tạo điều
kiện có cơ hội hợp tác, trao đổi nghiên cứu quốc tế trong quá trình học cao học và
nghiên cứu. Cụ thể, tơi đã vinh dự tham gia chương trình Thạc sĩ Khoa học khóa
đầu tiên của Viện và dành thời gian sáu tháng trong chương trình trao đổi nghiên
cứu với NTU (Trường Đại học kỹ thuật Nanyang - Singapore - một trong những
trường có thứ hạng nghiên cứu cao trên thế giới). Những điều kiện này đã giúp
tơi có cơ hội xây dựng các kiến thức cơ bản nền tảng đầu tiên, sau đó thực hiện so
sánh đối chiếu năng lực, chất lượng, kỹ năng nhằm mục tiêu bổ sung kiến thức
liên quan đến nội dung luận văn cùng với cách lĩnh vực nghiên cứu liên quan.
Tôi cũng xin cảm ơn các anh chị, các bạn và các em trong phòng nghiên cứu
MSO – Trường Đại học Bách khoa đã nhiệt tình cùng tơi chia sẻ nhiều kinh
nghiệm và cổ vũ tinh thần lẫn nhau để tơi hồn thành được luận văn.
Tôi xin gửi lời cám ơn tới đại gia đình của mình, những con người làm nên
chỗ dựa vững chắc về mặt tinh thần cho tơi có được khoảng thời gian trải nghiệm
đầy bổ ích.
Hà Nội, ngày 20 tháng 6 năm 2019
Học viên

Lê Khắc Tuấn

1


Tóm tắt nội dung luận văn cao học
Trong một vài năm gần đây, giải thuật tiến hóa đa nhiệm - Multifactorial
Evolutionary Algorithm (MFEA) được xem như một hướng tiếp cận mới khi áp
dụng tìm kiếm các lời giải đối với các bài tốn tối ưng bằng phương pháp tiến hóa
- Evolutionary Algorithm (EA). Khác biệt với các thuật toán toán tiến hóa cổ điển
chỉ thực hiện tìm kiếm lời giải tối ưu cho một đối tượng bài toán trên một khơng

gian quần thể, tiến hóa đa nhiệm thực hiện tìm kiếm lời giải tối ưu cho nhiều đối
tượng bài toán thuộc trên một không gian quần thể chung duy nhất. Tiến hóa đa
nhiệm đã nhận được sự quan tâm của nhiều nhà nghiên cứu vì nó cũng đóng vai
trị một phương pháp nghiên cứu cho lớp các bài toán về tối ưu hóa. Ngồi các
nghiên cứu lý thuyết, mơ hình áp dụng được với các bài tốn có tính chất thực tế
liên quan đến nhiều yếu tố như tài nguyên lưu trữ, tốc độ xử lý và thời gian phản
hồi. Do đó, luận văn thực hiện tìm hiểu, nghiên cứu giải thuật MFEA, đưa ra một
số đề suất thay đổi so với giải thuật MFEA cơ bản, sau đó áp dụng giải quyết hai
bài toán đồ thị: bài toán Người du lịch và bài toán Order/Degree. Trong khi, bài
cổ điển TSP với các bài tốn tối ưu tìm kiếm đường đi, bài Order/Degree được
nghiên cứu ứng dụng trong tối ưu xây dựng đồ thị. Hai bài được chọn với mục
tiêu kiểm tra sự bổ sung, chia sẽ không gian lời giải, phối hợp nhiều phương án
tìm kiểm lời giải tối ưu giữa các bài toán khi được áp dụng bằng giải thuật di
truyền đa nhiệm.
Cấu trúc luận văn gồm 4 chương với nội dung chính như sau:
Chương 1: Tổng quan di truyền
Chương 2: Mơ hình các bài tốn
Chương 3: Giải thuật Di truyền đa nhiệm đề xuất
Chương 4: Thực nghiệm và định hướng phát triển

2


Lời mở đầu
Trong nền kinh tế thị trường hiện nay, có rất nhiều bài tốn tối ưu được tạo ra
dựa vào nhu cầu thị trường. Các bài toán cần sự quan tâm cả về mặt lý thuyết về
thông tin và tính tốn cùng sự thực hiện, ứng dụng trong các hệ thống tính tốn.
Khoa học máy tính đóng vai trị cách tiếp cận khoa học và thực tiễn để tính tốn
và nghiên cứu có hệ thống về tính khả thi, cấu trúc. Các mơ hình thuật tốn làm
cơ sở cho việc thu thập, xử lý, lưu trữ, truyền thông và truy cập thơng tin một

cách tự động hóa để nhân rộng ra quy mô lớn. Trong các lĩnh vực của khoa học
máy tinh, tính tốn tiến hóa đóng một vai trị quan trọng.Trong lớp bài tốn tối
ưu, có rất nhiều bài tốn thuộc lớp bài tốn NP-khó, và cho đến nay chưa có một
giải thuật chính xác nào để tìm kiếm lời giải tối ưu trong thời gian đa thức. Các
lời giải tiến hóa thường được áp dụng trong việc thực hiện tìm kiếm những lời
giải xấp xỉ cho nhiều bài tốn khó có thể giải được thơng qua những cách tiếp cận
thông thường. Trong một số trường hợp, việc thực hiện tìm kiếm lời giải chính
xác địi hỏi thời gian và tài nguyên máy tính quá lớn khiển cho việc tìm kiếm lời
giải trở nên bất khả thi. Đối với nhiều bài toán thực tế, trong nhiều trường hợp
lời giải xấp xĩ vẫn đáp ứng được nhu cầu. Khi đó, các giải thuật tiển hóa trở nên
hiệu quả dựa theo cơ chế liên tục tìm kiếm lời giải tốt nhất trong các lời giải có
thể tìm kiếm được, thay vì cố gắng tìm kiếm một lời giải hồn hảo.
Tuy nhiên, phần lớn các giải thuật tiến hóa được xây dựng nhằm mục đích giải
quyết một bài tốn đơn lẻ. Sự xuất hiện của giải thuật tiến hóa đa nhiệm (tiến hóa
đa nhiệm - Multifactorial Evolutionary Algorithm (MFEA)) mở ra những tiềm
năng mới cho tính tốn tiến hóa thực hiện nghiên cứu và khai thác. Giải thuật
MFEA cơ bản xuất hiện có cơ chế cho phép đồng thời giải quyết hai hay nhiều
đối tượng bài toán tối ưu. Các ứng dụng đang được bắt đầu mở rộng nghiên cứu
với những kết quả nghiên cứu ban đầu hứa hẹn cho sự cải thiện về chất lượng lời
giải và tính linh hoạt khi áp dụng.
Vì vậy, luận văn thực hiện tiến hành nghiên cứu tổng quan về giải thuật
MFEA, đưa ra một số đánh giá, đề xuất và cài đặt áp dụng với một số bài toán
tối ưu dựa trên nền tảng giải thuật di truyền - Genetic Algorithm (GA). Trên cơ
sở kết quả đạt được, luận văn tổng kết so sánh và đánh giá đưa ra những định
hướng phát triển của chủ đề trong tương lai.

3


Mục lục

Danh sách bảng

6

Danh sách hình vẽ

7

1

Tổng quan di truyền

8

1.1

Giải thuật di truyền . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.1.1

Lịch sử phát triển . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.1.2

Cá thể, nhiễm sắc thể . . . . . . . . . . . . . . . . . . . . . . .


10

1.1.3
1.1.4

Quần thể . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chọn lọc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10
10

1.1.5

Toán tử Lai ghép . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.1.6

Toán tử đột biến . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.1.7

Nạp lại quần thể . . . . . . . . . . . . . . . . . . . . . . . . .

14

1.1.8


Điều kiện dừng . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.1.9 Các tham số của GA . . . . . . . . . . . . . . . . . . . . . . .
Giải thuật tiến hóa đa nhiệm . . . . . . . . . . . . . . . . . . . . . . .

15
16

1.2.1

Bài tốn tiến hóa đa nhiệm . . . . . . . . . . . . . . . . . . .

16

1.2.2

Giải thuật tiến hóa đa nhiệm . . . . . . . . . . . . . . . . . .

17

1.2.3
1.2.4

Các tính chất cơ bản . . . . . . . . . . . . . . . . . . . . . . .
Cấu trúc giải thuật tiến hóa đa nhiệm . . . . . . . . . . . . .

18

19

1.2.5
1.2.6

Mã hóa và Giải mã . . . . . . . . . . . . . . . . . . . . . . . .
Các toán tử di truyền . . . . . . . . . . . . . . . . . . . . . . .

19
20

1.2.7

Toán tử chọn lọc . . . . . . . . . . . . . . . . . . . . . . . . .

21

Mơ hình các bài tốn
2.1 Lý thuyết đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22
22

1.2

2

2.2

2.1.1


Các khái niệm cơ bản . . . . . . . . . . . . . . . . . . . . . . .

22

2.1.2

Biểu diễn đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.1.3

Đồ thị liên thông . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.1.4

Bài tốn tìm kiếm trên đồ thị . . . . . . . . . . . . . . . . . .

24

2.1.5

Đường đi ngắn nhất trên đồ thị . . . . . . . . . . . . . . . . .

25

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


28

2.2.1

28

Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4


Chương 0

2.3

3

Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . .
Phương pháp giải chỉnh xác . . . . . . . . . . . . . . . . . . .

28
29

2.2.4

Phương pháp giải gần đúng . . . . . . . . . . . . . . . . . . .

29

Bài xây dựng đồ thị Order/Degree . . . . . . . . . . . . . . . . . . .


30

2.3.1

Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30

2.3.2

Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . .

30

Giải thuật Di truyền đa nhiệm đề xuất

32

3.1

Tổ chức dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.2
3.3

Biểu diễn cá thể . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Giải thuật di truyền đa nhiệm . . . . . . . . . . . . . . . . . . . . . .


33
34

3.3.1

Di truyền đa nhiệm . . . . . . . . . . . . . . . . . . . . . . . .

34

3.3.2

Toán tử di truyền . . . . . . . . . . . . . . . . . . . . . . . . .

35

3.3.3

Nạp lại quần thể . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.4

3.5
4

2.2.2
2.2.3


Mã hóa và Giải mã
3.4.1 Mã hóa . . .
3.4.2 Giải mã . . .
Hàm tương đồng .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.


.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.


.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.


.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.


.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

38
39
42
51


Thực nghiệm và định hướng phát triển

52

4.1

Kết quả thực nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

4.2

Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

4.3

Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

Tài liệu tham khảo

57

5


Danh sách bảng

4.2

Kết quả thực nghiệm 01 . . . . . . . . . . . . . . . . . . . . . . . . .

52

4.4

Bảng kết quả đa nhiệm - Order/Degree . . . . . . . . . . . . . . . .

52

4.6

Bảng kết quả đơn nhiệm - Order/Degree . . . . . . . . . . . . . . .

53

4.8

Bảng kết quả đa nhiệm - TSP . . . . . . . . . . . . . . . . . . . . . .

53

4.10 Bảng kết quả đơn nhiệm - TSP . . . . . . . . . . . . . . . . . . . . . .

53

4.12 Kết quả thực nghiệm 03 - Các đối tượng bài toán TSP . . . . . . . .


54

4.13 Bảng biểu diễn giá trị hàm tương đồng giữa các cặp đối tượng bài
toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

6


Danh sách hình vẽ
1.1

Giải thuật di truyền . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

1.2

Các dạng lai ghép thường gặp . . . . . . . . . . . . . . . . . . . . . .

13

1.3
1.4
1.5

SOO và MOO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Không gian quần thể . . . . . . . . . . . . . . . . . . . . . . . . . . .


16
17
18

1.6

Ví dụ Mã hóa và Giải mã trong MFEA . . . . . . . . . . . . . . . . .

20

2.1

Minh họa Đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.2

Biểu diễn Đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.3

Đồ thị G và các thành phần liên thông G1 , G2 , G3 . . . . . . . . . . .

24

2.4


Ví dụ Bài tốn TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2.5

Minh họa giải thuật 2 - opt . . . . . . . . . . . . . . . . . . . . . . . .

29

2.6

Ví dụ bài toán Order Degree . . . . . . . . . . . . . . . . . . . . . . .

31

3.1

Tập đối tượng bài toán và Quần thể . . . . . . . . . . . . . . . . . . .

32

3.2

Các phương thức của đối tượng bài toán . . . . . . . . . . . . . . . .

33

3.3

3.4

Cá thể và Gene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minh họa Mã hóa bài tốn TSP . . . . . . . . . . . . . . . . . . . . .

33
39

3.5

Chia đồ thị - Mã hóa Order/Degree . . . . . . . . . . . . . . . . . .

40

3.6

Tập các đường đi - Mã hóa Order/Degree . . . . . . . . . . . . . . .

42

3.7

Tạo cá thể - Mã hóa Order/Degree . . . . . . . . . . . . . . . . . . .

42

3.8

Minh họa giải mã TSP - Xây dựng tập đỉnh thứ nhất . . . . . . . . .


44

3.9

Minh họa giải mã TSP - Xây dựng tập đỉnh thứ hai . . . . . . . . . .

46

3.10 Minh họa giải mã TSP - Hợp hai tập đỉnh . . . . . . . . . . . . . . .

47

3.11 Minh họa giải mã Order/Degree - Xây dựng tập đường đi cơ sở . .

49

3.12 Minh họa giải mã Order/Degree - Hợp nhất các thành phần liên
thông . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50

3.13 Minh họa giải mã Order/Degree - Bổ sung tập cạnh . . . . . . . . .

51

7


Chương 1
Tổng quan di truyền

1.1
1.1.1

Giải thuật di truyền
Lịch sử phát triển

Giải thuật tiến hóa được xem như một trong những giải thuật giải các bài toán
tối ưu, sử dụng những khái niệm quen thuộc trong sinh học và trong tiến hóa.
Quần thể (population) tiến hóa bao gồm các cá thể (individuals) - đại diện cho
những lời giải hợp lệ đối với bài toán. Nhiễm sắc thể (chromosome) hay bộ gen
(genome) bao gồm nhiều gen (gene). Mỗi gen này thể hiện một đặc trưng của cá
thể, đó có thể là một đặc trưng về kiểu gen (genotype) hoặc một đặc trưng về
kiểu hình (phenotype). Cùng một gen thì giá trị hay biểu hiện của gen đó trên
mỗi nhiễm sắc thể có thể khác nhau, phụ thuộc vào giá trị của gen đó.
Giải thuật tiến hóa bao gồm rất nhiều mơ hình khác nhau như giải thuật di
truyền, lập trình di truyền, lập trình tiến hóa, chiến lược tiến hóa, v.v. với ý tưởng
chủ đạo sử dụng một hoặc nhiều tác động trên một quần thể có sẵn để biến đổi
quần thể, nâng cao khả năng thích nghi của quần thể [1, 2]. Ý tưởng này được thể
hiện cụ thể trong từng mơ hình theo những cách đặc trưng khác nhau của từng
kĩ thuật đó.
• Giải thuật di truyền (Genetic Algorithm - GA) : dựa vào quá trình di truyền
trong tự nhiên để cải tiến lời giải qua các thế hệ bắt đầu từ một tập các lời
giải ban đầu.
• Quy hoạch tiến hóa (Evolutionary Programing - EP): dựa vào quy luật tiến
hóa, tìm phương pháp liên hợp đủ khả năng giải quyết trọn vẹn một bài
toán từ một số phương pháp giải quyết được một số phần của bài tốn.
• Các chiến lược tiến hóa (Evolutionary Strageties - ES) : dựa trên một số
chiến lược ban đầu, tiến hóa để tạo ra những chiến lược mới phù hợp với
môi trường thực tế một cách tốt nhất.
• Các hệ thống phân loại (Classifier Systems - CS) : các GA đặc biệt được

dùng trong việc học máy, và việc phát hiện các quy tắc trên các hệ dựa trên
các quy tắc.
Giải thuật di truyền được xem như một mơ hình của giải thuật tiến hóa, sử
dụng các tốn tử di truyền như lai ghép, đột biến, chọn lọc, ... để biến đổi quần
thể ban đầu. Giải thuật di truyền được giới thiệu lần đầu vào năm 1975 bởi John
8


Chương 1
Holland [3], là mơ hình đầu tiên của giải thuật tiến hóa được xây dựng và sử
dụng [1, 2].Quá trình phát triển của giải thuật di truyền dược chỉ ra qua các mốc
thời gian sau:
• 1960: Ý tưởng đầu tiên về Tính tốn tiến hóa được Rechenberg giới thiệu
trong cơng trình Evolution Strageties (Các chiến lược tiến hóa). Ý tưởng này
sau đó được nhiều nhà nghiên cứu phát triển.
• 1975: Giải thuật gen do John Holland phát minh và được phát triển bởi ông
và với các đồng nghiệp cùng với các bạn sinh viên. Cuốn sách Adaption in
Natural and Artificial Systems (Sự thích nghi trong các hệ tự nhiên và nhân
tạo) xuất bản năm 1975 đã tổng hợp các kết quả nghiên cứu và phát triển
đó.
• 1992: John Koza đã dùng GA để xây dựng chương trình giải quyết một số
bài tốn và được gọi lập trình gen.

Hình 1.1: Giải thuật di truyền

Ngày nay, giải thuật di truyền ngày càng trở nên đặc biệt quan trọng, đặc biệt
trong lĩnh vực tối ưu hóa, một lĩnh vực có 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ó nhiều giải thuật hiệu quả để
giải quyết.


9


Chương 1

1.1.2

Cá thể, nhiễm sắc thể

Cá thể trong giải thuật di truyền biểu diễn một lời giải của bài toán. Tuy nhiên
khơng giống với tự nhiên, mỗi cá thể có nhiều nhiễm sắc thể (NST) (cá thể có
một NST được gọi là đơn bội, cá thể có nhiều NST được gọi là đa bội), trong giải
thuật di truyền quan niệm mỗi cá thể chỉ có duy nhất một nhiễm sắc thể. Do đó,
khái niệm cá thể và nhiễm sắc thể trong giải thuật di truyền coi như tương đương.
Một NST được tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác nhau
để quy định một tính trạng nào đó. Trong GA, một gen được xem như một phần
tử trong chuỗi nhiễm sắc thể.
Biểu diễn lời giải, hay cịn gọi mã hóa lời giải, đóng vai trị một bước rất quan
trọng trong các bài toán tối ưu, vì ảnh hưởng trực tiếp đến chất lượng của lời giải
và kết quả của các phép lai ghép, đột biến, ...
Trong các giải thuật di truyền, các cách biểu diễn lời giải phổ biến bao gồm:
chuỗi số nhị phân, chuỗi số thực, hốn vị và cây. Tùy vào tính chất của mỗi bài
toán mà người ta lựa chọn cách biểu diễn lời giải cho phù hợp. Mặc dù lời giải của
cùng một bài tốn có thể được biểu diễn bằng nhiều cách, nhưng nên lựa chọn
cách biểu diễn thể hiện được tính chất của lời giải hoặc tiện lợi cho việc áp dụng
các toán tử di truyền.

1.1.3

Quần thể


Quần thể di truyền trong giải thuật di truyền đại diện bởi tập hợp những cá
thể - lời giải hợp lệ và khả thi đối với bài toán đang được xem xét. Việc khởi tạo
quần thể di truyền cùng với việc chọn lọc cá thể cho thế hệ tiếp theo đóng vai trị
quan trọng trong việc đảm bảo các cá thể trong không gian tìm kiếm cũng như
đầu vào của các phép lai ghép, đột biến là hợp lệ, tương ứng với những lời giải
hợp lệ.
Có nhiều phương pháp khởi tạo quần thể cho một giải thuật di truyền. Tùy
thuộc vào bài toán đang được giải và cách biểu diễn (mã hóa) lời giải mà cách
khởi tạo được lựa chọn cho phù hợp. Tuy nhiên, trong nhiều bài tốn thì quần thể
ban đầu được lựa chọn ngẫu nhiên.

1.1.4

Chọn lọc

Một số cách lựa chọn cá thể cha mẹ để tiến hành thực hiện các phép tốn tử
di truyền:
Lựa chọn dựa theo độ thích nghi (Fitness Proportion Selection)
Lựa chọn xén (Truncation Selection): Các cá thể của quần thể được sắp xếp
theo thứ tự giảm dần về độ thích nghi. Một ngưỡng xén Trunc được đưa ra để xác
định bao nhiêu % các cá thể trong quần thể đang xét sẽ được chọn để tham gia
10


Chương 1
quá trình sinh sản tạo ra thế hệ tiếp theo. Ngưỡng xén Trunc của các thế hệ không
nhất thiết giống nhau mà có thể được điều chỉnh dựa theo mức độ thích nghi của
các cá thể trong mỗi thế hệ đối với mơi trường.
Lựa chọn theo vịng quay Roulette (Roulette Wheel Selection): Cách lựa chọn

này hoạt động dựa trên nguyên lý của vòng quay roulette với ý tưởng "cá thể có
độ thích nghi càng cao thì xác suất được lựa chọn càng cao". Bàn quay roulette có
thể hình dung dưới dạng bàn quay hình trịn với góc ở tâm bàn quay được chia
thành các góc với số đo góc khơng cần đều nhau. Tỉ lệ giữa số đo góc với góc 360o
tương ứng với tỉ lệ giữa độ thích nghi của cá thể với tổng độ thích nghi của cả
quần thể.
Nói cách khác, cá thể có độ thích nghi càng cao thì góc tương ứng với nó trên
bàn quay Roulette càng lớn, khả năng được quay vào càng cao. Một điểm cố định
được chọn trên bàn quay. Mỗi lượt quay sẽ có một cá thể được chọn ra nhờ vào
điểm cố định đó, do đó cần chọn bao nhiêu cá thể thì sẽ cần quay bấy nhiêu lượt.
Lựa chọn theo kiểu rải (Stochastic Universal Sampling – SUS): Cách lựa chọn
này gần giống với với bàn quay Roulette nhưng thay vì chỉ có duy nhất một điểm
cố định trên bàn quay thì nhiều điểm sẽ được chọn sẵn. Do đó, chỉ cần quay một
lần là có thể chọn được nhiều hay thậm chí tất cả các cá thể cha mẹ cần lựa chọn
cho thế hệ đó. Lựa chọn theo kiểu rải cho phép tiết kiệm thời gian vì chỉ cần quay
một lần mà chọn được nhiều cá thể, ngoài ra, việc lựa chọn trùng lặp cũng được
hạn chế tối đa so với bàn quay Roulette.
Lựa chọn ngẫu nhiên (Random Selection)
Các cá thể cha mẹ tham gia quá trình sinh sản được lựa chọn hoàn toàn ngẫu
nhiên theo số lượng hoặc tỉ lệ xác định sẵn. Trong một số bài toán, có những cá
thể cha mẹ khơng phải tốt nhất trong quần thể nhưng khi lai ghép với nhau lại có
thể cho ra những cá thể con rất tốt.
Lựa chọn dựa theo thứ hạng trong quần thể (Rank Selection)
Đôi khi việc lựa chọn cá thể cha mẹ dựa vào độ thích nghi gặp khó khăn khi
mà độ thích nghi của các cá thể chênh lệch không nhiều, dẫn đến xác suất chúng
được lựa chọn gần như là bằng nhau. Khi đó, hiệu quả của phép lựa chọn khơng
khác gì phép lựa chọn ngẫu nhiên. Để tránh tình huống đó, người ta khơng xét
đến độ thích nghi của các cá thể nữa mà quan tâm tới thứ hạng của chúng trong
quần thể. Thứ hạng này được dựa trên độ thích nghi đối với mơi trường. Những
cá thể có thứ hạng cao thì được ưu tiên lựa chọn để đưa vào sinh sản tạo thế hệ

mới.
Lựa chọn giao đấu (Tournament Selection)
Lựa chọn giao đấu cũng được xem như một phép lựa chọn được ưa chuộng
trong nhiều giải thuật di truyền. Cách lựa chọn có ưu điểm khi áp dụng cho
những trường hợp mà độ thích nghi của các cá thể có thể mang giá trị âm, gây
11


Chương 1
khó khăn cho lựa chọn dựa trên độ thích nghi. Số nguyên k > 0 được xác định
làm tham số cho phép lựa chọn giao đấu. Ở mỗi lượt lựa chọn, k cá thể được lựa
chọn ngẫu nhiên từ quần thể đang xét. Dựa vào độ thích nghi, cá thể tốt nhất
trong k cá thể này được lựa chọn làm cá thể cha mẹ. Quá trình này được thực
hiện nhiều lần cho đến khi chọn được đủ số cá thể cha mẹ mong muốn.

1.1.5

Toán tử Lai ghép

Trong tự nhiên, con người và các động vật khác khi sinh ra đã mang những
đặc điểm thừa hưởng từ cả bố và mẹ. Những đặc điểm này do gene của con được
sao chép một phần từ bố và phần còn lại từ mẹ. Tương tự như vậy, phép lai ghép
trong giải thuật di truyền cho phép tạo ra những cá thể con từ một phần của cá
thể cha ghép với một phần của cá thể mẹ. Cách lựa chọn phần gene nào để ghép
và ghép như thế nào được trình bày cụ thể trong từng phương pháp khác nhau.
Một số phương pháp lai ghép phổ biến:
Lai ghép một điểm cắt (One Point Crossover)
Một điểm được chọn giống nhau trên cá thể cha và cá thể mẹ, chia mỗi cá thể
làm hai phần. Con thứ nhất thừa hưởng phần bên trái của cha và phần bên phải
của mẹ. Con thứ hai, ngược lại, thừa hưởng phần bên phải của cha và phân bên

trái của mẹ.
Lai hai điểm cắt (Two Point Crossover)
Hai điểm được lựa chọn trên những vị trí giống nhau trên cá thể cha và cá thể
mẹ, tạo nên những khoảng nằm giữa hai cặp điểm liền kề. Những khoảng này
trên cha mẹ được tráo cho nhau để tạo ra kiểu gene của cá thể con.
Lai ghép đồng nhất (Uniform Crossover)
Thay vì tráo đổi gene theo từng đoạn gen giữa cá thể cha và cá thể mẹ như
trong lai ghép đơn điểm và đa điểm, lai ghép đồng nhất tráo đổi gen theo từng
gen. Để tạo ra một con, ta tung đồng xu cho mỗi gene để quyết định gene đó con
sẽ thừa kế của cha hay của mẹ.
Lai ghép số học
Cá thể con được tạo thành bằng cách thực hiện một phép tốn logic nào đó
như AND, OR, ... với cặp cá thể cha, mẹ.

1.1.6

Toán tử đột biến

Mặc dù lai ghép trong giải thuật di truyền cho phép trộn các đặc điểm di
truyền của các cá thể có sẵn, từ đó tạo ra một số cá thể thừa hưởng được đặc
12


Chương 1

(a) Lai ghép một điểm cắt

(b) Lai ghép hai điểm cắt

(c) Lai ghép đồng nhất


Hình 1.2: Các dạng lai ghép thường gặp
điểm tốt từ cha và mẹ, tuy nhiên nó khơng đem lại sự đa dạng và nguồn gene
mới cho quần thể.
Trong khi đó, đột biến giải quyết được yêu cầu này. Đột biến làm thay đổi
ngẫu nhiên một phần nhỏ của cá thể, đảm bảo cho việc duy trì và phát triển tính
đa dạng của nguồn ngun liệu gene. Xác suất đột biến thường được đặt giá trị
nhỏ, vì với một xác suất đột biến lớn thì giải thuật di truyền mất đi ưu thế và trở
thành tìm kiếm ngẫu nhiên.
Một số phép đột biến phổ biến:
Đột biến đảo bit (Bit Flip Mutation)
Đột biến đảo bit được sử dụng cho cách biểu diễn nhị phân. Một gene bất kì
trên cá thể đem đột biến được đảo bit.
Đột biến hoán vị (Swap Mutation)
Đột biến hoán vị thường được sử dụng cho cách biểu diễn hoán vị. Ta chọn
hai vị trí bất kì rồi hốn đổi gene ở hai vị trí đó cho nhau.
Đột biến trộn (Scramble Mutation)
Đột biến trộn cũng được sử dụng cho cách biểu diễn hoán vị. Từ nhiễm sắc
thể, ta chọn ra một tập con gồm một số gene và đảo vị trí trên nhiễm sắc thể của
các gene đó cho nhau.

13


Chương 1
Đột biến đảo đoạn (Inversion Mutation)
Một đoạn gene trên nhiễm sắc thể được lựa chọn và đảo ngược vị trí các gene
trên đoạn đó.

1.1.7


Nạp lại quần thể

Nạp lại quần thể - chiến lược lựa chọn cá thể cho thế hệ tiếp theo (Survivor
Selection) đóng vai trị bước quyết định cá thể nào sẽ bị loại bỏ, cá thể nào sẽ được
giữ lại cho quần thể của thế hệ tiếp theo. Trong chọn lọc cần đảm bảo quần thể
giữ được những cá thể có độ thích nghi cao và cũng đồng thời đảm bảo sự đa
dạng của quần thể. Có một số phương pháp chọn lọc phổ biến:
Chọn lọc dựa vào tuổi
Chọn lọc dựa vào tuổi (Age Based Selection) không xem xét đến độ thích nghi
của cá thể mà thay vào đó căn cứ thời gian tồn tại của cá thể. Khi cá thể đã trải
qua số thế hệ tối đa được quy định, chúng sẽ bị loại bỏ khỏi quần thể cho dù độ
thích nghi cao hay thấp.
Ưu điểm của phương pháp này sự đa dạng của các cá thể trong cùng một thế
hệ cũng như sự đa dạng về thành phần quần thể qua các thế hệ khác nhau được
nâng cao. Khi trải qua nhiều quá trình tiến hóa qua nhiều thế hệ mà quần thể vẫn
chưa thỏa mãn điều kiện dừng của thuật toán, thuật toán loại bỏ những các thể
tồn tại lâu mà kìm hãm sự phát triển đa dạng của quần thể mặc dù cá thể đó có
thể có độ thích nghi cao. Trong một số ít trường hợp, những cá thể cha mẹ có độ
thích nghi chưa tốt vẫn có thể lai ghép tạo ra cá thể con có độ thích nghi tốt hơn.
Tuy nhiên, mặt hạn chế của phương pháp chọn lọc dựa vào tuổi không chắc
chắn đảm bảo xu hướng phát triển của quần thể sau tiến hóa hơn so với thế hệ
trước, hay nói cách khác phương pháp này có thể gây ra tiến hóa "ngược" hay tiến
hóa "lùi".
Chọn lọc dựa vào độ thích nghi
Một cách chọn lọc khác, chọn lọc dựa vào độ thích nghi (Fitness Based Selection)
khơng quan tâm tới thời gian tồn tại của cá thể trong quần thể mà chỉ hồn tồn
dựa vào độ thích nghi. Do đó, những cá thể có độ thích nghi cao có thể được giữ
lại trong quần thể qua rất nhiều đời tiến hóa.
Chọn lọc dựa vào độ thích nghi bao gồm nhiều phương pháp như chọn lọc

xén (Truncation Selection), chọn lọc theo vòng quay Roulette (Roulette Wheel
Selection), chọn lọc theo kiểu rải (Stochastic Universal Sampling – SUS) hay chọn
lọc giao đấu.

14


Chương 1

1.1.8

Điều kiện dừng

Điều kiện dừng (Termination Condition) của bài tốn được lựa chọn với mục
đích xác định thời điểm chấp nhận lời giải đúng được tìm ra nhằm mục đích dung
hịa được yếu tố chi phí thời gian. Một số điều kiện dựng thường được áp dụng
trong di truyền:
Chất lượng lời giải không cải thiện sau một ngưỡng số thế hệ
Trong nhiều trường hợp khi áp dụng giải thuật di truyền, sự cải thiện chất
lượng lời giải qua các thế hệ đầu được nhận thấy rõ rệt, tuy nhiên qua càng nhiều
thế hệ sau, tốc độ cải thiện lời giải chậm dần. Trong trường hợp đó, thuật tốn
xảy ra sự hội tụ. Sau một số thế hệ liên tục, khi mà lời giải khơng được cải thiện,
có thể xem lời giải tốt nhất hiện tại như lời giải của bài toán chạy bằng giải thuật
di truyền.
Sau hữu hạn số thế hệ
Trong nhiều ứng dụng thực tế, việc giải quyết một vấn đề thường bị giới hạn
trong một khoảng thời gian nhất định hoặc đem lại ưu thế nếu tiết kiệm được
thời gian. Dừng giải thuật khi quần thể tiến hóa đã trải qua một số thế hệ nhất
định xem như phương pháp phổ biến, cho phép khống chế thời gian thực hiện
của thuật toán.

Khi hàm mục tiêu hoặc độ thích nghi của cá thể đạt ngưỡng nhất định
Việc cố gắng tìm ra lời giải tốt nhất đơi khi khơng quan trọng bằng tìm ra một
lời giải đủ đáp ứng yêu cầu thực tế đặt ra. Cũng như biện pháp dừng giải thuật
sau số thế hệ nhất định, điều kiện dừng dựa vào độ thích nghi đạt ngưỡng nhất
định có ưu điểm về mặt thời gian. Biện pháp dung hòa được tiêu chí về thời gian
chạy và chất lượng lời giải.

1.1.9

Các tham số của GA

Xác suất lai ghép
Xác suất lai ghép cho biết tính thường xuyên của việc thực hiện toán tử lai
ghép. Ký hiệu xác suất lai ghép pc .
Xác suất đột biến
Xác suất đột biến cho biết tính thường xuyên của việc các gen trong cá thể thay
đổi. Ký hiệu xác suất đột biến pm . Tác dụng của phép đột biến nhằm ngăn ngừa
di truyền rơi vào trạng thái cực trị địa phương, tuy nhiên nếu thực hiện đột biến

15


Chương 1
với xác suất cao sẽ biến giải thuật di truyền trở thành giải thuật tìm kiếm ngẫu
nhiên.
Kích thước quần thể
Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thể trong
mỗi thế hệ. Các nghiên cứu và các thử nghiệm đã cho thấy kích thước quần thể
không nên quá bé nhưng cũng không nên quá lớn. Nếu có q ít cả thể thì sẽ làm
giảm khơng gian tìm kiếm của giải thuật và dễ rơi vào cục bộ đia phương, bỏ qua

các lời giải tốt. Tuy nhiên nếu có quá nhiều cá thể cũng sẽ làm cho giải thuật chạy
chậm đi, ảnh hưởng đến hiệu quả tính tốn của giải thuật. Các nghiên cứu đã chỉ
ra rằng giải thuật sẽ khơng có lợi khi tăng kích thước quần thể vượt quá một giới
hạn cho phép.

1.2
1.2.1

Giải thuật tiến hóa đa nhiệm
Bài tốn tiến hóa đa nhiệm

Từ những năm 2015 trở về trước, có hai loại giải thuật di truyền thường gặp:
di truyền tối ưu đơn mục tiêu - Single Objective Optimization (SOO) áp dụng với
các bài tốn chỉ cần thực hiện tìm kiếm tối ưu cho một hầm mục tiêu duy nhất,
ví dụ bài tốn người du lịch có một hàm mục tiêu tìm kiếm chu trình đi qua các
đỉnh có tổng khoảng cách nhỏ nhất. di truyền tối ưu đa mục tiêu - Multi Objective
Optimization (MOO) áp dụng với các bài toán mà bản thân mỗi bài tốn có nhiều
hơn một hàm mục tiêu, ví dụ một số bài toán về mạng chịu lỗi cần tối ưu về diện
tích bao phủ cùng với tối ưu thời gian sống của mang. Hai giải thuật di truyền có
đặc điểm chung đối với mỗi lần chạy, thuật tốn tìm kiếm lời giải tối ưu một đối
tượng dữ liệu cho một bài tốn trên một khơng gian quần thể.

Hình 1.3: SOO và MOO
Trong khi đó, tối ưu đa nhiệm - Multifactorial Optimization (MFO) giải quyết
đồng thời tìm kiếm lời giải tối ưu cho hai hoặc nhiều đối tượng bài tốn (task).
Các đối tượng bài tốn có thể giống hay khác nhau ở loại bài toán, số chiều và
cách biểu diễn lời giải và có thể phụ thuộc hay khơng phụ thuộc lẫn nhau. MFO
do đó được đặc trưng bởi sự tồn tại đồng thời của nhiều khơng gian tìm kiếm với
số chiều và cách biểu diễn khác nhau, cũng như những hàm mục tiêu khác nhau
cho mỗi đối tượng bài toán. Trong thực tế, nhiều hệ thống mong muốn giải quyết

16


Chương 1
hiệu quả những yêu cầu rất đa dạng từ người dùng với số lượng lớn trong một
giới hạn thời gian. Điều đó được xem như mục tiêu hướng tới khi áp dụng tìm
kiếm các lời giải cho các bài tốn tối ưu sử dụng MFO.

Hình 1.4: MFO
Đặc trưng của MFO, thuật tốn tìm kiếm lời giải tối ưu nhiều đối tượng dữ liệu
cho một hoặc nhiều bài toán trên một không gian quần thể. So với các giải thuật
tiến hóa đơn nhiệm (GA, PSO), về mặt định tính tiến hóa đa nhiệm có ưu điểm
như một cách giúp các đối tượng bài toán thoát khỏi cực trị địa phương. Khơng
mất tính tổng qt, xét trên một cặp đối tượng bài toán như hai chiếc xe chạy
trên con đường khác nhau, còn cực trị đia phương được xem như ổ gà. Khi tồn
tại trường hợp một đường đi gặp ổ gà, thì với các bước tính tốn trong đa nhiệm
sẽ giúp bài tốn cịn lại nhận biết được hướng đi nào có khả năng gặp phải ổ gà,
nhưng khi tính tốn trên đường đi khác, cũng sẽ góp phần giúp cho bài tốn hiện
tại có khả năng thốt được ổ gà. Trong trường hợp định lượng thông qua các lần
chạy thực nghiệm sẽ được trình bày tại phần sau.

1.2.2

Giải thuật tiến hóa đa nhiệm

Đặc trưng
Hiện nay có một số hướng tiếp cận áp dụng những giải thuật và kỹ thuật để
giải bài toán tối ưu đa nhiệm - Multifactorial Optimization (MFO). Trong đó, tiến
hóa đa nhiệm - Multifactorial Evolutionary Algorithm (MFEA) đề xuất qua bài
báo [4] giải quyết bài toán MFO tổng quát.


17


Chương 1

Hình 1.5: Khơng gian quần thể

Tư tưởng chính của giải thuật thể hiện qua:
• Một hướng phát triển của giải thuật di truyền
• Cơ chế tìm kiếm lời giải tối ưu cho nhiều đối tượng bài toán (K) trên một
khơng gian quần thể (P) duy nhất
• Mỗi cá thể được mã hóa, giải mã giữa khơng gian biểu diễn của mỗi đối tượng
bài tốn tối ưu với khơng gian quần thể chung
• Mỗi đối tượng bài tốn có thể phụ thuộc hoặc khơng phụ thuộc đối tượng bài
tốn khác

1.2.3

Các tính chất cơ bản

Các tính chất cơ bản giữa mỗi cá thể pi ∈ P với từng đối tượng bài tốn tối ưu
tk ∈ K
• Factorial rank (rki ) : thứ hạng của pi được sắp xếp theo thứ tự kết quả lời giải
tối ưu không giảm đối với tk phụ thuộc vào bài toán tối ưu cực tiểu hay cực
đại.
• Fcalar fitness (ϕi ) : giá trị đại diện cho pi dựa trên thứ hạng tốt nhất của pi
trên K. Tham số có tác dụng trong việc đánh giá vai trị của cá thể trong
quần thể trên tồn thể các đối tượng bài tốn.
ϕi = 1/ min rki


(1.1)

k⊂1,2,..K

• Skill factor (τi ) : chỉ tới đối tượng bài toán mà pi đạt thứ hạng tốt nhất trên
K. Hay nói cách khác, skill factor của một cá thể sẽ đại diện cho đối tượng
bài tốn của cá thể đó.
τi = 1/argmin rki
(1.2)
k ⊂1,2,..K

18


Chương 1

1.2.4

Cấu trúc giải thuật tiến hóa đa nhiệm

Giải thuật MFEA dựa trên giải thuật di truyền GA nên mang cấu trúc cơ bản
tương tự như GA ngoại trừ một số bước có thêm những tham số đặc biệt và đặc
trưng của giải thuật. Các bước mô tả giải thuật MFEA được mơ tả trong thuật
tốn 1:
Algorithm 1: Giải thuật tiến hóa đa nhiệm (MFEA)
1 begin
2
Khởi tạo một quần thể ngẫu nhiên P;
3

Đánh giá mỗi cá thể đối với từng đối tượng bài tốn;
4
Tính giá trị các thuộc tính của mỗi cá thể;
5
while chưa đạt điều kiện dừng do
6
Áp dụng các toán tử di truyền lên P để tạo ra quần thể con C;
7
Đánh giá các cá thể trong C với một tập đối tượng bài toán;
8
Hợp quần thể P và C để tạo thành quần thể trung gian I;
9
Cập nhật giá trị các thuộc tính của tất cả mọi cá thể trong I;
10
Lựa chọn tập cá thể từ I để tạo nên P mới;
11
end
12 end

1.2.5

Mã hóa và Giải mã

Khơng giống như GA, MFEA thực hiện chạy nhiều bài toán tối ưu trong cùng
một thời điểm, nên cần thiết tồn tại cách biểu diễn trên khơng gian tìm kiếm
chung để đưa các bài tốn riêng về giải trên khơng gian chung.
Tổng quát, một bài toán tối ưu đa nhiệm gồm k đối tượng bài tốn và số chiều
trong khơng gian biểu diễn của bài toán thứ i là Di , MFEA sẽ đặt số chiều lời giải
trong khơng gian tìm kiếm chung bằng giá trị lớn nhất trong các số chiều của các
đối tượng bài toán thành phần Dmultitask = maxi Di . Ứng với từng lớp các bài toán

và các đối tượng bài tốn sẽ cần tìm ra cách thức mã hóa và giải mã phù hợp.
Giả sử, áp dụng MFEA để giải 2 bài toán Knapsack 12 chiều và bài tốn TSP 6
chiều, ta có minh họa việc giải mã và mã hõa như sau:

19


Chương 1

Hình 1.6: Ví dụ Mã hóa và Giải mã trong MFEA

Với hai bài toán nêu trên, mỗi cá thể trong khơng gian quần thể chung sẽ có
chiều của đối tượng bài tốn có số chiều lớn nhất 12, các gen của mỗi các thể đại
diện bởi giá trị nằm trong khoảng từ 0 đến 1. Đẻ giải mã về bài toán Knapsack,
giá trị mỗi gen được so sánh với một số trung gian 0.5. Đối với bài toán TSP bắng
cách sắp xếp 6 phần tử đầu tiên và lấy thứ tự của chúng. Sau khi tồn tại cách mã
hóa trên không gian quần thể chung và giải mã về từng bài toán, các bước được
thực hiện tương tự như giải thuật di truyền, mỗi cá thể sẽ được tính toán với các
giá trị skill factor và scalar fitness tương ứng trong quần thể.

1.2.6

Các toán tử di truyền

Cũng như GA, MFEA cũng có các tốn tử di truyền lai ghép và đột biến. Tuy
nhiên nếu như ở GA bất kỳ hai cá thể được chọn nào cũng có thể lai ghép với
nhau thì ở MFEA có thêm một tham số skill factor, tham số này sẽ đại diện cho
đối tượng bài toán đặc trưng của mỗi cá thể. Hay hiểu một cách đơn giản, hai cá
thể có thể lai ghép được với nhau nếu nó cùng được đặc trưng bởi một đối tượng
bài toán (cùng skill factor). Ngược lại nếu khác skill factor thì chúng chỉ có thể lai

ghép được với nhau khi thõa mãn một tỉ lệ rmp nhất định. Nếu khơng, các cá thể
đó chỉ có thể sử dụng toán tử đột biến. Việc lựa chọn lai ghép hoặc đột biến được

20


Chương 1
mô tả trong giải thuật [2]
Algorithm 2: Lựa chọn Lai ghép Đột biến
Input: Cặp cá thể cha mẹ p a ∈ P, pb ∈ P
Output: Hai cá thể con c a , cb
1
2
3
4
5
6
7
8
9

begin
rand ← sinh số ngẫu nhiên trong khoảng 0...1;
if (τa == τb ) or (rand < rmp) then
c a , cb ← lai ghép hai cá thể p a , pb ;
else
c a ← đột biến từ cá thể p a ;
cb ← đột biến từ cá thể pb ;
end
end


1.2.7

Toán tử chọn lọc

Trong GA, một các thể mới sinh ra được thêm vào quần thể mới, còn trong
MFEA, trước khi thêm cá thể vào quần thể quần thể cần xác định skill factor cho
cá thể mới. Trong trường hợp cá thể con được sinh ra từ việc lai ghép hai cá thể
cha mẹ thì cá thể con thừa hưởng ngẫu nhiên skill factor của một trong hai cá thể
cha mẹ. Còn trường hợp cá thể con chỉ có một cha hoặc mẹ thì cá thể con nghiễm
nhiên thừa hưởng yếu tố skill factor của cá thể tạo ra cá thể con. Như trong giải
thuật [1], việc lựa chọn cá thể từ quần thể mới sẽ được tiến hành dựa trên thứ tự
ưu tiên của scalar fitness nhằm giữ lại các cá thể tốt sau mỗi thế hệ di truyền. Điều
này đảm bảo sau mỗi thế hệ, kết quả thu được tốt hơn hoặc bằng so với thế hệ
trước.

21


Chương 2
Mơ hình các bài tốn
2.1

Lý thuyết đồ thị

Trong đời sống sinh hoạt hàng ngày, có nhiều bái tốn liên quan tới tập các đối
tượng và những mối quan hệ giữa các đối tượng, địi hỏi tốn học đặt ra các mơ
hình biểu diễn một cách chặt chẽ và tổng quát bằng ngôn ngữ ký hiệu (đồ thị).
Những ý tưởng cơ bản được đưa ra từ nửa thế kỷ XVIII từ nhà tốn học Thụy Sĩ
Leonhard Euler, ơng đã áp dụng mơ hình đồ thị để giải bài tốn về nhứng cây cầu

Konigsberg nổi tiếng. Lý thuyết đồ thị đã được khoa học ứng dụng và phát triển
trong giai đoạn dài, nhưng đến hiện tại vẫn áp dụng cho rất nhiều ứng dụng.
Hiện tại, khi khoa học và công nghệ, sự ra đời của máy tính, phát triển nhanh của
Tin học thì lý thuyết đồ thị ngày càng được quan tâm đến nhiều hơn.

2.1.1

Các khái niệm cơ bản

Một đồ thị (graph) G (V, E) bao gồm một tập hữu hạn V các nút, hay đỉnh
(vertices) và một tập hữu hạn E các cặp đỉnh biểu diễn một cung hay cạnh (edges).
Nếu (u, v) ∈ E ta nói có một cạnh nối từ u đến v. Nếu giá trị cung (u, v) khác giá
trị cung (v, u) thu được đồ thị có hướng, trong trường hợp cịn lại thu được đồ
thị vô hướng. Trong đồ thị vô hướng, không phân biệt thứ tự các đỉnh trên cung;
cịn trong đồ thị có hướng, cung (u, v) định hướng đường đi từ u đến v.

(a) Đồ thị vơ hướng

(b) Đồ thị có hướng

Hình 2.1: Minh họa Đồ thị
Trên đồ thị, nếu cạnh e = (u, v) ∈ E( G ) thì hai đỉnh u và v kề nhau, cạnh e
được gọi cạnh liên thuộc với hai đỉnh u và v.
Với mỗi đỉnh v ∈ V, định nghĩa bậc (degree) của v, ký hiệu deg(v) thể hiện số
22


Chương 2
cạnh liên thuộc với v; hay gọi cách khác, số đỉnh kề với v.


2.1.2

Biểu diễn đồ thị

Ma trận kề
Giả sử G = (V, E) - đơn đồ thị có số đỉnh n (ký hiệu |V |). Khơng mất tính tổng
quát, giả sử nhãn các đỉnh được đánh số 1, , 2, ..., n. Khi đó, đồ thị có thể biểu diễn
bằng ma trận vuông A = [ ai,j ] cấp n.
Trong đó:
• ai,j = 1 nếu (i, j) ∈ E
• ai,j = 0 nếu (i, j) ∈ E
• Quy ước ai,i = 0, ∀i ∈ V
Đối với đồ thị có hướng, biểu diễn đồ thị tương tự với đồ thị vơ hướng. Trong đồ
thị có trọng số, giá trị mỗi ô ai,j - trọng số cạnh (i, j) của đồ thị.
Ưu điểm của ma trận kề:
• Đơn giản, nhìn nhận trực quan, dễ cài đặt trên máy tính.
• Thực hiện kiểm tra hai điểm u và v trên đồ thị có kề nhau hay khơng bằng
cách trực tiếp dùng giá trị trên ma trận để kiểm tra.
Nhược điểm của ma trận kề:
• Kích thước lưu trữ của ma trận kề địi hỏi n2 ơ nhớ để thực hiện lưu trữ,
lãng phí tài nguyên bộ nhớ trong trường hợp số cạnh đồ thị thưa. Mặt hạn
chế của kích thước lưu trữ lớn dẫn tới khó trong việc biểu diễn đồ thị với số
đỉnh lớn.
Danh sách kề
Trong biểu diễn của danh sách kề, mỗi đỉnh v của đồ thị được cấu trúc tạo
một danh sách kề với đỉnh v. Xét trên đồ thị G (V, E), V gồm n đỉnh và E gồm m
cạnh. Tổ chức thực hiện lưu trữ cách cạnh đồ thị theo danh sách kề, ứng với mỗi
đỉnh v ta cung cấp một danh sách list(v) chứa thông tin các đỉnh về với đỉnh v.
• Ưu điểm : dế dàng duyệt qua các đỉnh kề với đỉnh v cho trước, kích thước
bộ nhớ sử dụng tuyến tính với số cạnh của đồ thị.

• Nhược điểm: khi xét các cặp đỉnh u, v về lý thuyết chậm hơn so với ma trận
kề. Nhưng trong hầu hết các ứng dụng, danh sách kề được áp dụng nhiều
và thể hiện tốt hơn hẳn so vơi ma trận kề.

23


Chương 2

(a) Đồ thị

(b) Ma trận kề

(c) Danh sách kề

Hình 2.2: Biểu diễn Đồ thị

2.1.3

Đồ thị liên thơng

Tính liên thơng của đồ thị
Đồ thị vô hướng G = (V, E) gọi là liên thông nếu luôn tồn tại đường đi giữa
mọi cặp đỉnh đôi một khác nhau của đồ thị. Nếu G khơng liên thơng thì sẽ là hợp
của hai hay nhiều đồ thị con liên thông, các đồ thị con đơi một khơng có điểm
chung. Các đồ thị con liên thông rời nhau được gọi là các thành phần liên thơng
của đồ thị.

Hình 2.3: Đồ thị G và các thành phần liên thông G1 , G2 , G3
Trong nhiều trường hợp, thực hiện xóa một đỉnh và tất cả các cạnh liên thuộc

với đỉnh được xóa sẽ tạo đồ thị mới làm thay đổi số thành phần liên thông của đồ
thị, các đỉnh như vậy được gọi đỉnh cắt hay điểm khớp.

2.1.4

Bài tốn tìm kiếm trên đồ thị

Một đường đi (path) từ đỉnh v p tới đỉnh vq trên đồ thị G được biểu diễn bằng
một dãy các đỉnh v p , vi1 , vi2 , ..., vim , vq thuộc tập cạnh E( G ). Số lượng các cạnh trân
được đi được goi độ dài của đường đi. Trong đồ thì có trọng số, mỗi cạnh của đồ
thị được gắn với một giá trị, được gọi trọng số, độ dài, chi phí, hoặc các tên khác
tùy theo ứng dụng. Đỉnh v p được gọi là đỉnh đầu, vq được gọi là đỉnh cuối của
24


×