Đỉnh ht = Next; // đỉnh hiện tại }

Một phần của tài liệu Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA (Trang 32)

III. ỨNG DỤNG HEURISTIC GIẢI QUYẾT BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA

2.4.Đỉnh ht = Next; // đỉnh hiện tại }

2.3. Sum += G[v[ht]][v[i]];

2.4. Đỉnh ht = Next; // đỉnh hiện tại} }

3.5 Cài đặt thuật toán

- Một ma trận vuông cấp n thể hiện thông tin của đồ thị dưới dạng file “graph.txt”

- initGraph(DOTHI &Gr): Hàm dùng để khởi tạo một đồ thị mới từ cấu trúc đã tổ chức.

- ReadGraph(DOTHI &Gr): dùng để đọc đồ thị từ file “graph.txt”.

- outputGraph(DOTHI Gr): dùng để xuất đồ thị đã được nhập ra màn hình.

- testGraph(int a, int* v, DOTHI Gr): Kiểm tra điểm (đang duyệt có trùng với điểm đã duyệt trên ma trận không. Được gọi trong hàm topNear..).

- topNear(int a, DOTHI Gr, int* v) : Hàm tìm đỉnh kế tiếp theo thuật giải Heuristic. Được gọi lại trong hàm FindWay(...) .

- FindWay(int x, DOTHI Gr, int* v): Hàm tìm đường đi theo giải thuật Heuristic. Dựa theo cách tìm đường đi có trọng số nhỏ nhất để đi bước tiếp theo.

- Hàm Main

3.6 Chứng minh tính đúng

Thuật giải hueristic là đúng khi ta có các hueristic “đúng”. Trong bài toán người đưa thư thì hueristic “khi ta chọn đi trên những đoạn đường ngắn nhất thì cuối cùng ta sẽ có một hành trình ngắn nhất” là hợp lý  thuật giải Void FindWay(…) là đúng.

3.7 Tính độ phức tạp của thuật toán

Độ phức tạp của thuật toán

void FindWay(int x, DOTHI Gr, int* v) {

int e = x; --- 1

v[1] = x; --- 1 for (int i = 2; i <= Gr.nV; i++)

{

int next = topNear(e, Gr,v); - 2(n-1) + (n-1)n

v[i] = next; e = next; } v[Gr.nV+1] = x; --- 1 } T(n) = 3 + 2n -2 +n2 –n = n2 + n +1  T(n) = O(n2)

3.8 Hiệu chỉnh, cải tiến thuật toán

• Thuật toán hueristic cho bài toán người đưa thư có độ phức tạp O(n2) tốt hơn rất nhiều so với thuật toán vét cạn có độ phức tạp O(n!). Tuy nhiên thuật giải còn hạn chế là lời giải chỉ chấp nhận được theo một điều kiện nào đó, chưa chắc là tối ưu mà chỉ đạt mức gần tối ưu.

• Cải tiến : Khảo sát bài toán trên thực tế để đưa vào thêm một số hueristic o Ước lượng khoảng cách đến mục tiêu ( khoảng cách đường chim

Một phần của tài liệu Tiểu luận môn Thuật Toán và Phương Pháp Giải Quyết Vấn Đề PHƯƠNG PHÁP HUERISTIC VÀ BÀI TOÁN NGƯỜI ĐƯA THƯ TRUNG HOA (Trang 32)