Phân khả năng

Một phần của tài liệu TIỂU LUẬN MÔN HỌC: CÁC KỸ THUẬT TỐI ƯU Thiết kế mạng hiệu quả sử dụng giải thuật di truyền và Heuristic (Trang 37 - 40)

Với các luồng cho tất cả các mặt hàng được định tuyến theo những con đường khoảng cách ngắn nhất trong N, việc tiếp theo là phân khả năng cho mỗi cạnh sao cho tổng của các luồng trên mỗi cạnh là 'đảm bảo'. Một luồng được cho là đảm bảo khi khả năng của cạnh vượt quá tổng của các luồng trên cạnh đó. Khả năng của một cạnh được xác định bằng cách chọn số lượng từng loại đường, từ tập hợp các loại đường được cung cấp bởi các công ty điện thoại địa phương hoặc nhà cung cấp phương tiện truyền thông. Đây là một vấn đề lập trình số nguyên, vì cách tối ưu để đảm bảo một giá trị luồng cho trước sẽ không nhất thiết phải sử dụng đường có mật độ cao nhất. Mật độ của một đường chỉ đơn giản là khả năng chia chi phí cho mỗi khoảng cách đơn vị. Với vấn đề thiết kế ví dụ của chúng tôi, mật độ đường là 6/1 = 6.0, 45/4 = 11.25 và 150/9 = 16.66. Chú ý rằng, nếu nó không có giới hạn về số nguyên, vấn đề sẽ đơn giản. Giải pháp tối ưu sẽ luôn luôn là có càng nhiều đường với mật độ cao nhất càng tốt, trả một lượng theo tỷ lệ cho bất kỳ phân đoạn mà có thể là cần thiết để phù hợp với luồng một cách chính xác. Hạn chế số nguyên cấm sử dụng một nửa đường và trả một nửa tỷ lệ! May mắn thay, tối ưu này đảm bảo cho bất kỳ giá trị luồng có thể được tìm thấy bằng

cách xây dựng các vấn đề phân khả năng và gọi là vấn đề knapsack, nó có thể được giải quyết bằng cách sử dụng các phương pháp quy hoạch động. Việc xây dựng quy hoạch động của vấn đề knapsack được đưa ra trong Hu (1982). Việc xây dựng quy hoạch động của vấn đề phân khả năng số nguyên được đưa ra như sau.

Lấy n là số lượng các loại đường có sẵn, với mỗi loại đường có khả năng rời rạc (ci) và chi phí đơn vị (ui). Cho x là vector nghiệm, với xi là số lượng loại đường i trong các nghiệm tối ưu. Cuối cùng, lấy b là lưu lượng cực đại của mọi cạnh của đồ thị. Vấn đề tối ưu hóa là:

(2.9)

với tập xác định:

(2.10)

Phương pháp quy hoạch động giải quyết vấn đề này một cách lặp lại sử dụng mối quan hệ đệ quy sau:

Fi(y) = m{ Fi-1(y), Fi(y-ci)+ui} (2.11) Fi(y) là giải pháp chi phi cực tiểu chỉ cho các loại đường i đầu tiên trên cạnh với luồng y, nói cách khác:

Với 0 ≠ i ≠ n và điều kiện sau:

Với 0 ≠ y ≠ b. Để tính toán bảng giá trị Fi(y), cần đến tập các điều kiện biên sau: F0(y) = ∞

Fi(0) = 0 Fi(số âm) = 0

Để quy hoạch động làm việc, các luồng và khả năng phải là các số nguyên. Tuy nhiên, chi phí có thể là các số thực. Phương trình 2.11 hoạt động bằng cách trước tiên phải quyết định xem làm thế nào để đảm bảo tốt nhất tất cả các giá trị luồng sử dụng chỉ một loại đường. Sau đó, khi một loại đường thứ hai được xem xét, ta xem xét tất cả các đường mà phân chia luồng giữa hai loại đường. Khi một loại dòng thứ ba được thêm vào, phương trình 2.11 chỉ đơn giản là lựa chọn lượng tốt nhất của luồng để đảm bảo với loại đường thứ ba, để lại các luồng còn lại để đảm bảo một cách tối ưu giữa hai loại đường đầu tiên ( đã quyết định những câu hỏi sau tối ưu sau hai lần lặp đệ quy đầu tiên). Thuật ngữ Fi -1 (y) có nghĩa là " Không dùng loại đường thứ i nữa" trong khi thuật ngữ Fi (y - ci ) + ui có nghĩa là " Hãy dành ít nhất thêm một loại đường thứ I nữa" trong quyết định cuối cùng. Vì tất cả các quyết định trước đây đã được thực hiện tối ưu, chỉ quyết định thực hiện trong phương trình 2.11 là liệu thêm một loại đường i là cần thiết để đảm bảo tối ưu luồng.

Vì giá trị của Fi (y) là chi phí của các nghiệm tối ưu, vấn đề còn lại là như thế nào để đảm bảo các giá trị của x. Ở đây, cùng một phương pháp được dùng trong Hu (1982) để đảm bảo các nghiệm cho vấn đề knapsack được thông qua để đảm bảo các giá trị của x. Song song với ghi giá trị mới cho Fi (y), một mảng các giá trị Ii (y) được ghi lại, bằng cách sử dụng định nghĩa sau đây:

I là viết tắt của chỉ số, vì Ii (y) là chỉ số tối đa cho các loại đường được sử dụng trong việc đưa giá trị tương ứng cho Fi (y) trong phương trình 2.11. Vì vậy, nếu Ii (y) = k, sau đó tăng xk trong x (ban đầu x = 0), và đệ quy đảm bảo các giá trị x còn lại từ Ii

(y-ck). Ở đây, các điều kiện biên là I1 (y) = 0 nếu F1 (y) = 0, và nếu không thì I1 (y) = 1. Trong bài toán mười thành phố Trung Quốc của vấn đề thiết kế mạng của chúng tôi, chi phí đơn vị của từng loại đường là như nhau cho mỗi cạnh của đồ thị. Do đó, chỉ có một thể hiện của vấn đề phân khả năng (phương trình 2.8 và 2.9) cần phải được giải quyết, với b là giá trị luồng tối đa của bất kỳ cạnh trong mạng. Nếu mức thuế địa phương thêm một khoản phí cố định trên mỗi dòng (dựa trên loại đường), thêm vào chi phí khoảng cách thì chi phí cố định phải được chia cho chiều dài của

đường trước khi được bổ sung vào chi phí cho mỗi đơn vị khoảng cách. Đơn giá mới sẽ được tính như sau:

Trong phương trình 2.13, uk (i, j) là chi phí đơn vị của các loại đường k trên cạnh (i, j); Costk là chi phí cho mỗi khoảng cách đơn vị của loại đường k; fixedk là chi phí cố định cho loại hình đường k; và dij là khoảng cách từ nút i đến nút j. Khi cả chi phí cho mỗi khoảng cách đơn vị và chi phí cố định xuất hiện trong hàm chi phí của chúng tôi, vấn đề phân khả năng phải được tính lại cho mỗi cạnh trong cấu trúc liên kết (vì chi phí đơn vị bây giờ là một hàm của khoảng cách cạnh). Nghiệm được tính bởi quy hoạch động là tối ưu.

Một phần của tài liệu TIỂU LUẬN MÔN HỌC: CÁC KỸ THUẬT TỐI ƯU Thiết kế mạng hiệu quả sử dụng giải thuật di truyền và Heuristic (Trang 37 - 40)