Tìm kiếm theo chiều rộng bfs hdth bfs

3 0 0
Tìm kiếm theo chiều rộng   bfs hdth bfs

Đang tải... (xem toàn văn)

Thông tin tài liệu

Các hệ thống thông minh nhân tạo và ứng dụng Các hệ thống thông minh nhân tạo và ứng dụng Khoa CNTT, ĐH KHTN HCM 1 HƯỚNG DẪN THỰC HÀNH TÌM KIẾM THEO CHIỀU RỘNG BFS 1 Các cấu trúc dữ liệu cần dùng Các[.]

Các hệ thống thông minh nhân tạo ứng dụng HƯỚNG DẪN THỰC HÀNH TÌM KIẾM THEO CHIỀU RỘNG - BFS Các cấu trúc liệu cần dùng Các cấu trúc liệu cần sử dụng cài đặt thuật tốn tìm kiếm đường theo chiều rộng – BFS, bao gồm:  Đồ thị (hay đồ đường đi): ma trận kề, có kích thước 𝑁 × 𝑁 Trong 𝑁 số đỉnh đồ thị  Hàng đợi 1.1 Đồ thị class MyGraph { private: int soDinh; int dinh[MAX][MAX]; } Để sử dụng đồ thị, cần khai báo biến sau: MyGraph g; 1.2 Hàng đợi Sinh viên tự cài đặt hàng đợi sử dụng kiểu liệu hỗ trợ sẵn Dưới ví dụ cho hàng đợi ngơn ngữ C++ Sinh viên tham khảo thêm liên kết sau đây: http://www.cplusplus.com/reference/queue/queue/ #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Khai báo hàng đợi queue q; // Thêm phần tử vào hàng đợi q.push(5); return 0; } Khoa CNTT, ĐH KHTN HCM Các hệ thống thông minh nhân tạo ứng dụng Cài đặt 2.1 Đọc thông tin từ tập tin đầu vào void MyGraph::DocDoThi(char* filename, int &start, int &end){ //1 Mở tập tin ifstream f; //2 Đọc số đỉnh f >> this->soDinh; //3 Đọc đỉnh bắt đầu đỉnh kết thúc f >> ; f >> ; //4 Đọc ma trận kề for(int i = 0; i < this->soDinh; i++){ for(int j = 0; j < this->soDinh; j++){ } } } 2.2 Thuật toán BFS int MyGraph::RunBFS(int start, int end, int* dinhTruoc){ //1 Khởi tạo hàng đợi //2 Khởi tạo thông tin khác // - nhãn (labels): dùng để đánh dấu vị trí thăm // - dinhTruoc: để ghi nhớ đỉnh trước đỉnh đường //3 Thêm start vào hàng đợi /*4 while( hàng đợi không rỗng) { 4.1 Lấy phần tử đầu vào hàng đợi 4.2 Nếu v trùng với đỉnh end Dừng thuật tốn Trả có đường Ngược lại, Lặp qua đỉnh i có cạnh nối từ v Nếu đỉnh i chưa viếng thăm - Gán dinhTruoc[i] = v - Đánh dấu thăm i Khoa CNTT, ĐH KHTN HCM Các hệ thống thông minh nhân tạo ứng dụng - Thêm i vào hàng đợi } */ } Khoa CNTT, ĐH KHTN HCM ... i < this->soDinh; i++){ for(int j = 0; j < this->soDinh; j++){ } } } 2.2 Thuật toán BFS int MyGraph::RunBFS(int start, int end, int* dinhTruoc){ //1 Khởi tạo hàng đợi //2 Khởi tạo thông tin

Ngày đăng: 25/03/2023, 08:43

Tài liệu liên quan