1. Trang chủ
  2. » Giáo án - Bài giảng

Phan2 giaiquyetbaitoan chuong2 thuattoan

22 5 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

Nội dung

Chương 2: Thuật tốn Ngo Van Linh Bộ mơn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Nội dung chương      2.1 2.2 2.3 2.4 2.5 Định nghĩa thuật toán Biểu diễn thuật toán Một số thuật tốn thơng dụng Thuật tốn đệ quy Thuật giải heuristic 2.1 Định nghĩa thuật toán    Là khái niệm sở toán học tin học Bao gồm dãy hữu hạn lệnh/chỉ thị rõ ràng thi hành để hướng dẫn thực hành động nhằm đạt mục tiêu đề Thuật toán thể phương pháp để giải vấn đề Ví dụ 1: Thuật tốn tìm phần tử lớn dãy hữu hạn số nguyên  Các bước:     Đặt giá trị lớn tạm thời số nguyên So sánh số nguyên dãy với giá trị lớn tạm thời, số nguyên lớn giá trị lớn tạm thời đặt giá trị lớn tạm thời số nguyên Lặp lại bước số nguyên dãy chưa xét Dừng khơng cịn số nguyên dãy chưa xét Giá trị lớn tạm thời lúc giá trị lớn dãy số Ví dụ 2: Thuật tốn giải phương trình bậc hai: ax2 + bx + c = (a0)    Nhập hệ số a, b, c Tính giá trị Δ = b2 - 4*a*c Xét dấu Δ Nếu Δ>0 thực thao tác sau đây:  3.1 Tính nghiệm theo cơng thức:       x1 = (-b-sqrt(Δ))/(2*a) x2 = (-b+sqrt(Δ))/(2*a) 3.2 Xuất kết quả: phương trình có hai nghiệm x1 x2 Nếu Δ xuất kết quả: phương trình có nghiệm kép -b/(2*a) Nếu Δ then x1  (-b-sqrt(Δ))/(2*a) x2  (-b+sqrt(Δ))/(2*a) Xuất: x1 x2, Dừng else if delta = then x12  -b/(2*a), Xuất: nghiệm kép x12 else Xuất: phương trình vơ nghiệm end if 13 2.3 Một số thuật tốn thơng dụng      Thuật tốn Thuật toán nguyên Thuật toán dãy Thuật toán Thuật toán kiểm tra số nguyên tố tìm USCLN, BSCNN số tìm phần tử lớn xếp tìm kiếm 14 Tìm phần tử lớn dãy hữu hạn số    Nhập: dãy số a[1], a[2], a[3],… a[n] Xuất: max giá trị lớn dãy số cho Thuật toán: max  a[1] for i = to n if max < a[i] then max  a[i] end if end for Xuất: max giá trị lớn dãy số 15 2.4 Thuật tốn đệ quy    Có số trường hợp, cách giải vi phạm tính chất thuật tốn lại đơn giản chấp nhận Bài tốn phân tích đưa tới việc giải tốn loại cấp độ thấp Ví dụ:  Định nghĩa giai thừa    0! = n! = n*(n-1)! với n>0 Định nghĩa dãy số Fibonacci: 1, 1, 2, 3, 5, 8, 13,    f1 = 1, f2 = 1, fn = fn-1 + fn-2 16 Thuật toán đệ quy (2)  Thuật toán đệ quy tính giai thừa số tự nhiên:    Input: số tự nhiên n Output: F(n) n! Thuật giải: F  if n>0 then F  F(n-1)*n Output F 17 Thuật tốn đệ quy (3)  Thuật tốn đệ quy tính số hạng thứ n dãy số Fibonacci:    Input: số tự nhiên n Output: F(n) số hạng thứ n dãy Thuật giải: if n=1 or n=2 then F  if n>2 then F  F(n-1)+F(n-2) Output F 18 Thuật toán đệ quy (4)  Đặc điểm thuật toán đệ quy:    Có trường hợp sở/trường hợp dừng Có phần đệ quy bên thuật tốn (nó gọi đến nó) Có biến đổi tiến tới trường hợp sở 19 Bài tập      Viết thuật tốn tìm USCLN hai số tự nhiên Viết thuật tốn tìm BSCNN hai số tự nhiên Viết thuật tốn tìm phần tử lớn dãy số hữu hạn Viết thuật toán xếp Viết thuật tốn tìm kiếm 20 2.5 Thuật giải heuristic    Thường tìm lời giải tốt (những chưa tốt nhất) Dễ dàng nhanh chóng so với giải thuật tối ưu Thể cách hành động tự nhiên, gần gũi với suy nghĩ hành động người 21 Thuật giải heuristic (2)  Các nguyên lý    Ngun lý vét cạn thơng minh: tốn tìm kiếm khơng gian tìm kiếm lớn => giới hạn khơng gian tìm kiếm thực dị tìm đặc biệt dựa vào đặc thù toán để nhanh chóng tìm mục tiêu Ngun lý tham lam: lấy tiêu chuẩn tối ưu toàn cục làm tiêu chuẩn chọn lựa hành động cục bước trình tìm kiếm lời giải Nguyên lý thứ tự: thực hành động theo thứ tự hợp lý không gian khảo sát nhằm nhanh chóng đạt lời giải tốt 22

Ngày đăng: 30/05/2021, 11:20

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

TÀI LIỆU LIÊN QUAN

w