1. Trang chủ
  2. » Khoa Học Tự Nhiên

Bài giảng Toán rời rạc (Trường CĐ Công nghiệp Nam Định)

144 0 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 144
Dung lượng 1,53 MB

Nội dung

Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o - MỤC LỤC Lời nói đầu Mục lục Chƣơng I: Thuật toán 1.1 Khái niệm thuật toán 1.2 Thuật tốn tìm kiếm 1.3 Độ phức tạp thuật toán 1.4 Số nguyên thuật toán 12 1.5 Thuật toán đệ quy 17 Bài tập Chương I 20 Chƣơng II: Bài toán đếm 22 2.1 Cơ sở phép đếm 22 2.2 Nguyên lý Dirichlet 25 2.3 Chỉnh hợp tổ hợp suy rộng 28 2.4 Sinh hoán vị tổ hợp 30 2.5 Hệ thức truy hồi 32 2.6 Quan hệ chia để trị 34 Bài tập Chương II 38 Chƣơng III: Đồ thị 40 3.1 Định nghĩa thí dụ 37 3.2 Bậc đỉnh 39 3.3 Những đơn đồ thị đặc biệt 41 3.4 Biểu diễn đồ thị ma trận đẳng cấu đồ thị 44 3.5 Các đồ thị từ đồ thị cũ 46 3.6 Tính liên thơng 47 Bài tập Chương III 51 Chƣơng IV: Đồ thị Euler Đồ thị Hamilton 54 4.1 Đường Euler đồ thị Euler 54 4.2 Đường Hamilton đồ thị Hamilton 58 Bài tập Chương IV 64 -By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o - Chƣơng V: Một số toán tối ƣu đồ thị 67 5.1 Đồ thị có trọng số toán đường ngắn 67 5.2 Bài toán luồng cực đại 72 5.3 Bài toán du lịch 79 Bài tập Chương V 84 Chƣơng VI: Cây 87 6.1 Định nghĩa tính chất 87 6.2 Cây khung tốn tìm khung nhỏ 88 6.3 Cây có gốc 93 6.4 Duyệt nhị phân 94 Bài tập Chương VI 101 Chƣơng VII: Đồ thị phẳng tô màu đồ thị 104 7.1 Đồ thị phẳng 104 7.2 Đồ thị không phẳng 106 7.3 Tô màu đồ thị 107 Bài tập Chương VII 112 Chƣơng VIII: Đại số Boole 114 8.1 Khái niệm đại số Boole 114 8.2 Hàm Boole 117 8.3 Mạch lôgic 120 8.4 Cực tiểu hố mạch lơgic 125 Bài tập Chương VIII 132 -By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o CHƢƠNG I: THUẬT TOÁN 1.1 KHÁI NIỆM THUẬT TỐN 1.1.1 Mở đầu: Có nhiều lớp tốn tổng quát xuất toán học rời rạc Chẳng hạn, cho dãy số nguyên, tìm số lớn nhất; cho tập hợp, liệt kê tập nó; cho tập hợp số nguyên, xếp chúng theo thứ tự tăng dần; cho mạng, tìm đường ngắn hai đỉnh Khi giao cho tốn việc phải làm xây dựng mơ hình dịch tốn thành ngữ cảnh tốn học Các cấu trúc rời rạc dùng mơ hình tập hợp, dãy, hàm, hoán vị, quan hệ, với cấu trúc khác đồ thị, cây, mạng - khái niệm nghiên cứu chương sau Lập mơ hình tốn học thích hợp phần trình giải Để hồn tất q trình giải, cịn cần phải có phương pháp dùng mơ hình để giải tốn tổng qt Nói cách lý tưởng, địi hỏi thủ tục, dãy bước dẫn tới đáp số mong muốn Một dãy bước vậy, gọi thuật toán Khi thiết kế cài đặt phần mềm tin học cho vấn đề đó, ta cần phải đưa phương pháp giải mà thực chất thuật tốn giải vấn đề Rõ ràng rằng, không tìm phương pháp giải khơng thể lập trình Chính thế, thuật tốn khái niệm tảng hầu hết lĩnh vực tin học 1.1.2 Định nghĩa: Thuật toán bảng liệt kê dẫn (hay quy tắc) cần thực theo bước xác định nhằm giải toán cho Thuật ngữ “Algorithm” (thuật toán) xuất phát từ tên nhà toán học Ả Rập AlKhowarizmi Ban đầu, từ algorism dùng để quy tắc thực phép tính số học số thập phân Sau đó, algorism chuyển thành algorithm vào kỷ 19 Với quan tâm ngày tăng máy tính, khái niệm thuật tốn cho ý nghĩa chung hơn, bao hàm thủ tục xác định để giải toán, thủ tục để thực phép tính số học Có nhiều cách trình bày thuật tốn: dùng ngơn ngữ tự nhiên, ngơn ngữ lưu đồ (sơ đồ khối), ngơn ngữ lập trình Tuy nhiên, dùng ngơn ngữ lập trình -By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o lệnh phép ngơn ngữ dùng điều thường làm cho mô tả thuật tốn trở nên rối rắm khó hiểu Hơn nữa, nhiều ngơn ngữ lập trình dùng rộng rãi, nên chọn ngơn ngữ đặc biệt điều người ta khơng muốn Vì thuật tốn ngồi việc trình bày ngơn ngữ tự nhiên với ký hiệu toán học quen thuộc cịn dùng dạng giả mã để mơ tả thuật toán Giả mã tạo bước trung gian mơ tả thuật tốn ngơn ngữ thơng thường thực thuật tốn ngơn ngữ lập trình Các bước thuật tốn rõ cách dùng lệnh giống ngơn ngữ lập trình Thí dụ 1: Mơ tả thuật tốn tìm phần tử lớn dãy hữu hạn số nguyên a) Dùng ngôn ngữ tự nhiên để mô tả bước cần phải thực hiện: Đặt giá trị cực đại tạm thời số nguyên dãy (Cực đại tạm thời số nguyên lớn kiểm tra giai đoạn thủ tục.) So sánh số nguyên tiếp sau với giá trị cực đại tạm thời, lớn giá trị cực đại tạm thời đặt cực đại tạm thời số ngun Lặp lại bước trước cịn số ngun dãy Dừng khơng cịn số nguyên dãy Cực đại tạm thời điểm số nguyên lớn dãy b) Dùng đoạn giả mã: procedure max (a1, a2, , an: integers) max:= a1 for i:= to n if max 0 Định nghĩa 1:Ta nói hàm f(n) có cấp thấp hay hàm g(n) tồn số C>0 số tự nhiên n0 cho |f(n)|  C|g(n)| với nn0 Ta viết f(n)=O(g(n)) cịn nói f(n) thoả mãn quan hệ big-O g(n) Theo định nghĩa này, hàm g(n) hàm đơn giản được, đại diện cho “sự biến thiên” f(n) 10 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o Khái niệm big-O dùng toán học gần kỷ Trong tin học, sử dụng rộng rãi để phân tích thuật tốn Nhà toán học người Đức Paul Bachmann người đưa khái niệm big-O vào năm 1892 n(n  3) hàm bậc hai hàm bậc hai đơn giản n2 Ta có: n(n  3) n(n  3) =O(n2)  n2 với n3 (C=1, n0=3) f(n)= 2 Thí dụ 5: Hàm f(n)= Một cách tổng quát, f(n)=aknk+ak-1nk-1+ +a1n+a0 f(n)=O(nk) Thật vậy, với n>1, |f(n)||  |ak|nk+|ak-1|nk-1+ +|a1|n+|a0| = nk(|ak|+|ak-1|/n+ +|a1|/nk-1+a0/nk)  nk(|ak|+|ak-1|+ +|a1|+a0) Điều chứng tỏ |f(n)|  Cnk với n>1 Cho g(n)=3n+5nlog2n, ta có g(n)=O(nlog2n) Thật vậy, 3n+5nlog2n = n(3+5log2n)  n(log2n+5log2n) = 6nlog2n với n8 (C=6, n0=8) Mệnh đề: Cho f1(n)=O(g1(n)) f2(n) O(g2(n)) Khi (f1 + f2)(n) = O(max(|g1(n)|,|g2(n)|), (f1f2)(n) = O(g1(n)g2(n)) Chứng minh Theo giả thiết, tồn C1, C2, n1, n2 cho |f1(n)|  C1|g1(n)| |f2(n)|  C2|g2(n)| với n > n1 n > n2 Do |(f1 + f2)(n)| = |f1(n) + f2(n)|  |f1(n)| + |f2(n)|  C1|g1(n)| + C2|g2(n)|  (C1+C2)g(n) với n > n0=max(n1,n2), đâyC=C1+C2 g(n)=max(|g1(n)| , |g2(n)|) |(f1f2)(n)| = |f1(n)||f2(n)|  C1|g1(n)|C2|g2(n)|  C1C2|(g1g2)(n)| với n > n0=max(n1,n2) Định nghĩa 2: Nếu thuật tốn có độ phức tạp f(n) với f(n)=O(g(n)) ta nói thuật tốn có độ phức tạp O(g(n)) Nếu có hai thuật tốn giải tốn, thuật tốn có độ phức tạp O(g1(n)), thuật tốn có độ phức tạp O(g2(n)), mà g1(n) có cấp thấp g2(n), ta nói thuật toán hữu hiệu (hay nhanh hơn) thuật toán 1.3.3 Đánh giá độ phức tạp thuật tốn: 1) Thuật tốn tìm kiếm tuyến tính: Số phép so sánh dùng thuật toán xem thước đo độ phức tạp thời gian Ở bước vịng lặp thuật tốn, có hai phép so sánh thực hiện: để xem tới cuối bảng chưa để so sánh phần tử x với số hạng bảng Cuối phép so sánh làm ngồi vịng lặp Do đó, x=ai, có 2i+1 phép so sánh sử dụng Số phép so sánh nhiều nhất, 2n+2, đòi hỏi phải sử dụng phần tử x khơng có mặt bảng Từ đó, thuật tốn tìm kiếm tuyến tính có độ phức tạp O(n) 2) Thuật tốn tìm kiếm nhị phân: 11 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o Biểu thức F(x, y, z) rút gọn: xyz  xy z  x yz  xy( z  z )  x yz  xy  x yz Hình cho ta mạch lôgic thực hàm xy  x yz x y • • F  xy  x yz z Hai mạch lơgic hai hình thực hàm Boole, ta nói hai mạch lôgic tương đương, mạch lôgic thứ hai đơn giản Vấn đề tìm mạch lơgic đơn giản thực hàm Boole F cho trước gắn liền với vấn đề tìm biểu thức đơn giản biểu diễn hàm Đây vấn đề khó lý thú, ý nghĩa thực tiễn khơng cịn chục năm trước Ta vừa xét việc thực hàm Boole mạch lôgic gồm cổng NOT, AND, OR Dựa vào đẳng thức x  y  x y xy  x  y , cho ta biết hệ {., −} hệ {+, −} hệ đầy đủ Do thực hàm Boole mạch lơgic gồm có cổng NOT, AND NOT, OR 0 x  y  1, Xét hàm Sheffer F ( x, y )  x  y   Mạch lôgic thực x  hay y   hàm  gọi cổng NAND, vẽ hình x y O x y Dựa vào đẳng thức x  x  x, xy  ( x  y)  ( x  y), x  y  ( x  x)  ( y  y) , cho ta biết hệ {  } đầy đủ, nên hàm Boole thực mạch lơgic gồm có cổng NAND 0 x  hay y  1, Xét hàm Vebb F ( x, y )  x  y   Mạch lôgic thực hàm 1 x  y   gọi cổng NOR, vẽ hình x y x y O 131 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o Tương tự hệ {  } đầy đủ nên hàm Boole thực mạch lơgic gồm có cổng NOR Một phép tốn lôgic quan trọng khác phép tuyển loại: 0 x  y, F ( x, y )  x  y   1 x  y Mạch lôgic cổng lôgic, gọi cổng XOR, vẽ hình x y x y Mạch cộng: Nhiều tốn địi hỏi phải xây dựng mạch lơgic có nhiều đường ra, cho đầu F1, F2, …, Fk hàm Boole đầu vào x1, x2, …, xn x1 x2 xn-1 xn F1(x1, x2, …, xn)  F2(x1, x2, …, xn) Fk(x1, x2, …, xn)  Chẳng hạn, ta xét phép cộng hai số tự nhiên từ khai triển nhị phân chúng Trước hết, ta xây dựng mạch duợc dùng để tìm x+y với x, y hai số 1-bit Đầu vào mạch x y Đầu số 2-bit cs , s bit tổng c bit nhớ x y c s 0+0 = 00 0 0 0+1 = 01 1 1+0 = 01 0 1+1 = 10 1 Từ bảng trên, ta thấy s  x  y, c  xy Ta vẽ mạch thực hai hàm s  x  y c  xy hình Mạch gọi mạch cộng hai số 1-bit hay mạch cộng bán phần, ký hiệu DA s  x y x x y • • y DA s c c  xy Xét phép cộng hai số 2-bit a2 a1 b2b1 , a a1 b b 132 -By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o Thực phép cộng theo cột, cột thứ (từ phải sang trái) ta tính a1  b1 bit tổng s1 bit nhớ c1; cột thứ hai, ta tính a2  b2  c1 , tức phải cộng ba số 1-bit Cho x, y, z ba số 1-bit Tổng x+y+z số 2-bit cs , s bit tổng x+y+z c bit nhớ x+y+z Các hàm Boole s c theo biến x, y, z xác định bảng sau: x 0 0 1 1 y 0 1 0 1 z 1 1 c 0 1 1 s 1 0 Từ bảng này, dễ dàng thấy rằng: s  x yz Hàm c viết dạng tổng chuẩn tắc hoàn toàn là: c  x yz  x yz  xy z  xyz Cơng thức c rút gọn: c  z ( x y  x y)  xy( z  z )  z ( x  y)  xy Ta vẽ mạch thực hai hàm Boole s  x  y  z c  z ( x  y)  xy hình đây, mạch ghép nối hai mạch cộng bán phần (DA) cổng OR Đây mạch cộng ba số 1-bit hay mạch cộng toàn phần, ký hiệu AD z • x y • s • • c z x s x s 133 DA DA AD By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o y z y c c Trở lại phép cộng hai số 2-bit a2 a1 b2b1 Tổng a2 a1 + b2b1 số 3-bit c2 s2 s1 , s1 bit tổng a1+b1: s1  a1  b1 , s2 bit tổng a2+b2+c1, với c1 bit nhớ a1+b1: s2  a2  b2  c1 c2 bit nhớ a2+b2+c1 Ta có mạch thực ba hàm Boole s1, s2, c2 hình b2 a2 b1 a1 AD DA c1 c2 s2 s1 Dễ dàng suy mạch cộng hai số n-bit, với n số nguyên dương Hình sau cho mạch cộng hai số 4-bit b4 a4 b3 a3 b2 a2 b1 a1 AD AD AD DA c2 c3 c4 s4 s3 c1 s2 s1 8.4 CỰC TIỂU HOÁ CÁC MẠCH LÔGIC Hiệu mạch tổ hợp phụ thuộc vào số cổng bố trí cổng Q trình thiết kế mạch tổ hợp bắt đầu bảng rõ giá trị đầu tổ hợp giá trị đầu vào Ta ln ln sử dụng khai triển tổng tích mạch để tìm tập cổng lơgic thực mạch Tuy nhiên,khai triển tổng tích chứa số hạng nhiều mức cần thiết Các số hạng 134 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o khai triển tổng tích khác biến, cho số hạng xuất biến số hạng xuất phần bù nó, tổ hợp lại Chẳng hạn, xét mạch có đầu x = y = z = x = z = y = Khai triển tổng tích mạch xyz  x yz Hai tích khai triển khác biến, biến y Ta tổ hợp lại sau: xyz  x yz  ( y  y) xz  1xz  xz Do xz biểu thức với phép toán biểu diễn mạch cho Mạch thứ hai dùng cổng, mạch thứ phải dùng ba cổng đảo (cổng NOT) 8.4.1 Bản đồ Karnaugh: Để làm giảm số số hạng biểu thức Boole biểu diễn mạch, ta cần phải tìm số hạng để tổ hợp lại Có phương pháp đồ thị, gọi đồ Karnaugh, dùng để tìm số hạng tổ hợp hàm Boole có số biến tương đối nhỏ Phương pháp mà ta mô tả Maurice Karnaugh đưa vào năm 1953 Phương pháp dựa cơng trình trước E.W Veitch Các đồ Karnaugh cho ta phương pháp trực quan để rút gọn khai triển tổng tích, chúng khơng thích hợp với việc khí hố q trình Trước hết, ta minh hoạ cách dùng đồ Karnaugh để rút gọn biểu thức hàm Boole hai biến Có bốn hội sơ cấp khác khai triển tổng tích hàm Boole có hai biến x y Một đồ Karnaugh hàm y y Boole hai biến gồm bốn ô vuông, hình vng xy x xy biểu diễn hội sơ cấp có mặt khai triển ghi số xy xy Các hình gọi kề hội sơ cấp mà chúng x biểu diễn khác biến Thí dụ 7: Tìm đồ Karnaugh cho biểu thức: b) x y  x y c) x y  x y  x y a) xy  x y rút gọn chúng Ta ghi số vào ô vuông hội sơ cấp biểu diễn có mặt khai triển tổng tích Ba đồ Karnaugh cho hình sau y y y x x 1 1 x x 1 Việc nhóm hội sơ cấp hình cách sử dụng đồ Karnaugh cho khai triển Khai triển cực tiểu tổng tích tương ứng là: 135 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o a) y, b) x y  x y , c) x  y Bản đồ Karnaugh ba biến hình chữ nhật chia thành tám Các biểu diễn tám hội sơ cấp có Hai yz yz yz yz gọi kề hội sơ cấp mà chúng x xyz xy z xyz x yz biểu diễn khác biến Một cách để lập đồ Karnaugh ba biến x x yz xy z xyz x yz cho hình bên Để rút gọn khai triển tổng tích ba biến, ta dùng đồ Karnaugh để nhận dạng hội sơ cấp tổ hợp lại Các khối gồm hai ô kề biểu diễn cặp hội sơ cấp tổ hợp lại thành tích hai biến; khối x x biểu diễn hội sơ cấp tổ hợp lại thành biến nhất; cịn khối gồm tất tám biểu diễn tích khơng có biến nào, cụ thể biểu thức Thí dụ 8: Dùng đồ Karnaugh ba biến để rút gọn khai triển tổng tích sau: a) xy z  x y z  x yz  x y z, b) x yz  x y z  x yz  x yz  x y z , c) xyz  xy z  x yz  x y z  x yz  x yz  x y z Bản đồ Karnaugh cho khai triển tổng tích cho hình sau: yz yz yz yz yz yz yz yz x x 1 x x x x yz yz yz yz 1 1 1 1 1 Việc nhóm thành khối cho thấy khai triển cực tiểu thành tổng Boole tích Boole là: a) x z  y z  x yz , b) y  xz , c) x  y  z Bản đồ Karnaugh bốn biến hình vng chia làm 16 Các biểu diễn 16 hội sơ cấp có Một cách lập đồ Karnaugh bốn biến cho hình yz yz yz yz wx wxyz wxy z wx y z wx yz w x w x yz wxy z wx y z wx yz 136 -w x yz w x y z w x y z w x yz By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở wxyz wxy z wx y z wx yz Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o wx wx Hai ô gọi kề hội sơ cấp mà chúng biểu diễn khác biến Do đó, kề với bốn ô khác Sự rút gọn khai triển tổng tích bốn biến thực cách nhận dạng khối gồm 2, 4, 16 ô biểu diễn hội sơ cấp tổ hợp lại Mỗi ô biểu diễn hội sơ cấp dùng để lập tích có biến đưa vào khai triển Cũng trường hợp đồ Karnaugh hai ba biến, mục tiêu cần phải nhận dạng khối lớn có chứa số cách dùng số khối, mà trước hết khối lớn 8.4.2 Phƣơng pháp Quine-McCluskey: 8.4.2.1 Mở đầu: Ta thấy đồ Karnaugh dùng để tạo biểu thức cực tiểu hàm Boole tổng tích Boole Tuy nhiên, đồ Karnaugh khó dùng số biến lớn bốn Hơn nữa, việc dùng đồ Karnaugh lại dựa việc rà soát trực quan để nhận dạng số hạng cần nhóm lại Vì nguyên nhân đó, cần phải có thủ tục rút gọn khai triển tổng tích khí hố Phương pháp Quine-McCluskey thủ tục Nó dùng cho hàm Boole có số biến Phương pháp W.V Quine E.J McCluskey phát triển vào năm 1950 Về bản, phương pháp Quine-McCluskey có hai phần Phần đầu tìm số hạng ứng viên để đưa vào khai triển cực tiểu tổng tích Boole mà ta gọi nguyên nhân nguyên tố Phần thứ hai xác định xem số ứng viên đó, số hạng thực dùng 8.4.2.2 Định nghĩa: Cho hai hàm Boole F G bậc n Ta nói G nguyên nhân F TG  TF, nghĩa G  F Dễ thấy hội sơ cấp dạng tổng chuẩn tắc F nguyên nhân F Hội sơ cấp A F gọi nguyên nhân nguyên tố F A xoá biến hội nhận đuợc khơng cịn nguyên nhân F Nếu F1, …, Fk nguyên nhân F TFi  TF ,  i  k Khi Tk  Fi i 1  k k TFi  TF Do  Fi i 1 nguyên nhân F i 1 137 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o - F Cho S hệ nguyên nhân F Ta nói hệ S đầy đủ F G , nghĩa TF  TG   GS GS 8.4.2.3 Mệnh đề: Hệ nguyên nhân nguyên tố hàm F hệ đầy đủ Chứng minh: Gọi S hệ nguyên nhân nguyên tố F Ta có TG  TF , g  S , Nên T G  G' TG  TF Giả sử dạng tổng chuẩn tắc hoàn toàn F F   GS nên TF    G 'S ' GS TG' G 'S ' Xét G' S ' , G’ nguyên nhân nguyên tố F cách xố bớt số biến G’ ta thu nguyên nhân nguyên tố G F Khi TG'  TG TG '  TG hay TF  TG Vì TF  TG hay F  G  G 'S '  GS Dạng tổng chuẩn tắc F   GS  GS  GS  G gọi dạng tổng chuẩn tắc thu gọn F GS 8.4.2.4 Phƣơng pháp Quine-McCluskey tìm dạng tổng chuẩn tắc thu gọn: Giả sử F hàm Boole n biến x1, x2, …, xn Mỗi hội sơ cấp n biến biểu diễn dãy n ký hiệu bảng {0, 1, −} theo quy ước: ký tự thứ i hay xi có mặt hội sơ cấp bình thường hay với dấu phủ định, cịn xi khơng có mặt ký tự − Chẳng hạn, hội sơ cấp biến x1, …, x6 x1x3 x4 x6 biểu diễn 0−11−0 Hai hội sơ cấp gọi kề biểu diễn nói chúng khác vị trí 0, Rõ ràng hội sơ cấp dán với phép dán Ax  A x  A chúng kề Thuật toán tiến hành sau: Lập bảng gồm nhiều cột để ghi kết dán Sau thực bước sau: Bƣớc 1: Viết vào cột thứ biểu diễn nguyên nhân hạng n hàm Boole F Các biểu diễn chia thành nhóm, biểu diễn nhóm có số ký hiệu nhóm xếp theo thứ tự số ký hiệu tăng dần Bƣớc 2: Lần lượt thực tất phép dán biểu diễn nhóm i với biểu diễn nhóm i+1 (i=1, 2, …) Biểu diễn tham gia phép dán ghi nhận dấu * bên cạnh Kết dán ghi vào cột Bƣớc 3: Lặp lại Bước cho cột không thu thêm cột Khi tất biểu diễn khơng có dấu * cho ta tất nguyên nhân nguyên tố F Thí dụ 9: Tìm dạng tổng chuẩn tắc thu gọn hàm Boole: F1  wx yz  wx yz  wx yz  wx yz  wx yz  wxyz  wxyz , 138 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o F2  wx y z  wx yz  wx yz  wx y z  wx yz  wxy z  wxyz 0001* 0101* 0011* 1001* 1011* 0111* 1111* 0−01* 00−1* −001* −011* 10−1* 01−1* 0−11* 1−11* −111* 0−−1 −0−1 −−11 0010* 0011* 1100* 1011* 1101* 1110* 1111* 001− −011 110−* 11−0* 1−11 11−1* 111−* 11−− Từ bảng ta có dạng tổng chuẩn tắc thu gọn F1 F2 là: F1  wz  xz  yz , F2  wx y  x yz  wyz  wx 8.4.2.5 Phƣơng pháp Quine-McCluskey tìm dạng tổng chuẩn tắc tối thiểu: Sau tìm dạng tổng chuẩn tắc thu gọn hàm Boole F, nghĩa tìm tất nguyên nhân nguyên tố nó, ta tiếp tục phương pháp QuineMcCluskey tìm dạng tổng chuẩn tắc tối thiểu (cực tiểu) F sau Lập bảng chữ nhật, cột ứng với cấu tạo đơn vị F (mỗi cấu tạo đơn vị hội sơ cấp hạng n dạng tổng chuẩn tắc hoàn toàn F) dòng ứng với nguyên nhân nguyên tố F Tại ô (i, j), ta đánh dấu cộng (+) nguyên nhân nguyên tố dòng i phần cấu tạo đơn vị cột j Ta nói nguyên nhân nguyên tố i phủ cấu tạo đơn vị j Một hệ S nguyên nhân nguyên tố F gọi phủ hàm F cấu tạo đơn vị F phủ thành viên hệ Dễ thấy hệ S phủ hàm F đầy đủ, nghĩa tổng thành viên S F Một nguyên nhân nguyên tố gọi cốt yếu thiếu hệ nguyên nhân nguyên tố phủ hàm F Các nguyên nhân nguyên tố cốt yếu tìm sau: cột có dấu +, xem dấu + thuộc dịng dịng ứng với nguyên nhân nguyên tố cốt yếu Việc lựa chọn nguyên nhân nguyên tố bảng đánh dấu, để dạng tổng chuẩn tắc tối thiểu, tiến hành theo bước sau Bƣớc 1: Phát tất nguyên nhân nguyên tố cốt yếu Bƣớc 2: Xoá tất cột phủ nguyên nhân nguyên tố cốt yếu 139 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o Bƣớc 3: Trong bảng cịn lại, xố nốt dịng khơng cịn dấu + sau có hai cột giống xố bớt cột Bƣớc 4: Sau bước trên, tìm hệ S nguyên nhân nguyên tố với số biến phủ cột lại Tổng nguyên nhân nguyên tố cốt yếu nguyên nhân nguyên tố hệ S dạng tổng chuẩn tắc tối thiểu hàm F Các bước 1, 2, có tác dụng rút gọn bảng trước lựa chọn Độ phức tạp chủ yếu nằm Bước Tình tốt nguyên nhân nguyên tố cốt yếu Trường hợp khơng phải lựa chọn hàm F có dạng tổng chuẩn tắc tối thiểu dạng tổng chuẩn tắc thu gọn Tình xấu khơng có ngun nhân ngun tố cốt yếu Trường hợp ta phải lựa chọn tồn bảng Thí dụ 10: Tìm dạng tổng chuẩn tắc tối thiểu hàm Boole cho Thí dụ w x yz w x yz wxyz wxyz w x yz + wz + + + xz + + + + yz Các nguyên nhân nguyên tố cốt yếu nên dạng tổng chuẩn tắc tối thiểu F1 là: F1  wz  xz  yz wx wxy x yz wyz w x yz + + wx yz + wxy z w x yz + + + w x yz + + wx y z + wx yz + wxy z + wxyz + + Các nguyên nhân nguyên tố cốt yếu nằm dòng Sau rút gọn, bảng dòng 3, cột Việc chọn S đơn giản: chọn hai nguyên nhân ngun tố cịn lại Vì ta hai dạng tổng chuẩn tắc tối thiểu là: F2  wx  wx y  x yz , F2  wx  wx y  wyz 140 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o - BÀI TẬP CHƢƠNG VIII: Cho S tập hợp ước nguyên dương 70, với phép tốn •, + ’ định nghĩa S sau: a • b = UCLN(a, b), a + b = BCNN(a, b), a’ = 70/a Chứng tỏ S với phép tốn •, + ’ lập thành đại số Boole Chứng minh trực tiếp định lý 6b, 7b, 8b (không dùng đối ngẫu để suy từ 6a, 7a, 8a) Chứng minh rằng: a) (a+b).(a+b’) = a; b) (a.b)+(a’.c) = (a+c).(a’+b) Cho hàm Boole F1, F2, F3 xác định bảng sau: x 0 0 1 1 y 0 1 0 1 z 1 1 F1 1 1 0 F2 1 0 1 F3 1 1 1 Vẽ mạch thực hàm Boole Hãy dùng cổng NAND để xây dựng mạch với đầu sau: a) x b) xy c) x+y d) x  y 141 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o Hãy dùng cổng NOR để xây dựng mạch với đầu cho Bài tập Hãy dùng cổng NAND để dựng mạch cộng bán phần Hãy dùng cổng NOR để dựng mạch cộng bán phần Dùng đồ Karnaugh, tìm dạng tổng chuẩn tắc tối thiểu (khai triển cực tiểu) hàm Boole ba biến sau: a) F  x yz  x yz b) F  xyz  xy z   x yz  x y z c) F  xy z   x yz  x y z  x yz  x yz d) F  xyz  x yz  x y z  x yz  x y z  x y z 10 Dùng đồ Karnaugh, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole bốn biến sau: a) F  wxyz  wx yz  wx y z  wx y z  wx yz b) F  wxy z  wx yz  wx yz  wx yz  wx y z  wx yz c) F  wxyz  wxy z  wx yz  wx yz  wx y z  wx yz  wx y z  wx yz d) F  wxyz  wxy z  wx yz  wx yz  wx y z  wxyz  wx yz  wx y z  wx yz 11 Dùng phương pháp Quine-McCluskey, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole ba biến cho Bài tập vẽ mạch thực dạng tối thiểu tìm 12 Dùng phương pháp Quine-McCluskey, tìm dạng tổng chuẩn tắc tối thiểu hàm Boole bốn biến cho Bài tập vẽ mạch thực dạng tối thiểu tìm 13 Hãy giải thích làm dùng đồ Karnaugh để rút gọn dạng tích chuẩn tắc (tích tổng) hồn tồn hàm Boole ba biến (Gợi ý: Đánh dấu số tất tuyển sơ cấp biểu diễn tổ hợp khối tuyển sơ cấp.) 14 Dùng phương pháp Bài tập 13, rút gọn dạng tích chuẩn tắc hồn tồn: F  ( x  y  z )( x  y  z )( x  y  z )( x  y  z) 142 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o - Học phần : Toán rời rạc Mà số môn học : Số đơn vị học trình : ĐVHT Trình độ thuéc khèi kiÕn thøc : KiÕn thøc c¬ së Phân bố thời gian : Lên lớp 60 tiết Điều kiện tiên : Đà học Mô tả vắn tắt nội dung : Điều kiện tiên : Mô tả vắn tắt nội dung : Cung cấp kiến thức về: tập hợp mệnh đề, hợp tổ hợp, quan hệ hàm số, đồ thị, chuyển mạch véctơ hàm chuyển mạch vectơ, hàm lôgíc đa trị Nhiệm vụ sinh viên: Tham dự đầy đủ buổi học làm tập, kiểm tra thi kết thúc môn học theo quy chế BGD&ĐT Tài liệu học tập : Toán rời rạc ứng dụng tin học Tài liệu tham khảo : Kenneth H Rosen Dicrete mathematics and aplications Mc Graw- Hill 1994 Kenneth A Ross Charles R.B Wright Dicrete mathematics Prentice Hall.1998 10 Tiêu chuẩn đánh giá sinh viên : 11 Thang điểm thi : 10/10 12 Mục tiêu môn học: Trang bị kiến thức sở toán học ứng dụng tin häc 13 Néi dung chi tiÕt: 13.1 Bè trí thời gian: Ch-ơng Lý thuyết (tiết) Tên ch-ơng Tập hợp mệnh đề Chính hợp tổ hợp Thực hành 143 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng tốn rời rạc - Trường Cao đẳng Cơng nghiệp Nam Định - ฀o * * *O * * * o 10 11 Quan hệ hàm số Đồ thị Cây tập cắt Đại số chuuyển mạch véctơ hàm chuyển mạch véctơ Các phép tính đạo hàm vi phân Boole Phân giải hàm chuyển mạch Các hàm chuyển mạch đặc biệt Các hàm lôgíc đa trị Các cấu trúc Cộng 5 5 60 13.2 Néi dung chi tiết Ch-ơng I: Tập hợp mệnh đề 1.1 Khái niệm chung tập hợp 1.2 Tập hữu hạn tập vô hạn 1.3 Các phép tính tập hợp 1.4 Các tiên đề đại số tập hợp 1.5 Phép tính luỹ thừa tập hợp 1.6 Nguyên lý bao gồm loại trừ 1.7 Mệnh đề Ch-ơng 2: Chỉnh hợp tổ hợp 2.1 Khái niệm luật cộng luật nhân 2.2 Chỉnh hợp 2.3 Tổ hợp Ch-ơng 3: Quan hệ hàm số 3.1 Quan hệ hai hai tập hợp 3.2 Quan hệ hai tập hợp tính chất chúng 3.3 Quan hệ t- ơng đ- ơng phân hoạch 3.4 Quan hệ xếp , tập xếp đại số 3.5 Dàn hệi thống đại số 3.6 Đại số Bool hàm Bool Ch-ơng 4: Đồ thị 4.1 Khái niệm chung 4.2 Đ- ờng mạch 4.3 Đ- ờng ngắn trọng đồ 4.4 §- êng Euler 4.5 §- êng Hamilton 4.6 §å thị phẳng Ch-ơng 5: Cây tập cắt 5.1 Cây 144 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở Bài giảng toán rời rạc - Trường Cao đẳng Công nghiệp Nam Định - ฀o * * *O * * * o - 5.2 Cây có gốc 5.3 Cây nhị phân 5.4 Các mạng giao thông Ch-ơng 6: Đại số chuyển mạch véc tơ hàm chuyển mạch véctơ 6.1 Đại số chuyển mạch hàm chuyển mạch 6.2 Phép toán bù tổng hợp phép toán quay 6.3 Các tính chất đại số chuyển mạch 6.4 Những vấn đề tối thiểu hoá biểu thức Boole Ch-ơng 7: Các phép tính đạo hàm vi phân Boole 7.1 Đạo hàm riêng 7.2 Khai triển chuỗi hàm Boole 7.3 Đạo hàm toàn phần vi phân toàn phần 7.4 Ph- ơng pháp đồ thị ph- ơng pháp thuật toán để tính đạo hàm Boole Ch-ơng 8: Phân giải hàm chuyển mạch 8.1 Phân giải đơn tách biệt 8.2 Các dạng phân giải khác 8.3 ứng dụng đạo hàm Boole Ch-ơng 9: Các hàm chuyển mạch đặc biệt 9.1 Các hàm đơn điệu 9.2 Các hàm ng- ỡng 9.3 Các hàm đối xứng 9.4 Các hệ hàm đầy đủ Ch-ơng 10: Các hàm lôgíc đa trị 10.1 Các hàm lôgíc m trị 10.2 Lôgíc mờ lôgíc m lớp 10.3 Phân tích hàm lôgíc m lớp Ch-ơng 11: Các cấu trúc 11.1 Nhóm nửa nhóm 11.2 Các phần tử sinh 11.3 Tập kê định lý Lagrange 11.4 Nhóm hoán vị định lý Burnside 11.5 Vành, miền nguyên, tr- ờng 145 By : Nguyễn Tiến Thịnh – Khoa Khoa học Cơ kỹ thuật sở

Ngày đăng: 25/07/2023, 11:10