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

Thuật toán bầy đàn pso giải thuật di truyền và ứng dụng giải các bài toán tối ưu đa mục tiêu

82 15 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

Định dạng
Số trang 82
Dung lượng 1,26 MB

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

Nội dung

LỜI CAM ĐOAN Em xin cam đoan luận văn tốt nghiệp: “Thuật toán bầy đàn PSO, giải thuật di truyền và ứng dụng giải các bài toán tối ưu đa mục tiêu” do em tự thực hiện dưới sự hướng dẫn của

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN QUANG LẬP

THUẬT TOÁN BẦY ĐÀN PSO, GIẢI THUẬT

DI TRUYỀN VÀ ỨNG DỤNG GIẢI CÁC BÀI TOÁN

TỐI ƯU ĐA MỤC TIÊU Chuyên ngành: Khoa học máy tính

Trang 2

Dựa trên sự chỉ bảo tận tình của TS Vũ Vinh Quang dựa trên những kiến

thức đã học và tìm hiểu được, em đã hoàn thành luận văn theo đúng thời gian quy định Tuy nhiên trong quá trình thiết kế và thực hiện luận văn không tránh khỏi sai sót, do thời gian có hạn và khả năng còn hạn chế Em mong quý thầy cô và các bạn thông cảm và có những ý kiến quý báu nhằm hoàn thiện hơn cho sản phẩm

Em xin chân thành cảm ơn!

Thái nguyên, ngày 15 tháng 9 năm 2013

Học viên

Nguyễn Quang Lập

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan luận văn tốt nghiệp: “Thuật toán bầy đàn PSO, giải thuật di truyền và ứng dụng giải các bài toán tối ưu đa mục tiêu” do em tự thực hiện dưới sự hướng dẫn của thầy giáo Vũ Vinh Quang Các kết quả và số liệu hoàn toàn trung thực

Ngoài các tài liệu tham khảo đã dẫn ra ở cuối luận văn em đảm bảo rằng không sao chép các công trình hay luận văn tốt nghiệp của người khác Nếu phát hiện có sự sai phạm với điều cam đoan trên, em xin hoàn toàn chịu trách nhiệm

Trang 4

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC CÁC BẢNG v

DANH MỤC CÁC HÌNH VẼ vi

MỞ ĐẦU 1

CHƯƠNG 1: MÔ HÌNH BÀI TOÁN TỐI ƯU 3

1.1 Mô hình bài toán tối ưu hóa 3

1.1.1 Mô hình tổng quát 3

1.1.2 Phân loại bài toán tối ưu 4

1.2 Bài toán quy hoạch tuyến tính 4

1.3 Bài toán tối ưu đa mục tiêu 6

1.3.1 Phương pháp ràng buộc 6

1.3.2 Phương pháp tổng trọng số 8

1.3.3 Phương pháp nhượng bộ dần 8

1.3.4 Phương pháp thoả hiệp 9

1.3.5 Phương pháp tìm nghiệm có khoảng cách nhỏ nhất đến nghiệm lý tưởng 9

1.3.6 Phương pháp giải theo dãy mục tiêu đã được sắp 9

1.3.7 Phương pháp từng bước của Benayoun 10

1.3.8 Phương pháp trọng số 11

CHƯƠNG 2: CƠ SỞ THUẬT TOÁN DI TRUYỀN 13

2.1 Các khái niệm cơ bản 14

2.1.1 Cá thể, nhiễm sắc thể 14

2.1.2 Quần thể 14

2.1.3 Chọn lọc (Selection) 14

2.1.4 Lai ghép (Cross-over) 15

2.1.5 Đột biến (Mutation) 15

2.1.6 Mô hình GA 15

Trang 5

2.1.7 Các tham số của GA 16

2.2 Cơ chế thực hiện GA 17

2.2.1 Mã hóa 17

2.2.2 Khởi tạo quần thể ban đầu 18

2.2.3 Xác định hàm thích nghi 19

2.2.4 Cơ chế lựa chọn 19

2.2.5 Các toán tử di truyền 20

2.3 Thuật toán di truyền kinh điển 22

2.3.1 Mã hóa 22

2.3.2 Toán tử chọn lọc 23

2.3.3 Toán tử lai ghép 24

2.3.4 Toán tử đột biến 25

2.3.5 Thuật toán di truyền mã hóa số thực (RCGA) 27

2.4 Thuật toán tối ưu bầy đàn PSO 33

2.4.1 Giới thiệu 33

2.4.2 Khái niệm về bầy đàn thông minh 34

2.4.3 Thuật toán PSO truyền thống 35

2.5 Một số kết quả cải tiến đối với PSO 43

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN GA VÀ PSO CHO CÁC BÀI TOÁN THỰC TẾ 56

3.1 Đặt vấn đề 56

3.2 Mô hình bài toán thức ăn gia súc 58

3.2.1 Yêu cầu của bài toán 58

3.2.2 Dữ liệu đầu vào của bài toán 58

3.3 Bài toán thực tế 61

KẾT LUẬN 68

TÀI LIỆU THAM KHẢO 69

PHỤ LỤC 70

Trang 6

DANH MỤC CÁC BẢNG

Bảng 2.1: Phân tích kết quả một vài bài toán tối ưu thông dụng 53

Bảng 2.2: Kích thước quần thể và miền giá trị khởi tạo cho các bài toán tối ưu 53

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

Bảng 3.2 Tiêu chuẩn dinh dưỡng 61

Bảng 3.3 Tỉ lệ chất dinh dưỡng trong các loại nguyên liệu 61

Bảng 3.4: Nghiệm của bài toán với một số bộ dữ liệu 63

Bảng 3.5: Nghiệm của bài toán với một số bộ dữ liệu 66

Trang 7

DANH MỤC CÁC HÌNH VẼ

Hình 2.1: Sơ đồ mô tả GA 15

Hình 2.2: Lai ghép CMX 30

Hình 2.3: Phân bố của ci j x 31

Hình 2.4: Toán tử lai ghép SX 32

Hình 2.5: Mô tả cách thức tìm kiếm thức ăn của bầy kiến 34

Hình 2.6: Mô tả cách thức tìm đường của đàn chim 35

Hình 2.7: Bầy đàn với 10 cá thể trong không gian tìm kiếm 2 chiều 36

Hình 2.8: Quan hệ vị trí – vận tốc trong không gian 2 chiều 37

Hình 2.9: Một bầy đàn toàn cục và lân cận cục bộ 38

Hình 2.10: Các topology lân cận đơn giản 38

Hình 2.11:Chuyển động của cá thể 42

Hình 2.12: Áp dụng kỹ thuật làm lệch cho hàm (2.13) tại điểm x* 4.60095589 , với λ=1 46

Hình 2.13 Áp dụng kỹ thuật làm lệch cho hàm (2.13) tại điểm x* 4.60095589,với λ=10 46

Hình 2.14:Áp dụng kỹ thuật làm lệch cho hàm (2.13) tại điểm * 4.60095589 x ,với λ=0.1 47

Hình 2.15: Áp dụng kỹ thuật làm lệch cho hàm (2.14) tại điểm * ( ) 2 x , với λ=1 47

Hình 2.16: Áp dụng kỹ thuật làm lệch cho hàm (2.14) tại điểm * 2 x ,với λ=10 48

Hình 2.17: Áp dụng kỹ thuật làm lệch cho hàm (2.14) tại điểm * 2 x , với λ=0.1 48

Hình 2.18: Đồ thị của hàm Levy No.5 trong khối [-2,2]2 50

Hình 2.19: Giai đoạn đầu G(x) của kỹ thuật kéo giãn cho hàm Levy No.5 trong khối [-2,2]2 50

Hình 2.20: Hàm Levy No.5 trong khối [-2,2]2 sau giai đoạn hai H(x) của kỹ thuật kéo giãn 51

Hình 3.1: Kết quả bài toán khi sử dụng thuật toán GA – Test 2 64

Hình 3.2 Kết quả giải bài toán khi sử dụng thuật toán PSO – Test 2 66

Trang 8

MỞ ĐẦU

Trong thực tế, rất nhiều ngành khoa học phải giải quyết các bài toán tối ưu

đa mục tiêu đặc biệt là trong ngành kinh tế Chẳng hạn, người chế tạo sản phẩm thường phải đưa ra phương án sao cho vừa tiết kiệm vật liệu, chi phí sản xuất thấp

và lại muốn giá trị sản phẩm là cao nhất Nghiên cứu giải bài toán tối ưu đa mục tiêu là một vấn đề không đơn giản vì chưa chắc có lời giải thỏa mãn đồng thời các mục tiêu đặt ra (thường là các mục tiêu đối nghịch như ví dụ trên) mà không vi phạm các ràng buộc nào đó Đã có nhiều phương pháp giải bài toán tối ưu đa mục tiêu được đề xuất, việc nghiên cứu phát triển các phương pháp này và ứng dụng chúng để giải quyết các bài toán thực tế là một vấn đề đang được quan tâm

Trong nhiều bài toán tối ưu thực tế, việc trọng tâm là tìm vị trí cực tiểu toàn cục của hàm mục tiêu giá trị thực f: E R, nghĩa là tìm điểm *

x E sao cho

* ( ) ( ),

Tính toán tiến hóa (Evolutionary computation) là kỹ thuật đặc biệt trong số các phương pháp GO Phương pháp này làm việc trên một tập hợp những lời giải tiềm năng, được gọi là quần thể (population) và tìm lời giải tối ưu thông qua việc cộng tác và cạnh tranh giữa các lời giải tiềm năng Thường được sử dụng nhất là các thuật toán di truyền (Genetic Algorithms – GA) và Artificial Life, dựa trên sự tiến hóa tự nhiên và cư xử xã hội Các phương pháp này thường có thể tìm tốt nhất trong các bài toán tối ưu phức tạp với các phương pháp tối ưu truyền thống

Thuật toán tối ưu Particle Swarm Optimization (PSO) được R.C.Eberhat và J.Kennedy đề nghị năm 1995 Từ lúc ra đời đến nay PSO đã được nhiều nhà khoa

Trang 9

học tham gia nghiên cứu, cải tiến và ứng dụng nó để giải nhiều bài toán lý thuyết và thực tế

Đề tài “Thuật toán bầy đàn PSO, giải thuật di truyền và ứng dụng giải các bài toán tối ưu đa mục tiêu” nhằm tìm hiểu khả năng ứng dụng của thuật toán PSO,

GA trong việc giải quyết các bài toán tối ưu đa mục tiêu trong thực tế Với mục đích

đó, đề tài tập trung trình bày về việc giải bài toán tối ưu bằng giải thuật PSO, GA và thực nghiệm về khả năng ứng dụng thực tế của hai thuật toán này

Nội dung đề tài gồm 3 chương:

Chương 1: Mô hình bài toán tối ưu đa mục tiêu

Chương 2: Cơ sở thuật toán di truyền

Chương 3: Ứng dụng thuật toán GA, và PSO cho các bài toán thực tế Trong luận văn, các kết quả thực nghiệm được thực hiện bằng các chương trình viết trên nền Matlab version 7.0

Trang 10

CHƯƠNG 1

MÔ HÌNH BÀI TOÁN TỐI ƯU

Trong chương này, luận văn sẽ trình bày một số kiến thức cơ bản về mô hình tổng quát của bài toán tối ưu hóa, việc phân loại các bài toán tối ưu và một số phương pháp giải bài toán tối ưu đa mục tiêu, các kiến thức của chương này được tham khảo từ các tài liệu [1,2]

1.1 Mô hình bài toán tối ưu hóa

1.1.1 Mô hình tổng quát

Tối ưu hóa là một trong những lĩnh vực quan trọng của toán học có ảnh hưởng đến hầu hết các lĩnh vực khoa học, công nghệ và kinh tế và xã hội Việc tìm giải pháp tối ưu cho một bài toán thực tế nào đó chiếm một vai trò hết sức quan trọng như việc tiến hành lập kế hoạch sản xuất hay thiết kế hệ thống điều khiển các quá trình … Nếu sử dụng các kiến thức trên nền tảng của toán học để giải quyết các bài toán cực trị, người ta sẽ đạt được hiệu quả kinh tế cao Điều này phù hợp với mục đích của các vấn đề đặt ra trong thực tế hiện nay

Bài toán tối ưu tổng quát được phát biểu như sau:

Cực đại hóa (cực tiểu hóa) hàm:

Với các điều kiện:

1 ( ) ,

R Tập các véc tơ X thỏa mãn hệ ràng buộc lập nên một miền D được

Trang 11

gọi là miền phương án (hay miền chấp nhận được), mỗi điểm X D gọi là một phương án Một 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

1.1.2 Phân loại bài toán tối ưu

Dựa trên mô hình tổng quát, người ta thường phân loại lớp các bài toán tối

ưu như sau:

các hàm ràng buộc g X g X g X i( ), j( ), k( ) là tuyến tính

các hàm ràng buộc g i X ,g j X ,g k X là phi tuyến

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 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ị nguyên thì ta có qui hoạch nguyên

Qui hoạch đa mục tiêu: Nếu trên cùng một miền ràng buộc ta xét đồng thời

các hàm mục tiêu khác nhau

Trong các lĩnh vực kinh tế kỹ thuật thì qui hoạch phi tuyến, qui hoạch tuyến tính

là những bài toán thường gặp

1.2 Bài toán quy hoạch tuyến tính

Từ một số các mô hình trong thực tế, ta có mô hình tổng quát cho bài toán quy hoạch tuyến tính như sau:

Xác định các biến x j(j 1, 2, , )n sao cho:

j 1

n j j

Trang 12

ij 2 1 1

Dạng chính tắc:

j 1 ( )

n j j

ij 1

n j j

ij 1

n

x x X

x

,

1 2

m

b b b

b

Trang 13

1.3 Bài toán tối ƣu đa mục tiêu

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

+ F X ( ) được gọi là hàm mục tiêu

+ G X ( ) được gọi là các biểu thức ràng buộc

+ X là phương án của bài toán Tập tất cả các phương án thỏa mãn hệ điều kiện ràng buộc được gọi là miền phương án, phương án thỏa mãn điều kiện để F X ( ) ® Min M ( ax) được gọi là phương án tối ưu

Rõ ràng so đối với bài toán tối ưu 1 mục tiêu, việc tìm nghiệm của bài toán tối ưu nhiều mục tiêu khó khăn hơn rất nhiều và đại đa số, chúng ta không thể xác định được phương án tối ưu thật sự

Sau đây chúng ta sẽ nghiên cứu một số phương pháp giải bài toán tối ưu đa mục tiêu

Trang 14

Ta chuyển bài toán trên về bài toán

Trong đó mục tiêu thứ h được chọn tùy ý để 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 ví dụ như thuật toán đơn hình Thuật toán trên được giải bằng phương pháp xây dựng bảng thỏa hiệp 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 thỏa hiệp

+ Giải lần lượt p 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ứ k là x k = (x1k, ,x n k),k = 1, 2, ,p Sau đó tính giá trị

của p hàm mục tiêu đạt được tại các k

ë û ra r phần bằng nhau Khi đó Lk có thể nhận 1 trong r giá trị sau

Trang 15

( ), 0,1, 2, , 11

Bước 4: Ứng với mỗi giá trị của Lk , ta giải bài toán đơn mục tiêu tương ứng

và mỗi bài toán cho một nghiệm chấp nhận được Trong những nghiệm này ta sẽ chọn nghiệm tối ưu nhất

Bước 1: Giải k bài toán 1 mục tiêu riêng rẽ, sau đó lập bảng thưởng phạt

Bước 2: Căn cứ vào bảng thưởng phạt, với giá trị 0

1

Y , ta buộc Y1 nhượng bộ một lượng DY1và giải bài toán:

Trang 16

1.3.4 Phương pháp thoả hiệp

Bước 1: Giải k bài toán 1 mục tiêu riêng rẽ, giả sử nghiệm tối ưu là

1.3.5 Phương pháp tìm nghiệm có khoảng cách nhỏ nhất đến nghiệm lý tưởng

Phương pháp này giả định có một nghiệm lý tưởng, X1 là tốt hơn X2 nếu khoảng cách từ X1 đến nghiệm lý tưởng nhỏ hơn khoảng cách tương ứng của X2

Định nghĩa: Giả sử X1, X2 Î Rn, khoảng cách giữa X1 và X2 là số d axác định bởi

1 2

d a = å X - X a alà tham số a>1 Khi đó bài toán M ax( ( )) Y X với X Î D đưa về bài toán

min å Y X i( )- Y i a

Vấn đề xác định tham số a phụ thuộc vào từng bài toán

1.3.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

Trang 17

Bước 2: Giải bài toán Max( ( ))Y X2 với 1

1.3.7 Phương pháp từng bước của Benayoun

Phương pháp này gần giống phương pháp tìm nghiệm xấp xỉ nghiệm lý tưởng Thường có hai biến dạng sau:

- Các độ lệch tương đối của hàm mục tiêu được gắn với một bộ trọng số Trọng số này được xác định dựa trên khoảng biến động của từng mục tiêu

- Miền chấp nhận được của nó có thể thay đổi qua các bước giải

Hàm lợi ích và các quan hệ xác định như phương pháp tìm nghiệm xấp xỉ nghiệm lý tưởng

Bài toán cơ bản mà phương pháp này xét là:

* ( )

j j

Trang 18

Bước 3: Tính

1 1

i

Bước 4: Giả sử nghiệm của bài toán thứ i là X i ( ) và i £ k - 1

Xét các trường hợp:

1) Nếu chấp nhận X i ( ) thì kết thúc

2) Nếu không chấp nhận X i ( ) và i £ k - 1 thì chuyển Bước 5

3) Nếu không chấp nhận X i ( ) và i = k thì tìm phương án giải khác

Bước 5: Phân tích kết quả và tìm ra mục tiêu i* có thể nhượng bộ, cho nhượng bộ một lượng *

Trang 19

Về mặt thực tiễn, có thể xem các trọng số pi là tỷ lệ quy đổi thứ nguyên của

mục tiêu thứ i Chẳng hạn quy đổi tất cả các mục tiêu về dạng tiền tệ thì pi biểu

hiện cho số đơn vị tiền tệ của mục tiêu thứ i Đây cũng là phương pháp quy đa mục

tiêu về một mục tiêu phụ thuộc tham số

Kết luận: Nội dung chương 1 đã trình bày một số kiến thức cơ bản về mô

hình của bài toán tối ưu tổng quát, mô hình của bài toán tối ưu đa mục tiêu cùng một số phương pháp giải Các kiến thức này là cơ sở để trình bày các kết quả trong chương 2 và chương 3 của luận văn

Trang 20

CHƯƠNG 2

CƠ SỞ THUẬT TOÁN DI TRUYỀN

Trong chương 2, luận văn sẽ trình bày các kiến thức cơ bản về lĩnh vực tính toán mềm bao gồm thuật toán di truyền (GA) và thuật toán bầy đàn (PSO) giải các bài toán đa mục tiêu Các kiến thức về các thuật toán này được tham khảo từ các tài liệu [3, 4, 5, 6, 7, 8, 9, 10]

Mở đầu

Trong công nghệ thông tin, GA là một thành phần của Tính toán tiến hóa (Evolutionary computation – EC), 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

GA cũng như 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 21

Sự hình thành và phát triển của GA trên thế giới có thể được điểm qua các mốc thời gian quan trọng như sau:

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 Cuốn sách "Adaption in Natural and Artificial Systems" (Sự thích nghi trong các hệ tự nhiên và nhân tạo) đã tổng hợp các kết quả của quá trình nghiên cứu và phát triể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”

Ngày nay GA càng trở nên quan trọng, đặc biệt là trong lĩnh vực tối ưu hoá, một lĩnh vực có nhiều bài toán thú vị, được ứng dụng nhiều trong thực tiễn nhưng thường khó và chưa có giải thuật hiệu quả để giải

2.1 Các khái niệm cơ bản

2.1.2 Quần thể

Quần thể là một tập hợp các cá thể có cùng một số đặc điểm nào đấy Trong

GA ta quan niệm quần thể là một tập các lời giải của một bài toán

2.1.3 Chọn lọc (Selection)

Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm thay đổi các cá thể trong quần thể Những cá thể tốt, thích nghi được với điều kiện sống thì có khả năng đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản Các cá thể không thích

Trang 22

nghi được với điều kiện sống thì dần mất đi Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong GA chính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn

2.1.4 Lai ghép (Cross-over)

Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế

hệ con Trong GA, lai ghép được coi là một sự tổ hợp lại các tính chất (thành phần) trong hai lời giải cha mẹ nào đó để sinh ra một lời giải mới mà có đặc tính mong muốn là tốt hơn thế hệ cha mẹ Đây là một quá trình xảy ra chủ yếu trong GA

2.1.5 Đột biến (Mutation)

Đột biến là một sự biến đổi tại một (hay một số) gen của NST ban đầu để tạo

ra một NST mới Đột biến có xác suất xảy ra thấp hơn lai ghép Đột biến có thể tạo

ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu Tuy nhiên trong GA thì ta luôn muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế hệ

2.1.6 Mô hình GA

Với các khái niệm được giới thiệu ở trên, GA được mô tả bởi sơ đồ sau đây

Nhận các tham số của bài toán

Khởi tạo quần thể ban đầu Tính giá trị thích nghi

Sinh sản

Lai ghép

Đột biến

Điều kiện dừng

Kết thúc

Bắt đầu

Lựa chọn giải pháp tốt nhất

Hình 2.1: Sơ đồ mô tả GA

Trang 23

1 Xác lập các tham số ban đầu của bài toán

2 Khởi tạo: Sinh ngẫu nhiên một quần thể gồm n cá thể (là n lời giải ban

đầu của bài toán)

3 Xác lập quần thể mới: tạo quần thể mới bằng cách lặp lại các bước sau

cho đến khi quần thể mới hoàn thành, bao gồm:

3.1 Tính độ thích nghi của mỗi cá thể

3.2 Kiểm tra điều kiện kết thúc giải thuật

3.3 Chọn lọc các cá thể bố mẹ từ quần thể cũ theo độ thích nghi của chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)

3.4 Tiến hành lai ghép các cặp bố-mẹ với một xác suất lai ghép được chọn để tạo ra một cá thể mới

3.5 Tiến hành đột biến với xác suất đột biến được chọn xác định cá thể đột biến

4 Kiểm tra điều kiện dừng: Nếu điều kiện được thỏa mãn thì thuật toán kết

thúc và trả về lời giải tốt nhất chính là quần thể hiện tại

2.1.7 Các tham số của GA

1 Kích thước quần thể

Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thể (trong một thế hệ) Qua các nghiên cứu cũng như các thử nghiệm đã cho thấy kích thước quần thể không nên quá bé cũng như không quá lớn Nếu có quá ít cá thể thì ít có khả năng thực hiện lai giống và chỉ một phần nhỏ không gian tìm kiếm được dùng Như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt Nhưng quá nhiều cá thể cũng không tốt vì GA sẽ chạy chậm đi, ảnh hưởng đến hiệu quả của giải thuật Các nghiên cứu cũng đã chỉ ra không có lợi khi tăng kích thước quần thể lên quá một giới hạn cho phép

2 Xác suất lai ghép

Xác suất lai ghép cho biết việc lai ghép tạo ra thế hệ mới được thực hiện

thường xuyên như thế nào Nếu xác suất lai ghép là p c, khi đó khả năng để một cá

thể được lai ghép là p c Nếu không thực hiện lai ghép, con sinh ra sẽ giống hoàn toàn bố mẹ Nếu được lai ghép, con sinh ra sẽ có một phần giống bố và một phần giống mẹ

Trang 24

3 Xác suất đột biến

Xác suất đột biến cho biết các gen của NST thay đổi thường xuyên như thế

nào Nếu xác suất đột biến là p m, khi đó khả năng để mỗi gen của một NST bất kỳ bị

đột biến là p m Toán tử đột biến có tác dụng ngăn ngừa GA rơi vào tình trạng cực trị địa phương, tuy nhiên nếu thực hiện đột biến với xác suất quá cao sẽ biến GA thành giải thuật tìm kiếm ngẫu nhiên

Nhận xét:

Xuất phát từ sơ đồ thực hiện GA, chúng ta có thể có một số nhận xét như sau: + GA lập luận mang tính chất ngẫu nhiên để tìm giải pháp tối ưu cho những vấn đề phức tạp, thay vì xác định như toán học giải tích Tuy nhiên đây là hình thức ngẫu nhiên có hướng dẫn bởi trị số thích nghi Chính hàm thích nghi giúp GA tìm giải pháp tối ưu trong rất nhiều giải pháp có thể có

+ GA không để ý đến chi tiết vấn đề, trái lại chỉ chú ý đến giải pháp cho vấn đề, hay tìm điều kiện tối ưu cho việc điều hành và phân nhóm những giải pháp có được

+ GA được sử dụng đặc biệt cho những bài toán yêu cầu tìm kiếm tối ưu toàn cục với không gian tìm kiếm lớn và không thể kiểm soát nhờ khả năng duyệt qua không gian tìm kiếm đại diện mà không thực sự đi qua từng điểm của toàn bộ không gian

2.2 Cơ chế thực hiện GA

2.2.1 Mã hóa

Để có thể thực hiện GA, vấn đề đầu tiên là xuất phát từ bài toán thực tế, ta cần phải mô tả các phương án của bài toán dưới một dạng nào đó (mô hình toán học, tin học, …) Vấn đề mô tả đó được gọi là các phương pháp mã hóa Thông thường người ta sử dụng một trong các phương pháp như sau:

+ Mã hoá nhị phân

Mã hoá nhị phân là phương pháp mã hoá NST phổ biến nhất Trong mã hoá nhị phân, mỗi NST là một chuỗi nhị phân, mỗi bit trong nó có thể biểu diễn một đặc tính của nghiệm

Trang 25

Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biến hay nhiều biến Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một tập giá trị của các biến Ngoài ra nó còn được áp dụng trong nhiều loại bài toán khác

Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo ra không gian mã hoá lớn hơn so với không gian giá trị của NST Do đó, với nhiều bài toán thì biểu diễn nhị phân là không hữu hiệu

+ Mã hoá hoán vị

Trong mã hoá hoán vị, mỗi NST là một chuỗi các số biểu diễn một thứ tự sắp xếp Mã hoá hoán vị phù hợp cho các bài toán liên quan đến thứ tự Đối với các bài toán này, việc thao tác trên các NST chính là hoán vị các số trong chuỗi đó làm thay đổi thứ tự của nó Mã hoá hoán vị có thể được sử dụng trong các bài toán liên quan đến thứ tự như bài toán du lịch hay bài toán lập lịch

+ Mã hoá số thực

Mã hoá trực tiếp theo giá trị có thể được dùng trong các bài toán sử dụng giá trị phức tạp như trong số thực Trong đó, mỗi NST là một chuỗi các giá trị Các giá trị có thể là bất cứ cái gì liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn

Mã hoá số thực thường dùng cho các bài toán đặc biệt Trong cách mã hoá này ta thường phải phát triển các toán tử đột biến và lai ghép cho phù hợp với từng bài toán Thông thường mỗi NST được mã hóa là một véc tơ trong không gian Cách mã hóa này thường sử dụng đối với các bài toán tối ưu số và được phát triển mạnh trong giai đoạn hiện nay

+ Mã hóa dạng cây

Phương pháp này được sử dụng trong các biểu thức toán học Mỗi NST là một cây của một nhóm đối tượng nào đó

2.2.2 Khởi tạo quần thể ban đầu

Khởi tạo quần thể ban đầu là bước đầu tiên trong GA Thông thường để khởi tạo quần thể trong bài toán tối ưu, ta tạo ra một cách ngẫu nhiên các lời giải có thể (thường là các lời giải thỏa mãn ràng buộc của bài toán nhưng chưa biết là đại

Trang 26

lượng cần tối ưu đã là tối ưu hay chưa) Tuỳ vào từng bài toán cụ thể mà ta có các phương pháp khởi tạo khác nhau Chất lượng của quần thể ban đầu càng cao thì lời giải mà GA đưa ra càng tốt

2.2.3 Xác định hàm thích nghi

Theo các nghiên cứu và các thử nghiệm của nhiều nhà nghiên cứu về GA thì hàm tính độ thích nghi là một trong hai yếu tố quan trọng nhất quyết định sự thành công hay thất bại của GA Hàm thích nghi được xây dựng sao cho giá trị thích nghi phải phản ánh được giá trị thực của NST trong việc đáp ứng yêu cầu của bài toán

2.2.4 Cơ chế lựa chọn

Cơ chế lựa chọn được áp dụng khi chọn các cá thể từ quần thể P (t)để thực hiện việc lai ghép và đột biến, tạo ra quần thể P (t 1) Có nhiều cách để lựa chọn các cá thể từ một quần thể Sau đây sẽ giới thiệu một số cơ chế hay áp dụng

Ta sử dụng các kí hiệu như sau:

- Kí hiệu NST thứ iv i

- Hàm tính độ thích nghi của NST v if(v i)

- Kích thước quần thể là pop_size()

- Số NST cần chọn là N

+ Cơ chế lựa chọn theo bánh xe Roulette

Bước 1: Tính tổng độ thích nghi của cả quần thể:

_

1( )

pop size

i i

p i ( i)

Bước 3: Tính vị trí xác suất q i của mỗi NST:

i

j i

q

1Bước 4: Sử dụng cơ chế lựa chọn theo bánh xe Roulette được thực hiện bằng

cách quay bánh xe Roulette N lần Mỗi lần chọn một NST từ quần thể hiện hành

vào quần thể mới theo nguyên tắc:

- Phát sinh ngẫu nhiên một số r trong khoảng [0,1]

Trang 27

- Nếu r q1 thì chọn NST v1; ngược lại thì chọn NST thứ i (2 i pop_size) sao cho q i-1 r q i

Với cơ chế lựa chọn như thế này thì có một số nhiếm sắc thể sẽ được chọn

nhiều lần Điều này phù hợp với lý thuyết lược đồ: các NST tốt nhất thì có nhiều bản sao, NST trung bình thì không đổi , NST kém thì chết đi

+ Cơ chế lựa chọn xếp hạng

Cơ chế lựa chọn xếp hạng được mô tả như sau:

Bước 1: Sắp xếp các NST trong quần thể theo độ thích nghi từ thấp đến cao Bước 2: Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: NST thứ nhất có độ thích nghi là 1, NST thứ hai có độ thích nghi là 2, v.v., NST thứ

pop_size có độ thích nghi là pop_size

Theo phương pháp này việc một NST được chọn nhiều lần như trong lựa chọn theo kiểu bánh xe Roulette đã giảm đi Nhưng nó có thể dẫn đến sự hội tụ chậm và NST có độ thích nghi cao cũng không khác mấy so với các NST khác

+ Cơ chế lựa chọn theo lấy mẫu ngẫu nhiên

Cơ chế lựa chọn theo mẫu được thực hiện như sau:

Bước 1: Biểu diễn xác suất chọn các NST lên trên một đường thẳng

Bước 2: Đặt N điểm chọn lên đường thẳng Các điểm chọn này cách nhau

Các toán tử di truyền của GA là toán tử lai ghép và đột biến Đây là hai toán

tử có tác động lớn đến chất lượng của giải thuật Các toán tử này được xây dựng phụ thuộc vào cách mã hoá các NST Ở đây chỉ đưa ra toán tử lai ghép và đột biến trên một số cách mã hoá NST để chỉ ra được ý tưởng xây dựng toán tử lai ghép và

Trang 28

đột biến trong GA Còn tuỳ thuộc vào các bài toán cụ thể và cách mã hoá NST mà

ta xây dựng hai loại toán tử này

Toán tử lai ghép

+ Lai ghép đơn điểm:

- Một điểm cắt được chọn tại một vị trí thứ k trên NST

- Từ đầu NST đến vị trí thứ k, NST con sao chép từ cha, phần còn lại sao

chép từ mẹ

Với NST cha: X = 11001010, NST mẹ Y = 11101001

Con sinh ra do lai ghép đơn (điểm cắt k=4):

Con : 1100 | 1001

+ Lai ghép hai điểm:

- Hai điểm cắt được chọn

- Từ đầu cho đến điểm cắt thứ nhất được sao chép từ cha, từ điểm cắt thứ nhất đến điểm cắt thứ hai sao chép từ mẹ và phần còn lại sao chép từ cha

- Xây dựng NST mới: Duyệt qua mặt nạ, bit có giá trị 1 thì sao chép gen tại

vị trí đó từ NST cha sang con, bit có giá trị 0 thì sao chép từ mẹ Ví dụ xét

Trang 29

Phép đảo bit : Bit được chọn sẽ bị đảo (Bit được chọn có gạch chân)

Nếu trước đột biến : 11011001

Sử dụng véc tơ nhị phân có độ dài L như một NST để biểu diễn giá trị của

biến x [l x,u x] (độ dài L của NST phụ thuộc vào yêu cầu cụ thể của bài toán) Một

bit mã hóa x ứng với một giá trị trong khoảng [0, 2L] sẽ được ánh xạ lên giá trị thực thuộc miền [l x,u x]

Tỷ lệ co giãn của ánh xạ: u x L l x

g

2Giá trị x tương ứng với chuỗi NST nhị phân là:

g NST decimal l

Decimal(NST) là giá trị thập phân của chuỗi NST nhị phân

Để khởi tạo quần thể chỉ cần tạo pop-size (kích cỡ quần thể) NST ngẫu nhiên

theo từng bit Tiếp theo, lượng giá từng NST (tính giá trị hàm f trên các chuỗi biến

nhị phân đã được giải mã), chọn quần thể mới thỏa mãn phân bố xác suất dựa trên

độ thích nghi và thực hiện các phép đột biến và lai tạo để tạo các cá thể thế hệ mới Sau một số thế hệ, nếu không được cải thiện thêm gì nữa, NST tốt nhất sẽ được xem như lời giải tối ưu (thường là toàn cục) Thông thường sẽ cho dừng thuật giải di

Trang 30

truyền sau một số bước lặp cố định tùy thuộc vào điều kiện về tốc độ hay tài nguyên máy tính

2.3.2 Toán tử chọn lọc

a/ Sử dụng bánh xe Roulette

Có nhiều cách để thực hiện toán tử chọn lọc, chủ yếu theo cách nếu các thể

có độ thích nghi cao hơn thì khả năng được chọn nhiều hơn Tuy nhiên, để đơn giản

và hiệu quả nhất là sử dụng bánh xe Roulette

Mỗi cá thể trong quần thể chiếm một khe có độ rộng tỷ lệ thuận với giá trị phù hợp Độ rộng của khe được tính bằng tỷ lệ % giá trị phù hợp của một cá thể trên tổng giá trị phù hợp toàn quẩn thể

Giả sử f i là độ phù hợp của cá thể thứ i trong quần thể gồm N cá thể Khi

đó, cá thể i sẽ được chọn với xác suất N

i i

i i

f

f p

1

k

j p

1Các bước tiến hành 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

c/ Thủ tục chọn lọc cạnh tranh

Trong thủ tục này cách 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 sẽ được quần thể tạm thời

Trang 31

Giá trị t khi đó gọi là kích cỡ của chọn lọc cạnh tranh Khi t 2 ta có chọn lọc cạnh tranh nhị phân

2.3.3 Toán tử lai ghép

a/ Lai ghép một điểm

Giả sử với hai cá thể cha và mẹ đã được chọn P1, P2:

P1= (1110001010), P2= (0101100111), độ dài L 10 Toán tử này cần sinh ngẫu nhiên một vị trí k (1 k 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ẹ tính từ điểm cắt

Giả sử điểm cắt đã chọn k 8, hai con được sinh ra như sau:

C1= (1110001011), C2= (0101100110) Thủ tục lai ghép một điểm

Procedure lai1diem(k, P1, P2: var C1,C2);

b/ Lai ghép nhiều điểm

Lai ghép nhiều điểm thực hiện tương tự lai ghép một điểm Với hai cá thể cha kmẹ đã chọn P1, P2, toán tử này cần sinh ngẫu nhiên k vị trí i1,i2, ,i k (giả thiết i1 i2 i k) Các điểm cắt chia các cá thể đã chọn thành các đoạn được

Trang 32

đánh số chẵn và lẻ Hai cá thể con được tạo thành bằng cách tráo đổi các gen cha

mẹ tùy theo đoạn chẵn hay đoạn lẻ

Giả sử các điểm cắt đã chọn là: 2,4,6,9

P1= 1001110101, P2= 0100111110

C1= 1000111111, C2= 0101110101

c/ Lai ghép mặt nạ

Với hai cá thể cha mẹ đã chọn P1, P2 và phát sinh một chuỗi nhị phân ngẫu

nhiên cũng có độ dài L gọi là chuỗi mặt nạ

P1= (1110001010), P2= (0101100111), U= (0110011001), độ dài L 10 Các con được tạo ra dựa trên chuỗi mặt nạ này để quyết định lấy thành phần của cá thể cha hay cá thể mẹ dựa trên nguyên tắc:

Gen thứ i của cá thể con C1 được lấy gen thứ i của P1 nếu bit mặt nạ tương

ứng là 1 và lấy gen thứ i của P2 nếu bit mặt nạ là 0 C2 thì ngược lại

C1= (0111101110), C2= (1100000011) Thủ tục lai ghép mặt nạ:

Procedure laimatna(u, P1, P2; var C1, C2);

Trang 33

Toán tử đột biến bao gồm: toán tử đột biến chuẩn, đột biến đều và không đều Thuật toán đột biến:

For i:=1 to m do

If random[0,1] < pm then invert (parent[i]);

Với invert(u) là hàm đảo ngược bit u

Thuật toán GA cổ điển được mô tả một cách tường minh như sau:

Algorithm GA_codien;

Begin

{Khởi tạo quần thể gồm m quần thể}

t:=0;

Creat initial population B0=(b10,b20,…,bm0);

While (stopping condition not fulfilled) do

i

j j

t b f

t b f r

1 :

1 :

),(

),(

) do k : k 1;

k

b, 1: ; End;

{lai ghép 1 điểm}

For i:=1 to m-1 step 2 do

Begin

If random[0,1]<pc then Begin

pos:= random{1, …, n-1};

for k:=pos+1 to n do

Trang 34

begin

;:

];

[:

][

];

[:

1 1

1 1 1

1

aux k

b

k b k b

k b aux

t i

t i it

x

b ( 1, 2, , n), i

Như vậy một quần thể kích cỡ m là một tập véc tơ có m véc tơ trong n

R hay

có thể xem như một ma trận thực cấp (m x n) Cách mã hóa này tự nhiên và thuận

tiện trong việc thực hiện các toán tử tiến hóa

Các toán tử của RCGA

+ Toán tử chọn lọc

Trong RCGA, toán tử chọn lọc vẫn được áp dụng như trong GA kinh điển bao gồm: Chọn lọc tỷ lệ, chọn lọc xếp hạng hoặc chọn lọc cạnh tranh

Trang 35

+ Toán tử lai ghép

RCGA cũng áp dụng các toán tử lai ghép như GA kinh điển bao gồm: lai ghép một điểm, lai ghép nhiều điểm, lai ghép mặt nạ Ngoài ra, do cách mã hóa quần thể, người ta còn nghiên cứu và đề xuất nhiều dạng khác nhau của toán tử lai ghép Phần này sẽ giới thiệu một số dạng toán tử lai ghép thường dùng với giả thiết cặp cá thể cha mẹ chọn để tiến hành lai ghép là:

) , , ( x1 xm

XY (y1, ,y m)

a/ Lai ghép một điểm

Với cặp cha mẹ X, Y là các véc tơ m chiều, toán tử lai ghép một điểm chọn

ngẫu nhiên một vị trí k (1 k m) rồi sinh ra cá thể con theo công thức:

) , , ,

, , ( '

) , , ,

, , ( '

1 1

1 1

m k

k

m k

k

x x

y y

Y

y y

x x X

b/ Lai ghép đa điểm

Chọn ngẫu nhiên k điểm j1, , j k(1 j1 j2 j k m)

Lai ghép đa điểm tạo ra cặp (X’,Y’) bằng cách đánh số các đoạn [j t , j t+1] từ 0 trở đi, sau đó lấy:

i i i

i i i

, ,

, ,

1 1

d/ Lai số học (Arithmetic Crossover)

Chọn một số thực a (0 < a < 1)

Các cá thể con X’ và Y’ được tính bởi:

Trang 36

* ) 1 (

* '

;

* ) 1 (

* '

i i

i

i i

i

x a y

a y

y a x

a x

e/ Lai ghép Heuristic

Với cặp cha mẹ (X,Y) đã chọn, trong đó cá thể X có độ thích nghi tốt hơn cá thể Y thì toán tử này tạo một cá thể con duy nhất X’ từ cặp X,Y được xác định bởi:

i i i

x' *( ) với 0 < r < 1

f/ Lai ghép BLX-α (Blend Crossover)

Với cặp cha mẹ được chọn lai ghép:

) , , ,

, , (

) , , ,

, , (

1 1

1 1

m k

k

m k

k

x x

y y Y

y y

x x X

g/ Lai ghép UNDX (Unimodal Normal Distributed Crossover)

Trong UNDX-m, (m+2) cha mẹ được chọn ngẫu nhiên từ quần thể, trong đó m+1 cá thể đầu được dùng để tính một véc tơ trung bình Cá thể cuối cùng được sử

dụng để định hướng cá thể con sẽ sinh ra

Thuật toán được mô tả như sau:

1) Chọn (m+1) cá thể cha mẹ x 1 , x 2 , … , x m+1 một cách ngẫu nhiên từ quần thể ban đầu

2) Tính véc tơ trung bình của các cá thể đã chọn :

1 1

u

Tính d j x j u 3) Chọn ngẫu nhiên cá thể cha m 2

x từ quần thể 4) Tính độ dài d của d m 2 (x m 2 u) trực giao với d 1 , … , d m+1

5) Lấy một cơ sở trực giao e m+2 , … , e n của không gian con trực giao với

không gian sinh bởi d 1

, … , d m+1

Trang 37

6) Sinh ra các con theo công thức :

n

m j

j j m

i

i i c

de v d

w u

x

2 1

1 1

n

m j

j j m

i

i i c

de v d

w u x

2 1

1 2

trong đó w i và v j là các biến ngẫu nhiên tương ứng với các phân phối chuẩn )

35,0

h/ Lai ghép CMX (Center of Mass Crossover)

Giả sử quần thể đang xét là {X1, , XN} Mỗi cá thể là một véc tơ trong R n

Thuật toán được mô tả như sau:

1) Chọn ngẫu nhiên m cá thể từ quần thể (1 < m < N)

), ,( 1pi n pi

pi

x x

CM vi

X X

Như vậy với m cá thể cha mẹ sẽ sinh được m cá thể con

Mô phỏng lai ghép CMX được biểu diễn bởi hình 2.2

Hình 2.2: Lai ghép CMX

Trang 38

Với cách lai ghép này, các cá thể con sinh ra sẽ phân bố gần với tâm của

“đám đông” các cá thể cha mẹ

i/ Lai ghép MFX (Multi-parent Feature-wise Crossover)

Thuật toán này chọn từ mỗi cá thể cha mẹ một tính chất đặc trưng nào đó rồi thực hiện tiến hoá sử dụng thông tin đặc trưng này

Thuật toán như sau:

1) Chọn ngẫu nhiên m cá thể từ quần thể (1 < m < N)

), ,( 1pi n pi

pi

x x

2) Cá thể con X ci x1ci, ,x n ci) được sinh ra như sau :

Với mỗi j,j 1, ,n , chọn ngẫu nhiên một số tự nhiên k trong khoảng 1, ,m

sao cho k i Sau đó ci

Bằng cách trên, nếu cố định một cá thể cha (X pi)sẽ sinh được một cá thể con )

(X ci tương ứng mà mỗi thành phần của véc tơ được kế thừa một thông tin đặc trưng nào đó của cá thể cha (X pi)với một cá thể mẹ (X pk)

j/ Lai ghép SX (Seed Crossover)

Thuật toán này thực hiện lai ghép đôi một cá thể, cá thể con sinh ra lại tiếp tục lai ghép với cá thể cha mẹ có độ thích nghi tăng dần

Thuật toán được trình bày như sau:

1) Chọn ngẫu nhiên m cá thể từ quần thể (1 < m < N)

), ,( 1pi n pi

pi

x x

Trang 39

Trong đó Blx(X,Y) là toán tử lai ghép 2 cha mẹ dạng BLX-

Như vậy với cách này, tại mỗi bước lặp, cá thể tạo được có khả năng kế thừa những đặc trưng của cá thể cha mẹ với độ thích nghi tăng dần Toán tử này chỉ sinh

c/ Đột biến không đều

Giả sử tmax là một số cực đại được định nghĩa trước Thành phần x i được thay thế bởi một trong hai giá trị theo công thức sau:

) ,

( ''

) ,

( '

i i i

i

i i i

i

a x t x

x

x b t x

*),

Con Cha mẹ

Trang 40

- thường là số ngẫu nhiên phân bố đều trong khoảng đơn vị

- tham số xác định ảnh hưởng của lần tạo sinh thứ t trên phân bố của đột biến trong miền [ x 0 , ]

2.4 Thuật toán tối ƣu bầy đàn PSO

2.4.1 Giới thiệu

Thuật toán tối ưu hóa bầy đàn (Particle Swarm Optimization – PSO) là một thuật toán nhằm giải quyết các bài toán tối ưu hóa trên một mô hình quần thể thông minh hay bầy đàn thông minh (Swarm Intelligence – SI) Thuật toán PSO được giới thiệu lần đầu tiên bởi Kennedy và Eberhat vào năm 1995 [4] Các tác giả đã phát triển các phương pháp đơn giản nhưng hiệu quả trong vấn đề tối ưu hóa các hàm mục tiêu dạng phi tuyến liên tục và đã áp dụng thành công để giải nhiều bài toán cực trị hàm số và một số bài toán tối ưu đa mục tiêu khác Thuật toán được xuất phát từ ý tưởng quan sát các quần thể sinh học trong tự nhiên, dựa trên các quan hệ, các ứng xử của các cá thể trong bầy đàn, cách thức tổ chức và hoạt động của quần thể từ đó đưa ra lời giải tối ưu nhanh nhất Có thể hình tượng thuật toán PSO mô phỏng phương pháp của cả bầy đàn như đàn chim, đàn cá đi tìm kiếm thức ăn trong

tự nhiên dựa trên các thông tin được xác định từ những thông tin đã được thông báo trước của các cá thể trong bầy đàn

PSO là một thuật toán nằm trong lớp các thuật toán tính tiến hóa (Evolution Computation – EC), tuy nhiên PSO cũng có một vài điểm khác so với các thuật toán khác Giống như nhiều kỹ thuật tiến hóa khác, PSO cũng khởi tạo quần thể ban đầu bằng phương pháp phân bố ngẫu nhiên Tuy nhiên, PSO khác ở chỗ trong quá trình tiến hóa, thuật toán dựa trên việc đánh giá và lựa chọn các phương án bằng các thông tin về kinh nghiệm của từng cá thể và của cả bầy đàn Việc lựa chọn này sẽ tốt hơn so với việc sử dụng các phương pháp tiến hóa thông thường (phép lai ghép

và đột biện trong giải thuật di truyền …) của GA truyền thống

Trong những năm gần đây, với ưu điểm nổi trội, thuật toán PSO đã được phát triển nhanh chóng, xuất hiện rất nhiều các kết quả nghiên cứu trong việc cải tiến các tham số, các kết quả thu được đã được chứng minh trong các hàm kiểm tra

Ngày đăng: 23/03/2021, 22:14

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Kennedy, J.; Eberhart, R.C. “Particle Swarm Optimization”. Proceedings of IEEE International Conference on Neural Networks (1995) Sách, tạp chí
Tiêu đề: Particle Swarm Optimization”." Proceedings of IEEE International Conference on Neural Networks
[1] Nguyễn Đức Nghĩa, Tối ưu hóa (Quy hoạch tuyến tính và rời rạc), NXB Giáo dục, Hà Nội 1999 Khác
[2] Bùi Thế Tâm, Trần Vũ Thiệu, Các phương pháp tối ưu hóa. NXB Giao thông vận tải, Hà Nội 1998 Khác
[3] Nguyễn Đình Thúc (2001), Trí tuệ nhân tạo, Lập trình tiến hoá, NXB Giáo dục thành phố Hồ chí Minh.Tài liệu tiếng Anh Khác
[5] K.E. Parsopoulos, M.N. Vrahatis (2010), Parameter Selection in Particle Swarm Optimization Khác
[6] K. Deb (1998), Non-linear Goal Programming Using Multi-Objective Genetic Algorithms, Tẹcnical Report, No. CI-60/98 Khác
[7] David, A.Coley (1995), An Instroduction to Genetic Algorithm Khác
[8] Charbonneau, Paul (1995), Genetic algorithms in astronomy and astrophysics, The Astrophysical Jornal Supplement Series, vol 101, pp. 309-334 Khác
[9] Goldberg, D.E. (1989), Genetic algorithms in search, optimization and machine learning, Addison-Wesley, Reading, MA Khác
[10] Marco Dorigo and Thomas Stutzle (2004), Ant Conoly optimization, A Bradford Mook, The MIT Press, cambridge, Massachusetts, London, England Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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