Tải bản đầy đủ (.ppt) (46 trang)

Bài giảng Thuật toán và tư duy thuật toán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (248.89 KB, 46 trang )

RÈN LUYỆN TƯ DUY VÀ KHẢ NĂNG CÀI ĐẶT
THUẬT TOÁN Ở TRƯỜNG PT


Mục tiêu
 Củng cố khái niệm và những đặc trưng cơ bản
về thuật tốn.
 Củng cố và phân tích thêm về thiết kế thuật
toán
 Nâng cao hiệu quả giảng dạy thuật toán và cài
đặt thuật toán ở PT

Hồ Cẩm Hà-ĐHSPHN


1. THUẬT TỐN


Khái niệm thuật tốn



Máy tính và thuật tốn



Đánh giá thuật toán

3



1.1 KHÁI NIỆM THUẬT TỐN (1)
• Khơng đề cập đến khái niệm hình thức chính xác của thuật
tốn (định nghĩa thơng qua mơ hình máy Turing).
Xem xét một số định nghĩa (khơng hình thức) ít nhiều khác
nhau
• Bản chất mơ tả một cách thức mà một nhiệm vụ hay một tiến
trình được thực hiện như thế nào của thuật tốn.

4


1.1 KHÁI NIỆM THUẬT TỐN (2)
Định nghĩa 1(K.Rosen):
Một thuật tốn là một thủ tục xác định để giải một bài toán (vấn
đề), sử dụng một số hữu hạn bước. Mỗi bước có thể gồm một
hoặc một số thao tác/phép tốn.

5


1.1 KHÁI NIỆM THUẬT TOÁN (3)
Định nghĩa 2.(G. Brookshear)
Một thuật tốn là một tập hợp có thứ tự các bứớc khơng nhập
nhằng, thực hiện được, xác định một tiến trình có kết thúc,
(tức việc thực hiện thuật tốn phải dẫn tới một kết thúc).

6


1.1 KHÁI NIỆM THUẬT TOÁN (4)

Định nghĩa 3.(A. V. Aho, J.E. Hopcroft, J. D. Ullman)
Thuật toán là một dãy hữu hạn các câu lệnh, mỗi câu lệnh đều
có một ý nghĩa rõ ràng và có thể được thực hiện với một lượng
công sức hữu hạn trong một thời gian hữu hạn.

7


1.1 KHÁI NIỆM THUẬT TOÁN (5)
Định nghĩa 4. (C. A. Shaffer)
Một thuật toán là một bảng chỉ dẫn để giải một bài tốn, trong đó
các bước là cụ thể và khơng nhập nhằng. Thuật tốn phải đúng
đắn theo nghĩa nó phải tính đúng hàm mong muốn , chuyển đổi
mỗi đầu vào (dữ liệu vào) thành đầu ra (dữ liệu ra) đúng, có độ
dài hữu hạn và phải kết thúc với mọi dữ liệu vào hợp lệ.

8


1.1 KHÁI NIỆM THUẬT TỐN (6)
Các tính chất:
 Đầu vào (dữ liệu vào)
có các giá trị đầu vào được lấy từ một tập xác định.
Đầu ra (kết quả ra)
Từ một tập các giá trị đầu vào, thuật toán sản sinh ra các giá
trị đầu ra thuộc một tập xác định. Các giá trị đầu ra chứa lời giải của
bài tốn.
Tính xác định
Các bước trong một thuật toán phải được định nghĩa chính
xác (khơng nhập nhằng).


9


1.1 KHÁI NIỆM THUẬT TỐN (7)
Các tính chất (tiếp)
 Tính hữu hạn
Phải cho kết quả (đầu ra) mong đợi sau một số hữu hạn bước
(có thể rất lớn) với mọi đầu vào thuộc tập các dữ liệu vào hợp
lệ.
Tính hiệu quả
Phải có khả năng thực hiện mỗi bước của thuật tốn một cách
đúng đắn (chính xác) và trong một thời gian chấp nhận được.
Tính tổng quát (phổ dụng)
phải được áp dụng cho mọi bài tốn có chung một dạng, mà
khơng phải chỉ cho riêng một tập các dữ liệu vào đặc biệt.

10


1.1 KHÁI NIỆM THUẬT TỐN (8)
Khơng chỉ có trong tin học, có nhiều thuật tốn mơ tả nhiều loại tiến
trình của đời sống hàng ngày như đan áo len, làm một loại bánh, chơi
một bản nhạc, pha một tách cà phê,...
Nói chung, một tác nhân thực hiện một tiến trình được gọi là một
bộ xử lý. Một bộ xử lý có thể là một người, một máy tính hay một
thiết bị cơ hoặc điện nào đó.

11



1.2 Máy tính và thuật tốn (1)
MT là một bộ xử lý đặc biệt với các đặc trưng về


Tốc độ



Tính tin cậy



Bộ nhớ



Chi phí

12


1.2 Máy tính và thuật tốn (2)
Để bộ xử lý có thể thực thi một tiến trình:
 Nó phải được cung cấp một thuật tốn thích hợp
 Nó phải có khả năng lý giải (cũng gọi là thơng dịch)
thuật tốn, tức phải có khả năng :
– hiểu được ý nghĩa mỗi bước của thuật toán ;
– thực hiện được thao tác ( phép toán) tương ứng.


VD
13


1.2 Máy tính và thuật tốn (3)
Trường hợp bộ xử lý là một máy tính thì thuật tốn phải được biểu thị
dưới dạng một chương trình
Để thực thi một tiến trình trên một máy tính, cần phải :
 Thiết kế một thuật tốn (đưa ra một mơ tả tiến trình phải được thực
hiện như thế nào);
 Biểu thị thuật toán thành một chương trình trong một ngơn ngữ lập
trình thích hợp (cài đặt);
 Cho máy tính thực hiện chương trình (chạy chương trình).

14


1.2 Máy tính và thuật tốn (4)
 Vai trị của thuật tốn là cơ bản. Khơng có thuật tốn khơng có
chương trình  khơng có gì để thực hiện.
 Các thuật tốn cịn là cơ bản: độc lập với ngơn ngữ được dùng để
biểu thị thuật toán; độc lập với các máy tính thực hiện chúng.
 Các thuật tốn có thể được thiết kế và nghiên cứu độc lập với
công nghệ hiện hành: các kết quả vẫn giữ nguyên giá trị bất kể sự
ra đời của các máy tính và các ngơn ngữ lập trình mới.

15


1.3 Đánh giá thuật toán


Xem tài liệu

16


THẢO LUẬN THÊM
Thế nào là không nhập nhằng?
 Thông tin về trạng thái của tiến trình phải đủ để xác định duy
nhất và đầy đủ các hành động được đòi hỏi ở mỗi bước
 Thực hiện mỗi bước khơng địi hỏi kỹ năng sáng tạo mà chỉ
cần có khả năng làm theo các mệnh lệnh.

17


2. THIẾT KẾ THUẬT TOÁN (1)


Các cấu trúc điều khiển



Tinh chế thuật tốn từng bước một



Tính đơn thể.




Các chiến lược thiết kế thuật toán

18


2. THIẾT KẾ THUẬT TOÁN (2)
Việc thiết kế một thuật tốn là một cơng việc trí óc khó
khăn, địi hỏi phải có sáng tạo, sự am hiểu lĩnh vực
ứng dụng và không thể đưa ra một tập các quy tắc
chung.
Không có thuật tốn nào cho việc thiết kế thuật tốn.

19


2.1 Các cấu trúc điều khiển
Cấu trúc tuần tự
Thông thường các bước của một thuật toán được thực hiện theo đúng
trình tự viết của chúng:
 Các bước được thực hiện từng bước một ;
 Mỗi bước được thực hiện đúng một lần ;
 Thứ tự các bứớc được thực hiện chính là thứ tự chúng được viết
trong thuật tốn ;
 Sự dừng của bước cuối cùng kéo theo sự dừng của thuật toán.
20


2.1 Các cấu trúc điều khiển
Cấu trúc tuần tự (2)

Dễ thấy là, nếu một thuật toán chỉ là một dãy các bước thì sẽ khơng
mềm dẻo chút nào vì cách thực hiện của nó là cố định và khơng thể đư
ợc thay đổi theo các tình huống khác nhau.
Ví dụ: Thuật toán “pha một cốc cafe tan” để một robot phục vụ:- - Đun nước sôi
-Cho cafe vào cốc
-Cho nước sơi vào cốc
Nếu xảy ra một số tình huống....
21


2.1 Các cấu trúc điều khiển
Cấu trúc tuyển chọn (rẽ nhánh)
Nếu điều kiện Thì bước 1
Cịn khơng bước 2
Cấu trúc tuyển chọn (hay câu lệnh tuyển chọn nếu ta xét một
thuật tốn được biểu diễn dưới dạng một chương trình ) cho
phép thực hiện theo một trong nhiều nhánh khác nhau của
một thuật tốn tuỳ thuộc vào một tình huống nhất định
22


2.1 Các cấu trúc điều khiển
Cấu trúc tuyển chọn (rẽ nhánh)
Bộ xử lý phải có khả năng thơng dịch các điều kiện trong một
thuật tốn đúng như nó phải có khả năng thơng dịch các bước.
Các điều kiện do đó cũng được tinh chế tới khi chúng đủ chi
tiết và chính xác để cho phép bộ xử lý thơng dịch chúng.

23



2.1 Các cấu trúc điều khiển
Cấu trúc lặp
Các cấu trúc tuần tự và tuyển chọn là chưa đủ để diễn đạt các
thuật tốn có độ dài thay đổi tuỳ theo các trường hợp. Cái ta cần
là một cách thức lặp lại một số bước trong thuật toán một số
lần tuỳ ý.
Ví dụ:?

24


2.1 Các cấu trúc điều khiển
Cấu trúc lặp (2)
Lặp….khi (while ... Do)
Lặp ... đến khi (repeat …until)
Sức mạnh của phép lặp là nó cho phép một tiến trình có thời gian
khơng xác định được mơ tả bởi một thuật tốn có độ dài hữu hạn.
một trong những lỗi thường gặp khi thiết kế thuật tốn là xác định
khơng đúng điều kiện kết thúc của một vòng lặp

25


×