1. Trang chủ
  2. » Giáo Dục - Đào Tạo

bài giảng nguyên lý và phương pháp ngôn ngữ lập trình

55 8 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

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH NGUYÊN LÝ & PHƯƠNG PHÁP NGÔN NGỮ LẬP TRÌNH Tởng quan  Mục đích của tối ưu hóa chương trình là nhằm giảm thiểu :  Thời gian  Thời gian chạy chương trình  Thời gian trả lời  Không gian  Không gian lưu trữ thứ cấp  Bộ nhớ chính  Các chiến lược tối ưu hóa  Tối ưu theo mục tiêu được ưu tiên  Cân đối các mục tiêu:   Không gian và thời gian Độ phức tạp Tổng quan (tt)  Khó khăn của vấn đề tối ưu hóa chương trình :  Có  nhiều chiến lược khác Phải quyết định :  Tối ưu hóa cái gì – không gian hay thời gian?  Tối ưu hóa ở đâu chương trình? Khi nào cần tối ưu hóa?   Khi chương trình không đạt được hiệu quả hợp lý về không gian và thời gian Khi có khả giảm thiểu độ phức tạp của chương trình Một số kỹ thuật tối ưu hóa chương trình Ví dụ minh họa  Bài toán: hành trình của người bán hàng  Input:  n điểm bản đồ  Output : một đường ngắn nhất, chỉ qua mỗi điểm một lần Vài giải pháp đơn giản:  Phát sinh tất cả đường có thể, sau đó xác định đường ngắn nhất sớ đó  Áp dụng phương pháp tìm kiếm “tham lam” … MỘT SỐ KỸ THUẬT TỐI ƯU HOÁ CHƯƠNG TRÌNH TỐI ƯU HÓA CHƯƠNG TRÌNH TỐI ƯU THỜI GIAN TỐI ƯU KHÔNG GIAN Tăng không gian Tăng thời gian Thuật toán không đổi Thay đổi cấu trúc liệu cấu trúc chương trình TỐI ƯU THỜI GIAN VÀ KHÔNG GIAN Thuật toán thay đổi Lặp, rẽ nhánh, Cấu trúc điều khiển … TỐI ƯU HOÁ CHƯƠNG TRÌNH  Thuật toán thay đổi A1 P … Ai Pi1 … Pi2 Pim An CÁC KỸ THUẬT TỐI ƯU THỜI GIAN THỰC HIỆN CHƯƠNG TRÌNH TỐI ƯU HOÁ THỜI GIAN Kỹ thuật tối ưu việc rẽ nhánh Kỹ thuật tối ưu vòng lặp Tránh gọi lặp thủ tục Thay đổi, bố trí cấu trúc liệu Một số nguyên lý tối ưu hoá chng trình 10 GIẢM KHOẢNG TRỐNG Ma trận M x N 0 1 1 Bieåu diễn không giá trị Cách 1: biểu diễn danh sách toạ độ giá trị ((i1, j1), (i1, j1),…, (i1, j1)) Caùch 2: (i1, jik,…)(…) (i1, j1) Tính Kiểm tra có danh sách Test (i, j)  List (data) ?   Trước tính cần kiểm tra có liệu nén hay không?  cần khoảng thời gian chấp nhận nh toán đặc biệt 41 GIẢM KHOẢNG TRỐNG Ví dụ: toán số ngắn 52 41 52 49 123 123 42 MÃ LẶP   Có liệu thường xuyên lặp lại  dùng phép mã lặp Runlength-Coding để nén Ví dụ: 5, 5, 5, 6, 7, 7, AAABBCCCD   7, ……  3( ),  A(3), 6, 4( ) …… B(2), C(3), D(1) Cơ sở liệu very large Mã hóa khối liệu: toàn khối liệu mã hóa lại theo số lần xuất từ văn Nếu từ xuất nhiều cho giá trị bé  nén lại liệu có từ văn Ví dụ: Cong hoa xa hoi chu nghia Viet Nam Cong xuất nhiều … hoa xuat hien lan  000101 43 MÃ HÓA DỰA VÀO TẦN SUẤT BẢN TEXT BẢN ENCRYPTION e i … $1 $2 15% 10% $n 0.01% 44 MÃ NỀN Ví dụ: 157, 158, 162, 174, … (+100) 57, 58, 62, 74…… - Xử lý tín hiệu tiếng nói  xem xét liệu để chọn cho liệu + - Base line 45 ÁNH XẠ CO DỮ LIỆU (x,y) S(x,y) (f(x), f(y)) f: ánh xạ co f y f(x) x f(y) S(x,y)   f (x , y )   f (x , y ), f (x , y fk(x,y)  fk (fk(x), fk(y)) …… ) 46 ÁNH XẠ CO DỮ LIỆU Ví dụ: f = 5x +4y +6 1000 lần x*,y* - Một ánh xạ co không phụ thuộc vào input (x,y) f x*,y* 47 ÁNH XẠ CO DỮ LIỆU • Thay lưu trữ ảnh màu có 256 màu có kích thước lớn lưu trữ ánh xạ co • Lớp ánh xạ co (affine) x’ = ax + by + c y’ = dx + ey + f (a, b, c, d, e, f) (x, y)  (x’, y’) (x’1, y’1)  (x1, y1) (x’2, y’2)  (x2, y3) (x’3, y’3)  (x3, y3) *1 *2 *3 *1 *3 *2 Nhỏ Lớn 48 ÁNH XẠ CO DỮ LIỆU Để tìm hệ số cần phải :  Tìm cặp điểm bên  Tìm ánh xạ co Tìm phương trình x’1 = ax1 + by1 + c y’1 = dx1 + ey1 + f x’3 = ax3 + by3 + c y’3 = dx3 + ey3 + f  a, b, c, d, f 49 NEÙN ẢNH  Từ ảnh gốc chia theo lưới vuông, tam giác, chữ nhật I II III IV Chia thành range không giao V nh gốc chia thành domain, domain giao 50 NÉN AÛNH range i MATCH IV III … … 100 V domain I IV V f1 100 51 NÉN ẢNH - NGUYÊN LÝ TỰ ĐỒNG DẠNG: đối tượng tự đồng dạng với - nh nén nhỏ, nên cần thời gian tìm đồmg dạng lớn - Có dạng liệu cần quan tâm để nén: văn bản, số liệu (ma trận,…), hình ảnh, tiếng nói 52 NGUYÊN LÝ PHÂN CẤP BỘ NHỚ NGUYÊN LÝ VANWIK: liệu thường truy cập phải truy cập tốt TỪ ĐIỂN TỪ ĐIỂN THÔNG DỤNG BN 1000000 từ 90% - 3000 từ 997000 từ BN 53 NGUYÊN LÝ PHÂN CẤP BỘ NHỚ - Bài toán với khối lượng liệu lớn, đa dạng Ví dụ: xếp 000 000 số 2000  thứ tự cục  thứ tự toàn phần Ví du: toán nhận dạng  phân cấp theo mẫu tự hay xuất phân cấp theo font thường dùng FONT $ FONT 1000 A B C $ ? …    …   … Bộ nhớ 54 NGUYÊN LÝ DÙNG CÔNG THỨC THAY BỘ NHỚ - Dùng nhớ thay công thức tính Ví dụ: Dãy Fibonaci: 1, 1, 2, 3, 5, 8, 13 Un = U n-1 + Un-2  U1000 bùng nổ không gian vùng nhớ - Mọi đệ qui đưa công thức đúng, gần lần Ví dụ: trắc địa 1/ x, y, z,…… , , … A, B 2/ … A, t ( A  B ) 55 ... } 35 MOÄT SỐ NGUYÊN LÝ   NGUYÊN LÝ VANWIK  Là nguyên lý phân cấp nhớ  Dữ liệu thường truy cập nhiều phải truy cập nhanh NGUYÊN LÝ ĐỐI XỨNG  Là nguyên lý đối ngẫu, hay nguyên lý tính phần... GIAN CHƯƠNG TRÌNH 37 TỐI ƯU HOÁ KHÔNG GIAN Nguyên lý nén liệu a) Giảm khoảng trống b) Mã lặp c) Mã hoá dựa vào tần suất d) Mã e) nh xạ co liệu f) Nén ảnh Nguyên lý phân cấp nhớ Nguyên lý dùng công... lần Vài giải pháp đơn giản:  Phát sinh tất cả đường có thể, sau đó xác định đường ngắn nhất số đó  Áp dụng phương pháp tìm kiếm “tham lam” … MỘT SỐ KỸ THUẬT TỐI ƯU HOÁ CHƯƠNG TRÌNH

Ngày đăng: 18/08/2021, 19:08

Xem thêm:

w