Các thuật toán được lập trình bằng C++, thử nghiệm trên máy tính cá nhân cấu hình Intel Core i3, CPU 2.2GHz, 4G RAM. Các bài toán quy hoạch tuyến tính sử dụng trong thuật toán DCA và trong quá trình tính cận dưới được giải bằng CLP solver, một solver mở trong thư viện COIN-OR (www.coin-or.org).
Để đánh giá sự hiệu quả của thuật toán, chúng tôi sinh 10 bộ dữ liệu ngẫu nhiêu cho bài toán (RAP) (bài toán (2.7)), số lượng biến tăng dần bằng cách thay đổi số lượng người dùng, khe thời gian và số lượng kênh con. Trong thử nghiệm này chúng tôi so sánh Thuật toán 2.3 (nhánh cận kết hợp DCA) với lược đồ nhánh cận cổ điển (Thuật toán 2.2). Lấy τ = 106, = 5 10. −2 và giới hạn 105 bước lặp được dùng cho mỗi lần chạy thuật toán, nếu sau 105 bước lặp thuật toán chưa dừng ta coi như thuật toán đó "thất bại" trong việc tìm −nghiệm tối ưu cho trường hợp cụ thể đó. Kết quả tính toán thử nghiệm Thuật toán 2.2 và Thuật toán 2.3 được tóm tắt trong Bảng 2.1, trong đó ta sử dụng các kí hiệu sau:
#Var: Số lượng biến UB: Cận trên
#Constr: Số lượng ràng buộc LB: Cận dưới
#Iter: Số bước lặp NoF: lần chạy DCA cho nghiệm chấp nhận được của (RAP). Từ Bảng 2.1, ta rút ra một số nhận xét sau:
• Thuật toán DCA tìm ra nghiệm chấp nhận được của bài toán (RAP) nhanh, chỉ trong lần chạy DCA đầu tiên hoặc thứ hai. Trong nhiều trường hợp, nghiệm thu
Bảng 2.1:Kết quả giải bài toán (RAP) bằng Thuật toán 2.2 và Thuật toán 2.3
No. M N K #Var #Constr Thuật toán 2.2 Thuật toán 2.3
#Iter UB LB time(s) #Iter UB LB time(s) NoF
1 3 3 4 36 153 5 4981 4981 1.4 2 4981 4981 0.9 1 2 4 4 3 48 376 11 2267 2267 0.5 2 2267 2267 0.3 1 3 4 4 4 64 496 5 16528 16500 1.4 2 16543 16500 1 1 4 3 3 6 54 225 39 40 40 8.8 17 40 40 1.4 1 5 4 4 5 80 616 797 876753 876624 25.4 95 876654 876534 23.4 2 6 4 4 6 96 736 49 5962 5950 65.6 38 5962 5871 35.4 2 7 5 5 4 100 1225 123 9564 9514 792.4 37 9587 9432 76.8 2 8 6 6 3 108 1926 137 3757 3743 1023.2 33 3789 3641 151.4 1 9 5 4 6 120 1160 - - - - 399 12367 12356 1500 2 10 5 5 5 125 1525 - - - - 278 98794 98765 1809 2
- : Thất bại trong việc tìm −nghiệm tối ưu của (RAP) .
được này xấp xỉ nghiệm tối ưu toàn cục. Tuy nhiên để kiểm chứng tính tối ưu toàn cục chúng ta vẫn phải chạy thuật toán nhánh cận đến khi cận trên và cận dưới đủ gần nhau. Có thể thấy chất lượng nghiệm chấp nhận được thu bởi DCA là tốt và đáng tin cậy. Vì vậy khi yêu cầu về thời gian khắt khe, ta có thể sử dụng luôn kết quả thu được từ DCA.
• DCA cho kết quả trong thời gian ngắn giúp tăng tốc thuật toán nhánh cận cổ điển. Khi số biến càng lớn thì sự hiệu quả của thuật toán nhánh cận kết hợp DCA so với thuật toán sử dụng lược đồ nhánh cận truyền thống càng được thể hiện rõ.