Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
147,5 KB
Nội dung
BỘ MÔN DUYỆT ĐỀ CƯƠNG CHI TIẾT BÀI GIẢNG Chủ nhiệm Bộ môn (Dùng cho 60 tiết giảng) Học phần: PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT Ngơ Thành Long Nhóm mơn học: Bộ mơn: Hệ thống thông tin Khoa: Công nghệ thông tin Thông tin nhóm mơn học TT Họ tên giáo viên Đào Thanh Tĩnh Tống Minh Đức Học hàm Thay mặt nhóm mơn học Tống Minh Đức Học vị PGS TS GVC TS Địa điểm làm việc: Các ngày tuần phòng làm việc Khoa S4.1307 Địa liên hệ: Khoa Công nghệ Thông tin, Học viện KTQS Điện thoại: 069.515.329, 069.515.333, 0984-485-888 Email: tmduc08@gmail.com, tinhdt@mta.edu.vn, Bài giảng: Một số vấn đề sở Chương, mục: Tiết thứ: 1-4 Tuần thứ: Mục đích, yêu cầu: Giới thiệu cho sinh viên nắm khái niệm thuật toán, độ phức tạp thuật toán, khái niệm độ tăng hàm - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 1.1 Khái niệm thuật tốn - Định nghĩa - Các tính chất - Ví dụ minh họa 1.2 Biểu diễn thuật tốn - Sơ đồ khối Ký hiệu Ví dụ minh họa - Giả mã Yêu cầu Ví dụ minh họa - Chất lượng biểu diễn 1.3 Tính đắn hiệu thuật toán - Phương pháp kiểm tra, chứng minh tính đắn thuật tốn; - Đánh giá tính hiệu thuật tốn 1.4 Độ tăng hàm - Định nghĩa - Các tính chất - Ví dụ minh họa Bài tập: Tìm phần tử lớn nhất, nhỏ dãy - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán; Tìm hiểu tiêu chí đánh giá Máy Turing − Đọc tài liệu tham khảo: 1, 3, Bài giảng: Một số vấn đề sở (tiếp) Chương, mục: Tiết thứ: 5-8 Tuần thứ: Mục đích, yêu cầu: Giới thiệu cho sinh viên nắm khái niệm độ phức tạp thuật toán, số kỹ thuật lập trình cấu trúc liệu lựa chọn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phòng học - Nội dung chính: 1.5 Khái niệm độ phức tạp Khái niệm Các lớp Thuật toán Euclid Định lý Lamé Lớp P NP 2.1 Kỹ thuật - Ý tưởng - Ví dụ minh họa: tìm xâu dài ký tự liên tiếp khác 2.2 Kỹ thuật tổ chức theo cấu trúc - Ý tưởng - Ví dụ minh họa: tính tích hai số nguyên lớn 2.3 Kỹ thuật đệ quy lặp - Phương pháp kiểm tra, chứng minh tính đắn thuật tốn; - Ví dụ tính ước số chung lớn hai số nguyên dương 2.4 Lựa chọn cấu trúc liệu thích hợp - Ý tưởng Ví dụ xác định tên năm theo lịch âm Ví dụ minh họa Bài tập (1 tiết): Tìm nghiệm phương trình f(x) = Tìm giá trị gần √a, a>0 Thảo luận (1 tiết): − Phân biệt xác input, output tốn mơ tả thuật tốn − Kiểm tra tính đắn thuật tốn − Đánh giá số thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, 4, Bài giảng: Giải thuật xếp Chương, mục: Tiết thứ: 9-12 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm mục đích, ý nghĩa việc xếp Nắm ý tưởng, thuật toán xếp cụ thể, phân tích trường hợp thuật tốn chạy tốt, trường hợp tồi phụ thuộc liệu đầu vào Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật toán - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phòng học - Nội dung chính: 3.1 Bài tốn xếp - Phát biểu toán - Đánh giá tốt 3.2 Sắp xếp chọn, chèn, bọt - Ý tưởng - Thuật tốn - Ví dụ minh họa - Số phép so sánh, số lần đổi chỗ phần tử 3.3 Thuật toán xếp phân đoạn - Ý tưởng - Thuật tốn - Ví dụ minh họa - Số phép so sánh, số lần đổi chỗ phần tử Bài tập (1 tiết): Thực xếp số mảng cho trước Thảo luận (1 tiết): Đánh giá trường hợp xấu nhất, tốt nhất, trung bình; Cách áp dụng giải toán thực tế - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Giải thuật xếp (tiếp) Chương, mục: Tiết thứ: 13-16 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm mục đích, ý nghĩa việc xếp Nắm ý tưởng, thuật toán xếp cụ thể, phân tích trường hợp thuật tốn chạy tốt, trường hợp tồi phụ thuộc liệu đầu vào Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật toán, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 3.4 Thuật tốn xếp hịa nhập - Ý tưởng Thuật tốn - Ví dụ minh họa Đánh giá 3.5 Thuật toán xếp vun đống - Ý tưởng Thuật tốn Ví dụ minh họa Đánh giá Bài tập (1 tiết): Thực xếp số mảng cho trước Thảo luận (1 tiết): Đánh giá trường hợp xấu nhất, tốt nhất, trung bình; Cách áp dụng giải tốn thực tế - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Giải thuật xếp (tiếp) Chương, mục: Tiết thứ: 17-20 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm mục đích, ý nghĩa việc xếp Nắm ý tưởng, thuật tốn xếp cụ thể, phân tích trường hợp thuật toán chạy tốt, trường hợp tồi phụ thuộc liệu đầu vào Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 3.6 Thuật toán xếp theo số - Ý tưởng Thuật tốn - Ví dụ minh họa Đánh giá 3.7 Bài tốn hịa nhập hai file lớn - Ý tưởng Thuật tốn - Ví dụ minh họa Đánh giá Bài tập (1 tiết): Phân tích cài đặt thuật tốn hịa nhập file lớn Thảo luận (1 tiết): Đánh giá trường hợp xấu nhất, tốt nhất, trung bình; Cách áp dụng giải tốn thực tế - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Giải thuật tìm kiếm Chương, mục: Tiết thứ: 21-24 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thuật tốn tìm kiếm Phân tích trường hợp thuật tốn sử dụng phụ thuộc liệu đầu vào Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 4.1 Thuật tốn tìm kiếm - Ý tưởng Thuật tốn - Ví dụ minh họa Đánh giá 4.2 Thuật tốn tìm kiếm nhị phân - Ý tưởng Thuật tốn - Ví dụ minh họa Đánh giá Bài tập (1 tiết): Phân tích cài đặt thuật tốn tìm kiếm, so sánh với tìm kiếm + chi phí xếp Thực hành (1 tiết): - Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Giải thuật tìm kiếm (tiếp) Chương, mục: Tiết thứ: 25-28 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thuật tốn tìm kiếm nâng cao Phân tích trường hợp thuật toán sử dụng phụ thuộc liệu đầu vào Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật toán, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 4.3 Một số tốn tìm kiếm - Tìm kiếm dựa quy hoạch động - Tìm kiếm dựa đệ quy Tìm kiếm dựa phân chia vùng tìm kiếm Bài tập (1 tiết): Phân tích cài đặt thuật tốn tìm kiếm, so sánh với tìm kiếm + chi phí xếp Thực hành (1 tiết): - Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Kỹ thuật chia để trị Chương, mục: Tiết thứ: 29-32 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thuật toán dựa kỹ thuật chia để trị Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật toán, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phòng học - Nội dung chính: 5.1 Ý tưởng lược đồ tổng quát - Ý tưởng - Lược đồ tổng quát - Ví dụ minh họa 5.2 Thiết kế thuật toán xếp - Sắp xếp bọt - Sắp xếp phân đoạn Sắp xếp hòa nhập Bài tập (1 tiết): Cài đặt thuật toán Thảo luận(1 tiết): Đánh giá hiệu quả, thời gian chạy thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Kỹ thuật chia để trị (tiếp) Chương, mục: Tiết thứ: 33-36 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thuật toán dựa kỹ thuật chia để trị Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật toán, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 5.3 Thiết kế thuật tốn tìm kiếm - Tìm kiếm - Tìm kiếm nhị phân - Một số tốn tìm kiếm Bài tập (1 tiết): Cài đặt thuật toán Thực hành (1 tiết): Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 3, Bài giảng: Thao tác với danh sách Chương, mục: Tiết thứ: 37-40 10 Mục đích, yêu cầu: Tuần thứ: Mục đích: Giới thiệu cho sinh viên nắm số thao tác danh sách liên kết sử dụng danh sách liên kết vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật toán, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật tốn so với sử dụng mảng - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 6.1 Một số cấu trúc danh sách tuyến tính - Cấu trúc mảng - Cấu trúc danh sách liên kết 6.2 Thêm, bớt phần tử danh sách đơn Bài tập (1 tiết): Cài đặt thuật toán Thực hành (1 tiết): Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: Bài giảng: Thao tác với danh sách (tiếp) Chương, mục: Tiết thứ: 41-44 11 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thao tác danh sách liên kết sử dụng danh sách liên kết vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật toán so với sử dụng mảng - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phòng học - Nội dung chính: 6.3 Thuật tốn tính giá trị biểu thức - Biểu thức dạng trung tố - Biểu thức dạng hậu tố 6.4 Tính tốn với số lớn - Cộng, trừ hai số lớn - Nhân hai số lớn Bài tập (1 tiết): Cài đặt thuật tốn Thực hành (1 tiết): Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: Bài giảng: Thao tác với cấu trúc Chương, mục: Tiết thứ: 45-48 12 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thao tác cấu trúc sử dụng cấu trúc vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật toán so với sử dụng mảng, so sánh thời gian chạy với cấu trúc khác - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phòng học - Nội dung chính: 7.1 Xây dựng nhị phân tìm kiếm - Thủ tục thêm phần tử - Xây dựng nhị phân tìm kiếm cho dãy khóa 7.2 Duyệt - Duyệt nhị phân - Duyệt tổng quát Bài tập (1 tiết): Cài đặt thuật toán, ghi thứ tự duyệt Thực hành (1 tiết): Thao tác xóa phần tử cây, cân - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật tốn nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 6, Bài giảng: Thao tác với cấu trúc (tiếp) Chương, mục: Tiết thứ: 49-52 13 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thao tác cấu trúc sử dụng cấu trúc vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn, chạy với liệu số lớn, phân tích ảnh hưởng thời gian thuật toán so với sử dụng mảng, so sánh thời gian chạy với cấu trúc khác - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 7.3 Xây dựng nhị phân Huffman - Xây dựng Huffman - Đánh giá hiệu 7.4 Cây cân - Chỉnh nút - Đánh giá hiệu qủa Bài tập (1 tiết): Cài đặt thuật toán Thực hành (1 tiết): - Xây dựng nhị phân tìm kiếm - Xây dựng cậy Huffman - Hiệu chỉnh cân - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 6, Bài giảng: Thao tác đồ thị Chương, mục: Tiết thứ: 53-56 14 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thao tác đồ thị ứng dụng đồ thị vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 8.1 Một số khái niệm - Một số khái niệm đồ thị - Khái niệm khung 8.2 Biểu diễn đồ thị 8.3 Duyệt đồ thị - Duyệt theo chiều rộng - Duyệt theo chiều sâu Bài tập (1 tiết): - Cài đặt thuật toán - Ghi thứ tự duyệt đồ thị - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 6, Bài giảng: Thao tác đồ thị (tiếp) Chương, mục: Tiết thứ: 57-60 15 Tuần thứ: Mục đích, yêu cầu: Mục đích: Giới thiệu cho sinh viên nắm số thao tác đồ thị ứng dụng đồ thị vào giải toán cụ thể Yêu cầu: Sinh viên viết chương trình thử nghiệm cho thuật tốn - Hình thức tổ chức dạy học Giới thiệu lý thuyết - Thời gian: tiết - Địa điểm: Phịng học - Nội dung chính: 8.4 Thuật tốn tìm khung tối thiểu - Thuật tốn Prim - Thuật tốn Krusskal 7.4 Thuật tốn tìm đường ngắn - Thuật tốn tìm đường ngắn Floy - Thuật tốn tìm đường ngắn Dijkstra Bài tập (1 tiết): - Cài đặt thuật toán Thực hành: (1 tiết) Viết chương trình tìm khung tối thiểu, tốn tìm đường ngắn - Yêu cầu SV chuẩn bị: Sinh viên tìm hiểu trước nội dung - Chi chú: − Giáo viên chuẩn bị số minh họa đánh giá thuật toán qua thực nghiệm − SV tự học: Viết chương trình cho thuật toán nêu Kiểm nghiệm hiệu thuật toán − Đọc tài liệu tham khảo: 6,