Cho T = VT, ET là một cây khung của G, chi phí định tuyến của T, ký hiệu là CT, là tổng chi phí định tuyến giữa mọi cặp đỉnh thuộc cây Bài toán MRCST: Cho đồ thị G được định nghĩa như
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2Công trình được hoàn thành tại:
Trường Đại học Bách khoa Hà Nội
Người hướng dẫn khoa học:
Có thể tìm hiểu luận án tại:
1 Thư viện Tạ Quang Bửu - Trường ĐHBK Hà Nội
2 Thư viện Quốc gia Việt Nam
Trang 31
MỞ ĐẦU
Tối ưu hóa mạng liên quan đến nhiều lĩnh vực như toán ứng dụng, khoa học máy tính, vận trù học, kỹ thuật, mạng truyền thông,… Nhiều bài toán thực tế trong lĩnh vực mạng truyền thông, chẳng hạn như các bài toán Optimal Communication Spanning Trees, Steiner Minimal Trees, Bounded Diameter Minimum Spanning Trees -
BDMST, Minimum Routing Cost Spanning Trees thuộc lớp bài toán NP-khó hoặc NP-đầy đủ
Minimum Routing Cost Spanning Trees-MRCST là một bài toán tối
ưu đồ thị nổi tiếng và có nhiều ứng dụng quan trọng trong lĩnh vực mạng truyền thông và trong tin sinh học Bài toán này lần đầu tiên được giới thiệu bởi T C Hu vào năm 1974 qua công trình
“Optimum communication spanning trees”
Mô hình toán học của bài toán MRCST có thể phát biểu như sau: Cho G là một đồ thị vô hướng liên thông có chi phí định tuyến không âm trên cạnh Giả sử T là một cây khung của G Chi phí định tuyến cho mỗi cặp đỉnh trên T được định nghĩa là tổng các chi phí định tuyến trên các cạnh của đường đi đơn nối chúng trên T và chi phí định tuyến của T được định nghĩa là tổng của tất cả các chi phí định tuyến giữa mọi cặp đỉnh của T Bài toán MRCST đặt ra là tìm
một cây khung có chi phí định tuyến nhỏ nhất trong số tất cả các
cây khung của G Bài toán MRCST đã được chứng minh thuộc lớp bài toán NP-khó
Việc đề xuất thuật toán dạng metaheuristic giải bài toán MRCST có
ý nghĩa quan trọng, một mặt, nhằm giải quyết những bài toán ứng dụng thực tiễn vừa nêu; mặt khác, còn là cơ sở để giải quyết những
bài toán cây khung tối ưu dạng NP-khó khác trên đồ thị
Bài toán MRCST đã thu hút được sự quan tâm nghiên cứu của nhiều
nhà khoa học trong hơn bốn mươi năm qua Hiện nay đã có hàng
loạt thuật toán giải bài toán MRCST được đề xuất theo các hướng: tìm lời giải đúng, tìm lời giải gần đúng cận tỉ lệ, heuristic, metaheuristic
Mục đích của luận án là phát triển một số thuật toán gần đúng dạng
metaheuristic giải bài toán MRCST cho chất lượng lời giải tốt hơn
so với các thuật toán có cùng cỡ thời gian tính hoặc đòi hỏi thời
gian tính ít hơn khi so sánh với các thuật toán có chất lượng lời giải
Trang 4Luận án được trình bày trong 5 chương
Luận án đã phân tích được ưu nhược điểm của từng thuật toán đối với từng loại dữ liệu thực nghiệm cụ thể và qua đó định hướng phạm vi áp dụng cho từng thuật toán đề xuất
Phụ lục của luận án ghi nhận kết quả thực nghiệm của các công trình nghiên cứu liên quan cho đến thời điểm hiện tại
Cho G = (V(G), E(G)) là một đồ thị vô hướng, liên thông, 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)
Định nghĩa 1.1 (Chi phí định tuyến giữa một cặp đỉnh) Cho T =
(V(T), E(T)) là một cây khung của G, trọng số trên cạnh e được hiểu
là chi phí định tuyến của cạnh e, ta gọi chi phí định tuyến (routing cost) của một cặp đỉnh (u,v) trên T, ký hiệu là d T (u,v), là tổng chi phí định tuyến của các cạnh trên đường đi đơn (duy nhất) nối đỉnh u với đỉnh v trên cây T
Định nghĩa 1.2 (Chi phí định tuyến của một cây khung) Cho T =
(V(T), E(T)) là một cây khung của G, chi phí định tuyến của T, ký hiệu là C(T), là tổng chi phí định tuyến giữa mọi cặp đỉnh thuộc cây
Bài toán MRCST: Cho đồ thị G được định nghĩa như trên, bài toán
đặt ra là trong số tất cả các cây khung của đồ thị G cần tìm một cây
khung có chi phí định tuyến nhỏ nhất
Trang 53
Bài toán này được đặt tên là bài toán cây khung với chi phí định tuyến nhỏ nhất (Minimum Routing Cost Spanning Tree-MRCST) Bài toán MRCST đã được chứng minh thuộc lớp bài toán NP-khó
Định nghĩa 1.3 (Tải định tuyến một cạnh của cây khung) Cho T =
(V(T), E(T)) là một cây khung của đồ thị G Nếu loại khỏi cây T một cạnh e thì T sẽ được tách ra thành hai cây con T1 và T2 với hai
tập đỉnh tương ứng là V(T1) và V(T2) Ta gọi tải định tuyến của cạnh
e, ký hiệu là l(T,e), là giá trị 2×V(T1)×V(T2)
Từ định nghĩa, dễ thấy rằng tải định tuyến của cạnh e chính bằng số lượng đường đi trên cây T có chứa cạnh e
Định lý 1.1 sau cho ta cách tính chi phí định tuyến của cây khung thông qua tải định tuyến của các cạnh
Định lý 1.1 Cho T là một cây khung của G, ta có:
)(),()
(
T E e
e w e T l T
và chi phí định tuyến của T có thể tính được trong thời gian O(n)
1.1.2.Thuật toán tính chi phí định tuyến của cây khung
Đây là thuật toán được đề cập trong tất cả công trình giải bài toán
MRCST; ở đây chúng tôi trình bày thuật toán tính chi phí định tuyến
của cây khung chi tiết hơn các công trình kể trên ở góc độ kỹ thuật
Algorithm 1.1 Thuật toán tính chi phí định tuyến của một cây khung
RoutingCost(T)
Đầu vào: Cây khung T được biểu diễn là cây có gốc tại v1
Đầu ra: Chi phí định tuyến của cây khung T
1 if (T = ) return +; // Qui ước cây rỗng có chi phí +
2 Thực hiện duyệt cây T theo chiều sâu (Depth First Search) bắt đầu từ đỉnh v1 ta thu được biểu diễn của T dưới dạng cây có gốc tại đỉnh v1 Gọi n u là số lượng đỉnh của cây con có gốc là u Với mỗi đỉnh u của cây T, u v1, ký hiệu e u = (p(u) , u); trong đó p(u)
là cha của u trong cây T
Trang 64
8 return C;
RoutingCost là thủ tục quan trọng được sử dụng trong tất cả các
thuật toán giải bài toán MRCST Các thuật toán giải bài toán MRCST thường xuyên thực hiện thao tác loại một cạnh của cây
khung và sau đó thêm một cạnh khác sao cho kết quả thu được là một cây khung có chất lượng tốt hơn hoặc là thêm một cạnh vào cây khung và sau đó loại một cạnh trong chu trình vừa mới hình thành sao cho kết quả thu được là một cây khung có chất lượng tốt hơn; hai thao tác này mặc dù chỉ đem lại sự thay đổi nhỏ về mặt cấu trúc cây, nhưng để tính chi phí định tuyến của cây khung thu được
sau mỗi thao tác trên vẫn đòi hỏi độ phức tạp O(n)
1.1.3.Đánh giá chi phí định tuyến của cây khung
Định lý 1.2 Giả sử T là một cây khung của đồ thị G Khi đó với
mọi cạnh e E(T) ta có:
22( 1) ( , ) n l T e n / 2. (1-3)
Từ định lý 1.1 và định lý 1.2 trên, chúng tôi đề xuất các hệ quả sau:
Hệ quả 1.1 Chi phí định tuyến của cây khung T bất kỳ thỏa mãn
đówmin min{ ( ) : w e e E G ( )}vàwmax max{ ( ) : w e e E G ( )}
Hệ quả 1.2 Đối với đồ thị đầy đủ G với trọng số trên các cạnh đều
là w0, ta có chi phí định tuyến của cây khung tối ưu là
1.2.ỨNG DỤNG
Có thể tìm thấy các ứng dụng của bài toán MRCST trong các lĩnh
vực mạng thiết kế mạng và tin sinh học
1.3.CÁC NGHIÊN CỨU LIÊN QUAN BÀI TOÁN MRCST
Đối với bài toán thuộc lớp NP-khó như bài toán MRCST thì khó hy
vọng tìm được một thuật toán vượt trội cả về chất lượng lời giải lẫn thời gian tính trên mọi bộ dữ liệu thực nghiệm Do đó đã có nhiều
thuật toán giải bài toán MRCST được đề xuất Mỗi thuật toán giải bài toán MRCST, tại thời điểm công bố có một đóng góp nhất định,
hoặc là cải thiện chất lượng lời giải, hoặc là cải thiện thời gian tính,
Trang 72 Branch And Bound + Column Generation giải đúng 2002
11 SHC (tìm kiếm leo đồi ngẫu nhiên) Metaheuristic 2005
12 PBLS (tìm kiếm địa phương) metaheuristic 2008
13 PABC (thuật toán Artificial Bee
Colony)
Metaheuristic 2011
14 ABC+LS (thuật toán Artificial Bee Colony + Local Search) metaheuristic 2011
15 Distributed Approximation Algorithm cận tỉ lệ 2 2014
1.4.TIÊU CHÍ ĐÁNH GIÁ THUẬT TOÁN
Chất lượng của một thuật toán gần đúng được đánh giá qua chất lượng lời giải và thời gian tính
Đối với lớp những thuật toán gần đúng cận tỷ lệ, có thể đánh giá đóng góp mới thông qua cận tỷ lệ của thuật toán Tuy nhiên, đối với phần lớn các thuật toán gần đúng hiện nay, việc đánh giá tiên nghiệm chất lượng của lời giải mà chúng đưa ra là không thể thực hiện được Trong tình huống này, các nhà khoa học chấp nhận giải pháp là đánh giá qua thực nghiệm
Để chứng tỏ thuật toán đề xuất của mình có những đóng góp mới để giải bài toán đặt ra, các nhà khoa học cần tiến hành thực nghiệm trên các bộ dữ liệu chuẩn để chỉ ra thuật toán của mình đề xuất so với những thuật toán hiện biết có những điểm tốt hơn hoặc ở tiêu chí thời gian, hoặc ở tiêu chí chất lượng lời giải, chẳng hạn:
Trang 8Trong lý thuyết phân tích độ phức tạp tính toán của thuật toán, các nhà khoa học đã đưa ra tiêu chí khách quan để đánh giá thời gian tính của thuật toán: đó là đánh giá thời gian tính của thuật toán giải bài toán bởi một hàm của kích thước dữ liệu đầu vào của bài toán, được ghi nhận dưới dạng ký pháp tiệm cận (asymptotic notation),
trong đó ký hiệu O được sử dụng để ghi nhận đánh giá tiệm cận
trên Tuy nhiên, một nhược điểm của việc sử dụng ký hiệu tiệm cận chính là kết quả so sánh tốc độ tăng của các hàm chỉ đúng khi đối
số “đủ lớn” Vì thế khi đối số chưa đủ lớn thì kết quả so sánh có thể
là không đúng Chẳng hạn, một thuật toán có đánh giá thời gian tính
là f(n) = 1000n2O(n2) là nhanh hơn thuật toán có đánh giá g(n) = 2n3O(n3) khi n đủ lớn Nhưng khi n<100, dễ thấy là đòi hỏi 1000n2 (= 107, khi n=100) là lớn hơn đòi hỏi 2n3 (= 2*106, khi
n=100) đến 5 lần
Mặt khác, người sử dụng rất cần thông tin chi tiết về thời gian mà thuật toán đòi hỏi để đưa ra lời giải có chất lượng đáp ứng yêu cầu đặt ra đối với những kích thước cụ thể tương ứng với kích thước bài toán ứng dụng mà họ cần lựa chọn thuật toán giải Để đáp ứng yêu cầu này, bên cạnh việc đưa ra đánh giá thời gian tính lý thuyết của thuật toán trong ký pháp tiệm cận, các nhà khoa học khi phát triển thuật toán thường đưa ra thông tin về thời gian tính thực nghiệm của thuật toán
Khi so sánh thời gian tính của các thuật toán khác nhau dựa trên
thực nghiệm, lại phát sinh một yêu cầu Khi so sánh các thuật toán cần chạy trên một hạ tầng thông tin; mà để đáp ứng yêu cầu này,
khi tiến hành thực nghiệm các tác giả không những phải cài đặt thuật toán của mình mà còn phải cài đặt lại các thuật toán của các
Trang 97
tác giả khác trên cùng một ngôn ngữ lập trình và chạy trên cùng một cấu hình máy tính để giải cùng bộ dữ liệu chuẩn Đây là một thách thức với cộng đồng những nhà khoa học trong lĩnh vực phát triển thuật toán Do đó, ngay cuối những năm 1980, có một cách giải quyết vần đề này được cộng đồng các nhà khoa học sử dụng trong những tình huống như vậy: Đó là dựa vào thông tin đánh giá tốc độ xử lý của các máy tính được các chuyên gia máy tính đưa ra
Hiện nay, trong công trình Performance of Various Computers Using Standard Linear Equations Software của Jack J Dongarra đã
trình bày cách đánh giá hiệu quả của các hệ thống máy tính khác nhau bằng việc sử dụng các phần mềm tính toán giải hệ phương trình tuyến tính Công trình này sử dụng đơn vị đo Mflop/s (Million Floating-point Operations Per Second – triệu phép tính dấu phảy động trên giây) để đánh giá hiệu suất của các máy tính Kết quả của công trình nghiên cứu là bảng số liệu về tốc độ đo bởi Mflop/s cho mỗi một cấu hình máy tính Sử dụng bảng thông tin này các tác giả không cần cài đặt lại thuật toán của người khác, mà để so sánh tương đối thời gian tính của các thuật toán có thể đưa ra các thông tin sau: Thời gian tính được công bố bởi chính tác giả thuật toán; thông tin về cấu hình máy tính thực hiện thuật toán; qui đổi thời gian tính dựa trên thông tin về tốc độ máy tính lấy từ công trình của Dongarra
1.5.HỆ THỐNG DỮ LIỆU THỰC NGHIỆM CHUẨN
Trong các công trình nghiên cứu gần đây về bài toán MRCST, các
tác giả thường sử dụng 35 bộ dữ liệu là các đồ thị đầy đủ: Trong đó
21 bộ dữ liệu là các đồ thị đầy đủ Euclid được lấy từ website http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files và 14 bộ dữ liệu
đồ thị đầy đủ ngẫu nhiên được đề xuất từ công trình của tác giả Bryant A Julstrom (B A Julstrom là tác giả đầu tiên sử dụng 35
bộ dữ liệu này)
Trong nhiều giáo trình cấu trúc dữ liệu, lý thuyết đồ thị; khi bàn về các cách biểu diễn đồ thị trên máy tính, đều nhấn mạnh là hầu hết các đồ thị gặp trong thực tế ứng dụng là đồ thị thưa Vì vậy, trong luận án, để phân tích hiệu quả của các thuật toán trên các đồ thị thưa, chúng tôi sử dụng thêm 14 bộ dữ liệu là các đồ thị thưa; trong
đó có 7 bộ dữ liệu 500 đỉnh và 7 bộ dữ liệu 1000 đỉnh Toàn bộ 14
Trang 108
bộ dữ liệu bổ sung này chúng tôi lấy lấy từ website http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files
Như vậy, luận án sử dụng tổng cộng 49 bộ dữ liệu, và chúng tôi gọi
đây là hệ thống dữ liệu thực nghiệm chuẩn cho bài toán MRCST; viết tắt là BDMRCST
1.6.KHẢO SÁT THỰC NGHIỆM CÁC THUẬT TOÁN GIẢI BÀI TOÁN MRCST
1.6.1.Cấu hình máy tính thực nghiệm các thuật toán
Bảng 1.3 ghi nhận cấu hình máy tính được sử dụng khi tiến hành
thực nghiệm các thuật toán giải bài toán MRCST hiện biết Trong
đó, cột “Tốc độ” ghi nhận tốc độ của CPU (Theoretical Peak) được tính theo đơn vị Mflop/s; các thông số này được trích dẫn từ công trình của Dongarra Các số trên cột “Hệ số” được tính như sau: Máy tính có tốc độ thấp nhất được gán hệ số 1, hệ số của mỗi máy tính còn lại được tính bằng tỷ số giữa tốc độ của máy tính đó với tốc độ của máy tính có hệ số 1
Bảng 1.3 Cấu hình máy tính thực nghiệm các thuật toán
Thứ
tự thuật toán Tên gọi Bộ xử lý Tốc độ Hệ số Bộ nhớ RAM Hệ điều hành
1 WONG Intel (R) Core i3-2330M, 2.20 GHz 22170 4.38 4 GB Windows 7
2 ADD Intel (R) Core i3-2330M, 2.20 GHz 22170 4.38 4 GB Windows 7
3 CAMPOS Intel (R) Core i3-2330M, 2.20 GHz 22170 4.38 4 GB Windows 7
4 ESCGA Pentium 4, 2.53 GHz 5060 1.00 256 MB Red Linux 9.0 Hat
5 BCGA Pentium 4, 2.53 GHz 5060 1.00 256 MB Red Linux 9.0 Hat
6 SHC Pentium 4, 2.53 GHz 5060 1.00 256 MB Red Linux 9.0 Hat
7 PBLS Pentium 4, 3.0 GHz 6000 1.19 512 MB Red Linux 9.0 Hat
8 PABC Pentium 4, 3.0 GHz 6000 1.19 512 MB Red Linux 9.0 Hat
9 ABC+LS Pentium 4, 3.0 GHz 6000 1.19 512 MB Red Linux 9.0 Hat
Trang 119
1.6.2.Chất lượng lời giải
Kết quả thực nghiệm từ các thuật toán đã công bố của các tác giả
khác như ESCGA, BCGA, SHC, PBLS, PABC, ABC+LS trên các đồ
thị đầy đủ Euclid và đồ thị đầy đủ ngẫu nhiên được trích nguyên gốc từ các công trình tương ứng Với 14 bộ dữ liệu là các đồ thị thưa; do chưa có một công trình nào công bố chất lượng lời giải,
nên chúng tôi đã cài đặt lại các thuật toán SHC, PBLS, ABC+LS
trên cùng môi trường triển khai các thuật toán đề xuất trong luận
án Để kiểm tra chất lượng các chương trình do chúng tôi cài đặt, chúng tôi đã đối sánh output từ các chương trình do chúng tôi cài đặt với output mà các tác giả đã công bố (trên các bộ dữ liệu đã có kết quả công bố)
Chi phí định tuyến trong các bảng thực nghiệm được ghi nhận bằng
½ giá trị tính theo công thức (1-2)
Đánh giá chung trên 49 bộ dữ liệu thì các thuật toán được xếp hạng
theo chất lượng lời giải như sau: ABC+LS, PABC, PBLS, SHC, ESCGA, BCGA, CAMPOS, WONG, ADD
Từ chất lượng lời giải thu được trên, luận án rút ra một số nhận xét sau: Đối với đồ thị đầy đủ Euclid, trong các thuật toán nhanh
WONG, CAMPOS, ADD thì thuật toán CAMPOS cho chất lượng lời giải tốt nhất; thuật toán ABC+LS cho chất lượng lời giải tốt nhất
trong số tất cả các thuật toán đã khảo sát Đối với đồ thị đầy đủ
ngẫu nhiên, trong các thuật toán nhanh thì thuật toán WONG cho chất lượng lời giải tốt nhất; các thuật toán SHC, PBLS, PABC, ABC+LS cho chất lượng lời giải tương đương và chúng cho chất lượng lời giải tốt hơn các thuật toán di truyền ESCGA, BCGA
1.6.3.Thời gian tính
Thời gian thực nghiệm trong luận án được tính theo đơn vị giây
Thời gian tính của các thuật toán metaheuristic ESCGA, BCGA, SHC, PBLS, PABC, ABC+LS đã được công bố trong các công trình
Trang 12một số công việc liên quan như mã hóa cây khung, tính chi phí định tuyến của cây khung và một số cách thức tạo lời giải ban đầu được
áp dụng trong các thuật toán metaheuristic giải bài toán MRCST Thứ tư, trình bày tiêu chí đánh giá chất lượng thuật toán giải gần đúng Thứ năm, giới thiệu chi tiết về hệ thống dữ liệu thực nghiệm chuẩn cho bài toán MRCST và ghi nhận kết quả thực nghiệm của các thuật toán trên đối với hệ thống dữ liệu thực nghiệm chuẩn này Từ khảo sát thực nghiệm khẳng định tiếp cận giải bài toán MRCST theo
hướng metaheuristic là có tiềm năng nhất Trong đó, thuật toán
ABC+LS cho chất lượng lời giải tốt hơn các thuật toán gần đúng
hiện biết trên đồ thị đầy đủ Euclid
Chương này có một số đóng góp cụ thể sau: Về mặt lý thuyết, luận
án đã đề xuất định lý đánh giá cận trên và cận dưới của tải định tuyến một cạnh thuộc cây khung (Định lý 1.2), từ đó đưa ra hệ quả 1.1 và hệ quả 1.2 về cận trên và cận dưới của chi phí định tuyến một cây khung Về mặt thực nghiệm, luận án đã đề xuất bổ sung 14
bộ dữ liệu thực nghiệm là các đồ thị thưa có kích thước lớn Để đánh giá các thuật toán hiện có trên các bộ dữ liệu bổ sung, chúng
tôi đã cài đặt lại các thuật toán WONG, SHC, PBLS, ABC+LS trên
cùng môi trường mà luận án đã triển khai
Kết quả chính của chương này đã được nghiên cứu sinh công bố tại hội nghị SocPar 2013
Chương 2 THUẬT TOÁN TÌM KIẾM LEO ĐỒI
Hầu hết các đồ thị gặp trong thực tế ứng dụng là đồ thị thưa Các
thuật toán metaheuristic gần đây giải bài toán MRCST như SHC, PBLS, PABC, ABC+LS được thực nghiệm trên các đồ thị đầy đủ
Euclid và đồ thị đầy đủ ngẫu nhiên Khi thực nghiệm các thuật toán này trên các đồ thị thưa thì chất lượng lời giải không có sự vượt trội nào trong khi thời gian thực hiện lại chậm đáng kể
Chương này đề xuất hai thuật toán HCSRI và HCSIR giải bài toán MRCST – trong đó có đề xuất cách thức tìm kiếm lân cận mới Các
Trang 1311
thuật toán HCSRI và HCSIR được phát triển dựa trên sơ đồ của thuật
toán tìm kiếm leo đồi Qua thực nghiệm cho thấy các đề xuất này cho lời giải với chất lượng cạnh tranh được với các thuật toán cùng
lớp là SHC, PBLS và các thuật toán PABC, ABC+LS trên các loại đồ
thị thưa và đồ thị đầy đủ ngẫu nhiên nhưng với thời gian tính nhanh
hơn Các thuật toán HCSRI, HCSIR cũng đã cho chất lượng lời giải
tốt hơn hẳn các thuật toán heuristic và các thuật toán di truyền đã
được công bố trước đó như WONG, ADD, CAMPOS, ESCGA, BCGA trên hệ thống dữ liệu thực nghiệm chuẩn
2.1.CÂY KHUNG LÂN CẬN
Cho đồ thị vô hướng liên thông có trọng số G Để ngắn gọn, trong các phần tiếp theo ta sẽ sử dụng ký hiệu T–{e} (hoặc T {e}) là đồ thị thu được từ T bởi việc loại cạnh e (hoặc chèn thêm vào cạnh e)
Mục này đưa ra một số định nghĩa về cây khung lân cận
Định nghĩa 2.1 (1-lân cận của cây khung T) Cho đồ thị G và T là
một cây khung của nó Ta gọi 1-lân cận của cây khung T là tập tất
cả các cây khung của đồ thị G sai khác với T không quá một cạnh Nếu T’ là một cây khung thuộc 1-lân cận của T thì ta nói T và T’ là 1-lân cận với nhau
Như vậy, nếu T’ là cây khung thuộc 1-lân cận của cây khung T (T’ T), thì tìm được cạnh e E(T) và cạnh e’ E(T’) sao cho E(T’)= E(T) –{e} {e’}, nghĩa là cây T’ thu được từ cây T bằng cách loại cạnh e và sau đó thêm vào cạnh e’
Trong một số trường hợp chúng ta còn sử dụng những lân cận rộng
hơn so với 1-lân cận Khái niệm k-lân cận dưới đây là mở rộng trực tiếp của khái niệm 1-lân cận
Định nghĩa 2.2 (k-lân cận của cây khung T) Cho đồ thị G và T là
một cây khung của nó Ta gọi k-lân cận của cây khung T là tập tất
cả các cây khung của đồ thị G sai khác với T không quá k cạnh Nếu T’ là một cây khung thuộc k-lân cận của T thì ta nói T và T’ là k-lân cận với nhau
Như vậy, nếu T’ là cây khung thuộc k-lân cận của cây khung T (T’ T), thì tìm được tập cạnh X E(T) và tập cạnh X’ E(T’) sao cho
|X| = |X’| ≤ k và E(T’)= E(T) – X X’, nghĩa là cây T’ thu được từ
cây T bằng cách loại tập cạnh X và sau đó thêm vào tập cạnh X’ Định nghĩa 2.3 (Lân cận tất định và lân cận ngẫu nhiên) Nếu các