Bài giảng Toán rời rạc: Tìm kiếm trên đồ thị (Version ) cung cấp cho người học những nội dung kiến thức như: Biểu diễn đồ thị, tìm kiếm theo chiều sâu trên đồ thị vô hướng, tìm kiếm theo chiều sâu trên đồ thị có hướng, thành phần liên thông mạnh. Mời các bạn cùng tham khảo. | Tìm kiếm trên đồ thị Version Trần Vĩnh Đức HUST Ngày 29 tháng 7 năm 2018 https tailieudientucntt 1 57 Tài liệu tham khảo S. Dasgupta C. H. Papadimitriou and U. V. Vazirani Algorithms July 18 2016. Chú ý Nhiều hình vẽ trong tài liệu được lấy tùy tiện mà chưa xin phép. https tailieudientucntt 2 57 Nội dung Biểu diễn đồ thị Tìm kiếm theo chiều sâu trên đồ thị vô hướng Tìm kiếm theo chiều sâu trên đồ thị có hướng Thành phần liên thông mạnh https tailieudientucntt Biểu diễn đồ thị dùng Ma trận kề Nếu đồ thị có n V đỉnh v1 v2 . . . vn thì ma trận kề là một mảng n n với phần tử i j của nó là 1 nếu có cạnh từ vi tới vj aij 0 ngược lại. Ví dụ v2 1 1 1 v1 A 0 0 1 0 1 0 v3 https tailieudientucntt 4 57 Dùng ma trận kề có hiệu quả Có thể kiểm tra có cạnh nối giữa cặp đỉnh bất kỳ chỉ cần một lần truy cập bộ nhớ. Tuy nhiên không gian lưu trữ là O n2 https tailieudientucntt 5 57 Biểu diễn đồ thị dùng danh sách kề Dùng một mảng Adj gồm V danh sách. Với mỗi đỉnh u V phần tử Adj u lưu trữ danh sách các hàng xóm của u. Có nghĩa rằng Adj u v V u v E . Ví dụ 1 Adj 0 0 1 2 Adj 1 2 0 Adj 2 1 2 https tailieudientucntt 6 57 Dùng danh sách kề có hiệu quả Có thể liệt kê các đỉnh kề với một đỉnh cho trước một cách hiệu quả. Nó cần không gian lưu trữ là O V E . Ít hơn O V 2 rất nhiều khi đồ thị ít cạnh. https tailieudientucntt 7 57 Nội dung Biểu diễn đồ thị Tìm kiếm theo chiều sâu trên đồ thị vô hướng Tìm kiếm theo chiều sâu trên đồ thị có hướng Thành phần liên thông mạnh https tailieudientucntt EALIZETHATTHEORDERINWHICHEDGES WHICHVERTICESAPPEARINTHEARRAYOF - H M T E R E hỏi T VTừ một 13 đỉnh của đồ thị ta có thể đi tớiGraph java những đỉnh nào E 13 vertices 13 edges Y 13 0 6 2 1 5 0 5 T 4 3 1 0 2 0 N 0 1 3 5 4 first adjacent