PHƯƠNG PHÁP ĐOÁN NHẬN ĐỒ THỊ PHÂN CỰC KÉP THÔNG QUA LỚP ĐỒ THỊ ĐẶC BIỆT F Qua quá trình nghiên cứu, luận văn đã đạt được các yêu cầu ban đầu đề ra. Cụ thể như sau: Tìm hiểu và trình bày lại một số các khái niệm cơ bản về lý thuyết đồ thị: định nghĩa đồ thị, cách phân loại đồ thị và đặc điểm của một số loại đồ thị đặc biệt. Tìm hiểu khái niệm đồ thị phân cực, đồ thị phân cực đầy đủ, đồ thị phân cực kép và các tính chất cơ bản của đồ thị phân cực kép. Dựa trên đặc điểm và các tính chất của đồ thị phân cực kép, luận văn xây dựng thuật toán đoán nhận đồ thị phân cực kép. Xây dựng chương trình đoán nhận đồ thị phân cực và phân tích kết quả thực hiện chương trình với một số bộ dữ liệu cụ thể.
PHƢƠNG PHÁP ĐỐN NHẬN ĐỒ THỊ PHÂN CỰC KÉP THƠNG QUA LỚP ĐỒ THỊ ĐẶC BIỆT F MỤC LỤC PHẦN 1: MỞ ĐẦU 1 Lý chọn đề tài Mục đích nghiên cứu Đối tƣợng nghiên cứu Nhiệm vụ nghiên cứu Phạm vi nghiên cứu Phƣơng pháp nghiên cứu Bố cục luận văn, tóm tắt luận điểm đóng góp tác giả PHẦN 2: NỘI DUNG .4 CHƢƠNG 1: KIẾN THỨC CƠ SỞ TRONG ĐỒ THỊ 1.1 Đồ thị 1.1.1 Khái niệm đồ thị 1.1.2 Clique 1.1.3 Sắc số (chromatic number) đồ thị 1.1.4 Chu trình đồ thị 10 1.1.5 Đồ thị (subgraph) 11 1.1.6 Đồ thị sinh (induced subgraph) 12 1.1.7 Đồ thị đẳng cấu (isomorphic) 14 1.1.8 Đồ thị bù (complement) 14 1.1.9 Đồ thị đầy đủ (complete graph) 15 1.1.10.Đồ thị hai phía ( bipartite graph) 15 1.2 Kết luận chƣơng 16 Chƣơng : ĐỒ THỊ PHÂN CỰC KÉP VÀ LỚP ĐỒ THỊ ĐẶC BIỆT F 17 2.1 Một số khái niệm 17 2.1.1 Đồ thị phân cực (split graph) .17 2.1.2 Đồ thị phân cực đầy đủ (complete split graph) 19 2.1.3 Đồ thị cạnh ghép (edge disjoint union graph) .19 2.1.4 Đồ thị phân cực kép (phân cực kép graph) 20 2.1.5 Xây dựng đồ thị phân cực kép thông qua đồ thị phân cực đầy đủ 22 2.2 Lớp đồ thị đặc biệt F 24 2.3 Một vài kết sở 25 2.4 Kết luận chƣơng 26 Chƣơng : XÂY DỰNG CHƢƠNG TRÌNH CHO BÀI TỐN ĐỐN NHẬN ĐỒ THỊ PHÂN CỰC KÉP 27 3.1 Xác định toán .27 3.2 Thuật toán đoán nhận đồ thị phân cực kép 27 3.3 Chƣơng trình đốn nhận đồ thị phân cực kép 28 3.3.1 Lựa chọn ngôn ngữ lập trình .28 3.3.2 Cấu trúc file input output 29 3.2.3 Xây dựng biến, chƣơng trình code chƣơng trình .29 3.2.4 Kết chạy chƣơng trình 37 3.3 Kết thử nghiệm chƣơng trình đốn nhận đồ thị phân cực kép 41 3.4 Kết luận chƣơng 41 PHẦN 3: KẾT LUẬN .42 TÀI LIỆU THAM KHẢO .43 DANH MỤC CÁC HÌNH Hình 1.1: Một số hình ảnh đồ thị Hình 1.2: Đồ thị vơ hƣớng có hƣớng Hình 1.3: Ví dụ biểu diễn đồ thị Hình 1.4: Ví dụ clique Hình 1.5: Maximum clique {1,2,5,6} Hình 1.6: Sắc số đồ thị Hình 1.7 : Ví dụ chu trình lẻ đồ thị 10 Hình 1.8 : Ví dụ chu trình cảm sinh 11 Hình 1.9: Ví dụ đồ thị 11 Hình 1.10: Ví dụ đồ thị 12 Hình 1.11: Ví dụ đồ thị sinh 13 Hình 1.12: Ví dụ đồ thị sinh 13 Hình 1.13: Hai đồ thị đẳng cấu 14 Hình 1.14: Ví dụ đồ thị bù .14 Hình 1.15: Các đồ thị đầy đủ 15 Hình 1.16: Ví dụ số đồ thị hai phía .16 Hình 2.1: Đồ thị phân cực G 17 Hình 2.2: Đồ thị bù G đồ thị phân cực G .18 Hình 2.3: Ví dụ số đồ thị phân cực 18 Hình 2.4: Ví dụ số đồ thị phân cực đầy đủ .19 Hình 2.5: Ví dụ đồ thị M3,4 19 Hình 2.6: Đồ thị cạnh ghép gồm cạnh rời 20 Hình 2.7: Đồ thị phân cực kép 20 Hình 2.8: Các đồ thị phân cực kép 21 Hình 2.9: Ví dụ đồ thị phân cực kép 23 Hình 2.10: Họ F bao gồm 23 đồ thị 24 Hình 2.11: Đồ thị phân cực kép G 25 Hình 2.12: Đồ thị bù G đồ thị phân cực kép G .26 PHẦN 1: MỞ ĐẦU Lý chọn đề tài Trên thực tế có nhiều tốn liên quan tới tính chất đặc trƣng đồ thị mối liên hệ chúng, đòi hỏi tốn học phải đặt mơ hình biểu diễn cách chặt chẽ tổng quát ngôn ngữ ký hiệu tốn, đồ thị Mặc dù Lý thuyết đồ thị đƣợc phát triển từ lâu nhƣng lại có nhiều ứng dụng đại Đặc biệt khoảng vài mƣơi năm trở lại đây, với đời máy tính điện tử phát triển nhanh chóng Tin học, Lý thuyết đồ thị đƣợc quan tâm đến nhiều Đặc biệt thuật tốn đồ thị có nhiều ứng dụng nhiều lĩnh vực khác nhƣ: Mạng máy tính, Lý thuyết mã, Tối ƣu hoá, Kinh tế học v.v Lý thuyết đồ thị lĩnh vực nghiên cứu rộng Khi tìm hiểu lý thuyết đồ thị ta không nhắc đến dạng đồ thị đặc biệt mà có ứng dụng quan trọng thực tế, ví nhƣ: đồ thị đầy đủ, đồ thị vòng, đồ thị bánh xe, đồ thị hai phía… Trong luận văn gọi đồ thị Double split đồ thị phân cực kép Trong hội nghị công nghiệp toán học năm 2012, Boris Alexeev, Alexandra Fradkin, Ilhee Kim đƣa nội dung có tiêu đề "FORBIDDEN INDUCED SUBGRAPHS OF DOUBLE SPLIT GRAPHS" Đây vấn đề nhận biết lớp đồ thị đặc biệt dựa lớp đồ thị đặc biệt F Nhận biết lớp đồ thị đặc biệt thông qua lớp F đồ thị mở phƣơng pháp lý thuyết đồ thị có ứng dụng cơng nghệ thơng tin (tìm đồ thị con, đốn nhận đồ thị thơng qua đồ thị sinh nó, nhận dạng đồ thị khác….) Những vấn đề đƣợc nghiên cứu Do đó, tơi chọn tìm hiểu ” Phƣơng pháp đốn nhận đồ thị Phân cực kép thông qua lớp đồ thị đặc biệt F ”để làm đề tài luận văn Mục đích nghiên cứu Nghiên cứu, tìm hiểu nội dung luận văn vấn đề đoán nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F Xây dựng thuật toán cho toán đốn nhận đồ thị phân cực kép thơng qua lớp đồ thị F Đối tƣợng nghiên cứu Nghiên cứu, tìm hiểu nội dung báo Nghiên cứu ngơn ngữ lập trình để cài đặt thuật tốn, đƣa phần mềm cài đặt thuật toán đoán nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F Nhiệm vụ nghiên cứu Với mục đích đối tƣợng nghiên cứu trên, đề tài tập trung giải vấn đề sau: Nghiên cứu toán đoán nhận đồ thị phân cực kép Xây dựng thuật tốn chƣơng trình đốn nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F Phạm vi nghiên cứu Đề tài tập trung nghiên cứu định nghĩa đồ thị phân cực kép xây dựng thuật toán đoán nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F xây dựng chƣơng trình đốn nhận đồ thị phân cực kép Phƣơng pháp nghiên cứu Nghiên cứu, tìm hiểu sâu báo ‘‘Forbidden include subgraph of Double Split Graphs” (ba tác giả Boris Alexeev, Alexandra Fradkin Ilhee Kim) phƣơng pháp tốn học Sử dụng cơng cụ lập trình tin học để xây dựng phần mềm nhận biết đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F đƣợc xây dựng báo Thu thập tài liệu sách nhƣ tìm hiểu mạng kiến thức liên quan tới đề tài luận văn Phân tích, tổng hợp tài liệu, kiến thức thu nhận đƣợc để trình bày luận văn cách hợp lí, khoa học Cùng với động viên, giúp đỡ thầy giáo hƣớng dẫn nhƣ bạn bè, đồng nghiệp để hoàn thành nội dung nghiên cứu Bố cục luận văn, tóm tắt luận điểm đóng góp tác giả a Bố cục luận văn Nội dung luận văn gồm chƣơng: Chƣơng 1: Kiến thức sở Trình bày kiến thức có liên quan tới đề tài luận văn: đồ thị, khái niệm liên quan, dạng đồ thị Chƣơng 2: Đồ thị phân cực kép lớp đồ thị đặc biệt F Trong chƣơng tơi trình bày số khái niệm, tính chất đồ thị phân cực đồ thị phân cực kép Họ F bao gồm 23 đồ thị, đồ thị bù 23 đồ thị, vài kết sở Chƣơng 3: Xây dựng chƣơng trình cho toán đoán nhận đồ thị phân cực kép Xây dựng thuật toán cho toán đoán nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F xây dựng chƣơng trình để mơ thuật toán b Các luận điểm Đồ thị phân cực đầy đủ đồ thị phân cực kép hai dạng đồ thị đặc biệt Từ đồ thị phân cực đầy đủ ta xây dựng đƣợc đồ thị phân cực kép Để đoán nhận đƣợc đồ thị phân cực kép đƣợc tiến hành thông qua đồ thị đặc biệt F c Đóng góp tác giả Nghiên cứu tài liệu, trình bày lại cách khoa học khái niệm, tính chất, chuyển đổi khái niệm từ tiếng Anh sang tiếng Việt, xây dựng thuật tốn đốn nhận đồ thị phân cực kép thơng qua lớp đồ thị đặc biệt F Xây dựng đƣợc chƣơng trình giải tốn đốn nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F PHẦN 2: NỘI DUNG Chƣơng 1: KIẾN THỨC CƠ SỞ TRONG ĐỒ THỊ 1.1 Đồ thị 1.1.1 Khái niệm đồ thị Khái niệm Đồ thị G = (V, E) gồm tập hợp đỉnh V tập hợp cạnh E nối đỉnh Mơ tả hình thức: G = (V, E), đó: - V gọi tập đỉnh (Vertices), - E gọi tập cạnh (Edges) Có thể coi E tập cặp (u, v) với u, v hai đỉnh thuộc V V tập hữu hạn phần tử khơng rỗng, tập E tập rỗng Một đồ thị hiểu đơn giản hệ thống đỉnh cạnh nối đỉnh với Ví dụ Một đồ giao thông đồ thị Các đỉnh đồ thị nút giao thông (ngã ba, ngã tƣ đƣờng ), cạnh đƣờng nối nút giao thông với Trên đồ giao thông cạnh (các đƣờng nó) có hƣớng khơng có hƣớng (nếu có khơng phải đƣờng chiều) tập hợp đỉnh tập hợp cạnh nối đỉnh với Ví dụ Biểu diễn hình phong bì thƣ thành đồ thị Ví dụ Biểu diễn cơng thức hóa học dƣới dạng đồ thị H H C H C C H H H C C H H H H Hình 1.1: Một số hình ảnh đồ thị Phân loại đồ thị Có thể phân loại đồ thị theo đặc tính số lƣợng tập cạnh E: Cho đồ thị G = (V, E) Đồ G đƣợc gọi đơn đồ thị hai đỉnh u, v V có nhiều cạnh E nối từ u tới v G đƣợc gọi đa đồ thị hai đỉnh u, v V có nhiều cạnh E nối từ u tới v (hiển nhiên đơn đồ thị đa đồ thị) G đƣợc gọi đồ thị vô hƣớng cạnh E không định hƣớng, tức cạnh nối hai đỉnh u, v cạnh nối hai đỉnh v, u Hay nói cách khác, tập E gồm cặp (u, v) khơng tính thứ tự, (u, v) (v, u) G đƣợc gọi đồ thị có hƣớng cạnh E có định hƣớng, cạnh nối từ đỉnh u tới đỉnh v cạnh nối từ đỉnh v tới đỉnh u Hay nói cách khác, tập E gồm cặp (u, v) có tính thứ tự: (u, v) (v, u) Trong đồ thị có hƣớng, cạnh đƣợc gọi cung Đồ thị vô hƣớng coi đồ thị có hƣớng nhƣ ta thay cạnh nối hai đỉnh u, v tƣơng đƣơng hai cung (u, v) (v, u) Ví dụ: Đơn Đơn đồ thị Đa đồ thị vơ Đa đồ thị đồ thị vơ có hƣớng hƣớng có hƣớng hƣớng hƣớng Hình 1.2: Đồ thị vơ hướng có hướng hƣớng Khái niệm cạnh liên thuộc, đỉnh kề, bậc Đối với đồ thị vô hƣớng G = (V, E) Xét cạnh e E, e = (u, v) ta nói hai đỉnh u v kề (adjacent) cạnh e liên thuộc (incident) với đỉnh u đỉnh v - Hai mảng: a,b: array[1 max,1 max] of byte; Dùng để biểu diễn ma trận kề đồ thị G G’ - Mảng c: array[1 max] of byte; Dùng để lƣu tập m đỉnh đƣợc chọn - Mảng kt: array[1 max] of boolean; Dùng để lƣu số đỉnh duyệt hay chƣa - Mảng res: array[1 max, max, max] of byte: Dùng để lƣu ma trận với đồ thị sinh lƣu lại - Mảng res_c: array[1 max] of byte; Với đồ thị sinh lƣu lại dùng để lƣu số đỉnh m - Mảng res_na: array[1 max] of byte; Với đồ thị sinh lƣu lại dùng để lƣu tên đồ thị sinh - Biến đếm cnt: Dùng để chuyển liệu tính toán - Biến Check_doublesplit : boolean: Dùng để kiểm tra đồ thị phân cực kép - Biến num: array[1 max] of string: Dùng để đánh đỉnh đồ thị cho đồ thị G G’ Các chương trình code chương trình: Procedure open: Dùng để mở tệp khởi tạo đồ họa procedure open; var i,j: integer; begin assign(f,'Forbidden.inp'); reset(f); assign(g,'input10.inp'); reset(g); i := detect; j := 0; InitGraph(i,j,''); setbkcolor(white); setcolor(blue); setlinestyle(0,1,3); settextstyle(0,0,2); end; 30 Function check_sinh: Boolean; Dùng để so sánh liệu đồ thị G’ tập xét function check_sinh : boolean; var i,j:byte; begin for i:= to m for j:= to m if a[c[i]][c[j]] b[i][j] then exit (false); exit (true); end; Function ktra: Boolean; Dùng để xét duyệt chỉnh hợp m đỉnh function ktra(pos : byte) : boolean; var i : integer; begin if (pos = m + 1) then exit (check_sinh); for i:= to n if kt[i] then begin c[pos] := i; kt[i] := false; if (ktra(pos + 1)) then exit (true); kt[i] := true; end; exit (false); end; Function check: String; Dùng để kiểm tra đồ thị G’ có đồ thị sinh đồ thị G hay không function check : string; var i,j: byte; begin if m > n then exit('Output: Do thi G KHONG nhan thi ' + gname + ' la thi sinh!'); 31 for i:=1 to n kt[i]:= true; if (ktra(1)) then begin check_doubleSplit := false; cnt := cnt + 1; res_na[cnt] := gname; res_c[cnt] := m; for i:=1 to m for j:=1 to m res[cnt][i][j] := b[i][j]; exit('Output: Do thi G NHAN thi ' + gname + ' la thi sinh'); end; exit('Output: Do thi G KHONG nhan thi ' + gname + ' la thi sinh!'); end; Procedure draw; Dùng để vẽ đồ thị G G’ kết kiểm tra lên hình đồ họa procedure draw; var i,j: byte; angle, alpha: real; x,y: array[1 1000] of integer; begin ClearDevice; //draw graph OutTextXY(240,100,'Do thi G'); angle := 0; alpha := * Pi / n; for i := to n begin x[i] := 350 - trunc(150 * Sin(angle)); y[i] := 350 - trunc(150 * Cos(angle)); Circle(x[i], y[i], 5); angle := angle + alpha; end; for i := to n - for j := i + to n if (a[i,j] = 1) then 32 Line(x[i],y[i],x[j],y[j]); angle := 0; for i := to n begin x[i] := 350 - trunc(170 * Sin(angle)); y[i] := 350 - trunc(170 * Cos(angle)); OutTextXY(x[i], y[i], num[i]); angle := angle + alpha; end; //draw graph OutTextXY(950,100,'Do thi ' + gname); angle := 0; alpha := * Pi / m; for i := to m begin x[i] := 700 - trunc(150 * Sin(angle)); y[i] := 350 - trunc(150 * Cos(angle)); Circle(x[i], y[i], 5); angle := angle + alpha; end; for i := to m - for j := i + to m if (b[i,j] = 1) then Line(x[i],y[i],x[j],y[j]); angle := 0; for i := to m begin x[i] := 700 - trunc(170 * Sin(angle)); y[i] := 350 - trunc(170 * Cos(angle)); OutTextXY(x[i], y[i], num[i]); angle := angle + alpha; end; OutTextXY(350,50,check); end; 33 Procedure solve: Phần xử lý chƣơng trình procedure solve; var i,j, k: byte; angle, alpha: real; x,y: array[1 1000] of integer; stt: string; begin clrscr; open; //Nhap du lieu ma tran thi G tu file readln(g,n); for i:= to n begin for j:=1 to n read(g,a[i,j]); readln(g); end; check_doubleSplit := true; cnt := 0; //Nhap du lieu tu file va tien hanh kiem tra while(not seekeof(f)) begin readln(f, gname); readln(f,m); for i:= to m begin for j:=1 to m read(f,b[i,j]); readln(f); end; readln(f); draw; readln; if (not check_doubleSplit) then break; end; //ClearDevice; if check_doubleSplit then 34 begin OutTextXY(360, 100, ' la thi PHÂN CựC KÉP!'); end else for k:= to cnt begin ClearDevice; OutTextXY(200,100, 'Do thi G KHONG la thi phân cực kép!'); stt := 'Cac dinh tuong ung G: '; for i := to m stt := stt + num[c[i]] + ' '; OutTextXY(200, 120, stt); angle := 0; alpha := * Pi / n; for i := to n begin x[i] := 350 - trunc(150 * Sin(angle)); y[i] := 350 - trunc(150 * Cos(angle)); Circle(x[i], y[i], 5); angle := angle + alpha; end; for i := to n - for j := i + to n if (a[i,j] = 1) then Line(x[i],y[i],x[j],y[j]); angle := 0; for i := to n begin x[i] := 350 - trunc(170 * Sin(angle)); y[i] := 350 - trunc(170 * Cos(angle)); OutTextXY(x[i], y[i], num[i]); angle := angle + alpha; end; 35 m := res_c[k]; gname := res_na[k]; for i:=1 to m for j := to m b[i][j] := res[k][i][j]; OutTextXY(950,120,'Do thi sinh ' + gname); angle := 0; alpha := * Pi / m; for i := to m begin x[i] := 1000 - trunc(150 * Sin(angle)); y[i] := 350 - trunc(150 * Cos(angle)); Circle(x[i], y[i], 5); angle := angle + alpha; end; for i := to m - for j := i + to m if (b[i,j] = 1) then Line(x[i],y[i],x[j],y[j]); angle := 0; for i := to m begin x[i] := 1000 - trunc(170 * Sin(angle)); y[i] := 350 - trunc(170 * Cos(angle)); OutTextXY(x[i], y[i], num[i]); angle := angle + alpha; end; end; readln; end; Procedue closes; Đóng file f, g đóng hiển thị đồ họa procedure closes; begin close(f); close(g); CloseGraph; end; 36 Chương trình chính: thực lần lƣợt chƣơng trình con: solve close 3.2.4 Kết chạy chương trình Sau viết chƣơng trình, thực chạy chƣơng trình với số liệu cụ thể, ta thu đƣợc kết nhƣ sau: Ví dụ 1: Cho ma trận liền kề × đồ thị G đƣợc ghi file input.inp nhƣ sau Cho trƣớc đồ thị G’ (G’ đồ thị đƣợc biểu diễn dƣới dạng ma trận liền kề họ F gồm 23 đồ thị đồ thị bù 23 đồ thị) đƣợc ghi file fobidden.inp 37 - Xét đồ thị G’ = F1 họ F Đồ thị F1 có số đỉnh m =5 - Đồ thị G có số đỉnh n=6 Có G’ có số đỉnh nhỏ G thực bƣớc sau: Bƣớc 1: Xét tất chỉnh hợp gồm m = đỉnh tập n= đỉnh đồ thị G Có = 720 m đỉnh Ví dụ số m đỉnh đồ thị G {1,2,3,4,5}, {1,3,4,5,6}, {2,3,4,5,6},{1,2,3,5,6}… Bƣớc 2: Với m đỉnh tìm đƣợc ta tiến hành so sánh liệu cạnh tƣơng ứng tập m đỉnh tìm đƣợc với đồ thị G’= F Dữ liệu cạnh tƣơng ứng đồ thị G’= F ma trận liền kề sau: Dữ liệu cạnh tƣơng ứng đồ thị G với tập đỉnh {1,2,3,5,6} ma trận liền kề sau: Bƣớc 3: Trong bƣớc liệu cạnh tƣơng ứng đồ thị G’= F giống liệu cạnh tƣơng ứng đồ thị G với tập đỉnh {1,2,3,5,6} Vậy tìm đƣợc trƣờng hợp thỏa mãn đồ thị G’ đồ thị sinh đồ thị G kết thúc chƣơng trình kết luận G không đồ thị phân cực kép Kết chạy chƣơng trình: 38 Ví dụ 2: Cho ma trận liền kề 10 × 10 đồ thị G đƣợc ghi file input.inp nhƣ sau Cho trƣớc đồ thị G’ (G’ đồ thị đƣợc biểu diễn dƣới dạng ma trận liền kề họ F gồm 23 đồ thị đồ thị bù 23 đồ thị) đƣợc ghi file fobidden.inp 39 - Xét đồ thị G’ = F1 họ F Đồ thị F1 có số đỉnh m =5 - Đồ thị G có số đỉnh n=10 Có G’ có số đỉnh nhỏ G thực bƣớc sau: Bƣớc 1: Xét tất chỉnh hợp gồm m = đỉnh tập n= 10 đỉnh đồ thị G Có = 30240 m đỉnh Ví dụ số m đỉnh đồ thị G {1,2, 3,4,5}, {1,6,8,9,4},{1,3,4,5,6}, {2,3,4,5,6},{1,2,3,10,6}… Bƣớc 2: Với m đỉnh tìm đƣợc ta tiến hành so sánh liệu cạnh tƣơng ứng tập m đỉnh tìm đƣợc với đồ thị G’= F Bƣớc 3: Khơng tìm đƣợc trƣờng hợp thỏa mãn đồ thị G’= F khơng đồ thị sinh G Tƣơng tự thực bƣớc xét đồ thị G’ đồ thị: Đồ thị bù đồ thị F1, đồ thị F2, đồ thị bù F2,…đồ thị F23, đồ thị bù F23) Kết chạy chƣơng trình: 40 3.3 Kết thử nghiệm chƣơng trình đốn nhận đồ thị phân cực kép (Với máy tính: Asus Intel Core i3-3217U 1.80GHz, 4GB RAM) 3.4 Kết luận chƣơng Trong chƣơng tơi phân tích tốn đốn nhận đồ thị phân cực kép thơng qua lớp đồ thị đặc biệt F Xây dựng đƣợc thuật tốn kiểm tra đồ thị cho trƣớc có chứa đồ thị thuộc họ F đồ thị sinh hay khơng, liệt kê số biến, hàm, thủ tục q trình cài đặt thuật tốn Thuật tốn đƣợc cài đặt mô trực quan thuận tiện cho việc kiểm tra sử dụng Tôi đƣa giao diện đồ họa cài đặt cách thức sử dụng ứng dụng 41 PHẦN 3: KẾT LUẬN Qua trình nghiên cứu, luận văn đạt đƣợc yêu cầu ban đầu đề Cụ thể nhƣ sau: - Tìm hiểu trình bày lại số khái niệm lý thuyết đồ thị: định nghĩa đồ thị, cách phân loại đồ thị đặc điểm số loại đồ thị đặc biệt - Tìm hiểu khái niệm đồ thị phân cực, đồ thị phân cực đầy đủ, đồ thị phân cực kép tính chất đồ thị phân cực kép - Dựa đặc điểm tính chất đồ thị phân cực kép, luận văn xây dựng thuật toán đoán nhận đồ thị phân cực kép - Xây dựng chƣơng trình đốn nhận đồ thị phân cực phân tích kết thực chƣơng trình với số liệu cụ thể 42 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Vũ Đình Hòa, Lý thuyết đồ thị NXB ĐHSP Hà Nội 2005 [2] Vũ Đình Hòa, Định lý vấn đề đồ thị hữu hạn NXB Giáo dục, Hà Nội, 2001 [3] Lê Minh Hồng (1999 – 2001), Giả thuật lập trình Đại học Sƣ phạm Hà Nội, Hà Nội [4] Vũ Đình Hòa, Một số kiến thức sở graph hữu hạn NXB Giáo dục, Đà Nẵng, 2002 [5] Nguyễn Đức Nghĩa – Nguyễn Tơ Thành, Tốn rời rạc, NXB Giáo dục, 1999 [6] Đặng Huy Ruận, Lý thuyết đồ thị ứng dụng NXB Khoa học Kỹ thuật, 2002 Tiếng Anh [7] Boris Alexeev, Alexandra Fradkin & Ilhee Kim: Forbidden induced subgraphs of phân cực kép graphs, SIAM J DISCRETE MATH c_ 2012 [8] Maria Chudnovsky, Neil Robertson, Paul Seymour, and Robin Thomas, The strong perfect graph theorem, Ann Of Math (2) 164 (2006), no 1, 51–229 [9] St´ephane Foldes and Peter L Hammer, Split graphs, Proceedings of the Eighth Southeastern Conference on Combi-natorics, Graph Theory and Computing (Louisiana State Univ., Baton Rouge, La., 1977) (Winnipeg, Man.), Utilitas Math., 1977, pp 311–315 Congressus Numerantium, No XIX [10] Igor E Zverovich and Vadim E Zverovich, Basic perfect graphs and their extensions, Discrete Math 293 (2005),no 1-3, 291–311 43 [11] M.C Golumbic (1980), Algorithmic Graph Theory and Perfect Graphs, Academic Press, New York [12] A Francisco, H T Hà, and A Van Tuyl (2011), Colorings of hypergraphs, perfect graphs, and associated primes of powers of monomial ideals J Algebra 331, 224-242 [13] L Lovász (1972), Normal Hypergraphs and the Perfect Graph conjecture, Discrete Mathematics 2, 253-267 [14] Annegret Wagler, Konrad-Zuse, Graph theoretical problems and related polytopes, Block seminar L’Aquila, Italy, june 10-6,2003 44 ... xây dựng thuật toán đoán nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F Xây dựng đƣợc chƣơng trình giải tốn đốn nhận đồ thị phân cực kép thông qua lớp đồ thị đặc biệt F PHẦN 2: NỘI DUNG... đề "FORBIDDEN INDUCED SUBGRAPHS OF DOUBLE SPLIT GRAPHS" Đây vấn đề nhận biết lớp đồ thị đặc biệt dựa lớp đồ thị đặc biệt F Nhận biết lớp đồ thị đặc biệt thông qua lớp F đồ thị mở phƣơng pháp. .. đủ Phân cực kép Hình 2.9: Ví dụ đồ thị phân cực kép 23 Y’11 Y’22 Y’33 2.2 Lớp đồ thị đặc biệt F F1 = C5 F2 = K2,3 F3 = watch F4 = TV F5 = flag F6 = fish F7 = P0 P1 P2 F8 = P1 P3 F9 F1 0 F1 1