Tại sao lại xảy ra sự bùng nổ tổ hợp thông tin?
Không biết bạn đã nghe thấy chuyện thông tin tăng nhanh đột biến dẫn tới sự “bùng nổ” chưa. Đó là chuyện gì vậy? Hãy xem một ví dụ đơn giản sau đây.
Có một tấm bản đồ thành phố, người bán hàng cần phải đi hết các thành phố, và chỉ đi tới một lần. Trong bản đồ, cứ giữa hai thành phố là có một con đường, trên đó ghi rõ khoảng cách hai bên. Yêu cầu thiết kế một hành trình cho người bán hàng nọ, sao cho xuất phát từ bất kể thành phố nào trong số các thành phố đó, và rồi khi quay lại thành phố ban đầu thì đó là hành trình ngắn nhất. Đó chính là “bài toán người bán hàng”.
Yêu cầu giải đề toán này có vẻ không khó, chỉ cần tìm ra các con đường trên bản đồ, rồi so sánh, chọn con đường ngắn nhất là xong. Nếu số lượng thành phố ít thì cách thức đó là khả thi và thiết thực. Thế nhưng, nếu số lượng thành phố là nhiều thì phương pháp này sẽ thất bại. Nếu số thành phố là N, thì những con đường khác nhau giữa các thành phố là N! (giai thừa N) (N! = 1x2x3x…x N) đường. Nếu việc tính toán độ dài một con đường mất đi thời gian là 0,1 micrô giây (10-7 giây) thì phải sử dụng số thời gian là N! x 0,1 micrô giây để tính ra độ dài của tất cả các con đường. Trong công việc thực tế, đòi hỏi người bán hàng phải đi thăm hỏi 24 thành phố thì cũng không phải việc gì kì lạ lắm.
Nhưng 24! thì lại lớn quá chừng. Tổng lượng thời gian dành cho việc tính toán độ dài các con đường nối 24 thành phố là 24! x 0,1 micrô giây (tức 6,24484017 x 1022 micrô, khoảng 1960 triệu năm). Bởi vậy, nếu N cộng thêm 1, tức 24 + 1= 25 thì thời gian tiêu phí sẽ tăng 25 lần, tức là 25 x 0,1 micrô giây (khoảng 49050 triệu năm). N tăng thêm 1 thì lượng thời gian tăng (N + 1) lần. Tốc độ tăng trưởng tăng đột biến khiến ta khó hình dung được. Hiện tượng này chính là vấn đề “bùng nổ tổ hợp”.
Còn một số vấn đề gọi là vấn đề đánh cờ, nếu người đánh cờ với máy, để đảm bảo cuối cùng sẽ thắng thì máy tính có thể phải thử cách đi của mọi khả năng, rồi đó mà chọn lấy cách đi để thắng. Mỗi lần thử nghiệm một nước cờ thì lại có một thế cờ, mà số lượng thế cờ là rất nhiều. Ví dụ cờ vua có lượng thế cờ là 10120, còn cờ vây là 10761.
Tất cả những cách đi có thể đều thử một lần, sau đó chọn ra phương án hay nhất là có thể làm được. Nhưng thời gian để làm như vậy và không gian lưu trữ thì thật là kinh khủng. Với năng lực của máy tính hiện nay mà giải bài toán khó này là không thể. Bởi vì máy tính nào thì bộ nhớ của nó cũng chỉ có dung lượng có hạn, không thể vô hạn được. Bất kì động tác nào của máy đều cần một thời gian nhất định để hoàn thành.
Để cho dễ hiểu, chúng ta hãy suy xét vấn đề “bùng nổ tổ hợp” theo giác độ tiêu phí thời gian cho máy tính đánh cờ.
Hiện nay tốc độ tính toán của máy tính có thể đạt tới 100 triệu lệnh mỗi ngày. Dùng chương trình được thiết kế hay nhất, đi một nước cờ thì phải chấp hành 10 lệnh. Như vậy, đi một nước thì mất 0,1 micrô giây.
Tốc độ máy tính có thể đạt tới ước chừng 2 miligiây/bước (1 ms = 10-3 s). Tốc độ tối đa về lí thuyết cho máy tính cổng tuần tự (serial máy tính) là 10-12 mili giây/bước, còn tốc độ giới hạn cho loại máy tính cổng song song (parallel máy tính) là 10-11 ms/bước, hoặc 10-104 năm/1 bước đi.
Dù cho tính toán với tốc độ lí thuyết tối đa trên máy tính cổng song song thì việc tìm nghiệm cho cờ vua phải mất 10 ngàn tỉ năm (1016) mới có thể hoàn thành. Thế nhưng, chúng ta biết rằng lịch sử Vũ Trụ cũng chỉ mới là 15 tỉ năm thôi.
Từ khóa: Bùng nổ tổ hợp thông tin; Bài toán người bán hàng; Tiêu phí thời gian.