VnReview
Hà Nội

Lý thuyết thông tin và lý do vì sao coder cũng cần học đại số

Vì;sao đại số quan trọng với những người muốn theo đuổi đam mê lập trình và code? Lý thuyết thông tin có ý nghĩa như thế nào với các coder?

Tư duy đại số, một phương pháp tư duy để xử lý các bài toán phức tạp nhanh chóng và chính xác hơn

Toán học quan trọng và đa dụng hơn bạn nghĩ

Đã có cách chứng minh: Ý thức là một dạng vật chất đo lường được ...

(Ảnh: UWTSD)

Khoa học, công nghệ, kỹ thuật, toán học, hay gộp chung lại là STEM (Science, technology, engineering, mathematics), tất cả đều là những lĩnh vực rất nóng hiện nay.

Điều tạo nên sự thống nhất cho tất cả những lĩnh vực trên không chỉ là sự tò mò của con người với các vấn đề khoa học mà còn là một ngôn ngữ chung.

Ngôn ngữ chung đó là toán học, và đó là lý do vì sao những người hứng thú với lập trình máy tính, viết code cần học cách hiểu và vận dụng logic toán.

Bộ môn toán được tham khảo nhiều nhất trong lập trình máy tính là đại số. Đại số là việc tính toán các công thức và phương trình để tìm các ẩn số hay gọi chung là các giải pháp. Các bài toán đại số có nhiều mức độ khó dễ khác nhau, từ bài đơn giản như x + 3 = 5 cho đến các bài khó hơn như bài dưới đây, rồi những bài phức tạp hơn, gồm rất nhiều biến phụ thuộc vào nhau.

(Ảnh: Youtube)

Theo Wyncode, một trung tâm đào tạo coder ở Mỹ, để có kiến thức vững vàng về đại số, bạn cần phải biết định nghĩa các mối quan hệ giữa các đối tượng, giải quyết bài toán với số lượng biến có giới hạn, kỹ năng phân tích để thực hiện ra quyết định.

Đại số thông tin hay các kỹ thuật toán học trong xử lý thông tin là lĩnh vực mà chúng ta mang ơn nhà toán học Mỹ Claude Shannon (1916-2001). Shannon là người đề xướng lý thuyết thông tin vào năm 1948. Shannon còn là một kỹ sư điện, người được cho là "đã sáng tạo lý thuyết thiết kế mạch kỹ thuật số và máy tính số vào năm 1937". Đồng thời, ông cũng là một nhà mật mã học nổi tiếng đã làm việc cho chính phủ Mỹ trong ngành này hồi thế chiến II.

Là một lĩnh vực phức tạp của toán ứng dụng, lý thuyết thông tin ra đời năm 1948 đã tạo nên bước đột phá mở đường cho rất nhiều công nghệ hôm nay. Nó xuất phát từ mối quan tâm của Shannon và các nhà lý thuyết khác về số lượng dữ liệu phù hợp bên trong các quá trình xử lý tín hiệu như quá trình lưu trữ dữ liệu trên máy tính (ví dụ như nén dữ liệu), hay quá trình hỗ trợ viễn thông.

Lý thuyết thông tin là một khái niệm phức tạp. Ở đây chúng ta chỉ lấy một ví dụ đơn giản: một máy vi tính có thể xử lý khả năng tung đồng xu công bằng ở góc độ toán học vì chỉ có hai kết quả sấp và ngửa (2 kết quả với khả năng xảy ra như nhau). Tuy nhiên, để xem xét kết quả tung một con xúc xắc 6 mặt thì máy tính cần xử lý dữ liệu nhiều hơn (6 kết quả với khả năng xảy ra như nhau). Và lý thuyết thông tin của Shannon giúp tìm ra giới hạn của những điều không chắc chắn để đưa ra các giải pháp phù hợp qua một đại lượng đo lường quan trọng là entropy.

Entropy đo lường số lần không chắc chắn trong giá trị của một biến ngẫu nhiên hay kết quả/đầu ra của một tiến trình ngẫu nhiên. Dùng một mô hình xác suất để tính entropy, entropy của kết quả sấp hay ngửa của một lần tung đồng xu công bằng độc lập đều là 1 bit (bit là đơn vị đo lường thông tin). Entropy khi tung đồng xu sẽ nhỏ hơn entropy khi tung xúc xắc, 2 khả năng xảy ra so với 6 khả năng xảy ra. 

Một nguồn thông tin luôn tạo ra một chuỗi dài các ký tự "B" sẽ có entropy của ký tự B bằng 0, vì ký tự tiếp theo sẽ luôn là "B". Một nguồn thông tin chỉ gồm hai ký tự 0 và 1 ngẫu nhiên sẽ có entropy của mỗi ký tự đều là 1. Một nguồn thông tin càng có nhiều ký tự thì entropy hay lượng thông tin của mỗi ký tự sẽ càng cao.

(Ảnh: Medium)

Như vậy, giá trị entropy của một ký tự trong một nguồn dữ liệu là số bit trung bình cần có để mã hóa ký tự đó. Theo Shannon, tỉ lệ thông tin hay entropy của mỗi ký tự tiếng Anh trong một nguồn dữ liệu tiếng Anh nằm trong khoảng 0,6-1,3 bits.

Ứng dụng của entropy trong một nguồn nhất định là để xác định năng suất kênh tối thiểu cần có để truyền tải dữ liệu dưới dạng các ký tự nhị phân đã mã hóa một cách tin cậy. Lượng thông tin hay entropy của mỗi ký tự trong nguồn dữ liệu là một yếu tố cần thiết để tình được năng suất này.

Lý thuyết của Shannon đã được trình bày cụ thể trong nghiên cứu mang tên "A Mathematical Theory of Communication" (Một lý thuyết toán học về truyền thông). Các chủ đề cơ bản của thuyết thông tin như entropy đã có nhiều ứng dụng rộng rãi như: nén dữ liệu không mất (file ZIP) và nén dữ liệu có mất (file MP3, JPEG), mã hóa kênh truyền dữ liệu (DSL). Ngoài ra, thuyết thông tin còn là nền tảng cho hàng loạt sự kiện lớn quan trọng trong thế kỷ 20: sứ mệnh không gian Voyager, phát minh đĩa CD, điện thoại di động, sự phát triển internet, nghiên cứu ngôn ngữ học và nhận thức con người, kiến thức về lỗ đen vũ trụ... 

Claude Shannon, cha đẻ của lý thuyết thông tin là nền tảng phát triển internet và nhiều công nghệ phổ biến hôm nay

Lý thuyết thông tin này có liên quan gì tới viết code máy tính?

Hiển nhiên, viết code là viết ra ngôn ngữ để thực thi các lệnh trên máy tính.

Nếu xem code là ngôn ngữ dòng lệnh thì lý thuyết thông tin giống như các phép toán của các dòng lệnh đó. Vận dụng thông tin đại số sẽ giúp các coder máy tính có thể sắp đặt ngôn ngữ code của mình theo một phong cách logic và có quy tắc.

Những khái niệm liên quan chặt chẽ tới nhau này nhấn mạnh tầm quan trọng của toán học với điện toán. Hiểu rõ các khái niệm đại số sẽ giúp các lập trình viên máy tính phân tích để tìm các biến có thể ra được kết quả khi viết code, từ đó suy luận ra hành động tốt nhất.

Linh Trần (Theo Wyncode)

Chủ đề khác