1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo cuối kỳ môn phân tích thiết kế và giải thuật chủ đề thuật toán quy hoạch động

12 0 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM TP... Cài đặt.Hướng dẫn chạy chương trình:Sau khi giải nén thầy chọn mục Grap_Theory.sln và chạy bằng MS Visual StudioSau đó sẽ được như hình

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CUỐI KỲ MÔN PHÂN TÍCH THIẾTKẾ VÀ GIẢI THUẬT

CHỦ ĐỀ THUẬT TOÁN QUY HOẠCH ĐỘNG Giảng viên hướng dẫn: GV Văn Thế Thành

Sinh viên thực hiện: Lê Phan Gia MinhLớp học phần: COMP140101MSSV: 45.01.104.143

Năm 2021 – 2022

1

Trang 3

1 Trình bày thuật toán.

Khởi tạo lấy điểm 1 làm điểm xuất phát

C1: từ điểm 1 ta có đường đi đến điểm 2 và điểm 4 => ở điểm 2 và điểm 4 lần lượt ta có (3,1), (10,1) với 3 và 10 là khoảng cách giữa 2 điểm lần lượt là 2 và 4 so với điểm 1 Và do khoảng cách từ 1 -> 2 ngắn hơn từ 1 -> 4 nên tại đây ta chốt ở điểm 2.

C2: từ điểm 2 có 2 đường đi đến là 3 và 4 và do đã có khoảng cách từ 1 ->2 ở C1 nên ta sẽ cộng dồn vào khoảng cách ở tại điểm 3, 4 lần lượt là (4, 2), (6, 2) Khoảng cách từ 2->3 ngắn hơn nên ta sẽ chốt tại 3 với (4, 2)

C3: tương tự như C1, C2 ta có 4 (11, 4) và kết thúc Yêu cầu tìm đường đi ngắn nhất từ 1->3 nên ta có: =>lấy đường đi 1 -> 2 -> 3

2 Phân tích độ phức tạp.

3

Trang 4

C2=1 public int[,] maTran = new int[100, 100];

public void dijkstra(int dinhDau, int dinhCuoi)

C10= n(n+1)/2 if (maTran[v, k] != 0 && thuocT[k] == true && (length[k] == voCuc || length[k] > length[v] + maTran[v, k]))

Trang 5

Khi ta có 1 đồ thị như hình, ta có quy về 1 ma trận với số đỉnh và giá trị khoảng cách của từng cạnh như ví dụ ở Input và tìm đường đi ngắn nhất giữa các đỉnh bất kì

- Gán vô cực = -1 (vô cực khi không có đường đi giữa 2 điểm) - Khởi tạo mảng 2 chiều cho ma trận [100,100]

- Tạo hàm đọc tạo ma trận [i,j] của đồ thị

public void docMaTran( [,] _maTran, _soDinh)intint

Trang 6

(maTran[v, k] != 0 && thuocT[k] == iftrue && (length[k] == voCuc || length[k] > length[v] + maTran[v, k]))

Trang 7

5 Cài đặt.

Hướng dẫn chạy chương trình:

Sau khi giải nén thầy chọn mục Grap_Theory.sln và chạy bằng MS Visual Studio

Sau đó sẽ được như hình:

7

Trang 8

Sau khi bấm start:

Trang 9

Ngoài ra còn có các tính năng “xóa đỉnh”, “xóa cạnh”, “Set/Đổi trọng số”(thay đổi

“Đỉnh cuối”, “Trọng số” sau đó double click vào “Set/Đổi trọng số” )

(Do đây là phần code em đã làm bên môn lý thuyết đồ thị ở học kỳ trước nên còn một số tính năng em chưa kịp remove em mong thầy thông cảm giúp em ạ) Kết quả các test case:

Test case1:

Test case 2:

9

Trang 10

Test case 3:

Test case 4:

Test case 5:

Trang 11

Test case 6:

Test case 7:

Test case 8:

11

Trang 12

Test case 9:

Test case 10:

Ngày đăng: 14/04/2024, 21:34

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN