Bài toán cây khung truyền thông và các biến thể của nó có nhiều ứng dụng trong thực tế, đặc biệt là thiết kế các mạng truyền thông, giao thông hoặc thiết kế mạch điện. Ví dụ giả sử các nút là các thành phố, ta cần xây dựng mạng thông tin liên lạc giữa các thành phố đó. Nhu cầu chính là nhu cầu trao đổi thông tin (hoặc giao thông), nó tỉ lệ với số dân của mỗi thành phố. Nếu giả sử lượng truyền thông giữa hai thành phố là tỉ lệ với tích số lượng dân của hai thành phố đó, thì ta có bài toán PROCT.
Giả sử mỗi nút trong mạng có nhu cầu gửi thông tin đến tất cả những nút khác (gửi broadcast), và số lượng thông điệp tỉ lệ với trọng số của nút nhận. Với giả sử này thì chi phí truyền thông sẽ là
~ 55 ~
Trong mạng máy tính, số lượng máy chủ thì ít mà số lượng máy khách thì nhiều. Bài toán p-MRCT hướng vào để giải quyết vấn đề này.
Với bài toán OCST tổng quát nó có các ứng dụng trong thực tế là
Thiết kế vi mạch VLSI
Trong bước thiết kế vật lý của các vi mạch VLSI, pha đi dây bao gồm việc xác định sơ đồ nối dây cho các điểm nối của từng khối hay từng cổng trên chip. Một mạng trên chip là tập hợp các điểm cần phải nối với nhau, thường bao gồm một điểm nguồn và nhiều điểm đích. Trong việc đi dây, sơ đồ kết nối được đặc tả cho một số lượng lớn các mạng. Kết nối thường được thực hiện trên một mạng một lúc. Mỗi phương án kết nối cho một mạng đơn là một cây khung phủ các điểm nối. Nhiều yêu cầu tối ưu đặt ra cho việc nối mạng phụ thuộc vào chức năng của từng mạng.
Thiết kế mạng truyền thông
Quy trình thiết kế mạng viễn thông đặc biệt phức tạp bởi cùng lúc phải xét các bài toán về thông lượng, truyền tải, tài nguyên, hiệu năng cho mạng. Nhấn mạnh về khả năng của một mạng viễn thông là khả năng duy trì kết nối liên tục của mạng, thực hiện các chức năng của nó đối mặt với các phá hủy và tắc nghẽn.
Thiết kế mạng viễn thông thường được chia thành các bài toán tối ưu nhỏ hơn như thiết kế cấu hình mạng, mô hình hóa và dự đoán lượng thông tin truyền tải… Xây dựng cấu hình mạng nhằm đảm bảo độ tin cậy. Ngoài việc phụ thuộc vào độ tin cậy của các thiết bị hoạt động trong mạng, tính tin cậy của mạng còn phụ thuộc vào cách mà các thiết bị đó nối với nhau. Việc đảm bảo tính liên thông và đồng thời tìm cách nối để tối ưu các hàm mục tiêu đề ra liên quan đến giải bài toán cây khung truyền thông tối ưu.
Bài toán thiết kế mạng, cụ thể trong mạng diện rộng, các hệ thống mạng tự động được kết nối với các mạng backbone. Những hệ thống mạng truyền thông này được thiết kế sử dụng đường truyền cáp quang. Do nhu cầu của người sử dụng ngày càng
~ 56 ~
tăng, và do những yêu cầu nghiêm ngặt về chất lượng: băng thông lớn (50 Tbps), sự suy giảm tín hiệu (0.2dB/km), sự méo tín hiệu, và cần ít năng lượng, ít vật tư, ít không gian. Khi thiết kế mạng truyền thông bằng cáp quang với chi phí lớn, thường thì cấu trúc của mạng ban đầu sẽ có dạng cây khung. Do đó một mô hình phù hợp cho toàn bộ kiến trúc mạng được cung cấp bởi các nút bên trong (mạng backbone) với các đường kết nối có tốc độ rất cao, và kết nối với nó là các nút lá (nút phân phối)
Chúng ta cũng có thể chia bài toán thiết kế topology mạng thành 2 vấn đề chính: Phân cụm – clustering : xác định số nút trên mạng backbone và cách cấp
phát các nút
Định tuyến – routing : xác định nút của backbone kết nối tới topology cây khung. 1 2 3 4 5 12 13 14 11 10 6 8 9 7 15 Backbone network Distribution network
Hình 2-7 Thiết kế mạng truyền thông
Hơn nữa do như cầu của dịch vụ multicast cho truyền thông trong nhóm, ví dụ như hệ thống học trực tuyến, xem TV trực tuyến… do đó cần một hệ thống với dịch vụ cho phép gửi đi nhiều yêu cầu, quản lý session của nhóm người dùng truy nhập
~ 57 ~
thông qua mô hình cây khung. Hoặc trong bài toán thiết kế mạng cảm biến tự trị (ubiquitous sensor network) khi xét đến phương thức quản lý thời gian nạp pin. Như đã trình bày ở trên, bài toán OCST là một bài toán tổng quát nhất trong các bài toán ở trên. Giải được bài toán OCST này chúng ta có thể giải được bất kỳ bài toán nào trong số các bài toán đó. Phần tiếp theo trình bày về một số phương pháp tiếp cận giải gần đúng và giải chính xác bài toán OCST.
2.4. Các phƣơng pháp tiếp cận để giải bài toán OCST
Bài toán cây khung truyền thông tối ưu được giới thiệu bởi Hu trong [40] đây là bài toán thuộc lớp NP-khó [13]. Sau đó bài toán này đã được chứng minh là thuộc lớp MAX NP-khó [25], tức là các bài toán mà không tồn tại thuật toán xấp xỉ để giải với thời gian đa thức trừ khi [4]. Bài toán này được xếp vào lớp các bài toán tối ưu giống MAX-3SAT [13].
Một số trường hợp đơn giản và giới hạn của bài toán, đã có các thuật toán để tìm ra kết quả tối ưu. Trong bài báo giới thiệu bài toán OCST, Hu đã đưa ra 2 thuật toán chính xác để tìm lời giải cho OCST trong hai trường hợp đặc biệt: trường hợp bài toán cây khung tối ưu nhu cầu - Optimum requirement spanning tree ( ) có thể được giải sử dụng thuật toán với thủ tục gán nhãn Ford Fulkeson trong thời gian cỡ , và bài toán cây khung khoảng cách tối ưu - minimum routing cost spanning tree - MRCT ( ). Trong trường hợp bài toán MRCT, Hu chỉ ra rằng lời giải tối ưu sẽ là cây khung có dạng hình sao nếu khoảng cách giữa các đỉnh thỏa mãn bất đẳng thức tam giác chặt: với mỗi đỉnh mà
thì chúng ta có
⁄ ⁄ . Nếu cả nhu cầu truyền thông và khoảng cách giữa bất kỳ 2 đỉnh nào là bằng nhau thì lời giải tối ưu cũng có dạng là cây khung hình sao.
~ 58 ~
Sau đó, vào năm 1978, Johnson và các cộng sự [20] chứng minh được rằng chỉ trong trường hợp nhu cầu giữa các đỉnh là giống nhau, và trong đó khoảng cách thỏa mãn bất đẳng thức tam giác chặt thì bài toán có thể giải được trong thời gian đa thức. Còn các trường hợp nhu cầu giống nhau còn lại của bài toán OCST, trong đó là NP-Khó. Wu [42] chứng minh đượcraằngthaậmi cí trong trường hợp nhu cầu giống nhau, và khoảng cách giữa các đỉnh chỉ thỏa mãn bất đẳng thức tam giác (không phải là bất đẳng thức tam giác chặt) thì bài toán vẫn là NP-Khó.
Năm 1997, Peleg [27] đã chứng minh được rằng bài toán OCST có thể được quy dẫn từ bài toán minimum average stretch spanning tree (MAST). Do đó cả hài bài toán là tương đương nhau và thuật toán xấp xỉ để giải MAST có thể được dùng để giải cho bài toán OCST. Trong bài toán MAST, được giới thiệu bởi Alon và các cộng sự năm 1995 [1] , một đồ thị và một ma trận khoảng cách được cho trước và ta cần tìm một cây khung mà làm tối thiểu giá trị trung bình độ giãn của các cạnh. ∑
Trong đó là tổng của tất cả các trọng số dọc theo đường từ đỉnh tới đỉnh trên cây khung . Alon và các cộng sự đã giới thiệu một thuật toán ngẫu nhiên để giải bài toán MAST mà xây dựng một cây khung trong đó trọng số trung bình của cây khung nhỏ hơn hoặc bằng √
Các thuật toán xấp xỉ khác để giải bài toán OCST dựa trên kích thước truyền thông (volume of communication) ∑ trên đồ thị đầy đủ , trong đó là tổng tất cả các trọng số dọc theo đường đi ngắn nhất giữa hai đỉnh và trên .
biểu diễn một cận dưới tầm thường cho bởi vì nó xem xét đồ thị gốc đầy đủ chứ không phải các cạnh được sử dụng cho cây . Bartal và Wu [5]đưa ra một thuật toán ngẫu nhiên mà xây dựng một cây khung với chi phí truyền thông kỳ vọng là , sau đó kết quả này được cải thiện bởi chính tác
~ 59 ~
giả [6] thành xấp xỉ . Peleg và Reshef [28] [36] đưa ra thuật toán xác định để tìm cây khung với giá cỡ . Charikar [9]cải thiện thuật toán này thành xấp xỉ . Trong trường hợp khoảng cách giữa các đỉnh là Euclidean thì Charikar và Reshef [9][36] giới thiệu một thuật toán xác định để tìm cây khung truyền thông có giá . Do các thuật toán xấp xỉ này đều dựa trên kích thước truyền thông, Alon và các cộng sự [1] đã chứng minh rằng kỹ thuật này không thể tìm được lời giải xấp xỉ cho OCST tốt hơn
. Như vậy các thuật toán xấp xỉ là không tốt để tìm lời giải cho OCST. Như vậy thông qua việc tóm tắt quá trình phát triển hướng tiếp cận dùng thuật toán chính xác để giải bài toán OCST, chúng ta có thể kết luận rằng không tồn tại một thuật toán hiệu quả giải OCST. Chỉ tồn tại một vài thuật toán để giải trong các trường hợp đơn giản của bài toán, không tồn tại thuật toán trong trường hợp tổng quát. Hiện nay cách tiếp cận dùng các phương pháp heuristic và meta-heuristic đang là cách tiếp cận chính. Các phương pháp này không xây dựng cây khung theo một (thuật toán) quy tắc toán học nào mà tìm kiếm trong không gian gồm tất cả các cây có thể có.
Ahujia và Murty [3] đề xuất một thuật toán nhánh cận giải chính xác và một thuật toán heuristic. Tuy nhiên cả hai thuật toán này chỉ phù hợp để giải bài toán trong trường hợp đầu vào kích thước nhỏ hoặc vừa bởi vì độ phức tạp về thời gian tính là lớn. Thuật toán chính xác xác định cận dưới với độ phức tạp thời gian cỡ . Thuật toán chính xác xử lý trên 3 tập cạnh: tập (các cạnh đã xuất hiện trên cây), tập (các cạnh đã bị loại bỏ trên cây), và tập (các cạnh chưa xác định). Ban đầu, chứa tất cả các cạnh và trong mỗi bước nhánh, một cạnh được loại bỏ từ và được thêm vào hoặc .
Trong trường hợp chạy trên bộ dữ liệu kích thước lớn hơn thì thuật toán heuristic được sử dụng. Thuật toán này được lấy ý tưởng từ thuật toán tìm cây khung có trọng số nhỏ nhất. Thuật toán này gồm 2 pha: pha xây dựng cây (tree-building), và pha cải thiện cây (tree-improvement). Thuật toán xây dựng cây bắt đầu với một nút
~ 60 ~
là nhân và từ đó xây dựng cây bằng cách thêm các cạnh phù hợp vào cây con đã có. Cạnh được thêm vào là cạnh có giá thấp nhất kết nối cây con với các nút còn lại sao cho chi phí truyền thông tăng một lượng là nhỏ nhất. Cây khung thu được sau bước xây dựng tiếp tục trải qua bước cải thiện, trong đó thực hiện bước di chuyển 1- exchange: mỗi bước di chuyển 1 cạnh được loại bỏ khỏi cây và sau đó một cạnh trong số cạnh còn lại không nằm trên cây được thêm vào để kết nỗi hai phần của cây và giảm giá của cây.
Bƣớc 1: xác đinh tất cả các cặp đường đi ngắn nhất .
Đặt , , , và với mọi
Bƣớc 2: tính toán và cho mỗi đỉnh theo công thức
{∑∑ ̅ ̅ { ∑ ∑ ̅ ̅ Đặt ∑ .
Định nghĩa một số cho mỗi ̅ là (chú ý: là khoảng cách giữa 2 điểm , và ̅ là hai cây con thu được sau khi loại bỏ 1 cạnh). Gọi là cạnh thỏa mãn ̅ Đặt Bƣớc 3: cập nhật và với mỗi . Cập nhật ∑ . Đặt
Bƣớc 4: Nếu là cây khung thì dừng, ngược lại thì quay trở lại bước 2.
Hình 2-8 Thủ tục xây dựng cây – tree building
Trong phương pháp ở trên, là tập các đỉnh trên cây con và là chiều dài đường đi duy nhất trên giữa cặp đỉnh ̅ . Giá trị cho mỗi
~ 61 ~
trong ̅ thông qua cạnh , và cạnh là cạnh có chi phí truyền thông là nhỏ nhất trong trường hợp này.
Các bước 1,2,3 cần chi phí tính toán theo thứ tự là , và . Bước 1 được thực hiên 1 lần còn các bước khác được thực hiện lần. Do đó độ phức tạp thời gian tính là .
Bƣớc 1: (Khởi tạo) đặt là cây khung ban đầu, và là khoảng cách trên giữa bất kỳ cặp đỉnh . Đặt ∑
Bƣớc 2: (Lựa chọn) kiểm tra lần lượt các cạnh trên . Nếu tất cả các cạnh đã được kiểm thì chuyển sang bƣớc 4, nếu không xem xét một cạnh chưa được kiểm tra
. Đặt . Với mỗi tính {∑∑ ̅ ̅ { ∑ ∑ ̅ ̅
Đặt ∑ . Định nghĩa một số cho mỗi ̅ là
. Gọi là cạnh thỏa mãn
̅ . Nếu thì chuyển tới bƣớc 3, nếu không lặp lại bước này với một cạnh chưa được xét tiếp theo.
Bƣớc 3: (Cải thiện) đặt . Cập nhật . Cập nhật và với mỗi ̅ . Chuyển tới bước 2
Bƣớc 4 : (Kết thúc) Cây khung là một cây khung cực tiểu địa phương, dừng thuật toán.
Hình 2-9 Thủ tục cải tiến cây – tree improvement
Thủ tục cải thiện cây nhận đầu vào là cây được tạo ra bởi thủ tục khởi tạo. Nó kiểm tra lần lượt các cạnh mỗi cạnh một lần và chia thành hai tập con được tạo ra nếu xóa đi cạnh trên cây khung hiện tại. Nó tìm tất cả các cạnh có hai đỉnh
~ 62 ~
thuộc hai tập con và nếu có cạnh nào làm cải thiện giá của cây thì nó thay đổi cạnh đó với . Đây là một heuristic tìm kiếm địa phương thực hiện bước di chuyển 1- exchange.
Thủ tục cải thiện cây cần thời gian cỡ để kiểm tra một cạnh trong bước 2. Do có tối đa là cạnh để kiểm tra khi tìm sự cải thiện hoặc kết thúc nên bước 2 cần thời gian cỡ cho mỗi cải thiện. Bước 3 cần thời gian tính toán cỡ cho mỗi cải thiện. Do đó chi phí tổng cộng cho mỗi cải thiện là .
Kết quả thu được bởi thủ tục cải thiện là một giải pháp cực trị địa phương trong đó không có cạnh cây khung nào mà khi thay đổi với một cạnh phù hợp sẽ làm cải thiện giá của cây. Kết quả cuối cùng rõ ràng là bị phụ thuộc vào cây khung được tạo ra trong thủ tục khởi tạo cây. Thuật toán này có thể được sửa đổi thành meta- heuristic bằng việc bắt đầu lại với thứ tự lựa chọn các đỉnh khác nhau trong bước hoán đổi cạnh.
Palmer và Kershenbaum [34] đưa ra một thuật toán heuristic trong đó tập trung vào đặc điểm là các lời giải tốt cho bài toán OCST thường là các cây có dạng hình sao. Lời giải trong thuật toán này được xây dựng bằng cách xây dựng một cây khung hình sao (chi phí để đánh giá tất cả n cây khung hình sao là ) hoặc kết hợp nhiều cây khung hình sao, mà có nút trong (định giá tất cả ( ) cây hình sao này có chi phí là ). Nếu cách tiếp cận cây khung hình sao không thành công thì lời giải được tạo ra bằng việc xây dựng cây khung có trọng số nhỏ nhất trên đồ thị (Minimum Spanning Tree - MST). Một nút trung tâm được lựa chọn trên cây và các cạnh có hướng về nút trung tâm này. Thuật toán cải thiện lặp việc đánh giá bước thay đổi 1 cạnh với việc tách một cây con khởi cây cha của nó và sau đó kết nối lại vào một nút giữa các nút ông của nó và nút trung tâm. Palmer và Kershenbaum cũng thảo luận về một cách tiếp cận khác là sử dụng một thuật toán di truyền, trong đó tập trung vào cách biểu diễn cây khung trong GA. Các nhiễm sắc thể chứa một vector của các giá trị lệch cho cả cạnh và đỉnh (link and node bias –
~ 63 ~
LNB) thay đổi hàm chi phí của cạnh. Cây biểu diễn bởi nhiễm sắc thể được xây dựng bằng cách xây dựng cây khung nhỏ nhất – MST sử dụng các hàm chi phí sửa