Toán học tổ hợp (hay giải tích tổ hợp, đại số tổ hợp, lý thuyết tổ hợp) là một ngành toán học rời rạc, nghiên cứu về các cấu hình kết hợp các phần tử của một tập hợp có hữu hạn phần tử. Các cấu hình đó là các hoán vị, chỉnh hợp, tổ hợp,... các phần tử của một tập hợp.
Nó có liên quan đến nhiều lĩnh vực khác của toán học, như đại số, lý thuyết xác suất, lý thuyết ergod (ergodic theory) và hình học, cũng như đến các ngành ứng dụng như khoa học máy tính và vật lý thống kê.
Toán học tổ hợp liên quan đến cả khía cạnh giải quyết vấn đề lẫn xây dựng cơ sở lý thuyết, mặc dù nhiều phương pháp lý thuyết vững mạnh đã được xây dựng, tập trung vào cuối thế kỷ XX (xem trang Danh sách các chủ đề trong toán học tổ hợp). Một trong những mảng lâu đời nhất của toán học tổ hợp là lý thuyết đồ thị, mà bản thân lý thuyết này lại có nhiều kết nối tự nhiên đến các lĩnh vực khác.
Toán học tổ hợp được dùng nhiều trong khoa học máy tính để có được công thức và ước lượng trong phân tích thuật toán.
- Bài toán đếm: Đếm các cấu hình thỏa mãn những tính chất nào đó
- Bài toán liệt kê tổ hợp: Liệt kê tất cả các cấu hình thỏa mãn một tính chất nào đó
- Bài toán tìm kiếm: Tìm kiếm một hoặc một số cấu hình thỏa mãn một tính chất nào đó
- Bài toán tồn tại: Chỉ ra sự tồn tại/không tồn tại một cấu hình tổ hợp thoả mãn một tính chất nào đó
- Bài toán sinh ngẫu nhiên
Cho tập hữu hạn gồm
phần tử: ![{\displaystyle A=\{a_{1},a_{2},...,a_{n}\}}](//wikimedia.org/api/rest_v1/media/math/render/svg/328f135d321d2faf85830fa52afafa9cd690ddb4)
- Chỉnh hợp lặp chập k của n phần tử đó là một bộ sắp thứ tự k phần tử của A, các phần tử có thể lấy lặp lại.
- Chỉnh hợp (không lặp) chập k (
) của n phần tử đó là một bộ sắp thứ tự k phần tử của A, các phần tử đôi một khác nhau.
- Hoán vị của n phần tử đã cho là một cách sắp xếp các phần tử của nó trên đường thẳng.
- Hoán vị vòng quanh của n phần tử đã cho là một cách sắp xếp các phần tử của nó trên đường tròn.
- Tổ hợp chập k các phần tử của A
là một tập con k phần tử
của tập A.
- Chỉnh hợp lặp với tần số cho trước
là chỉnh hợp lăp chập k với
trong đó
xuất hiện đúng
lần,
xuất hiện
lần,
xuất hiện
lần.
- Tổ hợp bội hay tổ hợp lặp chập k các phần tử của một tập hợp n phần tử là một cách lấy ra
lần
các phần tử của một tập hợp, trong đó mỗi phần tử có thể lấy ra nhiều lần.
- Ví dụ cho
và
- Các chỉnh hợp lặp chập 5 của 7 phần tử có thể là:
![{\displaystyle 24355,11111,22334,43215,...}](//wikimedia.org/api/rest_v1/media/math/render/svg/acce821a6a4badbddd2bf87ae26ff41775bace14)
- Các chỉnh hợp không lặp chập 5 của 7 như: 12345, 23456, 73241...
- Các tổ hợp chập 5 như:
![{\displaystyle \{1,2,3,4,5\},\{2,3,4,5,6\},\{3,4,5,6,7\}...}](//wikimedia.org/api/rest_v1/media/math/render/svg/5b0b70ce2983224fae7429962fb4fe5145b8169e)
- Tổ hợp lặp 22234557777 là tổ hợp lặp với tần số 0,3,1,1,2,0,4
- Công thức tính số các chỉnh hợp lặp chập k của n phần tử là
![{\displaystyle F(n,k)=n^{k}}](//wikimedia.org/api/rest_v1/media/math/render/svg/9f127d3727bbf4c03ad01c63f8ee41da055514b8)
- Số hoán vị của n phần tử là n!
- Công thức tính số các chỉnh hợp chập k của n phần tử là
![{\displaystyle A_{n}^{k}={\frac {n!}{(n-k)!}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/b6ab2ca8e44130a1673d9761a2e8e71491db2303)
- Công thức tính số các tổ hợp chập k của n phần tử là
![{\displaystyle C_{n}^{k}={\frac {n!}{k!(n-k)!}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/072d492a23ba8260db7eed662962e7d2201ce90e)
- Công thức tính số 0 ngăn cách thành n nhóm số 1, trong đó có k lần xuất hiện số 1 vì mỗi số 1 tương ứng với một phần tử được chọn và số thứ tự phần tử được chọn là số thứ tự của nhóm. Một nhóm trong đó có thể là rỗng nếu không có số 1 nào giữa hai số 0 liên tiếp. Như vậy mỗi một chuỗi (n – 1 + k) số như trên tương đương một chỉnh hợp lặp chặp k của n phần tử. Chuỗi trên có phân biệt vị trí trước và sau gồm hai phần là phần số 0 và phần số 1. Nếu ta chọn ra k vị trí để đánh số 1 thì các vị trí còn lại trong n + k – 1 vị trí sẽ phải là 0. Số cách chọn như vậy lại là số tổ hợp chập k của n + k – một phần tử. Vậy số chỉnh hợp lặp có công thức như đã nêu trên.
Liệt kê các hoán vị của tập n phần tử
Việc liệt kê toàn bộ các hoán vị của tập
được quy về việc liệt kê tất cả n! hoán vị của tập chỉ số
. Ta sẽ liệt kê các hoán vị của n số tự nhiên
theo thứ tự từ điển. Nhận xét rằng, khi xếp theo thứ tự từ điển, hoán vị đứng trước tiên sẽ là hoán vị
, hoán vị đứng cuối cùng sẽ là hoán vị
.
Ví dụ với n=5, hoán vị đứng đầu là (1,2,3,4,5), đứng cuối là (5,4,3,2,1). Trong hoán vị đầu tiên mỗi số đều nhỏ hơn số đứng ngay sau nó, trong hoán vị cuối cùng thì ngược lại. Vậy kế tiếp sau hoán vị đầu tiên là hoán vị nào?
Hoán vị kế tiếp của một hoán vị (theo thứ tự từ điển)
Giả sử có hoán vị
của n số
.
- Thuật toán sinh hoán vị kế tiếp
- Tìm từ bên phải sang chỉ số
sao cho
.
- Nếu không tìm thấy thì trả lời x là hoán vị cuối cùng, không có hoán vị kế tiếp.
- Nếu có i như vậy:
- sắp xếp các giá trị
theo thứ tự tăng dần.
- đổi chỗ
cho phần tử lớn hơn
gần nhất trong các giá trị ![{\displaystyle x_{i},...,x_{n}}](//wikimedia.org/api/rest_v1/media/math/render/svg/045ec28a887f478fca46783f8980b016b7b9b5e1)
Ví dụ: với n=5
- kế tiếp của hoán vị
là hoán vị
)
- kế tiếp của hoán vị
là hoán vị ![{\displaystyle (1,2,4,3,5)}](//wikimedia.org/api/rest_v1/media/math/render/svg/aac7329fe2f3c1324ae26f313ce48389d4a60dec)
- kế tiếp của hoán vị
là hoán vị ![{\displaystyle (1,2,4,5,3)}](//wikimedia.org/api/rest_v1/media/math/render/svg/e7fa1cd5bc2d7b108ffe4139adf434fec875c7e9)
- ...
- kế tiếp của hoán vị
là hoán vị ![{\displaystyle (5,4,3,2,1)}](//wikimedia.org/api/rest_v1/media/math/render/svg/88d13722292606d69195e3a58985c4c7999cdbbc)
Thuật toán liệt kê tất cả các hoán vị của n số 1,2,...,n
- Khởi tạo:
![{\displaystyle x=(1,2,...,n)}](//wikimedia.org/api/rest_v1/media/math/render/svg/8ad95dadbcd555c4386fa6a3695cca01a7f34af6)
- Tìm x' là hoán vị kế tiếp của x
- Nếu không tìm được thì dừng.
- Nếu thấy, thay x bằng x' quay lại 2.
Ví dụ: Liệt kê 24 hoán vị của 1,2,3,4 theo thứ tự từ điển
1234 | 1243 | 1324 | 1342 | 1423 | 1432 |
2134 | 2143 | 2314 | 2341 | 2413 | 2431 |
3124 | 3142 | 3214 | 3241 | 3412 | 3421 |
4123 | 4132 | 4213 | 4231 | 4312 | 4321 |
Liệt kê các tổ hợp chập k của tập n phần tử 1,2,3,4,5,6
![](//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png) |
Wikimedia Commons có thêm hình ảnh và phương tiện truyền tải về Toán học tổ hợp. |