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

CƠ SỞ LÝ THUYẾT THUẬT TOÁN QUAY LUI, TRÌNH BÀY THUẬT TOÁN VÀ CÀI ĐẶT TRÊN C CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TOÁN QUAY LUI ĐỂ TÌM ĐƯỜNG ĐI TRONG MÊ CUNG

13 4,6K 236
Tài liệu đã được kiểm tra trùng lặp

Đ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 13
Dung lượng 188 KB

Nội dung

CƠ SỞ LÝ THUYẾT THUẬT TOÁN QUAY LUI, TRÌNH BÀY THUẬT TOÁN VÀ CÀI ĐẶT TRÊN C CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TOÁN QUAY LUI ĐỂ TÌM ĐƯỜNG ĐI TRONG MÊ CUNG

ĐẠI HỌC KINH TẾ ĐÀ NẴNG KHOA THỐNG - KÊ TIN HỌC −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− −− Môn học: CẤU TRÚC DỮ LIỆU GIẢI THUẬT Tên Đề Tài: CƠ SỞ THUYẾT THUẬT TOÁN QUAY LUI, TRÌNH BÀY THUẬT TOÁN CÀI ĐẶT TRÊN C CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TOÁN QUAY LUI ĐỂ TÌM ĐƯỜNG ĐI TRONG CUNG Nhóm 7: Nguyễn Thị Ngọc Sương – 37H11K14.1 Hồ Văn Trọng – 37H11K14.1 Phùng Quý Châu – 37H11K14.1 Phùng Thị Tuyết – 37H11K14.1 Đỗ Thị Hiền – 37H11K14.1 Lê Thị Ánh Tuyết – 37H11K14.1 Nguyễn Thị Thảo – 36H11K14.1 Trần Thị Ngân – 37H11K14.1 GVHD: Th.s Nguyễn Thành Thuỷ Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy Đà Nẵng , 03/2012 Nhóm 7 Trang 2 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy MỤC LỤC Table of Contents MỤC LỤC 3 Table of Contents .3 LỜI CẢM ƠN 3 I. GIỚI THIỆU .4 1. Lời mở đầu .4 3. Tìm hiểu về cung 5 4. Tìm hiểu về thuật toán quay lùi (Đệ quy) .6 4.1 Định nghĩa : 6 4.2 Các bước bản để giải quyết bài toán đệ quy 6 II. GIẢI QUYẾT VẤN ĐỀ 7 1. Cách tìm đường đi trong thuật toán cung: .7 Yêu Cầu như sau: .7 2. Mô phỏng cách tìm 8 Bảng mô phỏng dữ liệu nguồn .8 Đồ thị mô phỏng 9 3. Thuật toán đệ quy cung: .9 4. Giải thích bộ các lệnh trong thuật toán .11 III. KẾT LUẬN - ĐÁNH GIÁ .11 1. Đánh giá về đề tài 11 2. Kết luận 12 IV. PHỤ LỤC .12 1. Hướng dẫn chạy demo thuật toán 12 2. Tài liệu tham khảo 13 LỜI CẢM ƠN Trong thời gian làm báo cáo nhóm chúng em gặp không ít khó khăn khi chưa biết hướng giải quyết bài toán trong thời gian xây dựng giải thuật hay khi viết chương trình . Nhưng được sự hướng dẫn tận tình của thầy Nguyễn Thành Thủy nên nhóm đã giải quyết được các vấn đề từ nhỏ đến lớn đến khi hoàn thành được yêu cầu Nhóm 7 Trang 3 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy của đề tài. Bên cạnh đó cùng với sự giúp đỡ của bạn bè nên nhóm cũng đã học hỏi được nhiều kinh nghiệm để hoàn thành hơn nữa đề tài. Cuối lời nhóm chúng em xin chân thành gửi lời cảm ơn đến thầy Nguyễn Thành Thủy đã giúp đỡ chúng em hoàn thành tốt đề tài này! Xin chân thành cảm ơn! I. GIỚI THIỆU 1. Lời mở đầu Trong cuộc sống nhiều vấn đề buộc ta phải lựa chọn hoặc tìm ra những phương án để giải quyết được vấn đề. Trong toán học cũng thế, để giải một bài toán đòi hỏi ta phải chọn được phương án giải quyết bài toán một cách tối ưu để thu được kết quả mong muốn. Trong lập trình cũng thế ta phải tìm ra được giải thuật đúng để làm nền tảng xây dựng chương trình Nhóm 7 Trang 4 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy chạy đúng kết quả bài toán hay đề tài của người yêu cầu đặt ra. Chẳng hạn như bài toán cung, đòi hỏi ta phải xây dựng thuật toán tìm được lối đi từ cửa vào để đến được lối ra. Trong khi đó, thể đứng trước nhiều ngã rẽ phải tìm được lối đi cho đến khi thoát khỏi cung. 2. Đặc tả đề tài • Yêu cầu o Chương trình đọc cung từ tập tin văn bản(INPUT.TXT) • Mục tiêu đạt được o Tìm đường đi đến cửa ra. (OUTPUT.TXT) • Môi trường làm việc. o Ngôn ngữ lập trình C. 3. Tìm hiểu về cung. a) Định nghĩa: cung là một hệ thống gồm nhiều hành lang nối với nhau. Bài toán tìm đường đi trong cungđứng từ vị trí s ( bên trong cung hoặc cửa vào ) tìm đường đi đến vị trí e ( cửa ra hoặc bên trong cung). Nhóm 7 Trang 5 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy Nếu biểu diễn cung bằng đồ thị, trong đó các hành lang là các cạnh, còn các giao điểm của chúng là các đỉnh thì ta bài toán tìm đường đi trong đồ thị. Lưu ý rằng ta không biết trước đồ của cung. b) Ví dụ: Bài toán đặt ra là: Hãy vào bằng cửa A tìm đường ra ở cửa B? 4. Tìm hiểu về thuật toán quay lùi (Đệ quy) 4.1 Định nghĩa : - Thuật toán quay lùi là quá trình xử bằng cách gọi lại chính bản thân nó để giải quyết chương trình con 4.2 Các bước bản để giải quyết bài toán đệ quy Nhóm 7 Trang 6 B A A Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy - Tìm điều kiện dừng của bài toán - Tìm dạng tổng quát của bài toán II. GIẢI QUYẾT VẤN ĐỀ 1. Cách tìm đường đi trong thuật toán cung: Khởi tạo lối đi đầu tiên tại cửa vào, sau đó dùng thuật toán (thuật toán quay lùi ) để tìm lối đi. Trong khi tìm lối đi, lối đi thể đi được nếu không phải là tường ( giá trị 0 trong ma trận ). Ngược lại là tường buộc phải quay lui. Trong lúc đi, tại những điểm liên thông đều được đánh dấu. Khi không thể đi được thì phải quay lui tại điểm vừa đi qua cứ như thế cho đến khi đi đến cửa ra. Yêu Cầu như sau: Dữ liệu nguồn file INPUT.TXT In ra file OUTPUT.TXT • Quy tắc dữ liệu nguồn: - Dòng đầu tiên là số đỉnh - Dòng thứ hai là đỉnh bắt đầu đỉnh kết thúc - Các dòng tiếp theo là cung(đường đi) • Quy tắc trong cung trên Nhóm 7 Trang 7 5 1 5 0 2 5 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 3 0 0 0 0 0 1  2  4  3  5 1  2  4  5 1  3  5 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy - 0 là đường thể đi được - 1 là đường không thể đi được 2. Mô phỏng cách tìm Theo đề ta 5 đỉnh, các đỉnh như sau: Bảng mô phỏng dữ liệu nguồn Đỉnh 1 2 3 4 5 1 0 2 5 0 0 2 0 0 0 1 0 3 0 0 0 0 1 4 0 0 1 0 3 5 0 0 0 0 0 • Đỉnh 1 liên thông với đỉnh 2 giá trị là 2 • Đỉnh 1 liên thông với đỉnh 3 giá trị là 5 • Đỉnh 2 liên thông với đỉnh 4 giá trị là 1 • Đỉnh 3 liên thông với đỉnh 5 giá trị là 1 • Đỉnh 4 liên thông với đỉnh 3 giá trị là 1 Nhóm 7 Trang 8 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy • Đỉnh 4 liên thông với đỉnh 5 giá trị là 3 Đồ thị mô phỏng Như vậy kết quả đường đi từ đỉnh 1 đến đỉnh 5 sẽ là: - 1 => 2 => 4 => 3 => 5 - 1 => 2 =>4 => 5 - 1 => 3 => 5 3. Thuật toán đệ quy cung: #include<stdio.h> #include<conio.h> int a[100][100],x[100],n,xp,kt,i=0,j=0; void xuly( int k, int dem ) { Nhóm 7 Trang 9 1 5 4 3 2 2 5 1 1 1 3 Cấu trúc dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy int v; FILE *f; f=fopen("c://file//OUTPUT.TXT","a"); for(v=1;v<=n;v++) { if( a[x[k-1]][v]!=0 ) { dem = dem +1; x[k] = v; if(x[k] == kt) { for( i=1; i<=dem; i++ ) { fprintf(f,"%d ",x[i]); } fprintf(f,"\n"); dem = dem - 1; } xuly(k+1,dem); dem = dem - 1; } } } main() { FILE *f; if( (f=fopen("c://file//INPUT.TXT","r"))==NULL ) printf("khong tim thay file o vi tri c://file/INPUT.TXT "); else { fscanf(f,"%d%d%d",&n,&xp,&kt); for(i=1;i<=n;i++) Nhóm 7 Trang 10 [...]... th c III KẾT LUẬN - ĐÁNH GIÁ 1 Đánh giá về đề tài • Ưu đi m - Thuật toán ngắn gọn - Liệt kê đư c tất c c c đường đi ra cung Nhóm 7 Trang 11 C u tr c dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy • Như c đi m - Không tối ưu về đường đi ra cung • Hướng phát triển Tương lai sẽ hướng đến những trò chơi game đồ hoạ trí tuệ - giải trí 2 Kết luận Bài toán tìm đường đi trong cung là bài toán. .. năng toán h c cho người h c, đồng thời nó c ng kích thích đư c c sáng tạo tư duy định hướng cho người h c Bài toán này đã cuốn hút đư c sự quan tâm c a nhiều người bởi tính đa dạng sự ứng dụng c a nó Do vậy, vi c h c tập, nghiên c u chủ đề này là rất bổ ích vì nó c thể giải quyết đư c nhiều vấn đề nảy sinh từ th c tế cu c sống Trong đề tài này, mặt dù nhóm em đã dành nhiều thời gian nghiên c u,... thời gian nghiên c u, thảo luận, đư c sự hướng dẫn chu đáo c a Thầy Nguyễn Thành Thuỷ nhưng do khả năng c hạn nên ch c chắn đề tài không tránh khỏi thiếu sót Kính mong Thầy c lời góp ý, bổ sung, chỉnh sửa để đề tài đư c hoàn thiện hơn IV PHỤ L C 1 Hướng dẫn chạy demo thuật toán • Copy file INPUT.TXT vào ổ đĩa C/ file • Chạy demo Nhóm 7 Trang 12 C u tr c dữ liệu giải thuật GVHD: Th.s Nguyễn Thành.. .C u tr c dữ liệu giải thuật GVHD: Th.s Nguyễn Thành Thủy for(j=1;j

Ngày đăng: 13/04/2013, 10:08

HÌNH ẢNH LIÊN QUAN

Bảng mô phỏng dữ liệu nguồn - CƠ SỞ LÝ THUYẾT THUẬT TOÁN QUAY LUI, TRÌNH BÀY THUẬT TOÁN VÀ CÀI ĐẶT TRÊN C CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TOÁN QUAY LUI ĐỂ TÌM ĐƯỜNG ĐI TRONG MÊ CUNG
Bảng m ô phỏng dữ liệu nguồn (Trang 8)

TỪ KHÓA LIÊN QUAN

w