Nó là sự kết hợp giữa thuật toán Hill Climbing và cơ chế giảm nhiệt và được sử dụng để giải quyết các bài toán tối ưu hóa với không gian tìm kiếm lớn và hàm mục tiêu phức tạp.1.2.. Nhiều
Trang 1MỤC LỤC
I Giới thiệu về Simulated Annealing 1
1 Khái quát và lịch sử phát triển của thuật toán 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
Đề tài SIMULATED ANNEALING
MÔN HỌC: TRÍ TUỆ NHÂN TẠO
GVHD: ThS Lê Minh Tân
Nhóm sinh viên thực hiện :
Lê Nguyễn Bảo Nguyễn Thiện Tâm
21110374 21110637
TP Hồồ Chí Minh , tháng 3 năm 2023
Trang 22 Tại sao phải sử dụng Simulated Annealing trong tìm kiếm cục bộ 2
3 Ý tưởng của thuât toán 2
II Các vấn đề cơ bản về Simulated Annealing……… 2
1 Sự giống và khác giữa Simulated Annealing và các phương pháp tìm kiếm cục bộ khác 2
2 Giới thiệu các khái niệm quan trọng 3
3 Nguyên lí hoạt động của Simulated annealing 4
III Thuật toán 5
1 Thuật toán Simulated Annealing và các bước thực hiện 5
2 Mô tả chi tiết về các bước trong thuật toán, cách thực hiện và các quyết định quan trọng trong quá trình tìm kiếm 7
IV Ứng dụng, ưu điểm và nhược điểm 8
1.Ứng dụng 8
2 Ưu điểm và nhược điểm 8
V Kết luận 9
1 Tổng kết về Simulated Annealing và vai trò của nó trong tìm kiếm cục bộ 9
2 Đề cập đến hướng phát triển trong tương lai 10
Trang 3I Giới thiệu về Simulated Annealing
1 Khái quát và lịch sử phát triển của thuật toán Simulated Annealing
1.1 Khái quát
Simulated Annealing là một thuật toán tối ưu hóa đặc biệt trong số các thuật toán tìm kiếm Thuật toán này lấy cảm hứng từ quá trình làm mát kim loại trong công nghiệp
Nó là sự kết hợp giữa thuật toán Hill Climbing và cơ chế giảm nhiệt và được sử dụng để giải quyết các bài toán tối ưu hóa với không gian tìm kiếm lớn và hàm mục tiêu phức tạp
1.2 Lịch sử phát triển của Simulated Annealing từ khi ra đời cho đến nay
Thuật toán Simulated Annealing có tiền thân là thuật toán Monte Carlo năm 1953 của nhóm Metropolis Năm 1982, thuật toán Simulated Annealing được đề xuất bởi nhà toán học người Mỹ Scott Kirkpatrick và công bố trước công chúng vào năm 1983 Sau khi được công bố, Simulated Annealing trở thành một trong những phương pháp tìm kiếm phổ biến nhất và được áp dụng rộng rãi trong các bài toán tối ưu Nhiều nghiên cứu chỉ ra rằng nó có thể giải quyết các bài toán tối ưu lớn và phức tạp trong nhiều lĩnh vực như mạng lưới điện, quản lý sản xuất và lập lịch
Trong những năm 1990, hiều nghiên cứu tiếp tục thực hiện trên thuật toán này.n Các nhà nghiên cứu tập trung vào việc tối ưu hóa hiệu suất và thời gian chạy của thuật toán, đưa ra được nhiều nghiên cứu cải tiến như:
Parallel Simulated annealing: sử dụng nhiều quá trình hoạt động song song để tìm kiếm các giải pháp tối ưu trong thời gian ngắn hơn
Adaptive Simulated Annealing: tự động điều chỉnh tham số của thuật toán để đạt được kết quả tối ưu
Fast Simulated Annealing: sử dụng một hàm nhiệt mới để tăng tốc quá trình tìm kiếm
Quantum Simulated Annealing: áp dụng các nguyên lí của lý thuyết lượng tử vào thuật toán Simulated Annealing để cải thiện tính hiệu quả và độ chính xác của nó Ngày nay, Simulated Annealing vẫn là một trong những thuật toán tối ưu hóa quan trọng và được sử dụng rộng rãi Các nghiên cứu vẫn tiếp tục được thực hiện để cải thiện hiệu suất và tốc độ của thuật toán, đồng thời áp dụng thuật toán trong các lĩnh vực ứng dụng khác nhau
2 Tại sao phải sử dụng Simulated Annealing trong tìm kiếm cục bộ?
Trang 4Simulated Annealing có khả năng thoát khỏi các điểm cực trị cục bộ Trong tìm kiếm cục bộ thông thường, một thuật toán tối ưu hóa có thể bị rơi vào một điểm cực trị cục bộ và không thể tiếp tục di chuyển để tìm ra giá trị tối ưu toàn cục Simulated Annealing giúp tránh được điều này bằng cách cho phép thuật toán di chuyển theo một số lượng lớn các giải pháp khác nhau trong không gian tìm kiếm, bao gồm cả các giải pháp không tối ưu Nghĩa là trong quá trình tìm kiếm, thuật toán có thể chấp nhận các giải pháp không tối ưu để tránh rơi vào các điểm cực trị cục bộ và tiếp tục di chuyển trên không gian tìm kiếm để tìm kiếm giải pháp tối ưu toàn cục
Hơn nữa, Simulated Annealing có thể áp dụng cho các bài toán tối ưu hóa liên tục hoặc rời rạc, và không yêu cầu hàm mục tiêu phải có tính khả vi hay đạo hàm liên tục Tóm lại, Simulated Annealing là một phương pháp tìm kiếm hiệu quả và linh hoạt
để tìm kiếm giá trị tối ưu trong không gian tìm kiếm, đặc biệt là trong các trường hợp mà các phương pháp tìm kiếm cục bộ truyền thống có thể bị rơi vào các điểm cực trị cục bộ
3 Ý tưởng của thuật toán
Thuật toán bắt đầu từ một giải pháp ngẫu nhiên và thay đổi từng thành phần để tìm
giải pháp tốt hơn Nếu có giải pháp tốt hơn giải pháp hiện tại nó sẽ được chấp nhận Nếu không, nó có thể được chấp nhận với một xác suất nhất định Lặp đi lặp lại quá trình này cho đến khi tìm được giải pháp tối ưu nhất
II Các vấn đề cơ bản về Simulated Annealing
1 Sự giống và khác giữa Simulated Annealing và các phương pháp tìm kiếm cục bộ khác.
Simulated Annealing (SA) 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 với mục tiêu tìm ra giá trị tối ưu của một hàm mục tiêu Các phương pháp tìm kiếm cục bộ khác, chẳng hạn như Gradient Descent, cũng được sử dụng
để giải quyết các bài toán tối ưu hóa Dưới đây là những điểm giống và khác nhau giữa
SA và các phương pháp tìm kiếm cục bộ khác:
Điểm giống:
Cả SA và các phương pháp tìm kiếm cục bộ khác đều tập trung vào việc tìm kiếm một giá trị tối ưu của một hàm mục tiêu
Cả SA và các phương pháp tìm kiếm cục bộ khác đều có thể bị mắc kẹt ở các điểm tối ưu cục bộ nếu không được thiết lập đúng
Điểm khác nhau:
Trang 5SA không yêu cầu hàm mục tiêu phải khả vi hay đạo hàm liên tục, trong khi các phương pháp tìm kiếm cục bộ khác như Gradient Descent cần phải tính toán đạo hàm của hàm mục tiêu
SA có khả năng vượt qua các điểm tối ưu cục bộ, trong khi các phương pháp tìm kiếm cục bộ khác có thể bị mắc kẹt ở các điểm tối ưu cục bộ
SA có thể xác định đường đi tìm kiếm dựa trên một lịch trình tìm kiếm được thiết lập trước, trong khi các phương pháp tìm kiếm cục bộ khác thường chỉ di chuyển từ điểm hiện tại đến điểm tiếp theo theo một chiến lược đơn giản
SA có thể được sử dụng để giải quyết các bài toán tối ưu hóa phi tuyến, trong khi các phương pháp tìm kiếm cục bộ khác thường được sử dụng để giải quyết các bài toán tối ưu hóa tuyến tính
2 Giới thiệu các khái niệm quan trọng:
2.1 Hàm mục tiêu (Objective function)
Hàm mục tiêu là một hàm số được sử dụng để đánh giá độ tốt của một giải pháp
Nó có thể là một hàm đơn giản hoặc phức tạp, tùy thuộc vào bài toán cụ thể mà ta đang giải quyết Trong bài toán tối ưu ta thường muốn tìm ra giải pháp tốt nhất, tức là giá trị của hàm mục tiêu đạt giá trị nhỏ nhất hoặc lớn nhất
Ví dụ, trong bài toán tìm kiếm đường đi ngắn nhất giữa hai điểm trên bản đồ, hàm mục tiêu có thể là tổng trọng số của các cạnh trong đường đi
2.2 Giải pháp (Solution)
Giải pháp trong SA là một tập hợp các giá trị được đề xuất để giải quyết một bài toán Với mỗi bài toán, giải pháp có thể được biểu diễn bằng các đối tượng khác nhau, ví
dụ như một chuỗi các ký tự, một mảng các số, hoặc một đồ thị,… Mỗi giải pháp sẽ được đánh giá độ tốt của nó thông qua hàm mục tiêu Hàm mục tiêu đạt được giá trị tối ưu nhất thì giải pháp đó là giải pháp tối ưu
Ví dụ, trong bài toán tìm kiếm đường đi ngắn nhất giữa hai điểm trên bản đồ, giải pháp có thể là một danh sách các điểm cần đi qua
2.3 Vùng lân cận (Neighborhood)
Vùng lân cận của một giải pháp là tập hợp các giải pháp khác mà có thể tạo ra bằng cách thực hiện một số thay đổi nhỏ trên giải pháp ban đầu Việc xác định và khai thác vùng lân cận là một yếu tố quan trọng trong việc áp dụng các phương pháp tìm kiếm cục bộ để tìm kiếm giải pháp tốt hơn Thông thường, vùng lân cận được xác định dựa trên tính chất cấu trúc của bài toán, và phải được thiết kế để có thể khả thi và hiệu quả cho việc khai thác
Trang 6Ví dụ, trong bài toán tìm kiếm đường đi ngắn nhất giữa hai điểm trên bản đồ, ta có một giải pháp để đi A đến D là {A,B,C,D} thì vùng lân cận có thể là một giải pháp khác bằng cách đổi thứ tự 2 điểm trong đường đi như {A,C,B,D}
2.4 Quá trình làm mát (Annealing process)
Quá trình làm mát là quá trình điều chỉnh nhiệt độ của hệ thống giả lập để giảm dần độ “nóng” của nó theo một lịch trình xác định Trong quá trình này, thuật toán chấp nhận các giải pháp kém hơn một cách ngẫu nhiên để tránh bị mắc kẹt ở tối ưu cục bộ, nhưng giảm dần tần suất chấp nhận các giải pháp kém hơn khi nhiệt độ giảm xuống
2.5 Biến nhiệt độ (Temperature)
Biến nhiệt độ là một yếu tố quan trọng trong quá trình làm mát Biến này quyết định mức độ chấp nhận của các giải pháp tối ưu tạm thời Nó giảm dần trong quá trình tìm kiếm, điều này có nghĩa là các giải pháp tối ưu tạm thời được chấp nhận dễ dàng hơn
ở những giai đoạn đầu của quá trình tìm kiếm, nhưng khi nhiệt độ giảm dần, thì xác suất chấp nhận của các giải pháp này cũng giảm dần
2.6 Hàm giảm nhiệt độ (Cooling Schedule)
Hàm giảm nhiệt độ là một hàm số quyết định tốc độ giảm nhiệt của hệ thống giả lập trong quá trình làm mát Hàm giảm nhiệt độ có thể là một hàm số đơn giản, chẳng hạn như hàm tuyến tính hoặc cũng có thể là một hàm số phức tạp hơn
2.7 Hệ số giảm nhiệt (Cooling rate)
Hệ số giảm nhiệt là một hằng số quyết định tốc độ giảm nhiệt của hệ thống giả lập trong quá trình làm mát
3 Nguyên lý hoạt động của Simulated Annealing.
Nguyên lý hoạt động của Simulated Annealing bao gồm:
1 Ban đầu, chọn một giải pháp ngẫu nhiên cho bài toán tối ưu và khởi tạo các tham số cần thiết
2 Thực hiện vòng lặp, trong mỗi lần lặp:
Tìm một giải pháp ngẫu nhiên gần giải pháp hiện tại
So sánh giá trị hàm mục tiêu của giải pháp mới và giải pháp hiện tại
Nếu giá trị hàm mục tiêu của giải pháp mới tốt hơn giá trị của giải pháp hiện tại, chấp nhận giải pháp mới
Nếu giá trị hàm mục tiêu của giải pháp mới xấu hơn giá trị của giải pháp hiện tại, chấp nhận giải pháp mới với xác suất nhất định dựa trên biến nhiệt độ và sự chênh lệch về giá trị hàm mục tiêu của giải pháp hiện tại và giải pháp mới
Trang 7Giảm dần nhiệt độ theo một lịch trình đã cho.
3 Kết quả trả về giải pháp tối ưu được tìm thấy sau khi kết thúc vòng lặp
III Thuật toán
1 Thuật toán Simulated Annealing và các bước thực hiện
SA sử dụng biến nhiệt độ (temperature) được khởi tạo một giá trị cao ban đầu (giá trị càng cao kết quả càng tối ưu) và sẽ giảm xuống sau mỗi vòng lặp cho đến một nhiệt độ cuối do người dùng cài đặt
SA có xác suất chấp nhận các giải pháp xấu hơn trong quá trình tìm kiếm, xác suất này phụ thuộc vào biến nhiệt độ (temperature) và sự chênh lệch về giá trị hàm mục tiêu của giải pháp mới và giải pháp cũ (delta_energy) Ban đầu khi nhiệt độ cao các kết quả xấu sẽ được chấp nhận với xác suất cao hơn và giảm dần khi nhiệt độ giảm thì xác suất chấp nhận cũng giảm dần Điều này hoàn toàn đúng với quá trình luyện kim, khi nhiệt độ cao các phân tử sẽ chuyển động hỗn độn và ổn định lại lúc nhiệt độ giảm
Trang 8Các bước thực hiện thuật toán:
B1: Khởi tạo ngẫu nhiên giải pháp ban đầu, nhiệt độ đầu, nhiệt độ cuối và hệ số giảm nhiệt
Cách đơn giản nhất là tạo ra 1 danh sách từ nhỏ đến lớn làm giải pháp ban đầu, nhưng trong quá trình thực nghiệm, việc chọn 1 giải pháp ngẫu nhiên thường đưa ra các kết quả tốt hơn
Ngoài ra, để tối ưu nhất có thể, giải pháp ban đầu có thể được khởi tạo bằng một thuật toán tìm kiếm cục bộ( VD: hill climbing) để tạo khởi điểm tốt hơn
B2: Lặp lại quá trình giảm nhiệt độ
Sinh ngẫu nhiên một lân cận của giải pháp hiện thời
Có thể sinh ngẫu nhiên bằng cách chọn hai đối tượng trong giải pháp hiện thời và đổi chỗ cho nhau
Có thể tối ưu bằng cách sinh ra nhiều lân cận và chọn trong số lân cận đó giải pháp tốt nhất Nhưng cần cân nhắc vì việc đưa ra quá nhiều lân cận để chọn dễ gây mắc kẹt tại một cực trị cục bộ
Tiến hành tính hàm mục tiêu của giải pháp hiện tại và của lân cận
Tiến hành đánh giá độ tốt của giải pháp bằng hàm mục tiêu, và tính chênh lệch với giải pháp hiện tại
- Nếu giải pháp tốt hơn giải pháp hiện tại, chấp nhận giải pháp mới làm giải pháp hiện tại
- Nếu giải pháp xấu hơn giải pháp hiện tại, chấp nhận giải pháp mới theo
1 hàm xác suất chấp nhận P được định nghĩa trước
Giảm nhiệt độ T theo hàm giảm nhiệt độ được định nghĩa trước
B3: Trả về giải pháp tốt nhất trong quá trình giảm nhiệt
2 Mô tả chi tiết về các bước trong thuật toán, cách thực hiện và các quyết định quan trọng trong quá trình tìm kiếm
Giá trị của nhiệt độ ban đầu (temperature), hệ số làm mát (cooling_rate), nhiệt
độ cuối: quyết định thời gian thuật toán chạy và độ nhạy cảm của thuật toán Nếu số vòng lặp ít sẽ không thể tìm được giải pháp tối ưu Nếu số vòng lặp lớn
sẽ tốn nhiều thời gian tính toán
Trang 9Hàm giảm nhiệt độ: sau mỗi vòng lặp nhiệt độ sẽ giảm xuống theo 1 hệ số giảm nhiệt (cooling_rate) và temperature = temperature*(1-cooling_rate)
Hàm xác suất chấp nhận: P = exp(-delta_energy/temperature)
- Hàm xác suất chấp nhận phụ thuộc vào giá trị hàm mục tiêu của giải pháp mới, giải pháp hiện tại và nhiệt độ temperature
- Khi xây dựng hàm xác suất chấp nhận cần chú ý, khi temperature dần tiến
về 0 thì xác suất cũng phải tiến về 0 và luôn dương Điều này có nghĩa là khi temperature càng nhỏ thuật toán sẽ càng ưu tiên di chuyển đến giải pháp tốt hơn tránh việc đi ngược lại
- Để quyết định giải pháp mới có được chấp nhận không, ta so sánh kết quả hàm mục tiêu với một số ngẫu nhiên trong đoạn [0;1]
Chọn hàm:
· Lựa chọn hàm mũ với cơ số e để làm hàm mục tiêu
· Chọn hàm mũ vì nó có tính chất tăng đột biến nhanh Nếu sự chênh lệch giữa 2 giá trị nhỏ, sẽ cho kết quả gần 1 ngược lại khi chênh lệch lớn sẽ cho kết quả gần bằng 0, xác suất chấp nhận sẽ giảm đáng kể Khi nhiệt độ giảm dần -delta_energy/temperature sẽ giảm dần dẫn đến xác suất chấp nhận cũng sẽ giảm đáng kể Điều này hoàn toàn đúng với quá trình luyện kim trong thực tế
· Hàm mục tiêu: tùy thuộc vào yêu cầu bài toán để xây dựng hàm mục tiêu (như tổng đường đi, tổng chi phí, tổng thời gian) Tuy cách đặt tên khác nhau nhưng điều quan trọng là hàm mục tiêu phải đánh giá được độ tốt của giải pháp
IV Ứng dụng, ưu điểm và nhược điểm
1 Ứng dụng
Trang 10Simulated annealing (SA) là một thuật toán tối ưu hóa được sử dụng để tìm kiếm giải pháp tối ưu trong các bài toán phức tạp và không đồng nhất Dưới đây là một số ứng dụng của simulated annealing:
Tối ưu hóa địa điểm: SA có thể được sử dụng để tìm ra giải pháp tối ưu cho bài toán tối ưu hóa địa điểm (trong đó mục tiêu là tìm ra một tập hợp các vị trí tốt nhất cho các cơ sở, nhà máy hoặc văn phòng)
Tối ưu hóa mạng lưới điện: SA có thể được sử dụng để tối ưu hóa mạng lưới điện bằng cách tối thiểu hóa chi phí cài đặt và bảo trì
Thiết kế mạch điện tử: SA có thể được sử dụng để thiết kế mạch điện tử bằng cách tối ưu hóa kích thước và vị trí của các thành phần mạch điện tử
Lập lịch sản xuất: SA có thể được sử dụng để lập lịch sản xuất trong các nhà máy hoặc các trung tâm phân phối bằng cách tối thiểu hóa thời gian chờ đợi và chi phí
Tìm kiếm đường đi tối ưu: SA có thể được sử dụng để tìm kiếm đường đi tối ưu trong các bài toán tìm kiếm đường đi như bài toán TSP (Traveling Salesman Problem)
Tóm lại, simulated annealing có thể được sử dụng trong nhiều lĩnh vực khác nhau
để tìm kiếm giải pháp tối ưu cho các bài toán phức tạp và không đồng nhất
2 Ưu điểm và nhược điểm
2.1 Ưu điểm
Simulated annealing có một số ưu điểm sau:
SA có thể giải quyết các bài toán không có giải pháp tối ưu hoặc không gian tìm kiếm quá lớn và phức tạp bởi đơn giản SA chỉ cần các kết quả ở mức chấp nhận được chứ không cần phải là tối ưu nhất
Không yêu cầu kiến thức chuyên môn sâu rộng về bài toán, mà chỉ cần một
mô hình tìm kiếm đơn giản
Tránh bị rơi vào các tối ưu cục bộ và có khả năng tìm kiếm các tối ưu toàn cục
Dễ dàng tùy chỉnh và tối ưu hóa với các thông số như nhiệt độ ban đầu, hệ
số giảm nhiệt, điều kiện dừng
Cho phép tìm kiếm giải pháp tối ưu mà không cần đánh giá toàn bộ không gian tìm kiếm, do đó có thể tiết kiệm thời gian và tài nguyên tính toán
Cho phép tìm kiếm trên không gian liên tục hoặc không liên tục, nên nó có thể được sử dụng cho nhiều loại bài toán
Tóm lại, simulated annealing là một phương pháp tìm kiếm đơn giản, linh hoạt và hiệu quả cho các bài toán phức tạp, với nhiều ưu điểm như khả năng tìm kiếm giải pháp tối ưu và dễ dàng tùy chỉnh