Định lý 23.6 Định lý dấu ngoặc, Parenthesis theorem
Trong mọi tìm kiếm theo chiều sâu của một đồ thị hữu hướng hay vô hướng G = (V, E), đối với mọi cặp đỉnh u và v, chỉ một trong ba điều sau là đúng
° các khoảng [d[u], f [u]] và [d[v], f [v]] là rời nhau,
° khoảng [d[u], f [u]] hoàn toàn nằm trong khoảng [d[v], f [v]], và u
là một hậu duệ của v trong cây theo chiều sâu,
° khoảng [d[v], f [v]] hoàn toàn nằm trong khoảng [d[u], f [u]], và v
là một hậu duệ của u trong cây theo chiều sâu.
Chứng minh
• Trường hợp d[u] < d[v]: xét hai trường hợp con
° d[v] < f [u]. Đỉnh v được tìm ra trong khi u còn là xám, vậy v là một hậu duệ của u. Hơn nữa vì v được tìm ra sau u, nên một khi mọi cạnh từ v được thăm dò xong thì v hoàn tất, trước khi việc tìm
7.11.2004 Ch. 8: Elementary Graph Algorithms aph Algorithms
33
Đặc tính của tìm kiếm theo chiều sâu
Chứng minh (tiếp)
kiếm quay về u và hoàn tất u, do đó f [v] < f [u]. Tổng kết:
d[u] < d[v] < f [v] < f [u], tức là khoảng [d[v], f [v]] hoàn toàn nằm trong khoảng [d[u], f [u]].
° f [u] < d[v]. Hơn nữa, vì d[u] < f [u] và d[v] < f [v] nên
d[u] < f [u] < d[v] < f [v], tức là các khoảng [d[u], f [u]] và [d[v], f
[v]] là rời nhau.
7.11.2004 Ch. 8: Elementary Graph Algorithms aph Algorithms
34
Đặc tính của tìm kiếm theo chiều sâu
Định lý 23.8 Định lý white-path
Cho một đồ thị vô hướng hay có hướng G = (V, E ).
• Trong rừng theo chiều sâu của G, đỉnh v là một hậu duệ của đỉnh
u
∀ ⇔ vào thời điểm d[u] khi DFS tìm ra u, đỉnh v có thể đến được từ
u theo một đường đi chỉ gồm các đỉnh màu trắng.
• Chứng minh
∀ ⇒ : Giả sử v là một hậu duệ của đỉnh u. Gọi w là một đỉnh bất kỳ nằm trên đường đi từ u đến v trong cây theo chiều sâu, thì w là một hậu duệ của u. Vậy d[u] < d[w], do đó w là trắng vào lúc d[u].
7.11.2004 Ch. 8: Elementary Graph Algorithms aph Algorithms
35
Đặc tính của tìm kiếm theo chiều sâu
ª Phân loại các cạnh của G = (V, E)
– Các cạnh cây (tree edge): là các cạnh trong Gπ .
– Các cạnh lùi (back edge): là các cạnh (u, v) nối u đến một nút tổ tiên (ancestor) v trong một depth-first tree.
– Các cạnh tiến (forward edge): là các cạnh, không phải là các cạnh cây, (u, v) nối một đỉnh u đến một hậu duệ (descendant) v
trong một depth-first tree.
7.11.2004 Ch. 8: Elementary Graph Algorithms aph Algorithms
36
Đặc tính của tìm kiếm theo chiều sâu
Định lý 23.9
Trong tìm kiếm theo chiều sâu của một đồ thị vô hướng G, mỗi cạnh của G hoặc là một cạnh cây hoặc là một back edge.
Chứng minh
° Xét một cạnh bất kỳ (u,v) của G. Giả sử d[u] < d[v].
° v phải được hoàn tất trước u vì v nằm trong danh sách các đỉnh kề của u.
° Hai trường hợp:
– Cạnh (u,v) được thăm dò lần đầu theo hướng từ u đến v: (u,v) là cạnh cây.
– Cạnh (u,v) được thăm dò lần đầu theo hướng từ v đến u: (u,v) là back edge vì đỉnh u còn là xám (u hoàn tất sau v).
7.11.2004 Ch. 8: Elementary Graph Algorithms aph Algorithms
37