Tải bản đầy đủ (.doc) (64 trang)

Nghiên cứu tính toán mềm và ứng dụng

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 (339.47 KB, 64 trang )

BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG

--------o0o--------

iso 9001 : 2000

NGHIÊN CỨU TÍNH TỐN MỀM VÀ ỨNG DỤNG

ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY
Ngành: Công nghệ thông tin

Sinh viên thực hiện : BÙI THỊ OANH
PGS.TS.TRỊNH NHẬT TIẾN
Giáo viên hướng dẫn : 090112

Mã sinh viên :

HẢI PHÒNG 2009

LỜI CẢM ƠN

Em xin chân thành cảm ơn sự giúp đỡ của PGS.TS.Trịnh Nhật Tiến, người đã
trực tiếp hướng dẫn, tận tình chỉ bảo tạo điều kiện cho em hồn thành khóa luận
đúng thời hạn.

Em xin chân thành cảm ơn tất cả các thầy cô giáo trong khoa Công nghệ thông
tin - Trường ĐHDL Hải Phịng, những người đã nhiệt tình giảng dạy và truyền đạt
những kiến thức cần thiết trong suốt thời gian em học tập tại trường, để em hồn
thành tốt khóa luận.


Cuối cùng em xin cảm ơn tất cả các bạn đã góp ý, trao đổi hỗ trợ cho em trong
suốt thời gian vừa qua.

Em xin chân thành cảm ơn!
Hải Phòng, tháng 07 năm 2009
Sinh viên
Bùi Thị Oanh

1

MỤC LỤC

LỜI NĨI ĐẦU......................................................................................................................5
Chương 1: TÍNH TỐN MỀM...........................................................................................6

1.1. KHÁI NIỆM TÍNH TỐN MỀM.....................................................................6
1.2. PHÂN BIỆT TÍNH TỐN MỀM VÀ TÍNH TỐN CỨNG...........................7
1.3. TẠI SAO CẦN PHẢI CĨ TÍNH TỐN MỀM................................................8
1.4. CÁC KỸ THUẬT TRONG TÍNH TỐN MỀM.............................................9

1.4.1. Logic mờ (Fuzzy Logic – FL).....................................................................9
1.4.2. Mạng Nơron (Neural Network – NN)......................................................10
1.4.3. Chương trình tiến hóa (Evolutionary Computation – EC)...................11
Chương 2: GIẢI THUẬT DI TRUYỀN............................................................................12
2.1. KHÁI NIỆM GIẢI THUẬT DI TRUYỀN......................................................12
2.1.1. Đặc trưng của thuật toán di truyền kinh điển........................................12
2.1.2. Cơ sở sinh học của giải thuật di truyền...................................................13
2.1.3. Tư tưởng của giải thuật di truyền............................................................14
2.1.4. Hoạt động của giải thuật di truyền..........................................................15
2.2. CẤU TRÚC GIẢI THUẬT DI TRUYỀN ĐƠN GIẢN..................................17

2.2.1. Tái tạo.........................................................................................................18
2.2.2. Lai ghép......................................................................................................20
2.2.3. Đột biến......................................................................................................21
2.3. SƠ ĐỒ GIẢI THUẬT DI TRUYỀN................................................................22
2.4. MỘT SỐ CẢI TIẾN CỦA THUẬT TOÁN DI TRUYỀN ĐƠN GIẢN........23
2.4.1. Cải tiến phương pháp chọn lọc.................................................................23

2.4.1.1. Chọn lọc xếp hạng (Rank Selection).................................................23
2.4.1.2. Chọn lọc cạnh tranh (Tournament selection)...................................24
2.4.2. Cải tiến toán tử lai ghép............................................................................24
2.4.2.1. Lai ghép ánh xạ từng phần (PMX – Partial Mappel Crossover).....24
2.4.2.2. Lai ghép có trật tự (OX – Order Crossover)......................................25
2.4.2.3. Lai ghép dựa trên vị trí (Possition Base Crossover)..........................26
2.4.2.4. Lai ghép dựa trên thứ tự (Order – Base Crossover).........................27
2.4.2.5. Lai ghép có chu trình (CX – Cycle Crossover)..................................28
2.4.2.6. Lai ghép thứ tự tuyến tính (LOX – Linea Order Crossover)............29
2.4.3. Cải tiến về hàm mục tiêu..........................................................................30
2.4.3.1. Chuyển đổi hàm mục tiêu thành hàm thích nghi.............................30
2.4.3.2. Phép sửa đổi hàm thích nghi theo từng bước lặp.............................31
2.5. BÀI TOÁN TỐI ƯU HÀM SỐ.........................................................................32

2

Chương 3: HỆ MÃ HÓA DỮ LIỆU DES.........................................................................34
3.1. HỆ MÃ HÓA.....................................................................................................34
3.1.1. Khái niệm mã hóa............................................................................................35
3.1.2. Phân loại mã hóa.............................................................................................35
3.1.2.1. Hệ mã hóa khóa đối xứng.........................................................................36
3.1.2.2. Hệ mã hóa khóa phi đối xứng (hệ mã hóa khóa cơng khai)..................37
3.2. HỆ MÃ HÓA DES..................................................................................................39

3.2.1. Giới thiệu hệ mã hóa DES..............................................................................39
3.2.2. Quy trình mã hóa DES...................................................................................40
3.2.2.1. Sơ đồ:..................................................................................................41
3.2.2.2. Thực hiện mã hóa theo sơ đồ...................................................................41
3.2.2.3. Tính các khóa con k1, k2,…, k16 từ khóa gốc K..................................42
3.2.2.4. Tính hàm f(Ri-1, ki)....................................................................................44
3.2.3. Quy trình giải mã DES.............................................................................49
3.2.4. Ví dụ............................................................................................................50
3.2.5. Độ an toàn của Hệ mã hóa DES...............................................................52

Chương 4: PHƯƠNG PHÁP THỐNG KÊ NGƠN NGỮ HỌC VÀ GIẢI THUẬT
DI TRUYỀN ĐỂ DỊ TÌM KHĨA MẬT...........................................................................53

4.1. TẦN XUẤT XUẤT HIỆN CỦA CÁC CHỮ CÁI TRONG BẢN RÕ
TIẾNG ANH..................................................................................................................53

4.1.1. Các kí tự hiếm gặp (Có tần suất xuất hiện thấp): z, q, j, x, k, v........53
4.1.2. Các kí tự hay gặp (Có tần suất xuất hiện cao)........................................54
4.2. DỊ TÌM KHĨA BẰNG THỐNG KÊ NGƠN NGỮ HỌC VÀ
THUẬT TOÁN GA.......................................................................................................57
4.2.1. Giai đoạn 1:................................................................................................58
4.2.2. Giai đoạn 2.................................................................................................60
KẾT LUẬN.........................................................................................................................62
TÀI LIỆU THAM KHẢO................................................................................................63

3

Danh mục các từ viết tắt

NST Nhiễm sắc thể


GA Genetics Algorithms

DES Data Encryption Standard.

Danh mục các thuật ngữ thông dụng trong giải thuật di truyền

Trong tự nhiên Trong giải thuật di truyền
Gene Đặc tính, ký tự
Chromosome (Nhiễm sắc thể) Chuỗi
Allele (gene tương ứng) Giá trị của đặc tính
Locus (ổ gene) Vị trí chuỗi
Genetype (kiểu hình) Tập thông số, giải pháp luân phiên,
cấu trúc được giải mã

4

LỜI NÓI ĐẦU

Trong thực tế cuộc sống, các bài toán liên quan đến hệ thống nhận thức, tri thức
của con người, đều hàm chứa những đại lượng, thơng tin, mà bản chất là khơng
chính xác, không chắc chắn, không đầy đủ…. cho các hệ thống ra quyết định.

Ví dụ: Sẽ chẳng bao giờ có thơng tin, dữ liệu, cũng như các mơ hình tính tốn
đầy đủ và chính xác cho bài toán dự báo thời tiết.

Trong lĩnh vực khoa học cũng vậy, các hệ thống phức tạp trên thực tế thường
không thể mô tả đầy đủ, và chính xác bởi các phương trình tốn học truyền thống.
Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân tích, và các
phương trình tốn học nhanh chóng khơng cịn phù hợp. Vì thế cơng nghệ tính tốn

mềm chính là giải pháp cần thiết trong lĩnh vực này.

Cơng nghệ tính tốn mềm bao gồm 3 thành phần chính:
- Điều khiển mờ (Fuzzy Control)
- Mạng nơ-ron nhân tạo (Neural Network)
- Giải thuật di truyền (Genetic Algorithm)
Do thời gian khơng nhiều và khối lượng cơng việc tìm hiểu khá lớn nên trong
khuôn khổ đồ án tốt nghiệp này, để tìm hiểu cho sâu, em tập trung nghiên cứu giải
thuật di truyền.
Hiện nay, thuật toán di truyền cùng với logic mờ được ứng dụng rộng rãi trong
các lĩnh vực phức tạp, các vấn đề khó, sử dụng các kỹ thuật tìm kiếm lời giải, với
khơng gian tìm kiếm rất lớn, nhất là những bài tốn cần có sự lượng giá, đánh giá
sự tối ưu của kết quả thu được. Chính vì vậy, thuật giải di truyền đã trở thành đề tài
nghiên cứu thú vị và đem đến nhiều ứng dụng trong thực tiễn.
Xuất phát từ những vấn đề trên, khóa luận đã tìm hiểu, nghiên cứu giải thuật di
truyền. Sau đó sử dụng giải thuật di truyền cổ điển kết hợp với phương pháp thống
kê ngơn ngữ học giải quyết bài tốn “Dị tìm mã DES”.
Khóa luận khơng tránh khỏi những thiếu sót, rất mong được sự giúp đỡ, chỉ bảo
của thầy cô và các bạn!

5

Chương 1: TÍNH TỐN MỀM

1.1. KHÁI NIỆM TÍNH TỐN MỀM
Tính tốn mềm (Soft Computing) khác với tính tốn cứng truyền thống (Hard

Computing) ở chỗ: khơng như tính tốn cứng, tính tốn mềm cho phép sự khơng
chính xác, tính bất định, gần đúng, xấp xỉ trong tính tốn. Các mơ hình tính tốn
mềm thường dựa vào kinh nghiệm của con người, sử dụng dung sai cho phép của

sự khơng chính xác, tính bất định, gần đúng, xấp xỉ để tìm lời giải hiệu quả - đơn
giản, dễ hiểu, dễ thực hiện, chi phí thấp.

Tính tốn mềm biểu thị một sự chuyển dịch, biến hố quan trọng trong các
hướng tính tốn. Sự chuyển dịch này phản ánh sự kiện trí tuệ con người, khơng như
máy tính, có khả năng đáng kể trong việc lưu trữ và xử lý thơng tin khơng chính
xác và bất định, và đây mới là những thông tin thực tế và thường gặp.

Các ứng dụng thành cơng của tính tốn mềm cho thấy tính tốn mềm ngày càng
phát triển mạnh và đóng vai trị đặc biệt trong các lĩnh vực khác nhau của khoa học
và kỹ thuật. Tính tốn mềm được ứng dụng trong hầu hết các chuyên ngành kỹ
thuật như kỹ thuật điện, kỹ thuật điều khiển, kỹ thuật hoá học, kỹ thuật xây dựng,...
Kỹ thuật điện là lĩnh vực đầu tiên ứng dụng tính toán mềm trong các lĩnh vực như
điều khiển mờ, xử lý ảnh mờ, mạch điện tử dùng logic, người máy,....

Khái niệm “Tính tốn mềm” được Zadeh đưa ra lần đầu tiên vào năm 1994
được mô tả như sau: “Một cách cơ bản, tính tốn mềm khơng phải là thể thống nhất
các khái niệm và kỹ thuật. Đúng ra, nó là sự kết hợp của các phương pháp riêng
biệt theo cách này hay cách khác để thích nghi với nguyên lý của nó. Tại điểm giao
đó, mục đích cuối cùng của tính tốn mềm là khai thác khả năng thứ lỗi (Tolerance)
cho tính khơng chính xác hay tính bất định để đạt được mục tiêu với chi phí thấp”.
Một cách đơn giản hơn, “Tất cả các tính tốn có bao gồm tính khơng chính xác một
cách có chủ đích trong tính tốn ở một hay nhiều mức và cho phép tính khơng
chính xác này làm thay đổi (làm giảm) độ chính xác của bài tốn, hay “làm mềm”
mục tiêu tối ưu ở một số bước, đều bị coi là thuộc lĩnh vực tính tốn mềm”.

6

1.2. PHÂN BIỆT TÍNH TỐN MỀM VÀ TÍNH TỐN CỨNG
Tính tốn truyền thống, hay cịn gọi là tính tốn cứng, là phương pháp sử dụng


các kỹ thuật tính tốn, dựa trên dữ liệu đầu vào để đưa ra kết quả cuối cùng một
cách chính xác theo yêu cầu của bài toán.

Bảng dưới đây đưa ra một số điểm khác biệt giữa tính tốn mềm và tính tốn
cứng, để chúng ta có được một hình dung cụ thể hơn về tính tốn mềm.

Điểm so sánh Tính tốn cứng Tính tốn mềm
Dữ liệu xử lý - Xử lý bài tốn dựa trên số -Khơng địi hỏi dữ liệu phải
chính xác.
Kết quả đầu ra liệu chính xác. -Ví dụ: Giá trị của A có thể nằm
- Ví dụ: Giá trị của A phải trong khoảng từ 0 đến 1: [0,1]
Kỹ thuật tính - Yêu cầu đưa ra kết quả gần tối
toán là 0 hoặc 1: {0,1}
- Yêu cầu đưa ra kết quả ưu (cho phép sự sai lệch nhất
Thời gian tính tối ưu (kết quả chính xác định trong kết quả tìm được)
tốn hồn tồn) - Kỹ thuật tính tốn dựa trên
- Sử dụng kỹ thuật tính Heuristic được sử dụng phổ
Lĩnh vực áp dụng toán truyền thống biến
- Thời gian tính tốn nhanh hơn
- Thời gian tính tốn với chi phí thấp hơn
thường chậm hơn. Trong
một số trường hợp, không - Các bài tốn khơng u cầu
thể đưa ra kết quả trong lời giải chính xác, song phải
thời gian chấp nhận được đưa ra kết quả trong một
- Các bài toán yêu cầu lời khoảng thời gian nhất định
giải chính xác, khơng cho với chi phí nhất định
phép sự sai lệch.

Bảng 1: So sánh tính tốn cứng và tính tốn mềm

1.3. TẠI SAO CẦN PHẢI CĨ TÍNH TỐN MỀM

7

Trong thực tế cuộc sống, các bài tốn liên quan đến hệ thống nhận thức, trí tuệ
của con người đều hàm chứa những đại lượng, thông tin khơng chính xác, khơng
chắc chắn, khơng đầy đủ. Ví dụ: sẽ chẳng bao giờ có các thơng tin, dữ liệu cũng
như các mơ hình tính tốn đầy đủ, và chính xác cho bài tốn dự báo thời tiết. Nhìn
chung con người ln ở trong bối cảnh khơng có thơng tin chính xác, và đầy đủ cho
các hệ thống ra quyết định.

Trong lĩnh vực khoa học kỹ thuật cũng vậy, các hệ thống phức tạp trên thực tế
thường không thể mô tả một cách đầy đủ, và chính xác bởi các phương trình tốn
học truyền thống. Kết quả là những cách tiếp cận kinh điển dựa trên kỹ thuật phân
tích, và các phương trình tốn học nhanh chóng tỏ ra khơng cịn phù hợp. Vì thế,
cơng nghệ tính tốn mềm chính là giải pháp trong lĩnh vực này.

Một số đặc điểm của cơng nghệ tính tốn mềm:
- Tính tốn mềm căn cứ trên các đặc điểm, hành vi của con người, và tự nhiên để

đưa ra quyết định hợp lý trong điều kiện khơng chính xác, khơng chắc chắn.
- Các thành phần của tính tốn mềm có sự bổ sung, hỗ trợ nhau.
- Tính tốn mềm là một hướng nghiên cứu mở, bất kỳ một kỹ thuật mới nào được

tạo ra từ việc bắt chước trí thơng minh của con người, đều có thể trở thành một
thành phần mới của tính tốn mềm.
- Chính nhờ những đặc điểm đó mà tính tốn mềm đang được nghiên cứu và ứng
dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là: trí tuệ nhân tạo, khoa học máy
tính và học máy. Cụ thể:
 Khơng phải bài tốn nào cũng có thuật tốn có thể giải quyết được bằng tính


toán cứng.
 Khơng phải bài tốn nào có thuật tốn có thể giải quyết được bằng tính tốn

cứng, cũng có thể thực hiện với chi phí và thời gian chấp nhận được.
 Khi bản thân dữ liệu là không chính xác thì khơng thể giải quyết được bằng

phương pháp chính xác.
Với những ưu thế đó, tính tốn mềm đang dần thể hiện vai trị của mình nhất là
trong việc giải quyết vấn đề mới.
1.4. CÁC KỸ THUẬT TRONG TÍNH TỐN MỀM

8

Cơng nghệ tính tốn mềm bao gồm 3 thành phần chính:
- Điều khiển mờ (Fuzzy Control)
- Mạng nơ-ron nhân tạo (Neural Network)
- Giải thuật di truyền (Genetic Algorithm)
1.4.1. Logic mờ (Fuzzy Logic – FL)

Khái niệm tập mờ (Fuzzy set) được Zadeh đưa ra vào năm 1965 với mục đích
cho phép các phần tử thuộc về một tập liên tục thay cho rời rạc. Kể từ đó, các ứng
dụng và phát triển dựa trên khái niệm tưởng chừng rất đơn giản này, đã mang lại
những kết quả khó có thể tin được, thậm chí khó có thể chỉ ra các ứng dụng, phát
triển hay sản phẩm nào khơng có liên quan đến khái niệm tập mờ. Ví dụ: chúng ta
thường nghe đến nhiều thuật ngữ như: máy giặt fuzzy, quạt fuzzy, xe máy fuzzy...

Khái niệm tập mờ có vai trị rất quan trọng trong việc giải quyết các bài toán tối
ưu, đưa ra các bài tốn có tính thực tế, giải quyết bài tốn với chi phí thấp và trong
thời gian nhanh hơn (mặc dầu chấp nhận việc có thể có sai số). Trong lĩnh vực an

tồn thơng tin, tập mờ cũng được sử dụng rất rộng rãi. Tất cả các thuật toán, giải
thuật, kỹ thuật được giới thiệu dưới đây đều được xuất phát từ tập mờ.

1.4.2. Mạng Nơron (Neural Network – NN).

9

NN là mơ hình tính tốn dựa trên bộ não. Mơ hình NN bao gồm các bộ xử lý _
các Nơron _ có mối liên kết chặt chẽ với nhau, tương tự như họat động của các
Nơron trong não người. Các Nơron được kết nối bởi các đường liên kết có đánh
trọng số, truyền tín hiệu từ nơron này đến nơron khác. Mỗi nơron nhận các tín hiệu
đầu vào (có trọng số) thơng qua các đường kết nối và tạo một tín hiệu đầu ra.

Hình vẽ sau đây mơ tả mơ hình của mạng nơron điển hình:

X W11 y

W Neuro Y y
X2 2 n

y

X W

3 3

Input Signals Weights Output Signals

Hình 1. Mơ hình mạng Nơron điển hình


1.4.3. Chương trình tiến hóa (Evolutionary Computation – EC)
10

Kĩ thuật EC bao gồm rất nhiều các giải thuật khác nhau, ở đây, tiểu luận trình
bày một trong những giải thuật tiến hóa phổ biến nhất – giải thuật di truyền
(Genetic Allgothm –GA). Hình vẽ bên dưới mô tả hoạt động của một giải thuật di
truyền điển hình.

Population

New Selection
Population

Mutation Mating

Hình 2 – Mơ hình hoạt động của giải thuật di truyền.

Bài này sẽ trình bày các khái niệm cơ bản về giải thuật di truyền và áp dụng
trong bài toán cụ thể.

Chương 2: GIẢI THUẬT DI TRUYỀN
11

2.1. KHÁI NIỆM GIẢI THUẬT DI TRUYỀN
Thuật toán di truyền (Genetic Algorithm_GA) là kỹ thuật chung giúp giải quyết

bài tốn bằng cách mơ phỏng sự tiến hóa của con người hay của sinh vật nói chung
(dựa vào lý thuyết tiến hóa mn lồi của Darwin) trong điều kiện quy định sẵn của
môi trường. GA là một thuật giải và mục tiêu của GA không nhằm đưa ra lời giải
chính xác tối ưu, mà là đưa ra lời giải tương đối tối ưu.


2.1.1. Đặc trưng của thuật toán di truyền kinh điển
Thuật toán di truyền lập luận ngẫu nhiên thay vì xác định.
Thuật tốn di truyền duyệt tồn bộ các giải pháp, sau đó chọn lấy giải pháp
tương đối tốt dựa trên hệ số thích nghi.
Thuật tốn di truyền khơng để ý chi tiết vấn đề, mà chỉ chú ý đến giải pháp, đặc
biệt là dãy số tượng trưng cho giải pháp.

Goldberg và Zbiniev Michalewicz nêu ra đặc trưng của GA như sau:
- Thuật toán di truyền làm việc với một mã hóa của tập hợp tham số, chứ không

phải là một tham số.
- Thuật tốn di truyền tìm kiếm từ một quần thể các điểm, chứ không phải là một

điểm hoặc một vài điểm như phương pháp tìm kiếm leo đồi (Hill Climbing).
- Thuật toán di truyền đánh giá thông tin với hàm mục tiêu, mà không dựa vào

đạo hàm hay thông tin bổ sung khác.
- Thuật toán di truyền sử dụng các luật biến đổi theo xác suất, mà không sử dụng

luật quyết định.

2.1.2. Cơ sở sinh học của giải thuật di truyền

12

Trong cơ thể sinh vật, các gene liên kết với nhau theo cơ chế dạng chuỗi gọi là
nhiễm sắc thể (NST), nó đặc trưng cho mỗi lồi và quyết định sự sống cịn của cơ
thể đó. Trong tự nhiên một lồi muốn tồn tại phải thích nghi với mơi trường hơn,
thì sẽ tồn tại và sinh sản với số lượng ngày càng nhiều hơn, trái lại những lồi

khơng thích nghi với mơi trường sẽ dần bị tuyệt chủng.

Môi trường tự nhiên luôn luôn biến đổi, nên cấu trúc nhiễm sắc thể cũng thay
đổi để thích nghi với mơi trường, và ở thế hệ sau ln có độ thích nghi cao hơn thế
hệ trước. Cấu trúc này có được nhờ sự trao đổi thơng tin ngẫu nhiên với mơi trường
bên ngồi, hay giữa chúng với nhau. Dựa vào đó các nhà khoa học máy tính xây
dựng một giải thuật tìm kiếm tinh tế dựa trên cơ sở chọn lọc tự nhiên và quy luật
tiến hóa, gọi là giải thuật di truyền (Genetic Algorithms).

2.1.3. Tư tưởng của giải thuật di truyền
13

Có một số lớn các bài tốn người ta chưa tìm thuật tốn tương đối nhanh để giải
quyết chúng. Nhiều bài toán trong lớp này là các bài toán quy hoạch thường nảy
sinh trong các ứng dụng. Với bài tốn quy hoạch thuộc loại khó, có thể tìm được
thuật tốn “nhanh”, cho kết quả gần tối ưu. Đối với một số bài tốn quy hoạch khó,
ta cũng có thể tìm thuật tốn xác suất, thuật tốn này không đảm bảo cho kết quả
tối ưu, nhưng bằng cách chọn ngẫu nhiên đủ nhiều “bằng chứng”, có thể giảm tùy ý
xác suất sai của kết quả.

Nói một cách trừu tượng, việc giải bài tốn có thể xem như tìm kiếm trong
khơng gian với lời giải có thể. Vì cái đích của chúng ta là “lời giải tốt nhất”, ta có
thể xem phương pháp giải bài tốn là q trình tối ưu hóa. Đối với không gian nhỏ,
phương pháp “vét cạn” cổ điển là đủ dùng. Đối với các khơng gian lớn hơn, địi hỏi
những phương pháp trí tuệ nhân tạo đặc biệt. Thuật tốn di truyền (GA) nằm trong
các phương pháp đặc biệt đó.

Tư tưởng của thuật toán di truyền là xem xét, đánh giá các gene thế nào là tốt
cho mục tiêu, sử dụng nó tiếp cho thế hệ sau. Nói theo ngơn ngữ di truyền là giữ lại
các gene trội, loại bỏ các gene không tốt, hay là đào thải những thế hệ không tốt.


2.1.4. Hoạt động của giải thuật di truyền

14

Thuật toán di truyền dùng nhiều ngơn ngữ của ngành di truyền học. Chúng ta sẽ
nói về các “cá thể” trong một quần thể. Thường thì các cá thể này được gọi là xâu,
hoặc nhiễm sắc thể. Mỗi lồi có một số lượng nhiễm sắc thể nhất định (Ví dụ: cơ
thể người có 46 nhiễm sắc thể). Tuy nhiên, trong bài này, ta chỉ nói về các cá thể có
đúng một nhiễm sắc thể. Mỗi nhiễm sắc thể bao gồm các đơn vị - gene – xếp liên
tiếp; mỗi gene điều khiển sự thừa kế của một hoặc vài tính trạng bất kỳ (thí dụ màu
mắt) có thể được thể hiện dưới nhiều mức độ khác nhau. Ta nói gene đó có nhiều
trạng thái (gọi là state).

Mỗi nhiễm sắc thể (cá thể) sẽ biểu thị một lời giải có thể của một bài toán
(ý nghĩa của mỗi nhiễm sắc thể, nghĩa là kiểu gene của nó được quy định bởi người
lập trình). Một q trình tiến hóa được thực hiện trên một quần thể nhiễm sắc thể,
là tương đương với sự tìm kiếm trong một khơng gian các lời giải có thể. Sự tìm
kiếm này địi hỏi sự cân bằng giữa hai mục đích: Khai thác lời giải tốt nhất, và
khám phá khơng gian tìm kiếm. Phương pháp “leo núi” là một ví dụ về chiến lược
khai thác lời giải tốt nhất theo các hướng cải tiến. Tìm kiếm ngẫu nhiên là một ví
dụ điển hình của sự khám phá khơng gian tìm kiếm, khơng chú trọng khai thác các
miền hứa hẹn trong khơng gian tìm kiếm. Thuật tốn di truyền là lớp các phương
pháp tìm kiếm tổng quát với sự cân bằng đáng kể giữa khai thác và khám phá
không gian tìm kiếm.

Thuật tốn di truyền cũng như các thuật tốn tiến hóa nói chung, hình thành
dựa trên khái niệm cho rằng q trình tiến hóa tự nhiên là hồn hảo nhất, hợp lý
nhất và tự nó đã mang tính tối ưu. Quan niệm này có thể được xem là một tiên đề
đúng, không chứng minh được nhưng phù hợp với thực tế khách quan. Quá trình

tiến hóa thể hiện tính tối ưu ở chỗ: thế hệ sau bao giờ cũng tốt hơn, phát triển hơn,
hoàn thiện hơn thế hệ trước. Tiến hóa tự nhiên được duy trì bằng hai quá trình cơ
bản: sinh sản và chọn lọc tự nhiên. Xun suốt q trình tiến hóa tự nhiên, là thế hệ
mới luôn được sinh ra để bổ sung và thay thế thế hệ cũ.

Cá thể nào phát triển hơn, thích ứng hơn với mơi trường sẽ tồn tại, cá thể nào
khơng thích ứng với môi trường sẽ bị đào thải. Sự thay đổi môi trường là động lực

15

tiến hóa. Ngược lại tiến hóa cũng tác động trở lại, góp phần làm thay đổi mơi
trường.

Trong thuật giải di truyền, các cá thể mới liên tục được sinh ra trong q trình
tiến hóa nhờ sự lai ghép ở thế hệ cha mẹ. Một cá thể mới có thể mang những tính
trạng của cha mẹ (di truyền), cũng có thể mang những tính trạng hồn tồn mới
(đột biến). Di truyền và đột biến là hai cơ chế quan trọng như nhau trong tiến hóa,
dù đột biến xảy ra với xác suất nhỏ hơn nhiều so với di truyền. Các thuật tốn tiến
hóa, tuy có những đặc điểm khác biệt, nhưng đều mơ phỏng các q trình cơ bản:
lai ghép, đột biến, sinh sản và chọn lọc tự nhiên.

Như vậy, quá trình tiến hóa càng lâu thì càng có điều kiện cho các cá thể tốt
được sinh ra, và chất lượng của cá thể càng được nâng lên.

2.2. CẤU TRÚC GIẢI THUẬT DI TRUYỀN ĐƠN GIẢN

16

Trong thuật toán di truyền đơn giản, các cá thể hay còn gọi là NST (Nhiễm sắc
thể) được mã hóa thành một chuỗi nhị phân gồm giá trị 0 và 1. Một NST trong GA

cổ điển có dạng sau:

0 0 1 1 0 0 1 1 1
Mỗi NST biểu diễn một lời giải có thể có của bài tốn. Một q trình tiến hóa
được thực hiện trên một quần thể (một tập hợp NST) tương đương với sự tìm kiếm
trong khơng gian lời giải có thể. Sự tìm kiếm này địi hỏi sự cân bằng giữa hai mục
đích: tìm lời giải tốt nhất và khám phá khơng gian tìm kiếm mới.
GA cổ điển thực hiện tìm kiếm theo nhiều hướng bằng cách duy trì một tập lời
giải có thể, khuyến khích sự hình thành và trao đổi thơng tin giữa các hướng. Tập
lời giải trải qua quá trình tiến hóa và cuối cùng cho ta một lời giải đủ tốt được chọn
để tái sinh, các lời giải tồi bị loại bỏ. Để phân biệt mức độ tốt xấu giữa các lời giải
khác nhau người ta dùng một hàm gọi là “hàm mục tiêu” hay “hàm thích nghi” vì
hàm này tương đương với mơi trường sống hay thuyết tiến hóa.

Thuật toán di truyền đơn giản bao gồm ba toán tử sau:
Tái tạo (Reproduction)
Lai ghép (Crossover)
Đột biến (Mutation)

2.2.1. Tái tạo

17

Tái tạo là một quá trình trong đó các chuỗi biểu diễn cá thể được sao chép lại
tùy theo giá trị hàm mục tiêu f (các nhà sinh vật học gọi hàm này là hàm thích
nghi). Tốn tử này được xem là q trình chọn lọc trong tự nhiên. Hàm mục tiêu
f(i) được gán cho mỗi cá thể trong dân số. Việc sao chép lại các chuỗi tùy theo giá
trị thích nghi của chúng, có nghĩa là: Những chuỗi có giá trị thích nghi cao hơn sẽ
có nhiều cơ hội đóng góp các chuỗi con cho thế hệ tiếp theo.


Thao tác sinh sản (chọn cha mẹ) được điều khiển bằng cách quay bánh xe
roulette, trong đó mỗi chuỗi trong dân số chiếm một khe có kích thước tỉ lệ với
độ thích nghi (fitness) của nó trên bánh xe.

Giả sử các chuỗi của quần thể ban đầu đã khởi tạo trong bài tốn hộp đen có các
giá trị hàm thích nghi như trong bảng sau. Lấy tổng độ thích nghi của 4 chuỗi,
chúng ta được 1170. Ta có tỉ lệ % độ thích nghi của từng chuỗi trong quần thể:

STT Chuỗi Độ thích nghi % trong tổng số
1
2 01101 169 14.4
3
4 11000 576 49.2
Tổng cộng
01000 64 5.5

10001 361 30.9

1170 100.0

Các chuỗi của bài tốn mẫu và các giá trị thích nghi

Bánh xe roulette được đánh trọng số phù hợp cho sự tái tạo của thế hệ này được
thể hiện trên hình sau:

49.2%

2 5.5%
14.4% 3


1 30.9% 18

4

Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử dụng bánh xe Roulette
với các khe hở tỉ lệ với độ thích nghi.

Với bài toán hộp đen, để sinh sản chúng ta chỉ cần quay bánh xe Roulette 4 lần.
Đối với bài tốn cụ thể thì:

Chuỗi 1 có giá trị thích nghi là 169 đại diện cho 0.144. Tương tự với các chuỗi
còn lại, bằng cách này chuỗi thích nghi hơn sẽ có một lượng con cháu lớn hơn
trong thế hệ tiếp theo.

2.2.2. Lai ghép
Mỗi khi một chuỗi được chọn để sinh ra, một bản sao chính xác của các chuỗi

đó sẽ được tạo ra. Các bản sao này được đưa vào bể ghép đơi (mating pool). Tốn
tử lai ghép đơn giản có thể được tiến hành theo hai bước:

19


×