TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM KHOA TOÁN - TIN ĐỎ ÁN TÓT NGHIỆP — TÌMHIEUVE BÀI TỐN NGƯỜI BÁN HÀNG ——THƯ VIÊN - P HO Cirdl-MINin
Giáo viên hướng dan: ThS Nguyén Ngoc Trung Sinh viên thực hiện:
Nguyễn Thị Huệ Minh Mã số: K28.103.022
Lớp: Tin 4T - K28
Trang 2SPTIN-K28 TÌM HIỂU VẺ BÀI TOÁN NGƯỜI BÁN HÀNG 2002-2006
MỤC LỤC
TÔM TẤT cv ctn 20 201160309666355 06 5x15 1242666 S402 2040) Quý ng: gieiS9EGEg cu 3gtk.500 G64 c0g2 2 Chương 1: CÁC KHẨT NIEM CƠ BẠN cuvnneeeeeseiiotsoedssnidiiasSensandiee 3 L 2E ERE RII ‹ccveesereeasezksssersaonis6250404602036400%0440060416400-3)310E61:309) 3 2 Cạnh liên thuỘc: .2¿555 5+ St ScSSeScS+rv+vccvczErrxrrxertrrvrrrrrerssrrrrrrrrerver 3
Be TRB ncseopcenanpevvnnnnysepanneeqencens pppapnssannassasanpsnesouecoussene snus ousonusoqsonavoons paveppoonssppecenesenesees 3
4 Ti hồngcủađÖ th 220052s022E62202622A222-ese 4 Ss; EM Di b2-43422221021224/020111225222224252/12566662A62000)162)546206206462062244104040CaL4á5 4
6 Char eis essen ec 4
Ts EM hak Pewbewe sissies scan cai aati slams 4
Trang 3SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006
TOM TAT
Bài toán người bán hàng là một bải toán cổ điển trong lý thuyết đồ thị Bải tốn mơ tá việc làm thế nào để tìm ra một chu trình ngắn nhất cho một người cần phải đi
chảo hàng qua tất cả các địa điểm (tương ứng với các đỉnh của đồ thị) và mỗi địa điểm
chỉ được đến một lằn
Đề dễ dàng tiếp cận bải toán nảy, bạn hãy tưởng tượng bạn là một nhân viên bán hảng của một công ty sữa Vinamilk Hỏm nay bạn nhận nhiệm vụ giao sữa đến 5 đại lý của công ty ở các quận 3, 4, 8, 10, 1! trong TP.HCM và xuât phát từ công ty ở quận Ì
Lúc này, bạn sẽ nảy sinh một vấn để cần giải quyết là phải đi như thể nào để tiết kiệm
xăng và thời gian tối ưu nhất Bởi vì nếu bạn hoàn thành tốt công việc sớm bạn có thể
làm được việc khác, cũng có thể được tổ trưởng khen và tiết kiệm xăng đồng nghĩa với việc tiết kiệm tiên, Suy cho cùng, bạn muốn tìm một đường đi khép kín ngắn nhất
qua tất cả các đại lý, mà ở mỗi đại lý bạn chí dừng lại một lằn
Có thể bạn cho rằng bài toản này thật đơn giản Nhưng tính đơn giản của bài toán dễ khiến cho bạn nhằm lẫn đấy Thật sự thì bài toán nảy là một trong những bài toán được nghiên cứu nhiều nhất trong tất cả những bài toán tính và cho đến nay chưa có một phương pháp giải nào thật hiệu quả cho bài toán tổng quát,
Có nhiều phương pháp để giải bài toán này và các nhà toán học đã chứng minh được bài tốn này được hồn thành trong thời gian không phải là một đa thức Điều đó có nghĩa là, khi bạn có quá nhiều đại lý phải đến thì thời gian hồn thành cơng việc tăng rất nhanh và ngay cả bạn cũng không thể biết được còn bao lâu thì về đến công ty
Vi dy, thời gian hoàn thành là một biểu thức không phải là đa thức như sau: O(n - 1)1⁄2 với n là số đại lý cần đến Cụ thẻ:
Khi n = 6 thi O(n — 1)!/2 = O(6 - 1)!⁄2 = 60 Khi n = 7 thi O(n — 1)!/2 = O(7 — 1)!/2 = 360
+ thời gian hồn thành cơng việc tăng lên gấp 6 lần sau khi n ting thém | Khi n = 8 thì O(n ~ 1)!⁄2 = O(8 - 1)1⁄2 = 4020
> thdi gian hồn thành cơng việc tăng lên gấp 67 lần sau khi n tăng thêm 2
Ví dụ nho nhỏ trên chắc hẳn đã giúp bạn hiểu được những khó khăn của bài toán
đơn gián này Song, đây lại là một bài toán có ý nghĩa thực tế rất quan trọng Hiện nay
có rất nhiều phương pháp để giải bài toán này Thế nhưng, thông thường, các thuật
Trang 4SPTIN-K28 TÌM HIẾU VỀ BÀI TOÁN NGƯỜI BẢN HÀNG 2002-2006
Chương I: CÁC KHÁI NIỆM CƠ BAN
Đẻ hiểu rõ nội dung của hai phương pháp trên, bạn cần phải hiểu các khải niệm cơ bản có liên quan dưới đây:
1 Đồ thị vô hướng:
Đơn đồ thị vô hướng G =(V, E), trong đó V là tập hợp các đỉnh và E là tập hợp các cắp không có thử tự gồm hai phần tử khác nhau của V, các phần tử của E ta gọi là cạnh của đô thị Vị dụ: xét đỗ thị võ hướng G = (V, E) trong hình 1.1: V = (1; 2; 3: 4; 5; 6; 7} E = {(1, 2); (1,6); (1, 7)s (2, 3); (2, 4); (2, 6); (2, 7); (3, 4); (4, 5)} Hinh 1.1 2 Cạnh liên thuộc:
Cho đồ thị vô hướng G=(V,E) Hai đỉnh u, v V được nối với nhau bởi một cạnh
thì u, v lả hai đỉnh kề nhau, u là đỉnh kể của v và v là đỉnh kể của u Cạnh #Ÿ là cạnh liên thuộc của hai đỉnh u, v được gọi là các điểm đầu của cạnh #Y, u,v được gọi là các đỉnh đầu của cạnh ữŸ,
3 Bậc:
Bậc của đình veV, ký hiệu: deg(v) là số các cạnh liên thuộc của v
Ví dụ: xét đồ thị võ hướng trong hình 1.1:
đeg(I) = 3 deg(3) = 2 deg(S)= 1 deg(7) = 2
Trang 5SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006
4 Tính liên thông của đồ thị:
Cho đỗ thị vô hướng G = (V, E) G được gọi là liên thông nếu giữa hai điểm bắt kỷ luôn tôn tại một đường đi
Ví dụ: đỗ thị vỗ hướng trong hình 1.1 là một đỏ thị liên thông Š Đường đi:
Cho đỗ thị vô hướng G = (V, E) Đường đi độ dài n từ đỉnh u đến đỉnh v, trong dé
n là số nguyên dương trên đỏ thị vô hướng G = (V, E) là dãy:
Xọ XỊ; X4, X3, - + Xa.Is Xa-
trong đó u # Xạ; Y = Xụ; (X, Xị-¡) € E; ¡ = 0, , ne]
Ví dụ: xét đồ thị vô hưởng G = (V, E) trong hình 1.1 Đường đi từ đỉnh 1 đến đỉnh Š có thể đi theo các đường sau: Lá, 1, 6, 2, 4, 5 Lá 2v: 1,7, 2, 3, 4, 5 1, 6, 2, 3, 4, 5 1,7, 2,4,5 Chủ ý: mỗi đỉnh có thể đi qua nhiều hơn một lần 6 Chu trình:
Chu trình là đường đi có điểm đầu và điểm cuối trùng nhau
Ví dụ: xét đỗ thị vô hướng G = (V, E) trong hình 1.1 Có một số chu trình sau: L4
1, 2, 6, 1 2, 3, 4, 2 7 Dé thi Euler:
a) Khai niém: Cho đồ thị vô hướng G:
Đường đi đơn qua tất cả các cạnh gọi là đường đi Euler
Một chu trình đơn đi qua tất cả các cạnh, mỗi cạnh một lần gọi là chu trình Euler
Trang 6SPTIN-K28 TIM HIEU VE BAI TOAN NGƯỜI BẢN HÀNG 2002-2006 2 1 : 2 6 3 5 3 4 $ 4 Hình 1.3: Dé thi Euler Hinh 1.4: Dé thi mia Euler b) Tinh chat: Một đỏ thị vô hướng liên thông G là đồ thị Euler khi và chỉ khi mọi đỉnh của nó đẻu là bậc chắn
Nếu mỗi định của đồ thị vô hướng G đều bậc chan, thi tir bắt cứ đỉnh nảo ta cũng
vạch được một chu trình đơn
§ Cây:
Cây là đỏ thị vô hướng liên thông vá không có chu trình
Ví dụ: đồ thị vô hướng G = (V, E) trong hình 1.2 là một đồ thị liên thông không
Trang 7SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006 10.Cay khung (Spanning Trees):
Cho đô thị võ hưởng liên thông G = (V, E) Cây T = (V, F) trong đó F c E được
gọi là cây khung của G
Hinh 1.3: do thị vô hưởng liên thông Hinh 1.4: Cay T=(V,F) la cay khung cua
Trang 8SPTIN-K28 TÌM HIẾU VÉ BÀI TOÁN NGƯỜI BÁN HÀNG 2002-2006
Chương 2: PHƯƠNG PHÁP EUCLIDEAN MINIMUM SPANNING TREES
1 Tim cây khung ewe tiéu (Euclidean Minimum Spanning Trees):
Bồ để I: Cho G = (V,E) là một đồ thị với các cạnh cé trong s6 va cho {V1, V2} 1a một phân hoạch của tập hợp V Có một cây khung cực tiểu của G chứa một số cạnh ngăn nhất với một cực trị trong VI vả một cực trị khác trong V2
Trong trường hợp này, tập hợp các đỉnh V là tập hợp các điểm §, và chiều đài của một cạnh là khoảng cách Euclide giữa hai điểm đầu mút của nó Thuật toán Euclidean Minimum Spanning Trees (EMST) áp dụng với đồ thị không chu trình của các cây
Rừng nguyên sinh là tập hợp các điểm (có nghĩa là, mỗi điểm là một cây cùn nguyên
thủy) Các bước chung của thuật toán như sau (ở đây d (u,v) là chiều dài của đoạn uv):
(i) Chọn một cây T trong rừng;
(ii) — Tim một cạnh (u, v`) sao cho đ(u, v)= min {d (u, v): u e€ T,v eS- T) (iii) Nếu T là cây chứa v thì kết hợp T và TỶ liên kết chúng với cạnh (u,v`) Thuật toán kết thúc khi rừng còn một cây đơn, EMST là tập hợp các điểm thu
được
Bude (i) và bước (iii) yêu cầu thực hiện cẳn thận, nhưng rõ ràng rằng bước (ii) là
bước then chốt của phương pháp Thật vậy, bước (ii) có thế gây lo lắng cho bạn Bởi vì bạn có thẻ phải sử dụng số các thao tác bằng [T| x (N - [TỊ) để kiểm tra tương ứng
khoảng cách từ mỗi đỉnh e T đến mỗi đỉnh # T Nhưng bạn đừng lo, bổ đề dưới đây sẽ giúp bạn giải quyết vấn đề khó khăn đó
Bồ đề 2: Cho S là tập hợp các điểm trên mặt phẳng, cho A(p) là tập hợp các đỉnh kẻ của peS trong phép tam giác phân Delaunay của § Đối với bắt kỳ một phân hoạch
(SuSz} của S nếu ạp là đoạn ngắn nhất giữa S¡ và Sạ, thì q thuộc A(p)
Chứng mình:
Cho nạ là khoảng cách nhỏ nhất giữa các điểm thuộc S; và các điểm thuộc S›, với peS¡ và qeSŠ¿
qeS2
cụnh Voropotl
Trang 9SPTIN-K28 TÌM HIẾU VỀ BÀI TOÁN NGƯỜI BẢN HÀNG 2002-2006
Hình 2 ! 1
Chúng ta mong muốn rằng q e A(p) Vì nếu q £ A(p), đường trung trực của đoạn pq không chứa một đoạn của đường biên giới của V(p), hình đa giác Voronoi của
đỉnh p Điều này dẫn đến V(p) cắt đoạn ø¿ tại điểm u nằm giữa p và trung điểm M
cla pg Canh Voronoi | chita u là đường trung trực của đoạn pp’, trong dé p’eS Vi
tất cả các lựa chọn có thê thực hiện được của u vả L, p` năm bên trong mặt phăng tròn
C với tâm là điểm M vả đường kính là đoạn ạp Bây giờ chúng ta có 2 trường hợp: (i) p`eS¿ Trong trường hợp này, d(q,p*) < d(q,p) thi p’ va not p là gần nhất
sơ với q (là l nghịch lý);
(ii) — (ii p°eS; Trong trường hgp nay, d(p,p’) < d(q,p) thì p° và not q là gần
nhất so với p (lại là ! nghịch lý)
Trong các nhận xét khác, bỗ đẻ này nói với chúng ta rằng chúng ta chỉ cần kiểm
tra các cạnh của phép tam giác phân Delaunay, có nghĩa là, chúng ta phải tính toán cây khung nhỏ nhất của một đồ thị phẳng [Shamos (1978)]
Bây giờ chủng ta quay lại các bước thực hiện tổng quát của thuật toán EMST
Cheriton và Tarjan (1976) đưa ra một chiến lược đơn gián sau:
Chọn ra một cây T (được hợp nhất với các cây khác trong rimg) ho dua ra quy tde chọn không đổi sau, nơi bắt dau tat cả các đỉnh đơn của cây được đặt trong hàng đợi:
I.Chọn cây T 6 trước hàng đợi
2.Néu T là cây thu được bằng cách kết hợp T với một số cây T" khác, xóa T và T' từ hàng đợi, và nhập T” ở đăng sau hang đợi
— Vì hai cây được kết hợp mỗi lần và lúc đầu có N cây trong hàng đợi nên bước tổng quát được thực thi chính xác (N — 1) lần
Qui ước, đối với mỗi cây trong hàng đợi chúng ta định nghĩa là một số nguyên gọi
là bậc(T) khi đó bậc(T) = 0 nếu [TỊ = 1 và bậc(T) = min (bậc(T`'), bậc(T”)) + 1 nếu T là cây được kết hợp bởi T° và T”
Một bất biến quan trọng trong hàng đợi của các cây là ở bất kỳ thời gian nảo trong suốt quá trình thực hiện thuật toán thì số các bước là một dãy không giảm Bước j được hoàn thành khi T bị xóa trong hàng đợi, bậc(T) = j và không có TỶ nào khác trong
hảng đợi có bậc(T*) = j Chú ý rằng sau khi hoàn thành bậc j thì trong hàng đợi chứa
nhiều nhất là N/2Ì thành phần, và có nhiều nhất [logyN| bậc
Trang 10SPTIN-K28 TIM HIỂU VẺ BÀI TOÁN NGƯỜI BẢN HÀNG 2002-2006
boàn thành trong thời gian tương ứng với số cạnh, O(N) Vì có nhiều nhất [logzN| bước, chúng ta thu được một thuật toán với thời gian O(N log N) Chúng ta có thể chấp nhận kết quả này, vì thời gian O(N log N) được sử dụng đẻ tính toán phép tam giác phin Delaunay Tuy nhién no quan trọng trong việc tìm kiếm một phương pháp làm
cho chúng ta có thể đạt được EMST từ biểu đồ Voronoi trong thời gian tuyến tỉnh Thành quả nảy có thẻ được tạo ra bing cach lam min clean-up duge de nghị bởi Cheriton va Tarjan
Hoạt động của elean-up có mục tiêu là làm co đô thị gốc G (trong trường hợp cúa chúng ta là phép tam giác phân Delaunay) được rút gọn thành đô thị G” Điều này có nghĩa là ở mỗi cây T trong rừng F được co thành một đỉnh đơn của G”(có nghĩa là, tắt cả các cạnh không được chọn đẻ kết nối với các đỉnh của T thì bị xóa đi) và tất cả các
cạnh ngắn nhất không được chọn để ni với các cây khác là T* và T* cũng bị xóa đi Một chú ý quan trọng là: nếu G là phẳng thi là G”
Công việc clean-up được thực hiện khi một bước clean-up duge thye thi ngay lập
tức sau khi hoản thành một bậc (xem ở trước) Sự thực hiện chạy trong thời gian tỉ lệ với số cạnh của đô thị thị được clean-up
Tóm lại, với mỗi cây 'T chúng ta kết hợp một danh sách các cạnh không được
chọn đẻ liên kết với các đính của TT là e(T) Thủ tục EMST: | begin F := ©; 2 fori := | to N do 3 begin bae(p,) := 0; F =p; end; (*hàng đợi được khởi tạo giá trị đầu) 4 jh °: while (F != @) do 6 begin T = F; 7 if (bac(T) = j) then begin clean-up; 8 j= jr; end;
9, (u, v) == shortest unselected edge incident on T (với u e T); 10, T' := cay trong F chua v;
I1 T':= gop(T T`); 12 xoa T” trong F;
Trang 11SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006
14, F.eT" end;
end
Hoản thành bước bậc(j — 1) có nhiều nhất N / 2!” cây trong hàng đợi là một đỏ thị phăng nếu G” tương ứng có nhiều nhất N/2F” đỉnh và ít hơn 3N / 2F” cạnh Bước j được hoàn thành trong thời gian tương ứng với số cạnh (mỗi cạnh được kiểm tra nhiều nhất hai lần bởi dòng 9 suốt các bước) và vì là công việc clean-up ở bước hoàn thành } (dòng 7-8, trước khi nhập bước (j#1)) Do đó, vòng lặp 6-14 sử dụng thời gian O(N/2” ' Có nhiều nhất |logyN] bước, tông thời gian chạy của vòng lặp 6-14 là giới hạn trên băng: [log, NJ N ce ON, ai jel
Với K; là hãng số Điều này chứng mình định lý sau:
Định lý 2.1: một EMST của một tập hợp S có N điểm trong mặt phẳng có thẻ được tính toán từ phép tam giác phân Delaunay của S trong thời gian tối ưu 8(N)
Kết hợp kết quả này với phép tam giác phân Delaunay có thể tính toán trong thời gian 6(N log N) ma ching ta da có
Hệ quả 2.1: một EMST của tập hợp S các điểm N trong mặt phẳng có thể được tinh toán trong thời gian tối wu O(N log N)
Hình 2 12
Trang 12
SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006 Hình 2.1.2 minh họa một tập hợp các điểm, biểu đồ Voronoi của nó, và EMST của tập hợp này Tiếp theo, chúng ta sẽ xem xét một ứng dụng quan trọng của EMST của một tập hợp hữu hạn điểm 2 Áp dụng:
Giải bài toán người bán hàng:
Định lý 2.2 [Rosenkrantz — Stearns = Lewis (1974)]: áp dụng cây khung cực tiểu đẻ tỉm một chu trình của bài toán người bán hàng có chiêu dài ngắn hơn hai lần so với chiêu đài của đường đi ngăn nhất
Chứng mình:
Cho TỶ là một EMST cúa tập hợp S các điểm đã cho, và $ là đường đi bán hàng ti ưu Chúng ta bắt đầu bằng cách ghép mỗi cạnh của TỶ, bằng cách đó thu được một đồ thị W, mỗi đỉnh của nó có bậc chẵn Đỏ thị W là một đồ thị Eucler được kết nối,
hoặc theo các nhận xét khác, là một đường đi qua tất cả các đình (mỗi đỉnh đi qua
nhiều nhất một lần) Do đó, length(W)= 2 length(T”) Bây giờ chú ý răng nêu chúng ta
gỡ bỏ một cạnh e từ ÿ chúng ta thu được một đường dẫn gọi là $„„„„ đây cũng là một cây khung của § Rõ ràng là length(T”) < length($,„ø¿) và length(@;a¿) < length(¿)
Đo đó, chúng ta thu được length(W) < 2 length(é)
Trang 16SPTIN-K28 TIM HIEU VE BAI TOÁN NGƯỜI BẢN HÀNG 2002-2006
Chương 3: PHƯƠNG PHÁP MINIMUM EUCLIDEAN MATCHING
Van dé: Cho 2N điểm trong mặt phẳng, nỗi chủng thành cặp bằng các đoạn thắng mà tông chiêu dài của nó là tôi thiêu (xem hình 3 )
¬
ee
Hinh 3.1: a minimum Euclidean matching
Edmonds (1965) d& biéu diễn một kết nối có trọng số tối tiểu trong một đỏ thị tùy
ý có thê thu được trong thời gian đa thức, và một sự thể hiện O(N”) được đưa ra bởi Gabow (1972) Kết qua dudi đây của Christofides (1976) là sự liên kết cây khung tối tiêu, watchings và bài toán người bán hàng
—_ Định lý 3.1: chiều đài đường đi của bài toán người bán hàng bằng 3/2 chiều dài tối ưu được thực hiện trong thời gian O(N”) nếu khoảng cách đến điểm nằm trong tuân theo bất đăng thức tam giác
Chứng minh: thuật toán sau thu được kết quả như mong muốn trên tập hợp S đã
cho:
|.Tim mé6t minimum spanning tree T* cia S
2.Tim m6t minimum Euclidean matching M' trên tập hợp X G S của các đỉnh có bậc lẻ trong TỶ (X luôn luôn có số phần tử là chắn trong bat kỳ đồ thị nào)
3.Đỗ thị T” c2 MỸ là ! đô thị Eulerian, vì tất cả các đỉnh của nó có bậc chăn Cho
ÿ„ là chu trình Euclerian của nó
4 Sự giao nhau của các cạnh trong $, và bỏ qua mỗi đỉnh đã đi qua trước đó trong
$„p„ là đường đi tìm được
Có nghĩa là khi có đường đi tối ưu @ chúng ta chú ý:
() — length(T”) < length(9); (ii) — length(M”) < % length(9)
Trang 17
SPTIN-K28 TIM HIEU VE BAI TOAN NGUOI BAN HANG 2002-2006
Thực vậy, nếu chúng ta chọn mỗi cạnh khác từ $ chúng ta thu được hai kết nối
trên S (các cạnh được chọn và một cạnh còn lại), chiều dài ngắn hơn của sự kết
nổi hai cạnh này là không qua % length($) và chắc chắn là không it hon length(M ), vi M là cực tiểu Chúng la suy ra length(T ) < length() Cuối cùng,
Trang 19SPTIN-K28 TIM HIEU VE BÀI TOÁN NGƯỜI BẢN HÀNG Q 10 Q1 914 ot 4 oe Hinh 3.6 O3 on J Q4 os Bước 6: Tìm một tour để bậc của mỗi đình Hình 3.7 là 2 Hình 3.8
Tổng kết: bằng cách van dyng Minimum Euclidean Matching cỏ thẻ cải tiền phép
gin dung tir lan thứ hai đến 3/2 giá trị tối ưu, độ phức tạp tính toán phát triển từ O(NlogN) thành O(N’) Trong nhiều năm từ kết
thành công trong việc cái tiền sự xắp xi đến 3/2 của t
toán Đó là một sự kiện dang chú ý,
tì của Christofi đes không có ai ¡ ưu hoặc làm giảm thời gian tỉnh
Trang 20
SPTIN-K28 TÌM HIẾU VẺ BÀI TOÁN NGƯỜI BẢN HÀNG 2002-2006
TÀI LIỆU THAM KHẢO
|!J Nguyễn Đức Nghĩa, Nguyễn Tơ Thành (2003), Tốn rởi rạc, Nhà xuất bản Đại học Quốc gia Hà Nội, tr 197-215
|2| Mark de Berg Marc van Kreveld, Mark Overmars Otfried Schwarzkopf, Computational Geometry, Algorithms and Applications, pp 147-162, 183-207,