Sách hướng dẫn học tập toán rời rạc, Nguyễn Duy Phương, 198 trang

198 14 0
Sách hướng dẫn học tập toán rời rạc, Nguyễn Duy Phương, 198 trang

Đ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

H C VI N CƠNG NGH B U CHÍNH VI N THÔNG - SÁCH H - NG D N H C T P TOÁN R I R C Biên so n : Ths NGUY N DUY PH L u hành n i b HÀ N I - 2006 NG L I GI I THI U Toán r i r c m t l nh v c nghiên c u x lý đ i t ng r i r c dùng đ đ m đ i t ng, nghiên c u m i quan h gi a t p r i r c M t nh ng y u t làm Toán r i r c tr nên quan tr ng vi c l u tr , x lý thông tin h th ng máy tính v b n ch t r i r c Chính lý đó, Tốn h c r i r c m t môn h c b t bu c mang tính ch t kinh n c a ngành Công ngh thông tin i n t Vi n thông Tài li u h ng d n mơn h c Tốn h c r i r c đ c xây d ng cho h đào t o t xa H c vi n Công ngh B u Vi n thơng đ c xây d ng d a c s kinh nghi m gi ng d y môn h c k th a t giáo trình “Tốn h c r i r c ng d ng tin h c” c a Kenneth Rossen Tài li u đ c trình bày thành hai ph n: Ph n I trình bày nh ng ki n th c c b n v lý thuy t t h p thông qua vi c gi i quy t b n tốn c b n là: Bài toán đ m, Bài toán t n t i, Bài toán li t kê Bài toán t i u Ph n II trình bày nh ng ki n th c c b n v Lý thuy t đ th : khái ni m, đ nh ngh a, thu t toán đ th , đ th Euler, đ th Hamilton M t s tốn có ng d ng th c ti n quan tr ng khác c a lý thuy t đ th c ng đ c tr ng gi i quy t Bài tốn tơ màu đ th , Bài tốn tìm đ ng ng n nh t Bài toán lu ng c c đ i m ng Trong m i ph n c a tài li u, chúng tơi c g ng trình bày ng n g n tr c ti p vào b n ch t c a v n đ , đ ng th i cài đ t h u h t thu t toán b ng ngơn ng l p trình C nh m đ t đ c hai m c tiêu cho ng i h c: Nâng cao t toán h c phân tích, thi t k thu t tốn rèn luy n k n ng l p trình v i nh ng thu t toán ph c t p M c dù r t c n tr ng trình biên so n, nhiên tài li u không tránh kh i nh ng thi u sót h n ch Chúng tơi r t mong đ c s góp ý q báu c a t t c đ c gi b n đ ng nghi p M i góp ý xin g i v : Khoa Công ngh Thông tin - H c vi n Cơng ngh B u Vi n thông Hà N i, tháng 05 n m 2006 Ch PH N I: LÝ THUY T T CH ng 1: Nh ng ki n th c c b n H P NG I: NH NG KI N TH C C N i dung c a ch thuy t t p h p Bao g m: B N ng đ c p đ n nh ng ki n th c c b n v logic m nh đ lý Gi i thi u t ng quan v lý thuy t t h p Nh ng ki n th c c b n v logic Nh ng ki n th c c b n v lý thuy t t p h p M ts ng d ng c a logic lý thuy t t p h p tin h c B n đ c có th tìm th y nh ng ki n th c sâu h n chi ti t h n tài li u [1] [2] c a tài li u tham kh o 1.1 GI I THI U CHUNG T h p m t l nh v c quan tr ng c a toán h c r i r c đ c p t i nhi u v n đ khác c a toán h c Lý thuy t T h p nghiên c u vi c phân b ph n t vào t p h p Thông th ng ph n t c a t p h p h u h n vi c phân b chúng ph i tho mãn nh ng u ki n nh t đ nh tu theo u c u c a tốn nghiên c u M i cách phân b đ c coi m t “c u hình c a t h p” Nguyên lý chung đ gi i quy t toán t h p đ c d a nh ng nguyên lý c s nguyên lý c ng, nguyên lý nhân m t s nguyên lý khác, nh ng m t đ c thù không th tách r i c a toán h c t h p vi c ch ng minh ki m ch ng ph ng pháp gi i quy t tốn khơng th tách r i máy tính Nh ng d ng tốn quan tr ng mà lý thuy t t h p đ c p tốn đ m, tốn li t kê, toán t n t i toán t i u Bài toán đ m: d ng toán nh m tr l i câu h i “có c u hình tho mãn u ki n nêu?” Bài toán đ m đ c áp d ng có hi u qu vào nh ng cơng vi c mang tính ch t đánh giá nh xác su t c a m t s ki n, đ ph c t p thu t toán Bài toán li t kê: toán li t kê quan tâm đ n t t c c u hình có th có đ c, v y l i gi i c a đ c bi u di n d i d ng thu t toán “vét c n” t t c c u hình Bài tốn li t kê th ng đ c làm n n cho nhi u toán khác Hi n nay, m t s toán t n t i, toán t i u, toán đ m v n ch a có cách gi i quy t ngồi ph ng pháp li t kê Ph ng pháp li t kê tr nên quan tr ng h n đ c h tr b i h th ng máy tính Ch ng 1: Nh ng ki n th c c b n Bài toán t i u: khác v i toán li t kê, toán t i u ch quan tâm t i c u hình “t t nh t” theo m t ngh a ây m t tốn có nhi u ng d ng th c ti n lý thuy t t h p đóng góp m t ph n đáng k vi c xây d ng thu t toán đ đ a đ c nh ng mơ hình t i u Bài tốn t n t i: n u nh toán đ m th c hi n đ m c u hình có th có, tốn li t kê: li t kê t t c c u hình có th có, tốn t i u ch m t c u hình t t nh t toán t n t i gi i quy t nh ng v n đ nghi v n ngh a k c v n đ có hay khơng m t c u hình c ng ch a bi t Nh ng toán th ng nh ng tốn khó, vi c s d ng máy tính đ ch ng t tốn t n t i hay khơng t n t i nh t (ho c khơng) m t c u hình tr nên h t s c quan tr ng 1.2 NH NG KI N TH C C B N V LOGIC Các qui t c c b n c a Logic cho ta ý ngh a xác c a m nh đ Nh ng qui t c đ c s d ng gi a l p lu n tốn h c khơng Vì m c tiêu c b n c a giáo trình trang b cho sinh viên hi u xây d ng đ c nh ng ph ng pháp l p lu n toán h c đ n, nên s b t đ u nghiên c u toán h c r i r c b ng nh ng ki n th c c b n c a môn logic h c Hi u đ c ph ng pháp l p lu n toán h c có ý ngh a h t s c quan tr ng tin h c Nh ng qui t c c a logic cơng c c s đ có th xây d ng nên ngơn ng l p trình, m ng máy tính, ki m ch ng tính đ n c a ch ng trình nhi u ng d ng quan tr ng khác 1.2.1 nh ngh a & phép toán i t ng nghiên c u c a logic h c nh ng m nh đ M t m nh đ đ kh ng đ nh ho c ho c sai ch không th v a v a sai c hi u m t câu Ví d : Nh ng câu kh ng đ nh sau m t m nh đ : “Hà N i th đô c a Vi t Nam.” 1+1=2 2+2=3 Các m nh đ “Hà N i th đô c a Vi t Nam”, “1 +1 =2 “là nh ng m nh đ đúng, m nh đ “2 +2 =3” sai Nh ng nh ng câu ví d sau s khơng ph i m t m nh đ nh ng câu không cho ta kh ng đ nh c ng ch ng cho ta kh ng đ nh sai “Bây gi m y gi ?” “Hãy suy ngh u cho k l x +1 =2 x+y=z ng” Ch ng 1: Nh ng ki n th c c b n Ta ký hi u nh ng ch A, B, C, D, p, q, r, s nh ng m nh đ Giá tr c a m t m nh đ đ c ký hi u T, giá tr m nh đ sai đ c ký hi u F T p giá tr { T, F } đ c g i giá tr chân lý c a m t m nh đ nh ngh a M nh đ p n v i m nh đ q (ký hi u p ∨ p) m t m nh mà ch nh n giá tr T ch nh t m t hai m nh đ p, q nh n giá tr T M nh đ p ∨ q nh n giá tr F ch c p, q đ u nh n giá tr F nh ngh a M nh đ p h i m nh đ q (ký hi u p ∧ q ) m t m nh đ mà ch nh n giá tr T ch p, q nh n giá tr T M nh đ p ∧ q nh n giá tr F ch ho c p, q, ho c c hai nh n giá tr F nh ngh a Ph đ nh m nh đ p (kí hi u ¬p) m t m nh đ nh n giá tr F ch m nh đ p nh n giá tr T, nh n giá tr F ch p nh n giá tr T nh ngh a M nh đ n lo i c a p q, đ c ký hi u p⊕q, m t m nh đ ch m t p ho c q sai tr ng h p khác l i nh ngh a M nh đ p suy m nh đ q (ký hi u p → q) nh n giá T ch p nh n giá tr F ho c p q nh n giá tr T M nh đ p→q nh n giá tr F ch p nh n giá tr T q nh n giá tr F nh ngh a Hai m nh đ p, q đ c g i kéo theo (ký hi u: p ⇔ q) có giá tr p q có giá tr chân lý sai tr ng h p khác l i Các phép tốn: ∨, ∧, ¬, ⊕,→ ,⇔ có th đ c đ nh ngh a thông qua b ng giá tr chân lý sau: B ng 1.1: B ng giá tr chân lý c a phép tốn ∨, ∧, ¬, ⊕, →,⇔ p q p∨q p∧q ¬p p⊕q p→q p⇔q T T T T F F T T T F T F F T F F F T T F T T T F F F F F T F T T 1.2.2 S t ng đ ng gi a m nh đ M t v n đ h t s c quan tr ng l p lu n toán h c vi c thay th b ng m t m nh đ khác có giá tr chân lý Hai m nh đ có m t giá tr chân lý có th hi u theo cách thông th ng chúng t ng đ ng v ng ngh a Do v y, ta s ti p c n phân lo i m nh đ ph c h p thông qua giá tr chân lý c a chúng nh ngh a M t m nh đ ph c h p mà luôn v i b t k giá tr chân lý c a m nh đ thành ph n c a đ c g i h ng (tautology) M t m nh đ luôn sai v i m i giá tr chân lý c a m nh đ thành ph n c a đ c g i mâu thu n Ch ng 1: Nh ng ki n th c c b n Ví d : m nh đ ph c h p p ∨¬q h ng đúng, p ∧ ¬q mâu thu n giá tr chân lý c a m nh đ luôn đúng, ho c luôn sai nh đ c ch b ng 1.2 B ng 1.2 Ví d v m nh đ h ng & m nh đ mâu thu n p ¬p p ∨¬q p∧¬q T F T F F T T F nh ngh a Hai m nh đ p, q đ c g i t ng đ ng logic v i (ký hi u: p ≡ q) ch c t cho giá tr chân lý c a chúng gi ng Hay m nh đ p→q h ng Ví d : hai m nh đ ¬ (p ∨ q) ¬p ∧ ¬q t chúng đ c th hi n qua b ng sau: ng đ ng logic c t giá tr chân lý c a B ng 1.3 B ng giá tr chân lý đ i v i ¬(p ∨ q) ¬p q p q p∨q ¬(p∨q) ¬p ¬q ¬p∧¬q T T T F F F F T F T F F T F F T T F T F F F F F T T T T Dùng b ng giá tr chân lý đ ch ng minh tính t ng đ ng logic gi a hai m nh đ ph c h p cho ta m t ph ng pháp tr c quan d hi u Tuy nhiên, v i nh ng m nh đ logic ph c h p có k m nh đ c n t i 2k giá tr chân lý đ bi u di n b ng giá tr chân lý Trong nhi u tr ng h p có th ch ng minh tính t ng logic b ng vi c thay th m t m nh đ ph c h p b ng nh ng t ng đ ng logic có tr c B ng ph th c d i đây: ng pháp b ng chân lý, d dàng ch ng minh đ p→ q ≡ ¬p∨ q p⇔q ≡ (p→q)∧(q→p) ¬(¬p) ≡p cs t ng đ ng c a công Ch B ng 1.4 B ng t T NG ng đ ng 1: Nh ng ki n th c c b n ng logic NG TÊN G I Lu t đ ng nh t p∧T≡p p∨F≡p p∨T≡T Lu t nu t p∧F≡F Lu t lu đ ng p∨p≡p p∧p≡p ¬(¬p) ≡ p Lu t ph đ nh kép p∨q≡q∨p Lu t giao hoán p∧q≡q∧p (p ∨ q) ∨ r ≡ p ∨ ( q ∨ r) Lu t k t h p (p ∧ q) ∧ r ≡ p ∧( q ∧ r) p ∨ ( q ∧ r) ≡ (p ∨ q ) ∧ (p ∨ r) Lu t phân ph i p ∧ ( q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r) ¬(p ∧ q ) ≡ ¬p ∨ ¬q Lu t De Morgan ¬(p ∨ q ) ≡ ¬p ∧ ¬q Ví d : Ch ng minh r ng ¬( p ∧ (¬q ∧ q ) t ng đ ng logic v i ¬p ∧ ¬q Ch ng minh: ¬( p ∧ (¬q ∧ q ) ≡ ¬p ∧ ¬(¬p ∧ q ) theo lu t De Morgan th ≡ ¬p ∧ [ ¬(¬p) ∨ ¬q theo lu t De Morgan th ≡ ¬p ∧ [ p ∨ ¬q ] theo lu t ph đ nh kép ≡ (¬p ∧ p ) ∨ (¬p ∧ ¬q) theo lu t phân ph i ≡ F ∨ (¬p ∧ ¬q) ¬p ∧ p ≡ F ≡ ¬p ∧ ¬q M nh đ đ c ch ng minh 1.2.3 D ng chu n t c Các công th c (m nh đ ) t ng đ ng đ c xem nh bi u di n khác c a m t m nh đ d dàng vi t ch ng trình máy tính thao tác cơng th c, c n Ch ng 1: Nh ng ki n th c c b n chu n hóa cơng th c, đ a chúng v d ng bi u di n chu n đ c g i d ng chu n h i M t công th c đ c g i d ng chu n h i n u h i c a m nh đ n Ph ng pháp đ bi n đ i m t công th c b t k v d ng chu n h i b ng cách áp d ng th t c sau: B phép kéo theo (→) b ng cách thay (p→q) b i (¬p→q) Chuy n phép ph đ nh (¬) vào sát ký hi u m nh đ b ng cách áp d ng lu t De Morgan thay ¬(¬p) b i p Áp d ng lu t phân ph i thay cơng th c có d ng (p∨(q∧r)) b i (p∨q)∧(p∨r) Ví d : Ta chu n hóa cơng th c (p→q)∨¬(r∨¬s): (p→q)∨¬(r∨¬s) ≡ (¬p∨q) ∨(¬r∧s) ≡ ((¬p∨q)∨¬r) ∧((¬p∨q)∨s) ≡ (¬p∨q∨¬r)∧(¬p∨q∨s) Nh v y cơng th c (p→q)∨¬(r∨¬s) đ 1.3 V T VÀ L c đ a v d ng chu n h i (¬p∨q∨¬r)∧(¬p∨q∨s) NG T Trong toán h c hay ch ng trình máy tính r t hay g p nh ng kh ng đ nh ch a ph i m t m nh đ Nh ng kh ng đ nh đ u có liên quan đ n bi n Ch ng h n kh ng đ nh: P(x) = “x > 3” không ph i m t m nh đ nh ng t i nh ng giá tr c th c a x = x0 P(x0) l i m t m nh đ Ho c nh ng đo n ch ng trình g p câu l nh: if ( x > ) then x:= x +1; ch ng trình s đ t giá tr c th c a bi n x vào P(x), n u m nh đ P(x) cho giá tr x s đ c t ng lên b i câu l nh x:=x+1, P(x) có giá tr sai giá tr c a x đ c gi nguyên sau th c hi n câu l nh if Chúng ta có th phân tích m i kh ng đ nh thành hai ph n ch ng v ng (hay v t ), câu “x l n h n 3” ta có th coi x ch ng , “l n h n 3” v ng , hàm P(x) đ c g i hàm m nh đ M t hàm m nh đ có th có m t ho c nhi u bi n, giá tr chân lý c a hàm m nh đ t i nh ng giá tr c th c a bi n đ c xác đ nh nh nh ng m nh đ thông th ng Ví d : Cho Q(x, y, z) hàm m nh đ xác đ nh câu x2 = y2 +z2 xác đ nh giá tr chân lý c a m nh đ Q (3, 2, 1), Q ( 5, 4, 3) Gi i: t giá tr c th c a x , y , z vào Q(x,y,z) ta có: Q(3,2,1) m nh đ “32 = 22 + 12” sai Q(3,2,1) m nh đ sai Trong đó, Q (5, 4, 3) m nh đ “52 = 42 + 32” đúng, Q(5,4,3) m nh đ 10 Ch ng 1: Nh ng ki n th c c b n T ng quát, gi s M m t t p h p ph n t M th ng đ c g i tr ng hay mi n xác đ nh c a ph n t thu c M Khi đó, bi u th c P(x) g i v t xác đ nh tr ng M n u thay x b i m t ph n t b t k c a tr ng M P(x) s tr thành m t m nh đ tr ng M Khi t t c bi n c a hàm m nh đ đ u đ c gán nh ng giá tr c th , m nh đ t o s xác đ nh giá tr chân lý Tuy nhiên, có m t ph ng pháp quan tr ng khác đ bi n m t hàm m nh đ thành m t m nh đ mà không c n ph i ki m ch ng m i giá tr chân lý c a hàm m nh đ t ng ng v i giá tr c a bi n thu c tr ng xét Ph ng pháp g i s l ng hoá hay l ng t Chúng ta xét hai l ng t quan tr ng l ng t v i m i (ký hi u:∀), l ng t t n t i (ký hi u:∃ ) nh ngh a L ng t v i m i c a P(x) ký hi u ∀x P(x) m t m nh đ “P(x) v i m i ph n t x thu c tr ng xét” Ví d : Cho hàm m nh đ P(x) = X2 + X + 41 nguyên t Xác đ nh giá tr chân lý c a m nh đ ∀ P(x) v i x thu c không gian bao g m s t nhiên [0 39] Gi i: P(x) v i m i giá tr c a x ∈ [0 39] ⇒ ∀ P(x) Ví d : Cho P(x) hàm m nh đ “x + > x” Xác đ nh giá tr chân lý c a m nh đ ∀ x P(x), không gian s th c Gi i: P(x) v i m i s th c x nên ∀x P(x) nh ngh a L ng t t n t i c a hàm m nh đ P(x) (đ c ký hi u là:∃ x P(x) ) m t m nh đ “T n t i m t ph n t x không gian cho P(x) “ Ví d : Cho P(x) hàm m nh đ “x > 3” Hãy tìm giá tr chân lý c a m nh đ ∃ x P(x) khơng gian s th c Gi i: P(4) “4 > 3” nên ∃ x P(x) Ví d : Cho Q(x) “x + > x” Hãy tìm giá tr chân lý c a m nh đ ∃ x Q(x) không gian s th c Gi i: Q(x) sai v i m i x ∈ R nên m nh đ ∃ x Q(x) sai B ng 1.5: Giá tr chân lý c a l ng t ∀, ∃ ∀x P(x) P(x) v i m i x Có m t giá tr c a x đ P(x) sai ∃x P(x) Có m t giá tr c a x đ P(x) P(x) sai v i m i x D ch nh ng câu thông th ng thành bi u th c logic: D ch m t câu đ c phát bi u b ng ngôn ng t nhiên (câu h i thông th ng) thành m t bi u th c logic có vai trị h t s c quan tr ng xây d ng ngôn ng l p trình, ch ng trình d ch x lý ngơn ng t nhiên Q trình d ch m t câu t ngôn ng t nhiên thành m t bi u th c s làm m t tính t nhiên c a ngôn ng 11 Ch ng 1: Nh ng ki n th c c b n đa s ngôn ng đ u không rõ ràng, nh ng m t bi u th c logic l i r t rõ ràng ch t ch t cú pháp th hi n đ n ng ngh a c a câu i u d n đ n ph i có m t t p h p gi thi t h p lý d a m t hàm xác đ nh ng ngh a cu câu M t câu đ c chuy n d ch thành bi u th c logic, có th xác đ nh đ c giá tr chân lý c a bi u th c logic, thao tác bi u th c logic, bi n đ i t ng đ ng bi u th c logic Chúng ta s minh ho vi c d ch m t câu thơng th nh ng sau Ví d d ch câu “B n không đ tu i” thành bi u th c logic ng thành bi u th c logic thông qua c lái xe máy n u b n cao d i 1.5 mét tr phi b n 18 Gi i: Ta g i p câu : B n đ c lái xe máy q câu : B n cao d r câu : B n 18 tu i Khi đó: Câu h i đ i 1.5m (q ∧ ¬r) → ¬p c d ch là: Ví d : D ch câu “T t c sinh viên h c tin h c đ u h c mơn tốn h c r i r c” Gi i: G i P(x) câu “x c n h c mơn tốn h c r i r c” x đ c xác đ nh không gian c a sinh viên h c tin h c Khi có th phát bi u: ∀ x P(x) Ví d : D ch câu “Có m t sinh viên nhà ký túc xá” l p nh t t t c phịng c a nh t m t Gi i: G i t p sinh viên l p không gian xác đ nh sinh viên x, t p nhà ký túc xá không gian xác đ nh c n nhà y, t p phòng khơng gian xác đ nh phịng z Ta g i P(z,y) “z thu c y”, Q(x,z) “x z” Khi ta có th phát bi u: ∃ x ∃ y ∀ z (P(z,y) → Q(x,z)); 1.4 M T S NG D NG TRÊN MÁY TÍNH Các phép tốn bít: Các h th ng máy tính th ng dùng bit (binary digit) đ bi u di n thơng tin M t bít có hai giá tr chân lý ho c ho c Vì giá tr chân lý c a m t bi u th c logic c ng có hai giá tr ho c (T) ho c sai (F) N u ta coi giá tr có giá tr giá tr sai phép tốn v i bít máy tính đ c t ng ng v i liên t logic M t xâu bít (ho c xâu nh phân) dãy không ho c nhi u bít Chi u dài c a xâu s bít xâu Ví d : Xâu nh 101010011 có đ dài M t s nguyên đu c bi u di n nh m t xâu nh phân có đ dài 16 bít 12 Ch ng 8: M t s toán quan tr ng c a đ th Ch ng trình cài đ t thu t tốn Dijkstra tìm đ ng ng n nh t t m t đ nh đ n t t c đ nh khác c a đ th có h ng v i tr ng s không âm đ c th c hi n nh sau: #include #include #include #include #include #define MAX 50 #define TRUE #define FALSE int n, s, t; char chon; int truoc[MAX], d[MAX], CP[MAX][MAX]; int final[MAX]; void Init(void){ FILE * fp;int i, j; fp = fopen(“ijk1.in”,”r”); fscanf(fp,”%d”, &n); printf(“\n So dinh:%d”,n); printf(“\n Ma tran khoang cach:”); for(i=1; i

Ngày đăng: 09/06/2021, 14:41