Lời giải của bài toán trên là vị trí của số hạng của bảng liệt kê có giá trị bằng x tức là i sẽ trong bảng liệt kê... 1.1.2 ĐỘ PHỨC TẠP CỦA THUẬT TOÁN• Thước đo hiệu quả của một thuật to
Trang 1CƠ SỞ TOÁN HỌC CHO TIN HỌC
Nền tảng cơ bản cho các ứng dụng tin học
BỘ MÔN CÔNG NGHỆ THÔNG TIN
• Chương 1 Tổng quan về thuật toán và phương
pháp đếm
• Chương 2 Logic và ứng dụng
• Chương 3 Đại số Boole
• Chương 4 Lý thuyết đồ thị
• Chương 5 Cây và ứng dụng của cây
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 2
• Kenneth H Rosen, Discrete Mathematics and It’s
Applications, 7thEdition McGraw Hill, USA, 2019
1.2.4 Quan hệ chia để trịBài tập Chương 121/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 5
NỘI DUNG CHƯƠNG 1
1.1.1 KHÁI NIỆM THUẬT TOÁN
• Thuật toán là một bảng liệt kê các chỉ dẫn (hayquy tắc) cần thực hiện theo từng bước xác địnhnhằm giải một bài toán đã cho
• Có nhiều cách trình bày thuật toán: dùng ngônngữ tự nhiên, ngôn ngữ lưu đồ (sơ đồ khối), ngônngữ lập trình
Trang 2Các đặc trưng của thuật toán
• Đầu vào (Input): Một thuật toán có các giá trị đầu vào từ một tập đã
được chỉ rõ.
• Đầu ra (Output): Từ mỗi tập các giá trị đầu vào, thuật toán sẽ tạo ra các
giá trị đầu ra Các giá trị đầu ra chính là nghiệm của bài toán.
• Tính dừng: Sau một số hữu hạn bước thuật toán phải dừng.
• Tính xác định: Ở mỗi bước, các bước thao tác phải hết sức rõ ràng,
không gây nên sự nhập nhằng.
• Tính hiệu quả: Trước hết thuật toán cần đúng đắn, nghĩa là sau khi
đưa dữ liệu vào thuật toán hoạt động và đưa ra kết quả như ý muốn.
• Tính phổ dụng: Thuật toán có thể giải bất kỳ một bài toán nào trong lớp
các bài toán Cụ thể là thuật toán có thể có các đầu vào là các bộ dữ
liệu khác nhau trong một miền xác định.
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 7
THUẬT TOÁN TÌM KIẾM
• Bài toán tìm kiếm: Xác định phần tử x trong một
bảng liệt kê các phần tử phân biệt a1,a2, , an
hoặc xác định rằng nó không có mặt trong bảng
liệt kê đó Lời giải của bài toán trên là vị trí của số
hạng của bảng liệt kê có giá trị bằng x (tức là i sẽ
trong bảng liệt kê)
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 8
Thuật toán tìm kiếm tuyến tính
int LinearSearch(int x, int a[], int N)
//i<n tim thay tai vi tri I
//i=n không tìm thấy x
A: 4 5 2 7 9 11 //N=6
X=12
Thuật toán tìm kiếm nhị phân
• Thuật toán này có thể được dùng khi bảng liệt kê
có các số hạng được sắp theo thứ tự tăng dần
Chẳng hạn, nếu các số hạng là các số thì chúngđược sắp từ số nhỏ nhất đến số lớn nhất hoặcnếu chúng là các từ hay xâu ký tự thì chúng đượcsắp theo thứ tự từ điển Thuật toán thứ hai này gọi
là thuật toán tìm kiếm nhị phân
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 10
Thuật toán tìm kiếm nhị phânprocedure tìm kiếm nhị phân (x: integer, a 1 ,a 2 , ,an: integers tăng dần)
i := 1 {i là điểm mút trái của khoảng tìm kiếm}
j := n {j là điểm mút phải của khoảng tìm kiếm}
while i < j begin m:= [(i+j)/2]
if x>a m then i:=m+1 else j := m
end
if x = ai then location := i else location := 0 {location là chỉ số dưới của số hạng bằng x hoặc 0 nếu không tìm thấy x}
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 11
Thuật toán tìm kiếm nhị phânint BinarySearch (int x,int a[], int N)
{ int i,j,mid;
i := 0; //{i là điểm mút trái của khoảng tìm kiếm}
j := N-1; // {j là điểm mút phải của khoảng tìm kiếm}
while (i <= j) { mid= [(i+j)/2];
if (a[mid]==x) return mid;
if x>a[mid] i=m+1 else j = m-1;
} return N;
} // Nếu tìm thấy x hàm trả lại gtri < N // Nếu ko tìm thấy x hàm trả lại gtri = N
Trang 31.1.2 ĐỘ PHỨC TẠP CỦA THUẬT TOÁN
• Thước đo hiệu quả của một thuật toán là thời gian mà máy tính
sử dụng để giải bài toán theo thuật toán đang xét, khi các giá trị
đầu vào có một kích thước xác định.
• Thước đo thứ hai là dung lượng bộ nhớ đòi hỏi để thực hiện
thuật toán khi các giá trị đầu vào có kích thước xác định.
• Các vấn đề như thế liên quan đến độ phức tạp tính toán của một
thuật toán.
• Sự phân tích thời gian cần thiết để giải một bài toán có kích
thước đặc biệt nào đó liên quan đến độ phức tạp thời gian của
thuật toán.
• Sự phân tích bộ nhớ cần thiết của máy tính liên quan đến độ
phức tạp không gian của thuật toán.
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 13
Tính độ phức tạp của thuật toán
• Xét trò chơi với n đĩa ban đầu ở cọc A (cọc B và C trống)
• Gọi Snlà số lần chuyển đĩa để chơi xong trò chơi với n đĩa
• Nếu n=1 thì rõ ràng là S1=1
• Nếu n>1 thì trước hết ta chuyển n-1 đĩa bên trên sang cọc
B (giữ yên đĩa thứ n ở dưới cùng của cọc A) Số lần chuyển
n-1 đĩa là Sn-1 Sau đó ta chuyển đĩa thứ n từ cọc A sang
cọc C Cuối cùng, ta chuyển n-1 đĩa từ cọc B sang cọc C
(số lần chuyển là Sn-1)
• Như vậy, số lần chuyển n đĩa từ A sang C là:
• Sn=Sn-1+1+Sn=2Sn-1+1=2(2Sn-2+1)+1=22Sn-2+2+1= =2
n-1S1+2n-2+ +2+1=2n1
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 14
ĐỘ PHỨC TẠP CỦA THUẬT TOÁN
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 16
1.1.3 MỘT SỐ THUẬT TOÁN CƠ BẢN
THUẬT TOÁN ĐỆ QUY
• Đôi khi chúng ta có thể quy việc giải bài toán vớitập các dữ liệu đầu vào xác định về việc giải cùngbài toán đó nhưng với các giá trị đầu vào nhỏ hơn
• Trong lập trình, trong 1 hàm lại gọi đến chính hàmđó
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 17
VD THUẬT TOÁN ĐỆ QUY
• Tìm kiếm nhị phân theo đệ quy
• Giai thừa
• v.v
Trang 4THUẬT TOÁN SẮP XẾP
• Bài toán: Cho dãy số nguyên a1, a2, …aN Cần sắp
xếp dãy đã cho theo thứ tự (tang hay giảm dần)
• Lý thuyết tổ hợp là một phần quan trọng của toán học rời rạc
chuyên nghiên cứu sự phân bố các phần tử vào các tập hợp
• Thông thường các phần tử này là hữu hạn và việc phân bố
chúng phải thoả mãn những điều kiện nhất định nào đó, tùy theo
yêu cầu của bài toán cần nghiên cứu
• Mỗi cách phân bố như vậy gọi là một cấu hình tổ hợp được
nghiên cứu từ thế kỷ 17, khi những câu hỏi về tổ hợp được nêu
ra trong những công trình nghiên cứu các trò chơi may rủi
• Liệt kê, đếm các đối tượng có những tính chất nào đó là một
phần quan trọng của lý thuyết tổ hợp
• Cần phải đếm các đối tượng để giải nhiều bài toán khác nhau
Khi đó số cách làm một trong k việc đó là n1+n2+ + nk
• VD: Một sinh viên có thể chọn bài thực hành máytính từ một trong ba danh sách tương ứng có 23,
15 và 19 bài Vì vậy, theo quy tắc cộng có 23 + 15+ 19 = 57 cách chọn bài thực hành
Quy tắc cộng
• Giá trị của biến m bằng bao nhiêu sau khi đoạnchương trình sau được thực hiện?
m := 0for i1:= 1 to n1
Trang 5Quy tắc cộng
• Giá trị khởi tạo của m bằng 0 Khối lệnh này gồm k
vòng lặp khác nhau Sau mỗi bước lặp của từng
vòng lặp giá trị của k được tăng lên một đơn vị
Gọi Tilà việc thi hành vòng lặp thứ i Có thể làm Ti
bằng nicách vì vòng lặp thứ i có nibước lặp Do
các vòng lặp không thể thực hiện đồng thời nên
theo quy tắc cộng, giá trị cuối cùng của m bằng số
cách thực hiện một trong số các nhiệm vụ Ti, tức
là m = n1+n2+ + nk
25
Quy tắc cộng
26
• Quy tắc cộng có thể phát biểu dưới dạng của ngôn
ngữ tập hợp như sau: Nếu A1, A2, , Ak là các tập
hợp đôi một rời nhau, khi đó số phần tử của hợp các
tập hợp này bằng tổng số các phần tử của các tập
thành phần Giả sử Tilà việc chọn một phần tử từ
tập Aivới i=1,2, , k Có |Ai| cách làm Tivà không có
hai việc nào có thể được làm cùng một lúc
• Giả sử một nhiệm vụ nào đó được tách ra thành k
việc T1, T2, , Tk Nếu việc Ticó thể làm bằng ni
cách sau khi các việc T1, T2, Ti-1đã được làm,
khi đó có n1.n2 nkcách thi hành nhiệm vụ đã cho
Quy tắc nhân – VD1
• Người ta có thể ghi nhãn cho những chiếc ghế trongmột giảng đường bằng một chữ cái và một số nguyêndương không vượt quá 100 Bằng cách như vậy,nhiều nhất có bao nhiêu chiếc ghế có thể được ghinhãn khác nhau?
• Thủ tục ghi nhãn cho một chiếc ghế gồm hai việc, gánmột trong 26 chữ cái và sau đó gán một trong 100 sốnguyên dương Quy tắc nhân chỉ ra rằng có26.100=2600 cách khác nhau để gán nhãn cho mộtchiếc ghế Như vậy nhiều nhất ta có thể gán nhãn cho
2600 chiếc ghế
28
Quy tắc nhân – VD2
• Có bao nhiêu xâu nhị phân có độ dài n
• Mỗi một trong n bit của xâu nhị phân có thể chọnbằng hai cách vì mỗi bit hoặc bằng 0 hoặc bằng 1
Bởi vậy theo quy tắc nhân có tổng cộng 2nxâu nhịphân khác nhau có độ dài bằng n
29
Nguyên lý bù trừ
• Khi hai công việc có thể được làm đồng thời, takhông thể dùng quy tắc cộng để tính số cách thựchiện nhiệm vụ gồm cả hai việc Để tính đúng sốcách thực hiện nhiệm vụ này ta cộng số cách làmmỗi một trong hai việc rồi trừ đi số cách làm đồngthời cả hai việc Ta có thể phát biểu nguyên lý đếmnày bằng ngôn ngữ tập hợp Cho A1, A2là hai tậphữu hạn, khi đó
• |A1 A2| = |A1| + |A2| |A1 A2|
Trang 6Nguyên lý bù trừ
Từ đó với ba tập hợp hữu hạn A1, A2, A3, ta có:
|A1 A2 A3| = |A1| + |A2| + |A3| |A1 A2| |A2 A3|
|A3 A1| - |A1 A2 A3|,
và bằng quy nạp, với k tập hữu hạn A1, A2, , Akta có:
| A1 A2 Ak| = N1 N2+ N3 + (1)k-1Nk,
trong đó Nm(1 m k) là tổng phần tử của tất cả các giao
m tập lấy từ k tập đã cho, nghĩa là
• Bây giờ ta đồng nhất tập Am (1 <=m <= k) với tính chất Am
cho trên tập vũ trụ hữu hạn U nào đó và đếm xem có bao
nhiêu phần tử của U sao cho không thỏa mãn bất kỳ một
tính chất Am nào Gọi là số cần đếm, N là số phần tử
của U Ta có:
• trong đó Nm là tổng các phần tử của U thỏa mãn m tính
chất lấy từ k tính chất đã cho Công thức này được gọi là
nguyên lý bù trừ Nó cho phép tính qua các Nm trong
trường hợp các số này dễ tính toán hơn
32
𝑁N
= N | A1 A2 Ak| = N N1+ N2 + (1)kNk,
𝑁
𝑁
Nguyên lý bù trừ
• Ví dụ: Có n lá thư và n phong bì ghi sẵn địa chỉ Bỏ ngẫu
nhiên các lá thư vào các phong bì Hỏi xác suất để xảy ra
không một lá thư nào đúng địa chỉ
• Mỗi phong bì có n cách bỏ thư vào, nên có tất cả n! cách
bỏ thư Vấn đề còn lại là đếm số cách bỏ thư sao cho
không lá thư nào đúng địa chỉ Gọi U là tập hợp các cách
bỏ thư và Amlà tính chất lá thư thứ m bỏ đúng địa chỉ Khi
đó theo công thức về nguyên lý bù trừ ta có:
• trong đó Nm(1 m n) là số tất cả các cách bỏ thư sao
cho có m lá thư đúng địa chỉ
𝑁 = n! N1+ N2 + (1)nNn,
NGUYÊN LÝ DIRICHLET
• Giả sử có một đàn chim bồ câu bay vào chuồng
Nếu số chim nhiều hơn số ngăn chuồng thì ít nhấttrong một ngăn có nhiều hơn một con chim
Nguyên lý này dĩ nhiên là có thể áp dụng cho cácđối tượng không phải là chim bồ câu và chuồngchim
• Mệnh đề (Nguyên lý): Nếu có k+1 (hoặc nhiềuhơn) đồ vật được đặt vào trong k hộp thì tồn tạimột hộp có ít nhất hai đồ vật
34
NGUYÊN LÝ DIRICHLET - VD
• 1) Trong bất kỳ một nhóm 367 người thế nào cũng có
ít nhất hai người có ngày sinh nhật giống nhau bởi vìchỉ có tất cả 366 ngày sinh nhật khác nhau
• 2) Trong kỳ thi học sinh giỏi, điểm bài thi được đánhgiá bởi một số nguyên trong khoảng từ 0 đến 100 Hỏirằng ít nhất có bao nhiêu học sinh dự thi để cho chắcchắn tìm được hai học sinh có kết quả thi như nhau?
Theo nguyên lý Dirichlet, số học sinh cần tìm là 102, vì ta
có 101 kết quả điểm thi khác nhau
35
Hoán vịĐịnh nghĩa Ta gọihoán vị từ nphần tử của X là bộcó thứ tựgồm nthành phần, mỗi thành phần đều là phần tử của X,các thành phần khácnhau từng đôi
Ví dụ: X = {a, b, c}, khi đó các hoán vị của X là:
Trang 7Hoán vị
• Định nghĩa Ta gọihoán vị từ nphần tử của X là bộcó thứ tựgồm n
thành phần, mỗi thành phần đều là phần tử của X,các thành phần
khác nhau từng đôi
• Ký hiệu số lượng hoán vị từ n phần tử là Pn
• Theo định nghĩa, một hoán vị từ n phần tử của X có thể biểu diễn bởi
(a1, a2, , an), ai X, i = 1, 2, , n, aiaj, ij
• Định lý 1
Pn n (n 1) 2 1 n!
Hoán vị
Ví dụ 1 6 người đứng xếp thành một hàng ngang để chụp ảnh Hỏi có thể bố trí
bao nhiêu kiểu?
Giải: Mỗi kiểu ảnh là một hoán vị của 6 người Từ đó nhận được số kiểu ảnh có thể bố
trí là 6! = 720.
Ví dụ 2 Cần bố trí việc thực hiện n chương trình trên một máy vi tính Hỏi có bao
nhiêu cách?
Giải: đánh số các chương trình bởi 1, 2, , n Mỗi cách bố trí việc thực hiện các
chương trình trên máy có thể biểu diễn bởi 1 hoán vị của 1, 2,
…, n Từ đó suy ra số cách bố trí cần tìm là n!
Ví dụ 3 Có bao nhiêu cách bố trí n thợ thực hiện n việc sao cho mỗi thợ thực hiện
một việc và mỗi việc do đúng một thợ thực hiện
Giải: n!
Chỉnh hợp lặp
Định nghĩa Ta gọichỉnh hợp lặp chập m từ nphần tử của X là bộcó thứ
tựgồm m thành phần, mỗi thành phần đều là phần tử của X
• Ví dụ: X = {a, b, c}, khi đó chỉnh hợp lặp chập 2 từ 3 phần tử của X là:
Ví dụ 1 Tính số dãy nhị phân độ dài n
• Giải: Mỗi dãy nhị phân độ dài n là một bộ gồm n thành phần, trong đó mỗi thành phần chỉ nhận một trong hai giá trị (1 hoặc 0)
Từ đó suy ra số các dãy nhị phân độ dài n là 2n.xx…x
• Giải: 4100hay 1004?
• Mỗi cách phân bố cần tìm có thể biểu diễn bởi bộ có thứ tự gồm 100thành phần (b1, , b100) trong đó bi {ACESS, FOXPRO, EXCEL,LOTUS} là nhóm thực tập của sinh viên thứ i Từ đó suy ra số cáchphân bố cần đếm là 4100
Trang 8Chỉnh hợp không lặp
• Định nghĩa Ta gọichỉnh hợp không lặp chập m từ nphần tử của X là
bộcó thứ tựgồm m thành phần, mỗi thành phần đều là phần tử của X,
• Định nghĩa Ta gọichỉnh hợp không lặp chập m từ nphần tử của X là
bộcó thứ tựgồm m thành phần, mỗi thành phần đều là phần tử của X,
các thành phần khác nhau từng đôi
• Ký hiệu số lượng chỉnh hợp không lặp chập m từ n phần tử là 𝑃 Rõ
ràng, để tồn tại chỉnh hợp không lặp, thì m n
• Theo định nghĩa, một chỉnh hợp không lặp chập m từ n phần tử của X
có thể biểu diễn bởi
(a1, a2, , am), ai X, i = 1, 2, , m, aiaj, ij
• Việc đếm số lượng chỉnh hợp không lặp chập m từ n phần tử có thể
thực hiện theo nguyên lý nhân Ta có
• Định lý 2
Chỉnh hợp không lặp
Ví dụ 1 Có bao nhiêu cách xếp 4 học sinh vào ngồi sau một cái bàn có 10 chỗ
ngồi với điều kiện không được phép ngồi lòng.
• Giải Đánh số các học sinh từ 1 đến 4, các chỗ ngồi từ 1 đến 10 Mỗi cách
xếp học sinh cần đếm có thể biểu diễn bởi bộ có thứ tự (g 1 , g 2 , g 3 , g 4 ), trong
đó g i {1, 2, , 10} là chỗ ngồi của học sinh i Từ điều kiện đầu bài g i g j ,
ij; do đó mỗi cách xếp cần đếm là một chỉnh hợp không lặp chập 4 từ 10.
Vậy số cách xếp cần đếm là 𝑃 = 10!/(10-4)!= 10.9.8.7 = 5040
Chú ý: Ta cũng có thể lập luận trực tiếp theo nguyên lý nhân:
• Ta lần lượt xếp các học sinh vào chỗ ngồi.
• Ví dụ: X = {a, b, c}, khi đó tổ hợp chập 2 từ 3 phần tử của X là:
• Ký hiệu số lượng tổ hợp chập m từ n phần tử là 𝐶 (đôi khi ta sẽ sửdụng ký hiệu C(n,m))
• Theo định nghĩa, một tổ hợp chập m từ n phần tử của X có thể biểudiễn bởibộ không có thứ tự
)
• C(n,m) được gọi là hệ số tổ hợp
• Khi nhận xét rằng, giá trị của phép chia trong công thức của định lý
3 là một số nguyên, ta nhận được một kết quả lý thú trong số học:
Tích của k số tự nhiên liên tiếp bao giờ cũng chia hết cho k!
Trang 9Tổ hợp
• Việc đếm các tổ hợp có khó khăn hơn so với việc đếm các cấu hình đã trình bày, tuy
nhiên cách đếm dưới đây cho biết cách vận dụng các nguyên lý với các kết quả đếm
đã biết trong việc đếm 1 cấu hình mới.
• Xét tập hợp tất cả các chỉnh hợp không lặp chập m của n phần tử Chia chúng thành
những lớp sao cho hai chỉnh hợp thuộc cùng một lớp chỉ khác nhau về thứ tự Rõ
ràng các lớp này là 1 phân hoạch trên tập đang xét và mỗi lớp như thế là tương ứng
với 1 tổ hợp chập m của n Số chỉnh hợp trong mỗi lớp là bằng nhau và bằng m! (Số
hoán vị) Số các lớp là bằng số tổ hợp chập m của n Theo nguyên lý cộng, tích của
m! với số này là bằng số các chỉnh hợp không lặp chập m của n, nghĩa là bằng
Giải: Cứ 2 đội thì có 1 trận Từ đó suy ra số trận đấu sẽ bằng số cách
chọn 2 đội từ n đội, nghĩa là bằng
C(n,2) = n(n-1)/2
Ví dụ 2: Một câu lạc bộ có 25 thành viên
a Có bao nhiêu cách chọn ra 4 thành viên của câu lạc bộ để lập ra làm
thành ban chấp hành câu lạc bộ?
Chọn 4 thành viên nàykhông quan tâm thứ tựtổ hợp:
b Có bao nhiêu cách chọn ra 1 chủ tịch, 1 phó chủ tịch, 1 thư kí và 1 thủ quĩ?
Chọn 4 thành viên quân tâm đến thứ tự chỉnh hợp không lặp:
HỆ THỨC TRUY HỒI
• Định nghĩa 1: Hệ thức truy hồi (hay công thức truy
hồi) đối với dãy số {an} là công thức biểu diễn anqua
một hay nhiều số hạng đi trước của dãy Dãy số được
gọi là lời giải hay nghiệm của hệ thức truy hồi nếu các
số hạng của nó thỏa mãn hệ thức truy hồi này
• Ví dụ (Lãi kép): Giả sử một người gửi 10.000 đô la
vào tài khoản của mình tại một ngân hàng với lãi suất
kép 11% mỗi năm Sau 30 năm anh ta có bao nhiêu
tiền trong tài khoản của mình?
• Pn= Pn-1+ 0,11Pn-1= (1,11)Pn-1
• với điều kiện đầu P0= 10.000 đô la Từ đó suy ra
• Pn = (1,11)n * 10.000 Thay n = 30 cho ta P30 =228922,97 đô la
• Chẳng hạn, ta tiến hành việc tìm kiếm nhị phân bằngcách rút gọn việc tìm kiếm một phần tử trong một danhsách tới việc tìm phần tử đó trong một danh sách có
độ dài giảm đi một nửa Ta rút gọn liên tiếp như vậycho tới khi còn lại một phần tử
• Đệ quy gắn liền với quan hệ chia để trị
53
• Ví dụ (Bài toán tháp Hà nội) Trò chơi tháp Hà nộiđược trình bày như sau: “Có 3 cọc a, b, c Trêncọc a có một chồng gồm n cái đĩa đường kínhgiảm dần từ dưới lên trên Cần phải chuyển chồngđĩa từ cọc a sang cọc c tuân thủ qui tắc:
• mỗi lần chỉ chuyển 1 đĩa
• chỉ được xếp đĩa có đường kính nhỏ hơn lên trênđĩa có đường kính lớn hơn Trong quá trình chuyểnđược phép dùng cọc b làm cọc trung gian”
Xây dựng công thức đệ qui
Trang 10CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1
1 Trình các khái niệm: Thuật toán, độ phức tạp thuật toán?
2 Trình bày về các phép đếm: Khái niệm, cho VD minh họa?
a) Có bao nhiêu số có 3 chữ số khác nhau
b) Có bao nhiêu số chẵn có 3 chữ số khác nhau
55
CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1
Bài 3 Một đội bóng đá có 20 cầu thủ Cần chọn 11
cầu thủ, phân vào 11 vị trí trên sân để thi đấu chính
thức Hỏi có mấy cách chọn nếu:
a) Ai cũng có thể chơi ở bất kỳ vị trí nào?
b) Chỉ 1 cầu thủ được chỉ định làm thủ môn, các cầu
thủ khác chơi mọi vị trí còn lại
c) Có 3 cầu thủ có thể làm thủ môn được, các cầu thủ
khác chơi mọi vị trí
56
Chương 2 LOGIC VÀ ỨNG
DỤNG
BM Công nghệ thông tin
Bài giảng Cơ sở toán học cho tin học
2.1.Logic mệnh đề2.1.1 Các phép toán và công thức2.1.2 Điều kiện đồng nhất2.1.3 Các quy tắc suy diễn trong logic mệnh đề2.2 Logic vị từ
2.2.1 Một số khái niệm2.2.2 Dạng chuẩn tắc hội và dạng chuẩn tắc tuyển2.2.3 Nguyên lý quy nạp
2.2.4 Quy tắc suy diễn trong logic vị từ cấp 121/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 58Nội dung
– 3 là số chẵn phải không?(ko là mệnh đề)
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 59
–Chân trị đúng và chân trị sai sẽ được ký hiệu lần lượt là1(hayĐ,T) và0(hayS,F)
Trang 11liên từ (và, hay, khi và chỉ
khi,…) hoặc trạng từ “không”
– Nếu 3>4 thì trời mưa– An đang xem phim hay Anđang học bài
– Hôm nay trời đẹp và1+1=3
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 62
Các phép toán logic trên các mệnh đề
a Phép phủ định:phủ định của mệnh đề P được ký hiệu
là ¬P hay P đọc là“không”P hay“phủ định của”P)
Các phép toán logic trên các mệnh đề
b Phép hội: của hai mệnh đề P, Q được kí hiệubởi PQ (đọc là “P và Q”), là mệnh đề được địnhbởi :P Q đúng P và Q đồng thời đúng
Bảng chân trị :
Ví dụ:
– 3>4 và Trần Hưng Đạo là vị tướng – 2 là số nguyên tố và là số chẵn – An đang hát và uống nước 21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 64
Các phép toán logic trên các mệnh đề
c Phép tuyển:của hai mệnh đề P, Q được kí hiệubởi PQ(đọc là “P hay Q”), là mệnh đề được địnhbởi :PQ sai P và Q đồng thời sai
Bảng chân trị :
Ví dụ:
– 3>4 hay 3>5 – 2 là số nguyên tố hay là số chẵn – “An đang giúp mẹ lau nhà hay rửa chén”
– “Ba đang đọc báo hay xem phim”
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 65
Các phép toán logic trên các mệnh đề
bởiP Q (đọc là “P kéo theo Q” hay “Nếu P thì Q” hay
“P là điều kiện đủ của Q” hay “Q là điều kiện cần của P”)
là mệnh đề được định bởi: P Q sai P đúng và Q saiBảng chân trị :
Ví dụ:
– Nếu 1 = 2 thì Lenin là người Việt Nam – Nếu trái đất quay quanh mặt trời thì 1+3=5 – Nếu 2+1 = 0 thì tôi là chủ tịch nước
Trang 12Các phép toán logic trên các mệnh đề
e Mệnh đề tương đương (phép kéo theo 2 chiều): Mệnh đề
P tương đương Q được kí hiệu bởi P Q (đọc là “P nếu và chỉ
nếu Q” hay “P khi và chỉ khi Q” hay “P là điều kiện cần và đủ của
– 6 chia hết cho 3 khi và chi khi 6 chia hết cho 2
– London là thành phố nước Anh nếu và chỉ nếu TP HCM là thủ đô của VN
– 3>4 là điều kiện cần và đủ của 5 >6
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 67
Các phép toán logic trên các mệnh đề
f Phép loại trừ (XOR):của hai mệnh đề P, Q được kí
hiệu bởiP Q (đọc là “Loại trừ P hoặc loại trừ Q” hay
“Hoặc là P đúng hoặc là Q đúng nhưng không đồng thời
cả 2 là đúng” là mệnh đề được định bởi: P Q sai P
và Q cùng trân trị
Bảng chân trị :
Ví dụ:
– I will earn an A in this subject or I will drop this subject
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 68
Trang 135 Luật phân phối
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 74
while( A[i]==0 OR A[i]>= 10)
• Giả sử trong chương trình có câu lệnh sau :
while( (i<size AND A[i]>10) OR (i<size AND A[i]<0) OR NOT (A[i]!= 0 AND NOT (A[i]>= 10)))
• Trước hết chúng ta sẽ áp dụng công thức De Morgan để biến đổi biểu thức sau cùng như sau :
while( (i<size AND A[i]>10) OR (i<size AND A[i]<0) OR (A[i]==0 OR A[i]>= 10) )
• Sau đó, chúng ta lại sử dụng công thức về tính phân bố của phép hội đối với phép tuyển để rút gọn biểu thức phía trước.
Ta có câu lệnh sau cùng là :
while( (i<size AND ( A[i]>10 OR A[i]<0) ) OR (A[i]==0 OR A[i]>= 10) )
III Qui tắc suy diễn
• Trong các chứng minh toánhọc, xuất phát từ một sốkhẳng định đúng p, q,r…(tiền đề),ta áp dụng cácqui tắc suy diễn để suy rachân lí của một mệnh đềh
mà ta gọi làkết luận
• Nói cách khác, dùng cácqui tắc suy diễn để chứngminh: (p q r …) có hệquả logic làh
• Ta thường mô hình hóaphép suy luận đó dướidạng:
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 76
pqr
… ℎ
Các qui tắc suy diễn
1 Qui tắc khẳng định(Modus Ponens)
• Qui tắc này được thể hiện bằng hằng đúng:
• Hoặc dưới dạng sơ đồ
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 77
p q𝑝 𝑞[(p q) 𝑝 ] 𝑞
Các qui tắc suy diễn
Nếu An học chăm thì An họctốt
Mà An học chăm
An học tốt
Trời mưa thì đường ướt
Mà chiều nay trời mưa
Chiều nay đường ướt
• Hình vuông là hình bìnhhành
• Mà hình bình hành có haiđường chéo cắt nhau tạitrung điểm mỗi đường
Suy ra hình vuông có haiđường chéo cắt nhau tạitrung điểm mỗi đường
Trang 14Các qui tắc suy diễn
2 Quy tắc phủ định
• Qui tắc này được thể hiện bằng hằng đúng:
• Hoặc dưới dạng sơ đồ
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 79
p q𝑞 𝑝̅
[(p q) 𝑞 ] 𝑝̅
Các qui tắc suy diễn
• Nếu An chăm học thì An đậu Cơ sở toán học cho tin học.
• An không đậu Cơ sở toán học cho tin học.
An không chăm học
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 80
Các qui tắc suy diễn
3 Qui tắc tam đoạn luận
Qui tắc này được thể hiện bằng hằng đúng:
Hoặc dưới dạng sơ đồ p q
q r
p r [(pq)(q r)] (p r)
Các qui tắc suy diễn
• Nếu trời mưa thì đường ướt.
• Nếu đường ướt thì đường trơn Nếu trời mưa thì đường trơn.
• Một con ngựa rẻ là một con ngựa hiếm (*)
• Cái gì hiếm thì đắt Một con ngựa rẻ thì đắt ( do khẳng định (*) )
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 82
Các qui tắc suy diễn
4 Qui tắc tam đoạn luận rời
Qui tắc này được thể hiện bằng hằng đúng:
Hoặc dưới dạng sơ đồ
Ý nghĩa của qui tắc: nếu một trong hai trường hợp có thể xảy ra, chúng ta biết có một trường hợp không xảy ra thì chắc chắn trường hợp còn lại sẽ xảy ra.
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 83
pq𝑞
p [(pq)𝑞] p
Các qui tắc suy diễn
• Chủ nhật, An thường lên thư viện hoặc về quê
• Chủ nhật này, An không về quê Chủ nhật này, An lên thư viện
Trang 15Các qui tắc suy diễn
5 Qui tắc nối liền
Qui tắc này được thể hiện bằng hằng đúng:
Hoặc dưới dạng sơ đồ
Ví dụ:
Hôm nay An học bài.
Hôm nay An phụ mẹ nấu ăn.
Suy ra: Hôm nay An học bài và phụ mẹ nấu ăn
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 85
pq
p q(pq)(pq)
Các qui tắc suy diễn
6 Qui tắc đơn giản
Qui tắc này được thể hiện bằng hằng đúng:
Hoặc dưới dạng sơ đồ
Ví dụ:
Hôm nay An học Cơ sở toán và học Anh văn
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 86
pq
p (pq)p
Các qui tắc suy diễn
7 Qui tắc mâu thuẫn (chứng minh bằng phản chứng)
Ta có tương đương logic
Để chứng minh vế trái là một hằng đúng ta chứng minh
nếu thêm phủ định của h vào các tiền đề thì được một
mâu thuẫn
Ví dụ.Cho a, b, c là 3 đường thẳng phân biệt và a//c và
b//c chứng minh a//b
[(𝑝𝑝… 𝑝 )h] [(𝑝𝑝… 𝑝 ℎ) 0]
Các qui tắc suy diễn
• Qui tắc này được thể hiện bằng hằng đúng:
• Dạng sơ đồ
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 88
[(𝑝𝑝 … 𝑝 )h] [(𝑝𝑝… 𝑝ℎ) 0]
𝑝𝑝
…𝑝
h
𝑝𝑝
…𝑝ℎ
0
Các qui tắc suy diễn
8 Qui tắc chứng minh theo trường hợpDựa trên hằng đúng:
Ý nghĩa:nếu p suy ra r và q suy ra r thì p hay q cũng có thểsuy ra r
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 89
Trang 16Dạng chuẩn tắc của logic mệnh đề
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 91
• Còn gọi là cơ sở hay
• A
• A ∧ B
• ¬A ∧ (B ∨ C)
• (A ∨ B) ∧ (¬B ∨ C ∨ D) ∧ (D ∨ ¬E)
Dạng chuẩn tắc tuyển
• DCTT Là tuyển của các HSC
• A
• A ∨ B
• (A ∧ B) ∨ C
• (A ∧ ¬B ∧ ¬C) ∨ (¬D ∧ E ∧ F )
Phương pháp kiểm tra tính hằng đúng, hằng sai
Lập bảng gồm 2 n hàng cho n biến và công thức A
- Cột cuối chứa toàn số 1 thì A(…) hằng đúng
- Cột cuối chứa toàn số 0 thì A)…) hằng sai
- Cột cuối chứa cả số 0 và 1 thì A(…) thực hiện được
B1: Khử phép kéo theo B2: Đưa phép toán phủ định về trực tiếp tới từng biến mệnh đề
B3: Sử dụng luật phân bố đưa về DCTH, DCTT B4: Kết luận
Áp dụng các quy tắc suy diễn
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 92
Ví dụ kiểm tra tính hằng đúng, hằng sai
• Bởi vì các biến chưa có giá trị Tuy nhiên, phát biểu dạng như trên xuất hiện rất nhiều
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 94
Ví dụ: x = y + 3; x > 3
Logic vị từ
• Điểm yếu của logic mệnh đề (2)– Những sự tương đương sau không biểu diễnđược bằng logic mệnh đề
– "Không phải tất cả bánh đều ăn được" và "Chỉmột số bánh ăn được"
– "Not all integers are even" và "Some integersare not even"
– Để suy diễn, mỗi mệnh đề phải được liệt kêriêng lẽ
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 95
Logic vị từ
• Khắc phục các điểm yếu nêu trên
• Phát biểu x > 3 có 2 phần:
– Biến x – Tính chất của biến x (> 3), được gọi là vị từ (predicate)
• Nói cách khác
– Predica te là vị từ mô tả tí nh c hấ t của những đố i tượ ng, hoặc quan hệ giữa chúng
• Ký hiệu phát biểu P(x) ⇒ P(2), P(4) là mệnh đề
Trang 17Logic vị từ
2 Các phép toán trên vị từ
Cho trước các vị từ p(x), q(x) theo một biến x ∈ A Khi ấy,
ta cũng có các phép toán tương ứng như trên mệnh đề:
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 97
Logic vị từ
• Khi xét một mệnh đề p(x) với x∈A Ta có các trường
hợp sau
– TH1 Khi thay x bởi 1 phần tử a tùy ý ∈ A, ta có p(a) đúng.
– TH2 Với một số giá trị a ∈ A, ta có p(a) đúng.
– TH3 Khi thay x bởi 1 phần tử a tùy ý ∈ A, ta có p(a) sai.
Định nghĩa.Cho p(x) là một vị từ theo một biến xác định trên
A Ta định nghĩacác mệnh đề lượng từ hóacủa p(x) như sau:
– Mệnh đề “Với mọi x thuộc A, p(x)”, kí hiệu bởi
“ ∀x∈A, p(x) ” ,
là mệnh đề đúng khi và chỉ khi p(a) luôn đúng với mọi giá trị a∈A.
– Mệnh đề “Tồn tại (ít nhất) hay có (ít nhất) một x thuộc A, p(x)”
• ∀: được gọi là lượng từphổ dụng
• ∃: được gọi là lượng từtồn tại
• Ví dụ Các mệnh đề sau đúng hay sai– “ ∀ x ∈ R, x 2 + 3x + 1 ≤ 0” (S)
– “ ∃ x ∈ R, x 2 + 3x + 1 ≤ 0” (Đ) – “ ∀ x ∈ R, x 2 + 1 ≥ 2x” (Đ) – “ ∃ x ∈ R, x 2 + 1 < 0” (S)
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 100
Logic vị từ
• Định nghĩa.Cho p(x,y) là một vị từ theo hai biến x, yxác định trên AxB Ta định nghĩa cácmệnh đề lượng từhóacủa p(x,y) như sau:
“ ∀ x ∈ A, ∀ y ∈ B, p(x,y)” = “ ∀ x ∈ A, ( ∀ y ∈ B, p(x,y))”
“ ∀ x ∈ A, ∃ y ∈ B, p(x,y)” = “ ∀ x ∈ A, ( ∃ y ∈ B, p(x,y))”
“ ∃ x ∈ A, ∀ y ∈ B, p(x,y)” = “ ∃ x ∈ A, ( ∀ y ∈ B, p(x,y))”
“ ∃ x ∈ A, ∃ y ∈ B, p(x,y)” = “ ∃ x ∈ A, (∃y ∈ B, p(x,y))”
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 101
1 Trình bày các phép toán, đk đồng nhất, các quy tắc suy diễn trong logic mệnh đề?
2 Khái niệm logic vị từ, Dạng CTH và dạng CTT của logic vị từ?
3 Kiểm tra các suy luận sau
Câu hỏi và Bài tập chương 2
p (q r)
p ∨ s
t q 𝑠 𝑟 𝑡
Trang 18Chương 3: Đại số Boole
3.1 Khái niệm và hàm Boole
3.2.3 Cực tiểu hóa các mạch logic
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 104
Nội dung
Định nghĩa: Tập hợp khác rỗng S cùng với các
phép toán ký hiệu nhân (.), cộng (+), lấy bù (’) được
gọi là một đại số Boole nếu các tiên đề sau đây
được thoả mãn với mọi a, b, c
3.1 Khái niệm và hàm Boole
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 106
3.1 Khái niệm và hàm Boole
21/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 107
HÀM BOOLE
3.2 Mạch Logic
Trang 1921/07/20 Bộ môn CNTT - Bài giảng Cơ sở toán học cho tin học 109
Trang 20NỘI DUNG
4.1 Khái niệm và biểu diễn đồ thị
4.2 Chu trình Euler và Chu trình Hamilton
4.3 Một số bài toán trên đồ thị
115
4.1 Khái niệm và biểu diễn đồ thị
• Đồ thị là một cấu trúc rời rạc gồm các đỉnh và các
cạnh (vô hướng hoặc có hướng) nối các đỉnh đó
• Phân loại đồ thị tùy theo đặc tính và số các cạnh nối
các cặp đỉnh của đồ thị
• Chúng ta cũng có thể dùng đồ thị để giải các bài toán
như bài toán tính số các tổ hợp khác nhau của các
chuyến bay giữa hai thành phố trong một mạng hàng
không, hay để giải bài toán đi tham quan tất cả các
đường phố của một thành phố sao cho mỗi đường
phố đi qua đúng một lần, hoặc bài toán tìm số các màu
cần thiết để tô các vùng khác nhau của một bản đồ
họ E mà các phần tử của nó gọi là các cung, đó là cáccặp có thứ tự của các phần tử thuộc V
• Đồ thị vô hướng nhận được từ đồ thị có hướng Gbằng cách xoá bỏ các chiều mũi tên trên các cungđược gọi là đồ thị vô hướng nền của G
Cạnh e cũng được gọi là cạnh nối các đỉnh u và v
Các đỉnh u và v gọi là các điểm đầu mút của cạnh e
• Định nghĩa: Bậc của đỉnh v trong đồ thị G=(V,E), kýhiệu deg(v), là số các cạnh liên thuộc với nó, riêngkhuyên tại một đỉnh được tính hai lần cho bậc của nó
• Đỉnh v gọi là đỉnh treo nếu deg(v)=1 và gọi là đỉnh côlập nếu deg(v)=0
Trang 21Một vài ứng dụng của các đồ thị đặc biệt
• Định nghĩa: Cho đồ thị G=(V,E) (vô hướng hoặc có
hướng), với V={v1,v2, , vn} Ma trận liền kề của G
ứng với thứ tự các đỉnh v1,v2, , vnlà ma trận
• trong đó aijlà số cạnh hoặc cung nối từ vitới vj
• Như vậy, ma trận liền kề của một đồ thị vô hướng là
ma trận đối xứng, nghĩa là aij=aji , trong khi ma trận
liền kề của một đồ thị có hướng không có tính đối
2 1 1 0
1 1 0 3
2 0 3 0
10200
01001
01210
11011
• Đồ thị Euler, chu trình Euler
• Đồ thị Hamilton, Chu trình Hamilton4.2 Chu trình Euler và Chu trình Hamilton