1. Trang chủ
  2. » Luận Văn - Báo Cáo

ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH

30 1,4K 16

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giải thuật di truyền về cơ bản muốn mô phỏng lại quá trình tiến hóa của sinh vật trong tự nhiên vào các bài toán tối ưu hóa từ đó đưa ra lời giải tốt có thể không là tối ưu nhất khi mà k

Trang 1

Trường Đại Học Công Nghệ Thông Tin

  

BÀI THU HOẠCH MÔN THUẬT TOÁN

VÀ PHƯƠNG PHÁP GIẢI QUYẾT

Đề tài:

ỨNG DỤNG THUẬT TOÁN DI TRUYỀN

VÀO BÀI TOÁN NGƯỜI DU LỊCH

GVHD: PGS.TS ĐỖ VĂN NHƠN Học viên: Phạm Phú Thanh Sang

Mã số: CH1301050 Lớp: CHK8

Trang 2

Lời cảm ơn

Lời đầu tiên em xin chân thành cảm ơn Thầy Đỗ Văn Nhơn đã truyền đạt cho em những bài học thật bổ ích với những câu truyện đầy tính sáng tạo và lý thú

Cảm ơn nhà trường đã tạo điều kiện cho em cùng các bạn trong lớp có thể học tập

và tiếp thu những kiến thức mới

Em cũng chân thành cảm ơn các bạn trong lớp đã chia sẻ cho nhau những tài liệu

và hiểu biết về môn học để cùng hoàn thành tốt môn học này

Trong thời gian vừa qua mặc dù em đã cố gắng rất nhiều để hoàn thành tốt đề tài của mình, song chắc chắn kết quả không tránh khỏi những thiếu sót Em kính mong được

sự cảm thông và tận tình chỉ bảo của Thầy

TP.Hồ Chí Minh Tháng 01/2014

Học viên thực hiện

Phạm Phú Thanh Sang

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 4

Lời mở đầu

Bài toán người du lịch là một trong những bài toán được nghiên cứu sâu nhất trong lĩnh vực tối ưu hóa Nội dung bài thu hoạch này sẽ trình bày một hướng tiếp cận giải quyết bài toán người du lịch sử dụng giải thuật di truyền

Giải thuật di truyền về cơ bản muốn mô phỏng lại quá trình tiến hóa của sinh vật trong tự nhiên vào các bài toán tối ưu hóa từ đó đưa ra lời giải tốt (có thể không là tối ưu nhất) khi mà không thể đưa ra được một giải thuật chính xác hay việc vét cạn các trường hợp là bất khả thi

Tuy nhiên do thời gian và kiến thức còn hạn chế nên bài thu hoạch khó tránh những thiếu sót Rất mong nhận được sự thông cảm và đóng góp của Quý Thầy

Cô và các bạn học

Trang 5

Mục lục

LỜI NÓI ĐẦU 3

I GIẢI THUẬT DI TRUYỀN (Genetic Algorithm – GA) 5

1 Động lực 5

2 Thuật giải di truyền 6

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

4 Đấu tranh sinh tồn 13

II BÀI TOÁN NGƯỜI DU LỊCH (Travelling Salesman Problem - TSP) 13

1 Lịch sử bài toán 13

2 Phát biểu bài toán 15

3 Phân tích độ phức tạp 15

II ĐỀ XUẤT GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN DU LỊCH 16

1 Giải thuật đề xuất 16

2 Giới thiệu chương trình 24

3 Kết quả các bộ dữ liệu chuẩn 25

4 Đánh giá giải thuật và các cải tiến tương lai 27

III Kết luận 28

Tài liệu tham khảo 29

Trang 6

I GIẢI THUẬT DI TRUYỀN

Giải thuật di truyền cũng như tiến hóa 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 Sự tối

ưu đó được thể hiện ở chỗ thế hệ sau bao giờ cũng phát triển tốt hơn thế hệ trước Tiến hóa tự nhiên được duy trì nhờ 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, các thế hệ mới luôn được sinh ra để

bổ sung thay thế thế hệ cũ, cá thể nào thích ứng với môi trường sẽ tồn tại, ngược lại sẽ bị đào thải

Giải thuật di truyền bao gồm 4 bước chính: Mã hóa lời giải, khởi tạo quần thể, sử dụng các phép toán di truyền và đánh giá độ thích nghi Sau đó, chúng ta lại sinh ra một quần thể mới bằng phép chọn lọc rồi tiếp tục sử dụng các phép toán

di truyền và đánh giá độ thích nghi của các cá thể (điển hình bởi nhiễm sắc thể - NST) trong quần thể Thuật giải được thực hiện qua càng nhiều thế hệ thì lời giải đưa ra càng tối ưu

1 Động lực

Thuật giải di truyền cung cấp một phương pháp học được thúc đẩy bởi sự tương tự với sự tiến hóa sinh học Thay vì tìm kiếm các giả thuyết từ tổng quát đến cụ thể hoặc từ đơn giản đến phức tạp, GA tạo ra các giả thuyết kế tiếp bằng cách lặp việc đột biến và việc tái hợp các phần của giả thuyết được biết hiện tại là tốt nhất Ở mỗi bước, một tập các giả thuyết được gọi là quần thể hiện tại được cập nhật bằng cách thay thế vài phần nhỏ quần thể bởi cá thể con của các giả thuyết tốt nhất ở thời điểm hiện tại Sự phổ biến của GA được thúc đẩy bởi các yếu tố sau:

 Tiến hóa là một phương pháp mạnh, thành công cho sự thích nghi bên

Trang 7

 Thuật giải GA có thể được thực hiện song song và có thể tận dụng

thành tựu của phần cứng máy tính mạnh

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ột giả 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, được gọ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ột hà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ấn luyệ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ắng củ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

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ập nhậ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ể trong quầ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 ra bằ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 8

Hình 1: Các bước cơ bản của giải thuậ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 được tính bởi

công thức:

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

}

Trang 9

Hình 2: Lưu đồ giải thuật cơ bản

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

a Biểu diễn cá thể

Công việc đầu tiên khi thực hiện việc giải bài toán bằng giải thuật di truyền là chọn cách biểu diễn các cá thể Đó là việc ánh xạ các tham số của bài toán lên một chuỗi có chiều dài xác định Tuỳ theo từng bài toán cụ thể

mà có những cách biểu diễn khác nhau sao cho phù họp, thuận lợi khi giải toán Trong đó có hai cách biểu diễn thông dụng nhất là biểu diễn nhị phân

và biểu diễn sử dụng các hoán vị

Biểu diễn nhị phân Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1, ý nghĩa của các 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 đơn giải nhất và là cách thông dụng nhất trong các cách biểu diễn

Khởi tạo quần thể

Trang 10

Ví dụ trong bài toán cái túi: có n đồ vật với trọng lượng và giá trị được cho 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 đế cho và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ằng mộ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 đó Chang hạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch:

Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ trình đi qua tất cả các thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗi thành phố chỉ đi qua một lần

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ương gia đã đ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ìm kiế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ỗi chuỗ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ài toá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ứa nhữ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ân cho 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

Trang 11

giá trị này có thể có dạng bất kỳ liên quan đến bài toán, từ số nguyên,

số thực, ký tự cho đến các đối tượng phứ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ểu thứ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ố đầu và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ắt tay ngay vào việc thực hiện giải thuật di truyền theo sơ đồ đã

có trong phần trước Bước đầu tiên là cần có một quần thể ban đầu

Nó có thể có được bằng cá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ông qua 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ải quyế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ể

Trang 12

Giá trị hàm mục tiêu là Maximum hay Minimum tùy theo bài toán sẽ quyết định xá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àm mụ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á thể 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ọn các giá trị ngẫu nhiên như sau: giả sử cần chọn ra N cá thể, khi

đó khoảng cách giữ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

Trang 13

Chọn lọc lân cận địa phương Lâ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ột phươ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ó

Chọn lọc loại bỏ Các làm rất đơn giản: dùng một ngưỡng lựa chọn đế xác định các

cá thể được lựa chọn Theo đó các cá thể có giá trị hàm mục tiêu nhỏ hơn ngưỡng thì sẽ bị loại bỏ, còn các cá thể có giá trị hàm mục tiêu lớn hơn ngưỡng thì được lựa chọn

d Lai ghép

Phép lai là quá trình hình thành NST mới trên cơ sở NST cha mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều) NST cha mẹ khác nhau

Các cặp cha mẹ được lựa chọn ngẫu nhiên và xác suất xảy ra lai ghép với mỗi cặp được quy định từ trước

Có 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

Trang 14

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ỗi cặ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

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

con mới

Chọn những cá thể ưu tú nhất trong quần thể

II BÀI TOÁN NGƯỜI DU LỊCH (Travelling Salesman Problem – TSP)

1 Lịch sử bài toán

Bài toán người du lịch (tiếng Anh: travelling salesman problem - TSP) là một bài toán NP-Hard thuộc thể loại tối ưu tổ hợp được nghiên cứu trong lý thuyết khoa học máy tính Nội dung bài toán có thể hiểu khái quát như sau : Cho trước một danh sách các thành phố và khoảng cách giữa chúng, tìm chu trình ngắn nhất đi qua tất cả các thành phố đúng một lần

Trang 15

Bài toán được nêu ra lần đầu tiên năm 1930 và là một trong những bài toán được nghiên cứu sâu nhất trong tối ưu hóa Nó thường được dùng làm thước đo cho nhiều phương pháp tối ưu hóa Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều phương pháp giải chính xác cũng như heuristic đã được tìm ra để giải quyết một số trường hợp có tới hàng chục nghìn thành phố

Ngay trong hình thức phát biểu đơn giản nhất, bài toán TSP đã có nhiều ứng dụng trong lập kế hoạch, hậu cần, cũng như thiết kế vi mạch,

Nguồn gốc của bài toán người bán hàng vẫn chưa được biết rõ Một cuốn

sổ tay dành cho người bán hàng xuất bản năm 1832 có đề cập đến bài toán này

và có ví dụ cho chu trình trong nước Đức và Thụy Sĩ, nhưng không chứa bất

kì nội dung toán học nào

Bài toán người bán hàng được định nghĩa trong thế kỉ 19 bởi nhà toán học Ireland William Rowan Hamilton và nhà toán học Anh Thomas Kirkman Trường hợp tổng quát của TSP có thể được nghiên cứu lần đầu tiên bởi các nhà toán học ở Vienna và Harvard trong những năm 1930

Hassler Whitney ở đại học Princeton đưa ra tên bài toán người bán hàng ngay sau đó

Trong những năm 1950 và 1960, bài toán trở nên phổ biến trong giới nghiên cứu khoa học ở Châu Âu và Mỹ George Dantzig, Delbert Ray Fulkerson và Selmer M Johnson ở công ty RAND tại Santa Monica đã có đóng góp quan trọng cho bài toán này, biểu diễn bài toán dưới dạng quy hoạch nguyên và đưa ra phương pháp mặt phẳng cắt để tìm ra lời giải Với phương pháp mới này, họ đã giải được tối ưu một trường hợp có 49 thành phố bằng cách xây dựng một chu trình và chứng minh rằng không có chu trình nào ngắn hơn Trong những thập niên tiếp theo, bài toán được nghiên cứu bởi nhiều nhà nghiên cứu trong các lĩnh vực toán học, khoa học máy tính, hóa học, vật lý, và

Ngày đăng: 06/02/2015, 11:17

HÌNH ẢNH LIÊN QUAN

Hình 1: Các bước cơ bản của giải thuật - ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH
Hình 1 Các bước cơ bản của giải thuật (Trang 8)
Hình 2: Lưu đồ giải thuật cơ bản - ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH
Hình 2 Lưu đồ giải thuật cơ bản (Trang 9)
Đồ thị 10 đỉnh: - ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH
th ị 10 đỉnh: (Trang 18)
Hình 3: Giao diện chương trình - ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH
Hình 3 Giao diện chương trình (Trang 25)
Đồ thị và danh sách đỉnh cùng với tọa độ mỗi đỉnh. - ỨNG DỤNG THUẬT TOÁN DI TRUYỀN VÀO BÀI TOÁN NGƯỜI DU LỊCH
th ị và danh sách đỉnh cùng với tọa độ mỗi đỉnh (Trang 26)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w