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

Nghiên cứu giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

53 63 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 53
Dung lượng 1,83 MB

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

Nội dung

DƯƠNG TRUNG NGUYỆN NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN VỚI BIẾN LIÊN TỤC CHO BÀI TOÁN TÌM CỰC TRỊ CỦA HÀM SỐ LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGHỆ AN - 2018... LỜI CAM ĐOAN Tôi xin ca

Trang 1

DƯƠNG TRUNG NGUYỆN

NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN VỚI BIẾN LIÊN TỤC CHO BÀI TOÁN

TÌM CỰC TRỊ CỦA HÀM SỐ

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGHỆ AN - 2018

Trang 2

DƯƠNG TRUNG NGUYỆN

NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN VỚI BIẾN LIÊN TỤC CHO BÀI TOÁN

TÌM CỰC TRỊ CỦA HÀM SỐ

Chuyên ngành: Công nghệ thông tin

Mã số: 60.48.02.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học:

TS HOÀNG HỮU VIỆT

NGHỆ AN - 2018

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những kết quả nghiên cứu được trình bày trong luận văn: “Nghiên cứu giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số”

là hoàn toàn trung thực, không vi phạm luật sở hữu trí tuệ và pháp luật Việt Nam Nội dung tham khảo từ sách, tài liệu khác đều được trích dẫn đầy đủ Nếu sai, tôi hoàn toàn chịu trách nhiệm trước pháp luật

TÁC GIẢ LUẬN VĂN

Dương Trung Nguyện

Trang 4

LỜI CẢM ƠN

Lời đầu tiên tôi xin bày tỏ lòng cảm ơn và biết ơn chân thành nhất của mình tới tất cả những người đã hỗ trợ, giúp đỡ tôi trong quá trình thực hiện luận văn tốt nghiệp

Tôi xin cảm ơn Khoa Công nghệ Thông tin, phòng Sau Đại học cũng như các thầy cô giáo trong khoa đã giúp đỡ, tạo mọi điều kiện thuận lợi nhất,

hỗ trợ, giảng dạy giúp đỡ tôi trong quá trình học tập và làm luận văn tốt nghiệp

Đặc biệt tôi muốn gửi lời cảm ơn chân thành đến TS.Hoàng Hữu Việt, là người

hướng dẫn, nhận xét, giúp đỡ để tôi có thể hoàn thành được luận văn này Tôi xin được gửi lời cảm ơn đến gia đình, bạn b , đ ng nghiệp đã luôn bên cạnh, động viên tôi trong quá trình hoàn thiện luận văn

Nhân đây, tôi xin kính chúc các Thầy, Cô giáo sức khỏe và tiếp tục đạt nhiều thành công trong nghiên cứu khoa học và trong sự nghiệp giảng dạy, chúc Khoa Công nghệ Thông tin ngày một phát triển

Mặc dù đã có nhiều cố gắng nhưng quá trình thực hiện luận văn không thể tránh khỏi thiếu sót, vì vậy tôi rất mong nhận được những ý kiến đóng góp

bổ sung của thầy cô giáo và các bạn để luận văn của tôi được hoàn thiện hơn

Tôi xin chân thành cảm ơn!

Trang 5

MỤC LỤC

Trang

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

DANH MỤC CÁC BẢNG, HÌNH VẼ v

MỞ ĐẦU 1

1 Sự cần thiết của vấn đề nghiên cứu 1

2 Mục tiêu nghiên cứu 1

3 Đối tượng và phạm vi nghiên cứu 2

4 Nội dung nghiên cứu 3

5 Kết cấu của luận văn 3

CHƯƠNG 1 TỔNG QUAN 5

1.1 Bài toán tìm cực trị của hàm số 5

1.2 Cơ sở toán học 6

1.2.1 Các định nghĩa 6

1.2.2 Điều kiện cần và đủ của của điểm cực trị 7

1.3 Tìm kiếm vét cạn cho bài toán tìm cực trị của hàm số 9

1.4 Tìm kiếm cục bộ 12

1.4.1 Thuật toán leo đ i 12

1.4.2 Thuật toán mô phỏng luyện kim (simulated annealing search) 17

1.5 Giải thuật di truyền 19

CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN VỚI BIẾN NHỊ PHÂN 21

2.1 Giới thiệu 21

2.2 Giải thuật di truyền nhị phân 22

2.3 Ví dụ về giải thuật di truyền với biến nhị phân 24

Trang 6

CHƯƠNG 3 GIẢI THUẬT DI TRUYỀN VỚI BIẾN LIÊN TỤC CHO

BÀI TOÁN TÌM CỰC TRỊ HÀM SỐ 30

3.1 Giải thuật di truyền với biến liên tục 30

3.2 Cài đặt giải thuật di truyền cho bài toán tìm cực trị của hàm số 35

3.3 Đánh giá hiệu quả của giải thuật bằng thực nghiệm 42

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 44

1 Kết luận 44

2 Kiến nghị và hướng phát triển 45

TÀI LIỆU THAM KHẢO 46

Trang 7

DANH MỤC CÁC HÌNH VẼ, BẢNG

Trang

Hình:

Hình 1.1 Đ thị của hàm số ( , )f x yxsin(4 )x 1.1 sin(2 )y y 10

Hình 1.2 Đ thị của hàm số và vết đi của thuật toán leo đ i 14

Hình 1.3 Minh họa trường hợp thuật toán dừng ở nghiệm tối ưu địa phương 15

Hình 1.4 Minh họa thuật toán leo đ i đa điểm tìm giá trị lớn nhất hàm số 16

Hình 1.5 Minh họa thuật toán mô phỏng luyện kim 18

Hình 2.1 Sơ đ khối của thuật toán di truyền nhị phân 23

Hình 2.2 Đ thị của hàm số f(x) = -x2/10 + 3x 25

Hình 3.1 Đ thị của hàm số f(x, y) = x.sin(4x) + 1.1y.sin(2y) 31

Hình 3.2 Thống kê giá (cost) trung bình và giá tôt nhất của các thế hệ 34

Hình 3.3 Đ thị của các hàm số 36

Bảng: Bảng 2.1 Khởi tạo quần thể ban đầu 26

Bảng 2.2 Kết quả của thể hệ 2 28

Bảng 3.1 Ví dụ về quẩn thể khởi tạo 32

Bảng 3.4 Kết quả thử nghiệm các thuật toán 40

Trang 8

MỞ ĐẦU

1 Sự cần thiết của vấn đề nghiên cứu

Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho các bài toán là vấn đề được các nhà khoa học máy tính đặc biệt quan tâm Mục đích chính của các thuật toán tìm kiếm lời giải là tìm ra lời giải tối ưu cho bài toán trong thời gian nhỏ nhất

Thuật giải di truyền đã được phát minh ra để bắt chước quá trình phát triển tự nhiên trong điều kiện quy định sẵn của môi trường Các đặc điểm của quá trình này đã thu hút sự chú ý của John Holand (ở đại học Michigan) ngay

từ những năm 1970 Holand tin rằng sự gắn kết thích hợp trong thuật giải máy tính có thể tạo ra một kỹ thuật giúp giải quyết các vấn đề khó khăn giống như trong tự nhiên đã diễn ra thông qua quá trình tiến hóa

Hiện nay có rất nhiều phương pháp giải quyết bài toán tối ưu hàm số, nhưng các phương pháp chỉ dừng lại ở những lớp bài toán với những thông tin rõ ràng Do đó,việc tìm ra một phương pháp mới để giải quyết bài toán tối

ưu hàm nhiều biến tổng quát là cần thiết

Giải thuật di truyền là một kỹ thuật của khoa học máy tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp (combinatorial optimization) bằng cách mô phỏng theo sự tiến hóa của con người hay của sinh vật Nên tôi chọn bài toán “Nghiên cứu giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số” làm đề tài luận văn thạc sĩ

2 Mục tiêu nghiên cứu

2.1 Mục tiêu tổng quát

Nghiên cứu, áp dụng và đánh giá giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

Trang 9

2.2 Mục tiêu cụ thể

Đề tài tập trung vào các mục tiêu cụ thể sau:

- Nghiên cứu tổng quan về bài toán tìm kiếm cực trị của hàm số

- Nghiên cứu giải thuật di truyền với biến nhị phân

- Nghiên cứu áp dụng giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

- Nghiên cứu ngôn ngữ Matlab, cài đặt và đánh giá hiệu quả của thuật toán di truyền cho bài toán tìm cự trị của hàm số

3 Đối tƣợng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

(a) Nghiên cứu lý thuyết

- Nghiên cứu các tài liệu về bài toán cực trị và các phương pháp giải bài toán tìm cực trị của hàm số

- Nghiên cứu các tài liệu về giải thuật di truyền với biến nhị phân và giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

- Nghiên cứu các tài liệu về ngôn ngữ lập trình Matlab

(b) Nghiên cứu thực nghiệm

- Cài đặt và đánh giá hiệu quả của thuật toán di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

3.2 Phạm vi nghiên cứu

Hiện nay có rất nhiều phương pháp giải quyết bài toán tối ưu hàm số, nhưng các phương pháp chỉ dừng lại ở những lớp bài toán với những thông tin rõ ràng Do đó, việc tìm ra một phương pháp mới để giải quyết bài toán tối

ưu hàm nhiều biến tổng quát là cần thiết

Trang 10

Trong luận văn này tôi chỉ hạn chế nghiên cứu hướng tiếp cận giải thuật

di truyền với biến liên tục cho bài toán tìm cực trị của hàm số để giải bài toán tìm cực trị của hàm số

4 Nội dung nghiên cứu

- Xây dựng đề cương luận văn

- Nghiên cứu tổng quan về bài toán bài toán tìm cực trị của hàm số và các hướng tiếp cận giải quyết bài toán này

- Nghiên cứu giải thuật di truyền với biến nhị phân

- Nghiên cứu áp dụng giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

- Nghiên cứu ngôn ngữ lập trình Matlab để cài đặt và đánh giá giải thuật

- Lập trình và đánh giá hiệu quả của thuật toán di truyền với biến liên tục cho bài toán tìm cực trị của hám số so với thuật toán tìm kiếm khác

- Viết báo cáo luận văn

5 Kết cấu của luận văn

Sau phần mở đầu, luận văn được cấu trúc g m 3 chương sau:

Chương 1: Tổng quan

Chương này trình bày tổng quan về bài toán tìm cực trị của hàm số, các phương pháp cơ bản tìm cực trị của hàm số g m cơ sở toán học, các thuật toán vét cạn và thuật toán tìm kiếm cục bộ giải bài toán tìm cực trị của hàm số

Chương 2: Giải thuật di truyền với biến nhị phân

Chương này trình bày giải thuật di truyền nhị phân bao g m các các khái niệm, thuật toán, các toán tử chọn lọc, lai ghép, đột biến và áp dụng giải thuật cho bài toán tìm giá trị lớn nhất của hàm số với biến được mã hóa theo nhị phân

Trang 11

Chương 3: Giải thuật di truyền với biến liên tục cho bài toán tìm cực trị của hàm số

Chương này trình bày giải thuật di truyền với biến liên tục cho bài toán tìm giá trị bé nhất của các hàm số Ngoài ra, chương này cũng trình bày hai thuật toán g m thuật toán vét cạn và thuật toán leo đ i đa điểm cho bài toán tìm giá trị bé nhất của hàm số Chương này cũng đưa ra các kết quả thực nghiệm và các đánh giá dựa trên các thực nghiệm cho các thuật toán vét cạn, thuật toán leo đ i đa điểm, giải thuật di truyền nhị phân, giải thuật di truyền với biến liên tục cho bài toán tìm giá trị bé nhất của hàm số

Cuối cùng là kết luận và hướng phát triển của đề tài nhằm tóm tắt lại những kết quả thu được của bản thân trong quá trình thực hiện luận văn cũng như đưa ra một số hướng nghiên cứu tiếp theo của đề tài

Trang 12

CHƯƠNG 1 TỔNG QUAN

1.1 Bài toán tìm cực trị của hàm số

Hiện nay có rất nhiều phương pháp giải quyết bài toán tối ưu hàm số, nhưng các phương pháp chỉ dừng lại ở những lớp bài toán với những thông tin rõ ràng Do đó, việc nghiên cứu một phương pháp mới để giải quyết bài toán tối ưu hàm nhiều biến tổng quát là cần thiết

Nhưng để giải quyết bài toán cần có công cụ cần thiết phải thiết kế bài toán tìm cực trị (giá trị bé nhất (minumum) hay giá trị lớn nhất (maximum)) của một hàm số nhiều biến mà mỗi biến có thể nhận các giá trị số nằm trên một miền con hoặc toàn miền số thực (từ -∞ đến +∞) thì thực sự rất khó Trong kỹ thuật, khi giải quyết bất kỳ một nhiệm vụ nào chúng ta đều mong muốn có phương án tốt nhất theo một hoặc vài tiêu chí nào đó Có thể liệt kê rất nhiều những ví dụ cụ thể như tiết kiệm thời gian nhất, chi phí nhỏ nhất, năng suất lớn nhất, quãng đường ngắn nhất, thiết kế kết cấu với trọng lượng vật liệu nhỏ nhất…Để giải được những bài toán này, toán học đã cho ra đời một ngành “Quy hoạch toán học” hay “Tối ưu hóa” Bài toán tối ưu nói chung được viết dưới dạng như sau:

Trang 13

Hàm f(x) trong biểu thức (1.1) được gọi là hàm mục tiêu tiêu chuẩn tối

ưu, biểu diễn mối quan hệ giữa tiêu chuẩn chất lượng của quá trình khảo sát

- Ta nói hàm số f(x,y) = f(M) đạt giá trị cực đại tại điểm M 0 (x 0 ,y 0) thuộc

D nếu f(M) ≤ f(M 0 ) với mọi điểm M(x,y) thuộc D mà khoảng cách từ M đến

M 0 nhỏ hơn một giá trị r (r > 0, nhỏ tùy ý)

- Ta nói hàm số f(x,y) = f(M) đạt giá trị cực tiểu tại điểm M 0 (x0,y 0) thuộc

D nếu f(M) ≥ f(M 0 ) với mọi điểm M(x,y) thuộc D mà khoảng cách từ M đến

M 0 nhỏ hơn r (r > 0, nhỏ tùy ý)

- Cực đại và cực tiểu được gọi chung là cực trị Nếu hàm số đạt cực trị

tại M 0 (x 0 ,y 0 ) thì điểm M 0 (x 0 ,y 0) được gọi là điểm cực trị

Câu hỏi đặt ra: Với hàm số bên ngoài điểm cực trị M 0 (x 0 ,y 0) còn điểm cực trị nào khác? tìm chúng như thế nào? Rõ ràng không thể chỉ dùng định nghĩa Vì vậy cần có công cụ tốt hơn: Điều kiện cần sẽ giúp ta tập trung vào các điểm hoài nghi, còn gọi là các điểm dừng

Trang 14

1.2.2 Điều kiện cần và đủ của của điểm cực trị

Điều kiện cần:

Hàm số f(x,y) xác định, liên tục và có các đạo hàm riêng trên miền D = {a

≤ x ≤ b, c ≤ y ≤ d} Khi đó, nếu điểm M 0 (x 0 ,y 0) là điểm cực trị của hàm số thì tại

điểm M 0 (x 0 ,y 0) tất cả các đạo hàm riêng cấp 1 của hàm số triệt tiêu, tức là:

(1.2)

Điểm M 0 (x 0 ,y 0) thỏa mãn điều kiện (1.2) tức là nghiệm của hệ:

(1.3)

được gọi là điểm dừng của hàm f(x,y)

- Nhận xét 1: Hàm số chỉ có thể đạt cực trị tại các điểm dừng của nó, nên

để tìm các điểm cực trị ta chỉ cần tìm trong số các điểm dừng

- Nhận xét 2: Một điểm là điểm dừng của hàm số thì chưa chắc là điểm

cực trị Cho nên cần xét điều kiện đủ để một điểm dừng là điểm cực trị

Điều kiện đủ:

Giả sử hàm số f(x,y) có điểm dừng tại M 0 (x 0 ,y 0) và các đạo hàm riêng

cấp 2 của hàm số xác định, liên tục tại M 0 (x 0 ,y 0) Xét D = , với

Trang 15

(1.4)

- Nếu D < 0 thì điểm M 0 (x 0 ,y 0) không phải là điểm cực trị của hàm số

f(x,y)

- Nếu D > 0 thì điểm M 0 (x 0 ,y 0 ) là điểm cực trị của hàm số f(x,y)

+ Nếu a 11 > 0 thì điểm M 0 (x 0 ,y 0) là điểm cực tiểu của hàm số

+ Nếu a 11 < 0 thì điểm M 0 (x 0 ,y 0) là điểm cực đại của hàm số

Xét ví dụ tìm giá trị lớn nhất của hàm số:

, với 0 ≤ x ≤10 và 0 ≤ y ≤ 10 (1.5) Lấy đạo hàm bậc 1 theo các biến x và y, ta có:

(1.6)

Điểm dừng là những điểm thõa mãn hệ phương trình (1.6) Để tìm cực tiểu và cực đại của hàm số, chúng ta cần tính đạo hàm bậc 2:

(1.7)

Trang 16

và tính định thức của D = = a11a22 như sau:

Hiển nhiên để xác định D > 0 hay D < 0 cũng như a 11 > 0 hay a 11 < 0 của biểu thức (1.8) thực sự là điều không dễ Đặc biệt với các hàm đa biến phức tạp

1.3 Tìm kiếm vét cạn cho bài toán tìm cực trị của hàm số

Hướng tiếp cận tìm kiếm vét cạn (exhaustive search) hay tìm kiếm cưỡng bức (brute force) là phương pháp lấy mẫu hàm tìm kiếm để tìm ra giá trị cực đại hoặc cự tiểu tổng thể của hàm số Phương pháp này yêu cầu rất lớn

số lượng các mẫu để tìm ra giá trị cực đại/cực tiểu tổng thể Xét lại ví dụ tìm giá trị bé nhất của hàm số:

, với 0 ≤ x ≤10 và 0 ≤ y ≤ 10 (1.9) Hình 1.1 chỉ ra đ thị của hàm số với x và y được lấy mẫu ở khoảng

0.01 Như vậy yêu cầu 1001×1001 = 1002001 lần tính giá trị của hàm Thuật

Trang 17

toán 1.1 chỉ ra thuật toán vét cạn để tìm giá trị bé nhất của hàm số Sử dụng

Thuật toán 1.1, giá trị bé nhất tìm được của hàm số là f_min = -18.5545, tại

x = 9.040 và y = 8.670

Hình 1.1 Đ thị của hàm số

( , ) sin(4 )x 1.1 sin(2 )y

Hiển nhiên, thuật toán vét cạn yêu cầu kiểm tra một số lượng rất lớn các

trạng thái trong không gian trạng thái Gọi N var là tổng số các biến của hàm

số, Q i là số giá trị khác nhau của biến thứ i, khi đó các giá trị cần tìm kiếm là:

(1.10)

Trang 18

Thuật toán 1.1 Thuật toán vét cạn tìm giá trị bé nhất của hàm số

15 return f_min, x_min, y_min, t;

Ưu điểm của thuật toán vét cạn là nó không bị kẹt ở một cực trị địa phương Nhược điểm của thuật toán vét cạn chỉ tìm được nghiệm xấp xỉ tối

ưu tổng thể vì việc lấy mẫu các biến và hơn nữa, độ phức tạp tính toán của thuật toán vét cạn là hàm mũ như (1.10), do đó thuật toán vét cạn chỉ được dùng để tìm kiếm cực trị cho các hàm số có ít biến bị giới hạn trong một

Trang 19

không gian tìm kiếm nhỏ

1.4 Tìm kiếm cục bộ

Tìm kiếm cục bộ là một phương pháp được ưa dùng để giải quyết các bài

toán tối ưu vì hai ưu điểm chính sau: (i) thuật toán sử dụng rất ít bộ nhớ và (ii)

thuật toán có thể tìm được nghiệm trong một không gian rộng lớn

Phần này trình bày 2 thuật toán cơ bản của tìm kiếm cục bộ là thuật toán leo đ i và thuật toán mô phỏng luyện kim

1.4.1 Thuật toán leo đồi

Thuật toán tìm kiếm cục bộ đơn giản nhất là thuật toán leo đ i climbing) Thuật toán leo đ i theo hướng tăng để tìm cực đại của một hàm 2

(hill-biến số f(x,y) được chỉ ra trong thuật toán 1.2 Ban đầu thuật toán khởi tạo một nghiệm ở một giá trị ngẫu nhiên (x 0 ,y 0) Ở mỗi vòng lặp, thuật toán tìm

giá trị lớn nhất của tập các giá trị lân cận neighbor(x,y) của điểm (x,y) Nếu giá trị lớn nhất trong lân cận của (x,y) bé hơn giá trị lớn nhất đã tìm được thì

thuật toán dừng, ngược lại, thuật toán di chuyển giá trị lớn nhất đã tìm được tới lân cận có giá trị lớn nhất Khi thuật toán kết thúc, nó trả về giá trị lớn nhất

Trang 21

Hình 1.2 Đ thị của hàm số và vết đi của thuật toán leo đ i

Hình 1.2 chỉ ra một ví dụ sử dụng thuật toán leo đ i tìm giá trị lớn nhất

của một hàm hai biến f(x,y):

với -100 ≤ x ≤ 100 và -100 ≤ y ≤ 100, trong đó x và y là các số nguyên

Đường gạch trên đ thị chỉ ra vết đi của thuật toán leo đ i và thuật toán dừng

khi leo đến đỉnh đ i Ban đầu, thuật toán khởi tạo x = -100 và y = -100 Ở mỗi vòng lặp, thuật toán tìm giá trị lớn nhất của 4 điểm lân cận của điểm (x,y) g m {(x-1,y), (x+1,y), (x,y+1), (x, y-1)} Nếu giá trị lớn nhất trong lân cận của (x,y)

bé hơn giá trị lớn nhất đã tìm được thì thuật toán dừng, ngược lại, thuật toán

di chuyển giá trị lớn nhất đã tìm được tới lân cận có giá trị lớn nhất Khi thuật

toán kết thúc, giá trị lớn nhất của hàm số tìm được là f_max = -55 tại x = 0 và

y = 9 So thuật toán vét cạn, thuật toán leo đ i đã tìm được nghiệm chính xác

Trang 22

Hình 1.3 Minh họa trường hợp thuật toán dừng

ở nghiệm tối ưu địa phương

Nhược điểm lớn nhất của thuật toán tìm kiếm cục bộ là thường thuật toán bị kẹt ở một vùng cục bộ, tức là thuật toán chỉ tìm được các nghiêm tối

ưu địa phương Ngoài ra, thuật toán sẽ phụ thuộc vào điểm khởi tạo ban đầu của thuật toán Hình 1.3 minh họa trường hợp thuật toán tìm kiếm giá trị lớn nhất của hàm một biến nhưng dừng ở một điểm tối ưu cục bộ địa phương

Để tránh trường hợp thuật toán chỉ tìm thấy nghiệm tối ưu địa phương, một số cải tiến khác đã được đề nghị như đưa thêm xác suất chọn giá trị ngẫu nhiên trong tập láng giềng thay vì lấy giá trị bé nhất hay thuật toán leo

Trang 23

Hình 1.4 Minh họa thuật toán leo đ i đa điểm

tìm giá trị lớn nhất hàm số

Hình 1.4 chỉ ra một ví dụ sử dụng thuật toán leo đ i đa điểm tìm giá trị

lớn nhất của một hàm hai biến f(x,y):

(1.12)

với 0 ≤ x ≤ 100 và 100 ≤ y ≤ 200, trong đó x và y là các số nguyên Đường

gạch trên đ thị chỉ ra vết đi của thuật toán leo đ i và thuật toán dừng khi leo đến đỉnh đ i Khi thuật toán kết thúc, giá trị lớn nhất của hàm số tìm được là

f_max = 9.739 tại x = 74 và y = 142 sau 405 vòng lặp So thuật toán vét cạn,

thuật toán leo đ i đã tìm được nghiệm chính xác tuy nhiên cần rất ít vòng lặp

so với thuật toán vét cạn

Trang 24

1.4.2 Thuật toán mô phỏng luyện kim (simulated annealing search)

Thuật toán leo đ i di chuyển tới trạng thái tốt nhất trong trạng thái lân cận của trạng thái hiện thời, do đó thường bị kẹt ở một nghiệm cục bộ và do

đó thuật toán thường không tìm được cực trị tổng thể Thuật toán mô phỏng luyện kim (simulated annealing search) lấy ý tưởng từ quá trình tôi ủ trong luyện kim Trong luyện kim, tôi ủ (simulated annealing search), tôi ủ là quá trình để làm cứng kim loại hoặc thủy tinh bằng cách nung nóng chúng đến một nhiệt độ cao và sau đó làm lạnh dần dần chúng Về bản chất, thuật toán

mô phỏng luyện kim là sự kết hợp leo đ i với di chuyển ngẫu nhiên, đó là cho phép di chuyển đến các trạng thái với nghiệm t i hơn để có thể tránh được các điểm tối ưu cục bộ như minh họa ở hình 1.5

Thuật toán mô phỏng luyện kim để tìm giá trị lớn nhất của một hàm

2 biến f(x,y) được mô tả như thuật toán 1.3 Ban đầu thuật toán được khởi tạo nghiệm ở vị trí ngẫu nhiên (x 0 ,y 0 ) Ở mỗi vòng lặp, nhiệt độ T sẽ được

giảm dần và thay vì chọn trạng thái tốt nhất tiếp theo, thuật toán chọn một trạng thái ngẫu nhiên Nếu trạng thái được chọn tốt hơn trạng thái hiện thời thì nghiệm sẽ được chuyển đến trạng thái đã chọn Ngược lại, chuyển

đến trạng thái đã chọn với xác suất nhỏ là eE/T

Hiển nhiên, xác xuất chọn

trạng thái "t i" giảm khi E nhỏ hoặc nhiệt độ T cao Nếu nhiệt độ T giảm

đủ chậm thì thuật toán sẽ tìm được một tối ưu tổng thể với xác suất gần bằng 1

Trang 25

Hình 1.5 Minh họa thuật toán mô phỏng luyện kim

Thuật toán 1.2 Thuật toán mô phỏng luyện kim

1 Vào: - Hàm số f(x,y),

2 - schedule: ánh xạ từ thời gian tới nhiệt độ

3 Ra: giá trị lớn nhất tìm được f_max, các giá trị x, y tương ứng với

f_max

4 x: = x 0 ; y: = y 0 ;

5 for t = 1 to ∞ do

6 T = schedule(t);

7 if T = 0 then return f(x,y);

8 select randomly x_next, y_next in neighbor(x,y)

9 E = f(x,y) - f(x_next,y_next);

Trang 26

1.5 Giải thuật di truyền

Giải thuật di truyền (Genetic Algorithm - GA) là một kỹ thuật tối ưu hóa và tìm kiếm dựa trên trên nguyên tắc di truyền và chọn lọc tự nhiên Giải thuật di truyền cho phép một quần thể (population) bao g m nhiều cá thể phát triển theo luật chọn lọc để cực đại một hàm thích nghi (fitness) (tức

là tối ưu hàm giá) Giải thuật di truyền được phát triển bởi John Holland năm 1975 và sau đó được học trò của ông, David Goldberg, tiếp tục phát triển và công bố trong luận án tiến sỹ (1989) Một số ưu điểm của giải thuật

di truyền bao g m:

- Tối ưu hóa hàm số với các biến liên tục và rời rạc

- Không yêu cầu tính đạo hàm các hàm số

Ngày đăng: 01/08/2021, 11:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Thanh Thủy (1996), Trí tuệ nhân tạo: Các phương pháp giải quyết vấn đề, Nxb Giáo dục Sách, tạp chí
Tiêu đề: rí tuệ nhân tạo: Các phương pháp giải quyết vấn đề
Tác giả: Nguyễn Thanh Thủy
Nhà XB: Nxb Giáo dục
Năm: 1996
[2] Nguyễn Đình Thúc (2001). Trí tuệ nhân tạo - Lập trình tiến hóa, Nxb Giáo dục.Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: Trí tuệ nhân tạo - Lập trình tiến hóa
Tác giả: Nguyễn Đình Thúc
Nhà XB: Nxb Giáo dục. Tài liệu Tiếng Anh
Năm: 2001
[3] Mitchell Melanie (1999), An Introduction to Genetic Algorithms , A Bradford Book The MIT Press Sách, tạp chí
Tiêu đề: An Introduction to Genetic Algorithms
Tác giả: Mitchell Melanie
Năm: 1999
[4] Randy L. Haupt (2004), Sue Ellen Haupt. Practical genetic algorithms, Wiley, 2ed Sách, tạp chí
Tiêu đề: Sue Ellen Haupt. Practical genetic algorithms
Tác giả: Randy L. Haupt
Năm: 2004
[5] Jenna Carr (2014), An Introduction to Genetic Algorithms 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

w