Phƣơng pháp giải quyết vấn đề Bài toán trên cơ sở tin học

Một phần của tài liệu Nghiên cứu phương pháp sáng tạo trên điện thoại di động (Trang 29 - 34)

3.1 Phƣơng pháp trực tiếp

Đặc điểm của cách giải quyết vấn đề này là đều xác định được trực tiếp lời giải thông qua một thủ thục tính toán (cộng thức, hệ thức, định luật…) hoặc qua cách bước căn bản để có được lời giải. Đối với phương pháp này, việc giải quyết vấn đề trên máy tính chỉ là thao tác lập trình hay chỉ là sự chuyển đổi từ ngôn ngữ bên ngoài sang ngôn ngữ sử dụng trong máy tính. Tìm hiểu phương này chính là tìm hiểu phương pháp lập trình trên máy tính.

Để thực hiện tốt phương pháp trực tiếp ta nên áp dụng các nguyên lý sau:

+ Nguyên lý 1: Chuyển đổi dữ liệu của bài toán thành dữ liệu của chương

trình, có nghĩa là “Dữ liệu của bài toán sẽ đựoc biểu diển dưới dạng các biến của chương trình thông qua các quy tắc xác định của ngôn ngữ lập trình cụ thể”.

Một số quy tắc cần tuân thủ:

 Ý nghĩa của biến chỉ được hiểu bởi con người.

30 HVTH: TRẦN KIM HƯƠNG – 1112013 – HTTT K21

 Tên biến cần gợi nhớ và thống nhất như: Tên biến phải liên quan đến ý nghĩa, tên biến phải có tiền tố cho biết kiểu biến, viết hoa mỗi chữ cái đầu, viết tắt tên biến, đừng đặt tên biến quá dài …

+ Nguyên lý 2: Chuyển đổi quá trình tính toán của bài toán thành các cấu trúc của chương trình, có nghĩa là “mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản: Cấu trúc tuần tự, cấu trúc rẽ nhánh và cấu trúc lặp”.

 Dùng biến trung gian cho hợp lý, đừng quá lạm dụng biến trung gian. + Nguyên lý 3: Biểu diễn các tính toán chính xác, nghĩa là “Chương trình

tính toán theo các biểu thức chính xác không đồng nhất với quá trình tính toán chính xác về mặt hình thức”.

Một số quy tắc cần tuân thủ:

 So sánh bằng nên dùng |a-b|<

 Quá trình tối ưu tính toán biểu thức của ngôn ngữ có thể làm ảnh hưởng đến kết quả tính toán.

+ Nguyên lý 4: Biểu diễn các tính toán gần đúng bằng phương pháp lặp, có

nghĩa là: ”Mọi quá trình tính toán gần đúng đều dựa trên cấu trúc lặp với tham số xác định”.

Một số quy tắc cần lưu ý:

 Biểu thức lặp chưa chắc là công thức lặp tối ưu trong máy tính.

 Thay thế các cấu trúc lặp xác định không tường minh bằng cấu trúc lặp không xác định. Đừng thay đổi biến đếm trong vòng lặp xác định.

 Tránh dùng các điều kiện rẽ nhánh không điều kiện (Goto) một cách không cần thiết.

31 HVTH: TRẦN KIM HƯƠNG – 1112013 – HTTT K21

+ Nguyên lý 5: Phân chia bài toán thành các bài toán nhỏ hơn, có nghĩa là:

”Mọi vấn đề bài toán đều có thể giải quyết bằng cách phân chia thành những bài toán nhỏ hơn”.

Một số quy tắc:

Dùng chương trình con: Hàm, thủ tục để chia nhỏ chương trình.

+ Nguyên lý 6: Biểu diễn các bài toán không tường minh bằng phương pháp

đệ quy, có nghĩa là: “Quá trình đệ quy trong máy tính không đơn giản như các biểu thức quy nạp của toán học”.

Một số quy tắc:

 Khử đệ quy: Chuyển tham số đệ quy thành biến đếm của vòng lặp.

 Khử đệ quy: Chỉ đưa vào stack những tham số có ý nghĩa trong quá trình đệ quy.

3.2 Phƣơng pháp gián tiếp

Phương pháp này được áp dụng khi chưa tìm ra lời giải chính xác của vấn đề. Đây cũng chính là cách tiếp cận chủ yếu của loài người từ xưa đến nay.

Điều khác hôm nay là chúng ta đưa ra những giải pháp đặc trưng của máy tính, dựa vào sức mạnh tính toán của máy tính.

Một lời giải trực tiếp bao giờ cũng tốt hơn, nhưng không phải lúc nào cũng có.

32 HVTH: TRẦN KIM HƯƠNG – 1112013 – HTTT K21

Các phương pháp gián tiếp:

Phƣơng pháp thử - sai:

Khi xây dựng lời giải bài toán theo phương pháp thử – sai, người ta thường dựa vào 3 nguyên lý sau :

+ Nguyên lý vét cạn: Đây là nguyên lý đơn giản nhất, liệt kê tất cả các trường hợp có thể xảy ra.

+ Nguyên lý ngẫu nhiên: Dựa vào việc thử một số khả năng được chọn một cách ngẫu nhiên. Khả năng tìm ra lời giải đúng phụ thuộc rất nhiều vào chiến lược chọn ngẫu nhiên.

+ Nguyên lý mê cung: Nguyên lý này được áp dụng khi chúng ta không thể biết được chính xác “hình dạng” lời giải mà phải xây dựng dần lời giải qua từng bước một giống như tìm đường đi trong mê cung.

Để thực hiện tốt phương pháp thử - sai, chúng ta nên áp dụng các nguyên lý sau : + Nguyên lý vét cạn toàn bộ: Muốn tìm được cây kim trong đống rơm, hãy

33 HVTH: TRẦN KIM HƯƠNG – 1112013 – HTTT K21

+ Nguyên lý mắt lưới: Lưới bắt cá chỉ bắt được những con cá có kích thước lớn hơn kích thước mắt lưới.

+ Nguyên lý giảm độ phức tạp của thử và sai: Thu hẹp trường hợp trước và trong khi duyệt, đồng thời đơn giản hóa tối đa điều kiện chấp nhận một trường hợp.

+ Nguyên lý thu gọn không gian tìm kiếm: Loại bỏ những trường hợp hoặc nhóm trường hợp chắc chắn không dẫn đến lời giải.

+ Nguyên lý đánh giá nhánh cận: Nhánh có chứa quả phải nặng hơn trọng lượng của quả.

Phƣơng pháp Heuristic

Phương pháp Heuristic có đặc điểm là đơn giản và gần gũi với cách suy nghĩ của con người, cho ra được những lời giải đúng trong đa số các trường hợp áp dụng.

Các thuật giải Heuristic được xây dựng dựa trên một số nguyên lý rất đơn giản như :

+ Vét cạn thông minh + Tối ưu cục bộ (Greedy) + Hướng đích

+ Sắp thứ tự …

Để thực hiện tốt phương pháp Heuristic, chúng ta nên áp dụng các nguyên lý sau : + Nguyên lý leo núi: Muốn leo lên đến đỉnh thì bước sau phải “cao hơn” bước

trước.

+ Nguyên lý chung: Chọn hướng đi triển vọng nhất trong số những hướng đi đã biết.

Phƣơng pháp trí tuệ nhân tạo

Phương pháp trí tuệ nhân tạo dựa trên trí thông minh của máy tính.

Phương pháp này, người ta sẽ đưa vào máy trí thông minh nhân tạo giúp máy tính bắt chước một phần khả năng suy luận như con người, máy tính dựa trên những điều đã được “học“ để tự đưa ra phương án giải quyết vấn đề.

34 HVTH: TRẦN KIM HƯƠNG – 1112013 – HTTT K21

PHẦN II

NỘI DUNG NGHIÊN CỨU

Chƣơng I: Quá trình phát triển của hệ điều hành Adroid trên điện thoại di động

Một phần của tài liệu Nghiên cứu phương pháp sáng tạo trên điện thoại di động (Trang 29 - 34)