Thuật toỏn nhỏnh cận giải bài toỏn Ba lụ

Một phần của tài liệu Về các bài toán NP C và một số phương pháp giải (Trang 51 - 52)

- Phỏt biểu bài toỏn TSP: Cho thành phố Xuất phỏt từ một thành phố nào đú người bỏn hàng muốn đi qua tất cả cỏc thành phố cũn lại,

3.1Thuật toỏn nhỏnh cận giải bài toỏn Ba lụ

Phỏt biểu bài toỏn: Cú đồ vật với trọng lượng là và giỏ trị sử dụng là

. Cần chất cỏc đồ vật vào tỳi với trọng lượng là sao cho

tổng giỏ trị sử dụng của cỏc đồ vật trong tỳi là lớn nhất. Sử dụng thuật toỏn nhỏnh cận giải bài toỏn ba lụ:

Thuật toỏn

Bước 1: chọn nỳt gốc biểu diễn cho trạng thỏi ban đầu của ba lụ, ở đú ta chưa chọn một vật nào. Tổng giỏ trị được chọn TGT = 0. Cận trờn của nỳt gốc CT = W * éơn giỏ lớn nhất. Bước 2: Nỳt gốc sẽ cú cỏc nỳt con tương ứng với cỏc khả năng chọn đồ vật cú đơn giỏ lớn nhất. Với mỗi nỳt con ta tớnh lại cỏc thụng số:

TGT = TGT (của nỳt cha) + số đồ vật được chọn * giỏ trị mỗi vật. W = W (của nỳt cha) – số đồ vật được chọn * trọng lượng mỗi vật. CT = TGT + W * éơn giỏ của vật sẽ xột kế tiếp.

Bước 3: Trong cỏc nỳt con, ta sẽ ưu tiờn phõn nhỏnh cho nỳt con nào cú cận trờn lớn hơn trước. Cỏc con của nỳt này tương ứng với cỏc khả năng chọn đồ vật cú đơn giỏ lớn tiếp theo. Với mỗi nỳt ta lại phải xỏc định lại cỏc thụng số TGT, W, CT theo cụng thức đó núi trong bước 2.

Bước 4: Lặp lại bước 3 với chỳ ý: đối với những nỳt cú cận trờn nhỏ hơn hoặc bằng giỏ lớn nhất tạm thời của một phương ỏn đó được tỡm thấy thỡ ta khụng cần phõn nhỏnh cho nỳt đú nữa (cắt bỏ).

Thõn chương trỡnh

con TimMax

Bước 5: Nếu tất cả cỏc nỳt đều đó được phõn nhỏnh hoặc bị cắt bỏ thỡ phương ỏn cú giỏ lớn nhất là phương ỏn cần tỡm.

Một phần của tài liệu Về các bài toán NP C và một số phương pháp giải (Trang 51 - 52)