Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui

Tải giáo án điện tử Chuyên đề học tập Tin học 11 - Khoa học máy tính (kết nối tri thức) Bài 13: Kĩ thuật duyệt quay lui. Bộ giáo án chuyên đề được thiết kế sinh động, đẹp mắt. Thao tác tải về đơn giản, dễ dàng sử dụng và chỉnh sửa. Thầy, cô kéo xuống để xem chi tiết.

Xem: => Giáo án tin học 11 theo định hướng khoa học máy tính kết nối tri thức

Click vào ảnh dưới đây để xem 1 phần giáo án rõ nét

Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui
Giáo án điện tử chuyên đề Khoa học máy tính 11 kết nối Bài 13: Kĩ thuật duyệt quay lui

Xem toàn bộ: Giáo án điện tử chuyên đề Tin học 11 - Khoa học máy tính Kết nối tri thức

CHÀO MỪNG CÁC EM ĐẾN VỚI BÀI HỌC MỚI!

KHOA HỌC MÁY TÍNH

 

KHỞI ĐỘNG

[…] Bài toán tìm đường đi trong mê cung lần đầu tiên được đưa ra trong cuốn sách Récréations Mathématiques của tác giả Édouard Lucas năm 1882 tại Pháp. Cũng trong cuốn sách đó Lucas đã đưa ra bản phác thảo đầu tiên của một phương pháp giải bài toán đường đi trong mê cung mà bây giờ chúng ta gọi là thuật toán duyệt quay lui, hay đơn giản là thuật toán quay lui (backtracking).

Trong trò chơi mê cung em cần tìm một đường đi xuất phát từ lối vào và ra khỏi mê cung tại lối ra. Em có đề xuất gì để giải bài toán này?

 

BÀI 13: KĨ THUẬT

DUYỆT QUAY LUI

NỘI DUNG BÀI HỌC

1

Kĩ thuật duyệt quay lui

2

Mô hình tổng quát của thuật toán duyệt quay lui

3

Bài toán sinh xâu nhị phân

 

KĨ THUẬT DUYỆT QUAY LUI

1

 

Hoạt động 1

Tìm hiểu ý tưởng của thuật toán quay lui

Đọc, trao đổi và thảo luận về ý tượng thuật toán quay lui của bài toán tìm đường đi trong mê cung.

  • Xuất phát từ vị trí gốc, thuật toán sẽ gọi hàm tìm bước đi tiếp theo.
  • Nếu thực hiện được một bước đi thì gọi lại hàm để tìm bước đi tiếp theo.
  • Nếu không tìm thấy đường đi thì cần "quay lui" về vị trí trước đó để tìm đường đi khác.
  • Thuật toán sẽ sử dụng kĩ thuật đệ quy khi gọi hàm cho bước đi tiếp theo.

Luôn tìm cách đi tiếp theo

 

1 Tìm kiếm bước đi tiếp theo //<hàm>

2 Nếu vị trí hiện thời là đích

3 Thông báo tìm thấy nghiệm

4 Dừng chương trình

5 Lặp trên tập hợp các khả năng có thể đi tiếp

6 Nếu bước đi là khả thi

7 Thực hiện bước đi cụ thể từ vị trí hiện thời

8 Cập nhật thông tin vào bước đi

9 Tìm kiếm bước đi tiếp theo

10 Xóa thông tin bước đi và quay lại trạng thái trước

Sơ đồ mã giả của thuật toán quy lui

 

GIẢI THÍCH

Hàm có chức năng tim bước đi tiếp theo xuất phát từ <vị trí> hiện thời.

Nếu vị trí hiện thời là đích thì thông báo tìm thấy nghiệm tại dòng 3 và dừng chương trình. Dòng 5 sẽ tìm tất cả các phương án có thể đi tiếp.

  • Nếu tìm thấy một phương án đi khả thi tại dòng 6 thì thực hiện ngay bước đi này tại dòng 7 để cập nhật thông tin vào <vị trí> mới.
  • Sau gọi đệ quy lại hàm gốc để đi tiếp tại dòng 9.

Nếu không thể đi tiếp (lệnh gọi đệ quy dòng 9 không thể thực hiện) thì quay lui tại dòng 10, xoá thông tin bước vừa đi để quay lại vòng lặp 5.

 

KẾT LUẬN

Ý tưởng của thuật toán quay lui là thiết lập một hàm (thủ tục) xuất phát từ một vị trí hiện thời để tìm kiếm các bước đi tiếp theo.

 

Đọc thông tin và trả lời các câu hỏi sau đây:

  • Câu 1: Khi đã thực hiện hết các bước lặp tại dòng 2 ở trên thì hàm có dừng không?
  • Câu 2: Lệnh gọi hàm chính của chương trình trên là gì?
  • Câu 3: Nếu yêu cầu bổ sung thêm 1 lệnh “Nếu thấy <lối ra> thì thông báo và dừng chương trình” thì lệnh này sẽ đặt ở đâu trong chương trình trên?

 

TRẢ LỜI CÂU HỎI

1

Có. Khi thực hiện xong vòng lặp tại dòng 5 thì hàm sẽ dừng. Có nghĩa là từ vị trí hiện thời sẽ không thể đi tiếp được nữa, cần “quay lui".

2

Lệnh gọi hàm chính là "Tìm bước đi tiếp theo.

3

Lệnh này đã có chính là dòng lệnh 2.

 

MÔ HÌNH TỔNG QUÁT CỦA THUẬT TOÁN DUYỆT QUAY LUI

2

 

Hoạt động 2

Tìm hiểu mô hình tổng quát của kĩ thuật duyệt quay lui

Quan sát, thực hiện và thảo luận các bước thiết kế mô hình tổng quát của kĩ thuật duyệt quay lui.

 

Mô hình tổng quát duyệt quay lui sử dụng đệ quy

1 def Backtracking ([x1,x2,…,xk-1],k):

2 if (x1,x2,…,xk-1) là nghiệm:

3 Lưu và thông báo nghiệm

4 Tính toán Sk theo (x1,x2,..,xk-1)

5 for xk in Sk: #Duyệt theo thứ tự của Sk

6 Backtracking ([x1,x2,…,xk], k+1)

Lệnh gọi hàm gốc

Backtracking ([],0)

 

GIẢI THÍCH

 

Lưu ý: Vòng lặp for tại dòng 5 sẽ thực hiện duyệt theo thứ tự các phần tử đang có của S Như vậy, yêu cầu các tập hợp D, phải được sắp thứ tự trước.

 

KẾT LUẬN

 

Đọc thông tin và trả lời các câu hỏi sau đây:

  • Câu 1: Trạng thái "quay lui" của thuật toán trên nằm ở đâu?
  • Câu 2: Có cách nào đếm được tất cả các nghiệm từ thuật toán trên được không? Nếu có thì làm cách nào?

 

TRẢ LỜI CÂU HỎI

1

Trạng thái "quay lui” của thuật toán nằm ở sau dòng lệnh 6, khi kết thúc Backtracking() thì cần “quay lui” để quay lại vòng lặp tiếp theo của lệnh for, tại dòng 5.

2

Có. Cần bổ sung một biến tổng thể, ví dụ count, biến này sẽ được tự động tăng lên 1 đơn vị sau lệnh 3, bên trong lệnh if.

 

BÀI TOÁN SINH XÂU NHỊ PHÂN

3

 

Hoạt động 3

Thiết kế chương trình sinh tất cả các dãy nhị phân

Cùng thực hiện, trao đổi, thảo luận thiết kế chương trình sinh tất cả các dãy nhị phân độ dài n bằng kĩ thuật quay lui.

Để thiết kế chương trình sinh tất cả các dãy nhị phân độ dài n bằng kĩ thuật quay lui, ta có thể sử dụng đệ quy để thêm lần lượt các số 0 và 1 vào dãy nhị phân.

 

1

Viết hàm để sinh dãy nhị phân độ dài n:

def generate_binary_sequence(n, sequence=[]):

if n == 0

print(sequence)

else:

sequence.append(0)

generate_binary_sequence(n-1, sequence)

sequence.pop()

 

sequence.append(1)

generate_binary_sequence(n-1, sequence)

sequence.pop()

 

2

Gọi hàm generate_binary_sequence với độ dài của dãy nhị phân cần sinh:

generate_binary_sequence(3)

[0, 0, 0]

[0, 0, 1]

[0, 1, 0]

[0, 1, 1]

[1, 0, 0]

[1, 0, 1]

[1, 1, 0]

[1, 1, 1]

Kết quả

 

Chương trình 1

1 def genBinary(A,k):

2 if k == n:

3 print(A)

4 else:

5 for i in range(2):

6 A[k] = i

7 genBinary (A,k + 1)

1 n = 4

2 A = [0]*n

3 GenBinary(A,0)

Lời gọi hàm chính

 

Chương trình 2

1 def genBinary(A,k):

2 if k == n:

3 print(A)

4 else:

5 for i in range(2):

6 A.append(i)

7 genBinary (A,k + 1)

8 A.pop().

1 n = 4

2 GenBinary([],0)

Lời gọi hàm chính

 

KẾT LUẬN

 

--------------- Còn tiếp ---------------

 

Trên chỉ là 1 phần của giáo án. Giáo án khi tải về có đầy đủ nội dung của bài. Đủ nội dung của học kì I + học kì II

Hệ thống có đầy đủ các tài liệu:

  • Giáo án word (350k)
  • Giáo án Powerpoint (400k)
  • Trắc nghiệm theo cấu trúc mới (200k)
  • Đề thi cấu trúc mới: ma trận, đáp án, thang điểm..(200k)
  • Phiếu trắc nghiệm câu trả lời ngắn (200k)
  • Trắc nghiệm đúng sai (250k)
  • Lý thuyết bài học và kiến thức trọng tâm (200k)
  • File word giải bài tập sgk (150k)
  • Phiếu bài tập để học sinh luyện kiến thức (200k)

Nâng cấp lên VIP đê tải tất cả ở tài liệu trên

  • Phí nâng cấp VIP: 800k

=> Chỉ gửi 450k. Tải về dùng thực tế. Nếu hài lòng, 1 ngày sau mới gửi phí còn lại

Cách nâng cấp:

  • Bước 1: Chuyển phí vào STK: 1214136868686 - cty Fidutech - MB(QR)
  • Bước 2: Nhắn tin tới Zalo Fidutech - nhấn vào đây để thông báo và nhận tài liệu

Xem toàn bộ: Giáo án điện tử chuyên đề Tin học 11 - Khoa học máy tính Kết nối tri thức

ĐẦY ĐỦ GIÁO ÁN CÁC BỘ SÁCH KHÁC

GIÁO ÁN WORD LỚP 11 KẾT NỐI TRI THỨC

 

GIÁO ÁN POWERPOINT LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN CHUYÊN ĐỀ LỚP 11 KẾT NỐI TRI THỨC

GIÁO ÁN DẠY THÊM 11 KẾT NỐI TRI THỨC

CÁCH ĐẶT MUA:

Liên hệ Zalo: Fidutech - nhấn vào đây

Tài liệu giảng dạy

Xem thêm các bài khác

Chat hỗ trợ
Chat ngay