Heuristic là gì?

Noun AI

Trong tìm kiếm không gian trạng thái, heuristic là các luật dùng để chọn những nhánh/ lựa chọn nào có nhiều khả năng nhất dẫn đến một giải pháp chấp nhận được

Noun Software

Nói chung, heuristic là một "quy tắc ngón tay cái" (rule of thumb) hoặc một hướng dẫn tốt để tuân theo khi đưa ra quyết định. Trong khoa học máy tính heuristic có nghĩa tương tự nhưng đề cập cụ thể đến các thuật toán (algorithm).

Khi lập trình phần mềm, các nhà lập trình máy tính hướng đến việc tạo ra các thuật toán hiệu quả nhất để hoàn thành các nhiệm vụ khác nhau. Chúng có thể bao gồm các quy trình đơn giản như sắp xếp số hoặc các chức năng phức tạp như xử lý hình ảnh hoặc video clip. Vì các chức năng này thường chấp nhận nhiều loại đầu vào, nên một thuật toán có thể hoạt động tốt trong một số trường hợp nhất định, trong khi các thuật toán khác lại không tốt lắm.

Ví dụ thuật toán nén ảnh GIF hoạt động tốt trên các hình ảnh nhỏ với ít màu sắc, nhưng không tốt như nén JPEG trên các hình ảnh lớn với nhiều màu sắc. Nếu bạn biết rằng bạn sẽ chỉ xử lý những hình ảnh nhỏ không có nhiều màu sắc, thì tính năng nén GIF sẽ là tất cả những gì bạn cần. Bạn sẽ không phải lo lắng về những hình ảnh lớn, nhiều màu sắc, vì vậy sẽ chẳng ích gì khi tối ưu hóa thuật toán cho những hình ảnh đó. Tương tự như vậy, các lập trình viên máy tính thường sử dụng các thuật toán hoạt động tốt cho hầu hết các tình huống, ngay cả khi chúng có thể hoạt động không hiệu quả đối với các tình huống không phổ biến.

Do đó, một quy trình heuristic có thể bao gồm việc chạy thử nghiệm và nhận kết quả bằng cách thử và sai. Khi nhiều dữ liệu mẫu được kiểm tra hơn, việc tạo một thuật toán hiệu quả để xử lý các loại dữ liệu tương tự trở nên dễ dàng hơn. Như đã nói trước đây, các thuật toán này không phải lúc nào cũng hoàn hảo, nhưng hoạt động tốt trong hầu hết thời gian. Mục tiêu của heuristics là phát triển một quy trình đơn giản tạo ra kết quả chính xác trong một khoảng thời gian có thể chấp nhận được.

Learning English Everyday