NGHIÊN CỨU TÍNH TOÁN MỀM VÀ ỨNG DỤNG
Trang 1BỘ GIÁO DỤC ĐÀO TẠOTRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-o0o -iso 9001 : 2000
NGHIÊN CỨU TÍNH TOÁ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
Giáo viên hướng dẫn : PGS.TS.TRỊNH NHẬT TIẾN
Mã sinh viên : 090112
HẢI PHÒNG 2009
Trang 2LỜ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 hoà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ôngtin - Trường ĐHDL Hải Phòng, những người đã nhiệt tình giảng dạy và truyền đạtnhữ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 hoànthà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 trongsuố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
Trang 3MỤC LỤC
LỜI NÓI ĐẦU 5
Chương 1: TÍNH TOÁN MỀM 6
1.1 KHÁI NIỆM TÍNH TOÁN MỀM 6
1.2 PHÂN BIỆT TÍNH TOÁN MỀM VÀ TÍNH TOÁN CỨNG 7
1.3 TẠI SAO CẦN PHẢI CÓ TÍNH TOÁN MỀM 8
1.4 CÁC KỸ THUẬT TRONG TÍNH TOÁ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
Trang 4Chươ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
Trang 5Danh 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
Allele (gene tương ứng) Giá trị của đặc tính
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
Trang 6LỜ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ứccủa con người, đều hàm chứa những đại lượng, thông tin, mà bản chất là khôngchí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 toá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ườngkhông thể mô tả đầy đủ, và chính xác bởi các phương trình toá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ácphương trình toán học nhanh chóng không còn phù hợp Vì thế công nghệ tính toánmềm chính là giải pháp cần thiết trong lĩnh vực này
Công nghệ tính toá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 trongkhuô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ảithuậ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 trongcá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ớikhông gian tìm kiếm rất lớn, nhất là những bài toá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àinghiê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 ditruyề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 toá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ảocủa thầy cô và các bạn!
Trang 7Chương 1: TÍNH TOÁN MỀM
Tính toán mềm (Soft Computing) khác với tính toán cứng truyền thống (HardComputing) ở chỗ: không như tính toán cứng, tính toán mềm cho phép sự khôngchính xác, tính bất định, gần đúng, xấp xỉ trong tính toán Các mô hình tính toánmề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ả - đơngiản, dễ hiểu, dễ thực hiện, chi phí thấp
Tính toán mềm biểu thị một sự chuyển dịch, biến hoá quan trọng trong cáchướng tính toá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ínhxá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 toán mềm cho thấy tính toán mềm ngày càngphá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 toá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 toá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 toán mềm không phải là thể thống nhấtcá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êngbiệ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 toá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 toán có bao gồm tính không chính xác mộtcách có chủ đích trong tính toán ở một hay nhiều mức và cho phép tính khôngchính xác này làm thay đổi (làm giảm) độ chính xác của bài toá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 toán mềm”
6
Trang 81.2 PHÂN BIỆT TÍNH TOÁN MỀM VÀ TÍNH TOÁN CỨNG
Tính toán truyền thống, hay còn gọi là tính toán cứng, là phương pháp sử dụngcác kỹ thuật tính toán, dựa trên dữ liệu đầu vào để đưa ra kết quả cuối cùng mộtcá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 toán mềm và tính toáncứng, để chúng ta có được một hình dung cụ thể hơn về tính toán mềm
tối ưu (kết quả chính xác hoàn toàn)
- Yêu cầu đưa ra kết quả gần tối
ưu (cho phép sự sai lệch nhất định trong kết quả tìm được)
Kỹ thuật tính
toán
- Sử dụng kỹ thuật tính toán truyền thống
- Kỹ thuật tính toán dựa trên Heuristic được sử dụng phổ biến
Thời gian tính
toán
- Thời gian tính toán thường chậm hơn Trong một số trường hợp, không thể đưa ra kết quả trong thời gian chấp nhận được
- Thời gian tính toán nhanh hơnvới chi phí thấp hơn
Lĩnh vực áp dụng - Các bài toán yêu cầu lời
giải chính xác, không cho phép sự sai lệch
- Các bài toán không yêu cầu lời giải chính xác, song phải đưa ra kết quả trong một khoảng thời gian nhất định với chi phí nhất định
Bảng 1: So sánh tính toán cứng và tính toán mềm
Trang 9Trong thực tế cuộc sống, các bài toá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ôngchắc chắn, không đầy đủ Ví dụ: sẽ chẳng bao giờ có các thông tin, dữ liệu cũngnhư các mô hình tính toán đầy đủ, và chính xác cho bài toán dự báo thời tiết Nhìnchung con người luôn ở trong bối cảnh không có thông tin chính xác, và đầy đủ chocá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 toá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 toán học nhanh chóng tỏ ra không còn phù hợp Vì thế, công nghệ tính toá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 toán mềm:
- Tính toá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 toán mềm có sự bổ sung, hỗ trợ nhau
- Tính toá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 đượctạ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ộtthành phần mới của tính toán mềm
- Chính nhờ những đặc điểm đó mà tính toán mềm đang được nghiên cứu và ứngdụ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áytính và học máy Cụ thể:
Không phải bài toán nào cũng có thuật toán có thể giải quyết được bằng tínhtoán cứng
Không phải bài toán nào có thuật toán có thể giải quyết được bằng tính toáncứ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ằngphương pháp chính xác
Với những ưu thế đó, tính toá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
8
Trang 10Công nghệ tính toá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 đíchcho 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 ứngdụ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ạinhững kết quả khó có thể tin được, thậm chí khó có thể chỉ ra các ứng dụng, pháttriể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 tathườ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 toán có tính thực tế, giải quyết bài toán với chi phí thấp và trongthờ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 antoà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ảithuậ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).
Trang 11NN là mô hình tính toá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ácNơ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ó đánhtrọ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:
1.4.3 Chương trình tiến hóa (Evolutionary Computation – EC)
10
W1
W2
W3
YNeuro
y
Input Signals Weights Output Signals
Hình 1 Mô hình mạng Nơron điển hình
Trang 12Kĩ 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
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ụngtrong bài toán cụ thể
Chương 2: GIẢI THUẬT DI TRUYỀN
Population
New Population
Selection
Hình 2 – Mô hình hoạt động của giải thuật di truyền
Trang 132.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ếtbài toá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 muôn loài của Darwin) trong điều kiện quy định sẵn củamô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ảichí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 toán di truyền duyệt toàn bộ các giải pháp, sau đó chọn lấy giải pháptương đối tốt dựa trên hệ số thích nghi
Thuật toán di truyền không để ý chi tiết vấn đề, mà chỉ chú ý đến giải pháp, đặcbiệ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ôngphải là một tham số
- Thuật toá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ụngluật quyết định
2.1.2 Cơ sở sinh học của giải thuật di truyền
12
Trang 14Trong 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 loài và quyết định sự sống còn của cơthể đó Trong tự nhiên một loà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 loàikhô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 luôn 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ườngbên ngoài, hay giữa chúng với nhau Dựa vào đó các nhà khoa học máy tính xâydự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ậttiế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
Trang 15Có một số lớn các bài toán người ta chưa tìm thuật toán tương đối nhanh để giảiquyế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ảysinh trong các ứng dụng Với bài toán quy hoạch thuộc loại khó, có thể tìm đượcthuật toán “nhanh”, cho kết quả gần tối ưu Đối với một số bài toán quy hoạch khó,
ta cũng có thể tìm thuật toán xác suất, thuật toá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 toán có thể xem như tìm kiếm trongkhô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 toán là quá 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ỏinhững phương pháp trí tuệ nhân tạo đặc biệt Thuật toán di truyền (GA) nằm trongcá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ốtcho 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ạicá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
Trang 16Thuậ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 loà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êntiế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àumắt) có thể được thể hiện dưới nhiều mức độ khác nhau Ta nói gene đó có nhiềutrạ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ườilập trình) Một quá 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ìmkiế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ượckhai 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ácmiền hứa hẹn trong không gian tìm kiếm Thuật toán di truyền là lớp các phươngphá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 toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên khái niệm cho rằng quá trình tiến hóa tự nhiên là hoà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 Xuyên suốt quá 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àokhô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
Trang 17tiế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ôitrường.
Trong thuật giải di truyền, các cá thể mới liên tục được sinh ra trong quá trìnhtiến hóa nhờ sự lai ghép ở thế hệ cha mẹ Một cá thể mới có thể mang những tínhtrạng của cha mẹ (di truyền), cũng có thể mang những tính trạng hoàn toà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 toán tiếnhóa, tuy có những đặc điểm khác biệt, nhưng đều mô phỏng các quá 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
16
Trang 18Trong thuật toán di truyền đơn giản, các cá thể hay còn gọi là NST (Nhiễm sắcthể) đượ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 toán Một quá 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ếmtrong 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ờigiả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ậplờ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ảikhá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
Trang 19Tá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ạitù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íchnghi) Toán tử này được xem là quá trình chọn lọc trong tự nhiên Hàm mục tiêuf(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 xeroulette, 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 toán hộp đen có cácgiá 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ể:
Các chuỗi của bài toá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 đượcthể hiện trên hình sau:
Trang 20Sự sinh sản đơn giản phân bố các chuỗi con cháu nhờ sử dụng bánh xe Roulettevớ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 toá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ỗicò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ơntrong 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) Toán
tử lai ghép đơn giản có thể được tiến hành theo hai bước:
Trang 21Bước 1: Chọn ngẫu nhiên hai (hay nhiều) cá thể bất kỳ trong quần thể Giả
sử NST của cha mẹ đều có m gene
Bước 2: Tạo một số ngẫu nhiên trong khoảng từ 1 đến m-1 (ta gọi là điểm lai) Điểm lai chia các chuỗi cha mẹ dài m thành 2 nhóm con dài m1 và
m2 Hai chuỗi NST con mới là m11 + m22 và m12 + m21
Đưa hai cá thể mới này vào quần thể để tham gia các quá trình tiến hóa tiếp theo
Ví dụ: Về phép lai một điểm với xác suất Pc có thể mô phỏng như sau:
Ví dụ về phép lai (lấy từ [4])
Cơ chế sinh sản và lai ghép chéo đơn giản, bao gồm các việc sinh số ngẫunhiên, sao chép chuỗi và trao đổi các chuỗi thành phần Tuy nhiên, điểm cần nhấnmạnh là điểm sinh sản và trao đổi thông tin có cấu trúc (dù là một cách ngẫu nhiên)
cả quá trình ghép chéo làm cho giải thuật di truyền tăng thêm sức mạnh
2.2.3 Đột biến
Đột biến là hiện tượng cá thể con mang một số tính trạng không có trong mã ditruyền của cha mẹ Mục đích của phép đột biến trong thuật toán di truyền là giúp
20
Trang 22cho thuật toán tránh được các cực trị cục bộ Phép đột biến xảy ra với xác suất Pmnhỏ hơn rất nhiều so với xác suất Pc Một phép đột biến có thể mô tả như sau:Bước 1: Chọn ngẫu nhiên một cá thể cha mẹ bất kỳ trong quần thể Giả sử NSTcủa cha mẹ đều có m gene
Bước 2: Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m (1 ≤ k ≤ m) Thayđổi gene thứ k và trả cá thể này về quần thể để tham gia quá trình tiến hóa tiếptheo
Ví dụ về phép đột biến với xác suất Pm:
01101==> 01111
Đột biến tại bít thứ 4
Nếu sự sinh sản theo độ thích nghi kết hợp với sự ghép chéo làm cho giải thuật
di truyền có năng lực xử lý tốt hơn, thì sự đột biến đóng vai trò quyết định thứ 2trong hoạt động của giải thuật di truyền Sự đột biến là cần thiết bởi vì: cho dù sựsinh sản và ghép chéo đã tìm kiếm hiệu quả và tái kết hợp lại các gene với nhau,nhưng thỉnh thoảng chúng có thể làm mất một vài gene hữu ích nào đó (ví dụ bít 1hay bít 0 tại những vị trí đặc biệt) Trong các hệ thống gene nhân tạo, toán tử độtbiến sẽ chống lại sự mất mát không được khôi phục đó Trong thuật toán di truyềnđơn giản, đột biến là sự thay đổi ngẫu nhiên và không thường xuyên (với xác suấtnhỏ) trị số vị trí của một chuỗi Trong việc mã hóa nhị phân của bài toán hộp đen
có nghĩa là chỉ cần đổi 1 thành 0 và ngược lại Tự thân nó sự đột biến là một hoạtđộng ngẫu nhiên trong không gian chuỗi, khi được dùng cùng với sự sinh sản vàghép chéo nó sẽ là một chính sách bảo hiểm chống lại nguy cơ mất mát những genequan trọng
Giải thuật di truyền bao gồm các bước sau:
- Bước 1: Khởi tạo quần thể (population) ban đầu của các NST
Trang 23- Bước 2: Xác định giá trị hàm mục tiêu cho mỗi chuỗi NST.
- Bước 3: Tạo các chuỗi NST mới bằng sinh sản từ các chuỗi NST hiện tại, cótính đến ghép chéo và đột biến xảy ra (nếu có)
- Bước 4: Xác định hàm mục tiêu cho các chuỗi NST mới, và đưa nó vàotrong một dân số mới
- Bước 5: Nếu điều kiện kết thúc thuật toán đã thỏa mãn thì dừng lại, và trả vềchuỗi NST tốt nhất cùng với giá trị hàm mục tiêu của nó, nếu không thì quay
về bước 3
Sơ đồ giải thuật di truyền đơn giản:
2.4.1 Cải tiến phương pháp chọn lọc
22Y
Tạo quần thể ban đầu của các chuỗi NST
Xác định giá trị hàm mục tiêu của các chuỗi NST
Tính toán các giá trị mục tiêu của chuỗi NST mới và đưa nó vào quần thể mới
Tạo các chuỗi NST bằng cách sinh sản từ các chuỗi NST hiện tại (có tính đến ghép chéo và đột biến xảy ra)
Kiểm tra điều kiện kết thúc thuật toán thỏa mãn
chưa?
Kết thúcN
Trang 24Thuật toán di truyền đơn giản áp dụng phương pháp chọn lọc dùng bánh xeRoulette như đã trình bày ở trên Cùng với sự phát triển của thuật toán di truyền cácnhà nghiên cứu đã đề xuất một số phương pháp chọn lọc khác: chọn lọc sắp xếphạng, chọn lọc cạnh tranh…
Phương pháp này sắp hạng cá thể dựa trên độ thích nghi của chúng Cá thể xấunhất có độ thích nghi 1, kế tiếp là 2,3… Cá thể tốt nhất có độ thích nghi n (n là sốNST có trong quần thể)
Chọn lọc cạnh tranh 2:
Hai NST khác nhau được chọn ngẫu nhiên và được so sánh với NST tồn tại
Nếu NST i 1 không tốt hơn NST i 2 nghĩa là f(i 1 ) ≤ f(i 2 ), thì NST i 1 chết đi và bị loại
ra khỏi quần thể (liên kết được phá vỡ tùy ý) Quá trình này lặp lại cho đến hết NSTcòn lại
Chọn lọc cạnh tranh 3:
Giống như trên, 3 NST khác nhau được chọn ngẫu nhiên và được so sánh Nếu
chúng ta có f(i 1 ) ≤ f(i 2 ) ≤ f(i 3 ) thì NST i 1 sẽ chết và bị loại ra khỏi quần thể Quátrình này lặp lại cho đến hết NST còn lại
2.4.2 Cải tiến toán tử lai ghép
Trang 25Lai ghép ánh xạ từng phần có thể xem như một biến đổi của lai ghép 2 điểmgiao nhau bằng cách kết hợp với các thủ tục sửa chữa đặc biệt để giải quyết tínhkhông chính đáng (illegitimacy) có thể có PMX gồm các bước sau:
Chọn ngẫu nhiên 2 điểm cách nhau cùng với một chuỗi Chuỗi con được địnhnghĩa bởi 2 điểm cắt nhau được định nghĩa là ánh xạ từng phần
Trao đổi hai chuỗi con giữa các cá thể cha mẹ để tạo ra các thể con
Xác định quan hệ ánh xạ giữa các thành phần ánh xạ
Hợp thức cá thể con với các quan hệ ánh xạ
Ví dụ: Bài toán người chào hàng với 9 thành phố Một NST biểu diễn toàn bộ
Ký hiệu “x” có thể được xem như ẩn số (unknown)
Hoán vị này cũng được định nghĩa một chuỗi những ánh xạ
2->8, 6 ->5, 1->7, 4->1
Cuối cùng điều chỉnh với quan hệ ánh xạ, ta có thể điền thêm các thành phố (từ
cá thể cha mẹ ban đầu), mà không có vấn đề mâu thuẫn
Trang 26Lai ghép có trật tự có thể được xem như một biến thể của PMX sử dụng thủ tục sửachữa khác, OX gồm các bước sau:
Chọn ngẫu nhiên 1 chuỗi con từ cá thể cha mẹ
Đưa ra một cá thể con bằng cách sao chép chuỗi con vào những vị trí tương ứngtrong cá thể cha mẹ
Xóa tất cả các ký tự từ cá thể cha mẹ thứ 2, lúc này đã có trong chuỗi con Chuỗi còn lại chứa ký hiệu mà cá thể con cần
Đặt các ký hiệu vào những vị trí không cố định của các cá thể con từ trái sangphải theo trật tự của chuỗi để tạo ra cá thể con
Chuỗi bắt đầu từ điểm cắt thứ 2 của cá thể mẹ là: 8-7-9-3-5-2-6-1-4
Chuỗi sau khi loại các thành phố 8, 5, 7, 1 cũng ở trong cá thể con đầu tiên là: 9-3-2-6-4
Cuối cùng chuỗi này được đặt vào cá thể con 1 đầu tiên để tạo ra cá thể con (bắtđầu từ điểm cắt thứ 2)
Trang 27Lai ghép dựa trên vị trí thực chất là một loại đồng nhất cho mã hóa theo nghĩađột biến kết hợp với một thủ tục để sửa chữa Trước tiên nó phát sinh ngẫu nhiênmột mặt nạ sau đó trao đổi các gene liên quan giữa cá thể cha và mẹ theo mặt nạ.Một mặt nạ lai ghép là một chuỗi nhị phân đơn giản có kích thước NST như nhau.
Sự tương đương của mỗi bit tương ứng trong cá thể con, xác định cá thể cha mẹnào sẽ cung cấp bit đó
Bởi vì lai ghép đồng nhất sẽ tạo ra cá thể con bất hợp lệ cho mã hóa đột biến, laighép đột biến sẽ sử dụng một thủ tục sửa chữa để giải quyết tính bất hợp lệ
Lai ghép dựa trên vị trí gồm các bước sau:
Chọn ngẫu nhiên một tập hợp các vị trí từ một cá thể cha mẹ
Tạo ra một cá thể con bằng cách sao chép các ký hiệu từ cá thể cha mẹ tùythuộc vào bit của mặt nạ tại vị trí đó vào cá thể con
Xóa các ký hiệu, lúc này đã được chọn từ cá thể cha mẹ thứ 2 Chuỗi kết quả chỉchứa các ký hiệu cá thể con cần
Đặt các ký hiệu vào những vị trí không cố định của cá thể con từ trái sang phảitương ứng với trật tự của chuỗi để tạo ra một cá thể con
Ví dụ:
Cá thể cha: 93|8751|642
Cá thể mẹ: 35|2614|879
Giả sử chúng ta có một mặt nạ như sau: 010011101
Bit thứ nhất của mặt nạ là 0 Như vậy cá thể con thứ nhất nhận ký hiệu từ cá thể mẹ(trong chuỗi từ trái sang phải)
Cá thể con 1: 3xxxxxxxx
Bit thứ 2 của mặt nạ là 1 Như vậy cá thể con thứ nhất nhận các ký hiệu tiếp theo từ
cá thể cha (cũng trong chuỗi từ trái sang phải) Đây là ký hiệu 9 không có trong cáthể con thứ 1 (Có nghĩa là ký hiệu 9 chưa tồn tại trong cá thể con thứ 1)
Cá thể con 1: 39xxxxxxx
Tiếp theo các bit thứ 3 và 4 là 0 Như vậy cá thể con thứ 1 nhận 2 ký hiệu từ các cáthể cha mẹ là 2 và 5 không có trong cá thể con thứ 2
26
Trang 28Cá thể con 1: 3952xxxxx
Bit thứ 5 là 1 Như vậy cá thể con thứ 1 không thể nhận giá trị 3 từ cá thể cha bởibản thân cá thể con thứ nhất đã chứa giá trị 3, nên nó sẽ nhận giá trị 8 từ cá thể cha(giá trị 8 chưa có trong cá thể con thứ 1)
Tương tự và cuối cùng ta được:
Cá thể con 1: 395287164
Cá thể con 2: 938526174
Lai ghép dựa trên thứ tự là một thay đổi nhỏ của lai ghép dựa trên vị trí, trong
đó thứ tự của các ký hiệu vị trí được chọn trong cá thể cha tác động lên vị trí tươngứng trong cá thể mẹ
Ví dụ:
Cá thể cha: 93|8751|642
Cá thể mẹ: 35|2614|879
Giả sử rằng những vị trí được chọn là 3, 4, 6, 9 Thứ tự của các thành phố trong các
vị trí từ cá thể cha sẽ tác động lên cá thể mẹ Các thành phố tại những vị trí này(theo thứ tự cho trước) trong cá thể mẹ là 2, 6, 4 và 9 Cá thể con thứ nhất là bảnsao của cá thể cha trên mọi vị trí ngoại trừ những thành phố 2, 4, 6, 9
Trang 29Giống như lai ghép dựa trên vị trí, nó chọn một số ký hiệu từ một cá thể chahoặc mẹ và các ký hiệu còn lại từ cá thể cha hoặc mẹ khác Điểm khác nhau là các
ký hiệu lấy từ cá thể cha không được chonl một cách ngẫu nhiên và chỉ những kýhiệu được chọn mới xác định một chu trình tương ứng với những vị trí tương ứnggiữa các cá thể cha mẹ CX là việc như sau:
Tìm một chu trình được xác định bởi những vị trí tương ứng của các ký hiệugiữa các cá thể cha mẹ
Sao chép các ký hiệu trong chu trình vào một cá thể con bởi những vị trí tươngứng trong một cá thể cha hoặc mẹ
Xác định các ký hiệu còn lại cho cá thể con bằng cách xóa những ký hiệu này,bây giờ đã là chu trình từ một cá thể cha mẹ khác Điền cá thể con với các kýhiệu còn lại
Thành phố thứ 2 được xem xét phải là thành phố thứ 3 từ cá thể mẹ
Trong cá thể cha thành phố này ở vị trí thứ 2 và như vậy:
Tương tự chúng ta có một chu trình đầy đủ Cá thể con 1: 9385xx6x2
Các thành phố còn lại được điền từ cá thể cha mẹ còn lại:
Cá thể con 1: 938514672
Tương tự chúng ta có cá thể con thứ 2: 356271849
28
Trang 30LOX được phát triển như một sửa đổi của lai ghép thứ tự Lai ghép thứ tự cókhuynh hướng truyền những vị trí tương đối của các gene, thay vì những vị trí tuyệtđối Trong lai ghép thứ tự, NST được xem xét xoay vòng hay không xoay vòng tùythuộc vào từng bài toán Vì lý do này, người ta phát triển một biến thể của OX gọi
là lai ghép tuyến tính (LOX), trong đó NST được xem xét tuyến tính, thay vì xoayvòng
LOX làm việc như sau:
Chọn chuỗi con từ cá thể cha mẹ một cách ngẫu nhiên
Loại bỏ chuỗi con 2 (Sup_string2) từ cá thể cha, giữ lại một số lỗ (holes_đánhdấu bằng h) và sau đó đẩy các lỗ từ đầu đến tâm cho đến khi chúng gặp miềngiao nhau Tương tự chúng ta loại bỏ chuỗi con 1 từ cá thể mẹ và đẩy các lỗ đếnmiền giao (cross setion)
Đưa chuỗi con 1 vào các lỗ của cá thể mẹ để tạo thành cá thể con thứ 1 và đưachuỗi con 2 vào các lỗ của cá thể cha để tạo thành cá thể con thứ 2
Toán tử lai ghép có thể giữ quan hệ giữa các vị trí tuyệt đối cũng như quan hệđối với những điểm đầu của cá thể cha mẹ càng nhiều càng tốt Các điểm đầuứng với các hoạt động có độ ưu tiên thấp hoặc cao
Tương tự chúng ta được: Cá thể con 2: 93|2614|857
2.4.3 Cải tiến về hàm mục tiêu
Trang 312.4.3.1 Chuyển đổi hàm mục tiêu thành hàm thích nghi
Ở đây các bài toán được xét đến đều giả thiết rằng: hàm mục tiêu có miền giá trịthuộc tập số dương và ta chỉ xét các bài toán tối ưu tìm giá trị lớn nhất của hàm.Nhưng bài toán gặp trong thực tế là rất đa dạng, vì vậy để giải quyết vấn đề này taxét 2 trường hợp sau:
Trường hợp 1:
Nếu bài toán tối ưu yêu cầu tìm cực tiểu hàm f(x), ta đưa về tìm cực đại hàm
g(x) với g(x) = -f(x) Khi đó giá trị x opt làm cực đại hàm g(x) cũng chính là điểmcực tiểu hàm f(x)
Trường hợp 2:
Nếu hàm mục tiêu f có cả giá trị âm và dương thì ta có thể cộng thêm một hằng
số dương c nào đó sao cho f(x) có miền giá trị thuộc tập dương
Phương pháp sửa đổi này có liên quan đến tính chất của hàm cần được tối ưu
Có nhiều hướng tiếp cận vấn đề này, chẳng hạn: phương pháp luyện kim kỹ thuậtthay đổi Entropy của hệ Ở phương pháp này người ta đã điều khiển tốc độ hội tụcủa quần thể bằng cách biến đổi nhiệt động học với một tham số nhiệt độ toàn cục.Phương pháp được nhiều người quan tâm nhất là: biến đổi hàm phù hợp bằngcách đưa ra một phép vị tự để thay đổi hàm phù hợp
Goldberg đã phân phép vị tự thành 3 loại sau:
30
Trang 32 Phép vị tự tuyến tính
Hàm phù hợp f’ i = a*f i + b, trong đó fi là giá trị ban đầu của hàm phù hợp,
a, b là các tham số
Thường các tham số a, b được chọn sao cho:
- Độ thích nghi trung bình trước sửa đổi f i(avg) và độ thích nghi trung bình sau sửa
đổi f’ i(avg) là tương ứng sao cho không làm ảnh hưởng tới pha chọn lọc, bởi vìtrong pha này những cá thể có độ thích nghi trên trung bình có nhiều khả năng
để chọn tái sinh hơn
- Độ thích nghi cao nhất có một khoảng cách nhất định với độ thích nghi trungbình
- Hạn chế của phương pháp này là: Trong các thế hệ sau có thể nảy sinh các độthích nghi âm Hơn nữa, tham số a, b thường là cố định và không liên quan gìđến bài toán
Đây là phương pháp cải tiến của phép vị tự tuyến tính, nhằm xử lý các giá trịthích nghi âm và đưa được các dữ liệu của bài toán vào hàm đánh giá Giá trị sửa
đổi của hàm phù hợp f’ i = f i + (f – c*σ).).
Trong đó c là một số nguyên dương cho trước (thường chọn từ 1->5),
σ là độ chênh lệch tiêu chuẩn của quần thể, f là giá trị trung bình của hàm phù hợp,các giá trị âm (nếu có) của f’ được gán bằng 0