30/09/2018, 21:39
Thuật Toán: Quay Lui Vét Cạn, Quy Hoạch Động
xin anh chị giải thích giùm em về những thuật toán trên theo cách dễ hiểu nhất ạ
Bài liên quan
xin anh chị giải thích giùm em về những thuật toán trên theo cách dễ hiểu nhất ạ
Sao bạn không tự giải thích rồi hỏi mọi người mình hiểu vầy có đúng không?
em không hiểu chỗ nào hết vì mới gặp nó mà trên mạng giải thích khó hiểu quá nên em lên đây để hỏi
Đi đến đâu cũng gặp mấy thứ trẻ trâu như thế này, buồn thiệt chứ
Bạn ko hiểu ở khía cạnh nào chứ nếu giải thích tổng quát thì cũng khó hiểu
vậy khi nào cần dùng tới những thuật toán đó ạ
Gặp bài toán không có cách giải cụ thể thì cứ thế mà áp dụng mấy thuật toán này.
Khi các thuật toán đó bạn thấy nó phù hợp đê giải quyết bài toán của mình.
Ví dụ như QHD có thể là 1 lựa chọn tốt khi bài toán của bạn lặp lại việc tính toán 1 state nào đó nhiều lần -> tính 1 lần rồi lưu lại -> lần 2 ko phải tính nữa
Bạn đọc kỹ thật kỹ lại đi… Hồi đó mình cũng như bạn, và giờ thì hiểu nó rồi. Mà, bạn làm 1 việc thôi, đừng ôm một đống, dễ nản lắm.
Vét cạn là vét toàn bộ trường hợp, rồi tìm ra kết quả.
Quy hoạch động là tìm 1 kĩ thuật tìm kết quả trước thông qua 1 kết quả có sẵn hoặc đc tìm thấy
Ưu điểm của vét cạn là chắc chắn tìm ra lời giải, nhưng nhược điểm của nó là có thể chạy quá lâu, vượt mức thời gian cho phép
Còn quy hoạnh động có ưu điểm là chạy rất nhanh nhưng nhược điểm của nó là rất khó tìm ra thuật toán, với một số bài toán có thể sẽ ko có thuật toán quy hoạch động
em cám ơn @rongthhieng1
Vét cạn thì đọc vào cái tên cũng hiểu sơ sơ về thuật toán rồi, nói tóm lại thì đây là thuyệt toán quét hết tất cả các trường hợp có thể có của 1 bài toán, ví dụ có bài sau: liệt kê tất cả các trạng thái có thể có của dãy số 123, các trạng thái của nó là 123, 132, 213, 231, 312, 321
Còn qui hoạch động là để tối ưu những bài toán mà có những bước sau lăp lại phép tính của các bước trước đó rồi, ví dụ tìm dãy fibonaci của 4 bằng đệ qui: f(4) = f(3) + f(2); lại có f(3) = (f2) + f(1), trong trường hợp này ta sẽ phải tính 2 lần f(2), như vậy thì rất phí thời gian, mục tiêu của qui hoạch động là làm sao ta chỉ cần tính f(2) 1 lần thôi, sau đó lấy kết quả f(2) này thế vào f(2) kia. Cái khó của qui hoạch động là k có 1 dạng chung nào để thiết kế hết, tùy vào mỗi bài mà có những cách thiết kế thuật toán riêng