Qui hoạch động

Một phần của tài liệu Báo cáo chuyên đề BDGV tin học (Dạy học sinh giỏi) (Trang 33 - 34)

IV. THUẬT TOÁN TÌM ĐƯỜNG ĐI TRÊN ĐỒ THỊ VÀ MỐI QUAN HỆ VỚI QUI HOẠCH ĐỘNG

4. Qui hoạch động

Qui hoạch động dựa trên nguyên lý tối ưu của Bellman: “Trong một dãy tối ưu các lựa chọn thì mọi dãy con của nó cũng tối ưu” Phương pháp tìm phương án tối ưu theo nguyên lý Bellman gọi là qui hoạch động.

Khi giải bài toán bằng cách “chia đệ trị” chuyển giải bài toán kích thước lớn về giải nhiều bài toán cùng kiểu có kích thước nhỏ hơn thì các giải thuật này thường thể hiện bằng đệ qui, khi đó có nhiều kết quả trung gian phải tính toán lại. Ý tưởng của qui hoạch động là tránh tính lại mọi thứ 2 lần, mà là lưu trữ kết quả tìm được vào một bảng, các giá trị trong bảng này làm giả thiết cho những bước tiếp theo. Các bước giải bài toán theo qui hoạch động:

B1: Tìm hệ thức liên hệ giữa bài toán lớn với bài toán con nhằm xây dựng phương trình truy toán

+ Giả sử bài toán được chia thành n giai đoạn, mỗi giai đoạn có i trạng thái ban đầu t(i) và chịu tác động điều khiển là d(i) sẽ biến thành trạng thái t(i+1) của giai đoạn (i+1).

+ Tại bước thứ n muốn t(n) tốt thì yêu cầu t(n-1) và d(n-1) cũng phải tốt.

+ Giả sử giá trị bài toán tính đến giai đoạn k là Fk, giá trị bài toán tính riêng ở giai đoạn k là Gk. Khi đó

Fk = Fk-1 + Gk

Hoặc Fk(t(k)) = Max / min { Gk(t(k),d(k)) + Fk-1(t(k-1))}

Ví dụ: bài toán người du lịch

Nếu có đường đi ngắn nhất từ i đến j thì phần đường đi từ i đến k và từ k đến j cũng ngắn nhất. F(i,j) là độ dài đường đi ngắn nhất từ i đến j khi đó: Fk(i,j) = Min {Fk-1(i,j), Fk-1(i, k) + Fk-1(k,j)}

B2: Tổ chức dữ liệu sao cho đạt các yêu cầu sau: + Dữ liệu được tính toán dần từng bước

+ Dữ liệu được lưu trữ để giảm lượng tính toán lặp lại

+ Kích thước miền nhớ dành cho lưu trữ dữ liệu càng nhỏ càng tốt từng giai đoạn.

- Giá trị ban đầu Fk cần phải khởi tạo thích hợp.

- Dựa vào phương trình truy toán đế tính các giá trị tiếp theo của bảng. - Cần có mảng lưu trữ nghiệm tương ứng với giá trị tối ưu của từng giai đoạn.

Trong bài toán người du lịch F1 = A (ma trận trọng số) Tính lại : Fk(i,j) = Min {Fk-1(i,j), Fk-1(i, k) + Fk-1(k,j)} Mảng lưu trữ kết quả Trước(i) =1.

Tính lại Truoc(i)= k nếu Min {Fk-1(i,j), Fk-1(i, k) + Fk-1(k,j)} đạt tại Fk-1(i, k) + Fk-1(k,j) ngược lại Trước(i) giữ nguyên.

Thực hiện n bước ta thu được phương án tối ưu Hạn chế của qui hoạch động:

- Không phải lúc nào sự kết hợp lời giải của bài toán con cũng cho ta lời giải của bài toán lớn

- Việc tìm phương trình truy toán nhiều khi khó.

- Có nhiều bài toán không giải được bằng qui hoạch động.

Một phần của tài liệu Báo cáo chuyên đề BDGV tin học (Dạy học sinh giỏi) (Trang 33 - 34)

Tải bản đầy đủ (DOC)

(43 trang)
w