Professional Documents
Culture Documents
BaiToanThuatToan 2020-2021
BaiToanThuatToan 2020-2021
CHUYÊN ĐỀ
1
MÁY TÍNH SUY NGHĨ NHƯ THẾ NÀO?
Ngày nay, với sự phát triển về mọi mặt của đời sống từ văn hóa, giáo dục cho đến công
nghệ và đặc biệt, lĩnh vực công nghệ thông tin sẽ có những bước phát triển chóng mặt. Một
chiếc máy tính hoặc thiết bị điện tử hiện nay có thể làm được rất nhiều việc như phát hiện
những kẻ nói dối tốt hơn con người, dự đoán các cơn đau tim sớm hơn 4 giờ so với bác sĩ,
hay thắng nhà vô địch cờ vây 9 đẳng với tỷ số áp đảo,...
A. KIẾN THỨC
VẬY MÁY TÍNH SUY NGHĨ NHƯ THẾ NÀO?
Chúng ta sẽ bắt đầu quan sát trên những chương trình gần gũi nhất chạy trên máy tính
hoặc một số thiết bị. Ví dụ, game Amusive Chess là một game trí tuệ, mô
phỏng trò chơi cờ vua thú vị. Khi khởi động chương trình ta thấy giao diện chính là bàn cờ
vua gồm 8 dòng, 8 cột, có đầy đủ quân ở 2 bên. Sau mỗi nước đi của người, máy tính suy
nghĩ và không khó để đưa ra 1 nước đi gây khó cho chính người chơi, quá trình chơi tiếp tục
theo cách đó cho đến khi 1 bên bị ăn tướng (thường là con người)
2
Một chương trình khác là Google Map, bản đồ vệ tinh, bản đồ số phổ cập ở các quốc
gia, lãnh thổ theo thổ ngữ riêng biệt, được google phát triển với mục đích thay thế cho các
loại bản đồ giấy thông thường. Google Maps chính là cầu nối giữa cái mà chúng ta nhìn thấy
trong đời thực với thế giới trực tuyến.
Google Maps đang là dịch vụ bản đồ thông dụng nh ất hi ện nay trên máy
tính, điện thoại, xe hơi...
Phiên bản Google Map di động được giới thiệu lần đầu vào năm 2008, hoạt động thông
qua GPS của thiết bị. Với Google Map, bạn có thể xem bản đồ vệ tinh, bản đồ thành phố,
hình ảnh 360 độ Street View, tra cứu tình hình giao thông trong thời gian thực ( Google
Traffic) và xem lộ trình khi di chuyển bằng ô tô, xe đạp, các phương tiện công cộng hay đi
bộ.
3
Chức năng xem lộ trình đường đi (tối ưu) giữa hai vị
trí cho trước của Google Map. Cho trước hai vị trí Đầu
và Cuối, chương trình sẽ phải dựa trên bản đồ giao
thông thành phố để tìm ra được 1 cách đi với khoảng
cách hoặc thời gian tối ưu nhất. Trên màn hình máy tính
sẽ hiện đường đi tối ưu đó với các thông tin có liên
quan.
INPUT (ĐẦU VÀO): Bài toán hay vấn đề cần giải quyết. Các thông số, dữ liệu ban đầu của bài
toán.
BỘ XỬ LÝ: Là chương trình máy tính, phần mềm hoặc thiết bị vi xử lý bất kỳ có chức năng
tiếp nhận đầu vào, sau đó tiến hành giải quyết bài toán.
OUTPUT (ĐẦU RA): Kết quả của bài toán, vấn đề được thể hiện ở đầu ra (thường là màn
hình)
Quá trình tiếp nhận và giải quyết vấn đề của máy tính nếu phát biểu dưới dạng mênh đề
toán học thì ta được
AB
Nếu con người trả lời được 3 câu hỏi trên một cách rõ ràng, tỉ mỉ, logic, chính xác thì ta có
thể có 1 chương trình chạy được trên máy tính. Khi đó, ta nạp Input=A, máy tính sẽ suy nghĩ
và đưa ra Output=B
Vì vậy, suy nghĩ của máy tính chính là suy nghĩ của con người được thể hiện qua một thứ:
CHƯƠNG TRÌNH
Chương trình tạm hiểu là một danh sách các chỉ dẫn tính toán. Nó được viết bằng 1 ngôn ngữ
hình thức mà máy tính có thể hiểu, mục đích là hướng dẫn cho máy biết cần phải làm gì và làm
như thế nào để giải quyết được vấn đề. Khi chương trình chạy, ta nạp A cho máy, máy sẽ theo
các chỉ dẫn viết sẵn, tính toán và đưa B ra màn hình
B. LUYỆN TẬP
1. Máy tính có biết suy nghĩ không?
.............................................................................................................................................
2. Điều gì làm cho máy tính có vẻ như “biết suy nghĩ”
.............................................................................................................................................
.............................................................................................................................................
3. Bạn hãy cho biết Input, Output của 1 chương trình trên điện thoại hoặc máy tính
.........................................................................................................................................................
4. Khi cần tìm đường trong một chuyến du lịch nào đó,
bạn sẽ dùng cách nào?
.........................................................................................................................................................
.........................................................................................................................................................
5
5. HOẠT ĐỘNG: lập bảng so sánh như hình bên dưới. Hãy tìm 3 lĩnh vực/ công việc/
hoạt động mà máy thắng người, 2 lĩnh vực/công việc người thắng máy
6. Liệt kê 5 công việc mà bạn thường làm với sự trợ giúp của các chương trình máy
tính. Nêu rõ tên chương trình
7. Cho giao diện chương trình sau. Hãy tìm hiểu về nó (thực hiện
công việc gì, Input, Output)
6
8. CHO GIAO DIỆN MỘT TRANG WEB:
a. Chương trình chạy trên nền web trong hình sau thực hiện công việc gì? Input?
Output
b. Có một số chương trình khác mà Google cung cấp. Hãy kể tên và chức năng nếu
bạn biết
c. Với 1 tài khoản, chúng ta có thể cùng lúc đăng nhập và sử dụng các chương trình
đó không?
7
8
THUẬT TOÁN - CỐT LÕI CỦA MỘT CHƯƠNG TRÌNH
Để viết một chương trình, từ vấn đề ban đầu, con người phát biểu 1 bài toán dưới góc nhìn
của Tin học, phân tích A là gì, B là gì, sau đó tìm ý tưởng và chi tiết hóa ý tưởng thành một
bản hướng dẫn cụ thể để giải quyết bài toán ( tức là THUẬT TOÁN). Công việc tiếp tục là tìm
một ngôn ngữ để mô tả giải pháp này cho máy hiểu và thực hiện.
Việc xây dựng thuật toán rất quan trọng vì nếu hướng dẫn giải sai hoặc không rõ ràng thì
chương trình hoặc không chạy được hoặc có chạy được cũng không đúng yêu cầu
A. KIẾN THỨC
1. ĐỊNH NGHĨA THUẬT TOÁN
Thuật toán là một tập hợp hữu hạn các hướng dẫn được xác định rõ ràng và thứ tự, sao
cho từ Input, theo các hướng dẫn ta tìm ra được Output
Việc nghiên cứu thuật toán rất quan trọng trong ngành khoa học máy tính nói
chung, hay lập trình phần mềm nói riêng.
2. VAI TRÒ CỦA THUẬT TOÁN
Thuật toán không chỉ được sử dụng để tìm ra kết quả các các bài toán hay trong lĩnh vực lập
trình. Nó còn được sử dụng để tìm ra phương hướng giải quyết các vấn đề cuộc sống.
9
3. MỘT SỐ VÍ DỤ VỀ BÀI TOÁN
- Hãy tìm kiếm 1 cái máy tính có giá từ X->Y, đáp ứng tối đa các tiêu chí của người
dùng chỉ trong 1 cái click chuột
- Hãy đưa ra các bài viết hoặc sản phẩm mà người dùng quan tâm dựa trên lịch sử
truy cập của họ
- Hãy tính toán và sắp xếp thứ hạng của người dùng dựa trên lịch sử học và làm bài
- Đếm số lượng truy cập của người dùng trong 1 khoảng thời gian để dự đoán tấn
công
- Đưa ra gợi ý các bài tập mà người dùng nên làm dựa vào lịch sử truy cập và thao tác
của họ trên hệ thống
10
cùng khó. Điều ấy yêu cầu 1 thuật toán cực mạnh, và vẫn liên tục cần cải tiến cho
đến ngày hôm nay.
-
C. CÁC THUẬT TOÁN MÃ HOÁ
- Được sử dụng nhiều trong việc
truyền nhận và lưu trữ giữ liệu, giúp
bảo vệ thông tin cá nhân và tổ chức
khỏi các cuộc tấn công hay khai
thác.
B. LUYỆN TẬP
1. Điền các từ sau vào vị trí thích hợp: BÀI TOÁN, NGÔN NGỮ LẬP TRÌNH, THUẬT
TOÁN
2. AI (Artificial Intelligence) có phải là thuật toán không? Sản phẩm công nghệ nào hiện
nay đang sử dụng AI
3. Kể ra một bài toán (công việc) máy tính làm được và tên phần mềm thực hiện công
việc đó
5. Sử dụng Google Search liệt kê vài ứng dụng và thuật toán. Ghi rõ thuật toán nào là
AI
11
CÁC TÍNH CHẤT CỦA THUẬT TOÁN
ĐẦU VÀO VÀ ĐẦU RA (INPUT/OUTPUT): Mọi thuật toán đều nhận dữ liệu đầu vào,
xử lý nó và cho ra kết quả cuối cùng.
TÍNH HIỆU QUẢ: Được xét dựa trên khối lượng các phép tính toán, không gian lưu
trữ và thời gian thi hành thuật toán. Đây là yếu tố quyết định để đánh giá và chọn
lựa cách giải quyết bài toán
TÍNH TỔNG QUÁT: Thuật toán phải áp dụng được cho mọi trường hợp của bài
toán (từ Input phải luôn cho ra được Output). Ví dụ: Thuật toán tìm ước chung lớn
nhất của 2 số nguyên dương M,N, với mọi giá trị M,N đưa vào thuật toán, ta phải
luôn có câu trả lời về ước chung lớn nhất của chúng. Nếu M=5,N=10 thì ước
chung là 5. Nếu M=4, N=10 thì ước chung là 2
2. MỘT THUẬT TOÁN PHẢI ĐÁP ỨNG NHỮNG YÊU CẦU NÀO?
TÍNH XÁC ĐỊNH: Ở mỗi bước của thuật toán, các thao tác phải đơn nghĩa (tức là
hết sức rõ ràng, không gây nên sự nhập nhằng, lộn xộn, tùy tiện)
TÍNH DỪNG: Thuật toán không được rơi vào quá trình vô hạn, phải dừng lại và
cho kết quả sau một số hữu hạn bước. Tuy nhiên, thuật toán nên dừng trong
khoảng thời gian cho phép. Ví dụ: chương trình sắp xếp thời khóa biểu cho một
học sinh thì không thể cho máy tính chạy tới học kỳ sau mới có kết quả được
TÍNH ĐÚNG: Sau khi thực hiện tất cả các bước của thuật toán theo đúng quá
trình đã định, từ A, ta phải được B
Giống như Toán học, thuật toán cũng là một phương pháp giải toán nên cũng phải tuân
theo một số quy tắc nhất định. Ðể có truyền đạt thuật toán cho người khác hay chuyển
thuật toán thành chương trình máy tính, ta phải có phương pháp biểu diễn thuật toán. Có
3 phương pháp biểu diễn
12
NHỮNG NGƯỜI MỚI HỌC NÊN DÙNG LƯU ĐỒ ĐỂ BIỂU DIỄN THUẬT TOÁN
13
4. LƯU ĐỒ LÀ GÌ?
Là một sơ đồ minh họa lại các thao tác cần thực hiện theo thứ tự để giải quyết bài toán
thông qua các hình khối đã được thống nhất chung và được nối với nhau bằng các mũi tên
để chỉ rõ thứ tự thực hiện.
Lưu đồ là một công cụ trực quan để diễn đạt thuật toán. Vì thế, người được hướng dẫn sẽ
dễ thấy dòng chảy của quá trình giải quyết vấn đề, theo dõi được sự phân cấp các trường
hợp và quá trình xử lí của thuật toán
Begin
Bắt đầu thuật toán
Nhập / Xuất
Đúng Đây là thao tác có 2 mũi tên đi ra, một mũi tên thể hiện: khi điều
a>b kiện kiểm tra ĐÚNG thì bước tiếp theo cần làm gì?, mũi tên
còn lại thể hiện: khi điều kiện kiểm traSAI thì bước tiếp theo
Sai cần làm gì?
Trường hợp thực tế, sau khi kiểm tra, điều kiện chỉ có thể là
ĐÚNG hoặc SAI, tức là ta chỉ có 1 hướng đi tiếp. Tuy nhiên, thuật
toán phải đảm bảo có lời giải cho tất cả các trường hợp nên bắt
bưộc phải thiết kế tất cả các hướng đi có thể (tức là lời giải cho
những tình huống khác nhau)
Đây là thao tác đặc biệt trong thiết kế và biểu diễn thuật toán
Ghi chú: mũi tên dùng để kết nối các công việc cũng như thể hiện dòng chảy (thứ tự thực
hiện các thao tác)
14
5. CÁC DẠNG BÀI TOÁN TRONG TIN HỌC
- BÀI TOÁN DẠNG TUẦN TỰ Hiện thực của các bài toán này
- BÀI TOÁN DẠNG RẼ NHÁNH trên máy tính chính là chương
- BÀI TOÁN DẠNG LẶP trình
Các hướng dẫn này có DẠNG TUẦN TỰ, mỗi bước được thực hiện đúng 1 lần và có thứ
tự, thực hiện bước này xong thì đến bước kia, công việc sẽ kết thúc sau khi thực hiện xong
bước cuối cùng. Bài toán dạng tuần tự cũng có cách thực hiện giống như vậy . Chúng ta hãy
cùng xem một số ví dụ
15
1. BÀI TOÁN TÌM VẬN TỐC CỦA MỘT NGƯỜI CHUYỂN ĐỘNG ĐỀU
Hãy thiết kế cách tìm vận tốc của 1 người di chuyển với vận tốc đều trên quãng
đường và thời gian cho trước
NHẬN XÉT: bài toán tin học được phát biểu dưới dạng tổng quát. Nếu như được
viết thành chương trình thì mỗi lần chương trình sẽ chạy với 1 số liệu cụ thể và cho
ra kết quả cụ thể
PHÂN TÍCH:
THIẾT KẾ:
Begin
Nhập s , t
v=s/t
Xuất v
End
16
2. BÀI TOÁN HOÁN ĐỔI GIÁ TRỊ CỦA 2 BIẾN
Tình huống thực tế:Ta có Ly A chứa rượu vang, Ly B chứa bia. Hỏi làm cách nào để Ly A
chứa bia, Ly B chứa rượu vang
Ly A: Ly B:
Phát biểu dưới dạng bài toán Tin học:Hãy thiết kế cách hoán đổi giá trị của 2 số thựca,b
THIẾT KẾ:
Nhập a,b
Xuất a,b
NHẬN XÉT CHUNG: với dạng toán này, thuật toán hoặc cách xử lý chỉ là các thao
tác tuần tự, không phải kiểm tra điều kiện gì (tức là TRÊN LƯU ĐỒ KHÔNG CÓ
THAO TÁC )
17
LUYỆN TẬP
3. Bạn An có 100,000VND. Bạn ấy muốn biết số tiền này có giá trị bằng bao nhiêu
USD. Giả sử hôm nay, tỉ giá 1USD = 23720 VND.
a. Hãy giúp bạn An tính toán nhé
...................................................................................................................................................
b. Hãy phát biểu bài toán trên dưới dạng bài toán trong tin học
...................................................................................................................................................
...................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
18
d. Bạn biết chương trình nào có thể thực hiện tốt bài toán này
.........................................................................................................................................................
.........................................................................................................................................................
e. Quá trình đưa thuật toán cho máy tính giải là gì? Ta phải học gì để làm được
việc đó
.........................................................................................................................................................
.........................................................................................................................................................
4. Hãy đưa ra một ví dụ về 1 quy trình, thủ tục hay hướng dẫn một công việc nào đó
trong thực tế có dạng tuần tự mà có thể dùng sơ đồ để biểu diễn
19
BÀI TOÁN DẠNG RẼ NHÁNH:
Trong thực tế, khi gặp những hoạt động mang tính quy trình,ngoài những hướng dẫn tuần
tự, ta còn được thấy những hướng dẫn mang tính lựa chọn hoặc phân loại. Chúng ta hãy
xem một số ví dụ sau
Các bài toán dạng rẽ nhánh cũng như vậy, vì có nhiều trường hợp phát sinh trong quá trình
giải và ta phải thiết kế lời giải cho tất cả các trường hợp nên quá trình giải phải có bước
kiểm tra và phân loại
20
1. BÀI TOÁN TÌM NGHIỆM CỦA PHƯƠNG TRÌNH AX+B=0
Phát biểu dưới dạng bài toán Toán học:Tìm nghiệm của phương trình 2x-5=0
Phát biểu dưới dạng bài toán Tin học: Tìm nghiệm của phương trình bậc nhất 1 ẩn ax + b =
0 (với a,b là 2 số thực bất kỳ)
Ý TƯỞNG: Hiển nhiên ta có nghiệm x= -b/a, tuy nhiên nếu a=0 thì phân số -b/a không xác
định. Do đó, ta cần phải chia trường hợp
PHÂN TÍCH
- Output: Phương trình vô nghiệm, vô số nghiệmhoặc có một nghiệm thực x thỏa mãn
ax + b = 0
THIẾT KẾ
Nhập a,b
Thông báo: PT vô
số nghiệm
Thông báo:
nghiệm x
Thông báo:
PT vô nghiệm
21
2. BÀI TOÁN KIỂM TRA TAM GIÁC
Tình huống thực tế: Nếu bạn có trong tay ba thanh gỗ thẳng, một thanh dài 30
cm và hai thanh kia chỉ đều chỉ dài 3 cm. Bạn có thể nối chúng thành 1 hình tam
giác được không? Tại sao?
Phát biểu dưới dạng bài toán Tin học: Cho trước 3 số nguyên a,b,c là độ dài 3
thanh gỗ khác nhau. Hãy kiểm tra xem ta có thể nối chúng thành 1 hình tam giác
không?
Ý TƯỞNG:Nếu bất kì một độ dài nào lớn hơn tổng hai độ dài còn lại thì bạn không thể tạo
thành tam giác. Ngược lại, bạn có thể.
PHÂN TÍCH
- Output: YES: lập được 1 tam giác NO: không lập được 1 tam giác
THIẾT KẾ
Nhập a,b,c
Thông báo: NO
22
3. KIỂM TRA SỐ CHÍNH PHƯƠNG
PHÂN TÍCH
- Input:Số tự nhiên N
THIẾT KẾ
Nhập N
Thông báo: N là số
chính phương
NHẬN XÉT:với dạng toán này, thuật toán hoặc cách xử lý có thao tác xét điều kiện, sau đó
dựa vào điều kiện để thưc hiện các bước kế tiếp, tuy nhiên việc xét điều kiện này không tạo
thành chu trình(tức là TRÊN LƯU ĐỒ CÓ THAO NHƯNG Ở TRẠNG THÁI HỞ)
23
LUYỆN TẬP
1.
c. Bạn có nhận ra được sự rẽ nhánh trong lựa chọn ĐĂNG NHẬP trong website
sau không? Giải thích
.............................................................................................................................................
2. Thuật toán cho bài toán trong tin học có những đặc điểm gì?
.............................................................................................................................................
3. Một thuật toán tốt cần đạt những yêu cầu gì?
.............................................................................................................................................
4. Bài toán giả lập phép chia 2 số thực “a/b” là xuất phát điểm của chức năng trên
máy tính CASIO và một số chương trình tính toán khác
a. Hỏi bài toán này có dạng rẽ nhánh không? Giải thích và ví dụ cụ thể
.........................................................................................................................................................
.........................................................................................................................................................
b. Cho ví dụ một số bài toán khác có dạng rẽ nhánh và ứng dụng tương ứng trên máy
tính CASIO hoặc một số chương trình tính toán khác
.........................................................................................................................................................
.........................................................................................................................................................
24
5. Cho biểu giá điện hiện hành
a. Cách tính hiện tại có đang được Tập đoàn Điện lực Việt Nam (EVN) áp
dụng không?
.............................................................................................................................................
c. Bài toán tính tiền điện có sự phân nhánh trong lời giải không? Giải thích bằng
ví dụ cụ thể
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
25
6. Trong thực tế, có một hệ thống tính tiền cũng theo dạng chia cấp như tiền điện. Em
hãy cho biết tên
.............................................................................................................................................
7. Hãy đưa ra một ví dụ về 1 quy trình, thủ tục hay hướng dẫn một công việc nào đó
trong thực tế có dạng rẽ nhánh mà có thể dùng sơ đồ để biểu diễn
26
BÀI TOÁN DẠNGLẶP:
Thực tế, trong một số quy trình có thể có chu trình (vòng lặp). Đó là khi một số bước thỏa
hoặc không thỏa một điều kiện nào đó buộc phải lặp lại. Chúng ta hãy xem một số ví dụ sau
Như vậy, giữa bước 1 (yêu cầu kê khai) và bước 2 (kiểm tra thông tin kê khai) có tồn tại 1
chu trình (vòng lặp), người thiết kế bắt buộc phải nhìn thấy nó và đưa vào bản hướng dẫn,
còn thực tế, tùy vào trường hợp cụ thể mà chu trình này được thực hiện 1 lần (cho người
khai đúng yêu cầu ngay từ lần đầu tiên) hoặc nhiều lần (cho người khai không đúng yêu
cầu), anh ta phải khai cho đến khi đúng yêu cầu mới được thực hiện các bước sau đó
27
QUY TRÌNH THIẾT KẾ WEBSITE
Như vậy, giữa bước 4 và bước 5 có tồn tại chu trình, nếu khách hàng còn tiếp tục yêu cầu
chỉnh sửa thì công ty phải tiếp tục chỉnh sửa phần lập trình web và xuất bản có khách hàng
xem thử. Trên bảng hướng dẫn ta thấy giữa 2 bước này có mũi tên quay lại tạo thành 1
vòng khép kín (điều này cũng giống như vòng lặp trong thiết kế thuật toán).
Các bài toán dạng vòng lặp trong Tin học cũng có chu trình. Chúng ta hãy cùng nhận ra nó
trong một số bài toán mẫu dưới đây
28
1. BÀI TOÁN MAX/MIN
Đây là 1 bài toán mang tính thống kê, thường được dùng để xét kết quả cao nhất/ thấp nhất
trong 1 kỳ thi hoặc 1 trò chơi, 1 cuộc bầu cử,…Tức là ta có trong tay rất nhiều số liệu và làm
cách nào để tìm ra số liệu max/min
Ví dụ 1:
Ví dụ 2:
Tóm tắt kết quả bầu cử tổng thống Pháp ngày 23 tháng 4 và 7 tháng 5 năm 2017
Vòng 1 Vòng 2
Ứng viên Đảng
Số phiếu % Số phiếu %
Emmanuel
Tiến bước! EM 8.656.346 24.01% 20.753.798 66.10%
Macron
Marine Le Pen Mặt trận Quốc gia FN 7.678.491 21.30% 10.644.118 33.90%
Jean-Luc
La France insoumise FI 7.059.951 19.58%
Mélenchon
Nicolas
Dupont- Debout la France DLF 1.695.000 4.70%
Aignan
Philippe
Đảng Tân Phản Tư bản NPA 394.505 1.09%
Poutou
Kết quả cuối cùng:
François Emmanuel Macron đắc cử
Liên minh Cộng hoà vì Nhân dân UPR 332.547 0.92%
Asselineau Tổng thống Pháp với số
phiếu bầu hợp lệ cao nhất
Nathalie ở cả 2 vòng
Lutte Ouvrière LO 232.384 0.64%
Arthaud
Jacques
Đoàn kết và Tiến bộ S&P 65.586 0.18%
Cheminade
PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ). Hãy tìm giá trị lớn nhất trong dãy và cho
biết vị trí của nó (nếu có nhiều giá trị trùng nhau và cùng là lớn nhất thì lấy giá trị đầu tiên)
29
Ý TƯỞNG:
Ý tưởng 1: Nếu danh sách giá trị được sắp
xếp giảm dần như bảng tóm tắt trên thì quá dễ,
như vậy ta phải làm bài toán sắp xếp, mà bài toán
sắp xếp lại khó hơn rất nhiều so với bài toán tìm
max/min ý tưởng này không tốt
xét giá trị a 1tìm max của dãy có 1 phần tử a 1 max=a 1, vt=1;
xét tiếp a 2 tìm max của dãy có 2 phần tử là a 1 , a2
nếu a 2>max (tức là a 2 lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a 2, vt=2
nếu a 3>max (tức là a 3 lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a 3, vt=3
………..
xét tiếp a N tìm max của dãy có N phần tử là a 1 , a2 , a3 , … , a N
nếu a N >max (tức là a N lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a N , vt=N
Vậy là từ việc liên tiếp tìm max cục bộ của các dãy con, đến bước cuối cùng ta có
max cục bộ chính là max toàn cục và đó chính là kết quả bài toán ý tưởng này tốt
30
PHÂN TÍCH
- Output: max (giá trị lớn nhất dãy),vt (vị trí của giá trị max)
THIẾT KẾ
Begin
Max = a1
vt =1
S(i>N)
i <=N
Đ
Xuất ra Max , vt
ai >Max
S(ai >Max)
Đ
Max = ai End
vt = i
i=i+1
31
LUYỆN TẬP
1. Khoanh tròn tên quốc gia có nhiều thí sinh tham gia cuộc thi Bebras nhất
32
2. Nhận diện thuật toán TÌM MAX trong website sau
.........................................................................................................................................................
.........................................................................................................................................................
33
3. Ở trường, những chú hải ly phải giải những bài toán khó bằng sơ đồ khối. Họ bắt đầu
từ Start! Và làm theo chỉ dẫn:
Nếu bắt đầu bằng số 18, đáp án cuối cùng là số bao nhiêu?
A. 1
B. 2
C. 3
D. 4
4. Cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị lần lượt là
6
a 1 , a2 , a3 , … , a N v ớ i0 ≤ ai ≤ 10 ( 1≤ i≤ N ). HÃY TÌM GIÁ TRỊ NHỎ NHẤT TRONG DÃY VÀ
CHO BIẾT VỊ TRÍ CỦA NÓ (nếu có nhiều giá trị trùng nhau và cùng là lớn nhất thì lấy
giá trị đầu tiên)
34
2. BÀI TOÁN SẮP XẾP
Sắp xếp là quá trình bố trí lại các phần tử trong một tập hợp theo một trình tự nào đó nhằm
mục đích giúp quản lý và tìm kiếm các phần tử dễ dàng và nhanh chóng hơn. Điển hình nhất
trong thực tế là các ứng dụng quản lý danh bạ điện thoại thì có sắp xếp theo số, theo tên.
Quản lý học sinh thì có sắp xếp theo điểm, theo lớp, theo trường, ... Như vậy có rất nhiều
mục đích cần phải sắp xếp các phần tử theo trình tự.
Trong khoa học máy tính và trong toán học, bài toán sắp xếp đã được nhiều nhà khoa học
quan tâm, từ đó ta có khá nhiều thuật toán sắp xếp các phần tử của một danh sách (hoặc
một mảng) theo thứ tự (tăng hoặc giảm). Và để dễ dàng cho việc nghiên cứu và học tập thì
người ta thường gán các phần tử được sắp xếp là các giá trị số.
Trong tài liệu này, tác giả giới thiệu thuật toán Sắp xếp chọn. Đây là một thuật toán sắp
xếp đơn giản, dựa trên việc so sánh tại chỗ.
35
PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ). Hãy sắp xếp dãy số theo thứ tự không
giảm của các giá trị
Ý TƯỞNG: Chọn phần tử lớn thứ i(1 ≤i ≤ N ) và đưa về vị trí thứi(1 ≤i ≤ N ) của dãy
DIỄN GIẢI:
Chọn phần tử nhỏ nhất trong dãy N phần tử ban đầu gồm a 1 , a2 , a3 , … , a N , đưa phần
tử này về vị trí số 1. Sau đó không quan tâm đến vị trí số 1 nữa
Chọn phần tử nhỏ nhất trong dãy N-1 phần tử gồm a 2 , a3 , … , a N , đưa phần tử này về
vị trí số 2. Sau đó không quan tâm đến vị trí số 2 nữa
Chọn phần tử nhỏ nhất trong dãy N-2 phần tử gồm a 3 , … , a N , đưa phần tử này về vị
trí số 3. Sau đó không quan tâm đến vị trí số 3 nữa
……………….
36
Chọn phần tử nhỏ nhất trong dãy 2 phần tử gồm a N −1 , a N , đưa phần tử này về vị trí
số N-1. Sau đó không quan tâm đến vị trí số N-1 nữa
PHÂN TÍCH
- Output: dãy a 1 , a2 , a3 , … , a N đã được sắp xếp theo thứ tự không giảm của các giá trị
THIẾT KẾ
Begin
i=1
Tìm vtmin là vị trí giá trị nhỏ nhất trong dãy p/tử từ ai …aN
Đ
i=i+1 i <=N-1
S (i>N-1)
End
XÁC ĐỊNH 2 THUẬT TOÁN ĐÃ HỌC ĐƯỢC SỬ DỤNG TRONG THUẬT TOÁN SẮP XẾP
.........................................................................................................................................................
LUYỆN TẬP
37
1.
d. Có cần thuật toán sắp xếp cho mỗi loại ƯU TIÊN XEM không?
.............................................................................................................................................
e. Mỗi loại lựa chọn trong phần ƯU TIÊN XEM dựa vào điều kiện gì trong quá
trình sắp xếp
.............................................................................................................................................
2. Cho biết tên 5 ứng dụng hoặc tên website có áp dụng thuật toán sắp xếp trong các
chức năng của mình
.........................................................................................................................................................
.........................................................................................................................................................
3. Cho ví dụ về các cách thức sắp xếp file/folder trong hệ điều hành Windows
.........................................................................................................................................................
38
Tìm kiếm là quá trình tìm một phần tử nằm trong một tập hợp nhiều phần tử dựa vào một
miêu tả nào đó.
Ví dụ bạn cần tìm tờ 20,000VNĐ trong một đống tiền từ 500VNĐ đến 500,00VNĐ thì quá
trình đó ta gọi là tìm kiếm.
Nếu một tập hợp đã được sắp xếp thì quá trình tìm kiếm trong tập hợp đó sẽ nhanh hơn.
Nhưng nếu đó là một đống tiền lộn xộn thì bạn sẽ mất nhiều thời gian hơn để tìm kiếm
Vậy thuật toán tìm kiếm là thuật toán dùng để tìm kiếm phần tử trong một danh sách cho
trước theo một tiêu chí nhất định. Chúng ta thường sử dụng hai thuật toán đó là
Thuật toán tìm kiếm tuần tự cho 1 danh sách chưa có thứ tự
Thuật toán tìm kiếm nhị phân cho 1 danh sách có thứ tự
39
a. Thuật toán tìm kiếm tuần tự (Sequential Search)
PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ) và số nguyên dương k. Hãy tìm k trong
danh sách, nếu có cho biết vị trí xuất hiện. Nếu không thì xuất thông báo tương ứng
DIỄN GIẢI THUẬT TOÁN: Tìm kiếm tuần tự được thực hiện
một cách tự nhiên.
tìm thấy là 1
Nếu còn tiếp tục thì xét a 2, ta so sánh nếu a 2=k thì dừng
và xuất vị trí tìm thấy là 2
…..
Tương tự: Ý tưởng tìm cây kim trong
Nếu còn tiếp tục thì xét a N , ta so sánh nếu a N =k thì đống rơm của Thomas Edison “trong khi
chưa nghĩ ra được một cách thật hay thì
dừng và xuất vị trí tìm thấy là N
cứ việc rút từng cọng rơm cho đến khi rút
Sau khi xét xong a N mà chưa có kết luận gì tức là không được cây kim”.
tìm thấy k. Ta dừng và thông báo “Không tìm thấy giá trị = k trong dãy số”
PHÂN TÍCH
- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000) và số nguyên k;
6
các giá trị nguyên dương lần lượt là a 1 , a2 , a3 , … , a N với 0< ai ≤ 10 (1 ≤ i≤ N)
- Output: Chỉ số i mà a i=k (1 ≤ i≤ N ) hoặc thông báo “không có giá trị nào của dãy A có giá
trị bằng k”
40
THIẾT KẾ
Đưa ra i
k = 2 và N = 10 k = 6 và N = 10
A 5 7 1 4 2 9 8 11 25 51 A 5 7 1 4 2 9 8 11 25 51
i 1 2 3 4 5 - - - - - i 1 2 3 4 5 6 7 8 9 10 11
41
b. Thuật toán tìm kiếm nhị phân (Binary Search)
Thuật toán tìm kiếm nhị phân dùng để tìm kiếm phần tử trong một danh sách đã được sắp
xếp,
Ví dụ: Trong một danh bạ điện thoại sắp xếp theo tên, có thể tìm kiếm số điện thoại của một
người theo tên người đó.
Trong một cuốn từ điển đã được sắp xếp theo từ, ta có thể tìm nhanh 1 từ nào đó
Thuật toán tìm kiếm nhị phân chạy nhanh hơn tìm kiếm tuần tự nhưng cũng có một số
nhược điểm. Nếu nội dung danh sách bị thay đổi thì danh sách phải được sắp xếp lại trước
khi sử dụng tìm kiếm nhị phân. Thao tác này thường tốn nhiều thời gian.
PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (0 ≤i ≤ N −1) và được sắp xếp tăng dần. Hãy tìm k
trong danh sách, nếu có cho biết vị trí xuất hiện. Nếu không thì xuất thông báo tương ứng
Ý TƯỞNG
Trong mỗi bước, so sánh phần tử cần tìm với phần tử nằm ở chính giữa danh sách.
Nếu hai phần tử bằng nhau thì phép tìm kiếm thành công và thuật toán kết thúc.
Nếu chúng không bằng nhau thì tùy vào phần tử nào lớn hơn, thuật toán lặp lại bước
so sánh trên với nửa đầu hoặc nửa sau của danh sách.
42
DIỄN GIẢI:
Giả sử ta có dãy A như sau N=11 các giá trị trong dãy ở các vị trí từ 010
Khi so sánh giữa key và A[mid], ta có key> A[mid] thì giá trị cần tìm là dãy con nằm sau vị trí
mid
Do đó, ta chỉ cần tìm tiếp trong dãy con sau mid mà thôi. Ta cập nhật lại left=mid+1, right
không thay đổi, mid=⌊ (¿¿)/2 ⌋
Tiếp tục so sánh giữa key và A[mid], ta có key< A[mid] thì giá trị cần tìm là dãy con nằm
trước vị trí mid
Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở trước vị trí mid. Ta cập nhật lại
left không thay đổi, right=mid-1, mid=⌊ (¿¿)/2 ⌋
43
Tiếp tục so sánh giữa key và A[mid], ta có key> A[mid] thì giá trị cần tìm là dãy con nằm sau
vị trí mid
Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở sau vị trí mid. Ta cập nhật lại
¿
left = mid +1, right không thay đổi,mid=⌊ ¿ ¿ 2 ⌋
Tiếp tục so sánh giữa key và A[mid], ta có key= A[mid] thì giá trị cần tìm là A[mid] và ta xuất
ra vị trí mid
44
Trường hợp không tìm thấy: dãy số trên nhưng key=21
Thực hiện tương tự các bước như trên đến thời điểm
Tiếp tục so sánh giữa key và A[mid], ta có key< A[mid] thì giá trị cần tìm là dãy con nằm
trước vị trí mid. Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở trước vị trí
mid. Ta cập nhật lại left không thay đổi, right=mid-1, mid=⌊ (¿¿)/2 ⌋
Với trường hợp này, ta thấy right<left là vô lý. Mặt khác, nhìn trên hình vẽ ta thấy right đã
trỏ tới những giá trị không thể xét. Do đó, ta kết luận là “không tìm thấy key trong dãy”
NHẬN XÉT: Sau mỗi bước so sánh giữa key và A[mid], dãy đang xét bị chặt đôi để chuẩn bị
cho lần so sánh tiếp theo. Điều này khiến việc tìm kiếm rất nhanh nhưng chỉ thực hiện được
khi dãy đã cho có thứ tự
PHÂN TÍCH
- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000) và số nguyên key;
6
các giá trị nguyên dương lần lượt là a 0 , a 1 , a2 , a3 , … , a N−1 với 0< ai ≤ 10 (0 ≤ i≤ N−1)
- Output: Chỉ số i mà a i=k (0≤ i ≤ N −1) hoặc thông báo “không có giá trị nào của dãy A có
giá trị bằng k”
45
THIẾT KẾ
Begin
left = 1; right = N
Đ
Đ
Đ
left <= right
S(left>right)
End
46
LUYỆN TẬP
1.
d. Trong các website hoặc ứng dụng, chức năng tìm kiếm thường được đi kèm
với chức năng gì?
.............................................................................................................................................
2. Cho biết tên 5 ứng dụng hoặc tên website có áp dụng thuật toán tìm kiếm và sắp xếp
trong các chức năng của mình
.........................................................................................................................................................
47
TÀI LIỆU THAM KHẢO
1. Tạ Viết Quý (2016). Tài liệu dạy-học Tin học 8. Nhà Xuất bản Giáo dục
4. Báo PC WORLD
48
NHỮNG CÔNG NGHỆ ĐỘT PHÁ SẼ THAY ĐỔI CÁCH SỐNG
VÀ LÀM VIỆC
Đức Phát (Theo Technologyreview)
21/04/2020 07:00
Đó là những công nghệ vượt bậc hằng năm, do tạp chí MIT Technology
Review bình chọn. Tiêu chí bình chọn của MIT không phải là công nghệ “mì
ăn liền” mà là những đột phá sẽ thực sự thay đổi cách chúng ta sống và làm
việc trong tương lai.
Trong vài năm qua, các nhà khoa học đã tìm cách truyền các photon qua cáp quang
theo cách bảo vệ tuyệt đối thông tin mã hóa trong chúng. Một nhóm nghiên cứu ở
Trung Quốc đã sử dụng công nghệ để xây dựng đường trục mạng dài 2.000 km giữa
Bắc Kinh và Thượng Hải, nhưng dự án đó phụ thuộc một phần vào các yếu tố máy
tính cổ điển trước đây, thỉnh thoảng phá vỡ liên kết lượng tử mà chưa thiết lập một
liên kết lượng tử hoàn toàn nên vẫn có nguy cơ bị hack.
49
Ngược lại, mạng Delft sẽ là nơi đầu tiên truyền thông tin giữa các thành phố bằng
cách sử dụng các kỹ thuật lượng tử từ đầu đến cuối. Công nghệ dựa trên một hành vi
lượng tử của các hạt nguyên tử gọi là sự xoắn. Các photon xoắn không thể bị đọc lén
mà không dẫn tới phá vỡ nội dung của chúng.
Nhưng rất khó tạo ra các hạt xoắn, và việc truyền thông tin đi xa vẫn là một thách
thức. Nhóm của Wehner đã chứng minh nó có thể truyền hơn 1,5km (0.93 dặm). Họ
tự tin có thể thiết lập một liên kết lượng tử giữa hai thành phố Deft và Hague vào
cuối năm nay. Đảm bảo kết nối không bị gián đoạn trong những khoảng cách lớn hơn
sẽ phải yêu cầu các bộ lặp lượng tử mở rộng mạng.
“Các bộ lặp như vậy hiện đang được thiết kế tại Delft và các nơi khác”, Wehner nói,
“các bước đầu tiên cần được hoàn thành trong năm đến sáu năm tới, dự kiến là một
mạng lưới lượng tử toàn cầu sẽ được hoàn thiện vào cuối thập kỷ này”.
Nhưng điều đó sắp thay đổi, nhờ vào các nhóm thuốc mới có thể được điều chỉnh
theo gene của một người. Nếu một căn bệnh cực kỳ hiếm gặp là do một lỗi DNA cụ
thể thì hiện nay ít nhất là họ có một cơ hội chiến đấu để sửa chữa lỗi di truyền.
Một trường hợp bệnh hiếm gặp như vậy là Mila Makovec, một cô bé mắc phải căn
bệnh rất hiếm gặp do đột biến gene, nhưng cô bé cuối cùng cũng đã có thuốc điều trị
cho riêng mình. Trường hợp của cô bé được đăng trên tạp chí dược phẩm Anh
50
(England Journal of Medicine) vào tháng 10, sau khi các bác sĩ đi từ quá trình đọc lỗi
di truyền sang điều trị cho cô bé chỉ trong vòng 1 năm. Họ gọi nó là thuốc Milasen,
dựa theo tên của cô.
Mặc dù việc điều trị đã không chữa khỏi hoàn toàn cho Mila. Nhưng thuốc đã giúp ổn
định tình trạng bệnh của cô bé: làm giảm các cơn co giật và giúp Mila bắt đầu đứng
và đi lại nếu có người hỗ trợ.
Với trường hợp của Mila, các nhà khoa học đã tạo ra một thuốc gene chưa bao giờ
nhanh đến thế và cũng chưa từng có cơ hội làm tốt như vậy. Các loại thuốc mới có
thể là hình thức thay thế gene, sửa chữa gene, hoặc antisense (loại thuốc mà Mila
nhận được), giúp xóa và sửa chữa các thông tin di truyền sai lệch.
Có bao nhiêu câu chuyện như của Mila? Cho đến nay, chỉ có một số rất ít. Nhưng
trong tương lai sẽ phổ biến hơn. Những trường hợp ngày mà trước các nhà khoa học
đành bó tay không thể làm gì thì hiện nay đã tìm ra những giải pháp thông qua quá
trình phân tích DNA.
Tuy nhiên, thách thức thực sự đối với các phương pháp điều trị này là thử nghiệm
lâm sàng trong đó bệnh nhân là toàn bộ thử nghiệm - là họ đang phải vượt qua quan
niệm trước đây về cách phát triển, thử nghiệm và bán dược phẩm. Đó là, ai sẽ trả
tiền cho những loại thuốc này khi họ
chỉ giúp cho một cá nhân nhưng vẫn
chưa có một mô hình nào thiết kế
và sản xuất đại trà?
3. Tiền kỹ thuật số
Các nhà lãnh đạo Trung Quốc dường như nhìn thấy Libra, được hỗ trợ bởi một khoản
dự trữ sẽ chủ yếu là đồng USD, như một mối đe dọa: nó có thể củng cố quyền lực
không cân xứng của Mỹ đối với hệ thống tài chính toàn cầu, xuất phát từ đồng USD
có vai trò là đồng tiền dự trữ thực tế của thế giới.
Bây giờ Libra của Facebook đã trở thành một đồng tiền kỹ thuật số địa chính trị. Vào
tháng 10, CEO Mark Zuckerberg đã hứa với Quốc hội rằng Libra “ sẽ mở rộng khả
năng lãnh đạo tài chính của Mỹ cũng như các giá trị dân chủ và sự giám sát trên
khắp thế giới”. Cuộc chiến tiền kỹ thuật số thực sự đã bắt đầu.
Vào tháng 6, Unity Biotechnology có trụ sở tại San Francisco, đã báo cáo kết quả ban
đầu ở những bệnh nhân bị thoái hóa khớp từ nhẹ đến nặng ở đầu gối. Kết quả từ một
thử nghiệm lâm sàng lớn hơn dự kiến vào nửa cuối năm 2020. Công ty cũng đang
52
phát triển các loại thuốc tương tự để điều trị các bệnh liên quan đến tuổi của mắt và
phổi, trong số các tình trạng khác.
Senolytics hiện đang trong các thử nghiệm ở người, cùng với một số phương pháp
hứa hẹn khác nhắm vào các quá trình sinh học nằm ở gốc rễ của lão hóa và các bệnh
khác nhau.
Một công ty có tên là Alkahest tiêm cho bệnh nhân những thành phần có trong máu
của người trẻ và nói rằng họ hy vọng sẽ ngăn chặn sự suy giảm nhận thức và chức
năng ở những bệnh nhân mắc bệnh Alzheimer nhẹ đến trung bình. Công ty cũng có
thuốc điều trị bệnh Parkinson và chứng mất trí nhớ trong thử nghiệm ở người.
Và vào tháng 12, các nhà nghiên cứu tại Đại học Y khoa Drexel thậm chí đã thử xem
liệu một loại kem trong đó có thuốc ức chế miễn dịch rapamycin liệu có thể làm
chậm lão hóa ở da người hay không.
Các xét nghiệm phản ánh các nỗ lực phát triển của các nhà nghiên cứu để tìm hiểu
xem có phải nhiều bệnh liên quan đến việc già đi như bệnh tim, viêm khớp, ung thư
và chứng mất trí nhớ có thể bị hack để trì
hoãn sự khởi phát của nó hay không.
Bây giờ các công cụ học máy có thể khám phá cơ sở dữ liệu lớn của các phân tử hiện
có và các thuộc tính của chúng, sử dụng thông tin để tạo ra các khả năng mới. Điều
này có thể làm cho nó nhanh hơn và rẻ hơn để khám phá các ứng cử viên mới.
Vào tháng 9, một nhóm các nhà nghiên cứu tại Insilico Medicine có trụ sở tại Hồng
Kông và Đại học Toronto đã có một bước tiến đầy thuyết phục để chỉ ra rằng chiến
53
lược này hoạt động bằng cách tổng hợp một số ứng cử viên thuốc được tìm thấy
bằng thuật toán AI.
Sử dụng các kỹ thuật như deep learning (giải quyết các vấn đề liên quan đến mạng
thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói ,…) và
mô hình thế hệ tương tự như mô hình cho phép máy tính đánh bại nhà vô địch thế
giới trong trò chơi cổ xưa của Go, các nhà nghiên cứu đã xác định được khoảng
30.000 phân tử mới có đặc tính mong muốn. Họ đã chọn sáu phân tử để tổng hợp và
kiểm tra. Một trong số đặc biệt tích cực và tỏ ra đầy hứa hẹn trong các thử nghiệm
trên động vật.
Các nhà hóa học trong khám phá thuốc thường mơ về các phân tử mới. Đây là một
kỹ năng nghệ thuật được mài giũa bởi nhiều năm kinh nghiệm và, trong số những
người giỏi nhất, bằng một trực giác nhạy bén. Bây giờ các nhà khoa học có một công
cụ mới để mở rộng trí tưởng tượng của họ.
Bây giờ chúng ta có thể đủ khả năng xây dựng, phóng và vận hành hàng chục ngàn
vệ tinh trên quỹ đạo cùng một lúc.
Trong kỷ nguyên tàu con thoi, phóng một vệ tinh vào vũ trụ có giá khoảng 24.800
USD mỗi pound. Một vệ tinh liên lạc nhỏ nặng bốn tấn đi vào quỹ đạo có giá gần 200
triệu USD. Ngày nay, một vệ tinh SpaceX Starlink nặng khoảng 500 pounds (227
kg). Một chiếc tên lửa SpaceX Falcon 9 để mang theo vệ tinh vào vũ trụ có giá chỉ
khoảng 1.240 USD mỗi pound, có thể mang theo cả chục vệ tinh mỗi lần phóng.
Chỉ riêng năm ngoái đã có 120 vệ tinh Starlink được phóng vào quỹ đạo vào năm
ngoái, công ty SpaceX đã có kế hoạch ra mắt lô 60 vệ tinh cứ mỗi hai tuần kể từ
tháng 1 năm 2020. OneWeb sẽ ra mắt hơn 30 vệ tinh vào cuối năm nay. Chúng ta có
54
thể sớm thấy được hàng ngàn vệ tinh hoạt động song song để cung cấp truy cập
internet cho cả những người nghèo nhất và xa nhất trên hành tinh này.
Tuy nhiên, một số nhà khoa học đang lo ngại bởi vì những vật thể này sẽ làm ảnh
hưởng tới nghiên cứu thiên văn học. Tồi tệ hơn, viễn cảnh một vụ va chạm có thể tạo
ra hàng triệu mảnh vụn không gian. Starlink suýt mất 1 vệ tinh thời tiết vào tháng 9
là một lời cảnh báo rằng thế giới đang thiếu sự chuẩn bị để quản lý các phương tiện
trên quỹ đạo này. Cách quản lý những chòm sao vệ tinh khổng lồ trong thập kỷ này
sẽ tác động đến tương lai của không gian quỹ đạo.
7. Ưu thế lượng tử
Bản demo của Google hoàn toàn là một ý tưởng thử nghiệm – tính những tổng ngẫu
nhiên trên máy tính và đưa ra các kết quả đúng. Mục tiêu bây giờ là xây dựng các
máy có đủ qubit để giải quyết các vấn đề hữu ích. Đây là một thách thức khó đạt
55
được: càng có nhiều qubit, càng khó duy trì sự tinh tế của trạng thái lượng tử. Các kỹ
sư của Google tin rằng cách tiếp cận họ đang làm có thể đạt được từ 100 đến 1.000
qubit, đủ để làm một việc gì đó hữu ích, nhưng không ai chắc chắn điều gì.
Hơn thế nữa, các máy có thể bẻ khóa mật mã học ngày nay sẽ cần hàng triệu qubit;
có lẽ sẽ mất nhiều thập kỷ đạt được đến đó. Nhưng một trong những ứng dụng tiềm
năng là có thể mô hình hóa các phân tử dễ dàng hơn để xây dựng các mô hình phân
tử thuốc.
Tháng 5 năm ngoái, Google đã thông báo rằng giờ đây họ có thể chạy Google
Assistant trên điện thoại của người dùng mà không cần gửi yêu cầu đến máy chủ từ
xa. Kể từ iOS 13, Apple chạy các khả năng nhận dạng giọng nói của Siri và bàn phím
QuickType cục bộ của họ trên iPhone. IBM và Amazon hiện cũng cung cấp các nền
tảng dành cho nhà phát triển để tạo và triển khai AI tí hon.
Tất cả điều đó có thể mang lại nhiều lợi ích. Các dịch vụ hiện có như trợ lý giọng nói,
tự động sửa lỗi và máy ảnh kỹ thuật số sẽ trở nên tốt hơn và nhanh hơn mà không
cần phải ping đám mây mỗi khi chúng cần truy cập vào mô hình deep-learning. AI tí
hon cũng sẽ tạo ra các ứng dụng mới, như phân tích hình ảnh y tế dựa trên thiết bị
56
di động hoặc xe tự lái với thời gian phản ứng nhanh hơn. Cuối cùng, AI được nội địa
hóa tốt hơn cho quyền riêng tư, vì dữ liệu của bạn không còn cần phải xuất khỏi thiết
bị của bạn để cải thiện một dịch vụ hoặc tính năng.
Nhưng khi lợi ích của AI bị chi phối, thì đó cũng chính là thách thức của nó. Việc
chống lại các hệ thống giám sát hoặc video deepfake trở nên khó khăn hơn, chẳng
hạn, các thuật toán nhận thức cũng có thể sinh sôi nảy nở. Các nhà nghiên cứu, kỹ
sư và nhà hoạch định chính sách cần phải hợp tác ngay bây giờ để phát triển kiểm
tra kỹ thuật và chính sách về những tác hại tiềm tàng này.
Nhưng vẫn có những mánh khóe để có thể làm lộ những thông tin ẩn danh này, đặc
biệt là nếu dữ liệu điều tra dân số được kết hợp với các số liệu thống kê công khai
khác.
Vì vậy, Cục điều tra dân số đã đưa một thuật toán để tạo ra những thông tin nhiễu
vào dữ liệu. Thông tin nhiễu này có thể là thay đổi độ tuổi của người được điều tra,
hoặc gán cho một số người da trắng thành người da đen và ngược lại, trong khi vẫn
giữ tổng số của từng độ tuổi hoặc nhóm dân tộc như nhau. Thao tác càng gây nhiễu
thì càng khó lộ danh tính.
Thuật toán Differential privacy là một kỹ thuật toán học làm cho quy trình này trở
nên nghiêm ngặt bằng cách khiến mức độ bảo mật tăng lên khi thêm nhiễu. Phương
pháp này đã được Apple và Facebook sử dụng để thu thập dữ liệu tổng hợp mà
không xác định người dùng cụ thể.
Nếu mọi việc suôn sẻ, phương pháp có thể sẽ được các cơ quan điều tra liên bang
khác hoặc các nước khác sử dụng. Các quốc gia khác như Canada và Vương quốc
Anh cũng đang theo dõi để ứng dụng thuật toán này.
57
10. Các thuộc tính của biến đổi khí hậu
Chỉ một thập kỷ trước đây, chúng ta vẫn không thể tìm ra mối quan hệ chính xác
giữa các hiện tượng thời tiết này với biến đổi khí hậu. Nhưng trong vài năm trở lại
đây, các nhà khoa học đã có thể tìm ra mối liên hệ của bất kỳ sự kiện thời tiết cụ thể
nào với biến đổi khí hậu. Nhiều nghiên cứu thuộc tính thời tiết cực đoan hơn đã được
thực hiện trong vài năm qua, các công cụ và kỹ thuật cải tiến nhanh chóng đã khiến
chúng trở nên đáng tin cậy và thuyết phục hơn.
Để làm được điều này, giới khoa học khí hậu và khí tượng đã ứng dụng rất nhiều
công nghệ hiện đại khác nhau. Cụ thể, bản ghi kéo dài của dữ liệu vệ tinh chi tiết
đang giúp chúng ta hiểu các hệ thống tự nhiên. Ngoài ra, sức mạnh tính toán tăng
lên có nghĩa là các nhà khoa học có thể tạo ra các mô phỏng có độ phân giải cao hơn
và thực hiện nhiều thí nghiệm ảo hơn. Những điều này và những cải tiến khác đã cho
phép các nhà khoa học tuyên bố sự chắc chắn về mặt thống kê ngày càng tăng rằng:
sự nóng lên toàn cầu thường thúc đẩy các sự kiện thời tiết nguy hiểm hơn.
Bằng cách giải quyết vai trò của biến đổi khí hậu từ các yếu tố khác, các nghiên cứu
đang cho chúng ta biết những loại rủi ro nào mà chúng ta cần chuẩn bị đối phó, bao
gồm có bao nhiêu trận lũ lụt hay bao nhiêu đợt nắng nóng nghiêm trọng sẽ khiến
tình trạng nóng lên toàn cầu trở nên tồi tệ hơn. Nếu chúng ta biết lắng nghe, chúng
có thể giúp chúng ta hiểu cách xây dựng lại các thành phố và cơ sở hạ tầng cho một
thế giới thay đổi khí hậu
58
TỪ THẦN QUYỀN ĐẾN THUẬT TOÁN: AI ĐANG KIỂM SOÁT
CHÚNG TA?
19:00 23/01/2020
LỊCH SỬ QUYỀN LỰC LOÀI NGƯỜI NHÌN THEO TRỤC DỌC LÀ MỘT QUÁ TRÌNH VẬN ĐỘNG
TỪ THẦN QUYỀN, THẾ QUYỀN ĐẾN DÂN QUYỀN. NHƯNG, NHỮNG NĂM ĐẦU TIÊN CỦA THẾ
KỶ 21 CÓ THỂ SẼ LÀ SỰ KHỞI ĐẦU CHO MỘT MẪU QUYỀN LỰC THỨ 4, KHÁC HẲN VỀ
CHẤT SO VỚI 3 MẪU QUYỀN LỰC ĐẦU TIÊN: QUYỀN LỰC CỦA THUẬT TOÁN.
Thần quyền, loại quyền lực sơ khai nhất xuất hiện từ những thuở bình minh của lịch sử loài
người và vẫn có ít nhiều ảnh hưởng đến một bộ phận nào đó các tín đồ tôn giáo trong đời
sống nhân loại hôm nay. Tin vào sức mạnh huyền bí của một cái cây, một ngọn lửa, một
tiếng sấm, đấy là biểu hiện của thần quyền.
Làm theo những chỉ dẫn của một giáo chủ, một giáo hội, một tăng đoàn, đấy là biểu hiện của
thần quyền. Xã hội trung cổ phương Đông lẫn phương Tây đều đặc biệt tôn thờ loại hình
quyền lực này. Nhưng, bên cạnh thần quyền còn là thế quyền, biểu hiện ở uy lực của lãnh
chúa và sau đó là tầng lớp quý tộc phong kiến.
Trong nhiều trường hợp, thế quyền tựa vào thần quyền, trong những trường hợp đặc biệt
nào đó thì thế quyền vượt mặt thần quyền, chứng tỏ vai trò độc nhất vô nhị của mình trong
xã hội. Khi Napoleon mời đức Giáo hoàng đến sắc phong ngôi vị cho mình thì đấy là khi thế
quyền tựa vào thần quyền. Nhưng, khi Napoleon chủ động giật cái vương miện trên tay đức
Giáo hoàng để tự đội lên đầu mình (chứ không chờ Giáo hoàng đội nó lên đầu một tân
vương như thông lệ) thì đấy là khi “thế quyền” không còn coi “thần quyền” ra gì nữa.
Phải đến khi xã hội phong kiến được thay thế bằng xã hội dân chủ thì quyền lực thật sự mới
thuộc về người dân. Các tổ chức nhà nước lúc này (cũng có thể coi là biểu hiện của “thế
quyền” kiểu mới) thực chất là những đối tượng đại diện cho nhân dân trong việc tạo ra các
chính sách mà xét về lý thuyết là để phục vụ một cách tốt nhất đời sống của nhân dân. Nhà
nước nào không làm được điều này sẽ lập tức bị nhân dân thay thế bằng nhà nước khác.
Như vậy, nếu thần quyền thuộc về một cõi siêu nhiên vô hình nào đó thì thế quyền và dân
quyền lại thuộc về con người với những biểu hiện cụ thể nhất quán, ai cũng thấy. Vì vậy, có
thể nói rằng lịch sử quyền lực loài người xét theo trục dọc là một lịch sử đi từ cái vô hình đến
cái hữu hình, từ cái thiêng liêng đến cái gần gũi, từ cái mơ hồ đến cái cụ thể.
Tuy nhiên, loại hình quyền lực thứ 4 đang manh nha xuất hiện trong những thập niên đầu
tiên của thế kỷ 21 - quyền lực thuật toán thì có vẻ lại vừa mơ hồ vừa cụ thể, vừa như “không
59
có gì”, vừa như “có tất cả”. Bây giờ hiếm có thể tìm được những vận động xã hội vượt thoát
khỏi tầm kiểm soát của các thuật toán.
Hằng ngày bạn có vào Internet không? Có! Vậy thì các thuật toán trên Internet sẽ theo dõi
bạn. Bạn có xu hướng xem những trang web nào, thuật toán sẽ theo dõi, lưu trữ và luôn sẵn
sàng đưa ra kết luận. Bạn có xu hướng tra cứu những thông tin nào trên Google, trên
YouTube, thuật toán cũng luôn tất yếu thực hiện những thao tác đó.
Và bạn có xu hướng viết những status như thế nào, với những biểu hiện lý tính và những
trạng thái cảm xúc ra sao, các thuật toán cũng luôn “kèm cặp” bạn từ A đến Z. Thế nên đừng
bất ngờ nếu một ngày nọ, trang Facebook cá nhân của bạn đột nhiên xuất hiện những lời
mời chào phù hợp hoàn toàn với nhu cầu của bạn, trùng khít với những đặc điểm tuổi tác và
tâm lý trong con người bạn. Ví dụ Facebook mời bạn mua những chiếc vòng tay màu xanh,
có khả năng trung hòa sự nóng nảy, dành riêng cho những người tuổi Tý.
Bạn sẽ bất ngờ: trời ơi, tại sao Facebook biết mình đang cần mua 1 chiếc vòng tay, lại biết
mình thích màu xanh, biết luôn cả việc mình là người nóng nảy và biết rõ mình là người tuổi
Tý? Ồ, đừng bất ngờ vì sau khi nghiên cứu những thông tin khai báo và các hành vi của bạn
trong một thời gian đủ dài, các thuật toán đủ thông minh để trả lời cho bạn câu hỏi, rốt cuộc
bạn là ai.
Thế nên, các nhà nghiên cứu công nghệ mới không ngoa khi kết luận, thời buổi hôm nay,
các thuật toán có thể hiểu ta hơn chính ta. Còn một câu đáng chú ý nữa: trước đây chúng ta
sử dụng Google miễn phí, bây giờ Google đang sử dụng chúng ta miễn phí.
Bạn sẽ thét lên: Vậy thì tôi sẽ tách mình khỏi Internet, để nằm ngoài mọi mối quan hệ với
các thuật toán. Khổ nỗi, phần lớn các vận động xã hội bây giờ đều dựa trên nền tảng
Internet. Vào mạng xã hội, tra cứu Google, bạn phải sử dụng Internet đã đành, gọi một chiếc
taxi công nghệ bạn cũng phải sử dụng Internet. Mà xu thế bây giờ, taxi công nghệ sẽ dần
thay thế taxi truyền thống.
Đọc thông tin một cách nhanh nhất, cập nhật nhất, thậm chí thông tin của một sự kiện đang
diễn ra ở một nơi cách xa
mình vạn dặm, bạn cũng
phải vào Internet, vì bạn
không đủ kiên nhẫn chờ
đợi thông tin đó ở những tờ
báo giấy vốn phải trải qua
một quá trình in ấn - phát
hành nhiêu khê. Tóm lại,
tách mình khỏi Internet,
bạn sẽ trở thành Robinson
ngoài đảo hoang, mà đấy
lại là cái đảo hoang nhận
thức ngay trong thành phố
của mình, trớ trêu chưa!
Có một thứ đặc quyền tưởng chừng sẽ thuộc về riêng bạn, cái thứ mà tưởng chừng không
liên quan đến bất cứ thuật toán nào, đó là cảm xúc. “Nhưng cảm xúc là gì?”, nhà nghiên cứu
lịch sử Harrari đặt câu hỏi trong cuốn sách mới nhất của ông 21 bài học cho thế kỷ 21. Và
ông trả lời: Cảm xúc suy cho cùng cũng là một quá trình sinh hóa. Vậy đến một thời điểm
60
nào đó của tương lai, cái tương lai chỉ cách chúng ta vài chục năm nữa thôi, nếu mỗi chúng
ta đều được gắn vào mình một chiếc máy cảm biến thì sao nhỉ?
Chiếc máy cảm biến ấy sẽ chỉ ra quy trình sinh hóa trong cơ thể chúng ta và từ đó có thể
đoán biết chúng ta đang có những trạng thái cảm xúc nào. Vui ư? Buồn ư? Giận dỗi ư? Sợ
hãi ư? Nóng nảy đến mức muốn giết người ư? Thuật toán sẽ giải mã và trí tuệ nhân tạo (AI)
sẽ đưa ra câu trả lời chính xác.
Harari còn đưa những tình huống đáng suy nghĩ hơn nữa: con người hiện nay đôi khi phải
trả giá rất đắt cho những quyết định lầm lỡ của mình, từ việc chọn nghề nghiệp đến chọn vợ
chọn chồng. Bởi ở tuổi 18, chúng ta chưa đủ hiểu mình để chọn ngay một nghề nghiệp phù
hợp với nhất mình. Ở tuổi 25 chúng ta cũng chưa đủ hiểu người mà mình định lấy làm vợ
hoặc chồng để có được những chọn lựa tối ưu.
Nhưng, với những phân tích chính xác về các đặc điểm của chúng ta và các đặc điểm liên
quan đến những đối tượng có khả năng tương tác với chúng ta, thuật toán có thể đưa ra
những câu trả lời chính xác. Khi ấy, muốn chọn lựa nghề nghiệp gì, ta sẽ hỏi thuật toán,
muốn cưới ai, ta sẽ hỏi thuật toán. Thậm chí người đứng đầu một chính phủ sau khi tham
khảo ý kiến của các thành viên trong tổ tư vấn sẽ đưa ra quyết định cuối cùng dựa trên lời
khuyên của thuật toán. Sự chuyển dịch từ thần quyền, thế quyền, dân quyền sang thuật toán
vì thế là một sự chuyển dịch phá toang những kết cấu truyền thống trong xã hội loài người.
Và vì thế con người không thể lấy những kinh nghiệm có được trong mối tương tác với 3 loại
hình quyền lực trước để ứng xử với loại hình quyền lực thứ 4.
Đọc tới đây, bạn sẽ hỏi: suy cho cùng thì ai làm ra thuật toán? Ai đọc các thuật toán? Ai xử
lý cả một núi thông tin mà các thuật toán đưa ra? Câu trả lời chắc chắn là con người.
Nhưng, không phải là tất cả con người như những gì mà chúng ta vẫn hình dung trong cái
mô hình “phổ thông đầu phiếu” mang tính bằng đẳng cao.
Thực chất là chỉ có một nhóm nhỏ những con người tinh hoa, siêu việt nào đó mà thôi. Ở
một góc nào đó của thế giới, nhóm nhỏ tinh hoa siêu việt này sẽ đọc kết quả của các thuật
toán, từ đó sẽ chi phối những vận động mang tính chiến lược của nhân loại.
Theo một thống kê mới nhất thì 8 người giàu nhất thế giới hiện nay đang sở hữu một lượng
tài sản bằng với số tài sản của 3,6 tỷ người nghèo nhất. Tức là sự phân hóa về tài sản đang
tạo nên những bất bình đẳng khủng khiếp trong xã hội loài người. Nhưng, trong tương lai,
với sự lên ngôi của các thuật toán và trí tuệ nhân tạo thì sự phân hóa về thông tin còn khủng
khiếp hơn nữa.
Và Harari bảo: Khi ấy, trong bản thân loài người rất có thể sẽ phân chia thành những giống
loài khác nhau.
Phan Mỹ Chí
http://antgct.cand.com.vn/Khoa-hoc-Van-Minh/
61