Định lý Euler và thuật toán Flor

Một phần của tài liệu Giáo trình toán rời rạc 2 (Trang 30 - 35)

định lý 3.1 (Euler). đồ thị vô hướng liên thông G là ựồ thị Euler khi và chỉ khi mọi ựỉnh của G ựều có bậc chẵn.

để chứng minh ựịnh lý trước hết ta chứng minh bổ ựể:

Bổ ựề 3.1 Nếu bậc của mỗi ựỉnh của ựồ thị G không nhỏ hơn 2 thì G chứa chu trình. Chứng minh.

Nếu G có cạnh lặp thì khẳng ựịnh của bồ ựề là hiển nhiên. Vì vậy giả sử G là ựơn ựồ thị. Gọi v là một ựỉnh nào ựó của G. Ta sẽ xây dựng theo qui nạp ựường ựi

v → v1 →v2 →. . .

trong ựó v1 là ựỉnh kề với v, còn với i ≥ 1 chọn vi+1 ≠ vi-l (có thể chọn vi+1 như vậy là vì deg(vi) ≥2). Do tập ựỉnh của G là hữu hạn , nên sau một số hữu hạn bước ta phải quay lại một ựỉnh ựã xuất hiện trước ựó. Gọi ựỉnh ựầu tiên như thế là vk. Khi ựó, ựoạn của ựường ựi xây dựng nằm giữa hai ựỉnh vk là 1 chu trình cần tìm.

Chứng minh ựịnh lý:

Cần. Giả sử G là ựồ thị Euler tức là tồn tại chu trình Euler P trong G. Khi ựó cứ mỗi lần chu trình P ựi qua một ựỉnh nào ựó của G bậc của ựỉnh ựó tăng lên 2. mặt khác mỗi cạnh của ựồ thị xuất hiện trong P ựúng một lần, suy ra mỗi ựỉnh của ựồ thị ựiều có bậc chẵn.

đủ. Quy nạp theo số ựỉnh và số cạnh của G. Do G liên thông và deg(v) là số chẵn nên bậc của mỗi ựỉnh của nó không nhỏ hơn 2. Từ ựó theo bổ ựề G phải chứa chu trình C. Nếu C ựi qua tất cả các cạnh của G thì nó chắnh là chu trình Euler. Giả sử C không ựi qua tất cả các cạnh của G. Khi ựó loại bỏ khỏi G tất cả các cạnh thuộc C ta thu ựược một ựồ thị mới H vẫn có bậc là chẵn. Theo giả thiết qui nạp, trong mỗi thành phần liên thông của H ựiều tìm ựược chu trình Euler. Do G là liên thông nên trong mỗi thành phần của H có ắt nhất một ựỉnh chung với chu trình C.

Vì vậy, ta có thể xây dựng chu trình Euler trong G như sau: bắt ựầu từ một ựỉnh nào ựó của chu trình C, ựi theo các cạnh của C chừng nào chưa gặp phải ựỉnh không cô lập của H. Nếu gặp phải ựỉnh như vậy ta sẽ ựi theo chu trình Euler của thành phần liên thông của H chứa ựỉnh ựó. Sau ựó lại tiếp tục ựi theo cạnh của C cho ựến khi gặp phải ựỉnh không cô lập của H thì lại theo chu trình Euler của thành phần liên thông tương ứng trong H v.vẦ Quá trình sẽ kết thúc khi ta trở về ựỉnh xuất phát, tức là thu ựược chu trình ựi qua mỗi cạnh của ựồ thị ựúng một lần.

Hình 3.4 Minh hoạ cho chứng minh định lý 3.1.

Hệ quả 3.1 đồ thị vô hướng liên thông G là nửa Euler khi và chỉ khi nó có không quá 2 ựỉnh bậc lẻ.

Chứng minh. Thực vậy , nếu G có không quá 2 ựỉnh bậc lẻ thì số ựỉnh bậc lẻ của nó chỉ có thể là 0 hoặc 2. Nếu G không có ựỉnh bậc lẻ thì theo định lý 3.1, nó là ựồ thị Euler. Giả sử G có 2 ựỉnh bậc lẻ là u và v. Gọi H là ựồ thị thu ựược từ G bằng cách thêm vào G một ựỉnh mới w và hai cạnh (w,u) và(w,v). Khi ựó tất cả các ựỉnh của H ựiều có bậc chẵn, vì thế theo định lý 3.1, nó có chu trình Euler C. Xoá bỏ khỏi chu trình này ựỉnh w và hai cạnh kề nó ta thu ựược ựường ựi Euler trong ựồ thị G.

Giả sử G là ựồ thị Euler, từ chứng minh ựịnh lý ta có thủ tục sau ựể tìm chu trình Euler trong G.

Procedure Euler_Cycle; Begin

STACK:=∅ ; CE:=∅ ;

Chon u la mot dinh nao do cua do thi; STACK← u;

While STACK<>∅ do Begin

STACK)

If Ke(x)<>∅ then Begin

Y:=dinh dau tien trong danh sach Ke(x);

STACK← y;

(* loai bo canh (x,y) khoi do thi *) Ke(x):=Ke(x)\ { y} ; Ke(y):=Ke(y)\{ x} ; End Else Begin x⇐ STACK; CE⇐ x; End; End; End;

Bài 4 đồ thị Hamilton

để làm quen với chu chình Hamilton xin mở ựầu bằng bài toán du lịch kắn quanh thế giới do Hamilton ựặt ra: Chon trươc 20 thành phố: A1 , A2 ,..., A20 . để ựơn giản giả sử rằng các thành phố này là ựỉnh của một Hình 4.1 mặt ựều( ựó k ựa diện có 12 mặt ngũ giác ựều và 20 ựỉnh) thay cho trái ựất, còn các cạnh của ựa diện biểu hiện cho ựường ựi giữa các thành phố, trên Hình 4.1

Hình 4.1 Du lịch 20 thành phố

Liệu một khách du lịch có thể tham quan tất cả 20 thành phố, qua mỗi thành phố ựúng một lầm rồi lại trở về ựược ựiểm xuất phát hay không? và có bao nhiêu cách ựi?

Hamilton ựã giải bài toán trên bằng cách chỉ ra nguyên tắc ựi như sau: khách du lịch khi ựến ựầu mút của mỗi cạnh, nếu anh ta chọn cạnh bên trái mình thì phép chọn ựược ký hiệu bằng T, chọn cạnh phắa phải kắ hiệu bằng chữ P, và ơ nguyên tại chỗ ký hiệu băng 1. Tắch của phép chọn ựi theo cạnh phải rồi ựi tiếp theo cạnh trái, TTT, hay TTP là phép chọn ựi theo cạnh trái hai lần và ựi theo cạnh phải 1 lần.v.v... Hai phép chọn bằng nhau,

A19 A17 A20 A16 A11 A13 A9 A15 A12 A10 A4 A3 A7 A14 A8 A6 A5 A1 A2 A18

nếu xuất phát từ cùng một ựiểm cả hai ựều cùng ựi tới một ựiểm. Tắch không có tắnh chất giao hoán (PT TP), nhưng có tắnh chất kết hợp vắ dụ như (TT)P=T(TP).

Khi ựó ta có công thức:

P5 =T5 =1; PT2 P=TPT; TP2 T= PTP; TP2 T= P2 ; PT2 T= T2 ; Do ựó nên ta có

1=P5 = P2 P3 =( TP3 T) P3 =( TP3)2 =[T(TP3 T)P]... =[ T3 P3TPTP]2 =... =TTTPPPTPTPTTTPPPTPTP

Tắch cuối cùng gồm 20 chữ cái, ựồng thời không thể tách ra ựược một ựoạn nào có tắch bằng 1. Bởi vậy dãy này lập thành một ựường du lich khép kắn qua cả 20 thành phố và qua mỗi thành phố ựúng một lần.

Sau này lý thuyết về chu trình Hamilton sẽ giúp ta giải quyết các bài toán tương tự như bài toán du lịch ở trên.

Một phần của tài liệu Giáo trình toán rời rạc 2 (Trang 30 - 35)

Tải bản đầy đủ (PDF)

(137 trang)