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

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

72 0 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Lê Ngọc Hà
Người hướng dẫn TS. Vũ Vinh Quang, TS. Bùi Thị Thanh Xuân
Trường học Đại học Thái Nguyên
Chuyên ngành Khoa học máy tính
Thể loại luận văn thạc sĩ
Năm xuất bản 2023
Thành phố Thái Nguyên
Định dạng
Số trang 72
Dung lượng 916,28 KB

Nội dung

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 3

LỜ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 4

Cá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 5

MỤ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 6

Chươ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 8

DANH 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 9

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ì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 10

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

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 *

XD 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: AXb A X; eq =b eq;u lXu b

Trong đó kí hiệu

Trang 13

X 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: AXb A X; eq =b eq;u lXu 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 14

Trong đó:

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 15

Khi đó 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 *

XD 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 16

Bảng 1.1 Giá trị các tham số của bài toán

A1 A2 … Am Giới hạn

Trang 17

Khi đó 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 18

Kí 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 19

Khi đó 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 21

Từ 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 22

Bướ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 23

Bướ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 24

Bướ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 25

Nhậ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 26

tí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 27

Chươ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 28

Nă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 29

Lai 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 32

b 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

xa 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 34

dã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 35

Toá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 36

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

Ngày đăng: 21/03/2024, 15:32