Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể,nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cậpnhật liên tục tập giả thu
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC THUẬT TOÁN VÀ PHƯƠNG PHÁP
GIẢI QUYẾT VẤN ĐỀ
ĐỀ TÀIỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI
Trang 2LỜI CẢM ƠN 1
LỜI MỞ ĐẦU 2
PHẦN I CƠ SỞ LÝ THUYẾT 3
I TỔNG QUAN VỀ THUẬT TOÁN DI TRUYỀN 3
1 Giới thiệu 3
2 Thuật giải di truyền 3
3 Các toán tử di truyền 6
4 Đấu tranh sinh tồn 11
5 Sự khác biệt của thuật giải di truyền và thuật giải khác 11
6 Các thành phần trong thuật giải di truyền 12
II TỔNG QUAN BÀI TOÁN NGƯỜI DU LỊCH 13
1 Lịch sử bài toán 13
2 Mô tả bài toán 15
3 Phân tích độ phức tạp 15
PHẦN II ỨNG DỤNG THUẬT GIẢI DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH 16
I MÃ HÓA BÀI TOÁN 16
1 Mã hoá đồ thị: 16
2 Mã hoá chu trình (cá thể-gen) 16
II KHỞI TẠO QUẦN THỂ 16
III LAI GHÉP 17
IV ĐỘT BIẾN 18
V CHỌN LỌC TỰ NHIÊN 19
VI TIẾN HOÁ 20
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
Trang 3LỜI CẢM ƠN
Trong thời lượng 8 buổi học, tuy thời gian ngắn nhưng qua sự truyền đạt tận
tình cùng với kinh nghiệm giảng dạy lâu năm của thầy PGS TS Đỗ Văn Nhơn đã
truyền đạt cho Em cũng như các bạn trong lớp những kiến thức quý báu
Em xin chân thành cám ơn Thầy về những kiến thức và những kinh nghiệmquý báu mà Thầy đã truyền đạt cho lớp trong phạm vi môn học Thuật toán và
Phương pháp giải quyết vấn đề thuộc chương trình đào tạo cao học ngành Khoa
học máy tính tại trường Đại học Công Nghệ Thông Tin – Đại học Quốc gia Thànhphố Hồ Chí Minh
Chúc Thầy sức khỏe, hạnh phúc và thành công!
Em xin chân thành cảm ơn!
Trang 4LỜI MỞ ĐẦU
Bài toán Người du lịch (Travelling Salesman Problem - TSP) là một trongnhững bài toán kinh điển và khó trong tin học Bài toán có phát biểu rất đơn giảnnhưng rất khó giải trong trường hợp tổng quát với không gian tìm kiếm rộng lớn, khóbởi các thuật toán hiệu quả nhất đa được biết đến có thời gian giải quyết bài toán nàytăng dần theo cấp số nhân của n, hay độ phức tạp thuật toán tăng theo hàm số mũ Córất nhiều cách tiếp cận giải bài toán này ngay từ khi nó mới ra đời, như sử dụng quyhoạch tuyến tính, thuật toán vét cạn, thuật toán người láng giềng gần nhất, kỹ thuậtnhánh và cận, nhưng mới chỉ dừng lại ở các bộ dữ liệu nhỏ Gần đây có nhiều thuậttoán ra đời theo hướng tiếp cận về tiến hóa như thuật toán di truyền GeneticAlgorithm hay cách mô phỏng hành vi của đàn kiến như thuật toán đàn kiến được ápdụng cho kết quả tốt hơn rất nhiều
Trong trong phạm vi bài thu hoạch này tôi xin chọn đề tài:“Ứng dụng thuật toán di truyền vào bài toán người du lịch” nhằm tìm hiểu thuật toán, xem xét hiệu
quả của các thuật toán
Trang 5có thể có nhiều nhiễm sắc thể, ở đây chúng ta quy ước mỗi cá thể chỉ có một nhiễmsắc thể (chromosome) Các nhiễm sắc thể là một có thể là một chuỗi tuyến tính, trongnhiễm sắc thể có thể có các đơn vị nhỏ hơn đó là gen Mỗi gen đại diện một thuộctính, tính chất và có vị trí nhất định trong nhiễm sắc thể Quần thể (population) làmột tập hợp hữu hạn xác định các cá thể, trong thuật giải di truyền quần thể là mộttập
- Xây dựng hàm thích nghi làm tiêu chuẩn đánh giá các cá thể theo độ thíchnghi của chúng
- Xác định xác suất lai tạo, xác suất đột biến, …
- Xây dựng các phép toán lai tạo, chọn lọc, đột biến
2 Thuật giải di truyền
Bài toán dành cho GA là tìm kiếm trên không gian các giả thuyết ứng cử để xácđịnh giả thuyết tốt nhất Trong GA “giả thuyết tốt nhất” được định nghĩa như là mộtgiả thuyết tối ưu hóa một đại lượng số được định nghĩa trước cho bài toán sắp tới, đượcgọi là độ thích nghi của giả thuyết Ví dụ, nếu tác vụ học hỏi là bài toán xấp xỉ mộthàm chưa biết cho tập mẫu huấn luyện gồm dữ liệu đầu vào và dữ liệu đầu ra, thì độthích nghi có thể được định nghĩa như là độ chính xác của giả thuyết trên dữ liệu huấnluyện này Nếu tác vụ là học chiến lược chơi cờ, độ thích nghi có thể là số ván thắngcủa chiến lược này khi đấu với các chiến lược khác trong quần thể hiện tại
Trang 6Mặc dù các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể,nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cậpnhật liên tục tập giả thuyết - được gọi là quần thể Ở mỗi lần lặp, tất cả các cá thể trongquần thể được ước lượng tương ứng với hàm thích nghi Rồi quần thể mới được tạo rabằng cách lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại Một
số trong những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp Những cáthể khác được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động
di truyền: lai ghép và đột biến
Trang 7GA(Fitness, Fitness_threshold, p, r, m)
{
//Fitness: hàm gán thang điểm ước lượng cho một giả thuyết
//Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giải thuật tìm kiếm
//p: Số cá thể trong quần thể giả thuyết
//r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi bước
//m: Tỉ lệ cá thể bị đột biến
Khởi tạo quần thể: P Tạo ngẫu nhiên p cá thể giả thuyết
Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
While [max Fitness(h)] < Fitness_threshold do
Tạo thế hệ mới, P S
1 Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P thêm vào
P S Xác suất Pr(h i ) của giả thuyết h i thuộc P:
2 Lai ghép: chọn lọc theo xác xuất cặp giả thuyết từ quần thể P,
theo Pr(h i ) đã tính ở bước trên Ứng với mỗi cặp <h 1 , h 2 >, tạo ra hai con bằng
cách áp dụng toán tử lai ghép Thêm tất cả các con vào P S.
3 Đột biến: Chọn m% các thể PS với xác suất cho mỗi cá thể là như nhau Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó.
4 Cập nhật: P PS
5 Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)
Trả về giả thuyết P có độ thích nghi cao nhất }
Hình: Các bước cơ bản của giải thuật
Trang 8Nhận các tham số của bài toán
Khởi tạo quần thể ban đầu
Kết thúc
Biểu diễn nhị phân
Trang 9Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1, ý nghĩa củacác bít này phụ thuộc vào từng tình huống cụ thể Đây là cách biểu diễn đơngiải nhất và là cách thông dụng nhất trong các cách biểu diễn.
Ví dụ trong bài toán cái túi: có n đồ vật với trọng lượng và giá trị đượccho trước và một cái túi có trọng lượng đã biết Hãy chọn ra các đồ vật đế chovào túi sao cho tống giá trị các đồ vật trong túi là lớn nhất?
Ớ đây, đồ vật được đánh số từ 1 đến n, mỗi cá thể được biểu diễn bằngmột xâu nhị phân độ dài n Trong đó, bít thứ i bằng 1 có nghĩa là đồ vật thứ iđược cho vào túi, bằng 0 thì bỏ lại
Biểu diễn sử dụng hoán vị
Mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó Changhạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch:
Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ trình đi quatất cả các thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗithành phố chỉ đi qua một lần
Kí hiệu các thành phố là T1, T2, Tn mỗi cá thể sự mã hoá của lời giải
-sẽ là một danh sách hoán vị của T1, T2, Tn biểu diễn lộ trình mà người thươnggia đã đi qua Thí dụ T8T5T9T3 sẽ là kí hiệu của hành trình từ T8 T5 T9
T3
Như vậy mỗi chuỗi con sẽ biểu diễn cho một đỉnh của không gian tìmkiếm và qua đó thể hiện được cách trả lời có thể có của bài toán Sau này mỗichuỗi nhiễm sắc thể sẽ được giải mã lại đế trả về các thông số ban đầu của bàitoán
Biểu diễn bằng giá trị
Biểu diễn giá trị trực tiếp có thể được dùng trong các bài toán có chứanhững giá trị phức tạp, chẳng hạn như số thực Nếu dùng biểu diễn nhị phâncho loại bài toán này thì rất phức tạp Trong mã hóa giá trị, mọi nhiễm sắc thể
là một chuỗi chứa những giá trị nào đó Những giá trị này có thể có dạng bất
Trang 10kỳ liên quan đến bài toán, từ số nguyên, số thực, ký tự cho đến các đối tượngphức tạp hơn.
Một ví dụ cho cách mã hóa này là bài toán tìm trọng số mạng nơron
Biểu diễn theo cây
Mã hóa theo cây được dùng chủ yếu cho các chương trình (hoặc biểuthức) tiến hóa, cho lập trình gen Trong mã hóa theo cây mọi nhiễm sắc thể làmột cây chứa các đối tượng chẳng hạn như hàm hoặc lệnh trong một ngôn ngữlập trình nào đó
Ví dụ: bài toán tìm hàm từ những giá trị cho trước Cho trước một số đầuvào và đầu ra Tìm hàm cho ra kết quả tốt nhất với mọi đầu vào
Mã hóa: Nhiễm sắc thể là các hàm được biểu diễn bằng cây
=> Sau khi đã biếu diễn được các cá thể cho bài toán rồi thì có thể bắttay ngay vào việc thực hiện giải thuật di truyền theo sơ đồ đã có trong phầntrước Bước đầu tiên là cần có một quần thể ban đầu Nó có thể có được bằngcách chọn ngẫu nhiên các cá thể; hoặc có thể dùng chiến thuật lựa chọn thôngqua hàm mục tiêu sẽ được trình bày ngay sau đây
b Hàm mục tiêu Fitness
Một hàm mục tiêu (fitness) sẽ lấy một chuỗi nhiễm sắc thể như là đầu vào và trả
về giá trị tượng trưng cho chuỗi nhiễm sắc thể đó đế đánh giá trên vấn đề cần giảiquyết
Hàm mục tiêu có vai trò tương tự như là môi trường sống trong sự tiến hóa của
tự nhiên, vấn đề tương tác giữa một cá thể với môi trường sống được thể hiện qua giátrị cuả hàm mục tiêu trong mỗi một cá thể
Giá trị hàm mục tiêu là Maximum hay Minimum tùy theo bài toán sẽ quyết địnhxác suất của mỗi chuỗi có thể tham gia vào các toán tử di truyền
c Toán tử tái tạo
Là một quá trình mà trong đó các chuỗi được lựa chọn tùy thuộc vào giá trị hàmmục tiêu Hàm mục tiêu f(i) được gán cho mỗi cá thể trong một quần thể, và những cá
Trang 11thể nào có giá trị hàm mục tiêu cao sẽ đại diện cho những cá thể tốt, thích nghi và sẽ cóxác suất chọn lọc lớn Toán tử này có thể được xem như là quá trình chọn lọc trong tựnhiên: các cá thể tốt, thích nghi với môi trường sẽ có cơ hội được sống sót nhiều hơn.
Có nhiều cách để thực hiện toán tử này
Chọn lọc dùng bánh xe Roulette
Đây được coi là phương pháp chọn lọc đơn giản nhất, ở đấy mỗi chuỗi(cá thể) trong quần thể chiếm một khe trong vòng tròn Roulette có độ rộng tỷ
lệ với giá trị hàm mục tiêu của chuỗi Mỗi lần quay vòng tròn Roulette chúng
ta nhận được một chuỗi và coi như đó là cách lựa chọn chuỗi cho việc tái tạo.Các bước thực hiện:
Tính tổng các giá trị mục tiêu của các cá thể trong một dân số
và gán kết quả này vào biến Total fitness
Ở thế hệ thứ n, lấy một số ngẫu nhiên giữa 0 và Total fitness
Trả về số cá thể đầu tiên của một dân số mới, dựa vào giá trịmục tiêu của nó
Chọn lọc Stochastic universal sampling
Thực hiện giống như phương pháp bánh xe Roulette, nhưng cách chọncác giá trị ngẫu nhiên như sau: giả sử cần chọn ra N cá thể, khi đó khoảng cáchgiữa các lát cắt là 1/N Chúng ta chọn 1 số ngẫu nhiên trong đoạn [0, 1/N] rồi
từ đó xác định các lát cắt
Chọn lọc lân cận địa phươngLân cận địa phương là một vùng khép kín mà cá thể tương tác với các cáthể khác nằm trong vùng đó
Theo phương pháp này, một nửa số cá thể đầu tiên được chọn bởi mộtphương pháp bất kì nào khác, chẳng hạn như phương pháp bánh xe Roulette.Sau đó với mỗi cá thể đã chọn, xác định một lân cận địa phương của nó và tìm
cá thể đế lai ghép với nó
Trang 12Có nhiều cách lai ghép khác nhau:
Lai ghép một điểm cắt, nhiều điểm cắt
Lai ghép nhiều đoạn
e Đột biến
Đột biến là tình trạng NST con không có một (hoặc một số) tính trạng có trong
mã di truyền của cha mẹ
Các cặp cha mẹ được lựa chọn ngẫu nhiên và xác suất xảy ra đột biến với mỗicặp được quy định từ trước, thường là rất nhỏ
Các phép đột biến thường được sử dụng:
Đảo bit
Trang 13 Hoán vị: Đổi vị trí của các gen với nhau
Đổi giá trị: Thay đổi giá trị tại một điểm gen
Đảo đoạn: Đảo thứ tự của một đoạn NST bất kì
4 Đấu tranh sinh tồn
Chọn những NST từ quần thể kết quả theo một quy tắc nào đó thay thế cho cha
mẹ để sinh ra thế hệ mới Một số phương thức đấu tranh sinh tồn cơ bản:
Tráo đổi hoàn toàn cha mẹ bằng con
Tráo đổi ngẫu nhiên: Chọn ngẫu nhiên k cha mẹ và thay thế bằng k conmới
Chọn những cá thể ưu tú nhất trong quần thể
5 Sự khác biệt của thuật giải di truyền và thuật giải khác
Khi dùng phương pháp truyền thống có một số cách giải sau:
Phương pháp liệt kê Phương pháp giải tích Phương pháp tìm kiếm ngẫu nhiên
Đặc trưng của thuật giải di truyền so với các phương pháp truyền thống:Thuật giải di truyền làm việc với sự mã hoá của tập thông số chứ không làmviệc với các giá trị của các thông số
Thuật giải di truyền tìm kiếm từ một quần thể các điểm chứ không phải từ mộtđiểm
Thuật giải chỉ sử dụng thông tin về các tiêu chuẩn tối ưu của hàm mục tiêu chứkhông dùng các thông tin hỗ trợ nào khác
Thuật giải sử dụng các luật chuyển đổi mang tính xác suất chứ không phải làcác luật chuyển đổi mang tính xác định
Thuật giải thường khó cài đặt, áp dụng Tuy nhiên không phải lúc nào cũngcho lời giải chính xác Một số thuật giải di truyền có thể cung cấp lời giải tiềm năngcho một bài toán xác định để người sử dụng lựa chọn.[6]
Trang 146 Các thành phần trong thuật giải di truyền
Biểu diễn nhiễm sắc thể
- Biểu diễn nhị phân
- Biểu diễn sử dụng hoán vị
- Biểu diễn bằng giá trị
Khởi tạo quần thể ban đầu
Điều kiện dừng của thuật giải
Một số điều kiện dừng của thuật giải:
Kết thúc theo kết quả, tức khi giá trị thích nghi của cá thể trong quần thể có giátrị sai số nhỏ hơn một giá trị cho trước, thì dừng thuật toán
Kết thúc dựa trên số thế hệ, một số vấn đề dựa vào số thế hệ trong quần thể.Khi số lượng tiến hoá của quần thể đến một giới hạn cho phép thì thuật toán sẽ dừng,
Trang 15mà trong khi không quan tâm đến chất lượng của cá thể trong quần thể như thế nào.
Tính theo thời gian, phụ thuộc vào thời gian chạy chương trình được quy địnhtrước và thuật toán dừng
Kết hợp nhiều phương pháp khác nhau, thuật giải cũng có thể sử dụng kết hợpnhiều phương pháp khác nhau để giải quyết vấn đề
Các tham số của thuật giải di truyền
Bài toán người du lịch (Travelling Salesman problem (TSP)) là một bài toán
khá nổi tiếng trong lĩnh vực tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa họcmáy tính Nội dung của nó khá đơn giản , nó được phát biểu như sau : Cho một danhsách các thành phố và khoảng cách giữa chúng , nhiệm vụ là phải tìm đường đi ngắnnhất có thể mà chỉ thăm mỗi thành phố đúng 1 lần
Nguồn gốc của bài toán người du lịch đến nay vẫn chưa rõ ràng Một cuốn sáchcho người du lịch từ năm 1832 đã đề cập tới vấn đề và bao gồm vài ví dụ về các
đường đi từ đức qua Thụy sỹ nhưng không chứa đựng ý nghĩa toán học nào
Vấn đề toán học liên quan tới bài toán người du lịch đã được nhắc đến trong
những năm 1800 bởi nhà toán học ireland W R Hamilton và nhà toán học ngườiAnh Thomas Kirkman Trò chơi Icosian Game của Hamilton là một trò đố vui dựatrên cơ sở tìm chu trình Hamilton Dạng tổng quát của bài toán TSP được nghiên cứbởi các nhà toán học suốt những năm 1930 ở đại học Harvard, đáng chú ý là KarlMenger người đã định nghĩa bài toán, xem xét giải thuật brute-force và quan sát thấytính không tối ưu của heuristic dựa trên láng giếng gần nhất
Trang 16Hassler Whitney ở đại học Princeton University là ngừời đầu tiên đặt tên người
du lịch cho bài toán không lâu sau đó.
Trong những năm 1950 và 1960 , bài toán trở nên ngày càng phổ biến trongkhoa học ở châu Âu và Mỹ Những đóng góp đáng chú ý được kể đến như GeorgeDantzig, Delbert Ray Fulkerson và Selmer M Johnson tại RAND Corporation ở
Santa Monica, những người đã trình bày bài toán như bài toán số nguyên tuyến tính
và phát triển phương thức cắt cho lời giải của nó Với những phương thức mới này họ
đã giải được một thí dụ của bài toán với 49 thành phố để xây dựng một cách tối ưu vàchứng minh rằng không còn đường đi nào ngắn hơn nữa Trong những thập kỷ tiếptheo, bài toán được nghiên cứu bởi rất nhiều nhà nghiên cứ từ toán học , khoa họcmáy tính , hóa học ,vật lý và những khoa học khác
Richard M Karp năm 1972 chỉ ra rằng bài toán chu trình Hamiltonian thuộclớp NP-complete, và qua đó chỉ ra tính NP khó (NP-hardness ) của bài toán TSP.Điều này giải thích một cách khoa học cho độ phức tạp tính toán của việc tìm lời giảitối ưu cho bài toán
Nhiều thành tựu đã đạt được trong suốt những năm cuối thập kỷ 1970 và 1980,khi Grötschel, Padberg, Rinaldi và những người khác cố gắng giải một cách chínhxác một thể hiện của bài toán với 2392 thành phố, sử dụng phương thức cắt và
branch-and-bound
Trong những năm 1990 Applegate, Bixby, Chvátal, và Cook đã phát triển
chương trình Concorde mà đã được sử dụng nhiều trong việc giải các bài toán TSP
cho đến nay Gerhard Reinelt đã công bố thư viện TSPLIB vào năm 1991, đó là mộttập các thể hiện của bài toán TSP với nhiều độ khó khác nhau, và đã được sử dụngbởi nhiều nhóm nghiên cứu khác nhau để so sánh kết quả Năm 2005, Cook và nhữngngười khác đã tính được độ dài tối ưu cho chu trình với thể hiện của bài toán TSP lêntới 33,810 thành phố , được lấy ra từ bài toán xây dựng layout cho microchip, cho tớinay vẫn là thể hiện lớn nhất trong các thể hiện ở TSPLIB Nhiều thể hiện khác với