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

ỨNG DỤNG MAPLE GIẢI BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT

11 567 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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 548,79 KB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHIỆ THÔNG TIN CHUYÊN ĐỀ LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO BÀI THU HOẠCH ỨNG DỤNG MAPLE GIẢI BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN N

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆ THÔNG TIN

CHUYÊN ĐỀ

LẬP TRÌNH SYMBOLIC CHO TRÍ TUỆ NHÂN TẠO

BÀI THU HOẠCH

ỨNG DỤNG MAPLE GIẢI BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT

HƯỚNG DẪN

PGS TS ĐỖ VĂN NHƠN

HỌC VIÊN THỰC HIỆN

LÊ CUNG TƯỞNG (CH1101152)

Tp Hồ Chí Minh, 2013

Trang 2

LỜI MỞ ĐẦU

Ngày nay, Công nghệ thông tin(CNTT) đã thật sự đi vào trong cuộc sống Tất

cả lĩnh vực đều cần phải áp dụng CNTT để có thể đạt được hiệu quả cao trong công việc Toán học cũng không ngoại lệ

Ngày nay, các công cụ dành riêng cho toán học rất phổ biến như Mathematica, Matlab, Maple, và nhiều chương trình chuyên dụng cho từng bộ môn của toán học khác Những phần mềm trên giúp ích rất nhiều cho việc giảng dạy toán, học toán cũng như việc ứng dụng toán trong các ngành kỹ thuật, kinh tế, và vì thế tại các nước phát triển chúng trở thành cẩm nang của nhiều sinh viên, kỹ sư và các ngành nghiên cứu khoa học

Trong bài thu hoạch, tôi tìm hiểu về ứng dụng của Maple trong tìm đường đi ngắn nhất với thuật toán Dijkstra

Trang 3

Mục lục

LỜI MỞ ĐẦU i

Mục lục ii

1.1 Giới thiệu bài toán 1

1.2 Thuật toán Dijkstra 1

1.2.1 Cấu trúc dữ liệu 1

1.2.2 Giải thuật 2

1.2.3 Thủ tục 3

1.2.4 Dữ liệu thử nghiệm 4

TÀI LIỆU THAM KHẢO 8

Trang 4

1.1 Giới thiệu bài toán

Trong lý thuyết đồ thị, bài toán đường đi ngắn nhất là bài toán tìm một đường đi giữa hai đỉnh trong một đồ thị sao cho tổng các trọng số của các cạnh tạo nên đường đi

đó là nhỏ nhất Định nghĩa một cách hình thức, cho trước một đồ thị G = (V, E) có trọng số (nghĩa là một tập đỉnh V, một tập cạnh E, và một hàm trong số có giá trị thực f: E → R), cho trước một đỉnh v thuộc V, tìm một đường đi P từ v tới mỗi đỉnh v' thuộc

V sao cho

p ∈P

f ( p) là nhỏ nhất trong tất cả các đường nối từ v tới v' Bài toán đường đi

ngắn nhất giữa mọi cặp đỉnh là một bài toán tương tự, trong đó ta phải tìm các đường

đi ngắn nhất cho mọi cặp đỉnh v và v'.

Ví dụ: chúng ta dùng các đỉnh của đồ thị để mô hình các thành phố và các cạnh để

mô hình các đường nối giữa chúng Khi đó trọng số các cạnh có thể xem như độ dài

của các con đường (và do đó là không âm) Chúng ta cần di chuyển từ thành phố s đến thành phố t Bài toán tìm đường đi ngắn nhất sẽ giúp chỉ ra đường đi ngắn nhất chúng

ta có thể đi

Ngoài ra, trọng số của các cạnh của đồ thị còn mang tính chất tổng quát hơn khoảng

cách hình học giữa hai đỉnh đầu mút của chúng Ví dụ, với 3 đỉnh A, B, C đường đi A-B-C có thể tốn ít thời gian hoặc độ phức tạp hơn so với đường đi trực tiếp A-C.

1.2 Thuật toán Dijkstra

1.2.1 Cấu trúc dữ liệu

Cấu trúc dữ liệu của thuật toán bao gồm:

- Graph G: bao gồm tập đỉnh (V), cạnh (E) và trọng số tương ứng của mỗi

cạnh

- Đỉnh s là đỉnh xuất phát

- T là tập đỉnh

1

Trang 5

- L là tập chứa trọng số nhỏ nhất đi từ đỉnh xuất phát tới các đỉnh khác.

- W là tập lưu vết các đỉnh

1.2.2 Giải thuật

Input: Đồ thị có hướng và có trọng số G và đỉnh bắt đầu s

Bước 1: kiểm tra

- Kiểm tra tính liên thông của đồ thị

- Kiểm tra tính có trọng số của đồ thị

- Kiểm tra tính có hướng của đồ thị

- Kiểm tra đỉnh s có thuộc đồ thị hay không

Bước 2: Khởi tạo

m = s // đỉnh xuất phát

T = G.V \ {s} // tập đỉnh trừ đi đỉnh xuất phát

L[m] = ∞ với 0 < m <= V.size // trọng số

W[m] = “undefined” với 0 < m <= V.size // cạnh

L[s] = 0 // gán trọng số của đỉnh thứ s bằng 0

Bước 3: trong khi T ≠  thì

S = {những điểm có thể đi đến từ m}  T

if S ≠  then

foreach i thuộc S

Nếu L[i] > L[i] , L[m] + Weight[m,i] thì

L[i] := min ( L[i] , L[m] + Weight[m,i] )

2

Trang 6

W[i] = m

Kết thúc if Kết thúc foreach

Tìm m tronng T sao cho L[m] là nhỏ nhất

T = T \ m

Kết thúc else

1.2.3 Thủ tục

3

Trang 7

Hình 1 Thủ tục thuật toán Dijkstra

1.2.4 Dữ liệu thử nghiệm

Thử nghiệm 1:

Cho đồ thị gồm 7 đỉnh và ma trận trọng số ở hình 2 Kết quả của thuật toán thu được ở Hình 3

4

Trang 8

Hình 2 Ma trận trọng số của thử nghiệm 1

Hình 3 Đồ thị thử nghiệm 1 và đồ thị kết quả của thuật toán Dijkstra

Thử nghiệm 2:

Cho đồ thị gồm 7 đỉnh và ma trận ở hình 4 Kết quả của thuật toán thu được ở hình 5

Hình 4 Ma trận trọng số của thử nghiệm 2

5

Trang 9

Hình 5 Đồ thị thử nghiệm 2 và đồ thị kết quả

Thử nghiệm 3:

Cho đồ thị gồm 10 đỉnh và ma trận ở hình 6 Kết quả của thuật toán thu được ở hình 7

Hình 6 Ma trận trọng số của thử nghiệm 3

6

Trang 10

Hình 7 Đồ thị thử nghiệm 3 và đồ thị kết quả

7

Trang 11

TÀI LIỆU THAM KHẢO

[1] PGS.TS Đỗ Văn Nhơn, Bài giảng Lập Trình Symbolic cho Trí Tuệ Nhân Tạo [2] Peter Adam-Ken Smith-Rudolf Vyborny, Introduction to Mathematics with

Maple, 2005

[3] Nguyễn Hữu Điển, giáo trình Maple

8

Ngày đăng: 10/04/2015, 01:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w