Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Bài toán tối ưu mảng hai chiều
MIỄN PHÍ
Số trang
6
Kích thước
154.1 KB
Định dạng
PDF
Lượt xem
799

Bài toán tối ưu mảng hai chiều

Nội dung xem thử

Mô tả chi tiết

Quy hoạch tối ưu một bảng hai chiều - Bài toán tổng quát

Đỗ Sơn Huỳnh

Córất nhiều bài toán tối ưu trên một bảng cho trước gồm M dòng, N cộtnhư các dạng bài

tìm một hành trình đi từ dòng thứ nhất tới dòngthứ M thoả mãn một điều kiện tối ưu nào

đó. Nhưng cũng có nhữngbài toán tối ưu với số liệu ban đầu là các mảng phần tử một

chiềuđều có thể đưa về bài toán quy hoạch tối ưu trên một bảng hai chiều.Một ví dụ dễ

thấy và dễ gặp nhất là bài toán tìm xâu con lớn nhất,tìm đoạn dãy con đơn điệu dài nhất,

bài toán cây xăng, và điểnhình nhất là bài toán cái túi (với dữ liệu đầu vào là nguyên).

Tất cả các bài toán đó chúng ta đều có thể đưa về một dạngtổng quát mà tôi tạm gọi là

″Bài toán tổng quát quy hoạch tốiưu trên một bảng hai chiều ″. Bài viết này là sự tổng

hợp củabản thân tôi trong quá trình học môn tin học PASCAL.Xin nêu ra để các bạn có

thể tham khảo và cho nhữngý kiến quý báu.

Phát biểu bài toán

Cho một bảng gồm M dòng, N cột. Hãy tìm một phương án tối ưuđể ″đi ″ từ dòng thứ

nhấtđến hết dòng thứ M với các nguyên tắc sau:

1.Điều kiện tối ưu:

Làđiều kiện bài toán đưa ra. Đường đi tối ưu được tính bằng tổngtrọng số các ô đi qua.

Trọng số của một ô phụ thuộc quy tắc tínhtrọng số của bài toán.

2.Quy tắc tính trọng số:

-Trọng số bằng trị sốchính số liệu tại ô.

-Trọng số được tính bằngquy tắc do ô đứng trước quy định tuỳ theo từng bài toán.

-Trọng số phụ thuộc vàoô đứng trước ô đang xét.

3.Quy tắc ″Đitừ trên xuống dưới ″:

Từdòng thứ i bạn có thể đi ngang sang trái hoặc sang phải trên dòng đóvà đi xuống dưới

dòng thứ (i+1) theo các hướng chéo hoặc thẳng đứng.

Thuậtgiải chung

1.Bước 0:Mô hình hoá:

Nếu bài toán không phải là dạng tối ưu trênmột bảng hai chiều, ta phải tìm cách mô hình

hoá để đưa nó về dạngnày.

2.Bước 1:Xây dựng các quy tắc tính trọng số:

Xin lưu ý rằng điều kiện tối ưu ở đâyđã có sẵn ngay từ đầu.

Tuỳtheo dạng của bài toán ta sẽ có các quy tắc tính trọng số khác nhau.Khi đi xem xét với

các bài toán cụ thể ta sẽ rõ hơn điều này.

3.Bước 2:Xây dựng quy tắc ″đi ″:

Đôi khi quy tắc đi chưa có sẵn mà phải tựngười lập trình đặt ra cho phù hợp với cách mô

hình hoá của mình.Vấn đề này thuộc vào tư duy của mỗi người nên rất phong phú và

phứctạp.

4.Bước 3:Xây dựng công thức tối ưu:

Đây là bước quan trọng nhất của bài toán.Để xây dựng được công thức, ta cần phải dựa

vào các quy tắc đi vàtính trọng số.

5.Bước 4:Duyệt phương án tối ưu:

Tải ngay đi em, còn do dự, trời tối mất!