Giáo trình Toán rời rạc ĐH Sư phạm kỹ thuật Nam Định

195 15 0
Giáo trình Toán rời rạc  ĐH Sư phạm kỹ thuật Nam Định

Đ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

Lời nói đầu Tài liệu Tốn rời rạc biên soạn nhằm phục vụ công việc giảng dạy học tập mơn học Tốn rời rạc ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Với thời lượng 60 tiết nội dung tài liệu đề cập đến kiến thức lý thuyết tổ hợp lý thuyết đồ thị hai lĩnh vực có nhiều ứng dụng toán rời rạc Nội dung tài liệu gồm 10 chương: Từ chương đến chương nhằm giới thiệu kiến thức lý thuyết tổ hợp, từ chương đến chương 10 nhằm giới thiệu kiến thức lý thuyết đồ thị Trong chương vấn đề đưa minh họa ví dụ Cuối chương có hệ thống tập nhằm giúp người học củng cố kiến thức học đồng thời rèn luyện khả vận dụng kiến thức để giải số toán thực tế Tài liệu biên soạn theo chương trình mơn học Toán rời rạc ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Nội dung tài liệu biên soạn dựa sở nội dung giảng môn học tác giả số năm qua khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Trong trình biên soạn, tác giả nhận nhiều ý kiến đóng góp với động viên, khích lệ bạn bè đồng nghiệp khoa trường Tác giả xin tỏ lịng cảm ơn với ý kiến đóng góp động viên khích lệ Với lần biên soạn đầu tiên, cố gắng song chắn tài liệu tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp để tài liệu ngày hồn thiện Phạm Cao Hào Chƣơng MỘT SỐ KIẾN THỨC MỞ ĐẦU VỀ LÝ THUYẾT TỔ HỢP 1.1 Giới thiệu tổ hợp Toán rời rạc lĩnh vực toán học nghiên cứu đối tượng rời rạc Các tập hợp dùng để nhóm đối tượng lại với Thông thường, đối tượng tập hợp có tính chất tương tự Ví dụ, sinh viên vừa nhập trường lập nên tập hợp Tương tự vậy, sinh viên khoa CNTT lập nên tập hợp Các dãy nhị phân có độ dài n lập nên tập hợp Có thể nói tập hợp cấu trúc rời rạc từ lập nên cấu trúc khác Tổ hợp lĩnh vực toán học rời rạc Hiện nay, lý thuyết tổ hợp áp dụng nhiều lĩnh vực khác nhau: tin học, lý thuyết số, xác suất thống kê, quy hoạch thực nghiệm, Tổ hợp liên quan đến nhiều vấn đề khác tốn học, khó định nghĩa cách hình thức Nói chung, lý thuyết tổ hợp gắn liền với việc nghiên cứu phân bố phần tử vào tập hợp Thông thường, phần tử hữu hạn việc phân bố chúng phải thỏa mãn điều kiện định Mỗi cách phân bố gọi cấu hình tổ hợp Vài nét lịch sử Có thể nói tư tổ hợp đời từ sớm Thời nhà Chu, người ta biết đến hình vẽ có liên quan đến hình vng thần bí Thời cổ Hy Lạp có nhà triết học biết cách tính số từ khác lập từ bảng chữ cho trước Nhà tốn học Pitago tìm nhiều số có tính chất đặc biệt, chẳng hạn số 36 tổng số chẵn số lẻ mà cồn tổng lập phương số tự nhiên Một định lý tiếng trường phái định lý độ dài cạnh tam giác vuông, từ tìm số mà bình phương số tổng bình phương hai số khác Việc tìm số vậy, địi hỏi phải có nghệ thuật tổ hợp định Tuy nhiên, nói rằng, lý thuyết tổ hợp hình thành ngành tốn học vào khoảng kỷ 17 loạt cơng trình nghiên cứu nghiêm túc nhà toán học Pascal, Fermat, Euler, Trong thời gian nay, mối tương quan toán học hữu hạn tốn học cổ điển có nhiều thay đổi, đặc biệt máy tính điện tử đời phát triển Nhiều toán tiếng giải máy tính thuật tốn tốn hữu hạn Các lĩnh vực trừu tượng toán học đại số lơgic, ngơn ngữ hình thức, trở thành khoa học ứng dụng để xây dựng ngôn ngữ lập trình cho máy tính Trong thời đại phát triển tốn học hữu hạn, vai trị lý thuyết tổ hợp khác xưa Từ lĩnh vực nghiên cứu trị chơi tiêu khiển hay phân tích giải mã thư cổ, tổ hợp chuyển sang lĩnh vực toán ứng dụng với phát triển mạnh mẽ Các toán tổng quát Trong tài liệu tổ hợp, thường gặp dạng toán đây: * Bài toán đếm: Đây toán nhằm trả lời câu hỏi “ Có cấu hình thoả mãn điều kiện nêu? “ Phương pháp đếm thường dựa vào số nguyên lý số kết đếm cấu hình đơn giản Bài tốn đếm áp dụng cách có hiệu vào cơng việc mang tính chất đánh tính xác suất kiện, tính độ phức tạp thuật toán, * Bài toán liệt kê: Bài toán quan tâm đến tất cấu hình có được, lời giải cần biểu diễn dạng thuật tốn “vét cạn“ tất cấu hình Lời giải trường hợp cụ thể máy tính điện tử giải theo thuật toán nêu Bài toán liệt kê làm “nền” cho nhiều toán khác như: toán đếm, toán tối ưu, * Bài toán tồn tại: Nếu toán trên, việc tồn cấu hình hiển nhiên tốn này, vấn đề “có hay khơng có” cấu hình cịn điều nghi vấn Lịch sử tốn học thường để lại tốn khó lĩnh vực việc cố gắng giải chúng thúc đẩy khơng phát triển nhiều ngành toán học * Bài toán tối ưu: Khác với toán liệt kê, toán tối ưu quan tâm đến cấu hình “tốt nhất” theo nghĩa Đây tốn có nhiều ứng dụng thực tiễn lý thuyết tổ hợp góp phần đáng kể việc xây dựng thuật toán hữu hiệu 1.2 Sơ lƣợc lý thuyết tập hợp 1.2.1 Một số khái niệm ký hiệu * Người ta thường dùng chữ hoa để ký hiệu tập hợp Chẳng hạn chữ N, Z R dùng để ký hiệu tập số tự nhiên , tập số nguyên tập số thực * Các đối tượng tập hợp gọi phần tử tập hợp Các phần tử ký hiệu chữ nhỏ a, b, , x, y,… Để x phần tử X ta viết xX, trái lại ta viết xX * Có nhiều cách mơ tả tập hợp Một số cách liệt kê hết phần tử tập hợp, Chúng ta dùng ký hiệu tất phần tử tập hợp liệt kê hai dấu móc Chẳng hạn ký hiệu { a, b, c, d } biểu diễn tập hợp có bốn phần tử a, b, c, d (Trong tài liệu gọn có chỗ ta dùng tập thay cho tập hợp) Ví dụ 1.1 X = { 1, 2, 3, 4, 5, } Ví dụ 1.2 Tập O số nguyên, dương, lẻ nhỏ 10 biểu diễn : O = { 1, 3, 5, 7, } Một cách khác để mô tả tập hợp rõ tính chất đặc trưng phần tử tập hợp Ví dụ 1.3 Tập hợp tất số thực viết sau: R = { x | x số thực} * A B hai tập hợp, phần tử A phần tử B ta nói A tập B ký hiệu A  B A B gọi hai tập hợp ký hiệu A=B A tập B B tập A Ví dụ 1.4 A = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, 6,} Thì B  A * Tập rỗng tập hợp khơng có phần tử nào, ký hiệu  Tập rỗng coi tập tập hợp * Tập hợp vũ trụ X tập hợp chứa tất đối tượng xét Số phần tử tập hợp A ký hiệu N(A) |A| Ví dụ 1.5 với tập hợp ví dụ 1.4 ta có N(A) = N(B) = 1.2.2 Một số phép toán tập hợp * Cho hai tập hợp A B Hợp hai tập A B ký hiệu A  B tập gồm tất phần tử thuộc A, thuộc B thuộc hai Ví dụ 1.6 A = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, 6, 8, 10, 12} A  B = { 1, 2, 3, 4, 5, 6, 7, 8, 10, 12} Tổng quát: Hợp n tập hợp tập hợp chứa tất phần tử thuộc n tập hợp Ta dùng ký hiệu: n A1  A2   An   Ai i 1 để hợp tập hợp A1 , A2 , , An Ví dụ 1.7 Cho A = { 1, 2, 3, 4, 6, }, B = { 0, 1, 2, 3, 4} C = { 2, 3, 6, } Hãy xác định A  B  C Tập hợp A  B  C chứa tất phần tử thuộc ba tập hợp A, B, C Từ đó: A  B  C = { 0, 1, 2, 3, 4, 6, 8, } * Cho A B hai tập hợp Giao hai tập A B ký hiệu A  B, tập chứa tất phần tử đồng thời thuộc A B A  B  x | x  A  x  B Ví dụ 1.8 Cho A, B hai tập ví dụ 1, A  B = { 2, 4, 6} Tổng quát: Giao n tập hợp tập hợp chứa phần tử thuộc tất n tập hợp Ta dùng ký hiệu: n A1  A2   An   Ai i 1 để giao tập hợp A1 , A2 , , An Ví dụ 1.9 Cho A, B, C tập hợp ví dụ 3, xác định AB  C Tập hợp AB  C chứa tất phần tử thuộc ba tập hợp A, B, C Từ đó: AB  C = { 2, 3} * Phần bù A X, ký hiệu A , tập phần tử X không thuộc A Ví dụ 1.10 X = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, } Khi A = { 1, 3, 5, } * Cho A B hai tập hợp, tích Đề A B, ký hiệu A x B, tập hợp gồm tất cặp (a, b) với aA bB A x B = { (a, b) { aA bB } Ví dụ 1.11 A = { a, b, c } B = { 2, } Khi A x B = { (a, 2), (a, 4), (b, 2), (b, 4), (c, 2), (c, 4) } Tích Đề mở rộng tự nhiên cho nhiều tập hợp: A1 x A2 x x An= { (a1, a2, , an) { aiAi, i=1, 2, , n } Ta dùng ký hiệu luỹ thừa để biểu diễn tích Đề tập hợp: An = A x A x x A (n lần) 1.2.3 Các tính chất cho tập hợp Các tập hợp với phép toán hợp, giao, phần bù lập nên đại số gọi đại số tập hợp Mỗi tập tập hợp tương ứng với tính chất (cịn gọi mệnh đề) xác định tập cho Với tương ứng đó, phép tốn tập hợp tương ứng với phép toán mệnh đề: Phép phủ định A, ký hiệu A (NOT A) tương ứng với phép lấp phần bù Tuyển A B, ký hiệu A V B (A or B) tương ứng với phép hợp A B Hội A B, ký hiệu A & B (A and B) tương ứng với phép giao A B Các mệnh đề với phép toán nó, lập nên đại số gọi đại số mệnh đề Như vậy, đại số mệnh đề đại số tập hợp hai đại số đẳng cấu với Tuỳ tình huống, tốn phát biểu ngôn ngữ đại số tập hợp ngôn ngữ đại số mệnh đề 1.2.4 Quan hệ tƣơng đƣơng phân hoạch Trong nhiều vấn đề, người ta cần quan tâm đến quan hệ hai phần tử tập hợp xét Có nhiều kiểu quan hệ, hay gặp quan hệ tương đương Một quan hệ gọi tương đương thoả mãn tính chất sau: * Phản xạ: phần tử có quan hệ với * Đối xứng: a có quan hệ với b b có quan hệ với a * Bắc cầu: a có quan hệ với b, b có quan hệ với c a có quan hệ với c Một quan hệ tương đương xác định tập hợp chia tập hợp thành lớp, gọi lớp tương đương cho hai phần tử thuộc lớp có quan hệ với nhau, hai phần tử thuộc hai lớp khác khơng có quan hệ với Các lớp tương đương có tính chất phủ kín tập cho (tức hợp lớp tương đương tập cho) rời (tức giao hai lớp rỗng) Ta gọi họ tập khác rỗng tập hợp có tính chất nêu phân hoạch tập hợp Như quan hệ tương đương tập hợp xác định phân hoạch tập đó, ngược lại phân hoạch tập hợp cho tương ứng với quan hệ tương đương tập hợp Ví dụ 1.12 X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } Trên X ta xác định quan hệ R sau : Với a thuộc X, b thuộc X, a b gọi có quan hệ R với chúng có số dư chia cho a R b  a mod = b mod Dễ thấy quan hệ R quan hệ tương đương X (bạn đọc tự kiểm chứng lại điều này), quan hệ R chia tập X thành lớp tương đương sau : L1 = { 3, 6, } L2 = {1, 4, 7, 10 } L3 = { 2, 5, } 1.2.5 Biểu diễn tập hợp máy tính Có nhiều cách biểu diễn tập hợp máy tính Một phương pháp lưu trữ phần tử tập hợp theo cách không thứ tự Tuy nhiên, điều làm được, việc tìm giao, hợp hiệu tập hợp thời gian, phép tính địi hỏi lượng thời gian tìm kiếm lớn phần tử Vì sử dụng phương pháp lưu trữ phần tử cách dùng tùy ý phần tử tập vũ trụ Phương pháp biểu diễn tập hợp làm cho việc tính tổ hợp tập hợp trở nên dễ dàng Giả sử tập vũ trụ X hữu hạn (và có kích thước hợp lý để số phần tử X không lớn dung lượng nhớ máy tính mà ta dùng) Trước hết, rõ tùy ý phần tử X, ví dụ a 1, a2, , an sau biểu diễn tập A X xâu nhị phân có chiều dài n, bit thứ i có giá trị thuộc A không thuộc A Ví dụ 1.13 Cho X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } xếp phần tử X theo thứ tự tăng dần; tức = i Xác định xâu nhị phân biểu diễn tập số nguyên lẻ X, tập số nguyên chẵn X tập số nguyên chia hết cho X Giải: Xâu nhị phân biểu diễn tập số chẵn X : 0101010101 Xâu nhị phân biểu diễn tập số lẻ X là: 1010101010 Xâu nhị phân biểu diễn tập số nguyênchia hết cho3 X là: 0010010010 1.3 Một số nguyên lý 1.3.1 Nguyên lý cộng Giả sử có hai cơng việc Việc thứ làm n cách, việc thứ hai làm n2 cách hai việc làm đồng thời, có n1 + n2 cách làm hai việc Ví dụ 1.14 Giả sử cần chọn cán khoa Tin sinh viên Tin làm đại biểu hội đồng trường đại học Hỏi có cách chọn vị đại biểu khoa Tin có 50 cán 800 sinh viên? Giải : Ta gọi việc thứ việc chọn cán khoa Tin Nó làm 50 cách Việc thứ hai, chọn sinh viên Tin, làm 800 cách Theo nguyên lý cộng ta có 50 + 800 = 850 cách chọn vị đại diện Ví dụ.1.15 Một sinh viên chọn thực hành máy tính từ ba danh sách tương ứng có 23, 15 19 Có cách chọn thực hành Giải : Có 23 cách chọn thực hành từ danh sách thứ nhất, 15 cách chọn từ danh sách thứ hai 19 cách chọn từ danh sách thứ ba Vì vậy, có : 23 + 15 + 19 = 57 cách chọn thực hành Ví dụ 1.16 Giá trị biến k sau đoạn chương trình sau thực hiện? k=0 for i1:= to n1 k := k + 1; for i2:= to n2 k := k + 1; ……………… ……………… for im:= to nm k := k + 1; Giải : Giá trị khởi tạo k khơng Khối lệnh gồm m vịng lặp khác Sau bước lặp vòng lặp giá trị k tăng lên đơn vị Sau vòng lặp thứ k = n1 Do vịng lặp khơng thực đồng thời nên sau vịng lặp thứ hai k = n1+ n2 tương tự sau đoạn chương trình thực xong k = n1 + n2 + …+ nm Nguyên lý cộng phát biểu dạng ngôn ngữ tập hợp sau: Nếu A1, A2,…, An tập rời N(A1 A2…An) = N(A1) + N(A2)+ …+ N(An) 1.3.2 Nguyên lý nhân Giả sử nhiệm vụ tách làm hai việc Việc thứ làm n1 cách, việc thứ hai làm n2 cách sau việc thứ làm, có n1 n2 cách thực nhiệm vụ Ví dụ 1.17 Người ta ghi nhãn cho ghế giảng đường chữ số nguyên dương không vượt 100 Bằng cách vậy, nhiều có ghế ghi nhãn khác Giải: Thủ tục ghi nhãn cho ghế gồm hai việc, gán 26 chữ sau gán 100 số nguyên dương Quy tắc nhân có 26 100 = 2600 cách khác để gán nhãn cho ghế Vậy nhiều có 2600 ghế ghi nhãn Ví dụ 1.18 Từ Hà Nội đến Huế có cách đi: máy bay, tơ, tàu hoả Từ Huế đến Sài Gịn có cách đi: máy bay, tơ, tàu hoả, tàu thuỷ Hỏi từ Hà Nội đến Sài Gòn (qua Huế) có cách đi? 10 thóc nµo luồng có mạng không tìm đ- ợc đ- ờng tăng luồng Hai thủ tục tìm đ- ờng tăng luồng tăng luồng mô tả nh- sau Procedure Find _part; {thủ tục gán nhÃn tìm đ- ờng tăng luồng p[v], (v) nhÃn đỉnh v; VT - danh sách đỉnh có nhÃn nh- ng ch- a xét ; c[u,v] -khả thông qua cña cung (u,v), u,v  V ; f[u,v] - luång trªn cung (u,v) , (u,v  V) } Begin p[s]:=s; (s):=+  ; VT =V\{s}; Pastfound:= true; While VT   Begin u  VT; { LÊy u tõ V T } for v  V\VT begin if (c [u,v] >0 and (f(u,v) < c[u,v] ) then begin p[v] :=u; [v] :=min {[u], c[u,v] – f[u,v]} ; VT= VT {v}; (*nạp v vào danh sách đỉnh có nh·n*) If v=t then exit ; end; If (c[u,v] > 0) and (f[u,v] > 0) then Begin p[v]= -u; [v] :=min {[u], f[u,v]}; VT=VT {v}; (*nạp v vào danh sách đỉnh có nhÃn *) If v = t then exit; end; end; PartFound :=false; 181 end; End; Procdure Inc_flow; (*tăng luồng theo đ- ờng tăng *) Begin V:=p[t] ; u=t; tang:=[t] ; While u  s Begin If v > then f[u,v]:=f[u,v] +tang Else Begin v:=-v; f[u,v]:=f[u,v] -tang; End; u:=v;v:=p[u]; End; End; Thuật toán Ford Fulkerson đ- ỵc thùc hiƯn nhê thđ tơc: Procedure Max ฀Flow; (* Thuật toán Ford-Fulkerson *) Begin (* Khởi tạo - bắt đầu luồng với giá trị *) For u  v For v  V f [u,v] :=0; Stop :=false; While not stop Begin Find_Part; If PartFound then Inc_Flow else Stop :=true; End; 182 End; Giả sử khả thông qua tất cung đồ thị số nguyên Khi sau lần tăng luồng, giá trị luồng tăng lên Từ suy thuật toán Ford-Fulkerson dừng sau không val(f * ) lần tăng luồng cho ta luồng cực đại mạng Đồng thời rõ ràng f * (u,v) số nguyên với cung (u,v) E Từ ta có kết nh- sau: Định lý 10.2 (Định lý Ford-Fullkerson) Luồng cực đại mạng khả thông qua lát cắt hẹp Định lý 10.3 (Định lý tính nguyên ) Nếu tất khả thông qua số nguyên tìm đ- ợc luồng cực đại với luồng cung số nguyên Tuy nhiên, khả thông qua số lớn giá trị luồng cực đại lớn thuật toán mô tả đòi hỏi thực nhiều b- ớc tăng luồng Hơn nữa, khả thông qua số vô tỷ ,ng- ời ta xây dựng đ- ợc ví dụ thuật toán không dừng ,và tệ dÃy giá trị luồng xây dựng theo thuật toán hội tụ không hội tụ đến giá trị luồng cực đại Nh- vậy, muốn thuật toán làm việc hiệu ,việc lựa chọn đ- ờng tăng luồng cần đ- ợc tiến hµnh hÕt søc cÈn thËn Edmonds vµ Karp chØ đ- ờng tăng luồng đ- ợc chọn đ- ờng ngắn từ s đến t đồ thi Gf Điều thực thủ tục tìm đ- ờng tăng Find_Path mô tả trên, danh sách VT đ- ợc tổ chức d- ới dạng QUEUE (nghĩa ta thực tìm đ- ờng tăng thủ tục tìm kiếm theo chiều rộng) thuật toán kết thúc sau không mn/2 lần sử dụng đ- ờng tăng luồng Nếu để ý rằng, tìm kiếm theo chiều rộng đồ thị đòi hỏi thời gian O(n+m), thuật toán thu đ- ợc có độ phức tạp tính toán O(nm ) VÝ dơ 10.2 Ta kÕt thóc mơc nµy bëi vÝ dụ minh hoạ cho thuật toán Ford_fulkerson sau Hình 10.3(a) cho mạng G với khả thông qua cung luồng giá trị 10 Hai số viết bên cạnh cung khả thông qua 183 cung (số ngoặc ) luồng cung Đ- ờng tăng luồng có dạng (s,v3,v ,v ,v ,v ,t) ta tÝnh đ- ợc (t)=1,giá trị luồng tăng từ 10 lên 11 Hình 10.3(b) luồng thu đ- ợc sau tăng luồng theo đ- ờng tăng tìm đ- ợc 6(6) (a) v2 v4 0(2) v6 0(2) 4(4) 10(10) s 0(3) 6(8) 4(5) 0(1) t 4(9) 6(9) 0(2) v3 v5 10(10) v7 4(4) 6(6) (b) v2 v4 0(2) v6 0(2) 4(4) 10(10) 5(8) 3(5) s 0(3) 1(1) 3(9) 7(9) t 1(2) v3 10(10) v5 4(4) v7 Hình 10.3 Tăng luồng dọc theo đ- ờng tăng Luồng hình 3(b) đà cực đại Lát cắt hẹp X = {s, v2, v3, v5 }, X * = {v4, v6, v7, t } Giá trị luồng cực đại 11 10.4 Một số toán luồng tổng quát Trong phần ta nêu số toán luồng tổng quát mà việc giải chúng dẫn toán luồng cực đại trình bày a) Mạng với nhiều điểm phát điểm thu Xét mạng G với p điểm phát s ,s sp q điểm thu f ,f …fq.G¶i sư r»ng lng cã thĨ từ điểm phát đến tất điểm thu Bài toán tìm luồng cực đại từ điểm phát đến điểm thu đ- a toán 184 điểm phát điểm thu cách đ- a vào điểm phát giả s điểm thu giả t cạnh nối s với tất điểm phát cạnh nối t với tất điểm điểm thu Hình 10.4 minh hoạ cho cách đ- a mạng với nhiều điểm phát nhiều điểm thu mạng có điểm phát điểm thu Khả thông qua cung nối s với điểm phát sk + hạn chế l- ợng phát điểm phát sk, l- ợng phát sk hạn chế bk cung (s,sk) có khả thông qua bk Cũng nh- vậy, cung nối tk với điểm thu t, giá trị khả thông qua của(tk, t) giới hạn không giới hạn tuỳ theo l- ợng thu điểm thu có bị giới hạn hay không s s1 t1 s2 t2 sp t tq Hình 10.4 Mạng với nhiều điểm phát thu Trường hợp số điểm thu nhận hng từ số điểm pht ta có bi toán nhiều luồng toán phức tạp nhiều so với toán luồng cực đại điểm phát s điểm thu t b)Bài toán với khả thông qua cung đỉnh Giả sử đồ thị G, khả thông qua cung c(u,v), đỉnh v V có khả thông qua đỉnh d(v), đòi hỏi tổng luồng vào đỉnh v không đ- ợc v- ợt d(v), tức f (w, v) d (v) wV Cần phải tìm luồng cực đại s t mạng nh- Xây dựng mng G cho đỉnh v ca G tương ứng với hai đỉnh v ,v- G, cung (u,v) G t- ơng ứng víi cung (u-, v  ) G’ Ngoµi ra, cung (v ,v-) G có kh thông qua l d(v) ,tức l bng khả thông qua cđa ®Ønh v G 185 Do lng ®i vào đỉnh v phải qua cung (v+, v) với kh thông qua d(v), nên luồng cực G’ sÏ b´ng lng cùc ®³i G víi kh thông qua cung đỉnh c) Mạng khả thông qua cung bị chặn hai phía Xét mạng G mà cung (u,v) có khả thông qua (cận luồng cung) c(u,v) cận d- ới luồng d(u,v) Bài toán đặt liệu có tồn hay không luồng t- ơng thích từ s đến t ,tức luồng {f(u,v): u,vV} thoả mÃn thêm ràng buộc d(u,v) f(u,v) c(u,v) (u,v) E Đ- a vào mạng G đỉnh phát giả sa, đỉnh thu giả ta xây dựng mạng Ga theo qui tắc: Mỗi cung (u,v) mà d(u,v) t- ơng ứng với hai cung(sa,v) (u,ta) với khả thông qua d(u,v) Giảm c(u,v) d(u,v) tức thay khả thông qua cung (u,v) bëi c(u,v) –d(u,v), cßn cËn d- íi cđa nã đặt Ngoài thêm vào cung (t,s) với c(t,s) = Hình 10.5 (a) cho ví dụ mạng G với khả thông qua cung bị chặn hai phía Đồ thị Ga t- ơng ứng đ- ợc cho hình 10.5(b) u a) d(u,t),c(u,t) 0,c(s,u) 0,c(u,v s d(s,v),c(s,v) 0,c(v,t) v ta t d(u,t) d(s,v) u c(s,u) b) s c(u,t)-d(u,t) t d(u,v) c(s,v)-d(s,v)  c(v,t) v d(s,v) d(u,t) Sa Hình 10.5 Mạng với khả thông qua bị chặn hai phía 186 Ký hiệu d * =  d (u, v) d ( u , v ) 0 Khi ®ã, ng- êi ta chøng minh đ- ợc rằng: 1) Nếu luồng lớn mạng Ga từ sa đến ta d * tồn luồng t- ơng thích G 2) Nếu luồng lớn mạng Ga từ sa đến ta khác d * không tồn luồng t- ¬ng thÝch G 10.5 Mét sè øng dông tổ hợp Bài toán luồng cực đại có nhiều ứng dụng việc giải nhiều toán tổ hợp Khó khăn phải xây dựng mạng t- ơng ứng cho việc tìm luồng cực đại t- ơng đ- ơng với toán tổ hợp đặt D- ới giới thiệu số toán nh- a) Bài toán đám c-ới vùng quê Có m chàng trai làng quê Đối với chàng trai ta biết cô gái mà vừa ý Hỏi tổ chức đám c- ới chàng trai sánh duyên với cô gái mà vừa ý Ta xây dựng đồ thị với đỉnh biểu thị chàng trai cô gái cung biểu thị vừa ý chàng trai cô gái Khi ta thu đ- ợc đồ thị hai phía Đ- a thêm vào điểm phát s điểm thu t Nối s với tất đỉnh biểu thị chàng trai, nối t với tất đỉnh biểu thị cô gái Tất cung đồ thị có khả thông qua Bắt đầu từ luồng 0, ta tìm luồng cực đại mạng xây dựng đ- ợc theo thuật toán Ford Fulkerson Từ định lý tính nguyên, luồng cung số Rõ ràng luồng cực đại đồ thị có giá trị Vmax = m, toán có lời giải, cung với luồng cách tổ chức đám c- ới thoả mÃn điều kiện đặt Ng- ợc lại, toán có lời giải Vmax = m b) Bài toán hệ thống đại diện chung Cho tập m phần tử X = {z1, z2,,zm} Giả sử < A1,A2,,An> < B1, B2,,Bn> hai dÃy tập tập X DÃy gồm n phần tử khác X: < a1, a2,, an> đ- ợc gọi hệ thống đại diện chung hai dÃy đà cho 187 nh- tìm đ- ợc hoán vị tËp {1,2,…,n} cho < a1, a2,…,an> lµ hƯ thèng đại diện phân biệt hai dÃy , tức điều kiện sau đ- ợc thoả mÃn : Ai B(i) , i= 1,2,,n Xây dựng mạng G = (V,E) với tËp ®Ønh V= {s,t}  {x1, x2,…, xn}  {u1, u2,…,um} {v1, v2,…,vm}  {y1, y2,…,yn} Trong ®ã ®Ønh xi t- ơng ứng với tập Ai, đỉnh yi t- ơng ứng với tập Bi, phần tử ui, vi t- ơng ứng với phần tử zi Tập cung mạng G đ- ợc xác định nhsau: E = {(s,xi):  i  n}  {(xi, uj): víi zj  Ai,  i  n, 1 j  m}   {(uj, yj): 1 j m}  {(vj, yj): víi zi  Bi,  i  n,  j  m}   {(yi, t): 1 i n} Khả thông qua tất cung đ- ợc đặt Dễ dàng thấy hệ thống đại diện chung hai dÃy< A1, A2,, An> tồn mạng G = (V,E) tìm đ- ợc luồng với giá trị n Để xét tồn cđa lng nh- vËy cã thĨ sư dơng tht to¸n tìm luồng cực đại từ s đến t mạng G = (V,E) c) Một toán tối - u rời rạc Trong mục ta trình bày thuật toán đ- ợc xây dựng dựa thuật toán tìm luồng cực giải toán tối - u rời rạc mô hình toán học cho số toán tối - u tổ hợp Xét toán tối - u rời rạc n f ( x1 , x2 , , xn )  max  xij  1i  m (1) j 1 víi ®iỊu kiÖn n a j 1 x  pi , i  1,2, , m, (2) aij ij xij = 1, j = 1, 2,, n (3) Trong aij  {0,1}, i = 1, 2,…, m; j = 1, 2,, n, pi nguyên d- ơng, i= 1, 2,,m Bài toán (1)-(3) mô hình toán học cho nhiều toán tối - u tổ hợp thực tế Ng- ời ta đà chứng minh đ- ợc việc giải toán (1)-(3) dẫn việc giải số hữu hạn toán luồng cực đại mạng D- ới vài ví dụ toán đ- a toán (1)-(3) Bài toán phân nhóm sinh hoạt Có m sinh viên n nhóm sinh hoạt chuyên đề Với sinh viªn i, biÕt aij = 1, nÕu sinh viªn i cã ngun väng tham gia vµo nhãm j 188 aij = 0, ng- ợc lại pi số l- ợng nhóm chuyên đề mà sinh viên i phải tham dù, i= 1,2,…,m; j= 1,2,…,n Trong sè c¸c c¸ch phân sinh viên vào nhóm chuyên đề mà họ có nguyện vọng tham gia đảm bảo sinh viên i phải tham gia pi nhóm, hÃy tìm cách phân phối với số ng- ời nhóm có nhiều sinh viên tham gia nhỏ đ- ợc Đ- a vào biến số xij = 1, sinh viên i tham gia vào nhóm j xij = 0, ng- ợc lại i= 1,2,, m, j = 1, 2,, n, mô hình toán học cho toán đặt toán (1)-(3) Bài toán lập lịch cho hội nghị Một hội nghị có m tiểu ban, tiểu ban cần sinh hoạt ngày phòng họp phù hợp với Có n phòng họp dành cho việc sinh hoạt tiểu ban Biết aij = 1, phòng họp i thích hợp với tiểu ban j aij = 0, ng- ợc lại, i = 1, 2, …, m; j = 1, 2,…, n H·y bố trí phòng họp cho tiểu ban cho hội nghị kết thúc sau ngày làm việc Đ- a vào biến số xij = 1, bố trí tiểu ban i làm việc phòng j xij = 0, ng- ợc lại i = 1, 2,…, m, j = 1, 2,…, n, ®ã dƠ thấy mô hình toán học cho toán đặt toán (1) (3), pi = 1, i = 1, 2,…, m Ng- êi ta đà chứng minh đ- ợc Bài toán (1)-(3) có ph- ơng án tối - u n a j 1 189 ij  pi , i=1, 2, , m tập ch-ơng 10 Cho mạng nh- hình d- ới, với khả thông qua cung đ- ợc ghi vòng tròn, luồng (khởi đầu) đ- ợc ghi cung HÃy tìm luồng cực đại mạng v1 v5 4 6 s v2 5 12 v6 5 v3 t 1 4 v4 v7 Cho m¹ng sau, víi khả thông qua cung đ- ợc ghi vòng tròn Tìm luồng cực đại mạng v1 v5 4 s v3 t 4 v4 v2 v6 Cho mạng sau, với khả thông qua cung đ- ợc ghi vòng tròn, luồng (khởi đầu) đ- ợc ghi cung Tìm luồng cực đại mạng 10 s 8 28 6 v1 15 10 10 15 15 v6 v5 10 30 25 v7 v8 v4 12 6 10 16 20 v3 16 v2 v9 190 v10 20 0 2 t MỤC LỤC Chƣơng MỘT SỐ KIẾN THỨC MỞ ĐẦU VỀ LÝ THUYẾT TỔ HỢP 1.1 Giới thiệu tổ hợp 1.2 Sơ lược lý thuyết tập hợp 1.2.1 Các khái niệm 1.2.2 Các phép toán 1.2.3 Các tính chất cho tập hợp 1.2.4 Quan hệ tương đương phân hoạch 1.2.5 Biểu diễn tập hợp máy tính 1.3 Một số nguyên lý 1.3.1 Nguyên lý cộng 1.3.2 Nguyên lý nhân 10 1.4 Các cấu hình tổ hợp đơn giản 11 1.4.1 Chỉnh hợp lặp 11 1.4.2 Chỉnh hợp khơng lặp 12 1.4.3 Hốn vị 13 1.4.4 Tổ hợp 13 Chƣơng BÀI TOÁN ĐẾM 2.1 Giới thiệu toán 17 2.2 Nguyên lý bù trừ 18 2.3 Qui tốn đơn giản 22 2.4 Cơng thức truy hồi 25 2.4.1 Các ví dụ minh họa 25 2.4.2 Giải cơng thức truy hồi tuyến tính hệ số 27 2.5 Liệt kê 31 Chƣơng BÀI TỐN TỒN TẠI 3.1 Giới thiệu tốn 35 3.2 Phương pháp phản chứng 38 3.3 Nguyên lý Dirichlet 39 191 3.3.1 Giới thiệu nguyên lý 39 3.3.2 Các ví dụ minh họa 40 3.4 Hệ đại diện phân biệt 43 3.4.1 Khái niệm hệ đại diện phân biệt 43 3.4.2 Định lí Hall 44 Chƣơng 4: BÀI TỐN LIỆT KÊ 4.1 Giới thiệu tốn 48 4.2 Phương pháp sinh 49 4.2.1 Giới thiệu thuật toán sinh 49 4.2.2 Các ví dụ 50 4.3 Thuật tốn quay lui 57 4.3.1 Giới thiệu thuật toán 57 4.3.2 Các ví dụ 59 Chƣơng : BÀI TỐN TỐI ƢU 5.1 Giới thiệu toán 67 5.1.1 Phát biểu toán 67 5.1.2 Đưa toán tối ưu dạng tổng quát 67 5.2 Các thuật toán duyệt 71 5.2.1 Duyệt tồn 71 5.2.2 Thuật tốn nhánh cận 72 5.3 Thuật toán nhánh cận giải toán người du lịch 79 5.3.1 Thủ tục rút gọn 81 5.3.2 Thủ tục chọn cạnh phân nhánh 84 5.3.3 Thuật toán nhánh cận giải toán người du lịch 89 5.4 Bài tốn lập lịch gia cơng hai máy Thuật tốn Jonhson 90 5.4.1 Bài tốn lập lịch gia cơng hai máy 90 5.4.2 Định lý Jonhson 93 5.4.3 Thuật toán Jonhson 95 Chƣơng CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 192 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH 6.1 Các khái niệm lý thuyết đồ thị 100 6.1.1 Định nghĩa đồ thị 100 6.1.2 Các thuật ngữ 103 6.1.3 Đường đi, chu trình Đồ thị liên thơng 105 6.1.4 Một số dạng đồ thị đặc biệt 108 6.2 Biểu diễn đồ thị máy tính 109 6.2.1 Biểu diễn đồ thị danh sách cạnh 111 6.2.2 Biểu diễn đồ thị danh sách kề 112 6.2.3 Biểu diễn đồ thị ma trận kề 113 6.2.4 Sự đẳng cấu đồ thị 114 Chƣơng CÁC THUẬT TOÁN TÌM KIẾM TRÊN ĐỒ THỊ VÀ ỨNG DỤNG 7.1 Tìm kiếm theo chiều sâu 121 7.1.1 Giới thiệu thuật toán 121 7.1.2 Ví dụ minh họa 122 7.2 Tìm kiếm theo chiều rộng 123 7.2.1 Giới thiệu thuật toán 123 7.2.2 Ví dụ minh họa 124 7.3 Tìm đường kiểm tra tính liên thơng 125 7.3.1 Bài tốn tìm đường hai đỉnh 125 7.3.2 Tìm thành phần liên thông 126 Chƣơng ĐỒ THỊ EULER VÀ ĐỒ THỊ HAMILTON 8.1 Đồ thị Euler 130 8.1.1 Định nghĩa 130 8.1.2 Định lý Euler 131 8.1.3 Thuật toán Flor 133 8.2 Đồ thị Hamilton 134 193 8.2.1 Định nghĩa 135 8.2.2 Định lý (Dirak) 140 8.2.3 Thuật tốn liệt kê chu trình Hamilton đồ thị 141 Chƣơng CÂY VÀ CÂY KHUNG CỦA ĐỒ THỊ BÀI TOÁN ĐƢỜNG ĐI NGẮN NHẤT 9.1 Cây tính chất 144 9.2 Cây khung đồ thị 147 9.3 Bài toán khung nhỏ 149 9.3.1 Thuật toán Kruskal 150 9.3.2 Thuật toán Prim 153 9.4 Bài toán đường ngắn 158 9.4.1 Các khái niệm 158 9.4.2 Đường ngắn xuất phát từ đỉnh 160 9.4.3 Thuật toán Dijkstra 163 9.4.4 Đường ngắn tất cặp đỉnh 168 Chƣơng 10 BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG 10.1 Bài toán luồng cực đại 176 10.1.1 Khái niệm mạng 176 10.1.2 Luồng mạng 176 10.1.3 Bài toán luồng cực đại mạng 177 10.2 Lát cắt Đường tăng luồng 177 10.2.1 Khái niệm lát cắt 177 10.2.2 Đường tăng luồng 179 10.3 Thuật tốn tìm luồng cực đại mạng 180 10.4 Một số toán luồng tổng qt 185 10.5 Mét sè øng dơng tỉ hợp 188 194 tài liệu tham khảo [1] KENNETH H ROSEN Toán rời rạc ứng dụng tin học NXB Khoa học kỹ thuật 2000 [2] Hoàng Tụy Đồ thị hữu hạn ứng dụng vật trù học NXB Khoa học, Hà Nội 1964 [3] Nguyễn Đức Nghĩa- Nguyễn Tô Thành Toán rời rạc NXB Giáo dục 2003 [4] Đặng Huy Ruận Lý thuyết đồ thị ứng dụng Nhà xuất Khoa học kỹ thuật.2004 [5] Đỗ Đức Giáo Toán rời rạc Nhà xuất Khoa học kỹ thuật 1999 [6] Đại học Khoa học-Đại học Huế Giáo trình Toán rời rạc 2003 195 ... hợp cụ thể máy tính điện tử giải theo thuật toán nêu Bài toán liệt kê làm “nền” cho nhiều toán khác như: toán đếm, toán tối ưu, * Bài toán tồn tại: Nếu toán trên, việc tồn cấu hình hiển nhiên...Chƣơng MỘT SỐ KIẾN THỨC MỞ ĐẦU VỀ LÝ THUYẾT TỔ HỢP 1.1 Giới thiệu tổ hợp Toán rời rạc lĩnh vực toán học nghiên cứu đối tượng rời rạc Các tập hợp dùng để nhóm đối tượng lại với Thơng thường, đối tượng... thời gian nay, mối tương quan toán học hữu hạn toán học cổ điển có nhiều thay đổi, đặc biệt máy tính điện tử đời phát triển Nhiều tốn tiếng giải máy tính thuật toán toán hữu hạn Các lĩnh vực trừu

Ngày đăng: 21/02/2022, 12:56

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

Tài liệu liên quan