Xây dựng website bán hàng trực tuyến – Chương này làm rõ hơn các vấn đề của các chương trước bằng một bài toán cụ thể - bài toán bán hàng trực tuyến máy tính xách tay có hỗ trợ người dù
Trang 1LUẬN VĂN THẠC SĨ: CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: PGS- TS Hồ Cẩm Hà
HÀ NỘI, NĂM 2013
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI CAM ĐOAN 4
DANH MỤC CÁC HÌNH VÀ BẢNG BIỂU 7
MỞ ĐẦU 8
I Lý do lựa chọn đề tài 8
II Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu 9
III Các luận điểm cơ bản và đóng góp mới của luận văn 9
PHẦN II: NỘI DUNG 11
CHƯƠNG I 11
BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 11
VÀ GIẢI THUẬT DI TRUYỀN 11
1.1 Bài toán tối ưu đa mục tiêu 11
1.1.1 Sự ra đời bài toán tối ưu 11
1.1.2 Phát biểu bài toán 11
1.1.3 Một số định nghĩa 12
1.1.4 Miền tối ưu Pareto 13
1.1.5 Cách tiếp cận bài toán đa mục tiêu dựa trên thuật giải di truyền 15
1.1.6 Đánh giá về giải bài toán tối ưu đa mục tiêu 17
1.2 Thuật giải di truyền 17
1.2.1 Tổng quát về thuật giải di truyền 17
1.2.2 Khởi tạo quần thể ban đầu 21
1.2.3 Mã hóa 21
1.2.4 Lựa chọn 24
1.2.5 Phép lai 27
1.2.6 Đột biến 30
1.2.7 Điều kiện dừng 32
1.2.8 Ví dụ 32
CHƯƠNG II 38
TỐI ƯU ĐA MỤC TIÊU TRONG MUA HÀNG TRỰC TUYẾN 38
2.1 Tối ưu hóa nhiều mục tiêu 38
2.2 Mua hàng qua mạng và sự cần thiết của hỗ trợ ra quyết định 39
2.2.1 Internet đem đến một phương thức mua bán mới 39
2.2.2 Khảo sát thực trạng mua bán qua mạng 39
2.3 So sánh giữa phương thức mua hàng truyền thống và mua qua mạng 40
2.4 Khảo sát các trang web bán hàng và sự hỗ trợ khách hàng của chúng 41
Trang 32.5 Các tiện ích mà một trang web bán hàng cần cung cấp để có thể hỗ trợ
khách hàng tốt hơn 43
2.6 Vấn đề ―đa mục tiêu‖ khi chọn sản phẩm 43
2.7 Bài toán bán hàng trực tuyến hỗ trợ người mua chọn sản phẩm 44
2.8 Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản phẩm 44
2.9 Cách tiếp cận để giải bài toán ―Tối ưu đa mục tiêu‖ khi chọn sản phẩm 45 2.10 Chuyển bài toán chọn sản phẩm thành bài toán tối ưu đa mục tiêu 46
2.10.1 Lời giải cho bài toán 46
2.10.2 Các biến quyết định 46
2.10.3 Các ràng buộc 46
2.10.4 Các mục tiêu 47
2.10.5 Hướng đến một lời giải ―tối ưu‖ 48
2.10.6 Các cải tiến để phù hợp với bài toán 51
2.11 Các bước thực hiện giải thuật trong khâu lựa chọn sản phẩm của bài toán bán hàng qua mạng máy tính xách tay 54
2.11.1 Khởi tạo 54
2.11.2 Tính độ thích nghi 55
2.11.3 Chọn lọc 58
2.11.4 Thực hiện phép lai ghép và đột biến 59
CHƯƠNG III 61
XÂY DỰNG WEBSITE BÁN HÀNG TRỰC TUYẾN 61
3.1 Chương trình website bán hàng máy tính xách tay có hỗ trợ người mua chọn sản phẩm 61
3.1.1 Mô hình Usecase 61
3.1.2 Mô tả các Actor 62
3.1.3 Hoạt động của chương trình 62
3.2 Cài đặt 66
3.3 Đánh giá kết quả 69
PHẦN III: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73
1 Kết luận 73
2 Hướng phát triển 73
TÀI LIỆU THAM KHẢO 74
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa được công bố trong các công trình khác
HỌC VIÊN CAO HỌC
Vũ Thu Hà
Trang 5LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự
hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập ở giảng đường đại học Công nghệ đến nay,
em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến cô giáo- PGS TS Hồ Cẩm
Hà – Đại học Sư phạm I Hà Nội đã luôn giúp đỡ, ủng hộ em để em hoàn thành luận văn này
Em xin cảm ơn các thầy cô trong trường Đại học Công Nghệ đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng
em trong suốt thời gian học tập tại trường
Mặc dù có rất nhiều nỗ lực nhưng luận văn không tránh khỏi thiếu sót, kính mong nhận được sự đóng góp của quí thầy cô và các bạn
Trang 6Nhận xét của giáo viên phản biện
Trang 7
DANH MỤC CÁC HÌNH VÀ BẢNG BIỂU
1 Danh mục các hình
Hình 1.1 Miền tối ưu Pareto 13
Hình 1.2 Quay bánh xe 24
Hình 1.3 Lai một vị trí đối với mã nhị phân 26
Hình 1.4 Lai một vị trí đối với mã dạng cây 27
Hình 1.5 Lai hai vị trí đối với mã nhị phân 27
Hình 1.6 Lai đều 27
Hình 1.7 Đột biến nhẹ 30
Hình 2.1 Véc tơ mục tiêu của sản phẩm có hai thuộc tính 47
Hình 2.2 Điều hướng về miền tối ưu Pareto 49
Hình 2.3 Di chuyển trên miền Pareto bằng cách thay đổi trọng số 50
Hình 2.4 Các trạng thái gen trong quần thể 51
Hình 2.5 Lai ghép 52
Hình 2.6 Đột biến 52
Hình 3.1 Lược đồ Usecase Admin 60
Hình 3.2 Lược đồ Usecase khách hàng 61
Hình 3.3 Kết quả tìm kiếm sau 100 thế hệ là 3 máy ứng với hàm thích nghi cao nhất 62
Hình 3.4 Giao diện trang chủ 64
Hình 3.5 Giao diện trang tìm kiếm 64
Hình 3.6 Giao diện trang tìm kiếm theo sở thích 65
Hình 3.7 Kết quả tìm kiếm theo sở thích 65
Hình 3.8 Lựa chọn loại máy theo đặc thù tính chất công việc trên trang amazon.com 66
Hình 3.9 Danh mục mua ở tùy chọn basic 67
Hình 3.10 Sản phẩm và bình luận của người dùng trên trang amazon.com 67
Hình 3.11 Trang lựa chọn máy tính xách tay trên vatgia.com 68
Hình 3.12 Trang lựa chọn máy tính xách tay trên trananh.vn 68
2 Danh mục các bảng Bảng 1.1 Mã số thực 22
Bảng 1.2 Mã dạng cây 23
Bảng 1.3 Mã hoán vị 23
Bảng 1.4 Lai một vị trí đối với mã số thực 27
Bảng 1.5 Lai hai vị trí đối với mã số thực 28
Bảng 1.6 Lai số học 29
Bảng 1.7 Đột biến 29
Bảng 1.8 Kết quả của 150 thế hệ 36
Bảng 2.1 Các bước cơ bản để tiến hành một giao dịch 39
Bảng 2.2 Phân loại hỗ trợ quyết định trong E-Commerce 40
Bảng 3.1 Thông số xác suất chọn pi của các cá thể trong quần thể 50
Bảng 3.2 Thông số vị trí xác suất qi của cá thể trong quần thể 51
Bảng 3.3 Hàm thích nghi của 100 thế hệ 63
Trang 8có thể ngồi ở nhà mà vẫn có thể lựa chọn được một sản phẩm tâm đắc Tuy nhiên, khi con người ngày càng có nhiều nhu cầu thì các nhu cầu đó có thể xung đột nhau Người bán hàng muốn tăng doanh thu, người mua hàng muốn mua được sản phẩm tốt với giá cả hợp lý và thời gian cho phép Bán hàng trực tuyến
đã góp phần nâng cao chất lượng sống của người dân Tuy nhiên, không phải bất cứ trang Web nào cũng đem lại sự thuận tiện cho khách hàng
Làm thế nào để giới thiệu những sản phẩm mà khách hàng thật sự mong muốn trong một thời gian cho phép là một vấn đề đặt ra cho doanh nghiệp Tiêu chí đặt ra ở đây là luôn tư vấn cho khách hàng không ít hơn một sản phẩm mà họ mong muốn với các tiêu chí họ đặt ra, dù các tiêu chí đó có mâu thuẫn nhau đi chăng nữa, đồng thời không để khách hàng phải chờ đợi lâu, mặc dù có thể số lượng tìm kiếm là rất lớn Vì vậy trong khâu lựa chọn sản phẩm của các website bán hàng trực tuyến cần có sự hỗ trợ để người mua có được lựa chọn tốt nhất trong thời gian ngắn Điều đó không những đem lại sự hài lòng cho khách hàng
mà còn đem lại lợi ích cho doanh nghiệp, giúp doanh nghiệp tăng doanh thu, sản lượng và xây dựng chiến lược bán hàng hiệu quả Ứng dụng tối ưu đa mục tiêu
và giải thuật di truyền là một giải pháp khá tốt cho bài toán bán hàng trực tuyến trong khâu lựa chọn sản phẩm
Bài toán tối ưu đa mục tiêu có thể chuyển về bài toán tối ưu một mục tiêu,
và giải thuật di truyền giúp người mua luôn tìm thấy sản phẩm với thời gian ngắn Mặc dù độ chính xác của nó không hoàn toàn là 100% và có rất nhiều việc phải làm trong giải thuật di truyền nhưng với ưu thế về thời gian khi tìm kiếm trong một không gian lớn và khả năng luôn cho kết quả là một lựa chọn đúng đắn để ta áp dụng
Trang 9Từ những vấn đề thiết thực đó, em đã chọn đề tài ―Tối ưu đa mục tiêu sử dụng giải thuật di truyền với bài toán hỗ trợ người mua hàng trực tuyến lựa chọn sản phẩm‖
II Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu
1 Mục đích nghiên cứu
• Nghiên cứu về bài toán tối ưu đa mục tiêu
• Tìm hiểu cơ sở lý thuyết của giải thuật di truyền sử dụng trong bài toán tối ưu đa mục tiêu
• Sử dụng lý thuyết tối ưu đa mục tiêu và giải thuật di truyền áp dụng vào bài toán: bán hàng trực tuyến máy tính xách tay trong khâu lựa chọn sản phẩm
• Áp dụng kết quả nghiên cứu để cài đặt hệ thống
2 Đối tượng và phạm vi nghiên cứu
• Nghiên cứu lý thuyết tối ưu đa mục tiêu, giải thuật di truyền, bài toán bán hàng trực tuyến máy tính xách tay
Phương pháp nghiên cứu
Nghiên cứu lý thuyết và tiến hành cài đặt thử nghiệm trang web bán hàng trực tuyến
III Các luận điểm cơ bản và đóng góp mới của luận văn
Trong luận văn này, ngoài phần mở đầu, phần kết luận và tài liệu tham khảo, nội dung luận văn được chia thành 3 chương:
Chương I: Tối ưu đa mục tiêu và giải thuật di truyền- Trình bày các khái
niệm cơ bản về tối ưu đa mục tiêu, thuật giải di truyền
Chương II: Tối ưu đa mục tiêu trong mua hàng trực tuyến Trình bày các
khó khăn khi xây dựng một module hỗ trợ khách hàng lựa chọn sản phẩm, cách
Trang 10tiếp cận để giải bài toán tối ưu đa mục tiêu khi chọn sản phẩm, chuyển bài toán chọn sản phẩm thành bài toán tối ưu đa mục tiêu
Chương III Xây dựng website bán hàng trực tuyến – Chương này làm rõ
hơn các vấn đề của các chương trước bằng một bài toán cụ thể - bài toán bán hàng trực tuyến máy tính xách tay có hỗ trợ người dùng lựa chọn sản phẩm, sử dụng giải thuật di truyền và tối ưu đa mục tiêu
Trang 11PHẦN II: NỘI DUNG
CHƯƠNG I BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU
VÀ GIẢI THUẬT DI TRUYỀN 1.1 Bài toán tối ưu đa mục tiêu
1.1.1 Sự ra đời bài toán tối ưu
Tất cả các lĩnh vực như kỹ thuật, khoa học, kinh doanh đều liên quan đến việc quyết định phân bổ, hoạch định các tài nguyên hạn hẹp cho các hoạt động,
ví dụ quyết định đầu tư kinh doanh, phân công công việc, phân bổ tài nguyên v.v Những hoạt động này đều liên quan đến việc đo lường và tối ưu các hiệu xuất, mục tiêu
Trong một trường hợp cụ thể nào đó, các mục tiêu có thể được tối ưu hóa một cách độc lập để đạt được kết quả tốt nhất ứng với mục tiêu đó Tuy nhiên một kết quả chấp nhận được cho toàn bộ các mục tiêu khó có thể tìm ra theo cách đó Bởi vì việc tối ưu hóa một mục tiêu có thể dẫn đến kết quả của một hoặc nhiều mục tiêu khác trở nên tồi tệ Ví dụ trong việc chế tạo xe đua làm sao tìm ra được trọng lượng hợp lý của thùng xăng để xe có thể đi một khoảng đường dài mà không phải tiếp nhiên liệu (cần một lượng xăng lớn) nhưng không làm tăng nhiều khối lượng của xe (làm giảm tốc độ xe)
Tuy nhiên thực tế là chưa có một định nghĩa thống nhất thế nào là tối ưu như trong bài toán một mục tiêu do đó thậm chí rất khó để ta có thể so sánh kết quả giữa các phương pháp với nhau bởi vì việc quyết định cái gì là tốt nhất rốt cuộc vẫn thuộc về người ra quyết định
1.1.2 Phát biểu bài toán
Khi một vấn đề được đặt ra trong đó có nhiều tiêu chí, mục tiêu kèm theo Nếu các mục tiêu xung đột với nhau và các biến quyết định có những ràng buộc với nhau thì việc đi tìm giải pháp tối ưu của vấn đề trở thành bài toán ―Tối ưu hóa đa mục tiêu‖ Việc giải quyết bài toán tối ưu hóa đa mục tiêu được giải quyết với ý tưởng tương tự bài toán tối ưu một mục tiêu Trong bài toán một
Trang 12mục tiêu để giải quyết bài toán ta phải đi tìm một tập các các biến quyết định thỏa các ràng buộc và đưa ra một kết quả tối ưu đối với hàm mục tiêu Bài toán
đa mục tiêu chỉ khác là nó phải giải quyết nhiều mục tiêu khác nhau (có thể xung đột với nhau) và thường cho ra một tập các giải pháp tối ưu hoặc không so sánh được với nhau
1.1.3 Một số định nghĩa
1.1.3.1 Các biến quyết định
Bước đầu tiên trong quá trình tối ưu hóa là việc công thức hóa vấn đề Một mô hình toán học cần được đưa ra để mô tả chính xác các hành vi hay giá trị của các tình huống
Nhìn chung các bài toán đa mục tiêu đều có thể biểu diễn bằng một vector các hàm trong đó ánh xạ m tham số (các biến quyết định) thành một tập n mục tiêu
Min/Max y = f(x) = (f1(x), f2(x)…fn(x))
Trong đó x=(x1, x2,…,xm) X
y=( y1, y2,…,yn) Y
x được gọi là vector quyết định bao gồm m biến quyết định
X được gọi là không gian tham số (hay không gian tìm kiếm)
y được gọi là vector mục tiêu bao gồm n mục tiêu
Y được gọi là không gian mục tiêu
1.1.3.2 Các ràng buộc
Bước tiếp theo của việc công thức hóa vấn đề đó là xác định các ràng buộc Ràng buộc là những điều kiện giữa các biến quyết định mà các giải pháp cần phải thỏa Các ràng buộc được mô tả bằng các đẳng thức hoặc bất đẳng thức
gj(x) ≤0 , j = 1,2,…,j
hk(x) = 0 , k = 1,2,…,k
Trang 131.1.3.3 Hàm mục tiêu
Bước cuối cùng của việc công thức hóa vấn đề đó là định nghĩa các hàm mục tiêu Đây chính là con số mà người thiết kế cần tối ưu hóa Các hàm này được biểu diễn dưới dạng:
1.1.4 Miền tối ƣu Pareto
1.1.4.1 Giới thiệu
Trong bài toán tối ưu đa mục tiêu, ta mong muốn tìm được một tập giá trị các biến quyết định nhằm tối ưu các hàm mục tiêu Tập các biến quyết định cho
ta một kết quả tối ưu được gọi là một tập tối ưu và được ký hiệu là x* Miền tối
ưu Pareto là một tập hợp chứa các tập tối ưu mà từ đó ta có thể chọn ra các giá trị mong muốn (tối ưu) [3]
Trang 141.1.4.2 Tối ƣu pareto
Hình 1.1 Miền tối ưu Pareto
Như hình 1.1 trên, miền tối ưu Pareto (đường tô đậm) là một tập hợp các điểm nếu di chuyển từ điểm này (ví dụ điểm A) đến điểm kia (ví dụ điểm B) trong tập hợp làm cho một mục tiêu bị giảm thì phải có ít nhất một mục tiêu khác tăng lên và ngược lại
Nói cách khác một vector xv = f(xv)=(v1,v2,…,vn) thuộc một tập P được gọi là thuộc miền tối ưu Pareto khi và chỉ khi không tồn tại một vector quyết định
xu= f(xu) = (u1,u2,…un) nào thống trị xv, nghĩa là
Trang 15miền Pareto của bài toán một hay một số các phương án tốt nhất theo một nghĩa nào đó dựa trên cơ cấu ưu tiên của người ra quyết định
1.1.5 Cách tiếp cận bài toán đa mục tiêu dựa trên thuật giải di truyền 1.1.5.1 Giới thiệu
Khái niệm về áp dụng thuật toán di truyền vào bài toán đa mục tiêu đã xuất hiện vào những năm 60 trong một nỗ lực nghiên cứu của Rosenberg (1967) Ông đã đề xuất sử dụng nhiều thuộc tính trong việc mô phỏng các gene và quần thể các sinh vật đơn bào
Thật ra trong cài đặt của mình ông chỉ sử dụng một thuộc tính và cách tiếp cận đa mục tiêu không thể thấy được trong cài đặt của ông nhưng nó đã trở thành điểm xuất phát cho việc áp dụng giải thuật di truyền vào bài toán tối ưu đa mục tiêu
Chúng ta biết rằng thuật toán di truyền cần thông tin về độ thích nghi để làm việc Có lẽ ý nghĩ đơn giản và tự nhiên nhất đó là kết hợp các mục tiêu lại làm một bằng cách sử dụng các phép toán đại số Cách tiếp cận này đòi hỏi chúng ta phải cung cấp các thông tin về tầm mức của các mục tiêu Điều này đòi hỏi chúng ta phải biết về hành vi, hoạt động của các hàm mục tiêu, đây không phải là một tiến trình đơn giản Với cách kết hợp các mục tiêu lại với nhau, rõ ràng đây không phải là cách đơn giản nhất nhưng có lẽ là một trong những cách hiệu quả nhất bởi vì nó không đòi hỏi phải giao tiếp với người ra quyết định thêm lần nào nữa trong khi thuật toán đang được thực hiện Và nếu GA kết thúc bằng một kết quả thích nghi tối ưu thì kết quả này ít nhất sẽ thuộc về một tập các giải pháp tối ưu trong đa số trường hợp
Cách tiếp cận kết hợp các mục tiêu lại đưa về bài toán một mục tiêu là một trong các cách được biết đến nhiều nhất trong việc giải bái toán tối ưu đa mục tiêu vì tính hiệu quả của nó Một số cách tiếp cận theo cách trên đã được đề
ra như tổng trọng số, hướng mục đích và tối ưu Min-Max
1.1.5.2 Cách tiếp cận tổng trọng số (Weighting objective)
Phương pháp này chúng ta sẽ cộng các hàm mục tiêu lại với nhau và sử dụng các trọng số đối với từng mục tiêu, trọng số này thể hiện sự tương quan về
Trang 16độ quan trọng của các mục tiêu Với cách này các giải pháp trên miền Pareto (vốn không so sánh được với nhau) sẽ có thể đánh giá và so sánh được
Khi đó vấn đề của chúng ta sẽ được chuyển thành dạng: min
1
w ( )
k
i i i
Và ci* là một hằng số với ci*= 1/ fi* và f i* là giá trị tối ưu của hàm mục tiêu f i
Rõ ràng kết quả của bài toán sẽ thay đổi khi các trọng số thay đổi, và thông thường các trọng số này khó được xác định do đó cần một cách tiếp cận khác khi chúng ta phải sử dụng nhiều giá trị trọng số khác nhau Nhưng trong trường hợp các trọng số được xác định bởi người ra quyết định dựa trên trực giác của mình thì cách này vẫn tỏ ra có hiệu quả
1.1.5.3 Cách tiếp cận hướng mục đích (Goal programming)
Cách tiếp cận này được đưa ra và đã đóng một vai trò then chốt trong các ứng dụng trong lĩnh vực công nghiệp Trong phương pháp này người ra quyết định phải xác định mục đích mà mỗi mục tiêu cần đạt được Các hàm mục tiêu
sẽ cố gắng tìm cách làm tối thiểu hóa khoảng cách giữa giá trị hiện đạt được của mục tiêu với giá trị đích mà người ra quyết định mong muốn đạt được
Hình thức đơn giản nhất của phương pháp này là:
Trang 17Phương pháp này sẽ cho ra một giải pháp đôi khi bị thống trị bởi một giải pháp khác nếu đích cần đạt được nằm trong vùng khả thi Đây có thể là một cách tiếp cận rất hiệu quả nếu chúng ta biết được giá trị đích mà chúng ta mong đợi
và giá trị đó nằm trong vùng khả thi Tuy nhiên người ra quyết định vẫn phải cung cấp các trọng số ưu tiên của các mục tiêu để cho các giải pháp có thể so sánh được, và trong nhiều trường hợp điều này rất khó thực hiện nếu không biết trước được hình dáng của không gian tìm kiếm
Một số cách tiếp cận để giải bài toán tối ưu đa mục tiêu khác cũng dựa trên thuật giải di truyền như Min-Max, ràng buộc ε, VEGA…
1.1.6 Đánh giá về giải bài toán tối ƣu đa mục tiêu
Mặc dù rất nhiều nỗ lực được đưa ra để giải quyết bài toán tối ưu đa mục tiêu, tuy nhiên hầu hết đều nhằm để giải quyết các vấn đề cụ thể nào đó và chưa
có một phương thức nào tỏ ra có hiệu quả trong tất cả các vấn đề Và cũng chưa
có phương cách nào để so sánh tính hiệu quả của các phương pháp Áp dụng thuật toán di truyền để giải quyết một bài toán tối ưu đa mục tiêu thì có rất nhiều việc cần làm như kích thước một quần thể, biểu diễn các biến quyết định, các thao tác của thuật toán như lai ghép, đột biến
Mặc dù độ phức tạp khi cài đặt thuật toán khá cao nhưng do kết quả mà nó đem lại rõ ràng rất ấn tượng Do đó việc áp dụng thuật toán di truyền để giải quyết
bài toán tối ưu đa mục tiêu đang được ngày càng quan tâm và phát triển
1.2 Thuật giải di truyền
1.2.1 Tổng quát về thuật giải di truyền
Với khả năng hiện nay, máy tính đã giúp giải được rất nhiều bài toán khó
mà trước kia chúng ta thường bó tay Mặc dù vậy, vẫn còn một số lớn các bài toán rất thú vị nhưng chưa có thuật toán hợp lý để giải chúng Trong số đó, các bài toán tối ưu là những bài toán phải ứng dụng nhiều trong thực tiễn
Trong thực tiễn, có rất nhiều bài toán tối ưu quan trọng đòi hỏi những thuật giải chất lượng cao Ví dụ, ta có thể áp dụng phương pháp mô phỏng luyện thép để giải bài toán tìm đường đi ngắn nhất cho xe cứu hỏa hay bài toán người
Trang 18du lịch… Cũng có nhiều bài toán tối ưu tổ hợp có thể giải được gần đúng trên máy tính hiện đại bằng kỹ thuật Monte- Carlo
Nói chung, bài toán tối ưu có thể được xem là bài toán tìm kiếm 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 nhỏ, các phương pháp cổ điển như trên cũng đủ thích hợp; nhưng khi không gian lớn cần phải dùng đến những kỹ thuật Trí tuệ nhân tạo đặc biệt Thuật giải Di truyền (GA) là một trong những kỹ thuật đó Thuật giải di truyền
là một thuật giải mô phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để cải tiến lời giải và khảo sát lời giải Khái niệm kế thừa và đấu tranh sinh tồn được giải thích qua thí dụ về sự tiến hóa của một 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 đần độn cũng sống chỉ vì may mắn Quần thể những chú thỏ còn sống sót sẽ bắt đầ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 thỏ nhanh, một số thỏ nhanh với thỏ nhanh, một số thỏ thông minh với thỏ đần độn… Và trên tất cả, thiên nhiên thỉnh thoảng lại ném vào một 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ả 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 hơn và thông minh hơn đã thoát chết khỏi chồn cáo (Thật hay là những con chồn cũng trải qua những tiến trình tương tự- nếu không những con thỏ sẽ trở nên nhanh và thông minh đến nỗi những con chồn cũng không thể bắt chúng được)
Khi tìm kiếm lời giải tối ưu, thuật giải 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 giải 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òn được gọi là các chuỗi hay nhiễm sắc thể Điều này có thể gây chút lẫn lộn: mỗi tế bào của một cơ thể của một chủng loại đã cho, mang một số những nhiễm sắc thể nào đó (thí dụ, người có 46 nhiễm sắc thể) nhưng trong giải thuật di truyền, ta chỉ nói về những cá thể có một nhiễm sắc thể Các nhiễm sắc thể được tạo thành từ 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 (số) đặc trưng Gen với những đặc trưng nhất định có vị trí nhất
Trang 19định trong nhiễm sắc thể Bất cứ đặc trưng nào của mỗi cá thể có thể tự biểu hiện một cách phân biệt, và gen có thể nhận một số giá trị khác nhau ( các giá trị
về tính năng)
Mỗi kiểu (nhóm) gen (ta gọi là một nhiễm sắc thể) 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 2 mục tiêu (có vẻ mâu thuẫn nhau): 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 thí
dụ về chiến lược cho phép khai thác và cải thiện lời giải tốt nhất hiện hành; nhưng leo đồi 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 thí 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ú ý đến những vùng đầy hứa hẹn của không gian Thuật giải di truyền (GA) là phương pháp tìm kiếm (độc lập miền) 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 giải xác suất, nhưng lại rất khác những thuật giải ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu nhiên Khác biệt quan trọng 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 (ta gọi là một quần thể)- tất
cả những 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
Đơn cử, ta so sánh GA với hai phương pháp tìm kiếm hiện được sử dụng rộng rãi: leo đồi và mô phỏng luyện thép
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 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 khác sẽ được chọn và thử Quá trình trên sẽ dừng nếu không cải thiện được thêm cho lời giải hiện hành
Rõ ràng là 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 (thỏa tối ưu toàn cục) của lời giải tìm được
Trang 20Để tăng cơ hội thành công, 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 đ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 vào kết quả của những lần chạy trước đó)
Kỹ thuật mô phỏng luyện thép là một kỹ thuật khắc phục những bất lợi của phương pháp leo đồi: lời giải không còn tùy thuộc nhiều vào điểm khởi đầu nữa và (thường là) gần với điểm tối ưu Đạt được điều này là nhờ đưa vào xác suất nhận p Xác suất p là hàm theo giá trị của hàm mục tiêu đối với điểm hiện hành và điểm mới, và một tham số điều khiển bổ sung, tham số ―Nhiệt độ ‖ T Nói chung, nhiệt độ T càng thấp thì cơ hội nhận điểm mới càng nhỏ Khi thực hiện thuật giải, nhiệt độ T của hệ thống được hạ thấp dần theo từng bước Thuật giải dừng khi T nhỏ hơn một ngưỡng cho trước; với ngưỡng này thì gần như không còn thay đổi nào được chấp nhận nữa
Như đã đề 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 tiến trình tiến hóa: ở mỗi thế hệ lại tái sinh các lời giải tương đối ―tốt‖, trong khi các lời giải tương đối ―xấu‖ thì chết đi Để phân biệt các lời giải khác nhau, hàm mục tiêu được dùng để đóng vai trò môi trường
Các khái niệm cơ bản của Thuật giải di truyền (Genetic Algorithm - GA) lần đầu tiên được đưa ra bởi Holland vào những năm 70 GA hoạt động dựa trên
cơ chế chọn lọc tự nhiên được đề xuất bởi nhà bác học Darwin Theo cơ chế này, những cá thể thích nghi hơn sẽ tồn tại, và được gọi là ―quy luật tồn tại của
sự thích nghi‖ Tương tự như vậy, thuật giải GA cũng sử dụng cơ chế chọn lọc
tự nhiên, theo cách đó những giải pháp tối ưu sẽ được tồn tại qua các tiến trình của thuật giải Nhìn chung thuật giải GA bao gồm các yếu tố: khởi tạo quần thể, biểu diễn số (mã hóa), tính toán độ thích nghi, chọn lọc và các thao tác di truyền Một thuật giải GA tổng quát có dạng như sau:
Tạo ngẫu nhiên quần thể ban đầu P(0), đặt i=0
Lặp
Định giá độ thích nghi của từng cá thể trong P(i)
Chọn các cặp bố mẹ dựa trên độ thích nghi của các cá thể P(i)
Trang 21Thực hiện các hàm lai ghép và đột biến trên các các cặp bố mẹ đã chọn để tạo ra thế hệ tiếp theo cho đến khi ―tiêu chuẩn dừng‖ thỏa mãn
1.2.2 Khởi tạo quần thể ban đầu
Chọn kích thước quần thể thích hợp cho thuật giải di truyền luôn luôn cần thiết nhưng lại là một nhiệm vụ khó khăn đối với người sử dụng Một mặt, nếu kích thước quần thể quá nhỏ, thuật giải di truyền sẽ hội tụ rất nhanh và do đó lời giải tối ưu sẽ là không tối ưu Mặt khác, nếu kích thước quần thể quá lớn thì tốn nhiều tài nguyên máy tính và thậm chí bị ngăn cản
Theo một cuộc điều tra lý thuyết về xác định kích thước quần thể tối ưu, Goldberg cho rằng kích thước quần thể được xác định theo công thức pop=1.65
Mã nhị phân được biểu diễn bằng các chuỗi 0 và 1
Quy tắc biểu diễn gen qua chuỗi nhị phân : Chọn chuỗi nhị phân ngắn nhất nhưng đủ thể hiện được tất cả kiểu gen
Nhiễm sắc thể A 10001010001111101010111
Nhiễm sắc thể B 00000001000000011110000
Trang 22Giả sử muốn tối ưu hàm n biến f(x1,x2,x3,.,xn), trong đó mỗi biến xi thụộc miền D=[ai ,bi] là tập con của tập số thực R và yêu cầu chính xác là k chữ số thập phân cho mỗi giá trị của biến xi Để đạt được độ chính xác như vậy miền [ai, bi] được phân cắt thành (bi- ai)*10k miền con bằng nhau
Gọi mi là số nguyên nhỏ nhất sao cho:
(bi- ai)*10k ≤ 2 mi-1
Như vậy mỗi biến xi thuộc [ ai, bi] được biểu diễn bằng một chuỗi nhị phân có chiều dài mi Phép ánh xạ biến nhị phân thành biến thực xi được tính theo công thức:
xi= ai+ decimal(string2)*(bi-ai)/2 mi-1 trong đó decimal (string2) biểu diễn giá trị thập phân của chuỗi nhị phân string2 Bây giờ mỗi nhiễm sắc thể (là một lời giải) được biểu diễn bằng chuỗi nhị phân có chiều dài m =
1
n i
mi.Với m1 là bit đầu tiên biểu diễn các giá trị trong khoảng [a1,b1], m2 là bit kế tiếp biểu diễn giá trị trong khoảng [a2,b2] và nhóm mnbit cuối cùng biểu diễn trong khoảng [an,bn]
Việc mã hóa này không tự nhiên đối với vài bài toán và kết quả đúng đạt được sau khi mã hóa hoặc đột biến
1.2.3.2 Mã số thực
Đối với những bài toán có nhiều tham số, việc biểu diễn gen bằng chuỗi
số nhị phân đôi lúc sẽ làm cho kiểu gen của cá thể trở nên quá phức tạp Dẫn đến việc thi hành cách thao tác trên gen trở nên kém hiệu quả Khi đó, người ta sẽ chọn biểu diễn kiểu gen dưới dạng một chuỗi số thực Tuy nhiên, chọn biểu diễn kiển gen bằng chuỗi số thực cần lưu ý quy tắc sau :
Quy tắc biểu diễn kiểu gen bằng chuỗi số thực : Biểu diễn kiểu gen bằng
số thực phải đảm bảo tiết kiệm không gian đối với từng thành phần gen
Mục đích chính là để mở rộng không gian tìm kiếm của GA gần với không gian thực của bài toán hơn
Trang 23Trong mã số thực, mỗi nhiễm sắc thể là một chuỗi các các giá trị Các giá trị có thể là bất cứ thứ gì liên quan đến vấn đề đang xét, bao gồm số thực, kí tự
Trong đó A đại diện cho tác vụ riêng, B đại diện cho một cái khác…
Việc mã hóa này rất cần thiết trong việc tạo ra các đột biến và lai tạo cụ thể cho bài toán
1.2.3.3 Mã dạng cây
Mã dạng cây được sử dụng chủ yếu cho các chương trình tiến hóa hoặc các biểu thức Cấu trúc cây thường được dùng trong trường hợp bản thân cấu trúc dữ liệu của bài toán cũng có dạng cây và do đó việc đột biến và lai được thực hiện khá dễ dàng
Trong mã dạng cây, mỗi nhiễm sắc thể là một cây của nhiều đối tượng, chẳng hạn như hàm hoặc lệnh của ngôn ngữ chương trình
Trang 24( + x ( / 5 y ) ) ( do_until step wall)
Bảng 1.2 : mã dạng cây
2.1.2.4.Mã hoán vị
Mã hoán vị được sử dụng trong các bài toán trình tự (ordering problems) như trong bài toán ―Người du lịch‖ (travelling salesman problem), trong đó mỗi nhiễm sắc thể là một chuỗi các số tự nhiên
ví dụ như lựa chọn theo bánh xe rulet (Roulette wheel selection), lựa chọn theo vòng (Tournament selection), lựa chọn xếp hạng (Rank selection) và một vài phương pháp khác Sau đây là một số phương pháp thông dụng
Trang 251.2.4.1.Roulette selection
Hình 1.2 : Quay bánh xe
Nhiễm sắc thể 1 Nhiễm sắc thể 2 Nhiễm sắc thể 3 Nhiễm sắc thể 4
Tính độ thích nghi eval(vi) của mỗi nhiễm sắc thể vi ( i=1, pop-size), với popsize là kích thước của quần thể:
eval(vi)=f(vi)/
1
pop size i
eval(vi) Tìm xác suất tích lũy qi cho nhiễm sắc thể vi:
- Phát sinh một số ngẫu nhiên r trong khoảng [0,1]
- Nếu r<q1 thì chọn nhiễm sắc thể đầu tiên v1, ngược lại chọn nhiễm sắc thể vi sao cho q i-1<r<qi
Trang 26Hiển nhiên sẽ có một số nhiễm sắc thể được chọn nhiều lần Điều này không có gì vô lý bởi vì các nhiễm sắc thể thể tốt nhất có nhiều bản sao hơn, các nhiễm sắc thể trung bình không thay đổi và các nhiễm sắc thể kém nhất thì chết
Phương pháp xác định độ thích nghi xếp hạng sẽ loại bỏ hiện tượng di truyền cục bộ này Phương pháp này không làm việc trên giá trị độ lớn của hàm mục tiêu (object function) mà chỉ làm việc dựa trên thứ tự của các cá thể trên quần thể sau khi sắp xếp cá thể theo giá trị hàm mục tiêu Phương pháp này sẽ xếp hạng quần thể và mỗi nhiễm sắc thể sẽ nhận được độ thích nghi tương ứng với thứ hạng của mình Ví dụ: cá thể xấu nhất có hạng là 1, cá thể tiếp theo xếp hạng 2,…., và cá thể tốt nhất có độ thích nghi là N ( số lượng nhiễm sắc thể) Chính vì vậy mà ta gọi là độ thích nghi xếp hạng
Phương pháp này sẽ cho ta linh động đặt một trọng số để xác định sự tập trung của độ thích nghi lên các cá thể có độ tốt cao, mà vẫn luôn đảm bảo được qui luật : cá thể có độ thích nghi càng cao thì xác suất được tồn tại và di truyền càng cao
Phương pháp này giúp cho tất cả các nhiễm sắc thể có cơ hội được lựa chọn như nhau Tuy nhiên, phương pháp này dẫn đến việc hội tụ chậm hơn vì nhiễm sắc thể tốt nhất không khác biệt là bao so với các nhiễm sắc thể khác
1.2.4.3 Elitism
Phương pháp này là một phương pháp mới Khi tạo ra một quần thể mới bằng lai tạo và đột biến, chúng ta sẽ mất đi những nhiễm sắc thể tốt nhất dù ít hay nhiều Elitism là phương pháp mà đầu tiên chúng ta sẽ sao chép lại những cá
Trang 27thể tốt nhất vào thế hệ kế tiếp, những cái còn lại sẽ được thực hiện theo các cách
pc*popsize Tốc độ lai kiểm soát tần số lai tạo mà ở đó toán tử lai được thực hiện Nếu tốc độ lai nhanh thì số cá thể tạo ra nhanh, nếu quá nhanh có thể những cá thể trội hơn bị đào thải và làm mất đi ý nghĩa của việc lựa chọn ban đầu Tuy nhiên, tốc độ quá chậm sẽ đình trệ việc tìm kiếm do mất đi khả năng thăm dò
1.2.5.1 Lai một vị trí
Với mỗi nhiễm sắc thể trong quần thể
- Phát sinh 1 số ngẫu nhiên r trong khoảng [0,1] Nếu r < pc thìchọn nhiễm sắc thể đó để lai ghép
- Sau đó ghép các nhiễm sắc thể đã được chọn một cách ngẫu nhiên Đối với mỗi cặp nhiễm sắc thể được ghép đôi, lại phát sinh ngẫu nhiên một số nguyên pos trong khoảng [ 0, m ] (m là tổng số bit trong một nhiễm sắc thể) Số pos cho vị trí điểm lai Hai nhiễm sắc thể (b1b2…bpos bpos+1…bm) và (c1c2 cposcpos+1 cm) được thay bằng cặp con của chúng (b1b2…bposcpos+1 cm)
Hình 1.3: Lai một vị trí đối với mã nhị phân
Mã số thực
Trang 28Bảng 1.4: Lai một vị trí đối với mã số thực
Trang 29- Tạo một chuỗi lai giả M có chiều dài bằng chiều dài chuỗi bố, mẹ Các bit được tạo ngẫu nhiên
- Chuỗi con được tạo ra bằng cách lấy từng gen cá thể cha, mẹ Nếu bit thứ i trong chuỗi lai giả M là 0 thì lấy gen tương ứng của cá thể P1, ngược lại lấy gen tương ứng cá thể P2
Hình 1.6: Lai đều
1.2.5.4 Lai số học
Một vài phép toán số học được thực hiện để tạo ra con mới, thường là phép AND
Trang 30Bảng 1.6: Lai số học
1.2.6 Đột biến
Đột biến là một toán tử duy trì sự đa dạng của quần thể Đột biến nhằm tạo ra những thông tin mới trong quần thể lai tạo tại các vị trí bit nào đó trong mỗi nhiễm sắc thể Với xác suất đột biến trong quần thể là pm thì số lượng nhiễm sắc thể bị đột biến sẽ là pm* popsize Mỗi bít trong nhiễm sắc thể có cơ hội đột biến như nhau và được thay đổi từ 0 thành 1 và ngược lại Đối với các
mã khác thì cũng tương tự, các giá trị sẽ đột biến ngẫu nhiên thành một giá trị khác
Đối với mỗi nhiễm sắc thể trong quần thể và mỗi bít trong nhiễm sắc thể:
- Phát sinh một số ngẫu nhiên r trong khoảng [0,1] Nếu r<pm, tiến hành đột biến bit đó
- Trong Gas, đột biến xảy ra với xác suất rất nhỏ, thường nằm trong khoảng 0.001 đến 0.01 Đột biến nhằm loại trừ sự nhầm lẫn do các tối ưu cục
bộ Đột biến phụ thuộc vào việc mã hóa cũng như phép lai Đột biến có thể xảy
ra tại một vị trí hay nhiều vị trí
Bảng 1.7: Đột biến
Để quá trình đột biến có hiệu quả thì xác suất đột biến thường được chọn
tỉ lệ nghịch với kích thước gen Một xác suất đột biến thường sử dụng là 1/N ( N
là kích thước gen) Hơn nữa, xác suất đột biến nên độc lập với kích thước quần thể Nghĩa là số lượng cá thể trong quần thể tăng hay giảm không ảnh hưởng đến khả năng đột biến cá thể trong quần thể
Trang 311.2.6.3 Đột biến đồng dạng
Đột biến này thay thế các giá trị của gen được chọn với giá trị ngẫu nhiên đồng dạng được chọn nằm giữa biên trên và biên dưới Nghĩa là toán tử này chọn một thành phần ngẫu nhiên k= (1,…,q) của vec tơ x= (x1,x2,…,xq) và sản sinh ra x’=(x1,…xk’,….,xq), trong đó xk’ là giá trị ngẫu nhiên (phân bố xác suất đều) trong khoảng <leftk,rightk>
Toán tử này đóng vai trò quan trọng trong những giai đoạn đầu của quá trình tiến hóa khi các lời giải được phép di chuyển tự do trong không gian tìm kiếm Đặc biệt, toán tử cần thiết này cần thiết trong trường hợp quần thể ban đầu gồm nhiều bản sao của cùng một điểm Tình trạng như thế thường xảy ra trong những bài toán tối ưu có ràng buộc mà người sử dụng đặc tả điểm khởi đầu của tiến trình Hơn nữa, điểm khởi đầu duy nhất này có một thuận lợi to lớn: nó cho phép phát triển một tiến trình lặp mà lần lặp kế tiếp bắt đầu tại điểm tốt nhất của
Trang 32lần lặp trước Chính kỹ thuật này đã được dùng trong việc phát triển một hệ thống xử lý các ràng buộc phi tuyến trong những không gian không nhất thiết là lồi sau này Cũng vậy, trong những giai đoạn sau của quá trình tiến hóa, toán tử này cho phép thoát khỏi tối ưu cục bộ để tìm một điểm tốt hơn
1.2.7 Điều kiện dừng
Các vòng lặp của thuật giải sẽ kết thúc khi gặp điều kiện dừng
Các điều kiện dừng có thể như:
• Đạt số vòng lặp tối đa
• Đạt độ thích nghi tối đa
• Quá thời gian thực hiện
• Đạt ngưỡng tài nguyên
1.2.8 Ví dụ
Để dễ hình dung, chúng ta sẽ thảo luận các tính năng chính của thuật giải
di truyền qua 1 ví dụ cụ thể.Ta áp dụng giải thuật di truyền tìm giá trị lớn nhất của một hàm thực một biến
Tối ưu hàm một biến
Xét bài toán tối ưu không ràng buộc sau:
Trang 33Rõ ràng là phương trình trên có vô số lời giải
Cũng chú ý rằng hàm f đạt đến giá trị cực đại (cục bộ) tại điểm xi, khi i là
số nguyên lẻ, và đạt giá trị cực tiểu của nó tại xi, khi i chẵn
Vì miền giá trị của bài toán là [-1,2], hàm đạt cực đại tại x19= 37/20+ 19= 1.85+19, ở đây f(x19) hơi lớn hơn f(1.85)= 1.85* sin(18π+π/2)+1.0=2.85
Bây giờ ta dùng thuật giải di truyền để giải bài toán trên, nghĩa là tìm một điểm trong đoạn [-1,2] sao cho tại đó f có giá trị lớn nhất
Ta sẽ lần lượt bàn về 5 thành phần chính của thuật giải di truyền giải bài toán này
a) Biểu diễn
Ta sử dụng một véc tơ nhị phân làm nhiễm sắc thể để biểu diễn các giá trị thực của biến x Chiều dài vec tơ phụ thuộc vào độ chính xác cần có, trong thí dụ này, ta tính chính xác đến 6 số lẻ
Miền giá trị của x có chiều dài 2-(-1)=3; với yêu cầu về độ chính xác 6 số
lẻ như thế phải chia khoảng [-1,2] thành ít nhất 3x106 khoảng có kích thước bằng nhau Điều này có nghĩa là cần có 22 bit cho vec tơ nhị phân (nhiễm sắc thể)
Trang 34(<b21b20 b0>)2=( 21
0
2i i i
với -1 là cận dưới của miền giá trị và 3 là chiều dài của miền
Thí dụ, nhiễm sắc thể 1000101110110101000111) biểu diễn số 0.637197 vì
x’ =(1000101110110101000111)2=228896710
và x= -1.0+ 2288967x 3/4194303= 0.637197
Đương nhiên nhiễm sắc thể
(0000000000000000000000) và (1111111111111111111111) biểu diễn các cận của miền, -1.0 và 2.0 cho mỗi cận
b) Khởi tạo quần thể
Tiến trình khởi tạo rất đơn giản: ta tạo một quần thể các nhiễm sắc thể, trong đó mỗi nhiễm sắc thể là một véc tơ nhị phân 22 bit, tất cả 22 bit của mỗi nhiễm sắc thể đều được khởi tạo ngẫu nhiên
v1=(1000101110110101000111)
v2= (0000001110000000010000)
Trang 35v3’’=(1110100000111111000101)
Nhiễm sắc thể này biểu diễn giá trị x’3=1.721638 và f(x’3)=-0.082257 Điều này
có nghĩa là đột biến cụ thể này làm giảm khá nhiều giá trị của nhiễm sắc thể v3 Bây giờ, nếu gen thứ 10 được chọn để đột biến trong nhiễm sắc thể v3 thì
Trang 36Hai con của kết quả lai là:
Đối với bài toán đặc biệt này, ta đã dùng các tham số sau đây
Kích thước quần thể pop-size =50,
xác suất lai tạo pc=0.25,
xác suất đột biến pm=0.01
Xác suất lai pc= 0.25 nghĩa là cá thể v trong quần thể có 25% cơ hội được chọn
để thực hiện phép lai; còn xác suất đột biến pm=0.01 lại là 1% bit bất kì của 1 cá thể bất kì trong quần thể bị đột biến
f) Các kết quả thử nghiệm
Bảng trình bày một số kết quả hàm mục tiêu f ở một số thế hệ Cột bên trái cho biết thế hệ được xem xét, cột bên phải cho biết giá trị của hàm f nhiễm sắc thể tốt nhất sau 150 thế hệ là:
vmax=(1110011010001000000101) tương ứng với giá trị xmax=1.850773
Đúng như ta mong đợi, xmax=1.85+ , và f(xmax) lớn hơn 2.85 một chút