You are on page 1of 10

WED201c – Wed desgin TL02 – HTML5 # part01

CSD201 # TL07 # Graph


A. Objectives
1. Clear about directed graph and undirected graph.
2. Understand the application of graph.
3. Understand how to traversal an exist graph using DFS or BFS.
4. Clear about Hamiltonian path and Hamiltonian cycle.
5. Clear about Eulerian path and Eulerian cycle.
6. Understand how to find minimum spanning tree using Prim or Kruskal algorithm.
7. Understand how to find shortest path using Dijkstra algorithm.
8. Understand how to find all -pairs shortest path using Floyd Warshall algorithm.

B. Research
SUMMER 2023
CSD201 – Data structures and Algorithm
SE1713
Group …………
Member:
1. MSSV Full name
2. …………
3. …………
4. …………
5. …………

Question

1. What is Graph? What are difference between directed graph and undirected graph? What are ap-
plication of graph?
Answer:
Đồ thị là một tập các đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau bởi các cạnh (hoặc
cung). Cạnh có thể có hướng hoặc vô hướng. đồ thị được vẽ dưới dạng một tập các điểm (đỉnh,
nút) nối với nhau bởi các đoạn thẳng (cạnh).

Võ Hồng Khanh khanhvh@fe.edu.vn Page 1 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Hình vẽ một đồ thị có 6 đỉnh và 7 cạnh

Đồ thị vô hướng
Đồ thị vô hướng hoặc đồ thị G là một cặp không có thứ tự (unordered pair) G:=(V, E), trong
đó
 V, tập các đỉnh hoặc nút,
 E, tập các cặp không thứ tự chứa các đỉnh phân biệt, được gọi là cạnh. Hai đỉnh thuộc
một cạnh được gọi là các đỉnh đầu cuối của cạnh đó.
Tập các cạnh bao gồm cả các cặp đỉnh không phân biệt, các cạnh này được gọi là các khuyên. V
(và E) thường là các tập hữu hạn

Một đồ thị vô hướng với 6 đỉnh (nút) và 7 cạnh.

Đồ thị có hướng
Đồ thị có hướng G là một cặp có thứ tự G:=(V, A), trong đó
 V, tập các đỉnh hoặc nút,
 A, tập các cặp có thứ tự chứa các đỉnh, được gọi là các cạnh có hướng hoặc cung. Một
cạnh e = (x, y) được coi là có hướng từ x tới y; x được gọi là điểm đầu/gốc và y được
gọi là điểm cuối/ngọn của cạnh.

Võ Hồng Khanh khanhvh@fe.edu.vn Page 2 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Đồ thị có hướng

Các ứng dụng của Lý thuyết đồ thị


1. Khoa học máy tính:
• Đồ thị được sử dụng để nghiên cứu các thuật toán như:
1. Thuật toán Dijkstra
2. Thuật toán Prims
3. Thuật toán Kruskal
• Đồ thị được sử dụng để xác định luồng tính toán (flow of computation).
• Đồ thị được sử dụng để đại diện cho các mạng truyền thông (networks of communication).
• Đồ thị được sử dụng để thể hiện tổ chức dữ liệu (data organization).
2. Kỹ thuật điện
Lý thuyết đồ thị được sử dụng trong việc thiết kế các kết nối mạch
3. Ngôn ngữ học
Trong ngôn ngữ học, đồ thị chủ yếu được sử dụng để phân tích cú pháp cây ngôn ngữ (parsing of a lan-
guage tree) và ngữ pháp của cây ngôn ngữ (grammar of a language tree).
4. Vật lý và hóa học
• Trong vật lý và hóa học, lý thuyết đồ thị được sử dụng để nghiên cứu các phân tử (study mole-
cules).
• Vật lý thống kê (statistical physics) cũng sử dụng đồ thị.
• Đồ thị cũng hữu ích trong việc xây dựng cấu trúc phân tử (constructing the molecular structure)
cũng như mạng tinh thể của phân tử.
5. Mạng máy tính
• Trong mạng máy tính, mối quan hệ giữa các máy tính được kết nối với nhau trong mạng, tuân
theo các nguyên tắc của lý thuyết đồ thị.
• Lý thuyết đồ thị cũng được sử dụng trong an ninh mạng (network security).
Võ Hồng Khanh khanhvh@fe.edu.vn Page 3 / 10
WED201c – Wed desgin TL02 – HTML5 # part01

6. Khoa học xã hội


• Lý thuyết đồ thị cũng được sử dụng trong xã hội học. Ví dụ: để khám phá sự lan truyền tin đồn
hoặc để đo lường uy tín của các diễn viên một cách đáng chú ý thông qua việc sử dụng phần
mềm phân tích mạng xã hội.
• Đồ thị tình bạn và người quen mô tả liệu mọi người có biết nhau hay không.
7. Sinh học
• Nó cũng được sử dụng trong các mạng Trao đổi chất.
• Trong các mạng PPI (Protein - Protein tương tác), lý thuyết đồ thị cũng rất hữu ích.
• Đặc điểm mối quan hệ ma túy - mục tiêu ma túy.
8. Toán học
• Con đường chi phí tối thiểu.
• Một vấn đề lập kế hoạch.
9. Chung
Đồ thị được sử dụng để thể hiện các tuyến đường giữa các thành phố.

2. What are edge, vertex, isolated vertex, articulation points (cut vertex), bridge (cut edge), vertex
degree, connected component?
Answer:

3. Explain step by step how to traversal a graph using DFS algorithm.


Answer:
Thuật toán DFS hoạt động như sau:
1. Bắt đầu bằng cách đặt bất kỳ đỉnh nào của đồ thị lên trên cùng của ngăn xếp.
2. Lấy mục trên cùng của ngăn xếp và thêm nó vào danh sách đã truy cập.
3. Tạo một danh sách các nút liền kề của đỉnh đó. Thêm những cái không có trong danh
sách đã truy cập vào đầu ngăn xếp.
4. Tiếp tục lặp lại bước 2 và 3 cho đến khi ngăn xếp trống.
Ví dụ:

Võ Hồng Khanh khanhvh@fe.edu.vn Page 4 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Đồ thị vô hướng có 5 đỉnh

Truy cập phần tử 0 và đưa nó vào danh sách đã truy cập (visited list)
Tiếp theo, chúng tôi truy cập phần tử ở đầu ngăn xếp, tức là 1 và đi đến các nút liền kề của nó. Vì 0 đã
được truy cập, thay vào đó, chúng tôi truy cập 2.

Truy cập phần tử ở đầu ngăn xếp (Stack)


Đỉnh 2 có một đỉnh liền kề chưa được thăm trong 4, vì vậy chúng tôi thêm đỉnh đó vào đỉnh của ngăn
xếp và thăm nó.

Đỉnh 2 có một đỉnh liền kề chưa được đi qua là 4, vì vậy chúng tôi thêm đỉnh đó vào đỉnh của ngăn xếp
và thăm nó.
Võ Hồng Khanh khanhvh@fe.edu.vn Page 5 / 10
WED201c – Wed desgin TL02 – HTML5 # part01

Đỉnh 2 có một đỉnh liền kề chưa được thăm trong 4, vì vậy chúng tôi thêm đỉnh đó vào đỉnh của ngăn
xếp và thăm nó.
Sau khi chúng tôi truy cập phần tử 3 cuối cùng, nó không có bất kỳ nút liền kề nào chưa được truy cập,
vì vậy chúng tôi đã hoàn thành Di chuyển theo chiều sâu đầu tiên của biểu đồ.

Sau khi chúng tôi truy cập phần tử 3 cuối cùng, nó không có bất kỳ nút liền kề nào chưa được truy cập,
vì vậy chúng tôi đã hoàn thành Di chuyển theo chiều sâu đầu tiên của biểu đồ.

4. Explain step by step how to traversal a graph using BFS algorithm.


Answer:

5. What are difference between Hamiltonian path and Hamiltonian cycle? Explain step by step
how to find a Hamiltonian path and Hamiltonian cycle.
Answer:
Đường đi Hamilton (Hamiltonian path) là mỗi đỉnh đúng một lần và quay trở về nơi xuất phát.

Võ Hồng Khanh khanhvh@fe.edu.vn Page 6 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Đường đi Hamilton

Chu trình Hamilton


Xét đồ thị G=(X,E) gồm n đỉnh, trong quá trình tìm chu trình Hamilton chúng ta có thể vận
dụng 4 quy tắc sau đây
1. Lấy hết các cạnh kề với đỉnh bậc 2.
2. Không cho phát sinh chu trình ít hơn n cạnh.
3. Nếu đã lấy 2 cạnh kề với đỉnh x thì có thể bỏ tất cả các cạnh còn lại kề với x.
4. Duy trì tính liên thông và bảo đảm bậc mỗi đỉnh luôn lớn hơn hay bằng 2.

Quy tắc 3 được minh họa trong hình,khi thực hiện quy tắc này thì bậc của một số đỉnh bị giảm xuống:
nhờ vậy chúng ta có thể tận dụng trở lại quy tắc 1 và quy tắc 4.
Bước để tìm đường đi Hamilton

Võ Hồng Khanh khanhvh@fe.edu.vn Page 7 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Võ Hồng Khanh khanhvh@fe.edu.vn Page 8 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

Đồ thị thể hiện trong Hình 1 không chứa bất kỳ Đường dẫn Hamilton nào. Biểu đồ thể hiện trong Hình.
2 chứa hai Con đường Hamiltonian được tô sáng trong Hình. 3 và Hình. 4
Bước để tìm chu trình Hamilton

Quy tắc 3 được minh họa trong hình,khi thực hiện quy tắc này thì bậc của một số đỉnh bị giảm xuống:
nhờ vậy chúng ta có thể tận dụng trở lại quy tắc 1 và quy tắc 4.
6. What are difference between Eulerian path and Eulerian cycle? Explain step by step how to find
a Eulerian path and Eulerian cycle.
Answer:

7. What are difference between Hamiltonian cycle and Eulerian cycle?


Answer:

8. What is minimum spanning tree? Explain step by step how to find a minimum spanning tree us-
ing Prim algorithm.
Answer:

9. Explain step by step how to find a minimum spanning tree using Kruskal algorithm.
Answer:

10. What are difference between two algorithms Prim and Kruskal?
Answer:

Võ Hồng Khanh khanhvh@fe.edu.vn Page 9 / 10


WED201c – Wed desgin TL02 – HTML5 # part01

11. What is shortest path? Explain step by step how to find a shortest path using Dijkstra algorithm.
Answer:

12. Explain step by step how to find all-pairs shortest path using Floyd Warshall algorithm.
Answer:

Võ Hồng Khanh khanhvh@fe.edu.vn Page 10 / 10

You might also like