Trong những năm gần đây, rất nhiều mạng cảm biến không dây đã và đang được phát triển và triển khai cho nhiều các ứng dụng khác nhau như : theo dõi sự thay đổi của môi trường, khí hậu, g
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN CHÍ TRƯỜNG
TỐI ƯU HÓA VÙNG CHE PHỦ CHO MẠNG CẢM BIẾN
KHÔNG DÂY
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS HUỲNH THỊ THANH BÌNH
Trang 3LỜI CAM ĐOAN
Tên tôi là : Nguyễn Chí Trường
Sinh ngày : 18 tháng 07 năm 1990
Học Viên lớp cao học Công nghệ thông tin 2015B – Trường Đại học Bách Khoa Hà Nội
Tôi xin cam đoan toàn bộ nội dung của luận văn mà tôi thực hiện trong thời gian vừa qua là trung thực và không sao chép của ai
Hà Nội, Ngày … tháng … năm 2018
Tác giả luận văn
Ng uyễn Chí Trường
Trang 4L ỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn tới Ban Giám Hiệu Trường Đại học Bách Khoa Hà Nội đã tạo điều kiện cho em được làm luận văn tốt nghiệp này Sau thời gian nghiên cứu và làm việc, luận văn của em đến nay cơ bản đã hoàn thành Có được thành quả đó, ngoài sự cố gắng nỗ lực của bản thân còn phải kể đến sự giúp
đỡ rất lớn từ cô giáo PGS.TS Huỳnh Thị Thanh Bình, người đã trực tiếp hướng
dẫn, chỉ bảo tận tình cung cấp tài liệu, kiến thức cũng như kinh nghiệm quý báu cho
em trong suốt thời gian làm luận văn, ngoài ra em cũng xin gửi lời cảm ơn đến
NCS Nguyễn Thị Hạnh cùng toàn thể các bạn nghiên cứu sinh, sinh viên của bộ
môn Khoa Học Máy Tính đã nhiệt tình giúp đỡ hỗ trợ em trong quá trình em thực
hiện luận văn Qua đây em xin được bày tỏ lòng biết ơn sâu sắc tới cô, cùng mọi người sức khỏe, công tác và học tập tốt
Em xin chân thành cảm ơn các thầy cô của Viện Công nghệ thông tin và Truyền thông đã hết sức nhiệt tinh truyền thụ cho chúng em không chỉ những kiến thức chuyên môn mà cả những kinh nghiệm quý báu
Cuối cùng em xin gửi lời cảm ơn chân thành tới gia đình và bạn bè Chính gia đình và bạn bè là nguồn động viên hỗ trợ vô cùng to lớn giúp em có thêm động lực và sự khích lệ để hoàn thành luận văn này
Trong quá trình thực hiện luận văn, mặc dù đã cố gắng, tuy nhiên vì thời gian
và trình độ còn hạn chế nên luận văn không tránh khỏi những thiếu sót Em kính mong nhận được các góp ý của Hội đồng Khoa học và các bạn để đề tài được hoàn thiện hơn
Em xin trân trọng cảm ơn!
Trang 5MỤC LỤC
L ỜI CAM ĐOAN 1
L ỜI CẢM ƠN 2
M ỤC LỤC 3
DANH M ỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
DANH M ỤC CÁC BẢNG 7
DANH M ỤC CÁC HÌNH 8
CHƯƠNG 1 TỔNG QUAN VÊ MẠNG CẢM BIẾN KHÔNG DÂY 9
1.Giới thiệu chung về mạng cảm biến không dây 9
2.Cấu trúc mạng cảm biến không dây 10
2.1.Các yếu tố ảnh hưởng đến cấu trúc mạng cảm biến không dây 10
2.2.Kiến trúc giao thức mạng 11
2.3.Cấu trúc đặc trưng của mạng cảm biến không dây 12
2.3.1.Cấu trúc phẳng 12
2.3.2.Cấu trúc tầng 13
3.Ứng dụng của mạng cảm biến không dây 14
4.Những khó khăn trong việc triển khai WSN 15
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT BÀI TOÁN TỐI ƯU 16
1.Bài Toán Tối Ưu 16
1.1.Bài toán tối ưu tổ hợp 17
1.2.Bài toán tối ưu liên tục 20
2.Tổng quan các phương pháp giải bài toán tối ưu 21
2.1.Phương pháp giải chính xác 21
2.2.Phương pháp giải xấp xỉ 25
3.Giải thuật di truyền 28
3.1.Mã hóa cá thể 29
3.2.Khởi tạo quần thể 30
3.3.Hàm thích nghi 30
3.4.Các toán tử di truyền 31
3.4.1.Phép lai ghép 31
3.4.2.Đột biến 32
Trang 63.5.Chọn lọc 32
3.6.Điều kiện dừng của giải thuật 32
3.7.Tính chất của giải thuật di truyền 33
CHƯƠNG 3 BÀI TOÁN CỰC ĐẠI DIỆN TÍCH BAO PHỦ TRONG MẠNG C ẢM BIẾN KHÔNG DÂY 34
1.Tổng quan về bài toán bao phủ trong mạng cảm biến không dây 34
1.1.Độ bao phủ của cảm biến 34
1.1.1.Mô hình nhị phân 35
1.1.2.Mô hình tỉ lệ 36
1.1.3.Mô hình xác suất 36
1.2.Độ bao phủ của mạng cảm biến 37
1.2.1.Bao phủ đối tượng 37
1.2.2.Bao phủ Barrier 38
1.2.3.Bao phủ diện tích 39
2.Bài toán cực đại bao phủ diện tích trong mạng cảm biến không dây 40
3.Ứng dụng của bài toán cực đại diện tích bao phủ trong mạng cảm biến không dây 41
4.Các nghiên cứu liên quan 41
CHƯƠNG 4 BÀI TOÁN TỐI ĐA HÓA VÙNG BAO PHỦ DIỆN TÍCH TRONG M ẠNG CẢM BIẾN KHÔNG DÂY 46
I Áp dụng giải thuật di truyền để giải bài toán tối đa vùng che phủ cho mạng cảm biến không dây 46
1.Mã hóa cá thể 46
2.Khởi tạo quần thể 48
2.1.Khởi tạo ngẫu nhiên 48
2.2.Khởi tạo heuristic 51
3.Hàm thích nghi 53
4.Toán tử di truyền 55
4.1.Toán tử lai ghép 55
4.2.Đột biến 56
5.Chọn lọc cá thể 56
Trang 7II Kết quả thực nghiệm 56
1.Dữ liệu thực nghiệm 56
2.Nội dung thực nghiệm 57
3.Môi trường thực nghiệm 58
4.Kết quả thực nghiệm 58
K ẾT LUẬN 60
TÀI LI ỆU THAM KHẢO 61
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
WSN Wireless Sensor Network Mạng cảm biến không dây
PMAC Problem of Maximum Area Coverage Bài toán cực đại diện tích bao phủ
trong mạng cảm biến không dây VFA Virtual Force Algorithm
Trang 9DANH MỤC CÁC BẢNG
Bảng 1: Bộ dữ liệu thực nghiệm 57
Bảng 2: Bảng tham số thực nghiệm của giải thuật GA 58
Bảng 3: Diện tích bao phủ trung bình (Avg), độ lệch chuẩn (sd), thời gian chạy trung bình cho bởi GA sau 30 lần chạy trên 15 bộ dữ liệu 59
Trang 10DANH MỤC CÁC HÌNH
Hình 1: Kiến trúc giao thức mạng cảm biến không dây 11
Hình 2: Cấu trúc phẳng của mạng cảm biến không dây 12
Hình 3: Cấu trúc tầng của mạng cảm biến không dây 13
Hình 4: Cấu trúc mạng phân cấp chức năng theo lớp 13
Hình 5: Minh họa bài toán tối ưu liên tục: đồ thị hàm số f(x) = x3 – 3x2 + 4 21
Hình 6: Sơ đồ thuật toán tiến hóa 28
Hình 7: Lai ghép một điểm cắt 31
Hình 8: Mô hình cảm biến nhị phân 35
Hình 9: Mô hình tỉ lệ 36
Hình 10: Bao phủ đối tượng 37
Hình 11: Bao phủ barrier 39
Hình 12: Mã hóa cá thể 46
Hình 13: Hai cá thể tương đương 47
Hình 14: Ví dụ về kiểu hình 47
Hình 15: Hiệu chỉnh tọa độ của cảm biến 51
Hình 16: Trường hợp có cùng giá trị ∆ d =( i s r + j s r - d(Si,Sj)) 54
Trang 11CHƯƠNG 1 TỔNG QUAN VÊ MẠNG CẢM BIẾN KHÔNG DÂY
1.Gi ới thiệu chung về mạng cảm biến không dây
Trong những năm gần đây, rất nhiều mạng cảm biến không dây đã và đang được phát triển và triển khai cho nhiều các ứng dụng khác nhau như : theo dõi sự
thay đổi của môi trường, khí hậu, giám sát các mặt trận quân sự, phát hiện và do thám việc tấn công bằng hạt nhân, sinh học và hóa học, chuẩn đoán sự hỏng hóc của máy móc, thiết bị, theo dấu và giám sát các bác sỹ, bệnh nhân cũng như việc quản
lý thuốc trong bệnh viện, ứng dụng trong các vấn đề giao thông ,an ninh, …
Với sự tiến bộ của công nghệ những năm gần đây và sự tích hợp của các hệ
thống công nghệ như kỹ thuật vi điện tử, công nghệ nano, giao tiếp không dây,… đã
tạo ra những cảm biến có kích thước rất nhỏ, đa chức năng, giá thành thấp, công
suất tiêu thụ thấp điều này làm tăng khả năng ứng dụng rộng rãi của mạng cảm biến không dây
Một mạng cảm biến không dây là một mạng bao gồm nhiều nút cảm biến
nhỏ năng lượng hạn chế, giao tiếp thông qua các kết nối không dây nhưng có giá thành thấp, các nút cảm biến này có chức năng cảm nhận, đo đạc, tính toán nhằm
mục đích thu thập, tập trung thông tin dữ liệu để đưa ra các quyết định
Những nút cảm biến bao gồm các thành phần : các bộ vi xử lý, bộ nhớ giới
hạn, bộ phận cảm biến, bộ thu phát không dây, bộ nguồn Kích thước của các nút
cảm biến tùy thuộc vào từng ứng dụng cụ thể
Mạng cảm biến có một số đặc điểm sau :
Có khả năng tự động tổ chức, có ít hoặc không cần có sự can thiệp của con người
Truyền thông không tin cậy, trong phạm vi hẹp và định tuyến multihop
Triển khai dày đặc và khả năng kết hợp giữa các nút cảm biến
Cấu hình mạng thay đổi thường xuyên phụ thuộc vào fading (sự tiêu hao năng lượng) và hư hỏng ở các nút
Trang 12 Các giới hạn về măt năng lượng, công xuất phát, bộ nhớ và công xuất tính toán
2.C ấu trúc mạng cảm biến không dây
2.1.Các y ếu tố ảnh hưởng đến cấu trúc mạng cảm biến không dây
Các cấu trúc hiện nay cho mạng internet và mạng ad hoc không dây không dùng được cho mạng cảm biến không dây do các lý do sau :
Các nút cảm biến dễ lỗi
Cấu trúc mạng cảm biến thay đổi thường xuyên
Các nút cảm biến chủ yếu sử dụng truyền thông theo kiểu quảng bá , trong khi hầu hết các mạng internet và ad hoc đều dựa trên việc truyền điểm – điểm
Các nút cảm biến bị giới hạn về năng lượng, khả năng tính toán và bộ nhớ
Do vậy cấu trúc mạng mới sẽ :
Kết hợp vấn đề năng lượng và khả năng định tuyến
Tích hợp dữ liệu và giao thức mạng
Truyền năng lượng hiệu quả qua các phương tiện không dây
Chia sẻ nhiệm vụ giữa các nút lân cận
Đặc điểm của cấu trúc mạng cảm biến không dây bao gồm một số lượng lớn các nút
mạng cảm biến có giới hạn và ràng buộc về tài nguyên đặc biệt là năng lượng rất
hạn chế
Do đó cấu trúc mạng mới có đặc điểm khác mạng truyền thống như sau :
Khả năng chịu lỗi ( fault tolerance )
Khả năng mở rộng (Scability)
Giá thành sản xuất ( Production cost)
Ràng buộc về phần cứng (Hardware constraints)
Môi trường hoạt động (Environment)
Phương tiện truyền dẫn (Transmission media)
Cấu hình mạng cảm biến ( Network topology )
Sự tiêu thụ năng lượng (Power consumption)
Trang 13dữ liệu trong mạng cảm biến di động và chia sẻ tài nguyên giữa các nút cảm biến
Hình 1: Kiến trúc giao thức mạng cảm biến không dây
• Mặt phẳng quản lý công xuất (Power Management Plane) : quản lý cách
cảm biến sử dụng nguồn năng lượng của nó
• Mặt phẳng quản lý di động (Mobility Management Plane) : phát hiện và
đăng ký sự chuyển động của các nút Các nút giữ việc theo dõi xem ai là nút hàng xóm của chúng
• Mặt phẳng quản lý (Power Management Plane) : cân bằng và sắp xếp nhiệm
vụ cảm biến giữa các nút trong một vùng quan tâm Không phải tất cả các nút cảm biến đều thực hiện nhiệm vụ cảm nhận ở cùng một thời điểm
Kiến trúc giao thức bao gồm các lớp như sau : lớp vật lý, lớp liên kết dữ liệu,
lớp mạng, lớp truyền tải, lớp ứng dụng
• Lớp vật lý (Physical Layer) : có nhiệm vụ lựa chọn tần số, tạo ra tần số song
mang phát tín hiệu, điều chế và mã hóa tín hiệu
Trang 14• Lớp liên kết dữ liệu (Data Link Layer) : lớp này có nhiệm vụ ghép các luồng
dữ liệu, phát hiện các khung dữ liệu, cách truy nhập đường truyền và điểu khiển lỗi
• Lớp mạng (Network Layer) : lớp mạng của mạng cảm biến được thiết kế tuân
theo nguyên tắc sau :
Hiệu quả năng lượng luôn luôn được coi là vấn đề quan trọng
Mạng cảm biến chủ yếu là tập trung dữ liệu
Tích hợp dữ liệu chỉ được sử dụng khi nó không cản trở sự cộng tác có
hiệu quả của các nút cảm biến
• Lớp truyền tải (Transport Layer) : chỉ cần thiết khi hệ thống có kế hoạch
đươc truy cập thông qua mạng Internet hoặc các mạng bên ngoài khác
• Lớp ứng dụng (Application Layer) : tùy theo nhiệm vụ cảm biến, các loại
phần mềm ứng dựng khác nhau có thể được xây dựng và sử dụng ở lớp ứng
dụng
2.3.C ấu trúc đặc trưng của mạng cảm biến không dây
Cấu trúc của mạng cảm biến không dây gồm 2 loại : Cấu trúc phẳng, Cấu trúc t ầng Sau đây tác giả xin trình bày cụ thể từng loại như sau
Trang 152.3.2.C ấu trúc tầng
Trong cấu trúc tầng (tiered architecture) các cụm được tạo ra giúp các tài
nguyên trong cùng một cụm dữ liệu single hop hay multihop (tùy thuộc vào kích cỡ
của cụm) đến một nút định sẵn, thường gọi là nút chủ (cluster head) Trong cấu trúc
này các nút tạo thành một hệ thống cấp bậc mà ở đó mỗi nút ở một mức xác định
thực hiện các nhiệm vụ đã được định sẵn
Hình 3: C ấu trúc tầng của mạng cảm biến không dây
Trong cấu trúc tầng thì chức năng cảm nhận, tính toán và phân phối dữ liệu không đồng đều giữa các nút Những chức năng này có thể phân theo cấp, cấp 0 :
Cảm nhận thực hiện tất cả nhiệm vụ cảm nhận, cấp 1 : tính toán thực hiện nhiệm vụ tính toán dữ liệu và cấp 2 phân phối hiện nhiệm vụ phân phối dữ liệu
Hình 4: C ấu trúc mạng phân cấp chức năng theo lớp
Trang 16Mạng cảm biến xây dựng theo cấu trúc tầng hoạt động hiệu quả hơn cấu trúc phẳng
do các lý do sau :
• Cấu trúc tầng có thể giảm chi phí mạng cảm biến bằng việc định vị các tài nguyên ở vị trí mà chúng hoạt động hiệu quả nhất
• Mạng cấu trúc tầng sẽ có tuổi thọ cao hơn cấu trúc mạng phẳng
• Về độ tin cậy mỗi mạng cảm biến phải phù hợp với số lượng các nút yêu
cầu thỏa mãn điều kiện về băng thông và thời gian sống với mạng cấu trúc phẳng qua phân tích người ta đã xác định thông lượng tối ưu của mỗi nút trong mạng có n nút là
3 Ứng dụng của mạng cảm biến không dây
Ứng dụng trong quân đội
• Giám sát lực lượng, trang thiết bị và đạn dược
• Giám sát chiến trường
• Giám sát địa hình và lực lượng quân địch
• Đánh giá sự nguy hiểm của chiến trường
• Phát hiện thăm dò các cuộc tấn công bằng hóa hoc, sinh học và hạt nhân
Trang 17 Ứng dụng trong thương mại :
• Điều khiển không lưu
• Đo nhiệt độ và phát hiện những sự dịch chuyển ở trong nhà
• Hệ thống tự động trong gia đình, cảnh báo an ninh,
4.Nh ững khó khăn trong việc triển khai WSN
Vì mạng cảm biến không dây có những ứng dụng vô cùng to lớn trong cuộc sống,
và để tận dụng hết những thuận lợi này chúng ta phải xác định rõ những hạn chế của
mạng cảm biến không dây và các vấn đề kĩ thuật mà ta sẽ gặp phải khi triển khai:
• Bị giới hạn năng lượng
• Bị giới hạn về dải băng thông
• Bị giới hạn về phần cứng
• Kết nối mạng không ổn định
• Bị giới hạn về phạm vi phủ sóng
Trang 18CHƯƠNG 2
CƠ SỞ LÝ THUYẾT BÀI TOÁN TỐI ƯU
1.Bài Toán T ối Ưu
Trong thực tế có rất nhiều tình huống, trường hợp và phương án giải quyết khác nhau khiến chúng ta cần lựa chọn để tìm ra phương án tốt nhất Quan điểm
“tốt nhất” này phụ thuộc vào từng tình huống và từng mục đích, hoặc tối đa
(maximize ) hoặc tối thiểu (minimize) hay một tiêu chí nào đó Ví dụ như khi có
nhiều đường để đi từ nhà đến nơi làm việc, có người chọn đường đi ngắn nhất, có người lại chọn đường đi ít tắc đường nhất nhưng xa hơn hay đi đường có ít đèn tín hiệu giao thông nhất
Việc tìm phương án tối ưu nhất trong số những phương án có thể như giải
quyết bài toán tối ưu (optimization problem) trong lĩnh vực tính toán và công nghệ
thông tin Tóm lại các bài toán tối ưu luôn có hai đặc điểm sau :
• Có nhiều hơn một lời giải, tập các lời giải này được gọi là không gian lời giải hay không gian tìm kiếm
• Mọi lời giải của bài toán đó đều được định lượng theo độ “tốt” bởi cùng một hàm tính theo tiêu chí của bài toán đó
Và để giải quyết những bài toán này (hay các bài toán khác), trước hết cần
phải phát biểu chúng theo mô hình toán học (problem formulation) Trong đó ta cần
phải liệt kê dữ liệu đầu vào, yêu cầu đầu ra, mục tiêu cụ thể bằng công thức toán học và các ràng buộc (nếu có) một cách rõ ràng và logic Từ đó, lời giải sẽ được
biểu diễn thành một hay nhiều biến quyết định (decision variable) sao cho ứng với
mỗi giá trị khác nhau sẽ thu được lời giải không giống nhau Dựa vào miền giá trị (rời rạc hay liên tục) của các biến này, bài toán tối ưu được chia thành hai loại:
• Bài toán tối ưu rời rạc, còn gọi là bài toán tối ưu tổ hợp (combinatorial
optimization problem)
• Bài toán tối ưu liên tục (continuous optimization problem)
Trang 191.1.Bài toán t ối ưu tổ hợp
Bài toán tối ưu được gọi là bài toán tối ưu tổ hợp khi các biến quyết định nhận giá trị trong một tập rời rạc, được giới hạn bởi một số ràng buộc Theo [13], bất kỳ một bài toán tối ưu tổ hợp nào cũng có thể được định nghĩa hình thức bởi một bộ 4:
• extr: cực trị, thường là cực đại hoặc cực tiểu
Ở đây, không gian lời giải U là hữu hạn, rời rạc Các lời giải trong không gian U nếu thỏa mãn các ràng buộc P được gọi là lời giải khả thi hay lời giải chấp
nhận được
Một số bài toán tiêu biểu thuộc lớp bài toán tối ưu tổ hợp này là:
• Bài toán người du lịch (Traveling Salesman Problem)
• Bài toán cái túi (Knapsack Problem)
• Bài toán phân công (Assignment Problem)
• Cây khung nhỏ nhất (Minimum Spanning Tree)
• …
Nội dung cũng như mô hình toán học của bài toán người du lịch và bài toán phân công sẽ được tác giả trình bày chi tiết để minh họa cho những lý thuyết vừa nêu Lý do cho sự lựa chọn này là vì bài toán người du lịch được xem là ví dụ điển hình nhất trong tối ưu tổ hợp và có nhiều ứng dụng thực tiễn Còn bài toán phân công được trình bày để làm cơ sở lý thuyết cho một phương pháp được sử dụng
trong chương 4 dưới đây
Bài toán người du lịch
Nội dung: Một khách du lịch muốn đi tham quan n thành phố T 1 , T 2 , …, T n
Từ một thành phố ban đầu, người khách này sẽ đi qua tất cả các thành phố còn lại
Trang 20duy nhất một lần và trở về thành phố xuất phát Việc di chuyển giữa các thành phố
sẽ mất một chi phí nhất định Vấn đề đặt ra là: hãy tìm cách đi hay còn gọi là một hành trình để có tổng chi phí là nhỏ nhất
Bài toán này có thể mô hình như sau:
Mô hình bài toán:
• Tất cả các thành phố đều phải được đi qua
• Mỗi thành phố xuất hiện đúng 1 lần
cả lời giải khả thi sẽ được tính chi phí bởi hàm f và hành trình nào có chi phí nhỏ
nhất chính là lời giải tối ưu của bài toán
Bài toán phân công
Nội dung: Có n công việc và n thợ Mỗi thợ có thể làm bất kỳ công việc nào
nhưng chỉ nhận làm duy nhất một công việc Chi phí để thuê một thợ làm các công việc khác nhau là không giống nhau Cùng một công việc, chi phí để thuê các thợ
Trang 21khác nhau là khác nhau Hãy tìm cách sắp xếp thợ - việc sao cho cả n công việc đều
được thực hiện đồng thời với chi phí là nhỏ nhất
Trong đó, i đại diện cho thợ thứ i và T π(i) là công việc thứ π(i) với
π = (π (1), π (2), , π (n)) là m ột hoán vị của n số tự nhiên 1, 2,…, n
Ràng buộc:
• Tất cả các công việc đều phải được thực hiện đồng thời
• Một thợ chỉ làm duy nhất một công việc
Trang 221.2.Bài toán t ối ưu liên tục
Khi các biến biểu diễn lời giải nhận giá trị liên tục trong không gian số thực thì bài toán tối ưu trở thành tối ưu liên tục Mô hình chuẩn của bài toán tối ưu này như sau:
minimize /x maximize f (x) sao cho :
Trường hợp m = p = 0 thì ta gọi đó là bài toán tối ưu (liên tục) không ràng buộc
Tìm cực trị (cực đại hoặc cực tiểu) của hàm số là một ví dụ điển hình cho lớp bài toán này Chẳng hạn:
minimize f (x) = x3 - 3x2 + 4
sao cho : 1≤ x ≤ 3, x∈R
Đầu vào của bài toán chính là đoạn số thực [1, 3] còn đầu ra là một giá trị thuộc
đoạn đó sao cho hàm mục tiêu f(x) có giá trị nhỏ nhất
Rõ ràng, có rất nhiều giá trị x nằm trong đoạn [1, 3] nhưng chỉ có duy nhất một giá trị x = 2 (hình 1) làm hàm f(x) tối thiểu Khi đó ta nói x = 2 là lời giải tối ưu còn f*= f(x*) = 0 là giá trị tối ưu của bài toán
Trang 23Hình 5: Minh h ọa bài toán tối ưu liên tục: đồ thị hàm số f(x) = x3 – 3x2 + 4 2.T ổng quan các phương pháp giải bài toán tối ưu
Giải bài toán tối ưu ta có thể hiểu là việc tìm kiếm lời giải tốt nhất (tối ưu) trong không gian lời giải của bài toán Nhưng tìm kiếm như thế nào, chiến lược, phương pháp ra sao thì lại tùy vào từng bài toán cụ thể Các chiến lược tìm kiếm khác nhau hình thành nên những thuật toán khác nhau
Cần phân biệt hai khái niệm: tối ưu địa phương và tối ưu toán cục
• T ối ưu địa phương (local optimum) là lời giải tốt nhất trong một tập các lời
giải khả thi
• T ối ưu toàn cục (global optimum), ngược lại, là lời giải tốt nhất trong toàn bộ
không gian lời giải
2.1 Phương pháp giải chính xác
Các thuật toán cho phép tìm thấy lời giải tối ưu toàn cục của bài toán (có thể chứng minh bằng lý thuyết) được gọi là phương pháp giải chính xác Vét cạn, nhánh cận, quy hoạch động… là những ví dụ tiêu biểu cho phương pháp này
Vét cạn (Exhaustive search hay Brute-force search)
Phương pháp vét cạn có ý tưởng đơn giản là liệt kê tất cả các lời giải khả thi của bài toán rồi kiểm tra xem lời giải nào cho giá trị tối ưu Vấn đề của phương pháp này chính là cách liệt kê lời giải phải đảm bảo tính đầy đủ và chính xác
Trang 24Ví dụ với bài toán phân công, phương pháp này sẽ phải liệt kê toàn bộ n!
hoán vị, tính toán chi phí của từng phương án rồi quyết định phương án tốt nhất
Phương pháp vét cạn đảm bảo tìm được lời giải tối ưu (về mặt lý thuyết) bởi
nó xét hết mọi khả năng có thể, tức là toàn bộ không gian lời giải đều được khám phá Tuy nhiên, phương pháp này chỉ phù hợp với các bài toán tối ưu tổ hợp với không gian tổ hợp không quá lớn Bởi theo như [14] (trang 111), để liệt kê hết 15! hoán vị trên máy tính điện tử với tốc độ tính toán 1 tỷ phép tính một giây và giả sử cần 100 phép tính để liệt kê một hoán vị thì phải mất 130767 giây, tức là khoảng hơn 36 tiếng đồng hồ!
Nhánh cận (Branch-and-Bound)
Có thể nói, nhánh cận là một phương pháp vét cạn có chọn lọc Ý tưởng của nhánh cận cũng là liệt kê các phương án khả thi, nhưng trong quá trình liệt kê, phương pháp này sẽ dựa vào những thông tin đã tìm được để loại bỏ sớm những phương án chắc chắn không phải tối ưu Nhờ đó, không gian tìm kiếm được thu gọn lại mà vẫn đảm bảo tìm được lời giải tốt nhất
Ngoài ra, nếu trong phương pháp vét cạn, một lời giải sẽ được xây dựng hoàn chỉnh trước khi xét đến lời giải tiếp theo thì trong nhánh cận, các lời giải sẽ được liệt kê đồng thời bằng cách xây dựng lần lượt từng thành phần của chúng, gọi
là lời giải bộ phận Và tại mỗi bước, nếu lời giải bộ phận có giá trị lớn hơn cận dưới hiện có (đối với bài toán tối thiểu) hoặc nhỏ hơn cận trên (đối với bài toán tối đa) thì phương án đó sẽ không được xây dựng tiếp nữa Vấn đề đặt ra trong phương pháp này chính là việc xây dựng được hàm cận dưới hay hàm cận trên để dựa vào đó, xác định nhánh nào có thể loại bỏ trong quá trình liệt kê lời giải Thông thường, hàm mục tiêu của bài toán sẽ được sử dụng cho công việc này
Mặc dù đã có cải tiến so với phương pháp vét cạn nhưng phương pháp nhánh cận vẫn chỉ thích hợp để giải quyết những bài toán có không gian tìm kiếm không quá lớn
Trang 25Quy ho ạch động
Theo [11], phương pháp quy hoạch động dùng để giải bài toán tối ưu có bản chất đệ quy, nghĩa là đưa việc tìm phương án tối ưu của bài toán đó về việc tìm phương án tối ưu của một số hữu hạn các bài toán con Tuy nhiên, ý tưởng của phương pháp đệ quy là từ một bài toán có kích thước lớn sẽ được phân rã thành nhiều bài toán con và đi giải từng bài toán đó Việc giải bài toán con này lại đưa về giải những bài toán con nhỏ hơn bất kể nó đã được giải hay chưa Trong khi, quy hoạch động lại bắt đầu từ việc giải tất cả các bài toán con nhỏ nhất rồi từng bước giải bài toán có kích thước lớn hơn cho đến khi tìm được đáp án của bài toán lớn nhất Nói cách khác, đệ quy được thiết kế giải bài toán theo phương pháp từ trên xuống (top-down) còn quy hoạch động thì ngược lại, từ dưới lên (bottom-up)
Một số yêu cầu cơ bản để một bài toán có thể giải bằng phương pháp quy hoạch động là:
• Bài toán đó có thể phân rã được thành hữu hạn bài toán con sao cho lời giải
của những bài toán này có thể phối hợp lại với nhau theo cách nào đó cho ta
lời giải của bài toán ban đầu
• Quá trình tìm lời giải của bài toán ban đầu từ lời giải của bài toán con phải qua hữu hạn bước
• Do quy hoạch động phải giải tất cả các bài toán con nên nếu không đủ bộ
nhớ để phối hợp những lời giải đó thì phương pháp này cũng không thực
Trang 26phương pháp này dựa vào tính chất rút giảm ma trận Cụ thể, khi trừ đi hay cộng thêm các giá trị thích hợp vào các phần tử của ma trận chi phí ta sẽ thu được ma trận mới, gọi là ma trận chi phí cơ hội Chi phí cơ hội là giá trị thiệt hại khi có sự phân công chưa phải tối ưu Nếu có thể rút giảm ma trận cho đến khi có các phần tử bằng
“0” ở mỗi dòng, mỗi cột thì ta có được sự phân công tối ưu ở các ô có giá trị “0” đó
Sơ đồ thuật toán của phương pháp này như sau:
Thuật toán 1: Hungarian
11 Vẽ một số tối thiểu các đường thẳng đi qua hàng, cột của C’ chứa 0
12 mins ← số tối thiểu đường thẳng cần dùng
13 if mins ≥ n do
14 break
15 else
16 min ← phần tử nhỏ nhất của C’ không có đường thẳng đi qua
17 Tr ừ các phần tử không có đường thẳng đi qua với min
18 C ộng các phẩn tử có đường thẳng đi qua với min
Trang 27Tiếp theo, tác giả sẽ trình bày một số phương pháp giải xấp xỉ cho bài toán tối ưu
2.2 Phương pháp giải xấp xỉ
Phương pháp giải xấp xỉ được đưa ra để khắc phục hạn chế của giải chính xác khi có sự bùng nổ tổ hợp, nghĩa là không gian lời giải trở nên quá lớn khi kích thước dữ liệu đầu vào tăng lên Mục đích của phương pháp này không phải tìm cho
ra lời giải tối ưu mà là tìm lời giải gần tối ưu nhất trong một khoảng thời gian chấp nhận được
Đến nay đã có nhiều thuật toán theo hướng giải xấp xỉ có thể áp dụng cho các bài toán khác nhau Tiêu biểu là thuật toán tham lam, mô phỏng luyện kim, tìm kiếm địa phương và các thuật toán tiến hóa
Thuật toán tham lam (Greedy Algorithm)
Thuật toán tham lam được xem là phương pháp giải xấp xỉ đơn giản nhất Ý tưởng của thuật toán này là luôn lựa chọn giá trị tốt nhất (tối ưu địa phương) tại mỗi bước trong quá trình xây dựng lời giải với hy vọng rằng tìm được lời giải tối ưu toàn cục
Ví dụ với bài toán người du lịch, tại mỗi bước thuật toán tham lam sẽ chọn đến thăm thành phố (chưa được thăm trước đó) gần nhất (chi phí ít nhất) từ thành phố hiện tại
Vấn đề của thuật toán này nằm ở chỗ tìm cách để lựa chọn phương án tốt nhất trong mỗi bước xây dựng lời giải Thông thường, tương tự như thuật toán nhánh cận, tham lam sẽ sử dụng tiêu chí tối ưu của bài toán để tiến hành lựa chọn
Mô phỏng luyện kim (Simulated Annealing - SA)
Mô phỏng luyện kim là một thuật toán tìm kiếm dựa trên xác suất được đề xuất bởi Kirpatrick, Gelett, Vecchi và Cerny năm 1982 [16] nhằm tìm ra giá trị tối
ưu toàn cục của hàm mục tiêu Phương pháp này mô phỏng quá trình luyện kim trong lĩnh vực cơ học Theo đó, khi tiến hành luyện, kim loại được đốt nóng tới
nhiệt độ cao T rồi làm lạnh từ từ để nó kết tinh ở cấu hình năng lượng thấp Mục
đích là để tăng kích thước của tinh thể và làm giảm những khuyết điểm của kim loại
đó (tối ưu toàn cục) Nếu việc làm lạnh không xảy ra từ từ thì kim loại sẽ bị đông
Trang 28lạnh ở một trạng thái không ổn định (tối ưu hóa địa phương) [17]
Thuật toán luyện kim sử dụng T với vai trò là biến điều khiển toàn cục Ban đầu, T được gán một giá trị rất lớn và sau đó được giảm dần xuống Trong quá trình
tìm kiếm, SA chọn ngẫu nhiên lời giải láng giềng của lời giải hiện tại để thay thế
với một xác suất phụ thuộc vào sự chênh lệch giữa giá trị hàm mục tiêu và T Công
việc này được gọi là quá trình tối ưu Quá trình này sẽ được tiếp diễn cho đến khi cực tiểu toàn cục được tìm thấy hoặc đến khi tổng số bước thay thế vượt quá một
giá trị tối đa đã định nghĩa từ trước Giá trị của T được giảm sau khi có sự cân bằng
nhiệt xảy ra
Thuật toán luyện kim có thể vượt qua các giá trị tối ưu địa phương nhờ sử
dụng tham số T Tuy nhiên, giá trị T ban đầu nên là bao nhiêu, giảm xuống như thế
nào lại tùy thuộc vào từng bài toán cụ thể và thường phải tiến hành thực nghiệm để lựa chọn ra các thông số phù hợp
Tìm kiếm địa phương (Local search)
Tương tự như phương pháp mô phỏng luyện kim, tìm kiếm địa phương cũng khám phá không gian lời giải bằng cách tại mỗi bước cố gắng chuyển đến các lời giải láng giềng của lời giải hiện tại Tuy nhiên, khác với SA, phương pháp tìm kiếm địa phương chỉ chuyển đến lời giải láng giềng khi lời giải đó có giá trị hàm mục tiêu tốt hơn
Cụ thể, các bước của phương pháp này như sau:
• Xuất phát từ một phương án nào đó
• Áp dụng một phép biến đổi lên phương án hiện hành để được một phương án
mới tốt hơn phương án đã có
• Lặp lại việc áp dụng phép biến đổi lên phương án hiện hành cho đến khi không còn có thể cải thiện được phương án nữa
Thông thường một phép biến đổi chỉ thay đổi một bộ phận nào đó của phương án hiện hành để được một phương án mới nên phép biến đổi được gọi là phép biến đổi địa phương và do đó phương pháp này có tên là tìm kiếm địa phương [18], [19]
Trang 29Vấn đề của phương pháp này chính là cách tìm phép biến đổi lời giải hiện tại sang lời giải mới có giá trị hàm mục tiêu tốt hơn
Các thuật toán tiến hóa (Evolutionary Algorithms)
Thuật toán tiến hóa là một lớp các thuật toán tìm kiếm dựa trên “quần thể” [20] Khái niệm “quần thể” được sử dụng để chỉ một tập các lời giải khả thi của bài toán Các thuật toán này được xây dựng dựa trên thuyết tiến hóa của Darwin với quan niệm: “Quá trình tiến hóa 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” [10], nghĩa là những cá thể nào thích nghi nhất sẽ có nhiều cơ hội tồn tại và phát triển hơn Quan niệm này được xem như một tiên đề đúng, không chứng minh được nhưng phù hợp với thực tế khách quan [21] Quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước và được duy trì bởi hai quá trình cơ bản: sinh sản
và chọn lọc tự nhiên Trong suốt quá trình tiến hóa, nhờ lai ghép các cá thể (lời giải)
ở thế hệ cha – mẹ mà thế hệ mới luôn được sinh ra để bổ sung thay thế thế hệ cũ Một đặc điểm khác của thuyết tiến hóa là một cá thể mới có thể mang những đặc tính của cha mẹ, đó là biểu hiện của di truyền và cũng có thể mang thuộc tính hoàn toàn khác, chính là biểu hiện của đột biến trong tự nhiên Cá thể nào phát triển hơn, thích nghi hơn với môi trường thì cá thể đó sẽ tồn tại, ngược lại sẽ bị đào thải Đây chính là quá trình chọn lọc tự nhiên
Thuật toán tiến hóa bao gồm giải thuật di truyền (genetic algorithm), lập trình di truyền (genetic programing), chiến lược tiến hóa (evolutionary strategy)… Các thuật toán tiến hóa này, tuy có nhiều điểm khác biệt nhưng đều mô phỏng ba quá trình cơ bản: lai ghép, đột biết và chọn lọc tự nhiên (hình 6), trong đó:
• Phép lai ghép là phép sinh ra cá thể mới bằng cách ghép các nguyên liệu di truyền từ hai hay nhiều cá thể cha mẹ
• Phép đột biến là phép sinh trong đó cá thể con mang thuộc tính không có trong cả cha và mẹ Xác suất của phép đột biến này nhỏ hơn nhiều so với phép lai ghép
• Chọn lọc chính là loại bỏ cá thể xấu ra khỏi quần thể nhờ quá trình đánh giá
Trang 30Thời điểm quá trình chọn lọc hoàn thành thì ta nói kết thúc một thế hệ tiến hóa
Hình 6: Sơ đồ thuật toán tiến hóa
Trong số những thuật toán tiến hóa, giải thuật di truyền được biết đến nhiều hơn cả Đây cũng là giải thuật mà tác giả chọn lựa để giải quyết bài toán được ra trong chương 3 sau đây Vì lẽ đó, phần tiếp theo của chương sẽ được dành để trình bày rõ hơn về giải thuật di truyền, các đặc tính và các thành phần xây dựng nên giải thuật này
3.Gi ải thuật di truyền
Vào đầu những năm 1960s, nhà khoa học người Mỹ gốc Ấn, John Henry Holland, lần đầu tiên đưa ra ý tưởng về giải thuật di truyền Mục đích ban đầu của ông là để hiểu rõ hiện tượng thích nghi (adaptation) xảy ra trong tự nhiên từ đó phát triển các kỹ thuật đưa tính thích nghi tự nhiên vào hệ thống tính toán Sau đó, ông cùng các sinh viên của mình phát triển ý tưởng này và đến năm 1975, giải thuật di
truyền chính thực được trình bày trong cuốn sách Adaptation in Natural and Artificial Systems (Thích nghi trong tự nhiên và trong các hệ thống nhân tạo)
Sau này, giải thuật di truyền được xếp vào lớp thuật toán tiến hóa bởi giải thuật này mô phỏng tiến hóa sinh học trong tự nhiên và cũng tuân theo thuyết tiến hóa của Darwin với mục đích tìm ra lời giải tối ưu hoặc gần tối ưu
Trang 31Các bước của giải thuật di truyền bao gồm 5 bước: Mã hóa cá thể, khởi tao quần thể, lai ghép, đột biến, chọn lọc Sau đây, tác giả sẽ trình bày chi tiết của từng bước:
Một số cách mã hóa truyền thống hay được sử dụng là:
• Mã hóa nhị phân
• Mã hóa hoán vị
• Mã hóa số thực
Mã hóa nhị phân sử dụng một chuỗi các bit (0, 1) để biểu diễn lời giải Ví dụ
như bài toán tìm x để tối thiểu hàm f trong mục 1.2, tùy thuộc vào độ chính xác mong muốn mà ta có thể sử dụng một số lượng bit (0, 1) để biểu diễn giá trị của x
trong đoạn [1, 3]
Mã hóa hoán vị thường được sử dụng trong những bài toán tìm hoán vị tối
ưu như bài toán người du lịch, bài toán phân công đã đề cập trong mục 1.1 Khi đó, giả sử lời giải cần tìm là một hoán vị của 5 số tự nhiên từ 1 đến 5, thì ta có thể mã hóa cá thể bởi một dãy số như: 2, 3, 1, 4, 5
Với bài toán tối thiểu hàm f ở mục 1.2, ta cũng có thể sử dụng mã hóa số
thực, nghĩa là coi mỗi số thực bất kỳ trong đoạn [1, 3] là một cá thể Tuy nhiên, cách mã hóa này sẽ làm cho phép lai ghép gặp khó khăn để sinh ra một cá thể mới như được trình bày trong mục 3.3 dưới đây
Trong nhiều bài toán, khi lời giải có nhiều thành phần, thì những thành phần
Trang 32đó thường được gọi là nhiễm sắc thể hay gen để thể hiện rõ cấu trúc Tuy nhiên, về bản chất, các khái niệm này chỉ là cách gọi để phân biệt các mức cấu tạo nên một lời giải Ta hoàn toàn có thể gọi cá thể là gen hay nhiễm sắc thể nếu điều đó không gây hiểu lầm cho người đọc
3.2.Kh ởi tạo quần thể
Sau khi tìm được cách mã hóa cá thể, bước tiếp theo trong giải thuật di truyền là khởi tạo quần thể Đây chính là bước thể hiện rõ nhất đặc điểm của giải thuật này, đó là tìm kiếm dựa trên quần thể Và như đã giải thích ở trên, quần thể chính là cách gọi một tập các lời giải chấp nhận được của bài toán Hay chính là một tập các cá thể Như vậy, có thể thấy, việc khởi tạo quần thể chính là việc sinh ra
các cá thể với một số lượng nhất định, được gọi là kích thước quần thể
Và cũng tương tự như cách mã hóa cá thể, có rất nhiều cách để khởi tạo quần thể Thông thường, người ta thường chọn cách khởi tạo ngẫu nhiên, nghĩa là tạo ra các lời giải một cách ngẫu nhiên, miễn sao đảm bảo đó là một cá thể
Ngoài ra, khởi tạo hướng tốt (heuristic) cũng được sử dụng để đưa vào quần thể ban đầu những cá thể có chất lượng không quá tồi với hy vọng quần thể sẽ tìm
ra những cá thể mới tốt hơn từ những cá thể này và như vậy sẽ có nhiều cơ hội thu được kết quả tối ưu hơn Tuy nhiên, phương pháp khởi tạo hướng tốt không nên quá phức tạp vì thông thường lời giải tốt hơn sẽ được tìm thấy trong quá trình tối ưu sau
đó Thuật toán tham lam có thể được sử dụng để thực hiện điều này bởi tính đơn giản và hiệu quả lời giải của nó
Người ta đôi khi cũng kết hợp cả hai phương pháp này để khởi tạo quần thể lời giải ban đầu với mục đích tạo ra sự đa dạng cho quần thể