II. LOGIC MỆNH ĐỀ
7. Bài toán suy diễn logic
Kỹ thuật lập trình nâng cao - 101 -
Quân tử luôn nói thật và tiểu nhân luôn nói dối. Một người hỏi một dân cư A trên đảo : "có phải anh là một quân tử ?". A đáp :"nếu tôi là quân tử thì tôi thua tiền anh ". Hãy chứng minh rằng : A nhất định phải thua tiền.
Ta mô hình hóa bài toán như sau :
Đặt các mệnh đề P : A là quân tử. Q : A phải trả tiền. Kết luận phải chứng minh là Q.
Khảo sát giả thiết của bài toán:
+ Mệnh đề khẳng định : " A là tiểu nhân " là not P
+ A phát biểu một mệnh đề S. giả thiết cho biết : Nếu A là quân tử thì S phải đúng tức là : P ==> S
+ Nếu A là tiểu nhân thì S phải sai : not p ==> not s
+ S là một hàm ý : " Nếu A là quân tử thì A phải trả tiền". Ta biểu thị S bởi : p ==> q
Như vậy tiền đề là : (P ==> S) and (not P ==> not S) theo luật tương đương (k) ta có thể viết là : P <==> S.
Bài toán được phát biểu dưới dạng thuần tuý logic như sau : Cho tiền đề P <==> (P ==> Q)
Có thể suy diễn được kết luận Q không ?
Ta sẽ xác lập rằng (lý luận trên là đúng) mệnh đề (P <==>(p ==> Q)) ==> Q là đúng với mọi bộ giá trị đúng sai của các mệnh đề thành phần .
Có hai cách : (a) Dùng bảng giá trị đúng sai . P Q ( P <==> ( P ==> Q ) ) ==> Q ––––––––––––––––––––––––––––––––––––– T T ( T <==> T ) ==> T F T ( F <==> T ) ==> T T F ( T <==> F ) ==> F F F ( F <==> T ) ==> F
(b) Dùng cách thay thế bằng các mệnh đề tương đương . P <==> (P ==> Q) P <==> (not P or Q) (hàm ý) ≡
≡ [(P and (not P or Q)] or [not P and not (not P or Q )] (tương đương)
mà not P and not (not P or Q) ≡ not P and (not not P and not Q) ≡ not P and ( P and not Q) ≡ (not P and P) and not Q ≡ false and not Q ≡ false và P and (not P or Q) ≡ (P and not P) or (P and Q) ≡ false or (p and Q) ≡ P and Q
Như vậy P <==> (P ==> Q) ≡ P and Q
Kỹ thuật lập trình nâng cao - 102 -
≡ not (P and Q) or Q ≡ (not P or not Q) or Q ≡ not P or (not Q or Q) ≡ not P or true ≡ true
Với các bài toán chỉ liên quan đến ít mệnh đề như trong ví dụ trên, cách dùng bảng chân trị đơn giản hơn . Nhưng nên cố gắng sử dụng cách biến đổi tương đương, bởi vì áp dụng thực tiễn của nó là lớn hơn nhiều.