Phương pháp giải quyết bài toán quy hoạch nguyên

Một phần của tài liệu Một số giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm (Trang 26 - 29)

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪ N: TS Nguyễn Văn Min hM ẫn

3.3. Phương pháp giải quyết bài toán quy hoạch nguyên

Đầu tiên bạn nghĩ ngay một cách đơn giải để giải bài toán này là liệt kê toàn bộ

các lời giải và sau đó là lựa chọn lời giải có nghiệm tối ưu nhất. Công việc này chỉ được thực hiện cho những bài toán nhỏ, nhưng điều đó rất nhanh chóng không thực hiện được cho những bài toán có kích thước từ trung bình hoặc lớn.

Ví dụ 3.2: xét liệt kê đầy đủ của một mô hình tổng quát có một biến nguyên x1và hai biến nhị phân x2và x3với các ràng buộc: 1 0 1 0 3 1 3 2 1 ≤ ≤ ≤ ≤ ≤ ≤ x x x

Cấu trúc trong hình 3.2 là một cây với nút gốc bên trái, được gán nhãn “all solution” và các nút lá nằm bên phải. Các nút lá mô tả các giải pháp có được, vì vậy

chúng ta có 12 giải pháp trong đó có: (3 giá trị có thể thực hiện được cho x1)*(2 giá trị

có thể thực hiện được cho x2)*(2 giá trị có thể thực hiện được cho x3)

Tương tự, nếu xét bài toán nhị phân có 20 biến. Điều đó có nghĩa là sẽ có

576 , 048 , 1

220 = giải pháp được thực hiện bằng phương pháp liệt kê, công việc này phải

được thực hiện bằng máy tính. Nhưng nếu chúng ta xét một trường hợp giải sử có 100 biến nhị phân khi đó chúng ta cần đến 2100 =1.268x1030 giải pháp được thực hiện bằng phương pháp liệt kê. Do do, nếu ta đưa ra bài toán có n biến theo lý thuyết sẽ có 2n

phương pháp có thể được xét đến. Vấn đề là khi n chỉ cần tăng 1 thì số phương pháp tăng lên gấp đôi, như vậy độ phức tạp là tăng tưởng theo hàm số mũ, vấn đề này là bất khả thi đối với máy tính. Sự bùng nổ tổ hợp sẽ xấu hơn cho các biến nguyên có thể

nhận nhiều giá trị hơn biến nhị phân (chỉ có 2 giá trị 0/1). Điều này xét về mặt tính toán là bt kh thi với máy tính. Trong thực tế, số biến của một bài toán có thể là rất lớn. Do đó, phương pháp liệt kê sẽ không được thực hiện cho các bài toán có kích thước đủ lớn. Vì vậy, chúng ta cần một phương pháp tối ưu nhất giải quyết việc bùng nổ tổ hợp này.

Chúng ta nhận thấy, khác với bài toán quy hoạch tuyến tính, bài toán IP có thể

chỉ có vài đáp án khả thi khi các biến buộc phải có giá trị nguyên, do đó độ phức tạp khi giải quyết bài toán này có khả năng rất lớn khi mà sốđáp án là hữu hạn trong một vùng khả thi nào đó.

Điểm khác biệt quan trọng giữa bài toán quy hoạch tuyến tính và bài toán quy hoạch nguyên:

ƒ Bài toán quy hoạch tuyến tính số lượng hàm ràng buộc là chính yếu quyết

định độ phức tạp của bài toán.

ƒ Bài toán quy hoạch nguyên số lượng biến và các cấu trúc đặc biệt

(special structure). Chính các cấu trúc đặc biệt này có thể là chìa khóa để đơn giản hóa vấn đề.

Bài toán IP thường có kích thước rất lớn và phương pháp đã được đề nghịđể giải quyết là giải thuật branch and bound (B&B). Điều này đã được chứng minh là rất hiệu quả với các bài toán lớn dù không phải lúc nào thuật toán này cũng cho ra lời giải tối ưu.

Ý tưởng cơ bản trong phương pháp B&B là ngăn ngừa khả năng tăng tưởng trên toàn bộ cây. Bởi vì, việc tăng tưởng trên toàn bộ cây là quá lớn so với bài toán thực tế. Thay vì vậy, B&B sẽ giải quyết bài toán tăng tưởng theo từng giai đoạn và sự tăng tưởng này chỉ được quan tâm đến những nút nào có đầy hứa hẹn ở bất kỳ giai đoạn nào. Nó được xác định bởi nút có nhiều hứa hẹn bằng cách đánh giá một bound trên giá trị tốt nhất của hàm mục tiêu mà có thể đạt được bằng việc tăng tưởng các nút ở

giai đoạn sau đó. Tên phương pháp bắt nguồn từ việc phân nhánh (branching) xẩy ra, khi một nút được lựa chọn để phát triển xa hơn và sự phát sinh các con của nút đó. Sự

giới hạn (bounding) căn cứ vào giá trị tốt nhất đạt được bằng cách tăng tưởng một nút

đã được đánh giá. Chúng ta hi vọng rằng cuối cùng sẽ có một sự tăng tưởng nhỏ nhất trên toàn bộ cây liệt kê.

Thêm một điều quan trọng nữa là hướng của phương pháp là pruning, trong đó bạn sẽ loại bỏ và thường xuyên loại bỏ các nút sẽ không bao giờ thoả mãn hoặc cho nghiệm tối ưu. Quan điểm này xuất phát từ nghề làm vườn, trong đó pruning nghĩa là cắt bỏ nhánh trên một cây. Pruning là một vấn đề quan trọng của B&B từ đó nó cẩn thận ngăn ngừa sự tăng tưởng của cây trong vấn đề tìm kiếm.

Một phần của tài liệu Một số giải pháp toán học cho việc phân phối tài nguyên trong độ tin cậy phần mềm (Trang 26 - 29)