Bài toán này còn được sử dụng để giải quyết nhiều vấn đề thực tế nhưxây dựng đường ống dẫn nước, mạng dây điện, mạng cáp quang internet,...Bài toán đặt ra là phải kết nối một số điểm cho
Trang 1Mục lục
Lời nói đầu 1
Danh mục ký hiệu 3
Danh sách hình vẽ 5
Chương 1 LỊCH SỬ BÀI TOÁN STEINER 6 1.1 Lịch sử bài toán Steiner 6
1.1.1 Bài toán Fermat - Torricelli - Napoleon 6
1.1.2 Bài toán Gauss 8
1.1.3 Phát biểu bài toán Steiner cho n điểm 9
1.2 Một số khái niệm bổ trợ 10
1.2.1 Đồ thị 10
1.2.2 Đồ thị có hướng và đồ thị vô hướng 10
1.2.3 Đỉnh kề 11
1.2.4 Cạnh liên thuộc 11
1.2.5 Đỉnh cô lập 11
1.2.6 Bậc của đỉnh 11
1.2.7 Hành trình, đường và chu trình 12
1.2.8 Đồ thị có trọng số và không có trọng số 13
1.2.9 Đồ thị con 13
1.2.10 Đồ thị liên thông 14
1.2.11 Mạng 14
1.2.12 Cây 14
1.2.13 Cây bao trùm 14
1.2.14 Cây bao trùm nhỏ nhất 15
1.2.15 Tập lồi, bao lồi 15
Trang 2Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH
2.1 Đồ thị Euclide 16
2.2 Bài toán Steiner 16
2.3 Ý tưởng 17
2.3.1 Định nghĩa và kí hiệu 17
2.3.2 Các loại cây 17
2.3.3 Các tính chất của cây Steiner 21
2.4 Thuật toán 26
2.4.1 Bài toán Steiner trong trường hợp n = 3 26
2.4.2 Thuật toán tìm cây ngắn nhất cho ba điểm 27
2.4.3 Thuật toán Melzak cho bốn điểm 29
2.4.4 Thuật toán Melzak 33
2.5 Tỉ số Steiner (the Steiner ratio) 36
Chương 3 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH CHỮ NHẬT 38 3.1 Một số khái niệm 38
3.2 Bài toán Steiner với ba điểm và khoảng cách chữ nhật 41
3.3 Điều kiện cần của bài toán Sn 43
3.4 Bài toán Steiner trong trường hợp n = 4 50
3.5 Bài toán Steiner trong trường hợp n = 5 54
Kết luận 57
Tài liệu tham khảo 59
Trang 3Lời nói đầu
Giả sử chúng ta cần xây dựng một hệ thống giao thông nối tất cácđiểm quan trọng (bệnh viện, trường học, ) trong một khu đô thị mới Vấn
đề đặt ra là ta phải thiết kế sao cho hệ thống giao thông đó có độ dài ngắnnhất để tiết kiệm chi phí xây dựng, cũng như thuận tiện cho việc sử dụngsau này Đây là một ví dụ của bài toán Steiner
Bài toán này còn được sử dụng để giải quyết nhiều vấn đề thực tế nhưxây dựng đường ống dẫn nước, mạng dây điện, mạng cáp quang internet, Bài toán đặt ra là phải kết nối một số điểm cho trước trong mặt phẳngEuclide, cho phép thêm một số điểm để giảm thiểu tổng chiều dài (cácđiểm thêm vào được gọi là điểm Steiner )
Bài toán Steiner còn được mở rộng với khoảng cách chữ nhật (rectilineardistance) khi mà cạnh của mạng chỉ được phép đi theo chiều dọc hoặcchiều ngang hay nói cách khác chỉ gồm các đường thẳng song song với trục
0x, 0y Bài toán Steiner với khoảng cách chữ nhật được ứng dụng trongtrong công nghệ mạch
Luận văn Về bài toán Steiner có mục đích trình bày một số vấn đề cơ bảnnhất của bài toán Steiner và gồm ba chương
Chương 1: Lịch sử bài toán Steiner
Chương này trình bày sự ra đời và phát triển của bài toán Steiner, một sốkiến thức của lý thuyết đồ thị cần thiết phục vụ cho việc nghiên cứu vàgiải quyết bài toán Steiner
Chương 2: Bài toán Steiner với khoảng cách Euclide
Chương này trình bày hai thuật toán cơ bản để giải quyết bài toán Steiner
là thuật toán ba điểm và thuật toán Melzak
Chương 3: Bài toán Steiner với khoảng cách chữ nhật (rectilinear
Trang 4dis-Lời nói đầu
Trình bày thuật toán giải bài toán Steiner với khoảng cách chữ nhật trongtrường hợp số điểm cần kết nối nhỏ hơn hoặc bằng năm
Luận văn được hoàn thành tại Viện Toán học, Viện Hàn lâm Khoa học
và Công nghệ Việt Nam, dưới sự hướng dẫn của PGS TS Tạ Duy Phượng.Đầu tiên tác giả xin trân trọng gửi lời cảm ơn đến các thầy cô giáo,các cán bộ công nhân viên của Viện Toán học, Viện Hàn lâm Khoa học vàCông nghệ Việt Nam, những người đã giảng dạy và cung cấp những kiếnthức khoa học quý báu trong những năm học vừa qua, để tôi có nền tảngkiến thức thực hiện luận văn này, cũng như đã quan tâm giúp đỡ tôi trongsuốt quá trình học tập và nghiên cứu tại Viện
Đặc biệt, tác giả xin được bày tỏ lời cảm ơn sâu sắc tới thầy giáo hướngdẫn, PGS TS Tạ Duy Phượng, người đã tận tình chỉ bảo, giúp đỡ và tạođiều kiện về nhiều mặt để tác giả có thể hoàn thành luận văn này
Tác giả cũng xin bày tỏ lòng biết ơn tới lãnh đạo Khoa Khoa học tựnhiên, Ban Giám hiệu trường Đại học Thủ Dầu Một, Sở Nội vụ tỉnh BìnhDương đã tạo mọi điều kiện thuận lợi nhất giúp tôi hoàn thành khóa học.Tác giả cũng xin chân thành cảm ơn toàn thể gia đình, bạn bè, đồngnghiệp đã luôn động viên giúp đỡ trong suốt quá trình học tập
Hà Nội, ngày 15 tháng 08 năm 2014
Trần Lê Thủy
Trang 5Danh mục ký hiệu
pq hoặc pq Đoạn thẳng nối hai điểm p và q
|x| Giá trị tuyệt đối của x
\
R2 Không gian Euclide hai chiều
∆abc Tam giác tạo bởi ba đỉnh a, b, c
Trang 6Danh sách hình vẽ
1.1 Phương pháp Torricelli 6
1.2 Phương pháp Simpson 7
1.3 Bài toán Napoleon 8
1.4 Mạng giao thông tối ưu nối bốn thành phố 9
1.5 Đồ thị có hướng 10
1.6 Đồ thị vô hướng 11
1.7 Đồ thị có chu trình 13
1.8 Đồ thị con của một đồ thị 13
1.9 Đồ thị liên thông và đồ thị không liên thông 14
2.1 Mạng có chu trình 17
2.2 Cấu hình giống nhau 19
2.3 Cấu hình khác nhau 19
2.4 Cây suy biến 20
2.5 Thu hẹp và phân chia 20
2.6 Điều kiện góc 21
2.7 Ví dụ trường hợp điểm Steiner bậc 2 22
2.8 Thuật toán ba điểm 27
2.9 Chứng minh Định lý 2.4 29
2.10 Vị trí và cấu hình ban đầu 30
2.11 Thuật toán Melzak: Bước 1 30
2.12 Thuật toán Melzak: Bước 2 31
2.13 Thuật toán Melzak: Bước 3 31
2.14 Thuật toán Melzak: Bước 4 32
2.15 Thuật toán Melzak: Bước 4 33
2.16 SMT và MST cho một tam giác đều 36
Trang 7DANH SÁCH HÌNH VẼ
3.1 Khoảng cách chữ nhật khi quay trục tọa độ 39
3.2 Hình chữ nhật bao 41
3.3 Nghiệm bài toán S3 và P3 trùng nhau 43
3.4 Điều kiện cần của nghiệm của Sn 45
3.5 Chứng minh Bổ đề 3.2 47
3.6 Chứng minh Bổ đề 3.2 48
3.7 Chứng minh Bổ đề 3.2 49
3.8 Bài toán Steiner cho trường hợp n = 4 51
3.9 Ví dụ hình chữ nhật trong 52
3.10 Bài toán Steiner cho trường hợp n = 4 53
3.11 Bài toán Steiner cho trường hợp n = 5 55
3.12 Bài toán Steiner cho trường hợp n = 5 55
3.13 Mạng giao thông kết nối 532 thành phố của nước Mỹ 57
Trang 8Chương 1
LỊCH SỬ BÀI TOÁN STEINER
1.1 Lịch sử bài toán Steiner
1.1.1 Bài toán Fermat - Torricelli - Napoleon
Vào thế kỷ 17, nhà toán học Pháp Pierre de Fermat (1601 - 1665) đã đặt rabài toán sau đây: “Cho trước ba điểm trong mặt phẳng Hãy tìm điểm thứ
tư sao cho tổng khoảng cách từ điểm này tới ba điểm cho trước là nhỏ nhất ”
B
A
C F
1 Cho 4ABC Dựng các tam giác đều: 4ABD, 4BCE, 4ACF bênngoài 4ABC
2 Dựng các đường tròn ngoại tiếp các tam giác đều 4ABD, 4BCE,
4ACF Ba đường tròn này cắt nhau tại một điểm, ký hiệu là P Điểm
P chính là điểm có tổng khoảng cách đến ba điểm A, B, C ngắn nhất.Điểm này được gọi là điểm Torricelli của 4ABC đã cho
Trang 9Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Bonaventura Francesco Cavalieri (1598 - 1667) trong cuốn sách tationes geometricae” xuất bản năm 1647 đã chỉ ra rằng, điểm Torricelli
“Exezci-P nhìn ba cạnh của 4ABC dưới các góc bằng 1200
Thomas Simpson (1710 - 1761) đưa ra một phương pháp tìm điểmTorricelli vào năm 1750 Phương pháp của Simpson thực hiện bằng cách
vẽ ba đường Simpson nối mỗi đỉnh của tam giác đều nằm ngoài 4ABC
với đỉnh đối diện của 4ABC Ba đường Simpson cắt nhau tại một điểm,điểm này cũng là điểm Torricelli
Hình 1.2Phương pháp Simpson
Bài toán Fermat có liên hệ trực tiếp với định lý Napoleon sau đây.Định lý Napoleon Cho 4ABC Về phía ngoài 4ABC dựng ba tamgiác đều M BCA0, M ACB0 và M ABC0 Khi đó tâm của ba tam giác đều
M BCA0, M ACB0 và M ABC0 cũng tạo thành một tam giác đều và bađường thẳng AA0, BB0 và CC0 đồng quy
Phải đến năm 1834 nhà toán học Franz Heinen mới đưa ra lời giải trọnvẹn cho bài toán Fermat như sau:
Trang 10Chương 1 LỊCH SỬ BÀI TOÁN STEINER
i) Nếu một trong các góc của4ABC được tạo thành từ ba điểmA, B, C
lớn hơn hoặc bằng 1200 thì lời giải bài toán Fermat là điểm trùng với đỉnhcủa góc lớn hơn hoặc bằng 1200
ii) Nếu các góc của 4ABC nhỏ hơn 1200 thì lời giải bài toán Fermat
là giao điểm của các đường Simpson hoặc điểm Torricelli và là điểm nhìncác cạnh của 4ABC với ba góc bằng 1200 Ông cũng chỉ ra rằng tổngkhoảng cách từ điểm Torricelli đến ba đỉnh của tam giác bằng độ dài củacác đường Simpson
Hình 1.3 Bài toán Napoleon
Bài toán Fermat đã được mở rộng bởi nhiều nhà toán học khác
Bài toán Fermat mở rộng Cho trước một tập hợp hữu hạn điểm trongmặt phẳng Hãy tìm một điểm sao cho tổng khoảng cách từ điểm này tớicác điểm cho trước là nhỏ nhất có thể
Điểm cần tìm được gọi là điểm Torricelli của hệ n điểm cho trước
Vào thế kỷ 19, Jacob Steiner (1796 - 1863) đã mở rộng bài toán của Fermatbằng cách cho phép thêm vào một số điểm phụ không thuộc tập các điểm
đã cho
1.1.2 Bài toán Gauss
Các nhà nghiên cứu lịch sử toán học đã phát hiện ra rằng, Carl FriedrichGauss (1777 - 1855) cũng đã biết đến bài toán Steiner Năm 1836 trong
Trang 11Chương 1 LỊCH SỬ BÀI TOÁN STEINER
bức thư trả lời người bạn của mình là nhà thiên văn học Schumacher,Gauss có viết: “Nếu đề cập tới vấn đề kiến thiết một mạng giao thông tối
ưu cho các đỉnh một tứ giác, thì ta gặp phải bài toán thật sự thú vị, màtôi đã biết tới nó khi phải thiết kế các tuyến đường sắt nối các thành phốHarburg, Bremen, Hannover và Braunschweig ”
Bài toán trên đã được Karl Bopp (1856 – 1905) giải quyết một cáchtriệt để vào năm 1879 Hệ thống đường sắt tối ưu được bổ sung thêmmột điểm, là điểm Torricelli của tam giác với ba đỉnh là ba thành phốHarburg, Bremen, Hannover, và Braunschweig được nối với Hannover bởimột tuyến đường sắt chạy thẳng Trong Hình 1.4, chúng ta thấy mô tả lờigiải của bài toán này
Hurburg
Bremen
Hannover
Braunschweig
Hình 1.4 Mạng giao thông tối ưu nối bốn thành phố
1.1.3 Phát biểu bài toán Steiner cho n điểm
Cuốn sách “What is Mathematics” của Robbins và Courant xuất bản năm
1941, đã phát biểu bài toán dưới đây
Bài toán Steiner cho n điểm Cho trước một tập hợp hữu hạn n điểmtrên mặt phẳng (hoặc trong không gian metric nào đó), hãy tìm mạng giaothông nối các điểm này lại với nhau, cho phép thêm một số điểm mới, saocho tổng độ dài của các đoạn thẳng nối các điểm là nhỏ nhất
Bài toán Steiner với ba điểm cho trước chính là một trường hợp riêng củabài toán Fermat Nhưng bài toán Steiner cho bốn điểm không còn là bài
Trang 12Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Chương 2 sẽ trình bày lời giải của bài toán Steiner cho trường hợp n = 3
và thuật toán Melzak giải bài toán Steiner cho n điểm bất kì
1.2 Một số khái niệm bổ trợ
1.2.1 Đồ thị
Định nghĩa 1.1 (xem [1], trang 9) Một đồ thị G bao gồm một tập hợp
V, mà mỗi phần tử được gọi là đỉnh (hoặc nút ) và một tập hợp E gồmcác cặp hai đỉnh u và v dạng e = (u, v), được gọi là cạnh Ký hiệu đồ thị
G là G = (V, E)
Tập V hữu hạn thì đồ thịG được gọi là đồ thị hữu hạn Trong luận vănnày ta quy ước khi nói đến đồ thị G thì G là đồ thị hữu hạn với số đỉnhcủa đồ thị là n, số cạnh là m, tức là |V | = n, |E| = m
1.2.2 Đồ thị có hướng và đồ thị vô hướng
Định nghĩa 1.2 (xem [1], trang 9) Giả sử u và v là hai đỉnh của đồ thị
G = (V, E), nếu cặp (u, v) ∈ E có kể đến thứ tự u là đỉnh đầu, v là đỉnhcuối, thì ta gọi đó là đồ thị có hướng, khi đó mỗi cạnh e = (u, v) được gọi
là một cung (Hình 1.5)
Hình 1.5 Đồ thị có hướng
Ngược lại, ta gọi đó là đồ thị vô hướng (hay đồ thị không có hướng) và
(u, v) gọi là cạnh nối đỉnh u với v và cũng kí hiệu là e = (u, v) (Hình 1.6).Bằng hình vẽ ta có thể biểu diễn mỗi đỉnh của đồ thị bởi một điểm trênmặt phẳng, mỗi cạnh bởi một đường nối hai điểm tương ứng với hai đỉnh
Trang 13Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Trang 14Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Trên đồ thị Hình 1.6 thì bậc của đỉnh a là 3 vì đỉnh a có các đỉnh kề là
b, d, e
Định lý 1.1 (xem [1], trang 11) Giả sử G = (V, E) là đồ thị vô hướng
m cạnh, khi đó tổng tất cả các bậc của đỉnh trong V của đồ thị được tínhbằng công thức
Định nghĩa 1.7 (xem [3], trang 193) Giả sử G = (V, E) là một đồ thị
có hướng Một hành trình có hướng trong G là một dãy v0e1v1e2v2 envn
sao cho với mọi i = 0, 1, , n, vi ∈ V, còn với mọi i = 1, , n, ei ∈ E và
ei = (vi−1,vi) Đỉnh v0 được gọi là đỉnh đầu, còn đỉnh vn được gọi là đỉnhcuối của hành trình có hướng trên
Định nghĩa 1.8 (xem [3], trang 193) Một hành trình vô hướng trong G
là một dãy v0e1v1e2v2 envn sao cho với mọi i = 0, 1, , n, vi ∈ V, còn vớimọi i = 1, , n, ei ∈ E và hoặc ei = (vi−1,vi) hoặc ei = (vi, vi−1) Đỉnh v0
được gọi là đỉnh đầu, còn đỉnh vn được gọi là đỉnh cuối của hành trình vôhướng trên
Định nghĩa 1.9 (xem [3], trang 193) Một hành trình (có hướng, vôhướng) được gọi là khép kín nếu đỉnh đầu và đỉnh cuối của nó trùng nhau.Định nghĩa 1.10 (xem [3], trang 194) Một hành trình được gọi là đườngnếu các đỉnh của hành trình đó đều khác nhau
Định nghĩa 1.11 (xem [3], trang 194) Hành trình khép kín được gọi làchu trình, nếu hành trình đó có ít nhất ba cạnh và khi xóa đi đỉnh cuốithì trở thành đường Ví dụ: {a, b, c, f, a} trong Hình 1.7 là một chu trình.Định nghĩa 1.12 (xem [3], trang 186) Cung dạng (a, a) với a ∈ V đượcgọi là khuyên
Ví dụ: Trong Hình 1.5 cung (d, d) là một khuyên
Trang 15Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Hình 1.7Đồ thị có chu trình1.2.8 Đồ thị có trọng số và không có trọng số
Định nghĩa 1.13 (xem [1], trang 12) Đồ thị Gmà mỗi cạnh của nó đượcgắn với một số không âm, thể hiện thông tin liên quan đến cạnh đó, đượcgọi là đồ thị có trọng số Nói cách khác, đồ thị có trọng số nếu có ánh xạ
l : E → R+, trong đó E là tập các cạnh; R+ là tập số thực không âm;
w = l(e) được gọi là trọng số của cạnh e ∈ E
Đồ thị mà mỗi cạnh không được gắn trọng số thì ta gọi là đồ thị không
có trọng số
1.2.9 Đồ thị con
Định nghĩa 1.14 (xem [1], trang 14) Đồ thị con của đồ thị G là đồ thị
mà tập đỉnh và các cạnh của nó là các tập con của các thành phần tươngứng của G
4 5
6
Hình 1.8Đồ thị con của một đồ thị
Trong Hình 1.8 đồ thị H = (W, F ), trong đó W = {1, 2, 5, 6} và F ={(1, 2), (1, 6), (2, 5), (2, 6)} là đồ thị con của đồ thị G, bởi vì W ⊆ V,
F ⊆ E
Trang 16Chương 1 LỊCH SỬ BÀI TOÁN STEINER
Nhận xét 1.1 Cho G = (V, E) và tập V1 ⊂ V Đồ thị con có tập đỉnh
V1 và tập cạnh chứa tất cả các cạnh của G mà chúng nối hai đỉnh thuộc
V1 được gọi là đồ thị con sinh bởi V1
Trong Hình 1.8 đồ thị K = (A, B) trong đó A = {1, 2, 5, 6} và B ={(1, 2), (1, 6), (2, 5), (2, 6), (5, 6)} được gọi là đồ thị con sinh bởi A
1.2.10 Đồ thị liên thông
Định nghĩa 1.15 (xem [1], trang 15) Đồ thị G là liên thông nếu tìmđược đường nối hai đỉnh bất kì trong đồ thị Ngược lại, ta nói đồ thị G làkhông liên thông
Hình 1.9 Đồ thị liên thông và đồ thị không liên thông
Hình 1.9(a) là đồ thị liên thông, còn Hình 1.9(b) là đồ thị không liên thông
Trang 17Chương 1 LỊCH SỬ BÀI TOÁN STEINER
1.2.14 Cây bao trùm nhỏ nhất
Định nghĩa 1.19 (xem [11], trang 7) Giả sử G(V, E) là một đồ thị hữuhạn, liên thông và mỗi cạnh có trọng số l(e) > 0 cho trước Cây bao trùmnhỏ nhất (minimum spanning tree) củaG(V, E) là cây bao trùmG0(V, E0)
sao cho tổng trọng số của các cạnh P
e∈E 0
l(e) là bé nhất
1.2.15 Tập lồi, bao lồi
Kí hiệu En là không gian Eucliden−chiều với chuẩn Euclide kí hiệu là k·k.Cho hai điểm phân biệt p, q ∈ En Đoạn thẳng nối hai điểm pvà q, kí hiệu
là pq, là tập tất cả các điểm x ∈ En có dạngx = (1 − λ)p + λq, 0 ≤ λ ≤ 1
Định nghĩa 1.20 (xem [12]) Tập W ⊂ En được gọi là một tập lồi nếu
W chứa trọn đoạn thẳng nối hai điểm bất kì thuộc nó, tức là
x1, x2 ∈ W, suy ra x1x2 ⊂ W
Định nghĩa 1.21 (xem [12]) Cho W ⊂ En Bao lồi của W, kí hiệu làconvW, là giao của tất cả các tập lồi trong En chứa W
Trang 18Chương 2
BÀI TOÁN STEINER VỚI
KHOẢNG CÁCH EUCLIDE
2.1 Đồ thị Euclide
Định nghĩa 2.1 (xem [11], trang 10) Khoảng cách Euclide giữa hai điểm
x, y trong không gian Euclide là chiều dài đoạn thẳng nối giữa chúng.Nếu x = (x1, x2, , xn) và y = (y1, y2, , yn) là các điểm trong không gianEuclide n−chiều Rn thì khoảng cách giữa x và y được xác định bởi
Định nghĩa 2.2 (xem [1], trang 93) Đồ thị Euclide là đồ thị có trọng
số mà các đỉnh là các điểm trong không gian Euclide và trọng số của cáccạnh nối giữa các đỉnh bằng khoảng cách Euclide giữa các đỉnh đó
Định nghĩa 2.3 (xem [1], trang 93) Cây bao trùm Euclide là một câybao trùm trong đồ thị Euclide
Định nghĩa 2.4 (xem [1], trang 93) Cây bao trùm Euclide nhỏ nhất làcây bao trùm Euclide có tổng độ dài Euclide của các cạnh là nhỏ nhất
2.2 Bài toán Steiner
Cho trước một tập hợp hữu hạnnđiểm trên mặt phẳng (hoặc trong khônggian Euclide) Bài toán Steiner là bài toán xây dựng một mạng có các đỉnh
lànđiểm đã cho và một số điểm mới thêm vào sao cho tổng độ dài (Euclide)các cạnh của mạng là nhỏ nhất
Trang 19Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Định nghĩa 2.5 Một điểm không thuộc các điểm cho trước trong bàitoán Steiner, tham gia vào quá trình xây dựng cây Steiner được gọi làđiểm Steiner
Lời giải của bài toán Steiner Euclide là một mạng T nối n điểm đã chotrong mặt phẳng Euclide gọi là điểm cuối (điểm terminals) mà ta kí hiệu
là vi, i = 1, , n Các đỉnh còn lại của T không phải là điểm đã cho thìđược gọi là điểm Steiner, kí hiệu là Sj
2.3.2 Các loại cây
v1
v4 v3
v2
S
Hình 2.1 Mạng có chu trình
Định nghĩa 2.6 (xem [11], trang 25) Trong mặt phẳng chonđiểm Mạng
T kết nối các điểm đã cho ban đầu và các điểm Steiner thêm vào sao chotổng độ dài các cạnh là nhỏ nhất được gọi là một cây Steiner ngắn nhất(Steiner minimal tree) Như vậy theo định nghĩa, cây Steiner ngắn nhất làmột mạng (nối tất cả các điểm đã cho và điểm các điểm Steiner) Mạng
Trang 20Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
này phải là một cây, tức là nó phải là một đồ thị vô hướng, liên thông vàkhông có chu trình.Ví dụ dưới đây giải thích rõ điều đó
Ví dụ 2.1 Cho mạng như trong Hình 2.1, trong đó v1, v2, v3, v4 là cácđiểm cần kết nối, S là điểm Steiner thêm vào, mạng này có chu trình:
v1, S, v3 Ta thấy nếu bỏ đi cạnhv1v3 thì mạng thu được vẫn đảm bảo tínhliên thông và có tổng độ dài ngắn hơn
Do đó từ nay về sau, khi nói đến mạng T ta sẽ coi nó là một cây.Việc đi tìm cây Steiner ngắn nhất cho n điểm nói chung là rất khó.Chúng ta chưa có quy tắc để xác định chính xác vị trí hình học của cácđiểm Steiner thêm vào để tạo ra một cây Steiner ngắn nhất Các điểmSteiner đó được nối như thế nào với các đỉnh đã cho ban đầu và vị trí cụthể của nó trong cây Steiner ra sao?
Để giải quyết vấn đề này, ta chia bài toán thành những trường hợp nhỏ,tìm phương án tối ưu của từng trường hợp rồi sau đó tìm phương án tối
ưu nhất trong các phương án vừa tìm được Khi đó ta được cây Steinerngắn nhất cần tìm
Ta đưa vào các khái niệm sau
Định nghĩa 2.7 (xem [7], trang 4) Cấu hình (topology) là đồ thị thểhiện sự kết nối giữa các điểm cuối và các điểm Steiner
Định nghĩa 2.8 Một cây ngắn hơn so với bất kỳ một cây khác trongcùng một cấu hình được gọi là cây tối thiểu tương đối (relatively minimaltree) cho cấu hình đó
Để tìm cây Steiner ngắn nhất, ta chia các phương án mà cách nối cácđiểm Steiner với các điểm ban đầu giống nhau (không quan tâm tới vịtrí của các điểm Steiner hay không quan tâm độ dài các cạnh) là thuộccùng một cấu hình (topology) Sau đó tìm một cây tối thiểu tương đối (arelatively minimal tree) cho cấu hình đó Trong Hình 2.2(a) và 2.2(b) haiđiểm v1 và v2 được nối với một điểm Steiner S1, hai điểm v3 và v4 đượcnối với một điểm Steiner S2 và chúng được coi là có cấu hình giống nhau.Trong Hình 2.3(a) hai điểm v1 và v2 được nối với một điểm Steiner S1, hai
Trang 21Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
điểm v3 và v4 được nối với một điểm Steiner S2, còn ở Hình 2.3(b) v1 và
v3 được nối với một điểm Steiner S1, hai điểm v2 và v4 được nối với mộtđiểm Steiner S2, khi đó chúng được coi là có cấu hình khác nhau
Trong Hình 2.4(a) ta có tổng độ dài các cạnh của cây là nhỏ nhất khi
S1 ≡ S2 Mà một cây tối thiểu tương đối (relatively minimal tree) khôngcho phép có cạnh bằng 0 nên cấu hình này không tồn tại cây tương đốitối thiểu Cây có tổng độ dài nhỏ nhất được thể hiện trong Hình 2.4(b).Tuy nhiên cây này không được coi là có cùng cấu hình với cây trong Hình2.4(a) vì lúc này hai điểm Steiner S1 và S2 trùng nhau Người ta gọi cây
Trang 22Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
S2
S2
Hình 2.4 Cây suy biến
động vào cây T nhằm tìm kiếm một cây ngắn hơn từ mỗi cấu hình củacây T Đó là kĩ thuật thu hẹp (shrinking) và phân chia (spliting)
Thu hẹp là ta xóa đi một cạnh và co hai đỉnh đầu mút của cạnh đó lại(đặt chồng hai điểm đầu mút với nhau)
Ngược lại, phân chia là ta phá bỏ liên kết giữa các cạnh, giả sử trongcây T ta có hai cạnh [v1, u], [v2, u] được nối từ đỉnh u đến v1 và v2, ta bỏhai cạnh này đi để lập ra ba cạnh mới [v1, u0], [v2, u0], [u, u0] Đỉnh u0 làđỉnh mới được thành lập
Cây thu được sau khi thực hiện hai kĩ thuật này khác với việc đi tìm câytối thiểu tương đối ở chỗ nó tạo ra cây không có cùng cấu hình với câyban đầu
Trang 23Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Ví dụ: Hình 2.5(a) là đồ thị kết quả khi ta thu hẹp cạnh [v1, s1] của Hình2.2(a) Hình 2.5(b) là đồ thị kết quả khi ta phân chia cạnh[v1, v2]và[v1, S2]
của Hình 2.5(a)
Một cây không thể làm ngắn lại bởi một sự thay đổi nhỏ vị trí, gồm cả kĩthuật thu hẹp và phân chia được gọi là cây Steiner
Ta có nhận xét sau:
Cây Steiner ngắn nhất −−−→luôn là Cây Steiner −−−→luôn là Cây tối thiểu tương đối
2.3.3 Các tính chất của cây Steiner
Giả sử T là một cây Steiner, ta có các tính chất sau
a) Điều kiện góc: Nếu hai cạnh của cây Steiner tạo với nhau một gócnhỏ hơn 1200 thì ta có thể rút ngắn độ dài của cây theo cách sau
Gọi v là đỉnh mà tại đó hai cạnh e1, e2 tạo thành một góc nhỏ hơn 1200
và gọi p1, p2, là hai điểm cuối khác của e1, e2 Khi đó, ta có thể thêm vàomột điểm SteinerS là điểm Torricelli của 4p1vp2 Một cây ngắn hơn đượctạo thành bằng cách nối S với v, p1 và p2
Trang 24Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Nhận xét 2.2 Điểm Steiner có bậc trong T ít nhất là 3
Chứng minh Mọi điểm Steiner có bậc 1 ta có thể bỏ đi cạnh chứa điểm
đó trong cây để được cây có độ dài ngắn hơn mà không ảnh hưởng tới tínhliên thông của đồ thị Điểm Steiner bậc 2 ta có thể bỏ nó đi và thay thếhai cạnh xuất phát từ nó bởi một cạnh duy nhất nối hai đỉnh kề của nó
và cây thu được có tổng độ dài các cạnh không lớn hơn tổng độ dài các
Ví dụ 2.2 Trong Hình 2.7 ta có một cây trong đó các điểm v1, v2, v3 làcác điểm cho trước, còn S1, S2 là các điểm Steiner thêm vào, trong đó bậccủa S1 bằng 2 Ta có thể thay thế hai cạnh v1S1 và S1S2 bằng cạnh v1S2
để được cây ngắn hơn mà vẫn đảm bảo tính liên thông của đồ thị (Tổnghai cạnh trong tam giác luôn lớn hơn cạnh còn lại)
Hình 2.7Ví dụ trường hợp điểm Steiner bậc 2
Nhận xét 2.3 Bậc của điểm Steiner không lớn hơn 3
Chứng minh Giả sử một điểm Steiner có bậc lớn hơn 3 Khi đó chắcchắn sẽ tồn tại hai cạnh xuất phát từ điểm Steiner đó mà góc giữa chúngnhỏ hơn 1200 (vì tổng số đo các góc tạo bởi các cạnh xuất phát từ mộtđỉnh là 3600 Nếu từ một đỉnh ta có nhiều hơn ba góc thì có ít nhất mộtgóc nhỏ hơn 1200) Điều đó mâu thuẫn với điều kiện góc nêu ở mục 2.2.2.Vậy bậc của điểm Steiner không thể lớn hơn 3 Kết luận: Từ nhận xét 2.2.2 và nhận xét 2.2.3 ta có bậc của điểm Steinerđúng bằng 3
Trang 25Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
c) Số điểm Steiner Để xây dựng cây Steiner, trước hết ta cần phảixác định số điểm Steiner cần thêm vào
Định lý 2.1 Cây Steiner cho bài toán Steiner n điểm có nhiều nhất n − 2
Cây Steiner T với n điểm đã cho vi và k điểm Steiner Sj
(i) T có n + k đỉnh v1, , vn, S1 , Sk
(ii) T không có cạnh giao nhau (crossing edges)
(iii) Bậc của điểm Steiner: d(Sj) = 3 , 1 ≤ j ≤ k
(iv) Mỗi điểm Steiner Sj được nối với 3 đỉnh kề
Trang 26Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
(vi) 0 ≤ k ≤ n − 2
Nhận xét 2.4 Trong cây Steiner mọi điểm Steiner nằm trong bao lồi của
v1, , vn (Vì một điểm Steiner luôn nằm trong một tam giác tạo bởi bađiểm nào đó trong tập các điểm v1, , vn)
f) Cây Steiner đầy đủ (Full Steiner trees)
Định nghĩa 2.9 Cấu hình đầy đủ là cấu hình có số điểm Steiner tối đa
là k = n − 2 Cây tối thiểu tương đối (relatively minineal trees) tương ứngvới cấu hình đầy đủ được gọi là cây Steiner đầy đủ (a full Steiner tree).Định nghĩa 2.10 (xem [7], trang 4) Cấu hình Steiner là cấu hình trong
đó tất cả các điểm Steiner đều có bậc bằng 3
Điều này có nghĩa là có thể tồn tại các cạnh có độ dài bằng không Khi
đó điểm Steiner có thể trùng với nhau hoặc trùng với các điểm cuối.Định nghĩa 2.11 Cấu hình Steiner đầy đủ là cấu hình Steiner có đúng
(n − 2) điểm Steiner, trong đó n là số điểm cuối trong cấu hình
Hệ quả 2.1 Tồn tại nhiều nhất một cây tối thiểu tương đối cho một cấuhình Steiner
Hệ quả 2.2 Tồn tại nhiều nhất một cây Steiner cho một cấu hình Steiner.g) Số cấu hình Steiner
Cho f (n), n ≥ 3 là số cấu hình Steiner đầy đủ với n đỉnh Trong mỗicấu hình Steiner đầy đủ có n − 2 điểm Steiner Ta đi tìm công thức tính
số cấu hình Steiner đầy đủ f (n)
Trong một cấu hình Steiner đầy đủ, các đỉnh có bậc bằng 1 và tiếp giápvới một điểm Steiner Mỗi cấu hình Steiner đầy đủ có 2n − 3 cạnh
Cho f (n + 1) là số cấu hình một cây Steiner đầy đủ với n + 1 đỉnh Nếu
ta loại bỏ điểm cuối vn+1 và điểm Steiner tiếp giáp với nó thì ta thu đượcmột cấu hình Steiner đầy đủ với n điểm cuối Tất cả các cấu hình Steinerđầy đủ với n + 1 điểm cuối đều có thể được tạo thành từ một cấu hìnhSteiner đầy đủ với n điểm cuối bằng cách thêm một điểm Steiner Sj giữa
Trang 27Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
cạnh thứ nhất đến cạnh thứ 2n − 3 và thêm một cạnh nối Sj đến điểmcuối mới vn+1
Do đó
f (n + 1) = (2n − 3)f (n).Định lý 2.2 ([11], trang 30) Cho f(n), n ≥ 3 là số cấu hình Steiner đầy
đủ với n đỉnh Khi đó:
f (n) = (2n − 4)!
2n−2(n − 2)!.
Chứng minh Ta chứng minh định lý trên bằng quy nạp
Với n = 3, f (3) = 1: Chỉ có một cây Steiner đầy đủ Do đó công thức trênđúng
Giả sử công thức đúng với n điểm Ta có:
Trang 28Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Gọi F (n, k), n ≥ 3 là số cấu hình Steiner với n điểm cuối và k điểmSteiner mà không có đỉnh cuối bậc 3, tức là d(vi) = 1, 2 Ta có thể tínhđược F (n, k) từ f (k) là số cấu hình Steiner đầy đủ với n = k
Trước tiên ta chọnk + 2điểm cuối và một cấu hình Steiner đầy đủ trên cácđiểm ấy, sau đó thêmn−2−kđiểm cuối vào trong tập(k+2)+k−1 = 2k+1
cạnh Điểm cuối đầu tiên có thể đi đến 2k + 1 cạnh, điểm thứ hai tới mộttrong2k+2cạnh và điểm thứn−k−2tới một trong2k+n−k−2 = k+n−2
F (n) 1 4 31 360 5625 110800
2.4 Thuật toán
2.4.1 Bài toán Steiner trong trường hợp n = 3
Quay trở lại bài toán Fermat: Tìm một điểm sao cho tổng khoảng cách từđiểm ấy đến ba điểm A, B, C là nhỏ nhất
Trang 29Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Ta thấy nếu 4ABC có ba góc nhỏ hơn1200 thì điểmP cần tìm tạo với
ba điểm A, B, C ba góc bằng 1200 và điểm này được tìm ra bằng cách sửdụng phương pháp Torricelli hoặc phương pháp Simpson Còn nếu4ABC
có một góc lớn hơn 1200 thì điểm P là đỉnh của góc tù Trong phần này
ta chỉ xét ba điểm A, B, C sao cho 4ABC có các góc nhỏ hơn 1200
Bài toán: Cho 4ABC có các góc nhỏ hơn 1200 Tìm điểm P sao chotổng khoảng cách từ P tới đỉnh của tam giác là nhỏ nhất (Điểm P thỏamãn điều kiện trên gọi là điểm Toricelli)
C
D P
Hình 2.8 Thuật toán ba điểm
2.4.2 Thuật toán tìm cây ngắn nhất cho ba điểm
1 Dựng tam giác đều 4ABD sao cho điểm D và C nằm về hai phía củađường thẳng AB
2 Dựng đường tròn ngoại tiếp 4ABD
3 Điểm Toricelli là điểm giao giữa đường thẳng CD và đường tròn ngoại
Trang 30Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
Định lý 2.3 Điểm P tạo với ba đỉnh của 4ABC các góc bằng nhau vàbằng 1200
Nối S với trung điểm của các cạnh P A, P B, P D ta dựng được ba tamgiác vuông có cùng cạnh huyền P S
Trang 31Chương 2 BÀI TOÁN STEINER VỚI KHOẢNG CÁCH EUCLIDE
2 sin α;cos γ = cos (α − 60o) = cos α cos 60o + sin α sin 60o = 1
2cos α +
√3
2 sin α.
Trừ từng vế của đẳng thức dưới cho đẳng thức trên ta được
cos γ − cos β = cos α hay cos α + cos β = cos γ
2.4.3 Thuật toán Melzak cho bốn điểm
Cho bốn điểm v1, v2, v3, v4 có vị trí như trong Hình 2.10(a) và có cấu hình
ban đầu như trong Hình 2.10(b) Trong đó v1, v2 nối với S1 và v3, v4 nối
với S2
Ta đi tìm vị trí của S1, S2 sao cho S1 là điểm Torricelli của 4v1v2S2 và
S2 là điểm Torricelli của 4S1v3v4
1 Giai đoạn 1
Bước 1: Chọn a = v1 và b = v2 là hai điểm cuối kề với điểm Steiner S1
Gọi c = S2 là điểm thứ ba kề với S1 và là một điểm Steiner
Từ v1, v2 dựng tam giác đều4v1v2v5 Ở đây có hai cách dựng điểm v5 như
trong Hình 2.11(a) và Hình 2.11(b) nên bài toán ban đầu sinh ra hai bài
toán con Ta cần xét cả hai bài toán này
Theo Định lý 2.4 ta có S1v1 + S1v2 + S1S2 = v5S2 nên ta có thể coi việc