Nó được sử dụng để giải quyết các bài toán tối ưu trong nhiều lĩnh vực khác nhau như kế hoạch hóa sản xuất, quản lý vận tải, lập lịch, tối ưu hóa mạng và nhiều bài toán khác.Ngoài ra, Lo
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
BÁO CÁO GIỮA KỲ
ĐỀ TÀI: THUẬT TOÁN LOCAL BEAM SEARCH
GVHD: Lê Minh Tân
1 Đặng Thanh Bình 21110380 2 Đào Tấn Kiệt
3 Lê bá Điền
4 Hoàng Đình Minh Thông 5 Nguyễn Thiện Luân 6 Nguyễn Đức Nhân 7 Hồ Phương Đông
Tp Hồ Chí Minh, tháng 3 năm 2023
Trang 22.2 Mô tả các phương pháp để tạo ra các bộ khởi tạo (initial state sets) cho
3.2 Các ví dụ về các bài toán có thể giải quyết bằng thuật toán 10 3.3 Kết quả đạt được khi áp dụng thuật toán trên các bài toán thực tế 10
Trang 3MỞ ĐẦU
1 Lí do chọn đề tài
Thuật toán Local beam search là một trong những thuật toán quan trọng trong lĩnh vực trí tuệ nhân tạo Nó được sử dụng để giải quyết các bài toán tối ưu trong nhiều lĩnh vực khác nhau như kế hoạch hóa sản xuất, quản lý vận tải, lập lịch, tối ưu hóa mạng và nhiều bài toán khác.
Ngoài ra, Local beam search cũng được sử dụng trong các bài toán tìm kiếm lời giải của các bài toán NP (nondeterministic polynomial time) -khó như bài toán TSP (Traveling Salesman Problem), bài toán cây Steiner, bài toán phân bổ tài nguyên và nhiều bài toán khác.
Bên cạnh đó, Local beam search cũng là một trong những phương pháp được sử dụng trong lĩnh vực học máy để tìm kiếm các bộ tham số tối ưu cho các mô hình học máy Nó được sử dụng để tìm kiếm các bộ tham số tối ưu cho các mô hình học sâu như mạng neural, mô hình học tăng cường và nhiều mô hình khác.
Thuật toán Local beam search là một thuật toán tìm kiếm rất hữu ích trong việc giải quyết các bài toán tối ưu Nó cho phép tìm kiếm các giải pháp tốt nhất trong một tập hợp các giải pháp có thể Vì vậy, việc tìm hiểu và nghiên cứu thuật toán này là rất quan trọng và có ý nghĩa trong việc nghiên cứu và giải quyết các bài toán tối ưu Ngoài ra, Local beam search cũng là một trong những thuật toán được sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạo và học máy Vì vậy, việc nắm vững kiến thức về thuật toán này cũng là một bước quan trọng để có thể phát triển các ứng dụng trí tuệ nhân tạo và học máy trong tương lai.
2 Giới thiệu về thuật toán Local beam search
Thuật toán Local beam search là một thuật toán tìm kiếm cục bộ được sử dụng để giải quyết các bài toán tối ưu hóa Nó thuộc nhóm các thuật toán tìm kiếm địa phương và thường được sử dụng khi không thể áp dụng các phương pháp tìm kiếm toàn cục, như thuật toán tìm kiếm theo chiều sâu hay tìm kiếm theo chiều rộng.
Thuật toán Local beam search thường được sử dụng trong các bài toán tối ưu hóa đa dạng như tối ưu hóa màu sắc đồ thị, tối ưu hóa lịch trình đi lại hay tối ưu hóa các hàm số phi tuyến Tuy nhiên, cũng có những hạn chế của thuật toán này, ví dụ như khó khăn trong việc tránh các điểm cực đại địa phương.
Trang 4NỘI DUNG
Chương 1: Cơ sở lí thuyết 1.1 Lịch sử ra đời
Thuật toán Local beam search được giới thiệu đầu tiên vào năm 1972 bởi nhà khoa học thuộc trường Đại học Stanford, Nils Nilsson Thuật toán này được sử dụng để giải quyết bài toán tối ưu hóa trên mạng lưới điện.
Sau đó, trong những năm 1980, Local beam search trở thành một trong những thuật toán tìm kiếm địa phương phổ biến nhất, được áp dụng trong nhiều lĩnh vực như kỹ thuật, kinh tế và khoa học máy tính.
Trong thập niên 1990, các nhà nghiên cứu đã phát triển và cải tiến thuật toán Local beam search, bao gồm việc kết hợp với các thuật toán tìm kiếm khác để tăng hiệu quả tìm kiếm.
Hiện nay, thuật toán Local beam search vẫn được sử dụng rộng rãi trong các bài toán tối ưu hóa và là một trong những thuật toán quan trọng trong lớp các thuật toán tìm kiếm địa phương.
1.2 Tổng quan về thuật toán Local beam search
Thuật toán Local beam search là một thuật toán tìm kiếm cục bộ được sử dụng để giải quyết các bài toán tối ưu hóa Nó được áp dụng để tìm kiếm các giá trị tối ưu của một hàm mục tiêu trong không gian nhiều chiều.
Thuật toán bắt đầu với một tập hợp các trạng thái khởi tạo, được gọi là beam, và thực hiện tìm kiếm địa phương trên các trạng thái này Trong quá trình tìm kiếm, thuật toán sẽ tạo ra các trạng thái mới từ các trạng thái hiện tại bằng cách áp dụng các phép biến đổi Các trạng thái mới này sẽ được lựa chọn dựa trên hàm mục tiêu, và chỉ những trạng thái tốt nhất sẽ được giữ lại để sử dụng cho vòng lặp tiếp theo.
Quá trình này được lặp lại cho đến khi thuật toán tìm thấy giải pháp tối ưu hoặc đạt tới một số tiêu chí dừng khác Trong trường hợp của thuật toán Local beam search, các tiêu chí dừng thường là số lượng vòng lặp hoặc giá trị của hàm mục tiêu đã đạt tới một ngưỡng nhất định.
Trang 5Thuật toán Local beam search có thể được mở rộng để xử lý các bài toán với nhiều hơn một beam Với mỗi beam, thuật toán sẽ thực hiện tìm kiếm địa phương và lựa chọn ra các trạng thái tốt nhất để sử dụng cho vòng lặp tiếp theo Sau đó, các trạng thái tốt nhất từ tất cả các beam sẽ được lựa chọn để tiếp tục tìm kiếm.
Thuật toán Local beam search là một trong những thuật toán tìm kiếm địa phương phổ biến nhất và được sử dụng trong nhiều lĩnh vực như kỹ thuật, kinh tế và khoa học máy tính.
1.3 Cấu trúc của thuật toán Local beam search
Cấu trúc của thuật toán Local beam search gồm các thành phần sau: Khởi tạo: Tạo ra tập hợp các trạng thái khởi đầu (initial states).
Tìm kiếm: Lặp lại việc tạo ra các trạng thái con từ các trạng thái hiện tại, tính toán hàm giá trị cho các trạng thái con, lựa chọn tập hợp con tốt nhất và lặp lại cho đến khi tìm được giải pháp tối ưu hoặc đáp ứng được điều kiện dừng.
Cập nhật: Cập nhật các trạng thái hiện tại để tiếp tục quá trình tìm kiếm, lựa chọn tập hợp con tốt nhất và lặp lại cho đến khi tìm được giải pháp tối ưu hoặc đáp ứng được điều kiện dừng.
Kết thúc: Kết thúc thuật toán sau khi tìm được giải pháp tối ưu hoặc đáp ứng được điều kiện dừng.
Điều kiện dừng: Điều kiện để dừng thuật toán có thể là đạt đến giới hạn số lần lặp lại, đạt đến giới hạn thời gian, hoặc khi tìm được giải pháp tối ưu.
Cấu trúc của thuật toán Local beam search là một vòng lặp chính trong đó tìm kiếm được thực hiện bằng cách tạo ra các trạng thái con, tính toán hàm giá trị, lựa chọn tập hợp con tốt nhất và cập nhật các trạng thái hiện tại Quá trình này lặp lại cho đến khi tìm được giải pháp tối ưu hoặc đáp ứng được điều kiện dừng.
Trang 6Chương 2: Thuật toán
2.1 Các bước thực hiện của thuật toán
Thuật toán Local beam search là một thuật toán tìm kiếm trong không gian trạng thái để tìm kiếm một lời giải tối ưu cho bài toán tối ưu hóa Các bước thực hiện thuật toán Local beam search như sau:
Bước 1: Khởi tạo tập các trạng thái bắt đầu (có thể được chọn ngẫu nhiên hoặc dựa trên thông tin khác, ví dụ như một giải pháp khởi đầu)
Bước 2:Tính toán hàm giá trị (điểm số) cho các trạng thái trong tập ban đầu Bước 3: Với mỗi trạng thái, tạo ra các trạng thái con bằng cách thực hiện một số hành động có thể từ trạng thái đó.
Bước 4: Tính toán hàm giá trị cho tất cả các trạng thái con mới được tạo ra Bước 5: Lựa chọn một tập hợp con của các trạng thái con tốt nhất (có điểm số cao nhất).
Bước 6: Nếu tập hợp con này chứa một giải pháp tối ưu, kết thúc thuật toán và trả về giải pháp tối ưu đó.
Bước 7: Nếu không, lặp lại các bước 3-6 cho các trạng thái con được chọn để tạo ra các trạng thái con tiếp theo.
Bước 8: Nếu tập hợp trạng thái ban đầu bị loại bỏ hoàn toàn, chọn một tập hợp trạng thái mới và lặp lại các bước 2-7.
Bước 9: Thuật toán sẽ kết thúc sau khi đạt đến số lần lặp tối đa hoặc giới hạn thời gian đã định trước.
Thuật toán Local beam search thực hiện việc tìm kiếm trong không gian trạng thái bằng cách lặp lại việc tạo ra các trạng thái con từ các trạng thái ban đầu, tính toán hàm giá trị cho các trạng thái con đó, lựa chọn các trạng thái con tốt nhất và tiếp tục lặp lại quá trình cho đến khi tìm ra giải pháp tối ưu hoặc đạt đến giới hạn lặp lại hoặc thời gian.
2.2 Mô tả các phương pháp để tạo ra các bộ khởi tạo (initial state sets) cho thuật toán
Trang 7Có nhiều phương pháp để tạo ra các bộ khởi tạo cho thuật toán Local beam search, tùy thuộc vào loại bài toán và mục đích sử dụng của thuật toán Dưới đây là một số phương pháp phổ biến:
Khởi tạo ngẫu nhiên: Phương pháp này đơn giản và hiệu quả nhất, chỉ cần khởi tạo một tập hợp các trạng thái ban đầu ngẫu nhiên và sử dụng chúng để bắt đầu thuật toán Tuy nhiên, phương pháp này không đảm bảo rằng tập hợp khởi tạo chứa các giải pháp tốt cho bài toán.
Tạo bộ khởi tạo từ giải pháp đã biết: Nếu đã biết một giải pháp tốt cho bài toán, có thể sử dụng nó để tạo ra một tập hợp các trạng thái ban đầu Phương pháp này đảm bảo rằng tập hợp khởi tạo chứa các giải pháp tốt, nhưng đôi khi khó khăn để tìm ra một giải pháp tốt ban đầu.
Tạo bộ khởi tạo từ phân tích dữ liệu: Đối với các bài toán liên quan đến dữ liệu, có thể phân tích dữ liệu để tạo ra các trạng thái khởi tạo Ví dụ, trong bài toán phân loại ảnh, có thể sử dụng phương pháp rút trích đặc trưng để tạo ra các trạng thái ban đầu từ ảnh.
Tạo bộ khởi tạo từ các kỹ thuật khác: Ngoài các phương pháp trên, còn có thể sử dụng các kỹ thuật khác để tạo ra các trạng thái khởi tạo Ví dụ, trong bài toán tối ưu hóa điều khiển, có thể sử dụng các kỹ thuật mô hình hóa hệ thống để tạo ra các trạng thái ban đầu.
2.3 Các tham số quan trọng trong thuật toán
Các tham số quan trọng trong thuật toán Local beam search bao gồm:
Số lượng các trạng thái con: Đây là số lượng các trạng thái con được tạo ra
trong mỗi lần lặp của thuật toán Nếu số lượng trạng thái con lớn hơn, thuật toán sẽ có khả năng khám phá nhiều hơn, nhưng đồng thời cũng tăng độ phức tạp tính toán Nếu số lượng trạng thái con quá nhỏ, thuật toán có thể dễ dàng bị mắc kẹt ở một giá trị cục bộ.
Số lần lặp lại: Đây là số lần lặp lại của thuật toán Nếu số lần lặp lại nhiều,
thuật toán sẽ có thời gian để khám phá và tìm kiếm giải pháp tốt nhất Tuy nhiên, nếu số lần lặp lại quá nhiều, thuật toán sẽ trở nên chậm và không hiệu quả.
Hàm đánh giá: Đây là hàm được sử dụng để đánh giá chất lượng của mỗi
trạng thái trong quá trình tìm kiếm Hàm này thường được định nghĩa dựa trên yêu cầu của bài toán cụ thể, và nó cần phải phù hợp với các giải pháp mong muốn.
Trang 8Chiến lược chọn lọc: Đây là cách mà thuật toán chọn ra các trạng thái con
để tiếp tục tìm kiếm Có thể sử dụng các chiến lược như chọn ngẫu nhiên, chọn theo độ ưu tiên hoặc chọn theo một hàm xác suất nhất định.
Phương pháp tạo bộ khởi tạo: Đây là phương pháp tạo ra các trạng thái
ban đầu Phương pháp này cũng ảnh hưởng đến khả năng tìm kiếm của thuật toán.
Kích thước không gian tìm kiếm: Kích thước không gian tìm kiếm cũng
ảnh hưởng đến khả năng tìm kiếm của thuật toán Nếu không gian tìm kiếm quá lớn, thuật toán sẽ tốn nhiều thời gian để tìm kiếm giải pháp Nếu không gian tìm kiếm quá nhỏ, thuật toán có thể dễ dàng bị mắc kẹt ở một giá trị cục
2.4 Ưu điểm
Thuật toán Local beam search có nhiều ưu điểm như:
Tốc độ nhanh: Vì chỉ lưu trữ một số lượng nhỏ các trạng thái con tốt nhất,
Local beam search có thể tìm kiếm và giải quyết các bài toán lớn một cách nhanh chóng.
Dễ dàng cài đặt: Thuật toán Local beam search khá đơn giản và dễ dàng cài
Dễ dàng mở rộng: Thuật toán Local beam search có thể được mở rộng để giải
quyết các bài toán phức tạp hơn bằng cách sử dụng các phương pháp lựa chọn tập hợp con (subset selection) khác nhau.
Không yêu cầu bộ nhớ lớn: Vì chỉ lưu trữ một số lượng nhỏ các trạng thái con
tốt nhất, Local beam search không yêu cầu bộ nhớ lớn.
=> Local beam search là một thuật toán tìm kiếm đơn giản và hiệu quả có thể được sử dụng để giải quyết các bài toán tối ưu trong nhiều lĩnh vực khác nhau 2.5 Nhược điểm
Mặc dù có nhiều ưu điểm, thuật toán Local beam search cũng có một số nhược điểm:
Dễ bị rơi vào cực tiểu địa phương: Local beam search có thể bị rơi vào cực
tiểu địa phương nếu không có các biện pháp để tránh điều này Khi đó, thuật toán sẽ không tìm được giải pháp tối ưu toàn cục.
Trang 9Yêu cầu lựa chọn thủ công của tham số: Để hoạt động hiệu quả, Local beam
search yêu cầu lựa chọn thủ công của số lượng trạng thái con được lưu trữ và sử dụng trong quá trình tìm kiếm.
Không đảm bảo tìm được giải pháp tối ưu toàn cục: Do chỉ lưu trữ một số
lượng nhỏ các trạng thái con tốt nhất, Local beam search không đảm bảo tìm được giải pháp tối ưu toàn cục của bài toán.
=> thuật toán Local beam search là một thuật toán tìm kiếm đơn giản và hiệu quả, nhưng nó cũng có một số hạn chế và nhược điểm Việc áp dụng thuật toán này vào giải quyết các bài toán tối ưu phải được thực hiện một cách cân nhắc và xem xét kỹ lưỡng các giải pháp khác để đảm bảo tìm được giải pháp tối ưu toàn cục của bài toán
2.6 So sánh thuật toán Local beam search với các thuật toán tìm kiếm khác Thuật toán Local beam search có những ưu điểm và nhược điểm so với các thuật toán tìm kiếm khác Dưới đây là một số so sánh:
So với thuật toán tìm kiếm địa phương (local search): Local beam search có thể tìm được giải pháp tốt hơn bởi vì nó có thể khám phá nhiều hướng dẫn đến giải pháp tốt hơn Tuy nhiên, nó có thể dẫn đến giải pháp tốt hơn chỉ khi có nhiều hướng khác nhau.
So với thuật toán tìm kiếm theo chiều sâu (depth-first search): Local beam search không rơi vào trường hợp mắc kẹt trong một nhánh của cây tìm kiếm và không thể di chuyển đến các nhánh khác Nó cũng có thể tìm giải pháp tốt hơn bởi vì nó có thể đánh giá được các giải pháp khác nhau.
So với thuật toán tìm kiếm theo chiều rộng (breadth-first search): Local beam search không đảm bảo tìm ra giải pháp tối ưu vì nó chỉ duy trì một số giải pháp tốt nhất, trong khi breadth-first search sẽ duyệt tất cả các giải pháp có thể Tuy nhiên, Local beam search có thể tìm ra giải pháp tốt hơn nếu không có quá nhiều giải pháp cần duyệt.
So với thuật toán tìm kiếm leo đồi (hill climbing search): Local beam search có khả năng tránh được bị kẹt tại điểm cực trị cục bộ bởi vì nó duy trì nhiều giải pháp tốt hơn Tuy nhiên, nó có thể bỏ lỡ các giải pháp tốt hơn nếu chúng không được nằm trong số các giải pháp tốt nhất.
Tóm lại, Local beam search là một thuật toán tìm kiếm tốt và có thể tìm ra giải pháp tốt hơn so với một số thuật toán tìm kiếm khác, tuy nhiên, nó vẫn có nhược điểm và không đảm bảo tìm được giải pháp tối ưu.
Trang 10Chương 3: Ứng dụng 3.1 Ứng dụng của thuật toán
Thuật toán Local beam search có nhiều ứng dụng trong các lĩnh vực khác nhau, bao gồm:
Tối ưu hóa: Local beam search có thể được sử dụng để tìm kiếm giải pháp tối
ưu cho các bài toán tối ưu hóa trong các lĩnh vực như quản lý sản xuất, quản lý dự án, kế hoạch hóa năng lượng, kế hoạch hóa nguồn lực, quản lý chuỗi cung ứng, v.v.
Trò chơi: Local beam search có thể được sử dụng để tìm kiếm giải pháp tối ưu
cho các trò chơi như trò chơi cờ vua, trò chơi đi cờ, v.v.
Tìm kiếm đường đi: Local beam search có thể được sử dụng để tìm kiếm
đường đi tối ưu cho các bài toán như tìm kiếm đường đi ngắn nhất trong các mạng lưới, tìm kiếm đường đi tối ưu cho robot di động, v.v.
Học máy: Local beam search có thể được sử dụng để giải quyết các bài toán
trong lĩnh vực học máy, chẳng hạn như tối ưu hóa các hàm mất mát, tìm kiếm các siêu tham số tối ưu cho các mô hình học máy, v.v.
Xử lý ngôn ngữ tự nhiên: Local beam search có thể được sử dụng để giải
quyết các bài toán trong lĩnh vực xử lý ngôn ngữ tự nhiên, chẳng hạn như tìm kiếm các câu trả lời phù hợp cho các câu hỏi, tìm kiếm các từ đồng nghĩa hoặc đối nghịch trong văn bản, v.v.
=> Local beam search là một thuật toán rất linh hoạt và có nhiều ứng dụng trong các lĩnh vực khác nhau Các ứng dụng này đều có tính chất tối ưu hóa và tìm kiếm giải pháp tối ưu cho các bài toán khác nhau.
3.2 Ví dụ về các bài toán có thể giải quyết bằng thuật toán
Bài toán TSP (Travelling Salesman Problem): Tìm đường đi ngắn nhất để đi qua tất cả các thành phố một lần và trở về thành phố xuất phát.
Bài toán tìm kiếm từ khóa: Tìm kiếm từ khóa trong một tập văn bản lớn.
Bài toán cắt túi (Knapsack Problem): Cho một tập hữu hạn các vật phẩm có giá trị và khối lượng, tìm cách đựng các vật phẩm vào một túi có giới hạn khối lượng sao cho tổng giá trị của các vật phẩm này là lớn nhất.
3.3 Kết quả đạt được khi áp dụng thuật toán vào các bài toán thực tế