Cây Steiner nhỏ nhất (Steiner Minimal Tree-SMT) là bài toán tối ưu tổ hợp có nhiều ứng dụng quan trọng trong khoa học và kỹ thuật; đây là bài toán thuộc lớp NP-hard và hiện đang được nghiên cứu rộng rãi. Các tiếp cận giải bài toán SMT-dù là giải đúng hay giải gần đúngthì công đoạn rút gọn đồ thị là rất quan trọng; công đoạn này càng có ý nghĩa đối với các tiếp cận giải đúng bài toán SMT. Trong hàng chục năm qua, đã có hàng loạt thuật toán rút gọn đồ thị cho bài toán SMT đã được công bố; các kết quả này đã hỗ trợ tích cực cho việc giải bài toán SMT với kích thước lớn hơn. Bài báo này đề xuất thuật toán rút gọn đồ thị cho bài toán SMT và kết quả thực nghiệm là thông tin hữu ích cho việc nghiên cứu các thuật toán giải đúng cũng như các thuật toán giải gần đúng cho bài toán SMT. Từ khóa-Steiner minimal tree, graph reduction, branch and bound algorithm, exact algorithms for steiner minimal tree. I. GIỚI THIỆU A. Một số định nghĩa Cho n điểm P 1 ,P 2 ,…,P n. Giả sử cần tìm một mạng giao thông nối k điểm (trong số n điểm đã cho) với nhau, mạng giao thông này có thể sử dụng thêm một số điểm kháccũng trong số n điểm đã cho và ngoài k điểm đã chọnsao cho tổng độ dài của các đoạn thẳng nối các điểm là nhỏ nhất; đây là bài toán cây Steiner nhỏ nhất. Mục này bài báo sẽ trình bày một số định nghĩa và tính chất liên quan. Định nghĩa 1. Cây Steiner [2] Cho G = (V(G), E(G)) là một đơn đồ thị vô hướng liên thông và có trọng số không âm trên cạnh; trong đó V(G) là tập gồm n đỉnh, E(G) là tập gồm m cạnh, w(e) là trọng số của cạnh e, e E(G). Cho Y là tập con các đỉnh của V(G), cây T đi qua tất cả các đỉnh trong Y được gọi là cây Steiner của Y. Tập Y được gọi là tập terminal, các đỉnh thuộc tập Y được gọi là các đỉnh terminal, các đỉnh thuộc cây T mà không thuộc tập Y được gọi là các đỉnh Steiner. Khác với các bài toán cây khung, cây Steiner chỉ cần đi qua tất cả các đỉnh thuộc tập terminal Y và có thể thêm một số đỉnh khác nữa thuộc tập V(G). Định nghĩa 2. Chi phí cây Steiner [2] Cho T = (V(T), E(T)) là một cây Steiner của đồ thị G, chi phí của cây T, ký hiệu là C(T), là tổng trọng số của các cạnh thuộc cây T, tức là () ∑ () (). Định nghĩa 3. Cây Steiner nhỏ nhất [2] Cho đồ thị G được mô tả như trên, bài toán tìm cây Steiner có chi phí nhỏ nhất được gọi là bài toán cây Steiner nhỏ nhất (Steiner Minimal Trees problem-SMT). SMT là bài toán tối ưu tổ hợp trên lý thuyết đồ thị. Trong trường hợp tổng quát, SMT đã được chứng minh là bài toán thuộc lớp bài toán NP-hard [16,18]. Có hai trường hợp đặc biệt đối với bài toán SMT có thể giải được bằng thời gian đa thức; đó là khi Y=V(G) và khi |Y|=2 (|Y| là ký hiệu số lượng đỉnh của tập Y): Khi Y=V thì bài toán SMT có thể giải bằng các thuật toán tìm cây khung nhỏ nhất; chẳng hạn như các thuật toán Prim, Kruskal; khi |Y|=2 thì bài toán SMT có thể giải được bằng các thuật toán tìm đường đi ngắn nhất giữa hai đỉnh; chẳng hạn thuật toán Dijkstra (để ngắn gọn, trong bài báo này từ đồ thị sẽ được hiểu là đơn đồ thị, vô hướng, liên thông, có trọng số không âm).