Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
122
Dung lượng
12,55 MB
Nội dung
CHƯƠNG MỘT SỐ MƠ HÌNH LẬP TRÌNH QUAN TRỌNG NỘI DUNG: 3.1 Mơ hình duyệt tồn 3.2 Mơ hình sinh 3.3 Mơ hình đệ đệ qui 3.4 Mơ hình quay lui 3.5 Mơ hình tham lam 3.6 Mơ hình chia trị 3.7 Mơ hình nhánh cận 3.8 Mơ hình qui hoạch động 3.9 Các mơ hình đối sánh mẫu 3.10 CASE STUDY: 3.1 Mơ hình duyệt tồn Phương pháp giải tốn (Problem): Sử dụng cơng cụ tốn học: • Sử dụng định lý, mệnh đề, lập luận suy logic tốn học để tìm nghiệm tốn • Ưu điểm:dễ dàng máy tính hóa tốn có thuật giải (MathLab) • Nhược điểm: thực lớp tốn có thuật giải Lớp toán nhỏ so với lớp tốn thực tế Sử dụng máy tính cơng cụ tính tốn: • Giải tốn có thuật giải máy tính • Đối với số tốn chưa có thuật giải, ta sử dụng máy tính để xem xét tất khả để từ đưa nghiệm tốn Một mơ hình duyệt tồn cần thỏa mãn hai điều kiện: • Khơng lặp lại khả • Khơng bỏ sót cấu hình Ví dụ Cho hình vng gồm 25 hình vng đơn vị Hãy điền số từ đến vào hình vng đơn vị cho điều kiện sau thỏa mãn • Đọc từ trái sang phải theo hàng ta nhận số nguyên tố có chữ số; • Đọc từ xuống theo cột ta nhận số nguyên tố có chữ số; • Đọc theo hai đường chéo ta nhận số nguyên tố có chữ số; • Tổng chữ số số nguyên tố S cho trước Ví dụ hình vng với S = 11 1 0 33 1 3 Thuật giải duyệt Chia toán thành hai toán sau: •Tìm X ={ x[10001, ,99999] | x nguyên tố tổng chữ số S •Chiến lược vét cạn thực sau: • Lấy xX đặt vào hàng 1(H1): ta điền ô vng 1, 2, 3, 4, •Lấy xX có số trùng với ô số đặt vào cột (C1): ta điền ô vuông 6, 7, 8, •Lấy xX có số trùng với số 9, số cuối trùng với ô số đặt vào đường chéo (D2): ta điền vng 10, 11, 12 •Lấy xX có số thứ số thứ trùng với ô số 12 đặt vào hàng (H2): ta điền vng 13, 14, 15 •Lấy xX có số thứ nhất, thứ hai, thứ trùng với ô số 2, 13, 10 đặt vào cột (C2): ta điền ô vuông 16, 17 •Làm tương tự ta điền vào hàng số 25 •Cuối ta cần kiểm tra D1X C5 X? 1 0 33 1 33 13 14 12 15 16 11 18 19 10 20 22 23 17 21 24 25 3.2 Mô hình sinh (Next Generation) Mơ hình thuật tốn sinh dùng để giải lớp toán thỏa mãn hai điều kiện: •Xác định thứ tự tập cấu hình cần liệt kê tốn Biết cấu hình đầu tiên, biết cấu hình cuối •Từ cấu hình cuối cùng, ta xây dựng thuật tốn sinh cấu hình đứng sau theo thứ tự Thuật tốn: Thuật tốn Generation: Bước1 (Khởi tạo): ; Bước (Bước lặp): while () ; ; endwhile; End Ví dụ Duyệt xâu nhị phân có độ dài n Lời giải Xâu X = (x1, x2, , xn) : xi =0, 1; i=1, 2, , n gọi xâu nhị phân có độ dài n Ví dụ với n=4, ta có 16 xâu nhị phân đây: STT X =(x1, , xn) F(X) ST T X =(x1, , xn) F(X) 0000 1000 0001 10 1001 0010 11 1010 10 0011 12 1011 11 0100 13 1100 12 0101 14 1101 13 0110 15 1110 14 0111 16 1111 15 Thuật toán sinh xâu nhị phân kế tiếp; Input: + X =(x1,x2, ,xn) biến toàn cục + OK = biến toàn cục Output: 2n xâu nhị phân có độ dài n Void Next_Bit_String(void) { int i=n; while (i>0 && X[i]!=0) { X[i] = 0; i ; } if (i >0) X[i]=1; else OK = 0; } Acttions: X =(0,0, ,0);// Xâu nhị phân ban đầu while (OK) { //Lặp xâu chưa phải cuối Result(); //Đưa xâu tại>; Next_Bit_String();//Sinh xâu } Endactions Bài tập Hãy cho biết kết thực chương trình đây? #include #include #define MAX 100 #define TRUE #define FALSE int n, X[MAX], OK=TRUE, dem=0; void Init (void ){ coutn; for (int i=1; i