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

Slide tiểu luận môn toán ứng dụng

24 1,1K 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

Tiêu đề Bài toán cây Steiner
Tác giả Nguyễn Thanh Trung, Trương Thị Minh Hậu, Lê Quang Vũ, Nguyễn Thị Quỳnh Trang
Người hướng dẫn PGS. TS. Trần Quốc Chiến
Trường học Trường Đại học Bách Khoa, Đại học Đà Nẵng
Chuyên ngành Toán ứng dụng
Thể loại Báo cáo tiểu luận
Năm xuất bản 2011
Thành phố Đà Nẵng
Định dạng
Số trang 24
Dung lượng 832,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phát biểu bài toán cây Steiner trên đồ thị I.2.. Các thuật toán tìm cây Steiner... Các thuật toán tìm cây Steiner• Thuật toán Floy-Warshall • Thuật toán Prim • Thuật toán Steiner... Xây

Trang 1

ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO TIỂU LUẬN

TOÁN ỨNG DỤNG

GVHD: PGS TS Trần Quốc Chiến

HVTH: Nguyễn Thanh Trung

Trương Thị Minh Hậu

Lê Quang Vũ Nguyễn Thị Quỳnh Trang LỚP : Khoa học máy tính-K24 (T9/2011

Trang 2

NỘI DUNG BÁO CÁO

BÀI TOÁN CÂY STEINER

Trang 3

BÀI TOÁN CÂY STEINERI.1 Phát biểu bài toán cây Steiner trên đồ thị I.2 Các thuật toán tìm cây Steiner

Trang 4

I.1 Phát biểu bài toán cây Steiner trên

đồ thị

• Cho đồ thị G=(V,E) có trọng số (V : tập

các đỉnh; E tập các cạnh của đồ thị) và tập

W  V Tìm cây T =(W’, F) trong G nhỏ

nhất bao trùm tất cả các đỉnh của W Cây

Trang 5

I.2 Các thuật toán tìm cây Steiner

• Thuật toán Floy-Warshall

• Thuật toán Prim

• Thuật toán Steiner.

Trang 6

THUẬT TOÁN FLOY-WARSHALL

mọi cặp đỉnh trong đồ thị có hướng liên

Trang 7

◦ Bước 1:

 Ký hiệu D0 là ma trận xuất phát D0 =

[d0(i,j)] trong đó d0(i,j) = w(i,j) nếu tồn tại cung (i,j) và d0(i,j) = + nếu không tồn tại cung (i,j) (đặc biệt nếu không có khuyên tại i thì d0(i,i) = +).

 P0 = [p0(i,j)] trong đó p0(i,j) = j nếu có cung

từ i đến j và p0(i,j) không xác định nếu không

có cung từ i đến j.

 Gán k:=0.

THUẬT TOÁN FLOY-WARSHALL

Trang 8

Với mọi cặp (i,j), i=1 n, j=1 n thực hiện:

Nếu dk-1(i,j) > dk-1(i,k) + dk-1(k,j) thì đặt

Quay lại bước (2).

THUẬT TOÁN FLOY-WARSHALL

Trang 9

 Phương pháp xác định đường đi ngắn

Trang 10

THUẬT TOÁN PRIM

Trang 11

Các bước:

Khởi tạo:

T là đồ thị gồm một đỉnh 1 và không có cạnh

Kiểm tra điều kiện kết thúc:

Nếu T có n-1 cạnh, Kết thúc Kết luận: T là cây phủ nhỏ nhất Ngược lại sang bước (3)

Ngược lại, kết thúc Kết luận đồ thị G không liên thông

THUẬT TOÁN PRIM

Trang 12

• Đầu vào :

Trọng đồ liên thông G=(V,E,w) n đỉnh, và tập W 

V m đỉnh, m < n

• Đầu ra :

Cây Steiner của W trong G

THUẬT TOÁN STEINER.

Trang 13

• Các bước triển khai:

- Bước 1 Xây dựng trọng đồ đơn đủ G’=(V,F,w’) (bằng

thuật toán Floyd-Warshall), trong đó w’(u,v) là khoảng cách ngắn nhất từ u đến v với mọi cặp (u,v)

- Bước 2.Với mỗi S  V-W , card(S)  m-2, tìm cây phủ

nhỏ nhất của đồ thị <WS> sinh bởi WS trong G’

Trong các cây phủ đó tìm cây T’ có trọng số nhỏ nhất

(dùng thuật toán Prim)

- Bước 3 Xây dựng cây Steiner T từ T’ bằng cách thay mỗi

cạnh nối hai đỉnh trong G’ bằng đường đi nối chúng với nhau trong G Các đỉnh thuộc T mà không thuộc W là

những đỉnh Steiner

THUẬT TOÁN STEINER.

Trang 14

THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH

• Thiết kế cấu trúc dữ liệu và thuật toán

• Cài đặt chương trình

Trang 15

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

Các khai báo cấu trúc dữ liệu cho bài toán.

Đồ thị G=(V, E,w) được lưu trữ bởi ma trận kề

G[Max][Max], với Max=100;

Trang 16

CÁC THUẬT TOÁN

• Thuật toán

chương trình

chính

Trang 17

• Hàm DocFile()

CÁC THUẬT TOÁN

Trang 18

• Hàm Prim()

CÁC THUẬT TOÁN

Trang 19

• Hàm Try(int i)

CÁC THUẬT TOÁN

Trang 20

• Hàm CayPhu()

CÁC THUẬT TOÁN

Trang 21

• Hàm Steiner()

CÁC THUẬT TOÁN

Trang 22

CÀI ĐẶT CHƯƠNG TRÌNH

• Demo

Trang 23

KẾT LUẬN

Với yêu cầu tìm hiểu và xây dựng giải thuật cho bài toán tìm cây Steiner trên đồ thị, nhóm đã tiến hành nghiên cứu cơ sở lý thuyết, các giải thuật và xây dựng chương trình để giải quyết bài toán.

 Nắm các khái niệm cơ bản về đồ thị.

 Phát biểu được bài toán Steiner trên đồ thị.

 Thiết kế cấu trúc dữ liệu và giải thuật để tìm các điểm steiner và xây dựng cây Steiner trên đồ thị.

 Cài đặt được chương trình trên ngôn ngữ C và thử nghiệm với

nhiều bộ dữ liệu khác nhau và cho kết quả đúng.

 Chưa kiểm tra và bắt tất cả các lỗi nhập sai dữ liệu đầu vào.

 Giao diện của chương trình text khá đơn

 Kiểm tra và xử lý lỗi từ file dữ liệu vào.

 Phát triển chương trình với giao diện đồ họa.

Ngày đăng: 29/12/2013, 14:29

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w