Thuật toán – liệu có ma thuật, phức tạp và bí ẩn như mọi người vẫn nghĩ?

Thuật toán – liệu có ma thuật, phức tạp và bí ẩn như mọi người vẫn nghĩ?

October 11, 2020 3 By Nam Vu

Thật buồn cười khi dạo này đi đâu cũng nghe thấy thuật toán này, thuật toán nọ. 
Thời đại 4.0, đâu đâu cũng là công nghệ, đâu đâu cũng đều xuất hiện những ứng dụng mang tên rất chung được gọi là App. 
Mà đã là app thì phải xử lý một nhu cầu nào đó, từ cá nhân, công ty hay cộng đồng nào đó. Rồi cái xử lý phức tạp một chút bên trong thì xuất hiện thuật toán.
Các ông dev thì buồn cười hơn khi cái gì khó giải thích trong những đoạn code những đoạn bla bla của mình thì dùng 2 từ thuật toán nó Vậy, giải thuật nó thế.

Vậy thuật toán là gì? Nó có thực sự bí ẩn và phức tạp như mọi người vẫn nghĩ?
Đây là bài viết đưa ra cái nhìn khác ở một góc nhìn chẳng dính dáng gì đến lập trình nên mong các anh em đồng nghiệp đừng chê cười nhé!

Theo Wikipedia
Trong toán học và khoa học máy tính, một thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn các hướng dẫn được xác định rõ ràng, có thể thực hiện được bằng máy tính, thường để giải quyết một lớp vấn đề hoặc để thực hiện một phép tính.
Các thuật toán luôn rõ ràng và được sử dụng chỉ rõ việc thực hiện các phép tính, xử lý dữ liệu, suy luận tự động và các tác vụ khác.

Một thuật toán sẽ bao gồm các yếu tố sau đây:

  • Tính chính xác
  • Tính rõ ràng
  • Tính khách quan
  • Tính phổ dụng
  • Tính kết thúc

Một cách hiểu khác

Làm sao để nướng một cái bánh, tìm tổng của hai cộng hai, hay điều hành một đất nước theo Hiến pháp Hoa Kỳ – tất cả đều là những ví dụ của thuật toán. Ngày nay, một thuật toán thường được đề cập đến là “một chuỗi các chỉ dẫn cho máy tính biết phải làm gì”. Một chương tình máy tính là một thuật toán, được viết bằng ngôn ngữ lập trình máy tính, mà máy tính có thể hiểu và thực thi được.

Các thuật toán được viết cho máy tính còn phải cực kỳ chuẩn xác, sử dụng các chỉ dẫn “nếu”, “thì”, và “nếu không”. Ví dụ, một chiếc xe tự lái có thể chạy trên một thuật toán điều hướng với nội dung “NẾU đường đi yêu cầu rẽ trái, THÌ rẽ trái”. Bạn thấy đấy, phải rất cụ thể mới có thể khiến một chiếc máy tính làm theo một tập hợp các chỉ dẫn nghe có vẻ đơn giản như trên.

Trong tưởng tượng của số đông, những thuật toán đề xuất nội dung là thứ xuất hiện ngay lập tức khi chúng ta nghĩ về thuật toán. Đó là bởi khi nhiều người nghĩ về hoặc nhắc đến các thuật toán, họ đang nhắc đến những thứ như những TV show mà Netflix nghĩ bạn sẽ thích, hay những khách quốc tế nào nên bị đưa vào danh sách cấm

Chúng ta đã sử dụng thuật toán từ lâu trước khi máy tính ra đời

Vào thời kỳ Babylon, con người đã viết ra những thuật toán để giúp họ giải các phương trình toán học, cho phép họ quản lý xã hội nông nghiệp của mình.Thuật toán sau đó được dùng vào quản lý doanh nghiệp, với các máy tính chạy nhiều công thức nhằm quản lý lương, và tiếp theo là trong khoa học để theo dõi chuyển động trên bầu trời.

Các thuật toán chạy bằng máy tính lần đầu xuất hiện vào giữa thế kỷ 20, khi quân đội bắt đầu viết các công thức để xác định vị trí hướng hoả tiễn vào một vật thể đang di chuyển.

Một bước ngoạt đối với thuật toán hiện đại diễn ra khi Larry Page và Sergei Brin viết ra thuật toán Google PageRank. Thay vì chỉ dựa vào thông tin trong một trang web để xác định mối tương quan của nó với một từ khoá tìm kiếm, thuật toán tìm kiếm sẽ dựa vào một loạt các tín hiệu khác có thể giúp nó tìm ra những kết quả tốt nhất.

Facebook, Google, Amazon, và các công ty công nghệ lớn khác đều dựa vào thuật toán để đưa nội dung và sản phẩm đến khách hàng. Nhưng còn có những thuật toán xảy ra xuyên suốt cuộc đời bạn mà bạn có lẽ không hề biết.

Với một lượng dữ liệu cực lớn mà các thuật toán có thể xử lý, nhiều người sẽ cho rằng chúng giống như những chiếc hộp bí ẩn đầy quyền năng, được xây dựng nên để vén màn những bí mật con người chưa thể khám phá. Tuy nhiên, nên nhớ rằng một thuật toán đơn giản chỉ là một tập hợp các chỉ dẫn. Hơn nữa, con người là tác giả các thuật toán, có nghĩa chúng vẫn có thể gặp lỗi.

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.

Cuối cùng, dù là vận hành bởi máy móc hay con người, thuật toán cũng là tập hợp những chỉ dẫn để giải các bài toán. Và thuật toán có thể không hoàn hảo, nhưng chúng đang biến đổi thế giới của chúng ta.

Một ví dụ về thuật toán đếm phòng rất hay, mọi người có thể xem thêm:https://www.youtube.com/watch?v=0dOyW8VNiow

— 
P/s: Đây là chương trình mình viết khi còn đi học mô phỏng một số thuật toán. Giờ quên hết trơn rùi! @@

Link: https://www.youtube.com/watch?v=0NqhFqh1CZU