1. Trang chủ
  2. » Mẫu Slide

ly thuyet do thi

44 10 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 44
Dung lượng 681,5 KB

Nội dung

Chứng minh tồn tại một dây chuyền nối hai đỉnh đó với nhau. 3.[r]

(1)

ĐẠI CƯƠNG VỀ ĐỒ THỊ

ntsonptnk@gmail.com

(2)

ĐỊNH NGHĨA

Một đồ thị có hướng G=(X,

U) định nghĩa bởi:

Tập hợp X   gọi

tập đỉnh đồ thị;

Tập hợp U tập cạnh đồ thị;

Mỗi cạnh uU liên kết

(3)

ĐỊNH NGHĨA

Một đồ thị vô hướng G=(X,

E) định nghĩa bởi:

Tập hợp X   gọi

tập đỉnh đồ thị;

Tập hợp E tập cạnh đồ thị;

Mỗi cạnh eE liên kết

(4)

ĐỒ THỊ HỮU HẠN

Đồ thị có tập đỉnh tập cạnh hữu hạn

gọi ĐỒ THỊ HỮU HẠN

Học phần làm việc ĐỒ THỊ HỮU

(5)

ĐỈNH KỀ

Trên đồ thị có hướng, xét cạnh u liên kết

với cặp đỉnh (i, j):

Cạnh u kề với đỉnh i đỉnh j (hay đỉnh i đỉnh j kề

với cạnh u); viết tắt u=(i, j) Cạnh u khỏi đỉnh i vào đỉnh j

(6)

ĐỈNH KỀ

Trên đồ thị vô hướng, xét cạnh e liên kết

với cặp đỉnh (i, j):

Cạnh e kề với đỉnh i đỉnh j (hay đỉnh i đỉnh j kề

với cạnh e); viết tắt e=(i, j)

(7)

MỘT SỐ KHÁI NIỆM

Cạnh song song Khuyên

(8)

CÁC DẠNG ĐỒ THỊ

Đồ thị RỖNG: tập cạnh tập

rỗng

Đồ thị ĐƠN: khơng có khun

và cạnh song song

Đồ thị ĐỦ: đồ thị vô hướng,

đơn, hai đỉnh có cạnh

Đồ thị đủ N đỉnh ký hiệu KN KN có N(N-1)/2 cạnh

C

(9)

CÁC DẠNG ĐỒ THỊ

Đồ thị LƯỠNG PHÂN: đồ thị G=(X, E) gọi đồ thị lưỡng phân tập X chia thành hai tập X1 X2 thỏa:

X1 X2 phân hoạch X;

Cạnh nối X1 X2

Đồ thị LƯỠNG PHÂN ĐỦ: đồ thị lưỡng phân đơn, vô hướng thỏa với (i, j)/iX1 jX2 có

đúng cạnh i j

X1=N X2=M, ký hiệu KM, N

C A

B

D

(10)

VÍ DỤ: ĐỒ THỊ ĐỦ

K4 K4

K3, 3 K2, 3

K2  K1, 1

(11)

BẬC CỦA ĐỈNH

Xét đồ thị vô hướng G

Bậc đỉnh x đồ thị G số cạnh kề với đỉnh x, khuyên tính hai lần, ký hiệu dG(x) (hay

(12)

BẬC CỦA ĐỒ THỊ

Xét đồ thị có hướng G

Nửa bậc ngồi của đỉnh x số cạnh khỏi đỉnh x, ký hiệu d+(x)

Nửa bậc của đỉnh x số cạnh vào đỉnh x, ký hiệu d-(x)

(13)

BẬC CỦA ĐỈNH

Đỉnh TREO đỉnh có bậc

bằng

Đỉnh CƠ LẬP đỉnh có bậc

bằng

C

A B

(14)

MỐI LIÊN HỆ BẬC - SỐ CẠNH

Định lý:

Xét đồ thị có hướng G=(X, U) Ta có:

Xét đồ thị vơ hướng G=(X, E) Ta có:

Hệ quả: số lượng đỉnh có bậc lẻ

đồ thị số chẳn

 x d  x d x U d X x X x X x         

(15)

ĐẲNG CẤU ĐỒ THỊ Hai đồ thị vô hướng G1 =(X1,

E1) G2=(X2, E2) gọi

đẳng cấu với tồn hai song ánh   thỏa mãn

điều kiện:

: X1  X2 : E1  E2

Nếu cạnh e  E1 kề với cặp đỉnh {x, y}  X1 G1 cạnh (e) kề với cặp đỉnh

{(x), (y)} G2 (sự tương ứng cạnh)

u1 u5 u

4 u2 u3 u6 a

(16)

ĐẲNG CẤU ĐỒ THỊ Hai đồ thị có hướng G1=(X1, U1)

và G2=(X2, U2) gọi

đẳng cấu với tồn hai song ánh   thỏa mãn

điều kiện:

: X1  X2 : U1  U2

Nếu cạnh u  U1 liên kết với cặp đỉnh (x, y)  X1 G1 cạnh (u) liên kết với cặp

đỉnh ((x), (y)) G2 (sự tương ứng cạnh)

1

2 3

G3

1

2 3

(17)

ĐỒ THỊ CON

Xét hai đồ thị G=(X, U) G1=(X1, U1) G1 gọi

là đồ thị G ký hiệu G1  G nếu:

X1  X; U1  U

u=(i, j)  U G, u  U1 i, j  X1

u1 u5 u

4

u2

u3

u6

1

4

G

u1

u3

1

4 u2

(18)

ĐỒ THỊ BỘ PHẬN

Đồ thị G1=(X1, U1) đồ thị G=(X, U)

gọi đồ thị phận G X=X1

u1 u5 u

4

u2

u3

u6

1

4

G

u1

u4 u2

u3

1

4

(19)

ĐỒ THỊ CON SINH BỞI TẬP ĐỈNH

Cho đồ thị G=(X, U) A  X Đồ thị sinh

bởi tập đỉnh A, ký hiệu <A> (A, V), đó:

(i) tập cạnh V  U

(ii) Gọi u=(i, j)  U cạnh G, i, j  A

u  V u

1

u5 u

4 u2 u3 u6 G u1 u3 u2 <A>

(20)

DÂY CHUYỀN, CHU TRÌNH

Một dây chuyền G=(X, U) đồ thị C=(V, E) G với:

V = {x1, x2, …, xM}

E = {u1, u2, …, uM-1} với u1=x1x2, u2=x2x3, …, uM-1=xM-1xM; liên kết xixi+1 khơng phân biệt thứ tự

Khi đó, x1 xM nối với dây chuyền C x1 đỉnh đầu xM đỉnh cuối C

Số cạnh C gọi độ dài C.

(21)

DÂY CHUYỀN, CHU TRÌNH

Dây chuyền SƠ CẤP: dây chuyền khơng có đỉnh

lặp lại

CHU TRÌNH: dây chuyền có đỉnh đầu

(22)

ĐƯỜNG ĐI, MẠCH

Một ĐƯỜNG ĐI G=(X, U) đồ thị

P=(V, E) G với:

V = {x1, x2, …, xM}

E = {u1, u2, …, uM-1} với u1=x1x2, u2=x2x3, …, uM-1=x M-1xM; liên kết xixi+1 theo thứ tự

Khi đó, có đường P nối từ x1 đến xM x1 đỉnh

đầu xM đỉnh cuối P

Số cạnh P gọi độ dài P.

Khi cạnh hoàn toàn xác định cặp đỉnh

(23)

Đường SƠ CẤP: đường đỉnh lặp lại. MẠCH: đường có đỉnh đầu trùng với đỉnh

cuối

Với đồ thị vô hướng:

Dây chuyền  đường đi, chu trình  mạch

Do đó, thuật ngữ đường dùng cho đồ thị vô hướng

Mạch đồ thị có hướng cịn gọi “chu

trình có hướng” Đường đồ thị có hướng gọi “đường có hướng” để nhấn mạnh

(24)

THÀNH PHẦN LIÊN THÔNG

Cho đồ thị G=(X, U) Ta định nghĩa quan hệ

LIÊN KẾT  sau tập đỉnh X:

i, jX, i  j  (ij có dây chuyền nối i với

j)

Quan hệ nầy có ba tính chất: phản xạ, đối xứng

(25)

THÀNH PHẦN LIÊN THÔNG Định nghĩa:

Một thành phần liên thông đồ thị lớp tương đương xác định quan hệ LIÊN KẾT ;

Số thành phần liên thông đồ thị số lượng lớp tương đương;

Đồ thị liên thơng đồ thị có thành phần liên thông

Khi đồ G gồm p thành phần liên thơng G1, G2, …, Gp đồ thị Gi đồ thị G

(26)

THÀNH PHẦN LIÊN THÔNG

G gồm thành phần liên thông, H đồ thị liên thơng

(27)

THÀNH PHẦN LIÊN THƠNG

Thuật tốn xác định thành phần liên thơng

Input: đồ thị G=(X, E), tập X gồm N đỉnh 1, 2, …, N

Output: đỉnh G gán nhãn số hiệu thành phần liên thông tương ứng

1 Khởi tạo biến label=0 và gắn nhãn cho tất đỉnh

2 Duyệt qua tất đỉnh iX

Nếu nhãn i 1 label = label +

(28)

THÀNH PHẦN LIÊN THÔNG

Thuật toán gán nhãn đỉnh thuộc thành phần liên thông với đỉnh i – Visit(i, label)

Input: đồ thị G=(X, E), đỉnh i, nhãn label

Output: đỉnh thuộc thành phần liên thông với i gắn nhãn label

1.Gắn nhãn label cho đỉnh i

2.Duyệt qua tất đỉnh jX có cạnh nối với

i

(29)

BIỂU DIỄN ĐỒ THỊ BẰNG HÌNH VẼ

A

B

C

D u1

u2

u3

u4

u5 u6

A

B

C

D e1

e2

e3

e4

e5 e6

(30)

BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN Ma trận KỀ:

Xét đồ thị G=(X, U), giả sử tập X gồm N đỉnh

được thứ tự X={x1, x2, …, xN}, tập U gồm M

cạnh thứ tự U={u1, u2, …, uM}

Ma trận kề đồ thị G, ký hiệu B(G), ma

trận nhị phân cấp NxN B=(Bij) với Bij định

nghĩa:

Bij=1 có cạnh nối xi tới xj,

(31)

BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN KỀ

(32)

BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN KỀ

(33)

BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN Ma trận LIÊN THUỘC đồ thị vô hướng:

Xét đồ thị G=(X, U) vô hướng, giả sử tập X gồm

N đỉnh thứ tự X={x1, x2, …, xN}, tập

U gồm M cạnh thứ tự U={u1, u2,

…, uM}

Ma trận liên thuộc (hay liên kết đỉnh cạnh)

G, ký hiệu A(G), ma trận nhị phân cấp NxM A=(Aij) với Aij định nghĩa:

(34)

BIỂU DIỄN ĐỒ THỊ

BẰNG MA TRẬN LIÊN THUỘC

G                1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 A 1 2 3 4 e1 e2 e3 e4

(35)

BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN Ma trận LIÊN THUỘC đồ thị có hướng:

Xét đồ thị G=(X, U) có hướng, giả sử tập X gồm

N đỉnh thứ tự X={x1, x2, …, xN}, tập U gồm M cạnh thứ tự U={u1, u2, …, uM}

Ma trận liên thuộc (hay liên kết đỉnh cạnh) G,

ký hiệu A(G), ma trận nhị phân cấp NxM A=(Aij) với Aij được định nghĩa:

Aij=1 cạnh uj khỏi đỉnh xi, Aij=-1 cạnh uj vào đỉnh xi,

(36)

BIỂU DIỄN ĐỒ THỊ

BẰNG MA TRẬN LIÊN THUỘC

G                      1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 1 1 1 A 1 2 3 4 u1 u2 u3 u4

(37)

BIỂU DIỄN ĐỒ THỊ BẰNG NNLT C++

#define MAX 100 class Graph

{

protected:

int nVertex; //số đỉnh đồ thị, đỉnh //đánh số từ 0

int labels[MAX]; //nhãn đỉnh int degrees[MAX]; //bậc đỉnh

unsigned char B[MAX][MAX]; //ma trận kề void Visit(int i, int label);

public:

void GetData(const char *filename); int FindConnected();

(38)

Source code: nhập liệu từ textfile

void Graph::GetData(const char *filename) {

//nhập liệu từ tập tin văn bản ifstream fin;

fin.open(filename); fin >> nVertex;

for (int i = 0; i < nVertex; ++i)

for (int j = 0; j < nVertex; ++j) fin >> B[i][j];

(39)

Source code: xác định bậc đỉnh

void Graph::CountDegree() {

//xác định bậc đỉnh, đồ thị vô hướng for(int i=0;i<nVertex; i++)

for(degrees[i]=0, int j=0;

j<nVertex; j++) degrees[i] += B[i][j];

(40)

Source code: gán nhãn TPLT

void Graph::Visit(int i, int label) {

labels[i] = label;

for (int j=0; j<N; j++)

if((labels[j]==0)&&(B[i][j]||B[j][i]) Visit(j, label);

(41)

Source code: gán nhãn tất TPLT

int Graph::FindConnected() {

int i, label;

for (int i=0; i<N; i++) labels[i] = 0;

label = 0;

for (int i=0; i<N; i++) if (labels[i]==0) {

label ++;

Visit(j, label) }

(42)

BÀI TẬP

1 G đồ thị đơn, vơ hướng có số đỉnh N>3 Chứng minh G có chứa đỉnh bậc

2 Đồ thị G có đỉnh bậc lẻ Chứng minh tồn dây chuyền nối hai đỉnh với

3 Xét đồ thị G đơn, vô hướng gồm N đỉnh, M cạnh P thành phần liên thông

a Chứng minh: M  (N-P)(N-P+1)/2,

suy M > (N-1)(N-2)/2 G liên thơng

(43)

BÀI TẬP

4 Đồ thị G đơn, vô hướng gồm N đỉnh d(x)(N-1)/2 với đỉnh x Chứng minh G liên

thông

5 Đồ thị vô hướng G liên thông gồm N đỉnh Chứng minh số cạnh G  N-1

6 Xét đồ thị G vô hướng đơn Gọi x đỉnh có bậc nhỏ G Giả sử d(x)k2 với k

(44)

BÀI TẬP

7 Cho G đồ thị vô hướng liên thông Giả sử C1

và C2 dây chuyền sơ cấp G có số

cạnh nhiều Chứng minh C1 C2 có đỉnh

chung

8 G đồ thị vô hướng không khuyên d(x) 3

Ngày đăng: 11/05/2021, 10:21

w