MỞ ĐẦU Lý thuyết về tối ưu hóa là một lĩnh vực có nhiều ứng dụng trong thực tế, trong đó mô hình bài toán tối ưu đa mục tiêu là một mô hình được các nhà nghiên cứu rất quan tâm do mô hìn
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÊ NGỌC HÀ
TÍNH TOÁN TIẾN HÓA VÀ ỨNG DỤNG
ĐỐI VỚI MÔ HÌNH TỐI ƯU ĐA MỤC TIÊU
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LÊ NGỌC HÀ
TÍNH TOÁN TIẾN HÓA VÀ ỨNG DỤNG
ĐỐI VỚI MÔ HÌNH TỐI ƯU ĐA MỤC TIÊU
Ngành: Khoa học máy tính
Mã số: 8 48 0101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Vũ Vinh Quang
TS Bùi Thị Thanh Xuân
Thái Nguyên - 2023
Trang 3LỜI CAM ĐOAN
Tên tôi là Lê Ngọc Hà, học viên lớp cao học K20A-Khoa học máy tính – Trường đại học Công nghệ thông tin và Truyền thông Thái Nguyên
Tôi xin cam đoan đề tài “Tính toán tiến hóa và ứng dụng đối với mô hình tối ưu đa mục tiêu” do Thầy Cô TS Vũ Vinh Quang và TS Bùi Thị Thanh Xuân hướng dẫn, là công trình nghiên cứu do bản than tôi thực hiện, dựa trên sự hướng dẫn của Thầy Cô hướng dẫn khoa học và các tài liệu tham khảo đã trích dẫn
Tôi xin chịu trách nhiệm với lời cam đoan của mình
Học viên
Lê Ngọc Hà
Thái Nguyên, ngày tháng 8 năm 2023
Trang 4Các thầy, cô giáo trong khoa Công nghệ thông tin, trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái nguyên đã tạo điều kiện về thời gian, địa điểm nghiên cứu, phương tiện vật chất cho tác giả
Tôi xin bày tỏ lời cảm ơn chân thành đến tất cả những sự giúp đỡ quý báu đó
Thái Nguyên, ngày tháng 8 năm 2023
Học viên
Lê Ngọc Hà
Trang 5MỤC LỤC
LỜI CAM ĐOAN……….……….…… 2
LỜI CẢM ƠN……… ……3
MỤC LỤC……… …….4
DANH MỤC CÁC TỪ VIẾT TẮT……….6
DANH MỤC CÁC BẢNG BIỂU……….….…… 7
DANH MỤC CÁC HÌNH VẼ……….…………7
Phần mở đầu………8
Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU 9
1.1 Mô hình bài toán tối ưu 1 tiêu……… 9
1.2 Mô hình bài toán tối ưu đa mục tiêu……… 13
1.3 Một số mô hình tối ưu đa mục tiêu trong thực tế……….… 14
1.4 Một số phương pháp đưa về bài toán một mục tiêu……… ………….……….18
Kết luận ……… ……….……….………24
Chương 2 CÁC KIẾN THỨC CƠ BẢN VỀ TÍNH TOÁN TIẾN HÓA……….….….…26
2.2 Đặt vấn đề……… ……….……….26
2.2 Các vấn đề cơ bản của giải thuật di truyền……… 27
2.3 Giải thuật di truyền kinh điển……… 31
2.4 Giải thuật di truyền mã hóa số thực RCGA……… ………….………… 39
2.5 Một số mô hình tiến hóa……….………….………44
2.6 Một số biến thể của GA……….……… 45
Kết luận……….……….………49
Trang 6Chương 3 ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TỐI ƯU MÔ HÌNH BÀO CHẾ
THUỐC VIÊN NÉN……….50
3.1 Tổng quan về bệnh đái tháo đường và một số loại thuốc……… ……….50
3.2 Mô hình bào chế thuốc viên nén phóng thích kéo dài……… 52
3.3 Đề xuất mô hình tối ưu hóa………57
Kết luận………67
Tài liệu tham khảo……….……….……… 68
Phụ lục……….……….69
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Giá trị các tham số của bài toán……… …… 14
Bảng 2.1 Nghiệm tối ưu theo các lần chạy……… … … 36
Bảng 2.2: Nghiệm tối ưu theo các lần chạy……….38
Bảng 3.1 Tiêu chuẩn quy định ……… …….….52
Bảng 3.2 Tỉ lệ thành phần các nguyên liệu……… ……… 53
Bảng 3.3: Thành phần công thức CT1-CT6 ……… ………… 54
Bảng 3.4 Độ hòa tan CT1-CT6……… ……….….54
Bảng 3.5: Thành phần công thức CT7-CT12……….… 55
Bảng 3.6 Độ hòa tan CT7-CT12……….……….55
Bảng 3.7 Tiêu chuẩn tổng quát……… 56
Bảng 3.8 Tiêu chuẩn các nguyên liệu……… 56
Bảng 3.9 Giá nguyên liệu và lượng lưu kho……… … 57
Bảng 3.10: Thành phần nguyên liệu……….………… 62
Bảng 3.11: Tiêu chuẩn theo quy định……….……….62
Bảng 3.10 Giá thuốc và lượng sản phẩm tối ưu……… 63
DANH MỤC CÁC HÌNH VẼ Hình 3.1 So sánh thành phần nguyên liệu……… … 63
Hình 3.2 So sánh tiêu chuẩn các công thức……… ……… 64
Trang 9MỞ ĐẦU
Lý thuyết về tối ưu hóa là một lĩnh vực có nhiều ứng dụng trong thực tế, trong đó mô hình bài toán tối ưu đa mục tiêu là một mô hình được các nhà nghiên cứu rất quan tâm do mô hình rất phù hợp và có tính ứng dụng cao trong các bài toán trong các lĩnh vực kinh doanh, sản xuất, tài chính và điều khiển kinh tế học
Đã có rất nhiều công trình đề xuất các thuật toán giải quyết mô hình này như các phương pháp tối ưu toàn cục, tính toán tiến hóa, học máy…Một trong những hướng nghiên cứu quan trọng hiện nay đang được ứng dụng rộng rãi là sử dụng các công cụ tính toán mềm giải quyết mô hình trong đó việc sử dụng giải thuật di truyền giải quyết mô hình tối ưu đa mục tiêu là một hướng nghiên cứu đang được quan tâm do tính hiệu quả, mềm dẻo của giải thuật
Luận văn đề xuất việc tìm hiểu mô hình của bài toán tối ưu đa mục tiêu, các phương pháp cơ bản về toán học giải quyết mô hình Nghiên cứu cơ chế của các thuật toán tính toán tiến hóa giải quyết mô hình tối ưu và ứng dụng vào giải quyết một số bài toán sản xuất trong lĩnh vực dược liệu Các mô hình tối ưu và số liệu được tham khảo tại viện Hóa sinh biển thuộc Viện Hàn lâm Khoa học và Công nghệ Việt Nam
Nội dung của luận văn dự kiến gồm có 3 chương, phần phụ lục được cấu trúc như sau:
Chương 1 trình bày một số kiến thức cơ bản bao gồm mô hình tổng quát của bài toán tối ưu đa mục tiêu, một số mô hình tối ưu đa mục tiêu trong thực tế, một số phương pháp giải bài toán tối ưu đa mục tiêu
Chương 2: trình bày các kiến thức về tính toán mềm, các thuật toán cơ bản về giải thuật GA, PSO, ACO Một số ứng dụng
Chương 3: Trình bày mô hình bài toán sản xuất dược liệu và lời giải bài toán dựa trên giải thuật di truyền Các kết quả thực nghiệm
Phần phụ lục đưa ra một số chương trình nguồn trên môi trường Matlab
Trang 10Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN
VỀ BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU
Nội dung chính của chương 1 trình bày mô hình tổng quát của bài toán tối ưu hóa, phân loại bài toán Mô hình bài toán tối ưu đa mục tiêu và một số mô hình trong thực tế Một số phương pháp đưa bài toán đa mục tiêu về bài toán một mục tiêu Các kiến thức
được tham khảo trong các tài liệu [1][2][3]
1.1Mô hình bài toán tối ưu 1 tiêu [1][2]
Trong thực tế, chúng ta thường gặp các bài toán cần xác định một giá trị nào đó đạt cực đại hoặc cực tiếu trong đó các biến phụ thuộc vào một số các ràng buộc nào đó Các bài toán này thường xuất hiện trong các lĩnh vực kinh tế thương mại, lý thuyết hệ thống, công nghệ thông tin Các bài toán đó thường được gọi là các bài toán tối ưu Sau đây chúng ta sẽ nghiên cứu mô hình tổng quát của bài toán này
1.1.1 Mô hình tổng quát
Ta xét biến số X =( ,x x1 2, ,x n) và một hàm f = f X( ) là ánh xạ từ không gian n chiều
vào không gian 1 chiều Bài toán đặt ra là tìm giá trị X* để sao cho
*( ) ax(min)
Khi đó bài toán được gọi là bài toán tối ưu, trong đó
+ Hàm f X được gọi là hàm mục tiêu của bài toán ( )
+ Các điều kiện (1.2) được gọi là ràng buộc đẳng thức, điều kiện (1.3) được gọi là ràng buộc bất đẳng thức Các điều kiện (1.4) được gọi là ràng buộc về dấu
Trang 11+ Một vecto X =( ,x x1 2, ,x n) thỏa mãn hệ ràng buộc (1.2)-(1.4) được gọi là một phương án của bài toán Tập các vector X thỏa mãn hệ ràng buộc lập nên một miền D
được gọi là miền phương án
+ Phương án *
X D làm cho hàm mục tiêu ( ) đạt max (min) được gọi là phương
án tối ưu
Một số tính chất của bài toán tối ưu:
+ Bài toán max luôn chuyển về bài toán min bằng cách đổi dấu hàm mục tiêu
+ Dạng ràng buộc bất đẳng thức luôn chuyển về dạng đẳng thức bằng cách bổ sung thêm các biến phụ
+ Một biến không ràng buộc dấu được thay thế bằng 2 biến có ràng buộc dấu
1.1.2 Phân loại bài toán tối ưu
Xuất phát từ mô hình tổng quát, tùy thuộc vào dạng của hàm mục tiêu, dạng các ràng buộc hoặc tính chất nghiệm của từng bài toán, người ta thường phân loại lớp các bài toán tối ưu như sau:
• Qui hoạch tuyến tính: là những bài toán mà hàm mục tiêu ( )và tất cả các hàm ràng buộc g X g X g X i( ), j( ), k( ) là tuyến tính
• Qui hoạch phi tuyến: là những bài toán một trong hàm mục tiêu ( ) hoặc các hàm ràng buộc g X i( ) ( ) ( ),g j X ,g k X là phi tuyến
• Qui hoạch lồi: Là các bài toán qui hoạch mà các hàm mục tiêu ( ) là lồi trên tập các ràng buộc D lồi
• Qui hoạch lõm: Là các bài toán qui hoạch mà các hàm mục tiêu ( ) là lõm trên tập các ràng buộc D hoặc tập D là tập lõm
• Qui hoạch rời rạc: Bài toán tối ưu được gọi là qui hoạch rời rạc nếu miền ràng
buộc D là tập hợp rời rạc Trong trường hợp riêng khi các biến chỉ nhận giá trị
Trang 12Để nghiên cứu việc tìm nghiệm tối ưu của bài toán quy hoạch tuyến tính, đã có rất nhiều thuật toán được đề xuất như thuật toán đơn hình nổi tiếng của tác giả Danzic, thuật toán đơn hình cải biên, thuật toán phân phối Các thuật toán này đã được phát triển thành các phần mềm giải trực tiếp trên công cụ máy tinh
Đối với các bài toán tối ưu hóa phi tuyến, dựa trên cơ sở toán học cùng với một số điều kiện về tính trơn của hàm mục tiêu và tính lồi của miền phương án cũng đã có nhiều thuật toán đã được đề xuất như: Thuật toán gradient, thuật toán newton, thuật toán Powell, thuật toán Neldel_Mead, Thuật toán Frank_wolfe, Thuật toán Carroll, Thuật toán Fiacco và Cormick, Thuật toán Pietrzykowki
Có thể thấy rằng mỗi thuật toán sẽ có những ưu điểm và nhược điểm riêng Tốc độ
hội tụ tùy thuộc vào dáng điệu của hàm mục tiêu Ngoài ra trong tất cả các thuật toán đã
trình bày ở trên, chúng ta đều thấy rằng hàm f(X) phải tồn tại đạo hàm và hiển nhiên chúng ta phải xác định được gradient của f(X) tại mỗi bước lặp Chính vì vậy, người ta
thường gọi các thuật toán trên là các thuật toán sử dụng đạo hàm Tuy nhiên trong thực tế chính điều đó sẽ hạn chế lớp các bài toán trong ứng dụng và đặc biệt là số liệu trong thực
tế chủ yếu là các số liệu thực nghiệm tức là không xác định hàm số dạng tường minh Vì vậy hiện nay người ta thường phát triển các thuật toán trong đó không cần sử dụng đạo hàm của hàm mục tiêu Một trong những hướng đó là sử dụng kỹ thuật tính toán mềm để giải quyết bài toán tối ưu phi tuyến
1.1.3 Một số modun giải bài toán tối ưu trên môi trường Matlab
Dạng 1 : Bài toán quy hoạch tuyến tính
Bài toán Quy hoạch tuyến tính có dạng tổng quát:
Hàm mục tiêu: f =C X T →min
Hệ ràng buộc: AX b A X; eq =b eq;u l X u b
Trong đó kí hiệu
Trang 13X fval exitflag output linprog C A b Aeq beq lb ub
X fval exitflag output prog C A b Aeq beq
=
Trong đó:
Lệnh linprog để lấy các nghiệm không âm
Lệnh intprog để lấy các nghiệm nguyên có giá trị 1 hoặc 0
Trong dấu là các đại lượng cần tính: X-giá trị tối ưu của nghiệm; fval- giá trị min của hàm mục tiêu; Exitflag – số nguyên thông báo kết thúc tính toán Các kết quả tính khi exitflag=1, được coi là thành công tốt đẹp, nghĩa là hàm
số hội tụ về một nghiệm Các kết quả tính tương ứng exitflag 0 được coi là không
thành công với các giải thích tương ứng
Output- cho các thông tin về phép tính đã thực hiện
Dạng 2 : Bài toán tối ưu phi tuyến
Bài toán tối ưu phi tuyến có dạng tổng quát:
Hàm mục tiêu: f X( )→Min
Hệ ràng buộc tuyến tính: AX b A X; eq =b eq;u l X u b
Hệ ràng buộc phi tuyến: C X( );C eq(X)=
Đặt: F X( )=( f X( ),f X( ) ; () G X)=(C X C( ), eq(X))
Khi đó, để tìm nghiệm tối ưu của bài toán, ta sử dụng thủ tục
X fval exitflag output, , , = f mincon(@ ,F X0, , ,A b Aeq beq lb ub, , , ,@G)
Trang 14Trong đó:
Lệnh fmincon để để tìm min của hàm f
X0 là giá trị xuất phát ban đàu của X trong phương pháp lặp
Trong dấu là các đại lượng cần tính: X-giá trị tối ưu của nghiệm; fval- giá trị min của hàm mục tiêu; Exitflag – số nguyên thông báo kết thúc tính toán Các kết quả tính khi exitflag>0, được coi là thành công Các kết quả tính
tương ứng exitflag 0 được coi là không thành công với các giải thích tương ứng
Output- cho các thông tin về phép tính đã thực hiện
Chú ý: các hàm F(X) và G(X) được mô tả là các function tương ứng phải được
xây dựng do người sử dụng bằng ngôn ngữ matlab
1.2 Mô hình bài toán tối ưu đa mục tiêu [3]
Trong các bài toán kinh tế, kỹ thuật, khoa học công nghệ, nảy sinh từ thực tế, chúng ta phải xem xét tối ưu hóa đồng thời nhiều mục tiêu Việc làm tốt hơn mục tiêu này thường dẫn tới việc làm xấu đi một số mục tiêu khác (nghĩa là không có lời giải nào tối ưu theo mọi mục tiêu) Như vậy, chúng ta cần phải tối ưu hóa (cực đại hóa hoặc cực tiểu hóa tùy theo tình huống cụ thể) không phải là chỉ một mục tiêu nào đó, mà là đồng thời tất cả các mục tiêu đã đặt ra thường là không tương thích với nhau
Trang 15Khi đó bài toán được gọi là bài toán tối ưu đa mục tiêu, trong đó
+ Các hàm F X , i=1 k được gọi là các hàm mục tiêu của bài toán i( )
+ Một vecto X =( ,x x1 2, ,x n) thỏa mãn hệ ràng buộc (1.6)-(1.7) được gọi là một phương án của bài toán Tập các vector X thỏa mãn hệ ràng buộc lập nên một miền D
được gọi là miền phương án
+ Phương án *
X D làm cho tất cả các hàm mục tiêu đạt Max được gọi là phương
án tối ưu của bài toán đa mục tiêu
Nhận xét:
+ Khác với bài toán tối ưu 1 mục tiêu, bài toán tối ưu đa mục tiêu khó có thể tồn tại
nghiệm tối ưu theo đúng nghĩa tức là không thể tìm được X* để sao cho tất cả các hàm
mục tiêu đạt max do đó nghiệm chỉ có thể tối ưu theo một nghĩa tương đối nào đó
+ Dễ dàng thấy rằng chúng ta không thể áp dụng các phương pháp tối ưu của bài toán một mục tiêu cho bài toán đa mục tiêu vì tính chất phức tạp của bài toán đa mục tiêu
+ Mô hình bài toán đa mục tiêu là mô hình xuất hiện phổ biến trong tất cả các lĩnh vực do nhu cầu thực tế
1.3 Một số mô hình tối ưu đa mục tiêu trong thực tế [3]
Mô hình 1:
Một công ty dự kiến sản xuất m loại hàng hóa A 1 ,A 2 ,…,A m Vật tư dùng để sản xuất
các loại hàng hóa này là V 1 , V 2 ,…, V n Nhu cầu số lượng mỗi loại vật tư, lợi nhuận thu được và mức thiệt hại cho sự phát triển chung của xã hội của một đơn vị sản phẩm được quy định trong bảng 1.1 (giá trị âm trong mục thiệt hại có nghĩa là làm lợi cho sự phát triển chung) Phải xây dựng phương án sản xuất như thế nào để thu được tổng lợi nhuận lớn nhất và tổng thiệt hại cho sự phát triển chung là nhỏ nhất
Trang 16Bảng 1.1 Giá trị các tham số của bài toán
A1 A2 … Am Giới hạn
Trang 17Khi đó ta có mối quan hệ A = A(P1, P2, …,Pn)
Các ràng buộc cơ bản đối với A và các Pk như sau:
+ Đối với loại nguyên liệu Pk (k =1, 2,…, n)
- Giá thị trường là ak (đ/kg)
- Số lượng trong kho hiện có bk (kg)
- Tỉ lệ các chất dinh dưỡng trong nguyên liệu (theo tiêu chuẩn nhà nước):
Hàm lượng chất 1: C1k Hàm lượng chất 2: C2k
…
Hàm lượng chất m: dm Hãy xác định công thức thức ăn η để sao cho đảm bảo tiêu chuẩn và giá là rẻ nhất
Mô hình toán học
Kí hiệu lượng nguyên liệu Pk trong một đơn vị thức ăn là xk (k = 1, 2,…,n) Khi đó bài
Trang 18Kí hiệu F x x2( , , , )1 2 x là số lượng đơn vị thức ăn được sản xuất tùy thuộc vào các giá n
trị x x1, , ,2 x n Khi đó xuất phát từ bài toán thực tế, ta cần có thêm điều kiện số lượng sản xuất không vượt quá lượng trong kho tức là:
2 1
( , , )( , , )
( , , )
n n
Như vậy ta nhận được bài toán 2 mục tiêu với yêu cầu đảm bảo chất lượng theo quy định sao cho giá là rẻ nhất và số lượng là nhiều nhất
+ Trong mô hình trên, nếu chúng ta xét đến giá phải trả trong quá trình sản xuất tức
là đối với các nguyên liệu P k, đưa vào thêm một tham số là e k là công chế biến nguyên liệu tương ứng Khi đó yêu cầu cần lên phương án sản xuất sao cho tổng công chế biến là nhỏ nhất Khi đó ta có hàm công chế biến là:
3( ) 2( , , )1 n 1 1 2 2 n n min
Trang 19Khi đó ta nhận được mô hình bài toán tối ưu với 3 hàm mục tiêu
1.4 Một số phương pháp đưa về bài toán một mục tiêu [3]
Xét mô hình tổng quát của bài toán đa mục tiêu
toán để từ đó đạt đến tối ưu nhiều mục tiêu
Phương pháp thực hiện như sau:
Từ bài toán gốc (1.8), chúng ta chuyển bài toán về bài toán
Trong đó mục tiêu thứ h được chọn để lấy Max
Như vậy bài toán đa mục tiêu đã được chuyển về bài toán đơn mục tiêu và có thể áp dụng các thuật toán thông thường Thuật toán trên được giải bằng phương pháp xây dựng bảng ràng buộc các hàm mục tiêu và từ đó xác định phương án tối ưu
Thuật toán:
Bước 1: Xây dựng bảng ràng buộc
Trang 20+ Giải lần lượt k các bài toán đơn mục tiêu tương ứng với các ràng buộc Gọi nghiệm của mục tiêu thứ i là i 1i, , i , 1,2, ,
k
x x x i k Sau đó tính giá trị của k hàm
mục tiêu đạt được tại các x i tương ứng Kí hiệu là 1( ), ( ), , ( )1i 2 2i i
Bước 2: Quy ước một bài toán đa mục tiêu tương ứng với bài toán một mục tiêu
Bước 3: Chọn giá trị L i với i h trong đoạn m M i, i bằng cách chia đoạn m M i, i ra
r phần bằng nhau Khi đó L i có thể nhận 1 trong r giá trị sau
Nhận xét: Kết quả của phương pháp này hoàn toàn phụ thuộc vào việc chọn hàm
mục tiêu Fh(X) nào là mục tiêu ưu tiên Thông thường tùy theo mục đích tối ưu của bài
toán mà ta sẽ chọn được mục tiêu quan trọng nhất
1.4.2 Phương pháp tổng trọng số
Tư tưởng: Gán cho mỗi hàm mục tiêu một tầm quan trọng khác nhau để từ đó đưa bài
toán đa mục tiêu về bài toán một mục tiêu
Trang 21Từ bài toán gốc, ta chuyển về bài toán
i k Các giá trị trọng số Wi sẽ đặc trưng cho
tầm quan trọng của hàm mục tiêu F i (X) đối với bài toán
Khi đó bài toán (1.10) trở thành bài toán tối ưu một mục tiêu, lời giải nhận được từ các phương pháp đã biết
Ví dụ 1: Xét bài toán tối ưu, tìm X để
Tư tưởng: Do không thể đạt được nghiệm tối ưu, do đó các hàm mục tiêu sẽ thực hiện
nhượng bộ nhau thông qua bảng thưởng phạt để đạt đến trạng thái gần tối ưu Phương pháp thực hiện theo các bước sau đây:
Bước 1: Giải k bài toán một mục tiêu riêng rẽ, sau đó lập bảng thưởng phạt
Trang 22Bước 2: Căn cứ vào bảng thưởng phạt, với giá trị F10 là nghiệm của bài toán đầu tiên
F là giá trị tối ưu của bài toán này, chuyển sang bước 3
Bước 3: Căn cứ vào 0
Nghiệm của bài toán cuối cùng này được lấy làm nghiệm của bài toán ban đầu
Nhận xét: Trong phương pháp này, nghiệm sẽ hoàn toàn phụ thuộc vào các giá trị trong bảng thưởng phạt Thông thường bảng thưởng phạt được xây dựng tùy theo mô hình và ý nghĩa thực tế của bài toán ban đầu, các giá trị của bảng chính là các giá trị nhượng bộ F i trong đó nếu F i nhận giá trị (+) có nghĩa là thưởng còn nhận giá trị (-)
có nghĩa là phạt Nghiệm của bài toán nhận được luôn là nghiệm gần tối ưu do tất cả các hàm mục tiêu đều chấp nhận nhượng bộ nhau
1.4.4 Phương pháp thoả hiệp
Tư tưởng: Để đạt được nghiệm tối ưu chung, các hàm mục tiêu sẽ chấp nhận thỏa hiệu
theo nghĩa cùng chấp nhận một tỉ lệ độ lệch chung giữa nghiệm đúng và nghiệm gần đúng, từ đó đưa về bài toán tối ưu một mục tiêu với hàm mục tiêu là giá trị tỉ lệ
Phương pháp được thực hiện như sau:
Trang 23Bước 1: Giải k bài toán một mục tiêu riêng rẽ, giả sử nghiệm tối ưu là X ii*( 1, 2, ) k Đặt Mi F Xi( i*) và đưa vào biến phụ W:
( )
W
i i i
từ đó tìm được nghiệm tối ưu Xopt và wopt
Về mặt ý nghĩa, lợi ích sẽ tỷ lệ với độ lệch tương đối tức là phương án X1 là tốt hơn X2
nếu độ lệch tương đối chung của X1 nhỏ hơn của X2 Khi đó nghiệm Xopt chính là nghiệm tối ưu của bài toán đa mục tiêu
Nhận xét: Phương pháp này theo tư tưởng của phương pháp bình phương cực tiểu, nghiệm thu được thường đạt độ tối ưu không cao hay nói cách khác là sai số tương đối lớn
Trang 24Bước 1: Giải lần lượt từng bài toán một mục tiêu riêng biệt để xác định các nghiệm lý
Nghiệm của bài toán chính là nghiệm tối ưu của bài toán ban đầu
Ví dụ 2: Xét bài toán tối ưu, tìm X để
Ta nhận được giá trị tối ưu F1*=2.3633 đạt tại điểm (0; 1.3320);
+ Giải bài toán tối ưu đối với hàm mục tiêu F2
Ta nhận được F2*= 54.2715 đạt tại điểm (1.9960; 0.0020);
Bước 2: Giải bài toán tối ưu
Trang 25Nhận xét: Phương pháp này đạt độ đồng đều cao theo nghĩa nghiệm thu được là chấp nhận được với mọi hàm mục tiêu
1.4.6 Phương pháp giải theo dãy mục tiêu đã được sắp
Trong phương pháp này, thứ tự của các hàm mục tiêu thể hiện sự quan trọng của các tiêu chuẩn, các mục tiêu xếp trước được ưu tiên hơn Phương pháp được thực hiện theo các bước sau:
Trang 26tính trơn của nghiệm và tính lồi của miền phương án D và đa số nghiệm thu được của bài
toán chỉ là nghiệm cực tiểu địa phương
Các phương pháp tìm nghiệm tối ưu toàn cục của bài toán đa mục tiêu bằng lý thuyế t tính toán mềm sẽ được đưa ra trong chương 2 của luận văn
Trang 27Chương 2 CÁC KIẾN THỨC CƠ BẢN VỀ TÍNH TOÁN TIẾN HÓA
Nội dung chính của chương 2 sẽ trình bày các kiến thức cơ bản về thuật toán di truyền nói riêng và kĩ thuật tính toán tiến hóa nói chung áp dụng để tìm nghiệm tối ưu toàn cục của bài toán tối ưu Các kiến thức được tham khảo từ các tài liệu [6][7][8][9]
2.1 Đặt vấn đề
Trong công nghệ thông tin, Tính toán tiến hóa (Evolutionary computation – EC) là một lĩnh vực được coi là có tốc độ phát triển nhanh của trí tuệ nhân tạo Có thể chia EC thành 5 hướng nghiên cứu như sau:
- GA (Genetic Algorithm - GA): Dựa vào quá trình di truyền trong tự nhiên để cải
tiến lời giải qua các thế hệ bắt nguồn từ một tập các lời giải ban đầu
- Quy hoạch tiến hoá (Evolutionary Programming - EP): Dựa vào quy luật tiến
hoá, tìm phương pháp kết hợp đủ khả năng giải quyết trọn vẹn một bài toán từ một lớp các phương pháp giải quyết được một số phần của bài toán
- Các chiến lược tiến hoá (Evolutionary Strategies - ES): Dựa trên một số chiến
lược ban đầu, tiến hoá để tạo ra những chiến lược mới phù hợp với môi trường thực tế một cách tốt nhất
- Lập trình di truyền (Genetic Programming - GP): Mở rộng GA trong lĩnh vực
các chương trình của máy tính Mục đích của nó là để sinh ra một cách tự động các chương trình máy tính giải quyết một cách tối ưu một vấn đề cụ thể
- Các hệ thống phân loại (Classifier Systems- CS): Các GA đặc biệt được dùng
trong việc học máy và việc phát hiện các quy tắc trong các hệ dựa trên các quy tắc Các thuật toán tiến hoá đều được hình thành dựa trên một quan niệm được coi là
một tiên đề phù hợp với thực tế khách quan Đó là quan niệm "Quá trình tiến hoá 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 " Quá trình
tiến hoá thể hiện tính tối ưu ở chỗ thế hệ sau bao giờ cũng tốt hơn thế hệ trước
Trang 28Năm 1960, ý tưởng đầu tiên về Tính toán tiến hoá được Rechenberg giới thiệu
trong công trình “Evolution Strategies” (Các chiến lược tiến hoá) Ý tưởng này sau đó được nhiều nhà nghiên cứu phát triển
Năm 1975, Giải thuật gen do John Holland phát minh và được phát triển bởi ông
cùng với các đồng nghiệp và những sinh viên
Năm 1992, John Koza đã dùng GA để xây dựng các chương trình giải quyết một số
bài toán và gọi phương pháp này là “lập trình gen”
Có thể thấy tính toán tiến hóa là một kỹ thuật thiết kế thuật toán để tìm kiếm, chọn lựa các giải pháp tối ưu để giải quyết các bài toán thực tế khác nhau, dựa trên cơ chế chọn lọc của tự nhiên: từ tập lời giải ban đầu, thông qua nhiều bước tiến hoá, hình thành tập lời giải mới phù hợp hơn, và cuối cùng dẫn đến lời giải tối ưu toàn cục
Trong kỹ thuật này, mỗi cá thể biểu diễn một lời giải có thể của bài toán Một xử lý tiến hoá duyệt trên tập các cá thể tương đương với việc tìm kiếm lời giải trong không gian lời giải của bài toán Quá trình tìm kiếm phải đạt được hai mục tiêu:
+ Khai thác những lời giải tốt nhất
+ Xem xét trên toàn bộ không gian tìm kiếm
2.2 Các vấn đề cơ bản của giải thuật di truyền [6]
Thuật toán GA (Genetic Algorithms) do John Holland đề xuất là một trong những thuật toán cơ bản nhất của tính toán tiến hóa Thuật toán được mô tả bởi thủ tục sau đây:
Trang 29Lai tạo các cá thể đã chọn tạo ra P(t) mới;
Đột biến các cá thể trong P(t) theo xác suất p m ; Đánh giá độ phù hợp các cá thể trong tập P(t);
Until (thoả điều kiện dừng)
End;
Tư tưởng chính của giải thuật là: tại lần lặp thứ t, GA xác định một tập hợp các lời
giải có thể gọi là quần thể P(t) = { xt 1,,x t 2, ,x t n } Mỗi lời giải x t được đánh giá nhằm xác định độ phù hợp của nó Sau đó một tập hợp các lời giải được hình thành nhờ sự lựa chọn các lời giải phù hợp hơn Một số phần tử của tập hợp này được tái sản xuất thông qua lai
ghép và đột biến Từ đó hình thành quần thể mới P(t+1) với hy vọng chứa các cá thể phù
hợp hơn quần thể trước đó
+ Toán tử “lai ghép” kết hợp các đặc trưng của cha và mẹ hình thành hai con tương
ứng bằng một cách lai ghép nào đó
+ Toán tử “đột biến” thay đổi một hay một số gen được chọn theo quy tắc thay đổi
ngẫu nhiên với xác suất bằng tỷ lệ đột biến
Như vậy, bản chất GA là một giải thuật lặp, nhằm giải quyết các bài toán tìm kiếm dựa trên cơ chế chọn lọc nhân tạo và sự tiến hoá của các gen Trong quá trình đó, sự sống còn của cá thể phụ thuộc vào hoạt động của các gen và quá trình chọn lọc (tham gia vào việc tái tạo ra các cá thể mới bằng cách giải mã và tạo ra mối liên kết giữa các cá thể khác nhau) GA sử dụng các toán tử: chọn lọc, lai ghép, đột biến trên các cá thể để tạo ra chuỗi mới Cơ chế của GA đơn giản nhưng lại có sức mạnh hơn các giải thuật thông thường khác nhờ có sự đánh giá và chọn lọc sau mỗi bước thực hiện Do vậy khả nă ng tiến gần đến lời giải tối ưu của GA sẽ nhanh hơn nhiều so với các giải thuật khác
Có thể nói GA khác với những giải thuật tối ưu thông thường ở những đặc điểm sau:
+ GA làm việc với tập các biến chứ không phải bản thân biến
Trang 30+ GA thực hiện tìm kiếm trên một quần thể các cá thể chứ không phải trên một điểm nên giảm bớt khả năng kết thúc tại một điểm tối ưu cục bộ mà không thấy tối ưu toàn cục
+ GA chỉ cần sử dụng thông tin của hàm mục tiêu để phục vụ tìm kiếm chứ không đòi hỏi các thông tin hỗ trợ khác
+ Các thao tác cơ bản trong giải thuật dựa trên khả năng tích hợp ngẫu nhiên, mang tính xác suất chứ không tiền định
Sau đây chúng ta nghiên cứu chi tiết các bước thực hiện trong GA
2.2.1 Mã hoá
Việc mô tả lời giải cho bài toán gồm hai phần cơ bản:
+ Xây dựng cấu trúc gen cho mỗi lời giải của bài toán để từ mỗi lời giải ta có thể
mã hoá thành một cá thể (chuỗi các gen)
+ Giải mã các cá thể để nhận được lời giải
Đây là vấn đề cần giải quyết trước khi giải bài toán với GA Tuỳ thuộc vào nội dung của mỗi bài toán mà ta có cách mã hoá khác nhau
Sau đây là các phương pháp mã hoá hay được sử dụng:
• Mã hoá dạng chuỗi nhị phân: đây là phương pháp thông dụng và cơ bản nhất
được sử dụng ngay từ bước ban đầu khi nghiên cứu GA Trong phương pháp này mỗi cá thể được mô tả là một chuỗi nhị phân
• Mã hoá thứ tự: được sử dụng trong bài toán có sắp xếp thứ tự Ở đây mỗi cá thể
được mô tả là một chuỗi các số nguyên thể hiện thứ tự phân bố lời giải của bài toán (thường là một hoán vị của n phần tử)
• Mã hoá theo giá trị: được sử dụng trong các bài toán mà mỗi lời giải là tập các giá
trị (ví dụ tập số thực) Trong phương pháp này, mỗi cá thể là một chuỗi các giá trị có mối quan hệ tương ứng với bài toán
Trang 31• Mã hoá dạng cây: được sử dụng chủ yếu trong các biểu thức toán học, trong
phương pháp mã hoá này mỗi NST là một cây của một nhóm đối tượng nào đó
• Mã hoá số thực: Mỗi cá thể được mã hoá là một véc tơ trong không gian R m
chẳng hạn X = (a 1 , a 2 , , a m ) với các a i R Cách mã hoá này thường tự nhiên đối với các bài toán tối ưu số và được phát triển rất mạnh trong thời gian gần đây
2.2.2 Khởi tạo quần thể ban đầu
+ Tập lời giải ban đầu thường được khởi tạo ngẫu nhiên từ miền xác định của các lời giải Cách tạo lập tập lời giải ban đầu phụ thuộc rất nhiều vào cách mã hoá
+ Với phương pháp mã hoá nhị phân: khởi tạo quần thể ban đầu bằng cách khởi tạo ngẫu nhiên các dãy nhị phân độ dài n
+ Với phương pháp mã hoá thứ tự: khởi tạo quần thể ban đầu bằng cách bằng cách hoán vị ngẫu nhiên các số tự nhiên đầu tiên
+ Với phương pháp mã hoá theo giá trị: tạo ngẫu nhiên từng giá trị trong miền xác định của lời giải
+ Với mã hoá số thực: tạo ngẫu nhiên N véc tơ thực trong R m
2.2.3 Xây dựng hàm phù hợp
Hàm phù hợp đánh giá khả năng phù hợp của tập lời giải theo yêu cầu bài toán Hàm này được xây dựng cho từng bài toán với yêu cầu cụ thể Thông thường trong các bài toán tối ưu hàm này chính là các hàm mục tiêu của bài toán
2.2.4 Các toán tử di truyền
a Toán tử chọn lọc
Trong quá trình thực hiện của giải thuật di truyền, sau mỗi lần tiến hoá ta chỉ giữ lại các cá thể có độ phù hợp cao còn các cá thể phù hợp thấp bị loại bỏ Toán tử chọn lọc thường giữ lại 50% các cá thể phù hợp nhất Tuy nhiên người ta cũng phát triển nhiều sơ
đồ chọn khác nhau nhằm là tăng tính đa dạng của quần thể, tránh sự hội tụ sớm
Trang 32b Toán tử lai ghép
Bước 1: Tạo ra tập cá thể để tạo sinh từ quần thể bằng cách chọn ngẫu nhiên N cá
thể bố mẹ từ M phần tử (M là kích cỡ quần thể) Có nhiều phương pháp chọn tuy nhiên phương pháp điển hình nhất là họn ngẫu nhiên theo thứ tự: lặp N lần việc tạo ngẫu nhiên
ra một số nguyên i thuộc khoảng [1, M] để chọn cá thể bố mẹ thứ i
Bước 2: Sau khi chọn được N cá thể bổ mẹ, lần lượt lấy ra từng cặp bố mẹ để lai
ghép để tạo ra hai cá thể con Một số dạng toán tử lai ghép hay dùng là:
+ Lai ghép 1 điểm: chọn ngẫu nhiên một vị trí sau đó hoán vị phần đứng sau vị trí
vừa chọn giữa hai cha và mẹ để nhận được hai con
+ Lai ghép hai điểm: chọn ngẫu nhiên hai vị trí trong một cá thể, sau đó hoán vị
các giá trị đứng giữa hai điểm đã chọn của cha mẹ để nhận được hai con
+ Lai ghép mặt nạ: tạo một mặt nạ ngẫu nhiên có số bit bằng chiều dài của cá thể
Ta sẽ hoán vị các giá trị của cha và mẹ ở những vị trí tương ứng với vị trí bit 1 của mặt
nạ để nhận được 2 con
c Toán tử đột biến: Toán tử đột biến được xây dựng để tránh việc nhận được giá trị
tối ưu cục bộ Đột biến gây ra thay đổi ngẫu nhiên trên từng bit của cá thể để tạo ra một
• Phương pháp biểu diễn số thực thành dãy nhị phân: Giả sử x[a, ]b là một
số thực bất kì, ta sẽ tìm cách biểu diễn x thành một dãy nhị phân với độ chính xác 10-k(Giữ lại k số thập phân sau dấu phẩy) Gọi m là số nguyên nhỏ nhất thỏa mãn (b− a) 10k 2m − Khi đó x sẽ được biểu diễn dưới dạng dãy số nhị phân S có độ dài 1
m Giá trị m được xác định bằng thủ tục:
Trang 33• Phương pháp xác định giá trị thực x từ dãy nhị phân:
Giả sử x đã được biểu diễn bằng chuỗi nhị phân S, để giải mã chuỗi nhị phân
S=(sm-1, sm-2, ,s0) thành giá trị thực x trong khoảng [a, b] ta thực hiện các bước sau:
Bước 1: Chuyển chuỗi nhị phân S sang cơ số thập phân x’: 1
0
' ( )2 ;
m
i i
Chú ý: Khi độ chính xác k và khoảng [a,b] thay đổi thì hiển nhiên độ dài m sẽ thay đổi,
do đó bài toán cần xác định trước độ chính xác
• Phương pháp mã hóa: Giải thuật di truyền kinh điển sử dụng mã hóa nhị phân
theo nguyên tắc biểu diễn tất cả các giá trị thực của bài toán dưới dạng mã hóa nhị phân với một độ chính xác cho trước Khi đó ta dễ dàng kiểm soát được tính chính xác của bài toán
Ví dụ: Tìm cực tiểu một hàm n biến f R: n → trong đó các biến R.[ , ],i=1,2, ,n
i i i
x a b và (f X) 0 X D.
Giả sử ta muốn tìm min của hàm f với độ chính xác cho trước là k số lẻ đối với giá
Trang 34dãy nhị phân Si có độ dài mi Khi đó tập hợp các dãy nhị phân Si (i=1 n) sẽ lập nên một dãy nhị phân S có độ dài m=m 1 +m 2 +…+m n chính là một mã hóa nhị phân biểu diễn
X=(x 1 ,x 2 , ,x n ) là một lời giải của bài toán
2.3.2 Khởi tạo quần thể ban đầu:
+ Chọn kích thức quần thể ban đầu M=pop_size
+ Khởi tạo ngẫu nhiên M dãy nhị phân độ dài m
2.3.3 Toán tử lai ghép
a Lai ghép một điểm
Lai ghép một điểm được thực hiện rất đơn giản Với hai cá thể cha mẹ đã chọn bo,
me; toán tử này cần sinh ngẫu nhiên một vị trí dk (1<dk<m), sau đó hai cá thể con được
tạo thành bằng cách tráo đổi các gen của cặp cha mẹ tính từ điểm cắt
Toán tử được mô tả bằng hàm trong matlab
function [con1 con2]=lai_ghep_1_diem(bo,me,dk)
m=length(bo);
con1=zeros(1,m);con2=zeros(1,m);
con1(1:dk)=bo(1:dk);con2(1:dk)=me(1:dk);
con1(dk+1:m)=me(dk+1:m);con2(dk+1:m)=bo(dk+1:m);
b Lai ghép nhiều điểm
Lai ghép nhiều điểm được thực hiện tương tự như lai ghép một điểm Với hai cá thể
cha mẹ đã chọn bo, me; toán tử này cần sinh ngẫu nhiên k vị trí 1<dk1<dk2, <m ; Các
điểm cắt này chia các cá thể đã chọn thành các đoạn được đánh số chẵn lẻ; sau đó hai cá thể con được tạo thành bằng cách tráo đổi các gen của cặp cha mẹ tuỳ theo các đoạn chẵn hay lẻ đã nêu Trong lai ghép nhiều điểm thì lai ghép hai điểm cắt được quan tâm nhiều nhất
Toán tử được mô tả bằng hàm trong matlab
function [con1 con2]=lai_ghep_2_diem(bo,me,dk1,dk2)
m=length(bo);con1=zeros(1,m);con2=zeros(1,m);
con1(1:dk1)=bo(1:dk1);con1(dk1+1:dk2)=me(dk1+1:dk2);
con1(dk2+1:m)=bo(dk2+1:m);
Trang 35Toán tử được mô tả bằng hàm trong matlab
function [con1 con2]=lai_ghep_mat_na(bo,me,MA)
Toán tử đột biến làm thay đổi các thông tin của quần thể ở mức bit (gen) Đột biến làm
thay đổi giá trị của một bit bất kỳ theo xác suất pm Mỗi bit đều có cơ hội đột biến như
nhau Thuật toán đột biến thường dùng là:
Toán tử được mô tả bằng hàm trong matlab
Trang 36Các bước tiến hành của thủ tục là:
+ Sắp xếp các chuỗi theo thứ tự giảm dần của hàm mục tiêu (bài toán cực đại) hoặc theo thứ tự tăng dần của hàm mục tiêu (bài toán cực tiểu)
+ Tính độ phù hợp của chuỗi để chọn chuỗi để sao chép sang quần thể tạm thời
b Phương pháp chọn lọc cạnh tranh
Trong phương pháp này chúng ta tiến hành như sau:
+ Chọn t cá thể từ quần thể hiện tại một cách ngẫu nhiên và chọn cá thể tốt nhất trong t cá thể đó để sao chép sang quần thể tạm thời
+ Lặp lại bước trên N lần chúng ta sẽ có quần thể tạm thời
Giá trị t được gọi là kích cỡ của chọn lọc cạnh tranh Khi t = 2 chúng ta chọn lọc cạnh