Thiết kế mô hình có thể sử dụng các thuật toán dựa trên kinh nghiệm. Một thuận lợi của việc sử dụng các kinh nghiệm trong một thuật toán tối ưu có đòi hỏi khắt khe trong việc thiết kế mô hình ảo chính là sự mềm dẻo. Trong khi thiết kế một thuật toán dựa trên kinh nghiệm, ta có thể tập trung vào một số mặt khác nhau mà vẫn giảm được chi phí tính toán.
Thuật toán thiết kế mô hình đường đi ngắn nhất dựa trên kết quả điều tra
Tồn tại ba thuật toán kiểu này: thuật toán thiết kế mô hình dựa trên kinh nghiệm (HTDA), thuật toán thiết kế mô hình logic trễ tối thiểu (MLDA) và thuật toán thiết kế mô hình logic không phụ thuộc lưu lượng (TILDA). HTDA cố gắng tạo ra các đường đi ngắn nhất giữa các cặp node theo trật tự nhu cầu lưu lượng giảm dần. Khi đã có cấp của node mạng, một đường đi ngắn nhất sẽ được tạo ra để đáp ứng nhu cầu lưu lượng tối đa chưa được mang. Quá trình này sẽ tiếp tục cho tới khi không còn tài nguyên mạng nữa. Nếu tất cả nhu cầu lưu lượng đã được ấn định, phần còn lại của tài nguyên mạng sẽ
được lựa chọn ngẫu nhiên để hình thành các đường đi ngắn nhất cho tới khi các tài nguyên đã cạn kiệt. Ý tưởng cho thuật toán này xuất phát từ việc nên định tuyến lưu lượng lớn trên một kết nối đơn hop. MLDA thiết lập các đường đi ngắn nhất giữa cặp node liền kề và sau đó HTDA được dùng để ấn định các tài nguyên còn lại tuỳ theo các điều kiện ràng buộc. Ở đây MLDA là một mở rộng của HTDA trong trường hợp cấp mạng logic là cao hơn cấp mạng vật lí. TILDA không quan tâm tới nhu cầu lưu lượng mà tập trung vào việc tối thiểu hoá số lượng bước sóng cần sử dụng. TILDA trước tiên sẽ xây dựng các đường đi ngắn nhất đơn hop và sau đó là các đường đi hai hop. Thuật toán này sẽ tiếp tục thiết lập các đường đi ngắn nhất cho tới khi các điều kiện ràng buộc được đáp ứng.
Một thuật toán khác cũng đã được đề xuất gồm hai thuật toán nhỏ hơn: lược đồ tối đa hoá lưu lượng đơn hop dựa trên LP (OHTMS) và lược đồ ghép thông qua loại bỏ tuyến nối (LEMS). OHTMS tương tự như HTDA ở điểm nó cố gắng tối đa hoá tổng lưu lượng đơn hop trong khi vẫn duy trì khả năng kết nối của mô hình ảo. LEMS trước tiên sẽ cố gắng tạo một mô hình ảo hoàn toàn kết nối (lược đồ chia đôi). Trong đó mỗi phần sẽ chứa tất cả các node trong mô hình vật lí. Khối lượng của các biên được đặt theo nhu cầu lưu lượng. Khối lượng nhỏ nhất phù hợp cho việc ghép sẽ được xác định cho các biên này. Các biên đã được ghép sẽ bị xoá khỏi lược đồ và lưu lượng được đẩy sang mô hình mới cập nhật để thực hiện tính toán lại. Khối lượng các biên được cập nhật và đối với các biên đã bị xoá sẽ được tìm kiếm và loại bỏ theo cùng phương thức. Quá trình này sẽ tiếp tục cho tới khi đạt được điều kiện giới hạn ràng buộc.
Một số thuật toán (dựa trên kinh nghiệm) thiết kế mô hình cây mở rộng
Về mặt lí thuyết, thuật toán hướng ‘tối ưu hoá lưu lượng đơn hop’ đã được chứng minh là cho hiệu năng tốt hơn. Tồn tại một số thuật toán theo xu hướng này. Các phương pháp này khác nhau ở sự ấn định tài nguyên dư thừa sau khi kết nối mô hình ảo ban đầu đã được cung cấp.
Các thuật toán này có một số định nghĩa sau:
• Mô hình đường đi ngắn nhất tại mức IP được biểu thị bởi <N,L> trong đó N là tập các bộ định tuyến và L là tập các kết nối IP, n=N và l=L. Trong N thì ni biểu diễn nhận dạng của bộ định tuyến. Một tuyến nối IP luôn luôn là song hướng do đó hai đường đi ngắn nhất đơn hướng trong tầng WDM hình thành một tuyến nối ảo tại tầng IP. Trong L thì lij là nhận dạng tuyến và lij-c biểu diễn băng thông của tuyến. Trong các thảo luận dưới đây thì không có sự khác nhau giữa lij và lji, do đó lij-c = lji-c = max(lij-c, lji-c).
• Véc tơ cấp độ node, D, có n phần tử. Mỗi phần tử, di,∀{i}⊂N, là cấp của node i. Rõ ràng là = ∑ i i d l 2 1
cho bất cứ mô hình IP nào.
• Ma trận nhu cầu lưu lượng được biểu thị bởi T. T là một ma trận n x n mà
các phần tử của nó, T( )i, j ≥0,∀{i,j}⊂N, là độ lớn dòng lưu lượng trong một đơn vị thời gian từ bộ định tuyến i tới bộ định tuyến j.
• Thông lượng X là một ma trận n x n mà các phần tử X(i,j) của nó là độ lớn
lưu lượng (được đo bằng bit) được truyền dẫn từ bộ định tuyến i tới bộ định tuyến j trong một khoảng thời gian nhất định.
Các thuật toán này sử dụng các kí hiệu sau:
• Ma trận nhu cầu lưu lượng dư thừa, biểu diễn bởi Tr và là một ma trận
nxn được xác định bởi Tr =T −X.
• Một vec tơ dòng F được xây dựng từ ma trận nhu cầu lưu lượng T theo hai
bước:
Lấy đối xứng T để có Ts trong đó phần tử của nó:
( )i, j T (j,i) max{T(i, j),T(j,i)}, {i, j} N.
Ts = s = ∀ ⊂
Sắp xếp các Ts ở trên theo trật tự giảm dần thành một vec tơ để đạt được F.
• Vec tơ hop dòng, Fh, được xác định bởi: {F(i, j)xH(i, j)},∀{i, j} ⊂N
được sắp xếp theo trật tự giảm dần và H(i,j) là khoảng cách hop từ node i tới node j.
• Ma trận kết nối, G, là một ma trận n x n. Giá trị của các phần tử G(i,j) là 1 nếu tồn tại một kết nối giữa bộ định tuyến i và bộ định tuyến j và là 0 nếu ngược lại. Do tính chất đối xứng của mô hình ảo IP nên G là một ma trận đối xứng.
Dựa trên các kí hiệu trên, các thuật toán trên đặc biệt quan tâm tới các thông số sau:
• Thông lượng bình thường hoá, =∑∑ ( , ) ) , ( j i T j i X η
• Khoảng cách hop đã tính trọng số trung bình, h (H(i,Tj()ixX, j)(i, j))
∑ ∑
=
phụ thuộc vào các điều kiện ràng buộc cấp node
j j D j i G i ∀ ≤ ∑ ( , ) ( ), và ∑i G(i, j)≤D(j),∀j
Thiết kế thuật toán và các đánh giá hiệu năng sau đó đều nhằm nâng cao độ lợi thông lượng bình thường hoá (NTG-γ). Giá trị này được xác định như sau:
1 − = old new η η γ
và độ lợi khoảng cách hop đã tính trọng số trung bình (AWG-ϕ) được xác định theo biểu thức sau:
old new h h = ϕ
trong đó hnew và ηnewlà khoảng cách hop trung bình và thông lượng bình thường
hoá hiện thời còn hold và ηold là hai giá trị cho mô hình cũ hoặc một mô hình cố định.
Các thuật toán dựa trên kinh nghiệm được đề xuất này sẽ thiết lập một mô hình đường đi ngắn nhất tuỳ theo cấp node mạng vật lí của mỗi node. Mô hình kết quả sẽ cho phép các đường song song giữa cùng một cặp node. Một kết nối đường đi ngắn nhất là song hướng. Các thuật toán sẽ bắt đầu với một lược đồ gồm n node rời nhau tương ứng với n bộ định tuyến.
Các thuật toán này có giai đoạn đầu giống nhau. Giai đoạn này sẽ tạo ra một cây mở rộng (một cây chung mà không nhất thiết là cây nhị phân) sao cho cung cấp được tối thiểu hoá kết nối. Max [T(i,j)] được sử dụng như là kết quả của cây mở rộng. Tính kết nối lược đồ ban đầu là quy định của nhu cầu tải. Đối với mỗi F(i) tương ứng với Ts(p,q), một kết nối sẽ được gán giữa bộ định tuyến p và bộ định tuyến q nếu như không tồn tại đường nối nào giữa chúng. Không giống như các thuật toán ‘đơn hop tối ưu hoá lưu lượng’ truyền thống, các thuật toán được đề xuất ở đây sẽ không chỉ ấn định các kết nối còn lại một cách giản đơn nhờ sử dụng F. Thay vì thế, các thuật toán này sẽ đánh giá mô hình nguyên thuỷ nhờ sử dụng một môi trường dựa trên dòng được mô phỏng. Sự khác nhau của chúng là ở phương pháp ấn định các kết nối còn lại. Cho mạng gồm có n node, mô hình kết nối ban đầu bao giờ cũng có n-1 kết nối. Trong một mạng đang hoạt động thì làm cách nào để ấn định các tài nguyên còn lại là vấn đề rất quan trọng. Ba thuật toán dựa trên kinh nghiệm sẽ được trình bày dưới đây.
Thuật toán dựa trên kinh nghiệm nhu cầu còn lại (RD)
Thuật toán này gồm có các bước sau:
• Bước 1. Xây dựng một cây mở rộng để cung cấp kết nối ban đầu giữa các node theo vec tơ dòng F tuỳ theo các điều kiện ràng buộc cấp node. Vì F được sắp xếp theo trật tự nhu cầu giảm dần nên cây kết nối ban đầu được xây dựng để chứa các dòng lưu lượng có nhu cầu lớn nhất của lân cận một hop. Có hai kết nối song song giữa cùng một cặp node. Mỗi kết nối này sử dụng băng thông tối đa đã được xác định trong ma trận L.
• Bước 2. Sử dụng nhu cầu lưu lượng đối với mô hình chưa hoàn thành. Hai phương pháp cho ấn định lưu lượng đã được xem xét. Một phương pháp là định tuyến tuyến nối ngắn nhất (SPF) và phương pháp kia triển khai SPF và một kĩ thuật lệch dòng chẳng hạn như ECMP (đa đường đồng chi phí) hay OMP (đa đường tối ưu hoá). Phương pháp ấn định lưu lượng trong thuật toán sẽ thể hiện chính sách định tuyến trong mạng đang hoạt động. Ví dụ như, một mạng IP truyền thống hỗ trợ SPF (ví dụ như tính toán định tuyến trong OSPF) một chính sách định tuyến tối ưu sẽ đòi hỏi cân bằng tải giữa các đường kế tiếp, ví dụ như OSPF-OMP.
• Bước 3. Vì có nhiều giao diện chưa được ấn định nên có khả năng là không phải tất cả các nhu cầu đều được hỗ trợ bởi mô hình chưa hoàn thành. Do đó, sẽ tạo ra một vec tơ dòng mới sử dụng ma trận nhu cầu dư thừa. Vec tơ dòng mới này được lưu trữ theo trật tự giảm dần của nhu cầu dư thừa.
• Bước 4. Tìm kiếm trong vec tơ dòng mới này để tìm ra một dòng mà một kết nối mới có thể được gán giữa các đầu cuối của nó. Chèn kết nối mới này vào mô hình và thiết lập kết nối với băng thông tối đa của nó theo F. Sau đó quay trở lại bước 2. Thuật toán sẽ dừng lại nếu không thể tìm ra một kết nối mới nào nữa.
• Bước 5. Nếu như số lượng các giao diện rỗi là không nhỏ hơn 2 thì ứng dụng thuật toán kinh nghiệm hội tụ được trình bày dưới đây.
Vì sự đánh giá các mô hình trung gian dựa trên nhu cầu còn lại nên thuật toán này được đặt tên tương ứng là RD. Một biến thể của trạng thái này là xem xét tích của đếm hop và nhu cầu còn lại. Theo đó, thuật toán tương ứng được gọi là RDHP. RDHP có xu hướng ưa thích các dòng với các giá trị cao cho tích giữa nhu cầu còn lại và số đếm hop.
Thuật toán dựa trên kinh nghiệm tích đếm hop và nhu cầu còn lại (RDHP)
Có bốn bước trong thuật toán này:
• Bước 1. Xây dựng một cây mở rộng để cung cấp kết nối ban đầu giữa các node theo vec tơ dòng F. Bước này giống bước 1 trong RD.
• Bước 2. Ứng dụng nhu cầu lưu lượng vào mô hình chưa hoàn thành. Bước này cũng giống với bước 2 trong RD.
• Bước 3. Tính toán khoảng cách hop giữa tất cả các cặp node dựa trên mô hình chưa hoàn thành.
• Bước 4. Tạo ra một vec tơ dòng mới nhờ sử dụng ma trận nhu cầu còn lại trong đó mỗi phần tử của nó có trọng số bằng với giá trị đếm hop của nó.
Vec tơ dòng này được lưu trữ theo trật tự giảm dần của tích giữa nhu cầu còn lại và giá trị đếm hop. Tìm kiếm giữa các vec tơ hop-dòng này để tìm ra một dòng mà một kết nối mới có thể được gán giữa các đầu cuối của nó. Chèn kết nối mới này vào mô hình và thiết lập kết nối mới này với giá trị băng thông tối đa của nó theo F. Sau đó quay trở lại bước 2. Thuật toán sẽ dừng lại khi không tìm thấy kết nối mới nào nữa. Nếu số lượng các giao diện rỗi không nhỏ hơn 2 thì sử dụng thuật toán kinh nghiệm hội tụ được trình bày dưới đây.
Một biến thể khác của trạng thái này là chỉ đơn giản xem xét tích giữa nhu cầu và số đếm hop. Đây rõ ràng là kết quả của mục tiêu tối ưu hoá toàn cục, nghĩa là tối thiểu hoá trọng số số đếm hop của mạng. Do vậy, nó được gọi là DHP. DHP giảm được nhu cầu tính toán xảy ra sau khi mỗi kết nối được bổ sung.
Thuật toán dựa trên kinh nghiệm tích nhu cầu và số đếm hop (DHP)
Thuật toán này gồm có các bước sau:
• Bước 1. Xây dựng một cây mở rộng để cung cấp kết nối ban đầu giữa các node theo vec tơ dòng F. Bước này giống bước 1 trong RD.
• Bước 2. Tính toán/tính toán lại khoảng cách hop giữa tất cả các cặp node dựa trên mô hình chưa hoàn thành.
• Bước 3. Tạo một vec tơ dòng mới theo trật tự giảm dần nhờ sử dụng ma trận nhu cầu trong đó các phần tử của nó có trọng số bằng với giá trị đếm hop của nó.
• Bước 4. Tìm kiếm trong vec tơ hop dòng để tìm ra một dòng mà một kết nối mới có thể được gán giữa các đầu cuối của nó. Chèn kết nối mới này vào mô hình và thiết lập kết nối mới này với giá trị băng thông tối đa của nó theo F. Sau đó quay trở lại bước 2. Thuật toán sẽ dừng lại khi không tìm thấy kết nối mới nào nữa.
• Bước 5. Nếu số lượng các giao diện rỗi không nhỏ hơn 2 thì sử dụng thuật toán kinh nghiệm hội tụ được trình bày dưới đây.
Các thuật toán được trình bày ở trên có thể dừng lại khi tất cả các giao diện đều sẵn sàng. Một ví dụ của tình huống như vậy là khi tất cả các giao diện chưa được ấn định cùng thuộc về một node. Điều này có thể xảy ra như là kết quả của sự nhầm lẫn giữa cấp node và nhu cầu lưu lượng. Vì các thuật toán cố gắng cung cấp cho các nhu cầu lớn các kết nối trực tiếp nên node có lưu lượng thấp hơn có thể kết thúc với nhiều
giao diện rỗi nhưng phần còn lại của mạng là hoàn toàn bị chiếm. Một thuật toán cho hội tụ đã được cung cấp. Nó bao gồm các bước sau:
• Bước 1. Phát hiện node với nhiều giao diện IP mở (lớn hơn hoặc bằng 2). • Bước 2. Ứng dụng nhu cầu lưu lượng cho mô hình hoàn thành một phần. • Bước 3. Sắp xếp tất cả các kết nối dựa trên mức tận dụng theo trật tự giảm
dần. Mức tận dụng kết nối được thiết lập cao hơn mức tận dụng tuyến nối của hai tuyến nối đã tạo nên kết nối.
• Bước 4. Chọn kết nối tải nhỏ nhất mà không phải là trường hợp node có các giao diện mở từ trong danh sách sắp xếp. Phá vỡ kết nối này và tạo ra hai kết nối mới giữa hai giao diện mở đang có. Hai giao diện vừa được mở mới này có được là nhờ việc phá vỡ kết nối có tải nhỏ nhất.
• Bước 5. Trở lại bước 2 nếu như số lượng các giao diện mở vẫn còn lớn hơn hoặc bằng 2.
Trong một mạng đường trục IP, mỗi node thường có ít nhất vài giao diện. Điều này dẫn đến tổng số lượng kết nối, l, có thể cung cấp trong mạng là lớn hơn nhiều so với (n-1) kết nối trong lược đồ cây mở rộng ban đầu. Điều này có nghĩa là việc thiết lập (l- n+1) kết nối trong thực tế là một thủ tục rất quan trọng trong khi thiết kế mô hình.