Chương 1 Kiến thức cơ bản tổ hợp, Logic mệnh đề, Tập hợp, và Ánh xạ Nội dung Bài toán tổ hợp Logic mệnh đề Logic vị từ và lượng từ Một số ứng dụng trong tin học Lý thuyết tập hợp và ứng dụng Ánh xạ Lí thuyết tổ hợp Lý thuyết tổ hợp gắn liền với việc nghiên cứu sự sắp xếp của các phần tử trong các tập hữu hạn và sự phân bố của các phần tử vào các tập hữu hạn. Mỗi cách sắp xếp hoặc phân bố như thế được gọi là một cấu hình tổ hợp. Có thể nói vắn tắt: Tổ hợp là lý thuyết về các tập hữu hạn. Bài toán tổ hợp Trong các tài liệu về tổ hợp, thường gặp các dạng bài toán dưới đây: 1.
Bài toán đếm tổ hợp (Counting Problem) 2. Bài toán tồn tại tổ hợp (Existence Problem) 3. Bài toán liệt kê tổ hợp (Enumeration Problem) 4. Bài toán tối ưu tổ hợp (Combinatorial optimization Problem) Bài toán đếm – Counting Problem Đây là các bài toán nhằm trả lời câu hỏi: “Có bao nhiêu cấu hình thoả mãn các điều kiện cho trước?".
Phương pháp đếm thường dựa vào một số nguyên lý cơ bản và một số kết quả đếm các cấu hình đơn giản. Bài toán đếm được áp dụng một cách có hiệu quả vào những công việc mang tính chất đánh giá như tính xác suất của một sự kiện, tính độ phức tạp của một thuật toán,. Bài toán tồn tại tổ hợp (Existence Problem) Khác với bài toán đếm, trong bài toán tồn tại tổ hợp chúng ta cần trả lời câu hỏi: “Tồn tại hay chăng cấu hình tổ hợp thoả mãn các tính chất đã cho?” Rõ ràng nếu có thể đếm được số lượng cấu hình tổ hợp thoả mãn các tính chất đó cho thì ta cũng giải quyết được bài toán tồn tại tương ứng! Có thể coi bài toán tồn tại như trường hợp riêng của bài toán đếm được không? Ví dụ Bài toán phủ bàn cờ quốc tế bởi các quân bài domino: “Cho bàn cờ quốc tế kích thước 88 bị đục đi 2 ô ở hai góc đối diện và bộ bài domino, mỗi quân bài phủ kín 2 ô của bàn cờ. Hỏi có thể phủ kín bàn cờ đã cho bởi 31 quân bài domino?” Bàn cờ quốc tế và quân bài domino Bàn cờ quốc tế và quân bài domino Có thể phủ bàn cờ như vậy bởi 31 quân bài domino? Bàn cờ còn 62 ô 31 quân bài có thể phủ kín được 62 ô Về diện tích là có thể phủ được Không tồn tại cách phủ bàn cờ như vậy bởi 31 quân bài domino! Chứng minh Mỗi quân bài phủ kín 1 ô trắng và một ô đen.
Suy ra số lượng ô trắng và ô đen bị phủ bởi 31 quân domino là bằng nhau. Thế nhưng số lượng ô trắng và ô đen trên phần còn lại của bàn cờ là khác nhau Từ đó suy ra không tồn tại cách phủ! Có bao nhiêu cách phủ bàn cờ bởi 32 quân bài domino? Sự tồn tại cách phủ là hiển nhiên. Dễ dàng có thể chỉ ra vài cách phủ Vấn đề “Có bao nhiêu cách phủ?” Không dễ dàng trả lời! Có bao nhiêu cách phủ bàn cờ bởi 32 quân bài domino? Nếu chỉ phân biệt hai cấu hình bởi dạng hình học của cách phủ thì có tất cả 12 988 816 cách phủ. Có 2 cách phủ bàn cờ kích thước 22 Phân biệt hai bài toán đếm và tồn tại Trong bài toán đếm, sự tồn tại cấu hình là hiển nhiên và vấn đề là cần đếm xem có bao nhiêu.
Trong bài toán tồn tại, bản thân sự tồn tại cấu hình là vấn đề nghi vấn. Cần giải quyết vấn đề “có hay không có” cấu hình như vậy. Việc chỉ ra được một cấu hình là đủ để khẳng định là tồn tại Nhưng để chỉ ra sự không tồn tại cấu hình đòi hỏi phải đưa ra những lập luận tin cậy Bài toán liệt kê tổ hợp (Enumeration Problem) Bài toán liệt kê: bài toán liệt kê quan tâm đến tất cả các cấu hình có thể có được, Lời giải của nó được biểu diễn dưới dạng thuật toán “vét cạn” tất cả các cấu hình. Bài toán liệt kê thường được làm nền cho nhiều bài toán khác.
Hiện nay, một số bài toán tồn tại, bài toán tối ưu, bài toán đếm vẫn chưa có cách nào giải quyết ngoài phương pháp liệt kê. Phương pháp liệt kê càng trở nên quan trọng hơn khi nó được hỗ trợ bởi các hệ thống máy tính. Bài toán tối ưu tổ hợp (Combinatorial Problem) Khác với bài bài toán liệt kê, bài toán tối ưu chỉ quan tâm đến một cấu hình "tốt nhất" theo một nghĩa nào đấy. Trong các bài toán tối ưu, mỗi cấu hình được gán cho một giá trị số (là giá trị sử dụng hoặc chi phí xây dựng cấu hình), và bài toán đặt ra là trong số những cấu hình thoả mãn các điều kiện cho trước hãy tìm cấu hình với giá trị số gán cho nó là lớn nhất hoặc nhỏ nhất.
Đây là bài toán có nhiều ứng dụng trong thực tiễn và lý thuyết tổ hợp đã đóng góp một phần đáng kể trong việc xây dựng được những thuật toán hữu hiệu. Nội dung Bài toán tổ hợp Logic mệnh đề Logic vị từ và lượng từ. Một số ứng dụng trong tin học Lý thuyết tập hợp và ứng dụng Ánh xạ Logic mệnh đề Đối tượng nghiên cứu của logic là các mệnh đề. Một mệnh đề được hiểu là một câu khẳng định hoặc đúng hoặc sai chứ không thể vừa đúng vừa sai.
Ví dụ: Những câu khẳng định sau đây là một mệnh đề: “Hà nội là thủ đô của Việt nam.” 1 + 1 = 2 2 + 2 = 3 Định nghĩa và phép toán Định nghĩa và phép toán (tiếp) Định nghĩa và phép toán (tiếp) Bảng chân lý các phép toán Tương đương giữa các mệnh đề Vấn đề thay thế một mệnh đề bằng một mệnh đề khác có cùng giá trị chân lý. Hai mệnh đề có cùng một giá trị chân lý hiểu theo cách thông thường là chúng tương đương nhau về ngữ nghĩa. Do vậy, ta sẽ tiếp cận và phân loại các mệnh đề phức hợp thông qua các giá trị chân lý của chúng. Một mệnh đề phức hợp luôn luôn đúng với bất kể các giá trị chân lý của các mệnh đề thành phần được gọi là hằng đúng (tautology).
Một mệnh đề luôn luôn sai với mọi giá trị chân lý của các mệnh đề thành phần được gọi là mâu thuẫn. Tương đương giữa các mệnh đề (tiếp) Bảng các tương đương logic mệnh đề Dạng chuẩn tắc Các công thức (mệnh đề) tương đương được xem như các biểu diễn khác nhau của cùng một mệnh đề. Để dễ dàng viết các chương trình máy tính thao tác trên các công thức, chúng ta cần chuẩn hóa các công thức, đưa chúng về dạng biểu diễn chuẩn được gọi là dạng chuẩn hội. Một công thức được gọi là ở dạng chuẩn hội nếu nó là hội của các mệnh đề tuyể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 các thủ tục sau: Nội dung Bài toán tổ hợp Logic mệnh đề Logic vị từ và lượng từ Một số ứng dụng trong tin học Lý thuyết tập hợp và ứng dụng Ánh xạ Vị từ Trong toán học hay trong các chương trình máy tính chúng ta rất hay gặp những khẳng định chưa phải là một mệnh đề. Những khẳng định đó đều có liên quan đến các biến. Chẳng hạn khẳng đinh: P(x) = “x > 3” không phải là một mệnh đề nhưng tại những giá trị cụ thể của x=x0 nào đó thì P(x0) lại là một mệnh đề. Hoặc trong những đoạn chương trình gặp câu lệnh: if ( x > 3 ) then x:= x +1; thì 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ị đúng x sẽ được tăng lên 1 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 khi thực hiện câu lệnh if.
Vị từ (tiếp) Tổng quát, giả sử M là một tập hợp các phần tử nào đó. M thường được gọi là trường hay miền xác định của các phẩn tử thuộc M. Khi đó, biểu thức P(x) gọi là vị từ xác định trên trường M nếu khi thay x bởi một phần tử bất kỳ của trường M thì P(x) sẽ trở thành một mệnh đề trên trường M. Lượng từ Khi tất cả các biến của hàm mệnh đề đều được gán những giá trị cụ thể, thì mệnh đề tạo ra 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 các giá trị của biến thuộc trường đang xét. Phương pháp đó gọi là sự lượng hoá hay lượng từ. Nội dung Bài toán tổ hợp Logic mệnh đề Logic vị từ và lượng từ Một số ứng dụng trong tin học Lý thuyết tập hợp và ứng dụng Ánh xạ Ứng dụng mệnh đề logic trên máy tính Các phép toán bít: Các hệ thống máy tính thường dùng các bit (binary digit) để biểu diễn thông tin. Một bít có hai giá trị chân lý hoặc 0 hoặc 1.
Vì giá trị chân lý của một biểu thức logic cũng có hai giá trị hoặc đúng (T) hoặc sai (F). Nếu ta coi giá trị đúng có giá trị 1 và giá trị sai là 0 thì các phép toán với các bít trong máy tính được tương ứng với các liên từ logic. Một xâu bít (hoặc xâu nhị phân) là dãy không hoặc nhiều bít. Chiều dài của xâu là số các bít trong xâu đó.
Ví dụ xâu nhị 101010011 có độ dài là 9. 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. Các phép toán với bít được xây dựng trên các xâu bít có cùng độ dài, bao gồm : AND bít (phép và cấp bít), OR (phép hoặc cấp bít), XOR (phép tuyển loại trừ cấp bít). Ví dụ: cho hai xâu bít 01101 10110 và 11000 11101 hãy tìm xâu AND bít, OR bít, XOR bít.
Ứng dụng mệnh đề logic trên máy tính (tiếp) Thuật toán các phép tính số nguyên: Các thuật toán thực hiện các phép tính với các số nguyên khi dùng khai triển nhị phân là hết sức quan trọng trong bộ xử lý số học của máy tính.