Kỹ thuật tối ưu hóa chương trình

19 1.2K 16
Kỹ thuật tối ưu hóa chương trình

Đ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

Kỹ thuật tối ưu hóa chương trìnhNội dung:1. Các mức thiết kế một chƣơng trình2. Các kỹ thuật tối ƣu hóa chƣơng trình Kỹ thuật tinh chế mã Kỹ thuật tối ƣu hóa rẽ nhánh Kỹ thuật tối ƣu hóa các vòng lặp Tối ƣu hóa chƣơng trình bằng bảng truy cậpTrƣớc khi viết chƣơng trình:+ Không nên mã hóa 1 chƣơng trình ngay khi chỉ mới có ý tƣởng đầu tiên mà phải xem xét tất cả các mức thiết kếcó thể để chọn ra 1 thiết kế làm tăng tốc nhanh nhất với phí tổn ít nhất.

CHƯƠNG 4: MỘT SỐ VẤN ĐỀ MỞ RỘNG KỸ THUẬT TỐI ƯU HÓA CHƯƠNG TRÌNH NỘI DUNG 1. Các mức thiết kế một chƣơng trình 2. Các kỹ thuật tối ƣu hóa chƣơng trìnhKỹ thuật tinh chế mã  Kỹ thuật tối ƣu hóa rẽ nhánh  Kỹ thuật tối ƣu hóa các vòng lặp  Tối ƣu hóa chƣơng trình bằng bảng truy cập 1. CÁC MỨC THIẾT KẾ MỘT CHƢƠNG TRÌNH 1. Đặc tả bài toán 2. Thiết kế cấu trúc hệ thống 3. Cấu trúc dữ liệu và thuật toán 4. Tinh chế mã (tối ƣu hóa chƣơng trình) 5. Tính độ phức tạp của thuật toán LƢU Ý  Trƣớc khi viết chƣơng trình: + Không nên mã hóa 1 chƣơng trình ngay khi chỉ mới có ý tƣởng đầu tiên mà phải xem xét tất cả các mức thiết kế có thể để chọn ra 1 thiết kế làm tăng tốc nhanh nhất với phí tổn ít nhất. + Nên thử nhiều mức thiết kế khác nhau bằng cách giải quyết bài toán trên nhiều mặt từ đó chọn đƣợc 1 thiết kế tối ƣu về không gian và thời gian. 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TINH CHẾ MÃ  Tối ƣu chƣơng trình:  về mặt thời gian hoặc  không gian  rất khó thực hiện đƣợc cả hai, nếu muốn tối ƣu cả hai khía cạnh trên thì ta phải thay đổi thuật toán.  Xét các kỹ thuật tối ƣu chƣơng trình về mặt cấu trúc,  tìm 1 thuật giải có độ phức tạp tốt nhất có thể VÍ DỤ 1: VIẾT CHƢƠNG TRÌNH TÍNH TỔNG S=1+X/1!+X 2 /2!+…+X N /N! s=1; for(i=1;i<=n;i++) { p=1; for(j=1;j<=i;j++) p=p*x/j; s=s+p; } s=1;p=1; for(i=1;i<=n;i++) { p=p*x/i; s=s+p; } 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TINH CHẾ MÃ  Qui tắc 1: Sắp xếp biểu thức điều kiện dạng A 1 and A 2 and …A n theo xác suất sai của các điều kiện A i giảm dần  Qui tắc 2: Sắp xếp biểu thức điều kiện dạng A 1 or A 2 or …A n theo xác suất đúng của các điều kiện A i giảm dần 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TỐI ƢU HÓA RẼ NHÁNH VÍ DỤ: CHO 2 DÃY SỐ NGUYÊN A, B LẦN LƢỢT CÓ SỐ PHẦN TỬ LÀ M VÀ N. A=B? if ((m==n)&& Chua(a,b) && Chua(b,a)) printf(“Hai day bang nhau”); else printf(“Hai day khong bang nhau”); VÍ DỤ: NHẬP SỐ TỰ NHIÊN N, NẾU N LÀ SỐ CÓ 1 TRONG CÁC TÍNH CHẤT (LẺ, NGUYÊN TỐ, CHÍNH PHƢƠNG, HOÀN HẢO) THÌ THỰC HIỆN S1, NGƢỢC LẠI S2. if (le(n)||nguyento(n)||chinhphuong(n)||hoanhao(n)) printf(“Thuc hien S1”); else printf(“Thuc hien S2”);  Qui tắc 1: Giảm số vòng lặp bằng cách thực hiện nhiều hơn cho mỗi vòng lặp và chú ý vòng lặp ít hơn thì đặt ở ngoài. 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TỐI ƢU HÓA CÁC VÒNG LẶP [...]... printf(“%d%d”,x,y); } 2 CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TỐI ƢU HÓA CÁC VÒNG LẶP  Qui tắc 2: Tách các lệnh không phụ thuộc vào chỉ số lặp ra khỏi vòng lặp VÍ DỤ: VIẾT CT TÍNH TỔNG S=1/1!+3/2!+…+(2N-1)/N! s=0; for(i=1;i . CHƯƠNG 4: MỘT SỐ VẤN ĐỀ MỞ RỘNG KỸ THUẬT TỐI ƯU HÓA CHƯƠNG TRÌNH NỘI DUNG 1. Các mức thiết kế một chƣơng trình 2. Các kỹ thuật tối ƣu hóa chƣơng trình  Kỹ thuật tinh chế mã  Kỹ thuật tối. đoạn chƣơng trình sau: Int ckn(int k,int n) { if((k==0)||(k==n)) return 1; else return ckn(k,n-1)+ckn(k-1,n-1); } 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH BẰNG. trên nhiều mặt từ đó chọn đƣợc 1 thiết kế tối ƣu về không gian và thời gian. 2. CÁC KỸ THUẬT TỐI ƢU HÓA CHƢƠNG TRÌNH KỸ THUẬT TINH CHẾ MÃ  Tối ƣu chƣơng trình:  về mặt thời gian hoặc  không

Ngày đăng: 19/06/2014, 10:54

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan