Bài giảng Kỹ thuật lập trình: Các phương pháp giải quyết bài toán trên máy tính - Trịnh Tấn Đạt

22 73 0
Bài giảng Kỹ thuật lập trình: Các phương pháp giải quyết bài toán trên máy tính - Trịnh Tấn Đạt

Đ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

Bài giảng Kỹ thuật lập trình: Các phương pháp giải quyết bài toán trên máy tính cung cấp cho người học các kiến thức: Phương pháp trực tiếp, phương pháp gián tiếp hoặc tìm kiếm lời giải. Mời các bạn cùng tham khảo.

Các phương pháp giải tốn máy tính Trịnh Tấn Đạt Khoa CNTT - Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/ Nội dung ▪ Phương pháp trực tiếp ▪ Phương pháp gián tiếp tìm kiếm lời giải Phương pháp trực tiếp ▪ Xác định trực tiếp lời giải qua thủ tục tính tốn (cơng thức, hệ thức, định luật, …) qua bước để có lời giải ▪ Việc giải vấn đề máy tính thao tác lập trình chuyển đổi lời giải từ ngơn ngữ tự nhiên sang ngơn ngữ máy tính  kỹ thuật lập trình máy tính ▪ Có loại bản: o Lọai thứ nhất, dùng để biểu diễn cho tốn có lời giải xác cơng thức tốn học Ví dụ: tính tổng n số nguyên dương o Loại thứ hai, biểu diễn cho tốn có cơng thức giải gần (cơng thức tính sin, cos, giải phương trình siêu việt,…) Ví dụ: giải phương trình bậc o Loại thứ 3, biểu diễn lời giải không tường minh kỹ thuật đệ quy Phương pháp trực tiếp Ví dụ: Lọai thứ - có lời giải xác cơng thức tốn học ▪ Tính tổng n số ngun n(n + 1) + + + + n = ▪ Tinh tổng sau: + + + + (2n − 1) = n ▪ Tính tổng hai ma trận vng: cij = aij + bij ;0  i, j  n Phương pháp trực tiếp ▪ Ví dụ: Loại thứ hai, biểu diễn cho tốn có cơng thức giải gần ▪ Giải phương trình bậc ▪ Giải hệ phương trình bậc ▪ Tính sin, cos, exp Phương pháp trực tiếp ▪ Ví dụ: Loại thứ 3, biểu diễn lời giải không tường minh kỹ thuật đệ quy ▪ Tính n! ▪ Sierpiński triangle (Hình học phân dạng - Fractal Geometry) Chuyển đổi liệu tốn thành liệu chương trình ▪ Ngun lý 1: Dữ liệu toán biểu diễn lại dạng biến chương trình thơng qua quy tắc xác định ngơn ngữ lập trình cụ thể Biến - phương tiện biểu diễn liệu chương trình Thay đổi giá trị biến - lệnh gán Kiểu liệu Hằng số Cấu trúc chương trình Chuyển đổi liệu tốn thành liệu chương trình ▪ Ngun lý (Định lý Bohn- Jacopini, a.k.a the structured program theorem): Mọi q trình tính tốn mơ tả thực dựa ba cấu trúc bản: tuần tự, rẽ nhánh lặp Cấu trúc Cấu trúc rẽ nhánh o Rẽ nhánh có điều kiện: if (condition) - rẽ nhánh đơn: if () - rẽ nhánh đôi: if () else o Rẽ nhiều nhánh: switch case Cấu trúc lặp: o Lặp xác định o Lặp không xác định Phân chia toán ban đầu thành toán nhỏ ▪ Ngun lý 3: Mọi tốn lớn giải cách phân chia thành toán nhỏ Thủ tục hàm - phương pháp phân chia chương trình thành chương trình Biến cục biến toàn cục (thời gian tồn phạm vi) Tham số - liệu đầu vào/đầu hàm Biểu diễn tính tốn không tường minh đệ quy ▪ Nguyên lý 4: q trình đệ quy máy tính khơng đơn giản biểu thức quy nạp toán học ▪ Sẽ trình bày sau Phương pháp gián tiếp ▪ Được sử dụng chưa tìm lời giải xác vấn đề ▪ Đây cách tiếp cận chủ yếu loài người từ xưa đến ▪ Lời giải trực tiếp tốt hơn, khơng phải lúc có Ví dụ: - Tìm đường mê cung - Tập nói / học ngơn ngữ khác - Robotic - Tạo vaccine phòng bệnh Phân lọai phương pháp gián tiếp Phương pháp thử-sai (Trial and Error): ▪ Tuần tự thử triển khai giả thuyết, loại bỏ dần giả thuyết không xác định giải pháp tốt ▪ Là chế tiến hóa phát triển tự nhiên xã hội loài người ▪ Phương pháp thường nhiều thời gian, tốn không thúc đẩy phát huy tư đột phá Phương pháp Heuristic (Heuristic - ước lượng khả dẫn đến lời giải): ▪ Thường tìm lời giải tốt (nhưng khơng lời giải tốt nhất) ▪ Thường dễ dàng nhanh chóng đưa kết so với giải thuật tối ưu, chi phí thấp ▪ Thường thể tự nhiên, gần gũi với cách suy nghĩ hành động người Phương pháp trí tuệ nhân tạo (Artificial Intelligence): ▪ Gồm sở lý thuyết việc lập trình xây dựng hệ thống máy tính thực nhiệm vụ thường đòi hỏi trí thơng minh người ▪ Suy nghĩ giống người, hành động giống người, suy nghĩ hợp lý, hành động hợp lý Phương pháp thử-sai ▪ Cách tìm kim đống rơm: “trong chưa nghĩ cách thật hay việc rút cọng rơm rút kim” ▪ Phương pháp dựa nguyên lý: Nguyên lý vét cạn (brute-force, duyệt toàn bộ): liệt kê tất trường hợp xảy xem xét chúng Ví dụ: Liệt kê tất số nguyên tố từ m đến n Nguyên lý ngẫu nhiên: dựa việc thử số khả chọn cách ngẫu nhiên tập khả (thường lớn, áp dụng nguyên lý toàn tốn nhiều thời gian) Khả tìm lời giải (hoặc gần đúng) phụ thuộc vào chiến lược chọn ngẫu nhiên số điều kiện cụ thể ▪ Nguyên lý phát triên thành phương pháp Monté-Carlos Càng ngày nguyên lý ngẫu nhiên phát triển mạnh mẽ, số có phương pháp bật phương pháp Genetic Ví dụ: kiểm tra chất lượng q trình sản xuất đồn kiểm tra Một lơ hàng có 1000 thùng, chọn ngẫu nhiên 10 thùng, thùng có 24 sản phẩm, chọn ngẫu nhiên sản phẩm, Phương pháp thử-sai Nguyên lý mê cung: nguyên lý áp dụng khơng biết xác "hình dạng" lời giải, mà phải xây dựng lời giải dần qua bước, giống tìm khỏi mê cung Phương pháp thử-sai Để thực tốt phương pháp thử - sai, nên áp dụng nguyên lý sau: Ngun lý vét cạn (duyệt tồn bộ): muốn tìm kim đống rơm, rút cọng rơm đến rút kim Thuật giải: gọi D khơng gian tốn (tập tất khả xảy ra), D ={(x1,x2, ,xn)/xi ∈ Di với Di tập hữu hạn có mi phần tử} gọi f : D → {true, false} quy tắc xác định lời giải Ví dụ: tìm tội phạm đám đơng tìm cặp điểm gần mặt phẳng Phương pháp thử-sai Nguyên lý mắt lưới: lưới bắt cá bắt cá có kích thước lớn kích thước mắt lưới Ví dụ: Tìm tội phạm (đã biết trước số thông tin: chiều cao, cân nặng, …) đám đơng Tìm nghiệm phương trình đoạn Nguyên lý mê cung: Muốn thóat khỏi mê cung phải biết quay lui biết đánh dấu nơi qua Ví dụ: Tìm đường ngắn Phương pháp thử-sai Nguyên lý chung giảm độ phức tạp thử-sai: thu hẹp tập trường hợp trước duyệt, đồng thời đơn giản hóa tối đa điều kiện chấp nhận trường hợp Quy tắc: o Đơn giản điều kiện: tránh tính lại vòng lặp thừa kế kết tính tốn bước trước: phương pháp qui hoạch động o Kỹ thuật cầm canh: mã tuần, Ví dụ: tìm số âm mảng: điều kiện while(x[i]>0&&i0) Ngun lý thu gọn khơng gian tìm kiếm: loại bỏ trường hợp nhóm trường hợp chắn khơng dẫn đến lời giải Phương pháp thử-sai ▪ Qui tắc rút gọn: o Dựa đánh giá tồn cục: tìm điều kiện để rút gọn tập khả đề cử bước xây dựng thành phần Ví dụ: tìm tổ hợp chặp n k ; tìm kiếm nhị phân o Dựa đánh giá cục bộ: xây dựng phép kiểm tra đơn giản để nhanh chóng loại bỏ khả cho thành phần x[i] mà khơng phải xây dựng tồn n-i thành phần lại lời giải Ví dụ: cho sáu số tự nhiên A={1,7,2,9,3,5}.Tìm dãy A cho tổng phần tử dãy Quay lui dựa vét cạn/ nhánh cận Phương pháp Heuristic ▪ Trong nhiều toán dùng phương pháp thử - sai dẫn đến số lượng thử lớn  không chấp nhận ▪ Heuristic ước lượng khả dẫn đến lời giải trạng thái: phương pháp vét cạn có thêm tri thức kèm, tối ưu cục bộ, nguyên lý hướng đích, nguyên lý thứ tự, ▪ Để áp dụng tốt phương pháp heuristic, nên áp dụng nguyên lý sau: o Nguyên lý leo núi: muốn leo lên đỉnh núi bước sau phải “cao hơn” bước trước o Nguyên lý chung: chọn hướng có triển vọng số hướng biết Ví dụ: • Một em bé bị lạc đường nhà, em nhớ nhà cao khu vực, em tìm đến tòa nhà cao vùng em thấy, lại tiếp tục, • Giải phương trình bậc 2, đốn nghiệm theo Vi-ét Tìm kiếm theo chiều sâu chiều rộng ▪ Tìm kiếm theo chiều sâu: Là thử-sai theo nguyên lý mê cung thử -sai kết hợp lần ngược ▪ Ngược với tìm kiếm theo chiều sâu, tìm kiếm theo chiều rộng mang hình ảnh vết dầu loang Phân đoạn ảnh Phương pháp trí tuệ nhân tạo ▪ "Dạy" máy tính để có "trí thơng minh" người bắt chước khả "suy luận" người ▪ Một số phương pháp chuyển giao tri thức o Biểu diễn tri thức o Hệ chuyên gia o Máy học Ví dụ: - Giải phương trình theo bước https://www.wolframalpha.com/input/?i=solve+x%5E3+-+4x%5E2+%2B+6x++24+%3D+0+over+the+reals&lk=3 - Các hệ thống nhận dạng sinh trắc học Machine learning applications Image Recognition Sentiment Analysis News Classification ... luật, …) qua bước để có lời giải ▪ Việc giải vấn đề máy tính thao tác lập trình chuyển đổi lời giải từ ngôn ngữ tự nhiên sang ngơn ngữ máy tính  kỹ thuật lập trình máy tính ▪ Có loại bản: o Lọai... phẩm, Phương pháp thử-sai Nguyên lý mê cung: nguyên lý áp dụng xác "hình dạng" lời giải, mà phải xây dựng lời giải dần qua bước, giống tìm khỏi mê cung Phương pháp thử-sai Để thực tốt phương pháp. ..Nội dung ▪ Phương pháp trực tiếp ▪ Phương pháp gián tiếp tìm kiếm lời giải Phương pháp trực tiếp ▪ Xác định trực tiếp lời giải qua thủ tục tính tốn (cơng thức, hệ thức, định

Ngày đăng: 15/05/2020, 22:56

Từ khóa liên quan

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

Tài liệu liên quan