Giáo trình Toán rời rạc Chương 6

17 692 2
Giáo trình Toán rời rạc Chương 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Toán rời rạc

Chương VIĐỒ THỊ VÀ CÂYồ thò là một chủ đề đã cũ nhưng lại có rất nhiều ứng dụng trong các ngành khoa học hiện đại và được dùng để giải rất nhiều lớp bài toán khác nhau. Đặc biệt là trong công nghệ thông tin lý thuyết đồ thò có một vai trò rất quan trọng trong việc xác đònh các kết nối trên mạng máy tính, tối ưu hóa đường truyền dữ liệu cũng như tối ưu hóa bản thân dữ liệu được trao đổi giữa các máy tính , .v.v ĐTrong chương trước chúng ta đã nghiên cứu một số khái niệm đầu tiên về đồ thò, chương này cung cấp cho chúng ta thêm một số khái niệm và tính chất thường dùng để giải các bài toán có áp dụng lí thuyết đồ thò. Cũng cần lưu ý là nếu không có chỉ đònh gì đặc biệt thì đồ thò nói trong chương này là đồ thò vô hướng.I. ĐỒ THỊĐònh nghóa: Bậc của một đỉnh trong một đồ thò là số cạnh tới nối với đỉnh này.Ví dụ:Các đỉnh cô lập A, D có bậc 0.Bậc của đỉnh F là 3Bậc của đỉnh B là 4 (Bậc của đỉnh có vòng được cộng thêm 2 cho mỗi vòng).Bậc của đỉnh G là 1. Đỉnh bậc 1 gọi là đỉnh treo và cạnh tới tương ứng gọi là cạnh treo.Bổ đề 1: Trong một đồ thò thì tổng bậc các đỉnh bằng hai lần số cạnh.Chứng minh.Vì mỗi cạnh được tính cho 2 đỉnh có bậc khác 0.QEDVí dụ: Có bao nhiêu cạnh trong đồ thò (vô hướng) có 10 đỉnh đều có bậc là 6?Giải: Tổng bậc tất cả các đỉnh là 6*10 = 60 nên suy ra đồ thò có tất cả 30 cạnh.Bổ đề 2: Số các đỉnh bậc lẻ là số chẵn.Chứng minh.Tổng bậc các đỉnh bậc lẻ+Tổng bậc các đỉnh bậc chẵn = 2 * số cạnh.Suy ra tổng bậc các đỉnh bậc lẻ là chẳn.Do đó số các đỉnh bậc lẻ là chẵn. QED.Đònh nghóa: Một đồ thò gọi là đồ thò đơn nếu không có cặp đỉnh nào được nối với nhau bằng quá một cạnh.102 A D A BCB E F K HĐồ thò đơn Không phải đồ thò đơn (đa đồ thò)Một số kiểu đồ thò đơn đặc biệt:Đònh nghóa: Một đồ thò đơn n đỉnh gọi là đồ thò hoàn chỉnh, kí hiệu Kn, nếu nó là một đồ thò đơn và chứa đúng một cạnh giữa mỗi cặp đỉnh phân biệt.K1K2K3K5Đònh nghóa: Một đồ thò đơn gọi là đồ thò phân đôi nếu tập V các đỉnh của nó có thể phân thành hai tập con không rỗng V1 và V2 rời nhau sao cho mọi cạnh trong đồ thò đều nối một đỉnh của V1 và một đỉnh của V2 (Không có cạnh nào nối hai đỉnh trong V1 hoặc hai đỉnh trong V2 với nhau).Các đồ thò phân đôi.Đònh nghóa: Đồ thò đơn gọi là phân đôi hoàn chỉnh, kí hiệu Km,n, nếu tập các đỉnh V của nó có thể phân thành hai tập con V1 và V2 lần lượt có m đỉnh và n đỉnh và mỗi đỉnh trong tập con này đều được nối với mọi đỉnh trong tập con kia.K2,3K3,3K3,5K4,3Ứng dụng của đồ thò trong công nghệ thông tin: Mạng cục bộ (LAN - Local Area Network): Nhiều máy tính và các thiết bò ngoại vi đi kèm đặt trong một tòa nhà có thể được nối với nhau thành một mạng gọi là mạng cục bộ. Cấu 103V2V1 trúc cách thức nối các máy tính này với nhau gọi là topology mạng. Một topology mạng là một kiểu đồ thò mà mỗi đỉnh là một máy tính còn các cạnh là các đường truyền (cable đồng trục / cable UTP / cable quang / vô tuyến).Topology tuyến tính: Các máy tính được nối với nhau thành một đường. Thông thường các đường truyền là coaxial thin cable (10BASE-2) hoặc coaxial thick cable sử dụng các đầu nối chữ T (T-connector)Topology hình sao: Các máy tính được nối với nhau thành một đồ thò phân đôi hoàn chỉnh K1,n. Đường truyền thường dùng cable UTP 10BASE-T với các đầu nối 10BASE-T RJ-45 và sử dụng hộp tập trung cable (gọi là HUB).Topology vòng: Các máy tính được nối với nhau thành một chu trình không tự cắt. Server là một trong các đỉnh của đồ thò. Trong cấu hình Token ring, server gởi một tín hiệu, gọi là cờ (flag) luân chuyển trong MAU (Media Access Unit) mạng. Workstation nào nhận được cờ này sẽ được quyền thu phát tín hiệu. Topology này thường được dùng trong các hệ thống thời gian thực (real time system).Ngoài ra có thể dùng cấu trúc hỗn hợp giữa các cấu trúc này:104 Xử lí song song (parallel processing) : Máy tính đơn sử dụng một CPU hoạt động theo nguyên lí Von Neumann. Nghóa là tại mỗi thời điểm chỉ có một chỉ thò máy được CPU xử lí và các chỉ thò này được xử lí tuần tự hết chỉ thò này đến các chỉ thò khác. Khi máy tính hoạt động theo chế độ đa nhiệm (multitasking) thì CPU thực hiện chế độ xắt lát thời gian (time slicing) và kỹ thuật đường ống (pipeline) để giải quyết các yêu cầu ngắt dày đặt của các chương trình1. Nếu có quá nhiều chương trình tranh chấp nhau thời gian CPU sẽ xảy ra tình trạng “thắt cổ chai” và hệ thống máy tính sẽ chạy chậm đi (slow down) đáng kể. Để giải quyết kòp thời các yêu cầu này hoặc là phải tăng xung nhòp của CPU (tăng tốc độ xử lí) hoặc là phải tăng số bộ xử lí lên. Nếu có nhiều bộ xử lí thì các giải thuật song song sẽ phân chia bài toán cần giải quyết ra thành nhiều bài toán con để có thể giải đồng thời. Các bài toán con này sẽ được gởi đến cho các bộ xử lí khác nhau để xử lí riêng rẽ. Khi tất cả các bài toán con đã được xử lí xong thì một kết quả tổng hợp sẽ được thực hiện.Ví dụ: Một đoạn mã giả thể hiện giải thuật có sử dụng quá trình xử lí song song các phát biểu statement_1, statement_2, ., statement_n . cobeginstatement_1;statement_2; .statement_n;coendStatement_m Ví dụ: Thực hiện đoạn chương trình2:x := a - c*d + ey := b + d/az := x + e*yXử lí trên máy tính tuần tự (một bộ xử lí) cần 7 bước:1 c*d2 a-(c*d)3 (a-c*d)+e4 d/a5 b+(d/a)6 e*y7 x+(e*y)Xử lí trên máy tính xử lí song song chỉ cần 4 bước:1 Đề nghò người đọc xem lại các tài liệu về hệ điều hành và chế độ đa nhiệm.2 An Introduction to Operating Systems - Harvey M. Deitel -Addison Wesley-1990 - pp 319,340105Trong đoạn chương trình này các công việc được khai báo giữa cobegin và coend (statement_1,statement_2, . ,statement_n) sẽ được thực hiện đồng thời trên các CPU khác nhau. Khi đã thực hiện xong tất cả các công việc đó statement_m sẽ được thi hành. Khi xử lí song song, dữ liệu đầu vào của bộ xử lí này có thể chính là dữ liệu đầu ra của bộ xử lí kia. Do đó các bộ xử lí cần phải được liên kết với nhau theo một sơ đồ cấu trúc nào đó. Cách liên kết đơn giản nhất là liên kết hai chiều giữa từng cặp bộ xử lí tạo thành một đồ thò hoàn chỉnh Kn. Tuy nhiên như vậy thì số liên kết sẽ bùng nổ quá nhiều theo số bộ xử lí. Với máy tính n bộ xử lí cần đến: (n-1)+(n-2)+ .+1 = (n/2)(n-1) liên kết giữa các CPU. Có thể liên kết các bộ xử lí theo đường thẳng: Mỗi bộ xử lí Pi (i≠1 và i≠n) được nối với hai bộ xử lí kế bên Pi-1 và Pi+1. Nhưng như vậy thì cần các bước xử lí trung gian khi Pi chia sẽ dữ liệu với các Pj (Pj≠Pi-1 và Pj≠Pi+1). Người ta dùng phổ biến cách liên kết theo mảng hai chiều, trong đó số bộ xử lí N là một số chính phương. Các bộ xử lí được đánh thứ tự Pi,j trong đó i và j chạy từ 1 đến m (m = 2N ). Mỗi Pi,j liên kết với 4 bộ xử lí láng giềng Pi+1,j, Pi-1,j, Pi,j+1 và Pi,j-1 trừ các bộ xử lí ở ngoại vi. Các liên kết có thể có được minh họa như trong đồ thò sau:P1,1Pm,mĐường đi Euler và đường đi Hamilton:Đònh nghóa: Đường là một đồ thò G = <V,E,I> mà quan hệ tới I có tính chất nối đuôi3.Tính chất nối đuôi của I có thể được biểu diễn dưới dạng:I = {(A1,y1,A2); (A2,y2,A3); .;(An-2,yn-2,An-1); (An-1,yn-1,An)}⊆VxExV3 Lưu ý rằng đường có thể là đồ thò con của một đồ thò khác.106Trong bước 1 các phép toán +,* và / được xử lí song song.Trong bước 2 các phép toán - và + được xử lí song song Nói cách khác đường là một chuỗi cạnh nối tiếp nhau. Ta kí hiệu đường bằng chuỗi đỉnh được nối với nhau bởi đường. Đường không tự cắt là một đường có 2 đỉnh bậc 1 và mọi đỉnh còn lại đều có bậc 2.Ví dụ:Đường DCB là đường không tự cắt.Đường ACBCD là đường tự cắt.Đònh nghóa: Đường đi gọi là đơn nếu nó không chứa cạnh nào quá 1 lần.Khái niệm liên thông:Đồ thò liên thông là đồ thò mà mọi cặp đỉnh đều có đường nối. Đồ thò không liên thông được gọi là đồ thò rời rạc.Ví dụ:G1 là đồ thò liên thông còn G2 là đồ thò rời rạc.Khái niệm chu trình:Đònh nghóa: Chu trình là một đường có mọi đỉnh đều bậc chẵn. Chiều dài của chu trình là số cạnh của chu trình. Chu trình gọi là đơn nếu nó không chứa cạnh nào quá một lần.Ví dụ:Trong đồ thò G3 thì đường ACDFEA là một chu trình không tự cắt có chiều dài 5.Trong đồ thò G4 thì ADCBCA là một chu trình tự cắt.Hệ quả: Nếu một chu trình không tự cắt thì mọi đỉnh đều có bậc 2.Hệ quả: Chu trình là chu trình đơn nếu mọi đỉnh của nó đều bậc chẳn.Đònh nghóa: Đường đi Euler trong đồ thò G là đường đi đơn chứa tất cả các cạnh của G. Chu trình Euler trong G là chu trình đơn chứa tất cả các cạnh của G.Đònh lí: Một đa đồ thò liên thông sẽ có chu trình Euler nếu và chỉ nếu tất cả các đỉnh của nó đều có bậc chẳn.Ta chấp nhận đònh lí này.107 Giải thuật tìm chu trình Euler (Giải thuật Fleury):Ví dụ: Tìm chu trình Euler cho đồ thò:C DA FB EBước 0: Ma trận kề cho đồ thò trên là:M = 0 1 1 0 0 01 0 1 1 1 01 1 0 1 1 00 1 1 0 1 10 1 1 1 0 10 0 0 1 1 0           Bước 1: Giả sử ta chọn đỉnh (xuất phát) là đỉnh A. Bước 2: Chọn đỉnh có chỉ số nhỏ nhất trong các đỉnh có chỉ số lớn hơn A có cạnh nối với A (bằng không chọn đỉnh có chỉ số nhỏ nhất có cạnh nối với A). Trong trường hợp này là B, thay đổi giá trò tại các vò trí có tọa độ (A,B) và (B,A) thành 0. M = 0 0 1 0 0 00 0 1 1 1 01 1 0 1 1 00 1 1 0 1 10 1 1 1 0 10 0 0 1 1 0          Bước 3: Ghi nhận B. Ghi nhận đường d=ABBước 4: Đỉnh bây giờ là B. Bước 5: Ma trận khác ma trận 0? Nếu chưa quay lại bước 2, bằng không qua bước 6.Bước 6: Thông báo đường (chu trình Euler) d. Qua bước 7.Bước 7: Kết thúc.Thực hiện giải thuật trên ta có dãy các ma trận là (để cho dễ theo dõi các chổ thay thế 0 bằng 1 sẽ được ghi bàng dấu “.”):0 1 1 0 0 01 0 1 1 1 01 1 0 1 1 00 1 1 0 1 10 1 1 1 0 10 0 0 1 1 0           0 . 1 0 0 0. 0 1 1 1 01 1 0 1 1 00 1 1 0 1 10 1 1 1 0 10 0 0 1 1 0           0 . 1 0 0 0. 0 . 1 1 01 . 0 1 1 00 1 1 0 1 10 1 1 1 0 10 0 0 1 1 0          108 A B C0 . 1 0 0 0. 0 . 1 1 01 . 0 . 1 00 1 . 0 1 10 1 1 1 0 10 0 0 1 1 0           0 . 1 0 0 0. 0 . 1 1 01 . 0 . 1 00 1 . 0 . 10 1 1 . 0 10 0 0 1 1 0           0 . 1 0 0 0. 0 . 1 1 01 . 0 . 1 00 1 . 0 . 10 1 1 . 0 .0 0 0 1 . 0          D E F0 . 1 0 0 0. 0 . 1 1 01 . 0 . 1 00 1 . 0 . .0 1 1 . 0 .0 0 0 . . 0           0 . 1 0 0 0. 0 . . 1 01 . 0 . 1 00 . . 0 . .0 1 1 . 0 .0 0 0 . . 0           0 . 1 0 0 0. 0 . . . 01 . 0 . 1 00 . . 0 . .0 . 1 . 0 .0 0 0 . . 0          D B E0 . 1 0 0 0. 0 . . . 01 . 0 . . 00 . . 0 . .0 . . . 0 .0 0 0 . . 0           0 . . 0 0 0. 0 . . . 0. . 0 . . 00 . . 0 . .0 . . . 0 .0 0 0 . . 0          C AKết quả thực hiện thuật toán trên là: ABCDEFDBECA o Đồ thò phẳng. Đònh nghóa 1: Một đồ thò gọi là phẳng nếu ta có thể vẽ nó trong một mặt phẳng và không có cạnh nào cắt nhau trừ tại các đỉnh.Ví dụ:Các đồ thò sau đây là phẳng vì ta có thể vẽ lại nó mà không có cạnh nào cắt nhau:Đồ thò K4. Đồ thò G Đồ thò Q3109 Sau khi vẽ lại:Đồ thò sau đây (K5) không thể là đồ thò phẳng được:A BCDE110 Vấn đề xác minh một đồ thò có phải là phẳng hay không rất quan trọng trong việc thiết kế các mạch in. Trên các mạch như vậy các đường nối các chân linh kiện (đỉnh) không thể cắt nhau được. Do đó một tiêu chuẩn nhận biết một đồ thò có là đồ thò phẳng hay không là rất cần thiết.Ta thấy rằng nếu một đồ thò có thể vẽ lại thành đồ thò phẳng thì đồ thò phẳng đó chia mặt phẳng ra làm các miền, bao gồm các miền bên trong đồ thò và miền bên ngoài. Trong đồ thò phẳng bên đây ta có các miền f1, f2, f3, f4. Chú ý rằng ta luôn có một và chỉ một miền bên ngoài (trong hình này là miền f4)o Công thức Euler và đònh lý Kuratowski : Công thức EulerNhà toán học Euler đã chứng minh rằng một đồ thò phẳng dù được biểu diễn phẳng bằng cách nào đi nữa thì số miền chia là một hằng số.Đònh lý: Cho G là một đồ thò đơn, phẳng, liên thông có e cạnh và v đỉnh. Gọi f là số miền trong biểu diễn phẳng của G thì: f = e - v + 2. (*)Chứng minh:Ta sẽ xây dựng biểu diễn phẳng của G lần lượt từng cạnh một thành một dãy các đồ thò con phẳng Gi của G. Việc bổ sung lần lượt từng cạnh một như thế được đònh nghóa đệ qui như sau:Nếu n = 1 thì Gn là một cạnh bất kì của G, ngoài ra ta xây dựng Gn+1 từ Gn bằng cách bổ sung vào Gn một cạnh mới liên thuộc với Gn và một đỉnh mới liên thuộc với cạnh mới đó nếu như chưa có cạnh mới này trong Gn. Làm được như vậy vì G là một đồ thò liên thông. Ta sẽ nhận được G khi đạt được Ge. Với mỗi Gn ta gọi fn, en, vn là số miền, số cạnh và số đỉnh tương ứng.Ta chứng minh công thức trên bằng cách truy chứng theo n: n = 1Đồ thò con G1 có v1=2, e1=1 và chỉ chia mặt phẳng ra làm một miền f1 = 1. Công thức (*) đã thỏa cho trường hợp n=1. Giả sử công thức (*) đã được chứng minh cho trường hợp Gn (tức là đã xây dựng được tới Gn, ta có fn = en - vn +2).111 [...]... đều mang nhiều sai lầm Chứng minh sai đáng chú ý nhất là chứng minh của nhà toán học Alfred Kempe được công bố vào năm 1879 Các nhà toán học dã chấp nhận chứng minh của Kempe cho đến năm 1890 thì Percy Heawood tìm thấy lỗi trong chứng minh của Kempe Bài toán đã trở thành bài toán mở trong suốt từ đó cho đến năm 19 76 khi các nhà toán học Mỹ Kennet Appel và Wolfgang Haken - dựa trên các sự phân tích cẩn... minh toán học? Lập luận của họ có thực sự là một chứng minh hay không nếu chứng minh đó phụ thuộc vào các thông tin đầu ra không đáng tin cậy của máy tính? 6 Toán học rời rạc và những ứng dụng trong tin học - Kenneth H Rosen - Sđd - pp 8 16, 817 1 16 Bản đồ và đồ thò: Mỗi bản đồ trên mặt phẳng đều có thể biểu diễn bằng một đồ thò Để thiết lập sự tương ứng đó, mỗi miền trên bản đồ được biểu diễn bằng một... 2000 kiểu tô màu khác nhau6, và sau đó họ đã chứng tỏ được là không có kiểu nào trong số các kiểu tô màu nói trên có thể dẫn đến phản ví dụ Chứng minh của hai ông đã sử dụng hơn 1000 giờ máy tính Tuy nhiên chứng minh này đã gây ra nhiều tranh cãi vì hai lẽ: 1 Liệu có lỗi nào trong chương trình máy tính có thể dẫn đến kết quả sai hay không? 2 Vai trò của máy tính trong chứng minh toán học? Lập luận của... có e cạnh và v đỉnh (v ≥ 3), không có chu trình độ dài 3 thì e ≤ 2v -4 (***) Chứng minh: Nhận xét rằng vì G không có chu trình nào độ dài 3 nên mỗi miền phải được giới hạn bởi ít nhất 4 cạnh (kể cả miền ngoài) Phần còn lại của chứng tương tự trong chứng minh của hệ quả trên QED Ví dụ: Đồ thò K3,3 có 6 đỉnh và 9 cạnh (là đồ thò phân đôi nên không thể có chu trình độ dài 3) nên không thỏa bất đẳng thức... bỏ đi đỉnh b và các cạnh tới nó để được một đồ thò con (Hình 2) Hình 2 và Hình 3 là hai đồ thò đồng phôi Các hình còn lại là quá trình thực hiện biểu diễn phẳng của Hình 3 thành K3,3 Vì vậy đồ thò Petersen không phẳng Hình 1 Hình 2 114 Hình 3 Hình 4 o Bài toán tô màu: Bài toán tô màu phát biểu như sau: “Tìm số màu ít nhất cần phải dùng để tô màu cho một bản đồ phẳng bất kì sao cho hai nước bất kì nào... thông có e cạnh, v đỉnh (v ≥ 3) thì: e ≤ 3v -6 (**) Chứng minh: Giả sử G chia mặt phẳng ra làm f miền Vì G là đồ thò đơn nên mỗi miền phải được giới hạn bởi ít nhất 3 cạnh (kể cả miền ngoài) và vì mỗi cạnh phải xuất hiện đúng hai lần trên biên của hai miền khác nhau nên: 2e ≥ 3f (1) Từ (1) và e -v +2 = f suy ra e - v +2 ≤ (2/3) e Hay : 3e -3v +6 ≤ 2e Vậy: e ≤ 3v -6 QED 112 Ví dụ: Đồ thò K5 có 5 đỉnh và 10... có cùng chung biên giới Hai miền chỉ chung nhau một điểm không được xem là có cùng chung biên giới Bài toán tô màu cho các miền trên bản đồ trở thành bài toán tô màu cho các đỉnh trên đồ thò sau cho hai đỉnh liền kề trong đồ thò này không được tô cùng màu Chưa có một giải thuật để giải quyết bài toán tô màu đồ thò đủ tổng quát trừ giải thuật vét cạn dựa trên nguyên lí thử - sai, ie: duyệt qua tất cả... đến n Mỗi “quốc gia” sẽ gồm hai hình hộp con có cùng số thứ tự bắt vuông góc nhau Một thiết kế 5 Introduction à la topologie combinatoire - Maurice Fréchet et Ky Fan - Librairie Vuibert - Paris 19 46 - pp 5 ,6 115 3 chiều như vậy làm cho bất kì hai “quốc gia” nào cũng có chung biên giới với nhau Để tô màu cho một bản đồ 3 chiều như vậy phải dùng đúng n màu!) Vấn đề tô màu bản đồ đầu tiên được đưa ra bởi... đỉnh chưa tô màu THEN Begin k:=k+1 TậpMàu :=TậpMàu +[ Màu[k]] End ELSE Tiếp Tục := FALSE End RETURN TậpMàu, V END Cách tiếp cận bài toán tô màu bằng giải thuật này gọi là “tham lam” vì: 7 Data Structures and Algorithms - Alfred V Aho - Addison Wesley Pub Co - 1987 - pp 3,4,5 ,6 117 a) Giải thuật cố gắng tô màu mới cho tất cả các đỉnh còn chưa tô màu miễn là đỉnh đó không kề với một đỉnh nào có màu mới b)... thò là phẳng thì mọi đồ thò nhận được từ đồ thò đó bằng cách bỏ đi cạnh (a,b) đồng thời thêm vào đỉnh mới c và hai cạnh (a,c), (c,b) cũng là đồ thò phẳng” đủ xác đònh rằng G1 và G2 là không phẳng4 Phép toán như vậy gọi là phép phân chia sơ cấp Hai đồ thò G1 và G2 nhận được từ cùng một đồ thò G sau một loạt các phép phân chia sơ cấp gọi là đồng phôi Rõ ràng hai đồ thò G1 và G2 “sinh đôi” từ một “trứng” . liên thông được gọi là đồ thò rời rạc. Ví dụ:G1 là đồ thò liên thông còn G2 là đồ thò rời rạc. Khái niệm chu trình: Đònh nghóa: Chu trình là một đường có mọi. không đáng tin cậy của máy tính ?6 Toán học rời rạc và những ứng dụng trong tin học - Kenneth H. Rosen - Sđd - pp 8 16, 817.1 16 Bản đồ và đồ thò: Mỗi bản đồ

Ngày đăng: 13/11/2012, 16:19

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan