Tôi đang đề cập đến câu hỏi ở đây: các thuật toán mạnh mẽ quá phức tạp để thực hiện .
Nếu một thuật toán mạnh, nhưng quá phức tạp để thực hiện, làm thế nào bạn có thể chắc chắn rằng thuật toán này đúng? Nếu không triển khai, bạn sẽ không thể kiểm tra thuật toán trong kịch bản trong thế giới thực và thuật toán phức tạp như vậy có thể chứa lỗi, có thể làm mất hiệu lực thuật toán.
Đây là những gì tôi không hiểu; Nếu bạn có các kỹ thuật để chứng minh tính đúng đắn của một thuật toán, thì bạn sẽ có thuật toán để thực hiện nó chưa, phải không? Hoặc nếu không thì làm thế nào chúng ta có thể chắc chắn rằng kỹ thuật chứng minh là chính xác?
Tôi xin lỗi nếu tôi nghe tiểu học!
Cập nhật từ Kaveh (được sao chép ở đây vì đối số tốt hơn!):
Nếu bạn có thể chính thức chứng minh tính đúng đắn của thuật toán trong một hệ thống chính thức như Coq thì bạn cũng có thể trích xuất thuật toán (vì về cơ bản bạn đã triển khai thuật toán), nhưng thực tế chính là đối với hầu hết các thuật toán, chúng tôi không đưa ra bằng chứng chính thức về tính chính xác cho thuật toán, chúng tôi sử dụng bằng chứng không chính thức về tính chính xác. Bằng chứng có thể sai, đôi khi nó xảy ra và thậm chí một bằng chứng chính thức về tính đúng sẽ không làm cho chúng tôi hoàn toàn chắc chắn rằng thuật toán là chính xác.