Suy luận và kiểm chứng chương trình Điều cần nhất cho người học CNTT là tư duy chính xác phải được hình thành ngay từ đầu.. Mục tiêu của chương là cung cấp Những suy luận đúng đắn
Trang 1TOÁN RỜI RẠC (DISCRETE MATHEMATICS)
Bùi Thị Thủy Đặng Xuân Thọ
Trang 2Toán rời rạc - ĐHSPHN
2
Trang 3NỘI DUNG
Toán Rời Rạc - ĐHSPHN
3
Trang 4Chương 4 Suy luận và kiểm chứng chương trình
Điều cần nhất cho người học CNTT là tư duy chính xác phải được hình thành ngay từ đầu
Mục tiêu của chương là cung cấp
Những suy luận đúng đắn
Những công cụ xây dựng nên các suy luận đó
Làm thế nào để kiếm chứng 1 chương trình máy tính?
Thử với dữ liệu có sẵn?
Tính đúng đắn chỉ có thể bảo đảm được bằng chứng minh nó luôn tạo ra kết quả đúng
Toán Rời Rạc - ĐHSPHN
4
Trang 5Các quy tắc suy luận
Toán Rời Rạc - ĐHSPHN
5
Trang 6Các suy diễn có cơ sở
Suy diễn trực tiếp
Ví dụ:
p: “Trời mưa”; q: “Chúng ta không đi làm”
𝑝 → 𝑞: “Nếu trời mưa thì chúng ta không đi làm”
Nếu p xảy ra, và nếu suy diễn này là đúng thì q xảy ra
Toán Rời Rạc - ĐHSPHN
6
Trang 7Các suy diễn có cơ sở
Luật cộng
Ví dụ:
p: “Bây giờ trời đang mưa”; q: ”Trời tối”
Luật cộng có thể nói: “Bây giờ trời đang mưa hoặc trời tối”
Toán Rời Rạc - ĐHSPHN
7
Trang 8Các suy diễn có cơ sở
Luật rút gọn
Ví dụ:
p ^ q: “Bây giờ trời đang mưa và trời tối”
Thì ta có thể suy ra: “Bây giờ trời đang mưa”
Toán Rời Rạc - ĐHSPHN
8
Trang 9Các suy diễn có cơ sở
Luật gián tiếp
Ví dụ:
p: “Trời mưa”; q: “Trời sấm chớp”
Như vậy nếu mệnh đề “Trời mưa thì trời sấm chớp” là đúng và không có “Trời sấm chớp” thì suy ra không có “Trời mưa”
Toán Rời Rạc - ĐHSPHN
9
Trang 10Các suy diễn có cơ sở
Tam đoạn luận
Ví dụ:
p: “Trời mưa”; q: “Chúng ta không đi chơi ngoài trời hôm nay”; r: “Chúng ta đi chơi ngoài trời ngày mai”
Như vậy chúng ta suy ra là “Trời mưa hôm nay thì chúng ta đi chơi ngoài trời ngày mai”
Toán Rời Rạc - ĐHSPHN
10
Trang 11Các suy diễn có cơ sở
Trang 12Các suy diễn có cơ sở
12
Trang 13Các suy diễn có cơ sở
13
Trang 14Luyện tập
Quy tắc suy diễn nào được sử dụng trong các lập luận sau:
1 Ai học giỏi môn Toán cũng sẽ học giỏi môn Toán hoặc môn
Tin
2 Nêu bạn giỏi cả hai môn Toán và Văn thì bạn học giỏi môn
Toán
3 Nếu trời mưa thì trận bóng đá sẽ bị hoãn lại Hôm nay trời
mưa thật, thế thì trận bóng đá chắc chắn sẽ bị hoãn lại rồi
4 Nếu hôm nay trời mưa thì trận đá bóng sẽ bị hoãn lại Trận
bóng đá đã diễn ra, do vậy hôm nay trời không mưa
5 Nếu bạn bơi lâu dưới nắng thì da bạn sẽ bị rám nắng Da bạn
bị rám nắng thì trông thật là đen Vậy nếu bạn bơi lâu dứoi nắng thì trông bạn thật đen
6 Nếu bạn làm bài tập thật chăm chỉ thì bạn có thể nắm vững
giáo trình này Nếu bạn nắm vững giáo trình thì bạn sẽ thi đỗ
kỳ thi tốt nghiệp Vậy nếu bạn làm bài tập thật chăm chỉ thì bạn
sẽ thi đỗ kỳ thi tốt nghiệp
Toán Rời Rạc - ĐHSPHN
14
Trang 15Vị ngữ, lượng từ, định lý
Toán Rời Rạc - ĐHSPHN
15
Trang 16 Ví dụ: x = 3
Toán Rời Rạc - ĐHSPHN
16
Trang 17Lượng từ với mọi
Định nghĩa: Cho trước một hàm mệnh đề P(x)
xác định trên một tập X Khi đó câu “ P(x) đúng cho mọi giá trị x X ” là một mệnh đề, kí hiệu
x P(x) Mệnh đề này gọi là lượng từ với mọi
của hàm mệnh đề P(x) cho trước
Ví dụ:
P(x): “x tốt nghiệp”; x là biến “sinh viên”; X là miền
“sinh viên khóa 53”
xP(x):“mọi sinh viên khóa 53 đều đã tốt nghiệp”
Toán Rời Rạc - ĐHSPHN
17
Trang 18Lượng từ với mọi
Trang 19Lượng từ tồn tại
Định nghĩa: Cho trước một hàm mệnh đề P(x)
xác định trên một tập X Khi đó câu “ tồn tại x
X sao cho P(x) đúng ” là một mệnh đề, kí hiệu
x P(x) Mệnh đề này gọi là lượng từ tồn tại
của hàm mệnh đề P(x) cho trước
Ví dụ:
Cho P(x): “x2 + 1 = 0” trên miền số thực
xP(x): “tồn tại x sao cho x2 + 1 = 0” có giá trị F
Toán Rời Rạc - ĐHSPHN
19
Trang 21Biến ràng buộc
Trong hàm logic nhiều biến, không phải biến nào cũng được lựa chọn tự do, có những biến
có miền xác định phụ thuộc vào biến khác
Thường được thể hiện trong phát biểu của
Trang 22Biến ràng buộc
Cho hàm mệnh đề P(x, y) với hai biến x, y,
trong đó y ràng buộc bởi x Có các khả năng sau:
xyP(x, y): với mọi x, P(x, y) luôn đúng cho mọi y
xyP(x, y): với mọi x, P(x, y) đúng cho một y nào đó
xyP(x, y): tồn tại x, P(x, y) luôn đúng cho mọi y
xyP(x, y): tồn tại x, P(x, y) đúng cho một y nào đó
Toán Rời Rạc - ĐHSPHN
22
Trang 23Biến ràng buộc
Quy tắc phủ định
Ví dụ:
Phủ định của lượng từ với mọi: “Với mọi x ta có x 2 0”
Là lượng từ tồn tại: “Tồn tại x sao cho x 2 < 0”
Phủ định của lượng từ tồn tại: “Tồn tại x sao cho x 2 +1=0”
Là lượng từ với mọi: “Với mọi x ta có x 2 +1 0”
Trang 25Định lý và lượng từ
Ví dụ: chứng minh các phương trình sau luôn có
nghiệm với các số thực a tùy ý:
a) x2 + ax – 1 = 0
b) x2003 + ax + 1 = 0
a) nghiệm cụ thể 𝑥1,2 = −𝑎± 𝑎2+4
2
b) với x > max{|a|,1} thì f=x 2003 +ax+1>0
với x < min{-|a|,-2} thì f=x 2003 +ax+1<0
do f là hàm liên tục nên tồn tại x0 sao cho f(x0)=0
Toán Rời Rạc - ĐHSPHN
25
Trang 26 x≦P(x) x≦P(x)
Dùng lượng tử diễn đạt các câu nói sau, phủ định chúng rồi dịch ngược lại:
Mọi người ai cũng thích môn Toán rời rạc
Có một người đã học tất cả các môn Toán
Chưa có ai nhìn thấy chiếc máy tính lượng tử
Trang 27Đệ Quy
Toán Rời Rạc - ĐHSPHN
27
Trang 29Định nghĩa các hàm bởi đệ quy
Quy tắc xây dựng hàm dạng f(n)
Xác định giá trị của hàm tại n = 0
Xác định mối quan hệ của f(n + 1) với f(n)
Trang 30Định nghĩa các hàm bởi đệ quy
Dãy số Fibonaci
Bài toán cổ về việc sinh sản các cặp thỏ:
Các con thỏ không bao giờ chết
Hai tháng sau khi ra đời một cặp thỏ mới sẽ sinh
Trang 32Định nghĩa các tập hợp bởi đệ quy
Quy tắc xây dựng
Đưa ra tập xuất phát
Xây dựng phần tử mới từ những phần tử đã biết
Ví dụ: cho B là tập hữu hạn các chữ cái Tập
B* là các từ xây dựng trên B là tập thỏa mãn:
Từ rỗng thuộc B *
Nếu w B * và b B * thì wb B *
Toán Rời Rạc - ĐHSPHN
32
Trang 33Kiểm Chứng Chương Trình
Toán Rời Rạc - ĐHSPHN
33
Trang 35Kiểm chứng chương trình
Định nghĩa Chương trình hay đoạn chương
trình S được gọi là đúng bộ phận đối với mệnh
đề khẳng định đầu p và mệnh đề khẳng định cuối q, nếu p là đúng với các giá trị vào của S
và nếu S kết thúc thì q đúng với các giá trị đầu
ra của S
Kí hiệu: p{S}q
Toán Rời Rạc - ĐHSPHN
35
Trang 37Các quy tắc suy luận
Trang 38Các quy tắc suy luận
Câu lệnh điều kiện: If (điều kiện) r then S
Trang 39Các quy tắc suy luận
Câu lệnh điều kiện: If (điều kiện) r then
Ví dụ: CMR đoạn chương trình If x>y then y:=x
đúng với khẳng định đầu p = T và khẳng định cuối
Trang 40Các quy tắc suy luận
Câu lệnh điều kiện: If (điều kiện) r then S1
else S2
1 2
1 2
( ){S }q ( ){ }q {If r then S else S }q
Trang 41Các quy tắc suy luận
Ví dụ: CMR đoạn chương trình
If (x<0) then (abs := -x) else (abs := x)
đúng với khẳng định đầu p = T và khẳng định cuối
Trang 42Các quy tắc suy luận
Câu lệnh vòng lặp: While (điều kiện) r do S
S được thực hiện mãi cho tới khi r trở thành sai
Bất biến vòng lặp: là một khẳng định vẫn đúng sau khi thực hiện S
Như thế, nếu (pr){S}p đúng thì p là bất biến vòng lặp
Toán Rời Rạc - ĐHSPHN
42
Trang 43Các quy tắc suy luận
Câu lệnh vòng lặp: While (điều kiện) r do S
Giả sử p là một bất biến vòng lặp, thì p đúng trước khi đoạn chương trình thực hiện và p, r đúng sau khi kết thúc
Quy tắc suy luận:
( ){S}q {W r do S}(p r)
Trang 44Các quy tắc suy luận
Câu lệnh vòng lặp: While (điều kiện) r do S
Ví dụ: Dùng bất biến vòng lặp CM đoạn
chương trình: (n nguyên dương)
i := 1; giaithua := 1;
while (i < n) do begin
Trang 45Các quy tắc suy luận
Giả sử p: “giaithua := i! cho mọi i n”
Với i = 1 thì giaithua = 1 = 1! Nên p đúng
Giả sử p đúng sau i vòng lặp với i < n, khi đó giaithua = i!
Vòng lặp được thực hiện thêm lần nữa, khi i tăng lên 1 thành i+1 và vẫn chưa vượt n Khi
đó giaithua = i! * (i+1) = (i+1)!
Như vậy sau vòng i+1 thì p vẫn còn đúng Vậy
p là bất biến vòng lặp
Toán Rời Rạc - ĐHSPHN
45
Trang 46Đoạn chương trình nhiều câu lệnh
Ví dụ: hãy kiểm chứng chương trình sau đúng là
chương trình tính tích của hai số nguyên
procedure multiply(m,n: integer);
if n<0 then a:= - n else a:= n;
k := 0;
x := 0;
while k<a do begin
x:=x+m;
k:=k+1;
end;
if n<0 then product := -x else product := x;
Trang 47Đoạn chương trình nhiều câu lệnh
Gọi p là khẳng định đầu “m và n là các số nguyên”
Trang 48là đúng với khẳng định đầu y=3 và khẳng định cuối z=7
Toán Rời Rạc - ĐHSPHN
48
Trang 49Luyện tập
Dùng bất biến vòng lặp chứng minh đoạn
chương trình tính lũy thừa bậc nguyên dương
Trang 50THANK YOU!