1. Trang chủ
  2. » Cao đẳng - Đại học

Bài giảng toán rời rạc chương 3 lý thuyết tổ hợp

62 2,5K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 398,75 KB

Nội dung

MỞ ĐẦUTrong rất nhiều bài toán tổ hợp, việc chỉ ra sựtồn tại của một cấu hình tổ hợp thỏa mãn các tínhchất cho trước có ý nghĩa quan trọng về mặt líthuyết cũng như thực tế.. Trong tổ hợp

Trang 1

LÝ THUYẾT TỔ

HỢPChương 3:

Trang 2

3 1 BÀI TOÁN TỒN TẠI

3.3 BÀI TOÁN LIỆT KÊ

3.4 BÀI TOÁN TỐI ƯU

3.2 BÀI TOÁN ĐẾM

Trang 3

BÀI TOÁN TỒN

TẠI

Trang 4

MỞ ĐẦU

Trong rất nhiều bài toán tổ hợp, việc chỉ ra sựtồn tại của một cấu hình tổ hợp thỏa mãn các tínhchất cho trước có ý nghĩa quan trọng về mặt líthuyết cũng như thực tế

Trong tổ hợp xuất hiện một bài toán quantrọng là Bài toán tồn tại : Xét sự tồn tại của các cấu hình tổ hợp thỏa mãn các tính chất cho trước.

Trang 5

Một bài toán tồn tại tổ hợp xem là giải xong

nếu hoặc chỉ ra một cách xây dựng cấu hình, hoặc chứng minh rằng chúng không có Tuy nhiên cả hai

khả năng trên đều không phải dễ Để thấy rõ sự phứctạp của vấn đề, dưới đây ta sẽ xét một số bài toán tồntại tổ hợp cổ điển nổi tiếng

Trang 6

Bài toán 36 sĩ quan:

MỘT SỐ VÍ DỤ

Bài toán này do nhà toán học Euler đưa ra, nội dung như sau:

Người ta triệu tập từ 6 trung đoàn, mỗi trung

đoàn 6 sĩ quan có 6 cấp bậc khác nhau: thiếu úy, trung

úy, thượng úy, đại úy, thiếu tá, trung tá Hỏi có thể sắp

xếp 36 sĩ quan này thành hình vuông 66 sao cho mỗihàng dọc cũng như hàng ngang đều có đại diện của 6 trung đoàn và cũng có 6 cấp bậc khác nhau

Trang 7

Để đơn giản ta dùng các chữ cái in hoa A, B,

C, D, E, F để chỉ 6 trung đoàn và các chữ cái thường

a, b, c, d, e, f để chỉ 6 cấp bậc

Bài toán có thể tổng quát hóa bằng cách thay

số 6 bằng n

Trang 8

AcDa

AaDc

BbCd

DbAd

CaBc

CcBa

DdAb

Trong trường hợp n = 4, một lời giải của bài toán 16

sĩ quan:

Trang 9

AeEd

Dc

AdEc

DbCa

Be

DaCe

BdAc

Eb

BcAb

EaDe

Cd

EeDd

CcBb

AaMột lời giải cho trường hợp n = 5 của bài toán 25

sĩ quan:

Trang 10

Do lời giải của bài toán có thể biểu diễn bởihai hình vuông với các chữ cái hoa và thường xếp

cạnh nhau nên bài toán tổng quát còn có tên gọi là bài toán hình vuông la tinh trực giao.

Sinh thời, nhà toán học Euler đã mất nhiềucông sức đi tìm lời giải cho bài toán nhưng đã không

thành công Vì vậy, ông đã đưa ra giả thuyết rằng lời giải cho bài toán tổng quát là không tồn tại

Trang 11

Giả thuyết này được nhà toán học Pháp

Tarri chứng minh năm 1901 bằng cách duyệt tất cả các khả năng xếp Dựa trên giả thuyết không tồn tại lời giải cho n = 2 và n = 6 , Euler còn đưa ra giả thuyết tổng quát hơn là: Không tồn tại hình vuông

la tinh trực giao cấp 4k + 2.

Trang 12

Giả thuyết này tồn tại suốt 2 thế kỷ Mãi đếnnăm 1960 ba nhà toán học Mỹ là Boce, Parker, Sricanda mới chỉ ra một lời giải với n = 10 và sau

đó đưa ra phương pháp xây dựng hình vuông la tinh trực giao cấp 4k + 2 với k > 1.

Trang 13

Bài toán 2n điểm trên lưới nn ô vuông

Cho một lưới gồm nn ô vuông Hỏi có thể đặt 2n điểm trên lưới sao cho không có 3 điểm nào cùngnằm trên 1 hàng hay 1 cột?

Hiện nay người ta mới biết lời giải đối với n 15 Sau đây là lời giải với n = 12.

Trang 15

NGUYÊN LÝ DIRICHLET

Nguyên lý Dirichlet (nguyên lý chuồng chim):

Nếu xếp nhiều hơn n đối tượng vào n chiếc hộp thìtồn tại hộp chứa ít nhất 2 đối tượng

Ví dụ:

1 Trong 367 người bao giờ cũng có ít nhất 2 ngườitrùng ngày sinh nhật, bởi vì trong năm có nhiều nhất

366 ngày

Trang 16

2 Trong một kì thi học sinh giỏi, điểm bài thiđược dánh giá bời một số nguyên trong khoảng từ 0 đến 100

Hỏi rằng có ít nhất bao nhiêu thí sinh dự thi đểchắc chắn tìm được hai học sinh có kết quả thi nhưnhau?

Trang 17

Nguyên lý Dirichlet tổng quát

Nếu xếp n đối tượng vào k chiếc hộp thì tồn tại hộpchứa không ít hơn n/k đối tượng

Ví dụ:

1 Trong 100 người thì có ít nhất 9 người trùng

tháng sinh

Trang 18

2 Có 5 loại học bổng khác nhau Hỏi rằng phải có ítnhất bao nhiêu sinh viên để chắc chắn rằng có ít nhất 6 người cùng nhận học bổng như nhau?

Ví dụ:

Chứng minh rằng: Trong hội nghị có n người bao giờcũng có 2 người có số người quen trong số những người tham dự bằng nhau.

Trang 20

Vậy xảy ra một trong hai trường hợp sau:

},1n

,,2,1{n

n,1i

},2n

,,1,0{n

i i

Theo nguyên lý Dirichlet thì có 2 người cùng sốngười quen

Trang 22

3.2.1 MỘT SỐ NGUYÊN LÍ CƠ BẢN

a Nguyên lí cộng:

- Nếu A và B là hai tập rời nhau (AB = ) thì

B A

A1  2    1  2  

Trang 23

+ Phương án 1: có m1 cách thực hiện+ Phương án 2: có m2 cách thực hiện

………

+ Phương án k: có mk cách thực hiệnTổng số cách thực hiện công việc là:

m1 + m2 + …+mkMột công việc được thực hiện theo k phương án:

Chú ý: Nguyên lí cộng còn được phát biểu như sau:

Trang 24

b Nguyên lí nhân:

Một công việc được chia làm k bước thực hiện, bướcthứ i có ni cách thực hiện Khi đó tổng số cách thựchiện công việc:

n1n2 …nk (cách)

Trang 25

1 Trà 2 Sữa 3 Bia 4 Coca

Có bao nhiêu cách chọn bữa ăn gồm: 1 món khai vị, 1 món chính và 1 loại đồ uống?

Trang 26

Ví dụ 2:

Cho 5 kí tự A, B, C, D, E

(a) Có bao nhiêu xâu kí tự có độ dài 4 có thể lậpđược từ các kí tự đã cho nhưng không lặp kí tự.(b) Có bao nhiêu xâu kí tự trong (a) bắt đầu từ B.(c) Có bao nhiêu xâu kí tự trong (a) không bắt đầu

từ B

Trang 27

Gọi xâu s = abcd

a) a có 5 cách chọn, b có 4 cách, c có 3 cách, d có 2 cách

Theo nguyên lý nhân số xâu chữ là:

5.4.3.2 = 120b) Số xâu chữ bắt đầu từ B: 4.3.2 = 24

c) Số xâu chữ không bắt đầu từ B: 120 – 24 = 196

Trang 28

Ví dụ 3:

a- Đếm các xâu nhị phân có kích thước 1 byte.b-Đếm các xâu nhị phân có kích thước 1 byte cóhai bit đầu 10 hoặc 01

Trang 30

Có bao nhiêu cách xếp 3 người Việt, 5 người Pháp

và 6 người Mỹ ngồi một ghế dài sao cho người cùng quốc tịch ngồi cạnh nhau?

Ví dụ 4:

Trang 31

b Chỉnh hợp lặp

* Một chỉnh hợp lặp chập k của n phần tử là một bộ

có thứ tự gồm k phần tử lấy từ n phần tử đã cho, các phần tử có thể được lặp lại.

Trang 32

* Số các chỉnh hợp không lặp chập k của n phần tử:

)!

kn

(

!

n)

1kn

) (

1n.(

Trang 33

Ví dụ 6:

Có bao nhiêu số hàng trăm với 3 chữ số khác nhau

được thiết lập từ các chữ số: 1, 2, 3, 4, 5?

Trang 34

d Tổ hợp

* Một tổ hợp chập k của tập X gồm n phần tử là mộttập con có k phần tử của X

Trang 37

Ví dụ 9:

Một nhóm sinh viên có 7 nam và 5 nữ xếp thànhhàng dọc Hỏi có bao nhiêu cách sắp xếp hàng để

không có 2 nữ nào đứng cạnh nhau?

(*Cho sv đề xuất cách giải, nếu ko được gọi 2

sinh lên ghi 2 cách xếp sau cho 2 nữ không

đứng cạnh nhau*=> tổng quát cách giải.*)

Trang 38

Ví dụ 10:

Có bao nhiêu cách xếp k bít 0 và m bít 1 (k  m) trên hàng ngang sao cho không có 2 bit 0 kề nhau?

Trang 39

Ví dụ 11:

Cho lưới hình chữ nhật gồm mxn ô vuông (xem hình vẽ)

(0, 0)

(n, m)(0, m)

(n, 0)

b Bài toán đếm số đường đi

Trang 40

Có bao nhiêu cách đi từ nút (0, 0) đến (n, m) nếuchỉ cho phép đi trên cạnh các ô vuông theo chiều

sang phải hoặc lên trên?

Trang 41

3.2.4 NGUYÊN LÝ BÙ TRỪ

- Cho A và B là hai tập bất kì thì

B A

B A

B

- A, B, C là 3 tập bất kì thì

C B

A C

B

C A

B A

C B

A C

B A

Trang 42

Ví dụ 12:

Có bao nhiêu xâu nhị phân có độ dài 10 hoặc bắtđầu bởi 00 hoặc kết thúc bởi 11?

Trang 43

3.3.3 THUẬT TOÁN QUAY LUI

3.3 BÀI TOÁN LIỆT KÊ

3.3.1 GiỚI THIỆU BÀI TOÁN

3.3.2 PHƯƠNG PHÁP SINH

Trang 44

3.3.1 GiỚI THIỆU BÀI TOÁN

Ví dụ:

Một băng video có thể ghi được C giây Ta có n phim

video với lượng thời gian tương ứng là: t1, t2, …, tn Ta phải chọn k phim i1, i2, …, ik sao cho tổng thời gian:

 { i , i , i } i

i

k 2

1

t

lớn nhất và không vượt quá C

Trang 45

Một cách chân phương là liệt kê tất cả các tập con {i 1 , i 2 , …, i k } của tập gồm n phim và chọn tập cótổng trên là lớn nhất và không vượt quá C.

Trong nhiều trường hợp, khi không có thuậttoán để giải quyết những bài toán như trên thì phương pháp liệt kê với sự trợ giúp của máy tính vẫn là phương pháp khả dĩ.

Trang 46

* Bài toán liệt kê là bài toán đưa ra danh sách tất cảcấu hình tổ hợp có thể có.

* Bài toán liệt kê xác định thuật toán xây dựng lần

các yêu cầu sau:

- Không lặp lại cấu hình

- Không bỏ sót cấu hình

Trang 47

Ta nói rằng s nhỏ hơn t (theo nghĩa từ điển), ký hiệu s

< t, nếu thoả mãn 1 trong 2 điều kiện sau đây:

Trang 49

b Thuật toán sinh tổng quát

+ B1: Khởi tạo, gán s  so

Kí hiệu s là cấu hình hiện hành, s o là cấu hình đầu tiên (theo thứ tự từ điển)

+ B2: Kết xuất s

+ B3: Kiểm tra tiêu chuẩn kết thúc:

Nếu s là cấu hình cuối thì kết thúc, ngược lạisang bước 4

+ B4: Tìm cấu hình t đứng sau s theo thứ tự từ điển

Gán s  t và quay lại bước 2

Trang 50

c Liệt kê tất cả các dãy nhị phân có độ dài bằng n

Cho n  N Hãy liệt kê (theo nghĩa từ điển) tất cảcác dãy nhị phân độ dài n, tức là dãy [b1, b2, ,bn] với bi  {0, 1},  i = 1, 2, …, n

Số dãy nhị phân là 2 n và dãy nhị phân đầu tiên:

s o = [0, 0, , 0]

* Phát biểu bài toán

Trang 51

Cho dãy nhị phân s = [s1, s2, …, sn], ta tìm dãy

kế tiếp t = [t1, t2, …, tn]

- Từ dãy s, xuất phát từ sn đi từ phải sang trái tìm

phần tử đầu tiên s m, 1  m  n, thỏa s m = 0

+ Nếu không tìm thấy thì s = [1, 1, , 1] là dãy cuối

Phương pháp tìm dãy kế tiếp

Trang 52

+ Nếu tìm thấy thì ta xây dựng dãy t = [t1, t2, , tn] như sau:

Trang 53

Thuật toán liệt kê dãy nhị phân

- Đầu ra: Danh sách tất cả các dãy nhị phân độ dài n

theo thứ tự từ điển tăng dần

+ B2: Kết xuất s

+ B1: Khởi tạo: Gán si = 0 với mọi i = 1, 2, , n

- Đầu vào: nhập n

Trang 54

+ Bước 3: Tìm m thoả mãn m = max{i | si = 0}

 Nếu không tìm thấy thì s = [1,1, ,1] là dãy cuốicùng  kết thúc

 Nếu tìm thấy ta đặt:

sm  1 và si  0 với mọi i = m + 1, m + 2, , n Quay lại bước 2

Trang 55

VÍ DỤ

Liệt kê các dãy nhị phân có độ dài 3

Trang 56

3.3.3 THUẬT TOÁN QUAY LUI

Nội dung chính của thuật toán này là xây dựng dầncác thành phần của cấu hình bằng cách thử tất cả cáckhả năng

Giả thiết cấu hình cần được mô bằng một dãy gồm n thành phần x1x2 xn

Giả sử đã xác định được i – 1 thành phần x1, x2, , xi-1

Ta xác định thành phần thứ i là xi bằng cách duyệt tất

cả các khả năng có thể có (đánh số các khả năng từ 1 đến ni)

Trang 57

Với mỗi khả năng j, kiểm tra xem khả năng j có chấpnhận được không Có thể có 2 trường hợp sau:

- Nếu j được chấp nhận thì xác định được xi theo j, sau đó nếu i = n thì ta có được một cấu hình, còn nếu

i < n thì tiến hành xác định xi+1

- Nếu thử tất cả các khả năng mà không có khả năngnào được chấp nhận thì quay lại bước trước để xácđịnh lại xi-1

Trang 58

Bước xác định xi có thể được diễn tả qua thủ tục đệ quy sau:

Trang 59

Đoạn chương trình chính của bài toán liệt kê có dạng:

Begin

Init; Try(1)End

Trang 60

Đoạn chương trình liệt kê các dãy nhị phân có độ dài n:

Varn:integerx: array[0 20] of 0 1

VÍ DỤ

Trang 62

Init; Try(1);End

Ngày đăng: 04/07/2014, 14:46

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w