Nguyên lý bao hàm-loại trừ

Trong tổ hợp, một nhánh của toán học, nguyên lý bao hàm-loại trừ (hay nguyên lý bao hàm và loại trừ hoặc nguyên lý bù trừ) là kỹ thuật đếm tổng quát cho phương phát tìm số các phần tử của hợp của hai tập hữu hạn sau:
trong đó "A" và "B" là hai tập hữu hạn và |"S" | là số lực lượng của tập hợp "S" (có thể coi là số phần tử trong tập hợp nếu tập hợp đó hữu hạn). Công thức trên nói rằng khi cộng kích thước của hai tập hợp với nhau, giá trị cho có thể quá lớn bởi có thể sẽ có một số phần tử bị đếm hai lần. Các phần tử bị đếm hai lần nằm trong phần giao của hai tập hợp đó và do đó để tìm ra đúng giá trị, ta trừ đi kích thước của phần giao.
Nguyên lý bao hàm-loại trừ là dạng tổng quát của trường hợp chỉ xét hai tập hợp, nên để bắt đầu ví dụ, ta xét công thức cho ba tập hợp "A", "B" và "C":
Ta có thể kiểm chứng công thức này bằng cách đếm số lần mỗi vùng trong biểu đồ Venn nằm trong vế phải của công thức. 
Tổng quát hoá các ví dụ này sẽ dẫn tới nguyên lý bao hàm-loại trừ. Để tìm lực lượng của hợp của tập hợp:
Tên bao hàm-loại trừ lấy từ ý tưởng ta thêm các "bao hàm", rồi sau đó "loại trừ" các phần thừa.
Khái niệm này được gắn tên với Abraham de Moivre (1718), mặc dù nó ban đầu xuất hiện trong giấy của Daniel da Silva (1854) và sau đó trong bài viết của J. J. Sylvester (1883). Đôi khi, công thức này được gọi là công thức Da Silva hay công thức Sylvester, do quá trình xuất bản. Nguyên lý này cũng được coi là một ví dụ về một phương pháp sàng được dùng nhiều trong lý thuyết số và đôi khi cũng được gọi là "công thức sàng" trong bối cảnh đó.
Bởi các xác suất hữu hạn được đếm rồi tính tương ứng với lực lượng của không gian xác suất, công thức cho nguyên lý bao hàm-loại trừ vẫn hợp lệ khi ta thay lực lượng của các tập hữu hạn bằng các xác suất hữu hạn. Tổng quát hơn, cả hai phiên bản này đều có đặt nằm dưới lý thuyết độ đo.
Trong ngữ cảnh rất trừu tượng, nguyên lý bao hàm-loại trừ có thể biểu diễn bằng phép tính nghịch đảo của một ma trận nào đó. Nghịch đảo này có cấu trúc đặc biệt, nên nguyên lý này là một trong những kỹ thuật đếm cực kỳ hữu dụng trong tổ hợp và các nhánh toán học có liên quan. Theo lời của Gian-Carlo Rota:
"Một trong những nguyên lý hữu dụng nhất khi liệt kê trong xác suất rời rạc và lý thuyết tổ hợp là nguyên lý bao hàm-loại trừ trứ danh. Nếu áp dụng đúng cách, nguyên lý này có thể trả lời cho rất nhiều bài toán tổ hợp."
Công thức.
Trong công thức tổng quát của nó, nguyên lý bao hàm-loại trừ phát biểu rằng với tập hợp hữu hạn , ta có định thức sau:
Công thức trên có thể viết gọn thành
hoặc
Ứng dụng.
Nguyên lý bao hàm-loại trừ được sử dụng rộng rãi nên chỉ có một vài được nhắc ở dưới đây.
Đếm số phần giao.
Nguyên lý bao hàm-loại trừ khi kết hợp với luật De Morgan, có thể dùng để đếm số lực lượng của phần giao của các tập hợp. Gọi formula_6 là phần bù của "Ak" tương ứng với tập phổ dụng "A" nào đó sao cho formula_7 với mỗi "k". Khi đó ta có
Do đó chuyển bài toán từ đếm phần giao sang đếm phần hợp.
Tô màu đồ thị.
Nguyên lý bao hàm-loại trừ lập thành cơ sở của các thuật toán giải các bài phân hoạch đồ thị thuộc lớp NP-hard, ví dụ chẳng hạn như tô màu đồ thị.
Một ứng dụng nổi bật của nguyên lý là phương pháp xây đa thức xắc số.
So khớp hoàn hảo trong đồ thị hai phía.
Số các so khớp hoàn hảo của một đồ thị hai phía có thể tính bằng nguyên lý này.
Đếm số toàn ánh.
Câu hỏi đặt ra là cho hai tập con "A" và "B", có bao nhiêu hàm toàn ánh đi từ "A" đến "B"? Không mất tính tổng quát, ta có thể lấy "A" = {1, ..., "k"} và "B" = {1, ..., "n"}, bởi ta chỉ quan tâm đến lực lượng của mỗi tập hợp. Gọi "S" là tập các hàm từ "A" đến "B", và định nghĩa với mỗi "i" thuộc "B", tính chất "Pi" :"hàm bỏ qua giá trị "i" thuộc "B"" ("i" không nằm trong ảnh của hàm số), nguyên lý bao hàm-loại trừ sẽ đếm số toàn ánh giữa "A" và "B" như sau:
Đếm các hoán vị cấm vị trí.
Hoán vị của tập hợp "S" = {1, ..., "n"} trong đó mỗi phần tử thuộc "S" có thể bị cấm ngồi vị trí nào đó (ở đây là hoán vị được coi là cách sắp xếp thứ tự các phần tử thuộc "S") được ta tạm gọi là "hoán vị cấm vị trí". Ví dụ chẳng hạn, cho "S" = {1,2,3,4}, các hoán vị thoả mãn hai điều kiện cấm: 1 không được nằm tại vị trí 1 hoặc 3, và 2 không nằm trong vị trí 4 là: 2134, 2143, 3124, 4123, 2341, 2431, 3241, 3421, 4231 và 4321. Đặt "Ai" là tập các vị trí mà "i" không được phép ngồi vào, và tính chất "P""i" là tính chất đặt "i" vào vị trí "Ai", nguyên lý bao hàm-loại trừ có thể dùng để đếm số các hoán vị thoả mãn tất cả điều kiện cấm.
Trong ví dụ trên, có 12 = 2(3!) hoán vị thoả mãn tính chất "P"1, 6 = 3! hoán vị thoả mãn tính chất "P"2 và không có hoán vị nào cho "P"3 hoặc "P"4 bởi không có điều kiện cấm cho hai giá trị đó. Số các hoán vị thoả mãn các điều kiện cấm cho trước là:
Số 4 ở cuối bước tính toán là số các hoán vị thoả mãn đồng thời hai tính chất "P"1 và "P"2.
Đa thức quân xe.
Đa thức quân xe là hàm sinh số cách đặt các quân xe không tân công lẫn nhau trên "bàn cờ B" trông như tập con của các ô vuông của bảng kẻ ô; nghĩa là, bất kỳ hai con xe không được phép đặt cùng hàng hay cùng cột và bàn cờ "B" là tập con bất kỳ của các ô vuông của một bàn cờ hình chữ nhật có "n" hàng và "m" cột; ta có thể gọi nó là tập các ô được phép đặt quân lên. Hệ số "rk"("B") của "xk" trong đa thức quân xe "RB"("x") là số cách đặt "k" quân xe trong đó không có cái nào trong đó tấn công cái còn lại và có thể xếp trong bàn cờ "B". Cho bất kỳ bàn "B", có bàn bù formula_10 chứa các ô vuông cùa bàn hình chữ nhật và không nằm trong "B". Cái bàn bù này cũng có đa thức quân xe formula_11 cùng với các hệ số formula_12
Đôi khi để tiện cho tính toán, ta tính hệ số cao nhất trong đa thức quân xe bằng các hệ số của đa thức quân xe của bàn bù.Không mất tính tổng quát, ta có thể giả sử "n" ≤ "m", do đó hệ số này là "rn"("B"). Số cách đặt "n" quân xe không tấn công lẫn nhau trên bàn kẻ ô đầy đủ "n" × "m" (chưa quan tâm tới việc liệu các quân có đúng đặt trong bàn"B") được tính theo giai thừa giảm sau:
Gọi "P"i là tính chất đặt "n" quân xe không tấn công nhau trên bàn đầy đủ có quân ở cột "i" và không nằm trong ô thuộc bàn "B", thì theo nguyên lý bao hàm-loại trừ, ta có công thức:
Hàm phi Euler.
Hàm phi Euler hay gọi ngắn lại đi là hàm phi, "φ"("n") là hàm số học đếm số các số nguyên nhỏ hơn hoặc bằng "n" và nguyên tố cùng nhau với "n". Nghĩa là, nếu "n" là số nguyên dương, thì φ("n") là số các số nguyên "k" thuộc đoạn 1 ≤ "k" ≤ "n" không có ước chung với "n" nào khác ngoài 1. Nguyên lý bao hàm -loại trừ có thể dùng để tìm ra công thức cho φ("n"). Gọi "S" là tập {1, …, "n"} và định nghĩa tính chất "Pi" là số thuộc "S" chia hết cho số nguyên tố "pi", với 1 ≤ "i" ≤ "r",trong đó phân tích thừa số nguyên tố của
thì,
Nguyên lý bao hàm-loại trừ bị pha loãng.
Trong nhiều trường hợp nguyên lý có thể đưa công thức chính xác (chẳng hạn như đếm số nguyên tố khi sử dụng sàng Eratosthenes), công thức suy ra được đôi khi không hữu dụng bởi số các phần tử của nó quá nhiều. Và, kể cả khi mỗi số hạng trong đó có thể được ước lượng chính xác, thì tổng các sai số có thể khiến cho công thức bao hàm-loại trừ không áp dụng trực tiếp được. Trong lý thuyết số, vấn đề này được Viggo Brun nhắc tới. Sau một khởi đầu chậm, các ý tưởng của ông dần được thu nhận bởi người khác, và từ đó một lượng lớn phương pháp sàng được phát triển dựa trên đó. Các phương pháp này có thể dùng để thử tìm cận trêm cho các tập "đã được sàng", thay vì phải tìm công thức chính xác.
Gọi "A"1, ..., "A""n" là các tập hợp tuỳ ý và "p"1, …, "p""n" là các số thực thuộc đoạn [0, 1]. Khi đó, với mỗi số nguyên chẵn "k" thuộc {0, …, "n"}, các hàm chỉ thị đều thoả mãn bất đẳng thức sau:
Chứng minh công thức chính.
Chọn một phần từ nằm trong hợp tất cả các tập và gọi formula_18 là các tập chứa nó. Bởi phần tử được đếm 1 lần theo vế trái của phương trình (), nên ta cần chứng minh nó cũng được đếm duy nhất 1 lần theo vế phải. Trong vế phải, các phần cộng giá trị không diễn ra khi các tập con có chứa phần tử được chọn, tức là tất cả tập được chọn đều từ formula_19. Phần cộng đều bằng một cho mỗi tập hợp này (cộng hoặc trừ dựa trên số hạng) và do đó chỉ cần dựa trên số tập con được dùng. Khi đó ta có
Theo định lý nhị thức,
Sử dụng ý formula_22 là đổi chỗ các số hạng đi, ta được
và do vậ, phần tử được chọn được đếm duy nhất một lần trong vế phải của phương trình ().
Chứng minh bằng đại số.
Chứng minh bằng đại số theo các hàm chỉ thị (hay còn gọi là hàm đặc trưng). Hàm chỉ thị của tập con "S" của tập "X" là hàm
Nếu formula_25 và formula_26 là hai tập con của formula_27, thì 
Gọi "A" là hợp formula_29 của các tập hợp "A"1, …, "An". Để chứng minh nguyên lý bao hàm-loại trừ trong tổng quát, trước hết ta cần kiểm tra định thức
cho hàm chỉ thị, trong đó:
Hàm sau
bằng không là bởi: nếu "x" không thuộc "A", thì tất cả các nhân tử đều là 0 − 0 = 0; và ngược lại, nếu "x" có thuộc một số "Am", thì nhân tử thứ "m" tương ứng là 1 − 1 = 0.Bằng cách mở rộng tích ở vế trái, suy ra phương trình ().
Để chứng minh nguyên lý bao hàm-loại trừ cho lực lượng của tập hợp , ta lấy tổng phương trình () trên tất cả các "x" thuộc hợp của "A"1, …, "An". Để từ đây lấy ra phiên bản xác suất, cho giá trị kỳ vọng vào (). Và tổng quát hơn, lấy tích phân phương trình () tương ứng với to "μ". Luôn sử dụng tính tuyến tính khi dẫn xuất ra các phiên bản này.