Khác với các phương pháp đã tồn tại, thuật toán gen có thể tìm được số trạm phát tối ưu một cách tự động.. Ngoài ra, thuật toán này có thể tìm được giải pháp tốt nhất cho vấn đề đặt các
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thanh Tùng
PHÂN BỔ CÁC TRẠM THU PHÁT KHÔNG DÂY KHÔNG
THUẦN NHẤT DỰA TRÊN THUẬT TOÁN GEN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thanh Tùng
PHÂN BỔ CÁC TRẠM THU PHÁT KHÔNG DÂY
KHÔNG THUẦN NHẤT DỰA TRÊN THUẬT TOÁN GEN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS Nguyễn Minh Hằng
HÀ NỘI - 2010
Trang 3Sinh viên Nguyễn Thanh Tùng
Trang 4Tóm tắt nội dung
Trong khóa luận này chúng ta sẽ thử nghiệm thuật toán gen để giải quyết bài toán phân bổ các trạm phát không dây không thuần nhất Các trạm phát có thể là trạm gốc của mạng 2G và 3G hay các điểm truy cập của mạng WLAN Có nhiều yếu tố ảnh hưởng đến cách phân bổ trạm phát tuy nhiên chúng ta sẽ tập trung vào các tiêu chí quan trọng nhất là vùng phủ sóng rộng nhất và tổng chi phí thấp nhất Phần lớn các phương pháp được đề xuất để giải quyết vấn đề phân bổ trạm phát đều yêu cầu gán trước tổng số trạm phát Khác với các phương pháp đã tồn tại, thuật toán gen có thể tìm được số trạm phát tối
ưu một cách tự động Ngoài ra, thuật toán này có thể tìm được giải pháp tốt nhất cho vấn
đề đặt các trạm phát không thuần nhất Kết quả qua các thí nghiệm cho thấy rằng sử dụng thuật toán gen có thể tiến gần hơn đến giải pháp tối ưu cho bài toán
Trang 5Mục lục
Chương 1 : Giới thiệu 1
Chương 2 : Trình bày vấn đề 6
2.1 Mô hình triển khai 6
2.1.1 Bản đồ 6
2.1.2 Trạm thu 6
2.1.3 Trạm phát 7
2.2 Mô hình đặc tả sự truyền tín hiệu 7
2.3 Mục tiêu 8
2.3.1 Khả năng bao phủ 8
2.3.2 Chi phí 9
2.3.3 Các hàm mục tiêu 9
Chương 3 : Tổng quan về thuâ ̣t toán gen 10
3.1 Giới thiệu thuật toán gen 10
3.2 Thuật toán di truyền trên máy tính 11
3.3 Cấu trúc thuật toán gen 13
3.3.1 Khởi tạo quần thể 15
3.3.3 Chọn lọc 15
3.3.5 Đột biến 17
3.3.6 Kiểm tra điều kiện dừng 18
Chương 4 : Áp dụng thuật toán gen vào bài toán 19
4.1 Đặc tả cá thể 22
4.2 Khởi tạo quần thể 22
4.3 Kiểm tra các cá thể 23
4.4 Tính giá trị hàm thích nghi và thứ hạng các cá thể 23
4.4.1 Hàm thích nghi 24
4.4.2 Tính thứ hạng các cá thể 24
4.5 Sắp xếp lại quần thể 24
4.6 Chọn lọc 24
4.7 Lai ghép 25
4.7.1 Lai ghép đồng dạng giữa các gen 26
4.7.2 Lai ghép một điểm giữa các nhiễm sắc thể 28
4.8 Đột biến 28
4.9 Thế hệ tiếp theo 29
Chương 5 : Thực hiện chương trình mô phỏng và đánh giá kết quả 30
Trang 65.1 Đặc tả chương trình mô phỏng 30
5.2 Một số tính toán thử nghiệm 33
Chương 6 : Kết luận 37
6.1 Các vấn đề đã thực hiện được trong khóa luận 37
6.2 Đánh giá kết quả 37
6.3 Hướng nghiên cứu tiếp theo 37
Trang 7Chương 1 : Giới thiệu
Với sự phát triển của mạng 2.5G, 3G và các thế hệ sau 3G, sự phân bổ cơ sở hạ tầng trở nên rất quan trọng cho việc trao đổi thông tin nhanh và đáng tin cậy Công nghệ không dây hiện nay bao gồm GSM, WCDMA, WLAN, GPRS, WiMax đã rất ổn định Tuy nhiên làm thế nào để phân bổ các trạm phát không dây hiệu quả vẫn là một vấn đề phức tạp
Có 2 cách tiếp cận chính để giải bài toán “phân bổ các trạm phát không dây” Cách tiếp cận thứ nhất sẽ tìm tập con tốt nhất có thể từ tập hợp các trạm thu phát không dây dựa trên vị trí của chúng hay gọi là “chọn lọc các trạm phát” Cách tiếp cận thứ hai gọi là “đặt các trạm phát không dây” Phương pháp này sẽ tìm số trạm phát cần đặt và vị trí của mỗi trạm Do số trạm phát được dùng không được biết trước khi triển khai, gây ra khó khăn khi tìm giải phát tối ưu
Đặt các trạm phát không dây đã dần trở thành một vấn đề NP-hard [2] Trong khi không thể tìm được những giải pháp tối ưu trong thời gian đa thức, nhiều phương pháp đã được xây dựng dựa trên sự phát triển của công nghệ tính toán Điển hình là phương pháp stEAPT[2] xem xét việc gán tần số và kênh nhiễu Hurley[3], theo dõi việc di chuyển, trao đổi thông tin, sự chồng chéo giữa các trạm để từ đó đưa ra những cải tiến phù hợp Zhang[4], đề nghị việc tối ưu hóa đa mục tiêu trong quan hệ giữa vùng phủ sóng và chi phí Unbehaun[5] , chọn 1 tập con trong các điểm truy cập mạng WLAN bằng phương pháp cắt bớt và tìm lại chúng thông qua việc tìm kiếm các vùng lân cận và tối ưu dần giải pháp Lee and Kang[6], xem xét các khoảng trống trong phương thức CDMA bằng cách
sử dụng thuật toán tìm kiếm Tabu với 2 danh sách Tabu và so sanh kết quả với thuật toán gen Có một vài phương pháp khác dựa trên thuật toán gen Ví dụ giải pháp của Cerri và Russo về bài toán trạm điện với yêu cầu về chất lượng dịch vụ, khả năng hệ thống, phân phối trạm [7] [8] Họ đã đưa ra mô hình mới bằng cách giả lập mạng Raisanen và Whitaker [9] so sánh hiệu năng của SEAMO, SPEA2, NSGA-II và PESA Park [10][11] đưa ra phương thức dựa trên thuật toán di truyền để tìm tổng số trạm phát và vị trí của chúng Nagy và Farkas[12] dùng thuật toán di truyền để đặt các trạm trong các tòa nhà sử dụng mô hình trải phổ Motley-Keenan Maple [13], sử dụng thuật toán di truyền song song với nghiên cứu các đặt trưng để làm giảm thời gian rỗi trong quá trình xử lí
Đã có một số phương pháp được đánh giá khá tốt như Amaldi [14] đặt các điểm truy cập của mạng 802.11 bằng phương pháp tìm kiếm tham ăn và phương thức tìm kiếm
Trang 8với hyperbolic và các hàm căn phù hợp Hao [15] phát triển giải pháp tối ưu nhiều lớp với ba tầng chính là đinh nghĩa số kích cỡ và kích cỡ trung bình của một phần tử, sau đó đặt và tìm kích cỡ của từng phần tử, cuối cùng là tối ưu các tham số của trạm phát Dựa trên bài toán phi tuyến, Sherali [16] đã kết hợp với phương pháp Hooke và Jeeves đẻ tìm kiếm giải pháp tìm các đường bỏ phí nhằm tìm ra vị trí đặt trạm phát
Trong hầu hết các phương pháp trên, số trạm thu phát phải được gán trước Tuy nhiên trong thực tế, số trạm ứng với mỗi mô hình khác nhau rất khó có thể tính toán trước Điều này có nghĩa là người dùng sẽ không nhận được kết quả mong muốn nếu đưa vào số trạm ban đầu không hợp lý Nói một cách khác, người sử dụng sẽ phải giải quyết vấn đề có bao nhiêu trạm cần đặt rồi sau đó gán cho bài toán đặt trạm Một số phương pháp tính toán và sử dụng cận trên của vị trí đặt Việc ước lượng cận trên được xác định một cách đại khái Nếu muốn đặt nhiều trạm hơn sẽ phải tính toán lại cận trên Do đó rất khó tối ưu bài toán
Với sự phát triển của nền công nghiệp phần cứng, các thiết bị đi động có thể hỗ trợ nhưng giao thức không dây khác nhau như : Bluetooth, 802.11…Nói cách khác, một thiết
bị di động có thể được bao phủ bởi các trạm không đồng nhất Các trạm này có thể khác nhau về các tham số cài đặt như là : bán kính nguồn phát hay chi phí Hơn nữa, khi hai trạm thu phát có cùng kiến trúc, khả năng thu phát vẫn có thể khác nhau Việc đặt các trạm thu phát với những khác biệt về thành phần và hệ thống trở nên rất khó khăn Trong luận văn này, chúng ta tập trung giải quyết vấn đề “Phân bố các trạm thu phát không dây không đồng nhất” này
Hình dung bài toán đặt trạm phát qua ví dụ cụ thể sau Hình 1 minh họa vấn đề đặt các trạm phát không dây không thuần nhất Các kiểu trạm phát trong ví dụ này là khác nhau Hình tròn lớn đại diện cho kiểu trạm phát thứ nhất với vùng phủ sóng lớn hơn như
là các trạm gốc trong hệ thống 3G Hình tròn nhỏ đại diện cho kiểu trạm phát khác với vùng phủ sóng nhỏ hơn như là các điểm truy cập của mạng IEEE 802.11 WLAN Hình vuông đại diện vùng được bao phủ bởi hai kiểu trạm phát trên Tổng số của từng kiểu không được biết trước Phải đặt các hình tròn lớn và nhỏ với số lượng nào đó để phủ kín hình vuông đã cho
Trang 9Hình 1 : Đặt các kiểu trạm phát khác nhau tới hình vuông.
Tiếp theo chúng ta sẽ hình dung sơ lược về cách giải bài toán đặt trạm phát không đồng nhất Một hướng đi dễ hình dung nhất là chia bài toán thành hai bước chinh để xử lí Theo dõi ví dụ trong hình 2, bước đầu tiên đặt hình tròn lớn vào trước Tiếp theo đặt hình tròn nhỏ vào Tuy nhiên dễ dàng nhận thấy kết quả của phương pháp này không được tối
ưu Giả thiết, chi phí cho kiểu trạm phát thứ nhất là 120 và chi phí cho kiểu trạm phát thứ hai là 10 Theo hình 3, chỉ sử dụng các trạm phát nhỏ là tốt hơn bời vì tổng chi phí khi đó chỉ là 100 Tóm lại, điều quan trọng nhất của bài toán đặt các trạm phát không dây không thuần nhất là tìm ra giải pháp tối ưu đồng thời cho 2 yếu tố : tổng số trạm phát và vị trí tương ứng
Trang 10Hình 2 : Chia nhỏ bài toán thành 2 bước
Hình 3 : (a) : Trạm phát với công suất nhỏ, chi phí = 10, (b) : Trạm phát với
công suất lớn, chi phí = 120, (c) : Tổng số chi phí sử dụng ở bước 2 là 150, (d) : Tổng
chi phí sau khi sử dụng thuật toán là 100
Trang 11Thuật toán được đề xuất trong khóa luận này nhằm giải quyết vấn để phân bổ các trạm thu phát không dây không thuần nhất gồm ba vấn đề cần lưu ý:
1 Không gán trước số trạm và cận trên của trạm như hầu hết các phương pháp trước Thuật toán chúng ta đưa ra có thể tự động tìm số trạm cần đặt
2 Do số trạm không biết trước, chúng ta sử dụng thuật toán gen có chiều dài biến thiên
để giải quyết vấn đề đặt các trạm phát không dây
3 Thuật toán đưa ra có thể giải quyết đồng thời cả vấn đề không thuần nhất giữa các trạm
Nội dung chính của khóa luận được tổ chức như sau : Chương 2 định nghĩa vấn đề đặt trạm phát không dây Chương 3 mô tả tổng quan về thuật toán gen Chương 4 sẽ áp dụng thuật toán gen để giải bài toán đặt trạm phát Quá trình mô phỏng và kết quả được trình bày trong chương 5 Cuối cùng chương 5 sẽ tổng kết lại khóa luận
Trang 12Chương 2 : Trình bày vấn đề
Triển khai mạng không dây phụ thuộc vào bản đồ địa lý Cách thức triển khai là xác định đồng thời có bao nhiêu trạm phát, kiểu của từng trạm phát và vị trí của chúng Trong chương này, chúng ta sẽ làm rõ khái niệm về bản đồ bài toán, trạm phát và trạm thu được
mô tả trong phần 2.1 Trong phần tiếp theo 2.2 mô hình truyền sóng sẽ được giới thiệu Cuối cùng phần 2.3 định nghĩa các đối tượng của bài toán
2.1.1 Bản đồ
Trong bản đồ M, chúng ta sử dụng tỉ lệ chia δr , một dạng lưới của trạm thu Mỗi điểm lưới chứa một trạm thu Sau khi đặt trạm thu, chúng ta đặt các trạm phát trên bản đồ với tỉ lệ chia δt
Có hai kiểu tập hợp lưới trên bản đồ M đó là : lưới bao phủ và lưới đặt trạm Vùng bao phủ là tập hợp các điểm cần được phủ sóng Vùng đặt trạm là nơi các trạm phát có thể được đặt tại đó Cả vùng bảo phủ và vùng đặt trạm được xác định trước bởi người thiết
kế Lưu ý rằng vùng đặt trạm có thể khác vùng phủ sóng Chúng ta định nghĩa hai vùng này như sau :
𝐂𝐆 = { 𝐜𝐠𝐜 = (𝐱𝐜, 𝐲𝐜,𝐳𝐜) } : Tập hợp các điểm cần phủ sóng ứng với tỉ lệ chia
δr Đây là tập hợp các điểm trong không gian 3 chiều
𝐏𝐆 = { 𝐩𝐠𝐜 = (𝐱𝐩, 𝐲𝐩,𝐳𝐩) } : Tập hợp các điểm vùng đặt trạm phát với tỉ lệ chia
δt Đây là tập hợp các điểm trong không gian 3 chiều
2.1.2 Trạm thu
Các thiết bị di động như điện thoại di động có thể di chuyển và thu tín hiệu trong vùng phủ sóng CG Chúng ta coi mỗi thiết bị di động này như là một trạm thu và đặt chúng trong vào các ô của tập hợp lưới cần bao phủ Tập hợp các trạm thu này có thể định nghĩa như sau :
𝐑 = { 𝐫𝐢 = (𝐩𝐨𝐬𝐢𝐭𝐢𝐨𝐧𝐢, 𝐭𝐡𝐫𝐞𝐬𝐡𝐨𝐥𝐝𝐢), 𝟏 ≤ 𝐢 ≤ 𝐧 }
Trang 13Trạm thu ri được đặt tại vị trí positioni = (xi, yi, zi) ∈ CG Cường độ tí hiệu từ
ít nhất một trạm phát cần lớn hơn ngưỡng thresholdi để đảm bảo yêu cầu về chất lượng dịch vụ ( QoS )
2.1.3 Trạm phát
Trạm phát là các thiết bị có khả năng phát và truyền tín hiệu tới các trạm thu Trạm phát có thể là các node B trong mạng 3G, các trạm gốc trong mạng GSM hay các điểm truy cập trong mạng WLAN…Các trạm phát có các chi tiết khác nhau như là phạm vi phát sóng và chi phí Giả sử có K kiểu trạm phát có thể dùng trong bài toán Tập hợp K kiểu trạm phát này được định nghĩa như sau :
𝐓𝐘𝐏𝐄 = {𝐭𝐲𝐩𝐞𝐤 = (𝐩𝐨𝐰𝐞𝐫𝐤, 𝐜𝐨𝐬𝐭𝐤), 𝟏 ≤ 𝐤 ≤ 𝐊 | 𝐩𝐨𝐰𝐞𝐫𝐢 ≠ 𝐩𝐨𝐰𝐞𝐫𝐣, 𝐯ớ𝐢 𝐢
≠ 𝐣 𝐯à 𝐜𝐨𝐬𝐭𝐢 ≠ 𝐜𝐨𝐬𝐭𝐣 𝐯ớ𝐢 𝐢 ≠ 𝐣}
Trong đó, powerk ∈ R và costk ∈ R được cho trước bởi người thiết kế Nếu K ≥ 2 thì bài toán sẽ xử lí vấn đề không thuần nhất giữa các trạm Ngược lại, nếu K = 1 hay chỉ có một kiểu trạm phát, bài toán sẽ xử lí vấn đề đặt trạm phát đồng nhất
Theo mô tả trong mục 2.1.1, mỗi trạm phát sẽ được đặt trong vùng đặt trạm Tất cả các trạm phát được đặt trong vùng đặt trạm của bản đồ có thể định nghĩa như một tập hợp:
𝐓 = {𝐭𝐣 = (𝐩𝐨𝐬𝐢𝐭𝐢𝐨𝐧𝐣, 𝐭𝐲𝐩𝐞𝐣), 𝟏 ≤ 𝐣 ≤ 𝐦, 𝐭𝐲𝐩𝐞𝐤 ∈ 𝐓𝐘𝐏𝐄}
Trong đó, mỗi trạm phát tj được đặt ở vị trí positionj = (xj, yjzj) ∈ PG và typek là kiểu của trạm phát
Gọi cường độ tín hiệu từ trạm phát tj đến trạm thu ri là Sịj Giá trị này được tính thông qua mô hình truyền tín hiệu Một mô hình đơn giản là “free space propagation model” hay với giả thiết là các vùng trong bản đồ không cản trở tín hiệu truyền đi Công thức tính giá trị Sịj trong mô hình này được tinh như sau :
𝐒𝐢𝐣 = 𝐏𝐣𝐆𝐢𝐆𝐣𝛌
𝟐
(𝟒𝛑)𝟐𝐝𝐢𝐣𝟐Trong đó :
- Gi , Gj là khả năng thu của ăngten gắn với trạm thu và trạm phát
Trang 14- Pj là cường độ nguồn phát tại trạm phát j
Trong đó : ASi là kích cỡ của tập ASi
Giá trị coverageT ri = 1 cho ta biết rằng trạm thu ri được bao phủ bởi ít
Trang 16Chương 3 : Tổng quan về thuâ ̣t toán gen
3.1 Giới thiệu thuật toán gen
Trong một khu nhà bỏ trống có nhiều mèo và chuột Ban đầu chuột có hai loại: lông trắng hoặc đen Sau thời gian sống với mèo, ban đêm chuột đen ít bị mèo nhìn thấy nên sống lâu hơn và sinh đẻ thêm do đó phát triển, trong đó chuột trắng ngày càng tuyệt giống vì bị mèo ăn thịt và không có nhiều để sinh đẻ thêm Trong thực tế chỉ có những sinh vật biết tiến hóa để thích nghi với hoàn cảnh sẽ tồn tại và phát triển
Thuâ ̣t toán gen hay còn gọi là thuật toán di truyền là thuâ ̣t toán tìm ki ếm dựa trên
chọn lọc tự nhiên và quá trình thích nghi Thuật toán này được áp dụng cho một loạt các vấn đề phức tạp để tìm ra một lời giải chính xác hoặc gần đúng Thuật toán di truyền là một lớp đặc biệt của thuật toán tiến hóa, được lấy cảm hứng từ tiến hóa sinh học di truyền, đột biến, lựa chọn và tái kết hợp
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 quang niệm cho rằng: quá trình tiến hóa tự nhiên là quá trình 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 như một tiên đề luôn luô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ì 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 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 được với môi trường sẽ bị đào thải Sự thay đổi của môi trường là động lực thúc đẩy quá trình 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
Các các thể mới sinh ra trong quá trình tiến hóa nhờ sự lai ghép ở thế hệ cha mẹ Một cá thể mối sẽ mang những thể trạng của cha – mẹ (di truyền), cũng có thể mang những trạng thái hoàn toàn mới(đột biến) Di truyền và đột biến là hai cơ chế có vai trò như nhau trong quá trình tiến hóa, dù rằng đột biến xảy ra với xác xuất nhỏ hơn so với hiện tượng di truyền Các thuật giải tiến hóa tuy có những điểm khác biệt nhưng điều mô phỏng 4 quá trình cơ bản: lai ghép, đột biến, sinh sản và chọn lọc tự nhiên
Trang 173.2 Thuật toán di truyền trên máy tính
Với khả năng hiện nay, máy tính đã giúp được rất nhiều bài toán khó mà trước kia không thể giải được Mặc dù vậy, vẫn còn một số lớn các bài toán chưa có thuật giải hợp
lý để giải chúng Trong số đó bài toán tối ưu là bài toán thường xuyên gặp phải trong các ứng dụng thực tế
Bài toán tối ưu có thể được xem như bài toán tìm kiếm lời giải pháp (tốt nhất) trong không gian (vô cùng lớn) các giải pháp Khi không gian tìm kiếm lớn cần phải dùng những kĩ thuật trí tuệ nhân tạo đặc biệt Thuật toán di truyền (GA) là một trong những kĩ thuật đó GA là một thuật toán mô tả các hiện tượng tự nhiên: kế thừa, đấu tranh sinh tồn
để cải tiến lời giải và khảo sát không gian lời giải Khái niệm kế thừa và đấu tranh sinh tồn được giải thích qua ví dụ về sự tiến hóa của quần thể thỏ như sau:
Có một quần thể thỏ Trong số đó có một số con nhanh nhẹn và thông minh hơn những con khác Những chú thỏ nhanh nhẹn và thông minh có xác suất bị chồn cáo ăn thịt nhỏ hơn, do đó chúng tồn tại để làm những gì tốt nhất có thể: tạo thêm nhiều thỏ tốt Dĩ nhiên một số thỏ chậm chạp, kém thông minh cũng vẫn sống sót bởi may mắn Quần thể những chú thỏ sống sót sẽ bắt dầu sinh sản Việc sinh sản này sẽ tạo ra một hỗn hợp tốt về
“nguyên liệu di truyền thỏ” Một số thỏ chậm chạp có con với những con thỏ nhanh, một
số thỏ nhanh với thỏ nhanh, một số thỏ thông minh với thỏ kém thông minh, … Và trên tất cả, thiên nhiên thỉnh thoảng ném vào một vào con thỏ “hoang dã” bằng cách làm đột biến nguyên liệu di truyền thỏ Những chú thỏ con, do kết quả sau này sẽ nhanh hơn và thông minh hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh hơn những con trong quần thể gốc vì có nhiều bố mẹ nhanh nhẹn và thông minh hơn
đã thoát chết khỏi chồn cáo (Và ở bên kia thái cực những con chồn cáo cũng trải qua quá trình tiến hóa tương tự)
Khi tìm kiếm lời giải tối ưu, thuật toán di truyền cũng thực hiện các bước tương ứng với câu chuyện đấu tranh sinh tồn của loài thỏ
Thuật toán di truyền sử dụng các thuật ngữ vay mượn của di truyền học Ta có thể nói các cá thể (hay kiểu gen, cấu trúc), trong một quần thể; những cá thể này cũng được gọi là chuỗi hay các nhiễm sắc thể Điều này hơi khác so với sinh học: mỗi tế bào của một chủng loại sinh học mang một số nhiễm sắc thể nào đó (ví dụ ở người là 46 nhiễm sắc thể) nhưng trong thuật toán di truyền, ta chỉ nói về những cá thể có một nhiễm sắc thể
Trang 18Các nhiễm sắc thể được tạo thành từ các đơn vị là các gen biểu diễn trong một chuỗi tuyến tính; mỗi gen kiểm soát một đặc trưng
Mỗi nhiễm sắc thể (gồm một nhóm gen) sẽ biểu diễn một lời giải của bài toán đang giải (ý nghĩa của một nhiễm sắc thể cụ thể được người sử dụng xác định trước); một tiến trình tiến hóa được thực hiện trên một quẩn thể các nhiễm sắc thể tương ứng với một quá trình tìm kiếm lời giải trong không gian lời giải Tìm kiếm đó cần cân đối hai mục tiêu: khai thác những lời giải tốt nhất và khảo sát không gian tìm kiếm Leo đồi là một ví dụ về chiến lược cho phép khai thác cà cải thiện lời giải tốt nhất hiện hành nhưng lại bỏ qua việc khảo sát không gian tìm kiếm Ngược lại, tìm kiếm ngẫu nhiên là một ví dụ điển hình của chiến lược khảo sát không gian tím kiếm mà không chú ý việc khai thác những vùng hứa hẹn của không gian Thuật toán di truyền (GA) là phương pháp tim kiếm tạo được sự cân đối đáng kể giữa việc khai thác và khảo sát không gian tìm kiếm
Thực ra, GA thuộc lớp các thuật toán xác suất những lại rất khác những thuật toán ngẫu nhiên Khác biệt quan trong giữa tìm kiếm của GA và các phương pháp tìm kiếm khác là GA duy trì và xử lý một tập các lời giải (mà ta gọi là một quần thể) Tất cả các phương pháp khác chỉ xử lý một điểm trong không gian tìm kiếm Chính vì thế, GA mạnh hơn các phương pháp tìm kiếm hiện có rất nhiều
Ta so sánh GA với một phương pháp tìm kiếm hiện đang được sử dụng rộng rãi là thuật toán leo đồi:
Phương pháp leo đồi dùng kĩ thuật lặp và áp dụng cho một điểm duy nhất (điểm hiện hành trong không gian tìm kiếm) Trong mỗi bước lặp, một điểm mới được chọn từ lân cận của điểm hiện hành (vì thế leo đồi còn được gọi là phương pháp tìm kiếm lân cận hay tìm kiếm cục bộ) Nếu điểm mới cho giá trị (của hàm mục tiêu) tốt hơn, điểm mới sẽ trở thành điểm hiện hành Nếu không một lân cận điểm khác sẽ được chọn và thử Quá trình
sẽ dùng nếu khong cải thiện thêm được cho lời giải hiện hành
Rõ ràng phương pháp leo đồi chỉ cung cấp các giá trị tối ưu cục bộ và những giá trị này phụ thuộc rất nhiều vào điểm khởi đầu Hơn nữa, không có thông tin sẵn có về sai số tương đối của lời giải tìm được
Để tăng cơ hội tìm được giá trị tối ưu nhất có thể, phương pháp leo đồi thường được thực hiện nhiều lần, mỗi lần với một tập hợp điểm khởi đầu khác nhau (những điểm này không cần chọn ngẫu nhiên – một tập hợp các điểm khởi đầu của một lần thực thi phụ thuộc nhiều vào kết quả của những lời giải trước đó)
Trang 19Như đã đề cập, GA thực hiện tiến trình tìm kiếm lời giải tối ưu theo nhiều hướng, bằng cách duy trì một quần thể các lời giải, và thúc đẩy sự hình thành và trao đổi thông tin giữa các hướng này Quần thể trải qua quá trình tiến hóa: ở mỗi thế hệ lại tái sinh các lời giải tốt, còn các lời giải xấu thì bị loại bỏ Để phân biệt các lời giải khác nhau, hàm mục tiêu đóng vai trò môi trường
Cấu trúc của một giải thuật di truyền đơn giản tương tự với cấu trúc của một chương trình tiến hóa nào Ở bước lặp giả sử t, thuật toán di truyền duy trì một quần thể các lời giải (các nhiễm sắc thể) P(t) = {x1, x2,…,xn} Mỗi lời giải xi được tính để biết độ thích nghi của nó Rồi một quần thể mới (lần lặp thứ t+1) được hình thành bằng cách chọn giữ lại những cá thể thích nghi nhất Một số các thể của quần thể này trải qua những biến đổi nhơ lai tạo (phép lai) và đột biến (phép đột biến), hình thành lời giải mới Phép lai kết hợp những tính chất cảu hai nhiễm sắc thể cha – mẹ để tạo thành nhiễm sắc thể con
Khác với phép lai, phép đột tạo ra những cá thể mới với có nhiễm sắc thể không liên quan đến những cá thể còn lại của quẩn thể Phép đột biến cho phép đưa thêm các thông tin mới vào quần thể làm cho chất liệu di truyền phong phú thêm
Thuật toán gen được sử dụng rất linh hoạt ứng với từng bài toán cụ thể Tuy nhiên, cấu trúc phổ biến nhất của thuật toán gen hoạt động như sau : khởi tạo ngẫu nhiên một quần thể gồm nhiều cá thể đơn lẻ khác nhau Các cá thể trong quần thể sẽ được gán một giá trị gọi là
độ thích nghi Hàm tính giá trị thích nghi này được xây dựng phụ thuộc vào các tiêu chí mà người lập trình đưa ra Các cá thể được chọn để tái sinh đựa trên độ thích nghi Những cá thể này thực hiện quá trình tái sinh và tạo ra một hoặc nhiều cá thể con, sau đó những cá thể con này được đột biến ngẫu nhiên Sau các quá trình này thu được một hỗn tạp gồm cả cá thể vừa sinh ra và cá thể cũ Chọn quần thể cho thế hệ tiếp theo từ quần thể hỗn tạp này Tiếp tục quá trình trên cho tới khi tìm được kết quả mong muốn hoặc chính xác số thế hệ thực hiện đã được
gán trước Lược đồ sau mô tả về quá trình này như sau :
Trang 20Hình [4] : Lược đồ cấu trúc thuật toán Gen
Cấu trúc thuật giải di truyền tổng quát bằng giả mã :
(1) Khởi tạo quần thể gồm các cá thể
(2) Tính độ thích nghi của tất cả các cá thể
(3) while ( chưa đến trạng thái dừng ) do
(4) Chọn lọc các cá thể để lai ghép
(5) Lai ghép giữa các cá thể ở bước 4
(6) Đột biến các cá thể sinh ra ở bước 5
(7) Tính độ thích nghi của các cá thể sinh ra ở bước 6 (8) Sinh ra quần thể mới
End while
Trang 21Chi tiết về các bước sẽ được mô tả sau đây :
3.3.1 Khởi tạo quần thể
Quần thể đầu tiên được khởi tạo bằng cách sinh ngẫu nhiên các các thể Số lượng các cá thể sinh ra phụ thuộc vào tính chất của bài toán, thông thường vào khoảng vài trăm đến vài nghìn cá thể Lưu ý rằng việc chọn kích thước quần thể quá nhỏ sẽ khó tìm được kết quả tối ưu
Để chương trình có thể hoạt động các cá thể cần được biễu diễn một cách hợp lý, phù hợp với đặc điểm của bài toán Mỗi cá thể sau khi được mã hóa gọi là một nhiễm sắc thể
a Phương pháp chọn lọc roulette wheel
for các cá thể trong quần thể tổng += độ thích nghi của cá thể end for
for các cá thể trong quần thể xác suất chọn = ( độ thích nghi / tổng ) end for
loop until chọn đủ cá thể cho quần thể mới number = giá trị ngẫu nhiên giữa 0 và 1 for các cá thể trong quần thể
if number < xác suất chọn then chọn cá thể này end
end loop
Trang 22Trong phương pháp chọn lọc là roulette wheel, mỗi cá thể được gắn với một xác suất chọn lọc, xác suất tính tương ứng với giá trị của hàm tiến hóa Sau đó, hai cá thể được chọn ngẫu nhiên dựa trên xác suất của chúng và tiến hành sinh sản Theo dõi giả mã trên về quá trình chọn lọc roulette wheel
b Phương pháp chọn lọc tournament
Trong phương pháp chọn lọc tournament, hai cá thể được chọn ngẫu nhiên với xác suất như nhau rồi đêm đi đấu loại Cá thể nào có độ thích nghi lớn hơn sẽ được chọn Theo dõi giả mã sau về quá trình chọn lọc tournament :
3.3.4 Lai ghép
Sau khi chọn được cặp cá thể cha, tiến hành lai ghép để tạo ra các nhiễm sắc thể con Một vài phương pháp lai ghép tiêu biểu là : lai ghép một điểm, lai ghép đa điểm, lai ghép đồng dạng Xác suất lai ghép thông thường vào khoảng 0.6 đến 0.7 Vì vậy đôi khi tồn tại một số cá thể được nhân bản sang thế hệ sau
Trong khóa luận này, tôi sử dụng phương pháp lai ghép đa tầng, là phương pháp lai kết hợp giữa các phương pháp lai khác nhau, các bước lai được thực hiện qua nhiều tầng Trong phạm vi khóa luận sẽ trình bày hai phương pháp lai căn bản phục vụ cho quá trình lai ghép đa tầng là : lai ghép một điểm và lai ghép đồng dạng
- Đấu loại thu được 1 cá thể
- Cho cá thể này vào quần thể trung gian Thực hiện tiếp vòng sau với quần thể này
end