1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu bài toán tô màu đồ thị và ứng dụng lập lịch thi trong đào tạo theo hệ thống tín chỉ

63 936 3
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 63
Dung lượng 12,08 MB

Nội dung

Trang 1

ONONT NYA NJANON HNIL AVI IS OVHL NYA NVM €10¢ - L110 VOH

BO GIAO DUC VA DAO TAO

TRUONG DAI HOC SU PHAM HA NOI 2

NGUYEN VAN LUQNG

NGHIÊN CỨU BÀI TỐN TƠ MÀU ĐỊ THỊ VA UNG DUNG LAP LICH THI TRONG DAO TAO

THEO HE THONG TIN CHi

LUAN VAN THAC Si MAY TINH

HÀ NỘI, 2013

Trang 2

BO GIAO DUC VA DAO TAO

TRUONG DAI HOC SU PHAM HA NOI 2

NGUYEN VAN LUQNG

NGHIEN CUU BAI TOAN TO MAU DO THI VA UNG DUNG LAP LICH THI TRONG DAO TAO

THEO HE THONG TIN CHi

Chuyén nganh: Khoa hoc may tinh

Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ MÁY TÍNH

Người hướng dẫn khoa học: PGS TS Lê Huy Thập

HÀ NỘI, 2013

Trang 3

LOI CAM ON

Trước tiên, em xin gửi lời cảm ơn và lịng biết ơn sâu sắc nhất tới thầy giáo PGS TS Lê Huy Thập, người đã luơn động viên, tận tình hướng dẫn và giúp đỡ em rất nhiều về kiến thức, kinh nghiệm trong quá trình thực hiện dé tai

Em xin chân thành cảm ơn các thầy cơ phịng Sau Đại học, các thầy cơ

khoa Cơng nghệ thơng tin, các thầy cơ thuộc Viện Cơng nghệ Thơng tin Viện Khoa học và Cơng nghệ Việt Nam, cũng như tất cả các thầy cơ Trường Đại

học Sư phạm Hà Nội 2 đã tạo điều kiện và truyền đạt những kiến thức quý

báu cho em trong suốt quá trình học tập

Xin chân thành cảm ơn các anh, các chị và các bạn học viên lớp Cao học

KISKHMT- trường Đại học sư phạm Hà Nội 2 đã luơn động viên, giúp đỡ,

nhiệt tình chia sẻ những kinh nghiệm học tập và cơng tác trong suốt khố học Mặc dù rất cố gắng, song luận văn này khơng thể tránh khỏi những thiếu sĩt, kính mong được sự chỉ dẫn của các quý thầy cơ và các bạn

Hà Nội, tháng 12 năm 2013 Tác giả

Trang 4

LOI CAM DOAN

Tơi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này là trung thực và khơng trùng lặp với các đề tài khác Tơi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thơng tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc

Hà Nội, tháng 12 năm 2013 Tác giả

Trang 5

MUC LUC

„I9 1

Chuong 1: CO SO LY THUYET onc eeececccecseesseessesssesssesssesseessesssesssesssessssssecsses 4 1.1 Tổng quan đơn đồ thị vơ hướng hữu hạn -2- 2© 2+zz+£z2zxz+rxeee 4

1.1.1 Đơn đồ thị vơ hướng liên thơng 2-2 2+2+++czxe+czecee 4

1.1.2 Đồ thị phẳng 2- 2+2 s22 E221127112711221122112211 21121 rreg 5 1.1.3 Đồ thị vơ hướng con đầy đủ và màu đồ thị s¿-+- 6

1.2 Giới thiệu các thuật tốn tơ màu . ¿25525 +22 *£22* + £+zezseczz 11

1.2.1 Thuật tốn thu gọn (hịa nhập) dinh (Contraction Algorithm) 11 1.2.2 Thuật tốn tơ màu tuần tự (Sequential Coloring) 14

1.2.3 Thuật tốn duyệt theo chiều sâu cĩ chặn nhánh - 19

1.2.4 Thuật tốn tham lam (Greedy Coloring) - ‹ ++s++s++s>+ 20 1.3 Giới thiệu các phương pháp lập lịch thi 5-52 5<+s+<+x+x+e> 22 1.3.1 Các phương pháp thơng thường - ¿5s +5 +++++ssxexsexssss 22

1.3.2 Phương pháp lập lịch thi dựa vào tơ màu đồ thị .- 22

1.4 Kết luận chương ¿ 2c s S E1221121112111211121112111211 1111111111 26 Chuong 2: UNG DUNG LY THUYET DO THI VAO LAP LICH THI 27 QA Ma tran 1idtr kK oc ccceececcecccecseccscssecsecsevssecsucsesssecsessussasesucsussuessucsussaseaecsecesees 27

2.2 Xác định dé thi con day đủ dựa vào ma trận liền kề - s5: 29

2.3 Tơ màu đồ thị dựa vào ma trận liền kề -¿- 2-52 xe+Et2EEvEEErEzrxsrs 34

2.3.1 Thuật tốn sắp xếp đỉnh của đơn đồ thị -sccs+zszxzrvrs 34

2.3.2 Thuật tốn tơ màu đơn đồ thị với ma trận liền kề : 35

Pin 44 37

2.4.1 Đặt vấn đề

2.4.2 Bài tốn lập lịch thi theo hệ thống tin chi

Trang 6

Chuong 3: XAY DUNG UNG DUNG LAP LICH THI TRONG DAO TAO THEO HỆ THĨNG TÍN CHỈ 2-2 ©st+EÊEE+EESEEEEEEEEEEEESEEerkrrrrsrxrrk 49

3.1 Ứng dụng lập lịch thi tại Trường Đại học Sư phạm Hà Nội 2 49

3.1.1 Phân tích, thiết kế bằng ƯMIL - 22-22 E+2£E+EEtEErtrkesree 49

3.1.2 Các chức năng của chương trình - ++s+sss+sxserseeeereresrs 50

Trang 8

MO DAU

1 Ly do chgn dé tai

Lap lich biéu 1a viéc khong thể thiếu ở bất kì tổ chức nào hoạt động

trong xã hội lồi người Từ ngàn xưa, con người đã thực hiện việc lập kế

hoạch bằng cách ghi chép bằng tay các kí hiệu hay số liệu, thơng tin trên vách

đá, trên tre, trên vải và trên giấy, cĩ thé gọi chung là trên sơ sách

Ngày nay, cùng với tiến bộ xã hội, khoa học máy tính đã cĩ những

bước tiến dài, đem lại sự tiện lợi và hiệu quả kinh tế cao trong rất nhiều lĩnh vực từ cơng nghiệp cho đến đời sống Việc lập lịch biểu bắt đầu cĩ sự giúp sức của máy tính, giúp ghi nhớ các số liệu lớn một cách dễ dàng và thuận lợi

hơn so với ghi chép bằng tay trên số sách, nhất là khi vận chuyên Nhiều phần

mềm máy tính cĩ chức năng hỗ trợ lập lịch như MS.Excel, MS.Project, nhưng sự “thiếu thơng minh” của chúng vẫn làm cho con người phải tiêu tốn

nhiều thời gian cũng như cơng sức khi lập lịch Nhu cầu máy tính thơng minh

như con người trở thành bức thiết

Các kỹ thuật mạnh mẽ của cơng nghệ tri thức đã sớm cho ra đời những cỗ máy cĩ trí thơng minh nhân tạo dạng hệ chuyên gia như máy chan đốn

bệnh, máy dự báo thời tiết, hoặc dạng hệ tư vấn hỗ trợ con người ra quyết

định trong nhiều tình huống vơ cùng hữu ích Từ đĩ, những kỹ thuật này cũng hỗ trợ việc lập lịch biểu trên máy tính trở nên đễ dàng hơn

Thơng thường, tại một trường đại học, nhu cầu cĩ một cơng cụ hỗ trợ

tự động lập lịch biểu hết sức cần thiết cho hai việc cụ thể: lập lịch giảng dạy

(hay lịch cơng tác) và lập lịch thi Tùy vào đặc thù và nhu cầu của mỗi trường

mà các trường đã tự xây dựng cơng cụ lập lịch thi cho riêng mình, cơng cụ

này được xây đựng bằng những kỹ thuật khác nhau nhằm đạt kết quá càng gần với mong muốn càng tốt Một số kỹ thuật thường được dùng đề giải quyết

Trang 9

nhưng, qua khảo sát cho thấy khi sử dụng các kỹ thuật trên kết quả của bai tốn vẫn cịn nhiều hạn chế Vì thế, con người vẫn hướng đến một giải pháp sao cho kết quả bài tốn lập lịch thi “tối ưu” hơn nữa

Đề tài: “Nghiên cứu bài tốn tơ màu đồ thị và ứng dụng lập lịch thi

trong đào tạo theo hệ thống tín chi” tap trung nghiên cứu về lý thuyết đồ thị

mà cụ thể ở đây là bài tốn “Tơ màu đồ thị”, qua đĩ tác giả đề xuất một

phương pháp lập lịch thi đựa trên thuật tốn tơ màu đồ thị 2 Mục đích nghiên cứu

Nghiên cứu thuật tốn tơ mau dé thi

Ứng dụng xây dựng chương trình lập lịch thi với 2 tiêu chí: phân bổ

đều thời gian sao cho các mơn học trong một hệ và các mơn thi sử dụng chung phịng thực hành khơng thi trùng nhau, thời gian rải đều cho các mơn trong một lớp và trong tồn thời gian

3 Nhiệm vụ nghiên cứu

Lưu các tham số của đơn đồ thị vơ hướng hữu hạn vào cơ sở dữ liệu

quan hệ, tơ màu và lập lịch biểu

4 Đối tượng và phạm vi nghiên cứu

Lý thuyết đồ thị là ngành khoa học được phát triển từ lâu nhưng lại cĩ

nhiều ứng dụng hiện đại Một đồ thị là một tập hợp các đỉnh và các đường nối

các đỉnh gọi là cạnh (cung) Tơ màu đồ thị là phép gán màu cho mỗi đỉnh sao cho khơng cĩ hai đỉnh liền kề nhau được gán cùng màu

Bài tốn lập lịch thi được mơ hình hĩa thành bài tốn tơ màu đồ thị như

sau: lập đồ thị cĩ các đỉnh là các mơn thi, hai mơn thi kề nhau nếu cĩ một sinh

viên thi cả hai mơn này Thời điểm thi của mỗi mơn được biểu thị bằng các

màu khác nhau

5 Những đĩng gĩp mới của đề tài

Trang 10

phạm Hà Nội 2 nĩi riêng, đề tài nguyên cứu của tác giả giúp phần tin học hĩa cơng tác đào tạo cụ thê là cơng tác lập lịch thi của các khoa

Hiện nay các khoa Trường Đại học Sư phạm Hà Nội 2 vẫn cịn lập lịch

thi thủ cơng, Trợ lý giáo vụ khoa xếp bằng tay trên file đữ liệu excel hoặc word Với đề tài của tác giả nghiên cứu sẽ thích hợp với thực tiễn sử dụng của Trường Đại học Sư phạm Hà Nội 2

6 Phương pháp nghiên cứu

Nghiên cứu tài liệu, tìm hiểu các thơng tin trên Internet về các phương

pháp lập lịch biểu

Nghiên cứu về các thuật tốn tơ màu

Ứng dụng lý thuyết tơ màu đồ thị vào việc lập lịch biểu, xây dựng

Trang 11

Chwong 1: CO SO LY THUYET 1.1 Téng quan don d6 thị vơ hướng hữu hạn

1.1.1 Đơn đồ thị vơ hướng liên thơng

Định nghĩa:

Đơn đồ thị hữu hạn vơ hướng được kí hiệu là G =(V,E) trong đĩ:

i) V là tập hợp khác rỗng mà các phần tử của nĩ gọi là đỉnh của Œ và card(V) =n <oo,

ii) E là tập các cặp (u,v) hai phần tử phân biệt khơng cĩ thứ tự của E được gọi là cạnh của Œ Cạnh của E được kí hiệu là e = (u, v) hoặc e = uv

Mỗi cặp đỉnh cĩ nhiều nhất một cạnh

s Một số khái niệm và tính chất cơ bản:

Bậc của đỉnh: Đồ thị vơ hướng G=(7,E) Bậc của đỉnh v, ký hiệu là

deg(v), là số cạnh kề với v, trong đĩ một khuyên tại một đỉnh được đếm hai

lần cho bậc của đỉnh ấy Định lý:

Cho đơn đồ thị G=(V,E), m là số cạnh (cung) 1) 2m=>° _, deg(v)

2) Số đinh bậc lẻ của dé thi la sé chin

Đăng cấu: Cho hai đơn đồ thị G=(,E) và G=(V,E') Ta nĩi rằng G

dang cdu G’, ky hiéu G = G’, néu tồn tai song anh f V— V’ sao cho: y là cạnh của G © f(u)f(v) 1a canh cua G’

Néu G va G' là các đơn đồ thị vơ hướng đẳng câu qua ánh xạ ƒ thì

chúng cĩ: Cùng số đỉnh, cùng số cạnh, cùng số đỉnh với bậc cho sẵn và

deg(v)=deg(fv))

Do thi con:

Trang 12

Liên thơng: Đồ thị G=(7,E) được gọi 1a lién thơng nếu cĩ đường đi giữa mọi cặp đỉnh ø, v bất kỳ trong G

1.1.2 Đồ thị phẳng

Định nghĩa 1: Mot đồ thị được gọi là phẳng nếu nĩ cĩ thể vẽ được trên

một mặt phẳng mà khơng cĩ các cạnh nào cắt nhau (ở một điểm khơng phải là điểm mút của các cạnh) Hình vẽ như thế gọi là một biểu diễn phẳng của đồ thị

Thi du 1:

1) Một cây, một chu trình đơn là một đồ thị phẳng

2) K¿ là đồ thị phẳng bởi vì cĩ thể vẽ lại như hình bên khơng cĩ đường

cắt nhau:

Đồ thị K, K¿ vẽ khơng cĩ đường cắt nhau

3) Xét đồ thị G như trong hình dưới đây Cĩ thể biểu diễn G một cách

khác như trong hình bên phải, trong đĩ bất kỳ hai cạnh nào cũng khơng cắt

nhau

4) Dé thi day đủ K; là một thí dụ về đồ thị khơng phẳng

Định nghĩa 2: Cho G là một đồ thị phẳng Mỗi phần mặt phẳng giới hạn bởi một chu trình đơn khơng chứa bên trong nĩ một chu trình đơn khác, gọi

Trang 13

Mỗi đồ thị phẳng liên thơng cĩ một miền vơ hạn duy nhất (là phần mặt phẳng

bên ngồi tất cả các miền hữu hạn) Số cạnh ít nhất tạo thành biên gọi là đai của G; trường hợp nếu G khơng cĩ chu trình thì đai chính là số cạnh của G

Thí dụ 2:

1) Một cây chỉ cĩ một miền, đĩ là miền vơ hạn

2) Đồ thị phẳng ở hình dưới cĩ 5 miền, M5 là miền vơ hạn, miền MI cĩ biên abgfa, miền M2 cĩ biên là bcdhpgb, Chu trình đơn abcdhgfa khơng giới hạn một miền vì chứa bên trong nĩ chu trình đơn khác là abgfa Định lý (Euler, 1752): Nếu một đồ thị phẳng liên thơng cĩ n đỉnh, p cạnh và d miễn thì ta cĩ hệ thức: n-pt+d=2 Chứng minh: xem [2, 3, 4, 6]

Hệ quả: Trong một đồ thị phẳng liên thơng tuỳ ý, luơn tồn tại ít nhất một đỉnh cĩ bậc khơng vượt quá 5

Chứng minh: xem [5]

1.1.3 Dé thi vơ hướng con đây đủ và màu đồ thị

Đồ thị đầy đủ ø đỉnh, ký hiệu la K,,, la don đồ thị vơ hướng mà giữa hai

đỉnh bất kỳ của nĩ luơn cĩ cạnh nối Đồ thị K„ cĩ tất cả n(n-1)/2 canh No la

Trang 14

Vi du:

Đề thị đầy đủ K;

Một đơn đồ thị vơ hướng G là mơt cap (VE) voi ƒ là một tập các đỉnh

và E là một tập các cạnh của đồ thị G, trong đĩ ø là một đỉnh liền kề v nếu và

chỉ nếu /,v} là một cạnh trong E

Đồ thị vơ hướng con đầy đủ của G là một đồ thị vơ hướng cĩ tập đỉnh

€ ŒV sao cho mỗi cặp đỉnh trong C là kề nhau ở trong Ớ Bài tốn xác định

đồ thị vơ hướng con đây đủ là bài tốn thuộc lớp NP- đầy đủ

Màu của đồ thị G (hay cịn gọi là sắc số của đồ thị G) là số màu ít nhất

x(G) cần thiết để tơ màu các đỉnh của G sao cho các đỉnh kề nhau được tơ bởi

các màu khác nhau Vi du:

Cho đơn đồ thị vơ hướng G đưới đây:

Ta thay rang 4 dinh b, d, g, e đơi một kề nhau nên phải được tơ bằng 4

màu khác nhau Do đĩ x(G) > 4 Ngồi ra, cĩ thể đùng 4 màu đánh số 1, 2, 3,

Trang 16

s* Một số định lý và mệnh đề về màu (sắc số) đồ thị: Định lý 1: Nếu đồ thị G chứa một đồ thị con đăng cấu với đồ thị đầy đủ K; thì x(G) > n Chứng minh: xem [5] Định lý 2: Nếu đơn đồ thị G khơng chứa chu trình độ dài lẻ thì x(G) =2 Chứng minh: xem [5] Định lý 3: Với mỗi số nguyên dương n, tồn tại một đồ thị khơng chứa K¿ và cĩ sắc số bằng n Chứng minh: xem [5] Định lý 4:

Nếu mọi đỉnh của đồ thị G cĩ bậc khơng lớn hơn k thì x(G) < k+] Ching minh: xem [5]

Định lý 5: Với một đồ thị G bat kỳ, ta cĩ thể tìm được một cách phân

hoach V(G)= V1 U V2 (Vi, V2# ©) sao cho x(G[V;]) + x(G[V›])E x(G)

Định lý 6: Nếu G là đồ thi khong day đủ, ta cĩ thể tìm được một cách phân hoạch V(G}= Vị v2 V¿ (Vị, V;# Ø) sao cho x(G[V¡]) + x(G[V›]) > x(G)

Định lý 7: Giả sử [V(G)|=n và V(G) cĩ một phân hoạch {V¡,Vạ, ., Vụ}

sao cho (WV /<i <j <k, hai đỉnh bat ky xe Vi va ye V; |x vay khong ké nhau),

khi đĩ x(G) < n-k+1

Dinh ly 8: Nếu G là đơn đồ thị n đỉnh, khi đĩ ta cĩ x(Œ ) +zx(Œ)< n+1 và x(É ) x(Œ ) >n

Định lý 9: (Định lý 5 màu của Kempe-Heawood): Mọi đồ thị phẳng

đều cĩ thê tơ đúng bằng 5 màu

Chứng minh: xem [5]

Định lý 10: (Định lý 4 màu của Appel-Haken): Mọi đồ thị phẳng đều

Trang 17

10

Định lý Bốn màu đầu tiên được đưa ra như một phỏng đốn vào năm 1850 bởi một sinh viên người Anh tên là F Guthrie và cuối cùng đã được hai nhà tốn học Mỹ là Kenneth Appel và Wolfgang Haken chứng minh vào năm 1976 Trước năm 1976 cũng đã cĩ nhiều chứng minh sai, mà thơng thường rất khĩ tìm thấy chỗ sai, đã được cơng bố Hơn thế nữa đã cĩ nhiều cố gắng một cách vơ ích để tìm phản thí dụ bằng cách cơ vẽ bản đồ cần hơn bốn màu đề tơ nĩ

Cĩ lẽ một trong những chứng minh sai nồi tiếng nhất trong tốn học là

chứng minh sai “bài tốn bến màu” được cơng bố năm 1879 bởi luật sư, nhà

tốn học nghiệp dư Luân Đơn tên là Alfred Kempe Nhờ cơng bố lời giải của “bài tốn bốn màu”, Kempe được cơng nhận là hội viên Hội Khoa học Hồng gia Anh Các nhà tốn học chấp nhận cách chứng minh của ơng ta cho tới 1890, khi Percy Heawood phát hiện ra sai lầm trong chứng minh của Kempe Mặt khác, dùng phương pháp của Kempe, Heawood đã chứng minh được “bài tốn năm màu” (tức là mọi bản đồ cĩ thê tơ đúng bằng 5 màu)

Như vậy, Heawood mới giải được “bài tốn năm màu”, cịn “bài tốn bốn màu” vẫn cịn đĩ và là một thách đĩ đối với các nhà tốn học trong suốt

gần một thế kỷ Việc tìm lời giải của “bài tốn bốn màu” đã ảnh hưởng đến sự

phát triển theo chiều hướng khác nhau của lý thuyết đồ thị

Trang 18

11

trong chương trình và điều đĩ dẫn tới kết quả sai khơng? Lý luận của họ cĩ

thực sự là một chứng minh hay khơng, nếu nĩ phụ thuộc vào thơng tin ra từ một máy tính khơng đáng tin cậy?

1.2 Giới thiệu các thuật tốn tơ màu

Một cách tơ màu các đỉnh của đồ thị G=(7, E) là một anh xa F: VN, trong đĩ các đỉnh kề nhau được tơ bởi các màu khác nhau trong A (A Ia tap

hợp các số nguyên khơng âm), tức là nếu wv e E thì F(u) # F(v) Sắc số x(Œ ) là số màu ít nhất cần thiết cho một cách tơ màu đồ thị Œ Đồ thị Œ cĩ sắc số k

nếu x(Œ )=&, và GŒ cĩ thể tơ bởi & màu nếu x(Œ ) < # Một lớp màu của một cách tơ màu # chứa tất cả các đỉnh cùng màu Các lớp màu của # là một phân hoạch của tập đỉnh ƒ thành các tập con độc lập trong đĩ các đỉnh của nĩ

khơng kề nhau

1.2.1 Thuật tốn thu gọn (hịa nhập) đính (Contraction Algorithm)

Thuật tốn này dựa trên một định lý của Zykov Với các đỉnh x và y khơng kể nhau bất kỳ, chúng ta định nghĩa đồ thị G44, y la một đồ thị thu được từ G bằng cách hợp nhất y và x thành một đỉnh, tức là ta xĩa đỉnh y đi và nối x

với tắt ca các đỉnh kề với y trước đĩ G+xy là đồ thị thu được từ G bằng cách

thêm vào cạnh xy

G

Dinh ly 1: (@ )=minf x(x” ), (@ +*Y )} voi x, y là hai đỉnh khơng

ké nhau

Chứng minh: Gọi C(G) là tập các phép tơ màu của G va |F] la sé mau

được sử dụng bởi “eC(G) Khi đĩ ta cĩ:

x(Œ ) =min { |F]: FeC(G) }

Trang 19

12

G

=min {z(% ` ),(Œ +4) }

Bằng cách áp dụng nhiều lần định lý 1, đồ thị Œ trở thành gốc của cây

nhị phân cĩ các nút là các đồ thị, gọi là cây Zykov Cấu trúc của cây Zykov hồn chỉnh khi ta khơng tìm được thêm một cách thu gọn G theo định lý 1

Khi đĩ các lá của cây Zykov là các đồ thị đầy đủ Œ;= (;, E;) Định lý 1 cho

ta x(Œ ) = min |V;| Đây là cơ sở của thuật tốn Corneil - Graham sử dụng để tìm x(Œ ) Thuật tốn sử dụng phép tìm kiếm theo chiều sâu trên cây Zykov

Mặc dù cĩ một vài kỹ thuật chọn lọc được đưa vào thuật tốn này, tuy nhiên

nĩ vẫn kém hiệu quả hơn thuật tốn quay lui tuần tự trong mục 1.2.2

Cây Zykov ở trên khơng phải là duy nhất Nĩ phụ thuộc vào việc lựa chọn các cặp đỉnh x và y Mỗi cây Zykov cĩ đúng một nhánh được sinh ra duy

nhất bởi việc thu gọn các đỉnh khơng liền kề Gọi Gc là đồ thị đầy đủ ở vị trí cuối cùng của nhánh này (nút lá) Số lượng các đỉnh |ƒ(Gc)| của đồ thị này là cận trên của x(Œ ) Vậy một cận trên càng tốt khi mà nhánh tới Œc càng dài

Do đĩ, một chiến lược tốt cho việc lựa chọn các cặp đỉnh khơng kể nhau x, y được thu gọn đĩ là làm sao cho số cặp đỉnh khơng kề nhau là nhiều nhất cĩ thé Goi cn(x,y) là số lượng các đỉnh chung kề với cả x và y Khi đĩ ta cĩ |E(G)\| - |E(G⁄x,y)|E cn(x,y) Trong thuật tốn Brigham - Dutton, các đỉnh khơng kể nhau với số lượng các đỉnh kề chung lớn nhất được thu gọn (hợp

thành một đỉnh) cho tới khi ta thu được một đồ thị đầy đủ

Một thuật tốn hiệu quả hơn và cho kết quả tốt hơn thuật tốn Brigham

- Dutton đĩ là thuật tốn RLF (Recursive - Largest - First) của Leighton Ở

đây, x là một đỉnh cố định cĩ bậc lớn nhất Một đỉnh y khơng kề x cĩ số đỉnh

kể chung với x là lớn nhất sẽ được chọn đề hịa nhập với x cho tới khi x kề với tất cá các đỉnh khác (tạo thành một đồ thị con đầy đủ) Đề tăng tính hiệu qua

Trang 20

13

nhat trong đồ thị cịn lại sẽ được chọn Đỉnh x và tất cả các đỉnh hịa nhập với

x sé tao thành một lớp màu Nếu x cĩ đỉnh khơng kề nĩ và các đỉnh này khơng

cĩ đỉnh kề chung với x, khi đĩ đồ thị sẽ khơng thể thu gọn được thêm nữa và

x sẽ kề với tất cả các đỉnh trong đồ thị con chứa nĩ Trong trường hợp xấu

nhất, độ phức tạp của thuật tốn RLF là (||)

Dưới đây là chương trình gia mã cho thuật tốn RLFE:

Cho một đồ thị G=(V,E) với tập đỉnh V=ƒ(G) và tập cạnh E Yêu cầu của bài tốn là trả về một phép tơ màu F: V > N Algorithm RLF: colornumber=0; // Số lượng các màu được sử dụng đề tơ Œ while (|V(G)| > 0) { x= đỉnh cĩ bậc lớn nhất trong G; colornumber = colornumber+1; F(x)=colornumber; NN= tập hợp các đỉnh khơng kề với x;

while (|JMM| > 0) { // tìm đỉnh y e NN để cĩ thé thu gon voi x

maxcn= -]; !Í số đỉnh kề chung với x lớn nhất

ydegree= -1; // bac cia đỉnh y cần tìm for mgi dinh z € NN {

cn= số lượng đỉnh kề chung của z và x;

Trang 21

14 y= đỉnh cĩ bậc lén nhat trong NN; } F(y) = colornumber; hịa nhập y và x thành một đỉnh; cập nhật lại tập hợp VN - các đỉnh khơng kề với x; } G =Œ—x; // loại bỏ x khoi G } return F

1.2.2 Thuật todn to mau tudn tw (Sequential Coloring)

Một trong những phương pháp tơ màu đơn giản nhất đĩ là phương pháp

tơ màu tuần tự dựa trên mét tap dinh O=[ ap, ay, .,d,-)] đã được sắp thứ tự:

Ft(à=1

Nếu a„ .4;; (¡ > 1) đã được tơ màu, đặt Ƒ{z,) là màu nhỏ nhất chưa

được dùng bởi các đỉnh kề với a,

Thuật tốn LF (Largest First) dựa trên cách sắp xếp các đỉnh của đồ thị G theo thứ tự giảm dần về bậc Nĩ cĩ độ phức tạp O(|Vj? Tư tưởng chính của thuật tốn như sau:

Algorithm LF:

Sắp xếp các đỉnh trong V theo thứ tự giảm dần về bậc: a[0], .,a[n-1];

optColorNumber=1; // Khoi tao số màu tối ưu cần sử dụng

while ( |V| >0) { // lặp cho đến khi tất cả các màu được tơ

x=a[0]; // xét đỉnh đầu tiên trong danh sách

F(x) = optColorNumber; // tơ màu optColorNumber cho đỉnh x

for (7=; <|H; tt) {

Trang 22

15

F(a{i])=optColorNumber; // t6 mau optColorNumber cho

các đỉnh khơng kề với đỉnh x

}

Loai khdi V tất cả các đỉnh đã được tơ màu;

Cập nhật lại các đỉnh trong V theo thứ tự bậc giảm dần;

optColorNumber= optColorNumber +]; //tăng số mứu cần tơ lẹn 1

}

return F // tra về phép tơ màu tối ưu

Thuật tốn DSATUR (Degree of Saturation) của Brèlaz là thuật tốn tơ màu tuần tự trong đĩ các đỉnh được sắp xếp động sau mỗi bước của thuật

tốn Giả sử #' là một phép tơ màu bộ phận các đỉnh của Œ Bậc bão hịa của

đỉnh x, đeg,(x) là số lượng các màu khác nhau ở các đỉnh kề với x DSATUR bắt đầu bằng việc gán màu 1 cho một đỉnh cĩ bậc lớn nhất Đỉnh được tơ tiếp

theo trong phương pháp này là đỉnh x với bậc đeg,(z) lớn nhất Độ phức tạp của thuật tốn DSATUR là O(|W})

Định nghĩa I: Phép tơ màu #;, #; của G=(ƑV,E) được gọi là tương đương khi chúng tạo ra cùng một cách phân hoạch tập đỉnh ƒ vào các lớp mầu

Định nghĩa 2: Một phép to mau F cac dinh ag, đ;, .,đ„.; của đồ thị G được gọi là chặt (sát) với thứ tự đã cho nếu:

F(a) < colors(i-1) +1 v6i moi i =0, 1, , n-1, trong đĩ colors() là số

mau khac nhau tai cac dinh ap, .,a; colors(-1)=0

Một thuật tốn tơ màu tuần tự sử dụng quay lui (Backtracking

Sequential Coloring - BSC), trả về giá trị chính xác của x(Œ ), lần đầu tiên được đề xuất bởi Brown Rất nhiều các nhánh của cây tìm kiếm cĩ thể bị loại

Trang 23

16

Định lý 2: Mọi phép tơ màu #: ƒ—2Đ của các đỉnh ø¿, aj, .,dy.7 cla đồ

thị G=(ƒ,E) là tương đương với một phép tơ màu chặt (sát) với thứ tự đã cho của các đỉnh

Chứng minh: Xem [5Š]

Thuật tốn gốc của Brown được cải tiến bởi Brẻlaz Các đỉnh của đồ thị

được lưu trữ trong một mảng A Ban dau chúng được sắp xếp theo thứ tự giảm dần về bậc Thứ tự này được thay đổi động trong quá trình thực hiện thuật tốn Giả sử 4[0] , 4[7-1] đã được tơ màu Số lượng các màu khác nhau được sử dụng tại các đỉnh này là co/ors(ï-1) = ï¡ Tập các màu chưa được sử dụng (cĩ thể t6) tai x=A[i], U= freeColors(x), la tap con cua tap {1, 2, ., 1+1} mà chưa được sử dụng trong các đỉnh kề với đinh x Nếu một cận trên optColorNumber, x(Œ ) < optColorNumber được thiết lập bởi một phép tơ màu Ƒ, khi đĩ tất cả các màu > op/ColorNumber cĩ thê loại bỏ khỏi Ư Đỉnh được tơ tiếp theo giống như trong thuật tốn DSATUR, tức là đỉnh cĩ bậc bão

hịa lớn nhất Nĩ sẽ được tơ với màu nhỏ nhất trong U Nếu rong, ta sẽ thực

hiện việc quay lui Dưới đây là thuật tốn giả mã: Algorithm BSC:

Sắp xếp các đỉnh A=[ ao, .,zn] theo thứ tự giảm dần về bậc

start=0;// chi sé dinh xuất phát

optColorNumber=|V|+1;// sé mau téi uu can str dung dé t6 G

x=A[0]; // dinh dau tién duoc t6 mau

colors(-1) =0; // colors(j) = số màu được sử dụng để tơ 4[0], .„4[ï] U={[I]; // biến sử đụng để lưu tập hợp các màu cĩ thê sử đụng để tơ freeColors(x) = Ư;// tập hợp các màu cĩ thé tơ cho đỉnh x

while (start => 0) { // x dugc t6 mau trong vong lặp dưới đây Ta sẽ sử dụng quay /1lui khi U=ZØhoặc tìm thấy một phép tơ màu mới

Trang 25

18 } else { //truong hợp kết thúc vịng lặp for ở trên mà khơng phải lệnh break Fopt =F; /! lưu phương án tơ màu tơi ưu hiện tại optColorNumber =colors ( |V|-1); ¡ = chỉ số đỉnh nhỏ nhất trong các đỉnh cĩ F(4[7])=optColorNumber; SfarfE i-]; if (start < 0){ breack; // thốt khỏi vịng lặp while }

Xĩa tồn bộ màu tơ cho các đỉnh A[i] véi i > start; for ((=0; i < start; i++) {

x=A[i];

U= freeColors(x);

Xĩa khỏi U tất cả các màu > opfColorNưmber;

#reeColors(x) = U; // phép tơ màu hiện tại đã được cải tiến }⁄/1lưu ý; ở đây ta cĩ x = A[start] va U= freeColors(x)

return Fopt // tra về phương án tơ màu tối ưu

Ở thuật tốn trên ta cĩ thé cải tiễn như sau:

Nếu tập các đỉnh 4 của đồ thị được xuất phát theo thứ tự một đồ thị con

đầy đủ kích thước z là 4[0], , 4[z-1], khi đĩ các đỉnh này sẽ được cơ định

các màu I, ., z Thuật tốn trên cĩ thể dừng khi trong quá trình quay lui gặp

Trang 26

19

Thuật tốn cĩ thé kết thúc khi ta tìm được một cách tơ màu mà sử dụng khơng

nhiéu hon /b mau

1.2.3 Thuật tốn duyệt theo chiều sâu cĩ chặn nhánh void Try (int k) { // duyệt các cách tơ màu cho đỉnh k boolean ok; if (k > N){// da xét hết tất cả các đỉnh của G Cập nhật giá trị tối ưu; Exit; } ok=false; for (int =1; i< s6_mdu_da_t6; i++) { // duyét trong sé cdc mau đã tơ if (t6_dwoc_mau(i,k)){ ok=true; Dat_trang_thai(i,A);// Ghi nhận & cĩ màu ¡, đánh số các đỉnh kể & cĩ màu khác Try(k+1); // đệ quy tơ màu cho đỉnh k+I Trả trạng thái(i,&); }

if (ok==false){ // k khéng t6 duoc bang mot trong cdc mau da t6 số màu đã tơ = số_màu_ đã, tơ + ];

Đặt trạng tháisố màu đã tơ,k); Try(k+1); // đệ quy tơ màu cho đỉnh &+1 Trả trạng tháisố màu đã tơ, k);

Trang 27

20

Thuật tốn trên cho kết quả chính xác, tuy nhiên với đữ liệu đầu vào lớn một chút thì thuật tốn khơng đáp ứng được về mặt thời gian

1.2.4 Thuật tốn tham lam (Greedy Coloring)

1.2.4.1 Thuật giải tham lam đơn giản nhất:

Bước L:

i=0; // khởi tạo số màu cần tơ

Bước 2:

i=i+l; // tăng số màu cần tơ

Tơ màu ï cho tất cả các đỉnh cĩ thể tơ được;

Bước 3:

Lap lai bước 2 cho đến khi tất cả các đinh đều được tơ màu 1.2.4.2 Thuật giải sắp thứ tự + tham lam:

Bước l:

Sắp xếp các đỉnh theo chiều giảm dần của bậc;

i=0; // khởi tạo số màu cần tơ

Bước 2:

i=i+l; // tăng số màu cần tơ

Tơ màu ¡ cho tất cả các đỉnh cĩ thể tơ được (xét từ trái sang); Bước 3:

Lap lai bước 2 cho đến khi tất cả các đinh đều được tơ màu 1.2.4.3 Tìm kiếm nhị phân + tham lam:

dau=0;

cudi=N; // sé mau téi đa cĩ thé tơ

while ( cudi > đẩu){ // tìm kiếm nhị phân

Lim= (ddu+cudi) / 2; if (T6_dwoc){

Trang 28

21

}

else đầu=Lim;

}

Lim=cuối chính là số màu nhỏ nhất cần dùng đề tơ đồ thị G

Hàm kiểm tra 76, được ta sẽ áp dụng thuật tốn tham lam Cĩ nhiều cách tham lam khác nhau để chọn Tác giả xin đưa ra một cách như sau: tại mỗi bước ta tìm tập cĩ nhiều đỉnh nhất thỏa mãn và tơ màu cho chúng Muốn

tìm như vậy mỗi lần ta tìm đỉnh kề với ít đỉnh nhất mà khơng kề với đỉnh đã

cĩ trong tập đang xét, ta cập nhật đỉnh đĩ vào tập đỉnh cĩ thể tơ màu Cứ làm như vậy, nếu số tập tìm được > /m thì sẽ khơng 7ơ_ được cịn ngược lại thì ta cĩ thể Tơ được

Cả 3 thuật tốn ở trên cĩ thời gian chạy rất nhanh, tuy nhiên trong nhiều trường hợp cho ra kết quả khơng chính xác Đề khắc phục nhược điểm

trên, tác giả đề xuất một thuật tốn dựa trên tư tưởng tham lam nhưng với ý

tưởng khá mới mẻ như sau:

1.2.4.4 Sắp thứ tự đỉnh + hịa nhập đỉnh + tham lam:

- Bude 1: Tìm đỉnh cĩ bậc cao nhất trên đồ thị (gọi là đỉnh u)

- Bước 2: Tăng số màu cần tơ lên 1 và tơ màu này cho đỉnh u vừa tìm - Bước 3: Tìm đỉnh v để tơ màu giống u thỏa mãn các điều kiện sau: v đi

đến u thơng qua duy nhất I đỉnh w khác và v cĩ số bậc lớn nhất Nếu

khơng tìm được đỉnh v như vậy ta sẽ tìm đỉnh v cĩ số bậc lớn nhất mà

khơng kề với u Nếu tìm được v thỏa mãn thì ta tơ màu cho v chính là màu của đỉnh u Sau đĩ nhập đỉnh u và v vào làm 1 đỉnh, tức là đỉnh w kề với v thì cũng coi như kề với u

-_ Bước 4: lặp lại bước 3 cho đến khi v=0

Trang 29

22

Thuật tốn trên chạy với tốc độ khá nhanh và cho kết quả tối ưu với độ

chính xác rất cao (đã chạy thử nghiệm với các bộ dữ liệu chuẩn trên website http://www.nlsde.buaa.edu.cn/~kexu/benchmarks/graph-benchmarks.htm)

Truong hop tồi tệ nhất, khi cài đặt thuật tốn theo ma tran ké, d6 phức

tạp của thuật tốn 1a O(N’) Néu cài đặt theo danh sách kề hoặc danh sách liên kết độ phức tạp của thuật tốn chỉ cỡ O(V7og(N))

1.3 Giới thiệu các phương pháp lập lịch thi 1.3.1 Các phương pháp thơng thường

Bài tốn lập lịch thi cũng như bài tốn xếp lịch thi nĩi chung thuộc lớp bài tốn NP - Complete Cĩ rất nhiều cơng trình nghiên cứu về vấn đề này, trong đĩ một số giải thuật như leo đổi (Hill-climbing), luyện thép (Simulated Annealing), di truyền (Genetic Algorithms) là những thuật tốn được sử dụng phơ biến nhất Thế nhưng, theo một số đánh giá cho thấy hai thuật tốn leo đơi và luyện thép cĩ nhiều nhược điểm, chỉ cung cấp các giá trị tối ưu cục bộ và những giá trị này phụ thuộc nhiều vào điểm khởi đầu, mà xác suất thành

cơng thấp khi khơng gian tìm kiếm khống lồ Đối với các thuật tốn cho kết

quả chính xác như “vét cạn” hay “duyệt cĩ chặn nhánh” thì việc sử dụng tài nguyên hệ thống cũng như thời gian thực hiện lại khơng thể chấp nhận được

khi kích thước dữ liệu lớn Vì thế, con người vẫn hướng đến một giải pháp

sao cho kết quả bài tốn lập lịch thi “tối ưu” hơn nữa 1.3.2 Phương pháp lập lịch thi dựa vào tơ màu đồ thị

Tùy vào mơ hình đảo tạo, cơ sở vật chất và các đặc thù riêng của từng

trường đại học mà yêu cầu lập lịch thi cĩ sự khác nhau Đề hình dung được một cách tơng quát về phương pháp lập lịch thi đựa vào tơ màu đồ thị, ta sẽ đi

xem xét bài tốn lập lịch thi kinh dién mà ở đĩ số ràng buộc đưa vào là tối

Trang 30

23

s* Đài tốn lập lịch thi kinh điển được phát biểu nhự sau:

Các trường đại học tổ chức học theo tín chỉ Nếu sinh viên tích lũy đủ tổng số tín chỉ cho các mơn quy định của một ngành là cĩ quyền nhận bằng tốt nghiệp của ngành đĩ Đối với các đại học như thế, việc học và thi khơng tổ chức theo lớp mà theo các mơn học Hàng năm nhà trường thơng báo các mơn sé hoc dé sinh viên tự đăng ký học các mơn học theo ngành mình chọn Cuối kỳ hoặc cuối năm nhà trường tơ chức thi cho các mơn đã giảng trong năm Mỗi mơn thi trong một ngày nhưng trong một ngày cĩ thể tơ chức thi nhiều mơn Do một sinh viên cĩ thê đăng ký thi nhiều mơn nên lịch thi cần phải bố

trí để nếu cĩ một sinh viên đăng ký thi nhiều mơn nào đĩ thì các mơn đĩ

khơng được thi cùng ngày

Yêu cầu: Hãy lập lich thi sao cho tơng số ngày tổ chức thi là ít nhất cĩ

thể

Ta sẽ tiếp cận bài tốn trên theo phương pháp tơ màu đồ thị như sau: Bước I: Xây dựng một đơn đồ thị vơ hướng G với các đỉnh và các cạnh

được định nghĩa như sau:

- Mỗi mơn thi là một đỉnh của đồ thị G

-_ Hai đỉnh của đồ thị G cĩ cạnh nối (kề nhau) nếu cĩ ít nhất một sinh

viên tham gia thi đồng thời cả hai mơn thi đĩ

Bước 2: Áp dụng thuật tốn tơ màu đồ thị (lựa chọn một trong các thuật

tốn phù hợp đã nghiên cứu ở mục 1.2) để tơ màu các đỉnh của đồ thị G

Trang 31

24

Căn cứ vào kết quả tơ màu cho từng đỉnh (mơn học) ở bước 2 ta sẽ đưa ra được lịch thi (ngày sẽ tơ chức thi) cho từng mơn học

Hiển thị lịch thi hết mơn cho sinh viên Thi du 1:

Một đợt thi cĩ 7 sinh viên (nhĩm thí sinh, cĩ thể thay 7 bởi n) sẽ tham

gia thi hết mơn các mơn học, danh sách thi cụ thể như sau:

1 2

Nhĩm thứ nhất thi các mơn học: Maths, English, Biology, Chemistry

Nhĩm thứ hai thi các mơn học: Maths, English, Computer Sclence, Geography Nhĩm thứ ba thi các mơn học: Biology, Psychology, Geography, Spanish Nhĩm thứ tư thi các mơn học: Biology, Computer Sclence, History, French Nhĩm thứ năm thi các mơn học: English, Psychology, History, Computer Science Nhĩm thứ sau thi cac mon hoc: Psychology, Chemistry, Computer Science, French Nhom thu bay thi cac m6n hoc: Psychology, Geography, History, Spanish

Yêu cầu: Hãy tìm ra số ngày thi ít nhất đề thi 10 mơn học trên, hơn nữa các thí sinh tham gia thi các mơn khơng bị trùng ngày thi

Lời giải:

Để giải quyết vấn đề này chúng ta dùng phương pháp tơ màu đơn đồ thị đã đề cập ở trên

Trang 32

25

Ký hiệu B thay cho Blue, R thay cho Red, W thay cho White, G thay cho Green, Y thay cho Yellow, O thay cho Orange

Áp dụng thuật tốn tơ mau dé thi LF (Largest First) da trinh bay trong mục 1.2.2 ta được kết quả tơ màu như sau:

Phải sử đụng 06 màu đề tơ màu đồ thị G, cụ thể màu tơ cho các đỉnh: - Các đỉnh Ø cĩ màu Ư - Các đỉnh Ð, M/ cĩ màu R - Các đỉnh CS, % cĩ màu - Các đỉnh E, cĩ màu - Các đỉnh C, G co mau Y

- Cac dinh Hed mau O

Từ kết quả trên, ta cĩ thể đưa ra một lịch thi được chia làm 6 dot (6

ngày thi) cụ thể như sau: Dot | Biology

Dot 2 Psychology, Maths

Dot 3 Computer Science, Spanish Dot 4 English, French

Dot 5 Chemistry, Geography Dot 6 History

Trang 33

26

Rõ ràng việc áp đụng phương pháp tơ màu đồ thị như trên sé cho ra lời đã cho vì:

-_ Hai đỉnh kề nhau sẽ được tơ bởi hai màu khác nhau, tức là nếu một sinh viên tham gia thi hai mơn thi thì hai mơn thi này sẽ tổ chức thi vào hai ngày khác nhau

- Các đỉnh khơng kề nhau cĩ thê được tơ bởi màu giống nhau, tức là cĩ thể tổ chức thi nhiều mơn trong cùng một ngày

- Tổng số màu sử dụng để tơ màu đồ thị là tối ưu (ít nhất cĩ thể), tức là tổng số ngày sử dụng để tơ chức thi là ít nhất cĩ thể

1.4 Kết luận chương

Trong chương ], tác giả đã cơ gắng trình bày một cách khái quát các kiến thức cơ sở đã nghiên cứu được về lý thuyết đồ thị, cụ thể ở đây là những

kiến thức liên quan đến đơn đồ thị vơ hướng hữu hạn như: đơn đồ thị vơ

hướng liên thơng, đồ thị phẳng, đồ thị vơ hướng con đầy đủ và màu đồ thị Trên cơ sở đĩ, tác giả trình bày một cách đầy đủ, chỉ tiết các thuật tốn tơ màu đồ thị khác nhau như thuật tốn hịa nhập đỉnh (Contraction Algorithm), các thuật tốn tơ màu tuần tự (Sequential Coloring Algorithms), thuật tốn duyệt cĩ chặn nhánh, các thuật tốn tham lam (Greedy Coloring Algorithms), cĩ đánh giá và phân tích mức độ hiệu quả cũng như độ phức tạp cho từng thuật tốn

Trang 34

27

Chương 2: ỨNG DỤNG LÝ THUYET ĐỊ THỊ VÀO LẬP LỊCH THỊ

2.1 Ma trận liền kề

Để lưu trữ đồ thị và thực hiện các thuật tốn khác nhau với đồ thị trên

máy tính cần phải tìm những cấu trúc dữ liệu thích hợp để mơ tả đồ thị Việc

chọn cấu trúc dữ liệu nào đề biểu diễn đồ thị cĩ tác động rất lớn đến hiệu quả

của thuật tốn Vì vậy, việc chọn lựa cấu trúc đữ liệu để biểu diễn đồ thị phụ

thuộc vào từng tình huống cụ thể (bài tốn và thuật tốn cụ thể) Cĩ nhiều

cách để biểu diễn và lưu trữ đồ thị như biểu diễn bằng zma trận liễn kể, ma

trận liên thuộc, danh sách cạnh, danh sách kê, danh sách liên kết Trong mục

này chúng ta sẽ xét phương pháp cơ bản được sử dụng để biểu diễn đồ thị trên

máy tính đĩ là phương pháp biểu diễn và lưu trữ theo znz đrận liên kể, đồng

thời cũng phân tích một cách ngắn gọn những ưu điểm cũng như những nhược điểm của phương pháp này

Xét đơn đồ thị vơ hướng G=(V,E), với tập đỉnh V={I1, 2, .n}, tập

cạnh E={e\, e;, .,emụ } Ta gọi ma trận liền kê của đồ thị G là ma trận vuơng cấp nxn: A = [aj], Vi, j=1, n sao cho cac phan tử của ma trận A duge xac

định theo quy tắc sau đây:

® Aij= I nếu cạnh (¡,j) e E

e Aij =0 néu canh (i,j) ¢ E

Vi du: với đồ thị G cho bởi hình đưới đây

Trang 35

28 Ma trận liền kề của G là: 1 4 I Of hk eo 1 1 0 1 0 k2 2 ta k2 34 BH 4.112) 4 H0 0 1 9 1 1 5 H210 i1 00: 6 0W 002110 4* Các tính chất của ma trận liền kề:

1) Rõ ràng ma trận liền kề của đồ thị vơ hướng là ma trận đối xứng, tức

la afi,j|=a[j,i], ij=1,2, .,.n nguge lai, mỗi (0,1)-ma trận đối xứng cấp n sé

tương ứng, chính xác đến cách đánh số đỉnh (cịn nĩi là: chính xác đến đẳng

cấu), với một đơn đồ thị vơ hướng n đỉnh

2) Tổng các phần tử trên dịng ¡ (cột j) của ma trận kề chính bằng bậc của đỉnh 1 (đỉnh ))

3) Nếu ký hiệu a,” , ij=1, 2, n là phần tử của ma trận A'=A.A A

(p thừa số) Khi đĩ ay’, ij=1, 2, n cho ta số đường đi khác nhau từ đỉnh i đến đỉnh j qua p-1 dinh trung gian

Chú ý: Trên đây chúng ta chỉ xét đơn đồ thị Ma trận liền kề của đa đồ thị cĩ thể xây dựng hồn tồn tương tự, chỉ khác là thay vì ghi 1 vào vị trí

a[i,j] néu (i,j) 14 canh của đồ thị, chúng ta sẽ ghi k là số cạnh nối hai đỉnh ¡, j

Trong rất nhiều vấn đề ứng dụng của lý thuyết đồ thị, mỗi cạnh e=(u,v) của đồ thị được gán với một con số c(e) (cịn viết là c(u,v) gọi là trọng số của cạnh e Đồ thị trong trường hợp như vậy được gọi là đồ thị cĩ trọng số Trong

trường hợp đồ thị cĩ trọng SỐ, thay vì ma trận liền kề, để biểu diễn đồ thị ta sử

Trang 36

29

Cij = CŒ, j) nếu canh (i, j) e E

Cij = 0 néu canh (i, j) ¢ E

Trong đĩ, số 0 tùy từng trường hợp cụ thê, cĩ thể đặt bằng một trong

các giá trị sau: 0, +œ, -œ,

Ưu điểm lớn nhất của phương pháp biêu diễn đồ thị bằng ma trận liền kề (hoặc ma trận trọng số) là để trả lời câu hỏi: Hai đỉnh u,v cĩ kề nhau trên đồ thị hay khơng, chúng ta chỉ phải thực hiện một phép so sánh Nhược điểm lớn nhất của phương pháp này là: khơng phụ thuộc vào số cạnh của đồ thị, ta

luơn phải sử dụng nỶ đơn vị bộ nhớ đề lưu trữ ma trận liền kề của nĩ

Trong hai bài tốn xác định đồ thị con đầy đủ và tơ màu đồ thị dưới

đây, việc kiểm tra xem hai đỉnh cĩ kề nhau hay khơng được xem là điều kiện

tiên quyết Đối với bài tốn xác định đồ thị con đầy đủ thì phải kiểm tra xem

mọi cặp đỉnh của đồ thị con cĩ kề nhau hay khơng Cịn đối với bài tốn tơ màu đồ thị, ta phải tơ sao cho mọi cặp đỉnh kề nhau cĩ màu khác nhau (tức là phải kiểm tra xem cĩ hai đỉnh kề nhau bất kỳ nào cĩ màu giống nhau khơng)

Với tính chất như vậy thì việc cài đặt các thuật tốn xác định đồ thị con đầy

đủ và tơ màu đồ thị dựa trên cách lưu trữ theo ma trận liền kề là đơn giản và hiệu quả hơn cả

2.2 Xác định đồ thị con đầy đủ dựa vào ma trận liền kề

Việc xác định một đồ thị con đầy đủ cĩ ý nghĩa lớn trong các thuật tốn

tơ màu Trong thuật tốn 8SC ở mục 1.2.2, việc tìm một đồ thị con đầy đủ của G, đặc biệt là tìm một đồ thị con đầy đủ lớn nhất của Œ cĩ ý nghĩa vơ cùng

lớn trong việc cải thiện tốc độ của thuật tốn (thuật tốn quay lui loại bỏ sớm

Trang 37

30

Khi lưu trữ đồ thi G theo ma trận liền kề, viéc kiém tra xem G c6 phai là một đồ thị đầy đủ khơng là một việc hết sức đơn giản

s* Hàm kiểm tra đồ thị đầy đủ “?sCompleteGraph(4)”:

- Pau vao: A 1a ma tran liền kề của đồ thị G véi kích thước nxn - Pau ra: true nếu G là đồ thị đầy đủ, false néu nguoc lai Thuật tốn: For (=l;1<n; ++){ For (=1; j<n; j+?){ If(Œ!=J))&&(A[1J]E70)) retum ƒølse; } return true;

s* Thuật tốn xác định tất cá các dé thi con đầy đủ & dinh của đồ thị G dựa

trên ma trận liền kề của Ơ:

- Dau vao: A là ma trận liền kề của đồ thị G với kích thước nxn, k 1a sé đỉnh của đồ thị con đầy đủ của G

- Đầu ra: các đồ thi con đầy đủ & đỉnh của Œ hoac null Thuật tốn:

Xuất phát từ đồ thị con đầy đủ cĩ 1 đỉnh, ta xây dựng dần cho đồ thị

con đầy đủ cĩ k-1 đỉnh, và từ đồ thị cĩ &-I đỉnh ta xây dựng đồ thị con đầy đủ

cĩ & đỉnh Để thuật tốn hoạt động hiệu quả hơn, ta cĩ thể sử dụng thêm

nhánh cận Dưới đây là chương trình giả mã:

List<CompleteGraph> findCompleteGraph(AdjacentMatrix A,int k) {

If (k==1){// dé thị con đầy đủ cĩ 1 đỉnh

S=new List<CompleteGraph>Q;// tạo danh sách S 1ưu kết quả

For (i=1; i <=n; i++){

Trang 38

31 S.add(P); // thém P vào danh sách các đồ thi con đầy đủ 1 dinh; } return S; }

else {// tim do thi con day du co k>2 dinh

C=findCompleteGraph(A,k-1);// C la tap các đồ thị con đầy đủ cĩ

k-1 đỉnh

S=new List<CompleteGraph>();// tao danh sách S lưu kết qua

foreach (p in C){ // duyét với mỗi đồ thị con đầy đủ #-I đỉnh p

trong danh sách Œ

for (=1; i<=n; i++){// duyét lần lượt các đỉnh của G for (7 là đỉnh nằm trong ?)

1 (4[//7] !=1) break;// đỉnh ¡ khi thêm vào p

khơng tạo thành một đồ thị con đầy đủ

if (/ là đỉnh cuối cùng của p){/⁄/ đã duyệt hết các đỉnh trong ? H= p v i; // tao dé thi con day di H bang cách thém dinh i vao p; S.add(H);// thém H vao danh sach két qua S return S;

Thuật tốn trên gọi đệ quy dé tìm tất cả các đồ thị con đầy đủ cĩ & đỉnh

Trang 39

32

được một đồ thi con đầy đủ cĩ & đỉnh ta sẽ trả về kết quả và thốt khỏi chương

trình

s4* Thuật tốn tìm một đồ thị con đầy đủ lớn nhất

Việc tìm một đồ thị con đầy đủ lớn nhất của đồ thị G cĩ vai trị quan

trọng trong lý thuyết đồ thị nĩi chung cũng như bài tốn tơ màu đồ thị nĩi riêng Bài tốn tìm đồ thị con đầy đủ lớn nhất là bài tốn NP - đầy đủ Bài tốn được phát biêu như sau:

Cho đơn đồ thị vơ hướng Œ Một đồ thị con đầy đủ Q của G là đơn đồ thị vơ hướng trong đĩ ƒ{@) c V{G) và tất cả các đỉnh của Q là kề nhau ở trong G Q là một đồ thị con đầy đủ cực đại của Ớ khi và chỉ khi ta thêm một

đỉnh bất kỳ trong G vào Ĩ sẽ khiến Ĩ khơng cịn là đồ thị con đầy đủ Đồ thị

Ĩ thỏa mãn điều kiện trên và cĩ nhiều đỉnh nhất được gọi là đồ thị con đầy đủ

lớn nhất của Œ Mục tiêu của bài tốn đặt ra là đi tìm đồ thị con đầy đủ lớn

nhất Q,„„ của một đơn đồ thị vơ hướng Ở cho trước

Sau đây, tác giả sẽ trình bày một số thuật tốn xác định đồ thị con đầy

đủ lớn nhất

Thuật tốn tìm kiếm theo chiều sâu kết hợp nhánh cận:

Từ một đồ thị con đầy đủ nhỏ, ta sẽ tìm những đồ thị con đầy đủ kích

thước lớn dần lên cho tới khi tìm được đồ thị con đầy đủ lớn nhất Sử dụng

các biến tồn cuc O va Omax, trong do @ là đề thị con đầy đủ hiện tại, max để

lưu đồ thị con đầy đủ lớn nhất Đặt § c ƒ là tập các đỉnh ứng cử viên (cĩ thé thêm vào Q đề tạo thành đồ thị con đầy đủ mới) Khởi tạo Q= Ø, Q„a„ = Ø, R = V (tap tất cả các đỉnh của đồ thị G) Chọn một đỉnh p # và thêm p vào Q

(Ĩ=@Ø U {p}) Sau đĩ ta tính R„ = R ¬ 7) là tập các đỉnh ứng cử viên mới

Trang 40

33

một đồ thị con đầy đủ thì đồ thị nay cũng chỉ cĩ kích thước khơng lớn hơn

Øm„„ đã tìm được ở những bước trước đĩ Lúc này, ta sẽ khơng đi theo nhánh này nữa mà chuyển sang nhánh khác Đây chính là điều kiện thốt khỏi một nhánh trong quá trình tìm kiếm theo chiều sâu của thuật tốn trên Khi Ry =O

nghĩa là ta đã đi hết một nhánh, lúc này ta tìm được một đồ thị con đầy du OQ

cuc dai Néu |O| > |Omax| thi ta cap nhat gia tri mGi Omax = Q và tiến hành quay lui cho đến khi R=Ø Dưới đây là giả mã của thuật tốn:

void BasicMC (G =(V,£)) // tht tuc chinh

{

giobalQ = Ø- — /Ikhởi tạo

8lobal Q„„y = ZG // khởi tạo

EXPAND(/); // bat đầu với tập ứng cử viên V

Ngày đăng: 30/10/2014, 16:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w