Saturday, July 30, 2005

Bạn và nghiên cứu của bạn

Nhân việc nói về các nhân vật bự trong ngành AI, tôi xin nói thêm 1 về người nữa. Cố giáo sư Richard Hamming. Tôi rất thích những bài phát biểu của ông.

 " You and your research" là tên một bài phát biểu của cố giáo sư Richard Hamming trong một seminar ở Bell Labs ngày 7 tháng 3 năm 1986.

Hamming đặt câu hỏi rất cơ bản: "tại sao có một số nhà khoa học làm được những việc vĩ đại, phần còn lại thì thường là đi vào quên lãng?" Tôi tóm tắt lại 10 luận điểm chính:

  1. Phải chăng do may mắn? Tất nhiên là không. Ít nhất là không chỉ có may mắn. Pasteur từng nói: "may mắn thích những bộ óc có chuẩn bị" (luck favors prepared minds). Các bộ óc vĩ đại thường làm được nhiều việc vĩ đại. Shannon có bao nhiêu đóng góp quan trọng cho lý thuyết thông tin, không thể có ai may đến thế được.
  2. Phải chăng họ có nhiều não hơn người thường? Nhiều người có IQ cực cao nhưng không làm được gì vĩ đại lắm.
  3. Một trong những cá tính quan trọng nhất là lòng dũng cảm. Dũng cảm đi các con đường mà người khác không dám đi (khó quá, tốn thì giờ quá, …).
  4. Tuổi tác đóng vai trò quan trọng. Newton, Galois, Abel là các ví dụ kinh điển. Ngoài ra, khi đã nổi tiếng người ta thường có xu hướng đi tìm các bài toán khó nhất để "xứng đáng" với tên tuổi của mình. Xu hướng này là một sai lầm nghiêm trọng. Cây ý tưởng lớn phát triển từ vài nhánh rễ nhỏ bé. Ông cho rằng viện toán lừng danh IAS làm thui chột nhiều tài năng, vì nó nhận vào các tài năng vĩ đại, và cho xuất xưởng các tài năng lớn.
  5. Điều kiện làm việc cũng là yếu tố trọng yếu.
  6. Sự kiên trì mang lại cho ta những thành tựu đáng kinh ngạc.
  7. Luôn đặt câu hỏi: "các vấn đề quan trọng nhất trong ngành của mình là gì?" Nếu bạn không tìm cách giải các bài toán quan trọng thì các kết quả của bạn khó có thể quan trọng được. Điều này có vẻ hơi mâu thuẫn với điều số 4. Ông nhấn mạnh sự cân bằng giữa hai điểm này.
  8. Các nhà khoa học vĩ đại đấu tranh vượt qua hệ thống hiện tại, thay vì làm việc với hệ thống đang có và làm cái tốt nhất trong vòng kiềm tỏa của nó.
  9. Tìm mặt tốt của sự việc thay vì mặt xấu. Sống và làm việc lạc quan!
  10. Biết mình biết người.

Giao Su. Allen Newell

Sau khi viết về GS. Marvin Minsky, tôi lại có cảm hứng viết về những người đã những   đặt viên gạch đầu tiên của AI.

 Một trong số đó là Allen Newell (19.3.1927 – 19.7.1992).

 

Lĩnh vực AI đã mất đi 1 trong những nhà khoa học khai sinh ra nó sau sự ra đi của Allen Newell vì căn bệnh ung thư 19.7.1992. Ông luôn là  người đứng đầu của lĩnh vực này từ khi bắt đầu cho tới những giây phút cuối của cuộc đời. Ông nghiên cứu không mệt mỏi và dường như lúc nào cũng tràn đầy nhiệt huyết.

 

 Nếu bạn hỏi Allen Newll là ai ? Ông sẽ nói ông là 1 nhà khoa học. Ông   có vai trò hết sức quan trọng trong mỗi ngày của cuộc đời. Ông sẽ trả lời như thế nào khi bạn hỏi ông là nhà khoa học về cái gì? Chúng ta, những con người, đã từ lâu rồi luôn bị ám ảnh bởi 4 câu hỏi lớn : Các yếu tố tự nhiên của vật chất, nguồn gốc của vũ trụ, các yếu tố tự nhiên của cuộc sống và sự họat động của suy nghĩ. Ông   cứ việc chọn lấy cuộc đời nghiên cứu của mình để trả  lời cho các câu hỏi trên.

Ông là người không chỉ có những giấc mơ, mà ông còn biết đưa mình vào giấc mơ, và đưa giấc mơ vào cuộc sống. Ông có khả năng nhìn nhận được con người đang nghĩ cái gì. Và không ngừng mở rộng tầm nhìn ấy, thể hiện nó, cụ thể nó bằng 1 chuỗi các chương trình máy tính rất thông minh.

Giao Su. Marvin Minsky

Đọc các bài tham luận trong AAAI 2005 (American Association for Artificial Intelligence - Một trong 2 hội nghị về Trí tuệ nhân tạo lớn nhất ) và đọc qua tiểu sử của  GS. Marvin Minsky , tôi thấy mình thật nhỏ bé. Tôi cứ tưởng mình cũng đang đi trên 1 con đường lớn   AI, nhưng ngờ đâu rằng tôi chỉ là 1 hạt bụi còn bám lại ven đường.

 Rất nể phục những gì GS. Marvin Minsky đã khởi tạo và cống hiến cho AI. Hiện nay cha đẻ của ngành AI đã bước qua tuổi 80, nhưng ông vẫn còn rất minh mẫn và hài hước.   Tôi còn đọc được toàn bộ bản nháp của 1 cuốn sách ông đang viết "The Emotion Machine". Phải chăng sự đam mê AI đã khiến cho ông trở nên mạnh mẽ và sáng suốt như vậy.

 Ông không chỉ là một trong những người khai sinh ra AI mà ông luôn luôn kiến tạo cho nó những hướng mới, phù hợp với thời đại. Trong khi chúng tôi vẫn đang ì ạch tìm hiểu về logic mờ (fuzzy logic), vẫn cọc cạch với các thuật tóan xử lý thông tin, thì ông đã đưa ra   1 thế giới mới về AI, theo đúng nghĩa của nó. Máy tính thay thế cho bộ não con người. Tất nhiên vẫn còn 1 đoạn đường rất dài cho điều này.

Trong bài phát biểu, ông đã nói về các lý thuyết mới. Có lẽ đó chính là những gì ông đang viết trong bản tập nháp tôi được đọc. Ông cho rằng những lý thuyết hiện nay không đáp ứng được nhu cầu của AI. Nó chỉ đơn giản đưa nhận tập lệnh, phán đóan và đưa ra kết luật. Có thể ta đã đi sai đường? Ông Marvin đã nói rằng sự họat động của bộ não thường được so sánh với những kỹ thuật tiên tiến nhất của thời đại đó. Ví dụ như máy bắn đá thời trung cổ .

 Một vài dòng về GS Marvin Minsky như thế.

 

 Tôi sẽ nói về ông nhiều hơn sau này. Chắc chắn như thế rồi.

Wednesday, July 27, 2005

Bill Gates hội thảo với Maria Klawe

Giáo sư Maria Klawe hiện là Dean of Engineering and Applied Sciences của trường Princeton. Hôm 18/7 bà có buổi nói chuyện với Bill Gates ở Microsoft Research Faculty Summit, 2005. Chuyện liên quan đến tình hình funding cho khoa học máy tính ở Mỹ.
Cuộc nói chuyện có nhiều chi tiết thú vi. Các bạn xem thử.

 

Giới thiệu sách: "Hackers và họa sĩ"

Tiến sĩ Paul Graham viết một quyển sách với tựa đề "Hackers và họa sĩ". Quyển sách bao gồm 15 essays về nhiều khía cạnh khác nhau của KHMT như: tinh thần dân lập trình, hackers và họa sĩ, làm giàu như thế nào (kiểu Bill Gates), spamming, ngôn ngữ lập trình, thiết kế và nghiên cứu, vân vân.

Bạn có thể xem thử một essay trong quyển sách. Essay này có đề cập đến tên gọi của môn Khoa học máy tính (KHMT) và cái nhìn của Paul về vấn đề này. Mặc dù không hoàn toàn đồng ý với Paul, nhưng tôi thích cách viết hài hước của anh. Quyển sách rất thú vị!

 
Giới thiệu sách: Project Manager
 

Hồi trước tôi từng là Project Manager trong   thời gian ngắn thay cho sếp tôi về nước đón Giánh Sinh. Tôi đã mất rất nhiều thời gian để đưa ra các quyết định cho 1 dự án. Một  dự án tốt là 1 dự án có thiết kế tốt. Cũng có   một essay nữa rất hay, tôi nghĩ tất cả mọi người đều có thể đọc được. Why a good design comes from a bad design.

Tuesday, July 12, 2005

Giấy tờ và máy tính


Những bài viết này tôi copy của GS Ngô Quang Hưng, Pro.CSE of Buffalo.
Hôm nay tôi đi đổi bằng lái xe mới vì bằng cũ sắp hết hạn. Theo luật của bang New York thì để đổi bằng lái tôi cần có các giấy tờ chứng minh "tôi là tôi" đáng giá 6 điểm. Ví dụ: một cái thẻ an sinh xã hội đáng giá 2 điểm, một bằng lái cũ đáng giá 2 điểm, một passport nước ngoài đáng giá 3 điểm, vân vân. Trong thời gian chờ đợi, tôi nghĩ về giấy tờ, thủ tục hành chính, và sự phụ thuộc một cách khó chịu của chúng ta vào các tờ giấy. Mất chứng minh nhân dân, mất passport, mất bằng lái, mất giấy tờ nhà ... là ta sẽ tốn một mớ tiền và cả đống thời gian cùng vô số lo lắng. Tôi tưởng tượng, một hôm xấu trời nào đó, tôi mất hết số giấy tờ đang có, và có thể nói không ngoa là tôi không còn là ... người nữa (ít nhất là theo nghĩa con người trong XH hiện đại). Không biết các bạn thế nào chứ tôi cảm thấy có gì đó bất ổn về tình trạng này. Chẳng lẽ chúng ta phụ thuộc đến thế vào vài mảnh giấy lộn? Tiền bạc cũng vậy, cũng chỉ là vài mảnh giấy đại diện cho các giá trị lao động, nhưng bản thân chúng không phải là giá trị lao động. Thế mà biết bao nhiêu người trên thế giới làm giàu bằng các buôn bán các thứ "đại diện" này. Dĩ nhiên, các lọai giấy tờ và tiền bạc có góp phần vào việc tổ chức XH và trao đổi hàng hóa một cách tiện lợi hơn, và theo nghĩa đó chúng tiết kiệm cho chúng ta một số công lao động nhất định, cho nên không hẳn là chúng chỉ "đại diện" cho công lao động. Vấn đề nằm ở hiệu suất của sự tiết kiệm công lao động. Và điều này liên quan đến máy tính.Trong khoảng 30 năm trở lại đây, máy tính đã giúp chúng ta giảm đáng kể sự trì trệ của các thủ tục hành chính giấy tờ. Khai thuế ở Mỹ là một ví dụ tuyệt vời. Trước kia, khai thuế bằng giấy tờ thông thường sẽ mất vài ngày với các con số tính toán nhằng nhịt. Bây giờ, biết một ít luật thuế thì một business nho nhỏ có thể tự khai bằng máy tính trong vài tiếng đồng hồ. Kỹ thuật thẻ thông minh (smart card) hiện khá thông dụng ở châu Âu. Mỗi thẻ thông minh chứa một bộ vi xử lý nho nhỏ, có thể được dùng như thẻ tín dụng, tiền điện tử, dùng cho các hệ thống bảo mật thay password, cho banking, identification, vân vân. Tiền điện tử (electronic cash) là một đối tượng nghiên cứu thú vị của ngành mật mã học (cryptography) và các ngành liên quan. Đáng tiếc là National Security Agency (NSA) của Mỹ có nhiều luật oái oăm về nghiên cứu mật mã trong vài chục năm qua làm chậm đáng kể việc nghiên cứu tiền điện tử ở Mỹ. Các nhà nghiên cứu nổi tiếng về đề tài này như David Chaum phải sang châu Âu để rộng đất dụng võ.Ngược lại, chúng ta còn một đoạn đường rất dài trước mắt để tận dụng khả năng tiềm tàng của máy vi tính, từ từ loại bỏ các mảnh giấy vụn. Hẳn các bạn còn nhớ vụ bầu cử tổng thống năm 2000 và các bìa đục lỗ ở Florida. Tiền giấy vẫn còn phổ biến ở phần lớn quả đất. Đi mua nhà, vay mượn ngân hàng, đổi bằng lái, xin visa, ... ta vẫn phải điền vào đơn giấy. Ta vẫn còn dùng dụng cụ thời kỳ đồ đá để xử lý thông tin. Chờ gì nữa, các bạn có thể học khoa học máy tính và thay đổi cách thế giới này đang vận hành.

Monday, July 11, 2005

Các thách thức về pháp luật của công nghệ P2P

Các công nghệ/ý tưởng nào có ảnh hưởng sâu rộng đến cuộc sống đều tạo các thách thức mới về nhiều mặt: kỹ thuật, xã hội, pháp luật, vân vân. Công nghệ peer-to-peer (P2P technology) không là ngoại lệ. Kazaa, Chord, Gnutella (hiện thực bởi Bearshare, Limewire, Morpheus), BitTorrent (hiện thực bởi Morpheus), Tapestry, v.v. là các đại diện phổ biến của các giao thức và ứng dụng P2P mà có lẽ các bạn đã nghe/dùng qua.

Dịp khác ta sẽ bàn về các thách thức về mặt kỹ thuật/thiết kế của P2P. Giáo sư Pamela Samuelson của Berkeley dẫn một seminar với tên gọi " Công nghệ P2P: các thách thức về luật pháp và chính sách". Dân làm máy tính rất nên biết các thông tin này vì nó có khả năng ảnh hưởng trực tiếp đến khía cạnh pháp luật và chính sách liên quan đến các sản phẩm tương lai của bạn.

Giới kinh doanh âm nhạc/phim ảnh của Mỹ (như RIAA, MGM) đã khởi tạo các vụ kiện gây tiếng vang lớn liên quan đến các sản phẩm P2P như vụ kiện Napster, vụ kiện Aimster, và vụ kiện Grokster gần đây nhất. (Đó là chưa kể đến vụ kiện người sử dụng các dịch vụ P2P.)

Tôi tóm tắt các lập luận và sự kiện có liên quan:
  • Chia sẻ nhạc và phim ảnh trên các mạng P2P với số lượng lớn là xâm phạm bản quyền. Điều này khó có thể chối cãi được. Do đó, nếu có bằng chứng cụ thể, giới kinh doanh nhạc/phim hoàn toàn có thể kiện người dùng (và họ đã làm để dọa).
  • Giới kinh doanh những năm gần đây bắt đầu tiến tới kiện cả những người sản xuất và phân phối các dịch vụ này. Ngoài các vụ đã kể (liên quan đến P2P), còn có vụ phần mềm deCSS dùng để crack DVD của Jon Johansen người Thụy Điển, hay vụ kiện Dmitry Sklyarov với phần mềm crack eBook của Adobe.
  • Câu hỏi chính quanh vấn đề phức tạp này là: "người tạo ra các công nghệ có khả năng bị lạm dụng cho việc vi phạm bản quyền có phải chịu trách nhiệm liên đới hay không?" (trong khi bản thân họ không trực tiếp vi phạm bản quyền).
  • Câu trả lời là không nếu công nghệ này có khả năng lớn để dùng cho các việc không vi phạm (substantial non-infringing uses - SNIUs).
  • Câu trả lời trên không kẻ ranh giới rõ ràng. Một tiền án quan trọng nhất là vụ Sony chọi Universal Studios năm 1984, hay còn gọi là vụ Betamax. Số là máy Betamax của Sony hồi đó có thể dùng để chép lại các phim truyền qua TV, và Universal Studio kiện Sony bán sản phẩm dùng để xâm phạm bản quyền phim. Tòa án tối cao Mỹ phán quyết rằng Betamax có SNIU. Các sản phẩm mới liên quan đến digital TV recording (như TiVo, ReplayTV , UltimateTV) và digital audio recording (như Replay Radio) cũng ở tình trạng tương tự. Đa số các sản phẩm này còn cho phép thu lại các chương trình TV/Radio trong khi bỏ qua các quảng cáo. Giới truyền thông Mỹ đã kiện SonicBlue về vấn đề này, mặc dù các VCR từ những năm 90 đã có chức năng bỏ qua quảng cáo này.
  • Do sự phức tạp đó, giới kinh doanh thắng kiện trong vụ Napster và Aimster, còn vụ Grokster vẫn đang tiếp diễn, hứa hẹn các kết quả thú vị.
Nếu giới kinh doanh thắng kiện liên tục, dân lập trình sẽ phải suy nghĩ thật kỹ trước khi đưa ra sản phẩm mới, xem nó có khả năng bị lạm dụng để xâm phạm bản quyền hay không. Ví dụ, MGM cho rằng sản phẩm nào có đến 90% là để dùng xâm phạm bản quyền thì người sản xuất phải chịu trách nhiệm liên đới (ví dụ 90% các files chia sẻ bởi ứng dụng Grokster là các files lậu). Nếu tòa án chấp nhận lý luận này thì sẽ tạo tiền lệ rất khó chịu. Giả sử một ISP tăng băng thông nhiều lần cho người dùng, nhưng 90% băng thông được dùng để tải các files lậu thì thế nào?

Sunday, July 10, 2005

Giới thiệu sách: "Lược sử nghịch lý"

Tôi vừa đọc xong quyển "lược sử nghịch lý" của giáo sư Roy Sorensen. Quyển sách điểm qua rất nhiều các tư tưởng và triết gia thế giới trong vài nghìn năm qua bằng các nghịch lý và hành trình của nhân loại giải thích các nghịch lý này. Lược sử nghịch lý rất đáng đọc: hài hước, sâu sắc, và nhiều thông tin. Trong loạt bài Chung qui chỉ tại Cantor, tôi đã giới thiệu một số nghịch lý đóng vai trò thiết yếu cho sự phát triển của lý thuyết tính toán hiện đại. Dĩ nhiên các nghịch lý này cũng được Rorensen đề cập. Xin trích lại đây hai đoạn vui trong sách.Đoạn số một. Trong bài "Concerning the Jews ", tạp chí Harper, tháng ba năm 1898, Mark Twain viết:
"Tôi chẳng kính trọng Satan gì lắm; nhưng ít nhất tôi có thể tuyên bố rằng tôi không có thành kiến gì với hắn. Có khi tôi lại còn nghiêng về phía hắn một chút, vì hắn không được đối xử công bằng. Tất cả các tôn giáo đều phát hành thánh kinh thóa mạ hắn, thế mà ta chưa bao giờ được nghe gì từ phía hắn. Ta chỉ có bằng chứng từ bên công tố mà ta đã phán xử. Với tôi, điều này không bình thường, nó không Anh, không Mỹ. Nó là Pháp. " Đoạn số hai. Thế kỷ thứ 5 trước công nguyên, Epicharmus viết một đoản kịch như sau. Một con nợ đến gặp chủ nợ. Vì thiếu tiền, hắn tìm cách thuyết phục chủ nợ để khỏi trả tiền.
Con nợ hỏi: "nếu có một đống đá cuội, và ta thêm hoặc bớt một cục, thì ta có còn cùng số đá không?"
Chủ nợ trả lời: "dĩ nhiên là không rồi".
"Nếu ta có một mét chiều dài, sau đó cộng hay trừ một mẩu, thì ta có còn một mét không?", con nợ hỏi tiếp.
"Không", chủ nợ trả lời. Con nợ thuyết phục tiếp rằng con người cũng y như vậy. Sau một thời gian thì con người già đi, lớn lên, gần đi, mập lên, vân vân. Không có ai giống hệt như anh ta trong quá khứ. Chủ nợ lẽ dĩ nhiên là đồng ý.
Con nợ kết luận: "vậy thì tôi chẳng nợ anh cái gì cả, vì tôi hôm nay đâu có phải người đã vay anh hôm trước đâu."Chủ nợ bí ý, không biết nói sao, bèn đấm con nợ một phát ngã chỏng gọng.
Con nợ tức lắm, hỏi: "sao anh lại đánh tôi?"
Chủ nợ trả lời, giọng rất thương cảm, "tôi có phải là người đã đánh anh đâu?" Các mẩu chuyện này đều mang một mệnh đề, một ý nghĩa triết học nhất định trong chương tương ứng của quyển sách hai mươi bốn chương. Sorensen lược qua các lập luận của bao thế hệ triết gia, từ Anaximander, Zeno, Socrates, Plato, Aristotle, Sextus Empiricus, đến Hume, Kant, Hegel, Russell, Wittgenstein, Quine. Quyển sách được viết công phu và rất quyến rũ.

Oái oăm Microsoft

Microsoft tuần trước vừa ra thông cáo là họ sẽ tham gia thị trường phần mềm chống virus và chống spy-wares vào năm tới. Trước đó thì phiên bản beta của Windows anti-spyware cũng đã ra trình làng.

Vụ này cực kỳ oái oăm, vì đa phần các virus và spy-wares đều nhằm vào và là hậu quả của các bugs/features của các phần mềm Microsoft, đặc biệt là Internet Explorer.

Một công ty bán cho khách hàng một sản phẩm sửa chữa hậu quả của các lỗi phần mềm do chính công ty đó đã bán cho khách hàng. Vẫn biết rằng cái user agreement không giới hạn việc Microsoft bán các sản phẩm sửa chữa phần mềm của chính họ (như kiểu mua xe hơi xong rồi thi thoảng phải trả tiền bảo trì sửa chữa), nhưng vụ này nghe vẫn quái vì lỗi phần mềm không phải như lỗi cơ học của xe hơi.

Các công ty lớn nhất hiện nay trong thị trường phần mềm chống virus/spy-wares gồm có McAfee, Symantec, CA, Trend Micro, Sophos, và Kaspersky. Bản thân tôi thường dùng Symantec AV (license của trường) cùng với AdAware (bản miễn phí). Tôi chỉ dùng Firefox (trên cả Windows lẫn Linux/Unix) và đặt cấu hình cẩn thận nên không ngại spy-wares chút nào.

Hiện nay ta đang thấy xu hướng các công ty chuyển sang bán software license theo kiểu đăng ký dài hạn (subscription service) chứ không phải bán từng sản phẩm như xưa. Theo cách này thì các cập nhật bảo mật và cập nhật khác sẽ tiện lợi hơn, đảm bảo một môi trường tính toán tốt hơn nhiều. Xu hướng này cũng làm ảnh hưởng đến người dùng phần mềm lậu của Microsoft mà Việt Nam đứng hàng đầu.

Security focus có hai bài báo (một, hai ) liên quan đến việc này

Saturday, July 09, 2005

Điều trần về tương lai của nghiên cứu KHMT ở Mỹ

Ngày 12 tháng 5, có một buổi điều trần với ủy ban khoa học của hạ nghị viện Mỹ về tình trạng tài trợ nghiên cứu khoa học máy tính hiện nay. Các nhân chứng trong buổi điều trần bao gồm các tiến sĩ
John Marburger III, giám đốc văn phòng chính sách khoa học và công nghệ của nhà trắng (OSTP).
Anthony J. Tether, giám đốc chi nhánh các dự án nghiên cứu cấp cao của bộ quốc phòng (DARPA).
William Ạ Wulf, chủ tịch viện kỹ thuật quốc gia (NAE).
Tom Leighton, khoa học gia trưởng (chief scientist) và đồng sáng lập viên của Akamai Technologies , đồng thời là giáo sư khoa toán ứng dụng của MIT. Số là gần đây giới nghiên cứu KHMT ở Mỹ đang càm ràm về tình trạng giảm sút đáng kể về tài trợ nghiên cứu cơ bản trong khoa học máy tính, đặc biệt là ở các trường đại học. Bài báo sau đây ở tạp chí Science tóm tắt khá tốt tình hình này: Lazowska and Patterson, An Endless Frontier Postponed, Science 2005 308: 757Hai tổ chức đóng vai trò thiết yếu tài trợ nghiên cứu cơ bản cho khoa học máy tính là NSF và DARPA. Chính các tài trợ của hai tổ chức này trong 40 năm qua đã mang lại các phát kiến đóng vai trò chủ đạo cho sự phát triển cực mạnh về nhiều lĩnh vực của Mỹ mấy mươi năm qua. Rất nhiều các công nghệ trung tâm của khoa học máy tính hiện đại đã được phát triển từ các nghiên cứu căn bản ở các trường đại học: mạng Internet, các hệ thống time-sharing, PKC, google, web browsers, cơ sở dữ liệu, đồ họa máy tính, vân vân, ... Các công nghệ này tạo ra những ngành công nghiệp nhiều chục tỉ đô la và biết bao nhiêu công ăn việc làm, đó là chưa kể năng suất lao động của các ngành khác, năng suất trao đổi thông tin và học tập, truyền thông, vân vân, đều bùng phát nhờ các công nghệ này. Tài trợ nghiên cứu tầm xa là đầu tư chiến lược của một quốc gia, và Mỹ không là ngoại lệ. Bốn mươi năm vừa qua là minh chứng sinh động cho tầm quan trọng của nghiên cứu khoa học cơ bản được quản lý và tài trợ tốt. Mấy năm gần đây thì DARPA chuyển hướng tài trợ: từ nghiên cứu cơ bản sang các nghiên cứu ngắn hạn, có ứng dụng ngay theo kiểu R&D của các công ty. DARPA gọi nó là kiểu nghiên cứu "làm cầu nối" giữa nghiên cứu cơ bản và công nghệ ứng dụng. Báo cáo tổng hợp của buổi điều trần đưa ví dụ: năm 1998 thì DARPA tài trợ 30% tổng số tiền tài trợ nghiên cứu KHMT, NSF đóng góp 27%; đến năm nay thì DARPA chỉ còn đóng góp 6%. Không chỉ giảm phần trăm, tổng số đô la tài trợ của DARPA cũng giảm đáng kể (143 triệu USD năm 2005). Nói cách khác, DARPA đặt gánh nặng tài nghiên cứu cơ bản lên vai NSF và, phần nào đó, vào phòng khoa học của bộ năng lượng ( DoE).Cụ thể hơn, tôi đang làm một dự án của DARPA được sub-contract từ Telcordia. So với một dự án khác của NSF thì làm với DARPA rất khó chịu vì phải báo cáo thường xuyên về tiến trình nghiên cứu và vì chính sách xem xét "tiếp tục hay không" (go/no-go) sau 1 năm hay 18 tháng. Cứ sau một khoảng thời gian từ 1 năm đến 18 tháng mà dự án chưa có kết quả "rõ ràng" thì dự án sẽ không được tiếp tục tài trợ. Kết quả của chính sách này là các nghiên cứu tầm xa rất khó được tài trợ của DARPA. Có rất nhiều vấn đề quan trọng cần vài năm "nấu chín" ý tưởng mà không phải chạy theo các báo cáo "vụ mùa" hai tháng một. Để so sánh, một dự án thông thường của NSF có thời khoảng là 3 năm. Dự án cho một CAREER grant của NSF cho các giáo sư trẻ thì được đến 5 năm.Một "hậu quả" nữa của các chính sách mới của DARPA là hiện nay đa phần họ tài trợ các công ty thay vì các giáo sư đại học. Các công ty có nhiều tài nguyên và người làm các dự án ngắn hạn này hơn. Tuy vậy, khi dự các buổi họp của các princial investigator của DARPA thì tôi thấy các công trình ở các công ty cũng chẳng khác gì các công trình thông thường ở các trường đại học. Các bạn có thể đọc kỹ hơn các báo cáo của buổi điều trần trên ở đây. Hội nghiên cứu điện toán ( CRA) có một blog bàn nhiều về vấn đề này.

Từ kết quả một cuộc thi lập trình ...

Cuộc thi lập trình bậc đại học của ACM (ACM International Collegiate Programming Contest, viết tắt là ACM-ICPC) hàng năm là cuộc thi lập trình có truyền thống và danh tiếng nhất của sinh viên máy tính bậc đại học trên thế giới. Đạt được thứ hạng cao trong cuộc thi này làm gia tăng đáng kể tiếng tăm của một trường, dù là ở bất kỳ nước nào trên thế giới. Các thành viên của một đội tuyển đoạt thứ hạng cao thì có một đề mục nặng ký trong resumé để xin học masters, Ph.D ở các trường hàng đầu thế giới. Năm vừa rồi, một Ph.D xin việc ở khoa tôi đã từng nằm trong một đội tuyển của Slovakia đứng thứ 12 trong kỳ thi ACM-ICPC năm 1996.

Cuộc thi ACM-ICPC lần thứ 29 (2005) tổ chức ở đại học Thượng Hải Jiao Tong, Trung Quốc. Đây là danh sách thứ hạng của cuộc thi, trong đó 12 hạng đầu bao gồm:
  1. Shanghai Jiaotong University (Trung Quốc)
  2. Moscow State University (ta hay gọi là Lomonosov, Nga)
  3. St Petersburg Institute of Fine Mechanics and Optics (Nga)
  4. University of Waterloo (Canada)
  5. University of Wroclaw (Ba Lan)
  6. Fudan University (Trung Quốc)
  7. KTH - Royal Institute of Technology (Thụy Điển)
  8. Norwegian University of Science & Technology (Thụy Điển, Na Uy)
  9. Izhevsk State Technical University (Nga)
  10. Politehnica University Bucharest (Rumani)
  11. Peking University (Trung Quốc)
  12. The University of Hong Kong (Trung Quốc)
Các trường đại học ở Trung Quốc và Đông Âu (bao gồm Nga) bắt đầu thống trị cuộc thi này những năm gần đây. Trường đại học đạt hạng cao nhất của Mỹ chỉ đứng thứ 17 (UIUC của anh Đoàn An Hải). Ta có thể rút ra bài học hay các câu hỏi gì từ kết quả này (khá đồng nhất trong những năm gần đây)?
  • Phải chăng chất lượng giáo dục KHMT ở Mỹ đang giảm sút? Hay chất lượng sinh viên học KHMT ở Mỹ đang giảm sút? (Nhớ rằng ta đang xét đết chất lượng giáo dục KHMT ở bậc đại học chứ không phải sau đại học.) Nếu câu trả lời là có thì do nguyên nhân nào?

    Một bài báo gần đây của Thomas L. Friedman trên tờ New York Times có bàn về vấn đề này. Thomas gợi ý rằng sinh viên Mỹ đang tụt hậu về khoa học và kỹ thuật.

    Một bài phỏng vấn khác của C|Net News cũng quan tâm đến cùng đề tài. Giáo sư David Patterson, president của ACM, là người trả lời phỏng vấn. (Giáo sư Patterson là nhà nghiên cứu chủ đạo thiết kế cấu hình RISC và hệ thống RAID. RISC là nền tảng của cấu hình SPARC của hãng Sun Microsystems.) Trong bài, giáo sư Patterson quy kết quả yếu của các đại học Mỹ cho các lý do: (a) sự thiếu quan tâm tầm quốc gia [ví dụ các trường ở Nga đoạt giải thì được chính tổng thống Putin khen thưởng], (b) các trường ở Đông Âu và Trung Quốc coi trọng cuộc thi này hơn các trường ở Mỹ, nhưng ông cũng nghĩ đó không phải là lý do cốt yếu, (c) người Mỹ biếng nhác hơn vì họ đã thống trị KHMT quá lâu, (d) sự giảm sút của đầu tư vào giáo dục và nghiên cứu KHMT những năm gần đây ở Mỹ, và (e) chất lượng đầu vào của sinh viên giảm sút sau bùng nổ dot-com.

    Gần đây, Bill Gates làm một tour nói chuyện ở vài trường đại học lớn để kêu gọi sinh viên giỏi vào học KHMT và kêu gọi các trường tìm cách thu hút thêm sinh viên giởi từ nước ngoài. Lý do cho chuyến "du Giang Nam" này của Bill chính là sự giảm sút chất lượng và số lượng sinh viên KHMT mà Microsoft đang và sẽ bị ảnh hưởng lớn. Việc xin visa sinh viên vào Mỹ khó khăn trong những năm gần đây làm giảm đáng kể số sinh viên ngoại quốc ở Mỹ. Sau khi ra trường thì bị vụ giới hạn H1B, dù USCIS vừa thông báo cho thêm 20000 H1B nữa cho trong năm nay (giới hạn trước đó là 65000 visas đã hết veo trong vòng ... 1 ngày). Out-sourcing, off-shoring làm cho sinh viên KHMT ở Mỹ tìm việc khó khăn hơn, do đó họ không lao vào KHMT nhiều như những năm 90.

  • Kết quả thi này có phản ánh chính xác trình độ sinh viên và chất lượng của đại học đoạt giải hay không?

    Giáo sư Norm Matloff lý luận là không. Norm cho rằng, cũng như chuyện "luyện gà chọi" thi Olympics thể dục dụng cụ, Trung Quốc và các nước Đông Âu đầu tư rất nhiều vào các kỳ thi loại này. Kết quả thi không phản ánh đúng trình độ của học sinh và chất lương giáo dục. Ví dụ, ở ngay tại Trung Quốc thì hai trường đại học Peking University và Tsinghua University là hai trường hơn hẳn Shanghai Jiaotong University, thế nhưng cả Peking lẫn Tsinghua đều không nằm trong top 10. Ta có thể thêm vào các IIT của Ấn Độ - chất lượng sinh viên và chất lượng giáo dục ccác ngành kỹ thuật rất cao - nhưng họ không có mặt trong top 10.

  • Các trường đại học ở Việt Nam có thể học được gì từ kết quả này?

    Các trường đại học Mỹ có tham gia kỳ thi này hay không thì cũng không ảnh hưởng mấy đến giáo dục đại học của họ. Việt Nam thì khác. Tôi nghĩ ta nên tích cực tham gia kỳ thi này. Có vài cái lợi trước mắt và lâu dài:

    • Đầu tư vào một kỳ thi như vậy không nhiều (từ thời gian đến tiền bạc), lại có thể tiến hành độc lập từ các trường đại học, không cần quản lý tầm quốc gia. Bản chất kỳ thi là giữa các trường với nhau, không phải là giữa các nước với nhau như kỳ thi toán quốc tế. Mỗi trường chỉ cần 3 sinh viên và một huấn luyện viên và chẳng cần thiết bị gì ngoài một cái máy tính và một số sách vở.
    • Một đại học ở VN có thể cải thiện danh tiếng tầm quốc tế ngay lập tức nếu đạt thứ hạng kha khá. Các sinh viên tốt nghiệp đại học này sẽ được xem xét với một ánh mắt khác khi xin học masters/Ph.D ở nước ngoài. Các sinh viên đoạt giải trong kỳ thi sẽ có tương lai sáng láng khi xin học sau đại học.
    • Tạo được thêm động cơ học tập lập trình cho sinh viên KHMT. Việc giải quyết các vấn đề kỹ thuật nhanh với lời giải đẹp như trong kỳ thi ACM-ICPC là chất lượng rất quan trọng của kỹ sư máy tính.

    Có không ít các tranh cãi về chuyện "luyện gà chọi" thi học sinh giỏi ở Việt Nam. Các bạn có thể nghĩ rằng thêm một nhóm "gà chọi" nữa sẽ làm cho vấn đề tệ hơn. Tôi cần nghiên cứu kỹ về đề tài này và xin hẹn các bạn một dịp khác sẽ bàn thêm. Tuy nhiên, tôi muốn nêu một thực tế rất đáng chú ý là có rất rất nhiều những khoa học gia của Việt Nam thành công ở nước ngoài, hoặc đang giữ các vị trí quan trọng trong nước hiện nay, là cựu sinh viên chuyên Toán. Nhóm bloggers của blog KHMT này là một ví dụ sinh động.
Lần khác tôi sẽ bàn thêm về nội dung và các kiến thức nền cần có cho cuộc thi này.

Friday, July 08, 2005

Rắc rối hóa chương trình (hết)


Về mặt trực quan, một chương trình P sau khi được rắc rối hóa thành O(P) thì ta không thể hiểu được logic của O(P) nữa. Làm thế nào để mô tả điều này về mặt toán học?

Một bài báo của Barak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan, và Yang nghiên cứu định nghĩa như sau. Tôi chỉ mô tả lại đây ý tưởng chính đằng sau định nghĩa của họ. Định nghĩa cụ thể bằng toán học bạn có thể đọc trực tiếp.

Nếu O(P) cực kỳ khó hiểu, thì có O(P) cũng không khác gì có P như một hộp đen (blackbox). Hộp đen ở đây được hiểu là ta không biết P hoạt động thế nào, chỉ biết rằng cho bất kỳ input x nào thì ta biết output P(x) tương ứng của chương trình P, nhưng không có thông tin gì khác về việc làm thế nào mà P tính được P(x). Ví dụ, người ta có thể bán cho bạn một cái máy mà ta gõ vào tiếng Việt thì máy dịch sang tiếng Anh. Giả sử bạn không bao giờ mở máy ra xem thì bạn có truy cập theo kiểu hộp đen đến cái giải thuật dịch đấy. Nếu P là giải thuật dịch, việc bạn có O(P) cũng chẳng hơn gì có cái máy dịch không được tháo ra, dù O(P) vẫn là mã nguồn của P (chỉ bị rắc rối hóa đi thôi).

Cụ thể hơn về mặt toán học, thì O là bộ rắc rối hóa tốt nếu những gì ta tính toán được hay suy ra được từ O(P) cũng y như những gì ta tính toán được hay suy ra được từ truy cập kiểu hộp đen đến P.

Nếu ta chấp nhận định nghĩa này của bộ rắc rối hóa (định nghĩa có thể hơi mạnh quá), thì các tác giả bài báo trên chứng minh được rằng tồn tại một họ F các hàm số không thể rắc rối hóa được theo nghĩa như sau. Tồn tại một thuộc tính p : F --> {0,1} của các hàm số này thỏa mãn tính chất sau đây:
 
  1. Nếu có bất kỳ chương trình Q nào tính một hàm f thuộc F, thì thuộc tính p(f) có thể tính được một cách hiệu quả,
  2. Trong khi đó nếu ta chỉ có truy cập kiểu hộp đen đến một hàm f chọn ngẫu nhiên từ họ F, thì không có giải thuật hiệu quả nào để tính p(f) tốt hơn cách đoán bừa (random guessing).
Có lẽ cần giải thích chi tiết hơn một chút. Giả sử tồn tại một bộ rắc rối hóa O . Nếu O là bộ rắc rối hóa tốt thì, theo định nghĩa, nếu ta chọn một hàm f bất kỳ từ họ F thì việc có O(f) cũng không hơn gì việc có truy cập kiểu hộp đen đến f. Gọi Q = O(f). Theo tính chất (1) thì ta có thể tính p(f) một cách hiệu quả. Theo tính chất (2) thì ta không tính được p(f) một cách hiệu quả nếu chỉ có truy cập kiểu hộp đen đến f. Như vậy rõ ràng là O(f) chứa nhiều "thông tin" (trong trường hợp này là thuộc tính p của f) hơn là cái hộp đen tính f. Nói cách khác, O đã không hoàn toàn rắc rối hóa f.

Vài hướng nghiên cứu tiếp:
  • Tìm một định nghĩa có ý nghĩa về mặt thực tiễn (cho software protection, watermarking, vân vân) cho bộ rắc rối hóa sao cho việc rắc rối hóa này vẫn có thể làm được về mặt lý thuyết.
  • Giả sử ta vẫn dùng định nghĩa trên, có một lớp các hàm số nào hữu dụng mà lại có thể rắc rối hóa được hay không? (Bộ hàm số F như trên chỉ là một phản ví dụ không bao gồm hết các hàm hữu dụng trong thực tế.)

Rắc rối hóa chương trình (4)


Với bộ rắc rối hóa chương trình O, ta có thể biến một hệ thống mật mã khóa riêng thành hệ thống mật mã khóa công cộng. Hệ thống mật mã khóa riêng có thể được mô tả như sau: bên gửi và bên nhận dùng chung một khóa bí mật K cùng với một giải thuật mã hóa E và giải mã D. Gọi E K là chương trình mã hóa dùng E với khóa K, và DK là chương trình giải mã dùng D với khóa K. Để mã hóa một thông điệp M thì bên gửi sẽ gửi E K(M), và bên nhận giải mã với DK(E K(M)) = M.

Như ta đã nói trong các bài trước, việc làm thế nào để phân phối và đồng ý với khóa K là vấn đề khó giải quyết của hệ thống mật mã khóa riêng. Với bộ rắc rối hóa O, bên nhận có thể cho mọi người biết O(E K). Ai muốn gửi thông điệp M thì chỉ cần gửi O(EK)(M) là xong. Nhờ có O, không thể đoán được K từ O(E K).

Cho đến đây, ta vẫn chưa định nghĩa rõ ràng thế nào là một bộ rắc rối hóa chương trình bằng toán học. Bộ rắc rối hóa phải thỏa mãn những tính chất gì thì các ứng dụng nêu trên mới có thể thành hiện thực được? Tệ hơn nữa, nhỡ khi không tồn tại một bộ rắc rối hóa như ta mong muốn thì sao? Làm sao chứng minh được điều này?
 

Thursday, July 07, 2005

Công nghệ thông tin ở Trung Quốc

Tờ Communications of the ACM tháng 4 (số 48) năm nay có nhiều bài viết về tình hình phát triển công nghệ thông tin ở Trung Quốc (TQ). Có nhiều bài học thiết thực cho Việt Nam. Tôi tóm tắt lại đây vài điểm quan trọng.
  • Bài viết của Richard P. Suttmeier nói về các chuẩn kỹ thuật và cái gọi là chủ nghĩa dân tộc kỹ thuật (technonationalism). Suttmeier bắt đầu bằng sự kiện TQ năm ngoái tìm cách đề bạt chuẩn WAPI (wireless authentication and privacy infrastructure) ra thế giới bằng cách yêu cầu tất cả các sản phẩm mạng cục bộ không dây (WLAN) bán ở TQ phải theo chuẩn này. Cuối cùng thì TQ bỏ ý định này do sức ép của các công ty lớn của Mỹ. Sau đó Suttmeier phân tích các mối tương quan phức tạp trong việc phát triển công nghệ ở một nước đang lên với tiềm năng kỹ thuật và thị trường khổng lồ như TQ. Ví dụ, các nhà làm chính sách và các khoa học gia tầm lãnh đạo dĩ nhiên là không muốn TQ bị phụ thuộc vào công nghệ và các chuẩn của nước ngoài, cho nên họ tìm cách thúc đẩy sáng tạo trong nước và tạo chuẩn cho riêng mình, với hy vọng dần dần tách khỏi sự phụ thuộc công nghệ vào các nước và tập đoàn phương Tây. Ngược lại, các công ty gia công thuê [có rất nhiều ở TQ] thì lại kiếm tiền trên chính sự phụ thuộc công nghệ này. Tìm giải pháp cân bằng hai hướng này là một vấn đề nhức đầu cho các nhà làm chính sách.
  • Bài viết của Jonathan J. H. Zhu và Enhai Wang có nhiều thống kê quan trọng về sử dụng Internet ở TQ.
    Cho đến tháng 12 năm 2004, TQ có khoảng 94 triệu người dùng Internet, biến TQ thành thị trường Internet lớn thứ nhì thế giới sau Mỹ. (Con số này lấy theo trung tâm thông tin Internet của TQ - còn gọi là CNNIC. Họ làm thống kê một năm 2 lần từ 1997 đến nay.)
    Bài báo cho biết, dù số người dùng bùng phát khá nhanh, nhưng vẫn chưa đến mức đáng lẽ có thể đạt được. Lý do chính không phải là dân TQ thiếu tiền kết nối Internet, mà do các lý do sau, từ quan trọng nhất trở xuống: (1) thiếu khả năng sử dụng máy tính, (2) thiếu trang thiết bị, (3) thiếu thời gian, và (4) thiếu hứng thú. Một trong những yếu tố quan trọng là tâm lý cho rằng máy tính chưa thật sự cần thiết. Trong khi đó, thị trường điện thoại di động có tổng số người dùng khoảng 330 triệu, cao gấp 3.5 lần tổng số người dùng Internet.
    Khoảng 56% truy cập Internet qua các dịch vụ dial-up, phần còn lại có broadband access. Tôi tự hỏi các con số này ở Việt Nam là bao nhiêu? Các số thống kê khác [phần trăm các loại dịch vụ dùng như emails, P2P, vân vân] cũng tương tự như ở các nước phát triển.
    Ảnh hưởng lớn nhất của Internet đến xã hội TQ là một thay đổi căn bản về truyền thông trong xã hội. Ví dụ như hồi bệnh SARS bùng phát năm 2003, chính phủ TQ cấm các báo chí chính thống đăng tin trong năm tháng đầu tiên, trong khi đó vài chục triệu dân TQ đã biết tin này qua điện thoại, thông điệp SMS, email, các trang web, và các kênh khác.
    Bài báo kết luận rằng lịch sử chuyển hóa xã hội của phương Tây (nhờ Internet và các phát kiến truyền thông kỹ thuật khác) đang lập lại ở TQ, dù là nhịp độ tiến triển khá chậm chạp.
Còn vài bài hay về TQ nữa trong số báo này của Communications of the ACM, bạn có thể tự tìm đọc thêm.

Tôi kết thúc bằng các thực tế sau đây:
  • Tháng 12 năm 2004, công ty Levono của TQ mua lại đơn vị IBM's PC với giá 1.75 tỉ USD.
  • Năm 2004, sohu.com thu về khoảng 100 triệu USD. Charles Zhang, người sáng lập website này và thường được mệnh danh là Bill Gates của TQ, được báo Time chọn là một trong 15 Global Tech Gurus, và báo BusinessWeek chọn là một trong 25 CEOs tiêu biểu của các doanh nghiệp điện tử toàn cầu.
  • Năm 2004, giáo sư Andrew Yao (giải Turing năm 2000 ) đã về đại học Tsinghua. Các bạn bè người TQ cho tôi biết họ trả lương cho giáo sư Yao cao không kém lương ở Mỹ, và ông không phải là trường hợp cá biệt.

Wednesday, July 06, 2005

Rắc rối hóa chương trình (3)


Hệ thống mật mã khóa công cộng (public key crypto-system, hay PKC) là ý tưởng đột phá của ngành mật mã học (cryptography). Các PKC như RSA hiện nay đóng vai trò thiết yếu trong các hoạt động cần bảo mật máy tính như thương mại điện tử (e-commerce), chữ ký điện tử ( digital signature), vân vân. Whitfield Diffie , Martin Hellman, và Ralph Merkle có thể được coi là cha đẻ của ý tưởng mật mã hóa không cần bí mật này, mặc dù tổ chức GCHQ của Anh nói rằng họ có ý tưởng này trước đó vài năm, nhưng không đăng báo vì là bí mật quốc gia.

Bài báo đầu tiên về đề tài này của Diffie và Hellman đăng năm 1976 (W. Diffie and M. Hellman. New Directions in Cryptography. IEEE Trans. Info. Theory 22(6): 644-654 (1976) ). Tuy nhiên họ đã trình bày ý tưởng này ở một hội nghị vào tháng 6 năm 1975.

"Mật mã hóa không cần bí mật" nghe có vẻ nghịch lý. Chính vì thế mà ý tưởng PKC là một đột phá của thế kỷ 20 trong ngành mật mã học. Trước khi có ý tưởng PKC, để gửi hay lưu trữ một tài liệu mật nào đó, ta cần một khóa bí mật ( secret key - còn gọi là khóa riêng - private key). Khi mật mã hóa tài liệu, ta dùng khóa bí mật. Khi giải mã tài liệu, ta cũng cần nó. Mức độ bảo mật của hệ thống bằng với mức độ bảo mật của khóa này, và trong chừng mực nào đó, mức độ bảo mật của giải thuật mã hóa và giải mã. Hiển nhiên là một giải thuật tốt thì có nhiều người cần dùng, và vì thế ta chỉ có thể giữ bí mật cái khóa riêng thôi, còn giải thuật thì không phải là bí mật.

Khó khăn của hệ thống mật mã khóa riêng (private key crypto-system) kiểu này nằm ở việc phân phối khóa riêng. Nếu một người ở Mỹ muốn gửi tài liệu bí mật cho người ở Việt Nam mà phải mang cái khóa này sang Việt Nam thì mang luôn cái tài liệu mật cho xong. Như vậy, ta cần một hệ thống mật mã mà trong đó người gửi có thể mã hóa và gửi tài liệu bằng cách nào đó mà chỉ có người nhận mới giải mã được, ngoài ra người gửi không cần biết một bí mật nào đó thì mới làm được việc này. Đây là lý do tại sao ta gọi PKC là hệ thống mật mã không cần bí mật.

Ý tưởng của một hệ thống PKC như sau. Người nhận có một cặp khóa D (bí mật) và E (công cộng). Người nhận cho thiên hạ biết khóa E. Để đơn giản, bạn có thể hiểu E như một hàm số hay một chương trình mà cho một thông điệp M thì E(M) là thông điệp M đã được mật mã hóa. Dĩ nhiên việc giải mã ra M từ E(M) là cực kỳ khó, trừ khi ta có D. Ta chỉ cần D(E(M)) = M với mọi M là xong. ( Chú ý rằng cả ED đều có thể xem như các chương trình máy tính. E là chương trình công cộng, còn D là chương trình bí mật.)

Vậy PKC thì liên quan gì đến rắc rối hóa chương trình?

Rắc rối hóa chương trình (2)


Đánh dấu mờ phần mềm (wartermarking software) là một ứng dụng hay nếu ta có thể thực sự viết O. Ý nghĩa căn bản của cái gọi là "đánh dấu mờ" như sau:
  • Giả dụ ta có một chương trình P đem bán cho khách hàng, nhưng muốn tránh việc khách hàng copy P cho người khác, ta tìm cách, với mỗi khách hàng G, trộn vào trong P một đoạn mã C(G) nào đó, biến P thành P(G).
  • P(G) về mặt chức năng thì giống hệt P, và việc thêm C(G) vào P không ảnh hưởng nhiều đến hiệu suất của P.
  • C(G) còn có một thuộc tính toán học nào đó mà ta có thể kiểm tra bằng cách kiểm tra P(G). Thuộc tính toán học này có thể dùng để chứng minh rằng P(G) thuộc về khách hàng G. Như vậy, hai khách hàng G1 và G2 khác nhau sẽ có hai chương trình P(G1) và P(G2) khác nhau [và ta kiểm tra được điều đó], dù là chúng giống hệt nhau về mặt chức năng.
  • C(G) có thể xem như con dấu hay chữ ký của khách hàng G đã đóng vào P. Như thế G sẽ không đem bản của mình cho người khác được.
  • Dĩ nhiên là cả hệ thống phải được thiết kế sao cho việc lấy C(G) ra khỏi P(G) là cực kỳ khó làm. Ngoài ra, bất kể người ta biến đổi P(G) như thế nào (rắc rối hóa nó, dịch nó sang ngôn ngữ khác, vân vân), thì "con dấu" C(G) vẫn bị dính kèm.
Những điều trên có khả năng hiện thực hóa được nếu ta có bộ rắc rối hóa O. Ta bỏ vào trong P một đoạn mã C(G) nào đó để nhận dạng khách hàng G. (C(G) không làm gì cả, chỉ dùng để nhận dạng G.) Sau đó ta đưa cho khách hàng chương trình O(P). Chương trình O(P) giống hệt P+C(G), nhưng đã bị rắc rối đến mức khách hàng không thể hiểu được logic của nó, và vì thế không thể bỏ C(G) ra khỏi nó được. Dĩ nhiên còn nhiều chi tiết kỹ thuật và lý thuyết cần dùng cho việc này, nhưng về mặt trực quan thì có khả năng điều này có thể hiện thực hóa được nếu ta có O.
 

Tuesday, July 05, 2005

Tiến hóa của tinh thần

 
Tối qua tôi xem một chương trình của PBS với tựa đề beyond human. Chương trình nói về robotics và các công nghệ hiện tại, tương lai, xung quanh ngành robotics. Có vài câu hỏi cực kỳ thú vị:
 
  1. Giả sử một ngày kia ta làm được robots thông minh hơn người, có tình cảm như người, lại có thể tự tái sinh được. Bạn cảm thấy thế nào nếu loài người tuyệt chủng, chỉ còn các robots này đại diện và cưu mang tinh thần của nhân loại đi khắp vũ trụ?
    [Con người với cấu trúc sinh học như hiện nay sẽ không đi nổi hành trình đó, trừ khi ta tìm được đường tắt qua không-thời gian ( lỗ sâu, lỗ đen, vân vân)].
  2. Bạn cảm thấy thế nào nếu chính bọn robots này làm loài người tuyệt chủng?
    [Chúng ta lã làm cho nhiều chủng loài khác tuyệt chủng. Khi đến lượt mình, chúng ta có chịu ra đi và chấp nhận tương lai này không? Nhất là khi tinh thần, trí tuệ của nhận loại vẫn còn sống?]
Nếu điều này xảy ra, thì tiến hóa sẽ chuyển sang dạng mới: tiến hóa của tinh thần! Sẽ có sự tách biệt giữa tinh thần và thể xác không theo ý nghĩa tôn giáo. Khi đó nhân loại có thể xem là đã "xuất hồn" nhập vào xác khác!

Monday, July 04, 2005

Rắc rối hóa chương trình (1)


Trong bài về các chương trình đẹp xấu, vân vân, tôi có nhắc đến các chương trình C được rắc rối hóa (obfuscated C code) và cả một cuộc thi quốc tế hàng năm cho các chương trình này. Sau đây là một ví dụ:
#include 
int O,o,i;char*I="";main(l){O&=l&1?*I:~*I,*I++||(l=2*getchar(),i+=O>8
?o:O?0:o+1,o=O>9,O=-1,I="t8B~pq`",l>0)?main(l/2):printf("%d\n",--i);}
Bạn thử bỏ vài phút nghĩ xem chương trình trên làm gì? Tôi chọn ví dụ này vì nó ngắn. Các ví dụ khác trông "ghê gớm" hơn nhiều: ví dụ 1, ví dụ 2, ví dụ 3.

Thế các chương trình loại này chỉ dùng để đố nhau cho vui, hay có ứng dụng gì khác?

Thử tưởng tượng ta tìm được một phương thức nào đó để viết một chương trình O làm công việc như sau: cho một chương trình P bất kỳ, O sẽ biến P thành chương trình O(P) với chức năng hệt như P, chỉ khác ở chỗ là đọc O(P) ta không thể hiểu được logic của nó, và vì thế ta không biết P thật sự chạy như thế nào. [Kể cả là đọc bằng máy tính hay đọc bằng mắt thường!]

Một chương trình O như vậy có rất nhiều ứng dụng trong mật mã hóa, đánh dấu mờ (watermark) phần mềm, bảo vệ phần mềm (software protection), vân vân.

Ví dụ tôi có một giải thuật tân kỳ nào đó và tôi muốn bán cho người khác để họ dùng giải thuật này trong một chương trình lớn. Tôi viết giải thuật này thành một đoạn mã gọi là P, sau đó tôi gửi O(P) cho người mua và họ có thể dùng O(P) trực tiếp mà tôi không bị tiết lộ giải thuật này. Nói chung, O có thể dùng để chống reverse-engineering. Đây là ứng dụng bảo vệ phần mềm của O.

 

Tầm quan trong của toán học

 

Giáo sư Tim Gowers (giải thưởng Fields năm 1998) của đại học Cambridge có một bài nói rất hay về tầm quan trọng của toán học. Rất nhiều ý trong bài này áp dụng cả cho các khoa học khác, bao gồm khoa học máy tính.
Có vài quyển sách liên quan đến đề tài của bài nói này: "Toán học là gì? ", "Toán học: một giới thiệu cực ngắn", và " Sự hiệu quả đến mức vô lý của Toán học trong các khoa học tự nhiên".
Giáo sư Gowers viết khá nhiều các bài giới thiệu về nhiều đề tài khác nhau trong Toán.

Sunday, July 03, 2005

Vai trò của conference papers trong khoa học máy tính

Vì nhiều lí do lịch sử và bản chất ngành, những xuất bản trong các hội nghị (dưới dạng conference proceedings) trong ngành khoa học máy tính (KHMT) thường được xem có sức nặng tương đương một xuất bản trong một tạp chí. Ví dụ, theo tôi biết thì khoa máy tính đại học Washington , một trong những khoa về CS hàng đầu ở Mỹ, đánh giá một bài báo ở hội nghị AAAI tương đương với tạp chí Journal of Artificial Intelligence Research trong việc xem xét tenure của một giáo sư trong khoa.

Trên thực tế có nhiều công trình của KHMT có tính đột phá được xuất bản đầu tiên dưới dạng một conference proceeding. Mặc dù vậy, có những khác biệt căn bản giữa việc xuất bản trên một tạp chí định kỳ, và việc xuất bản trong một conference proceeding. Sự khác biệt lớn nhất là, vì những lý do hạn chế về mặt thời gian, những bài báo ở hội nghị thường không được đánh giá (review) một cách cẩn thận; vì lý do hạn chế về độ dài bài báo (thường là 6 đến 8 hoặc 10 hoặc 12 trang), nhiều chi tiết quan trọng trong kết quả trình bày thường bị bỏ qua mà vẫn được châm chước. Dẫn đến, nhiều claims trong bài báo có thể bị thổi phồng mà không ai có thể kiểm chứng được.

Điều này có thể dẫn đến hậu quả tai hại đối với một vấn đề nghiên cứu cụ thể nói riêng, cũng như thái độ nghiên cứu nói chung trong KHMT, dễ bị mắc phải cả với những người nghiên cứu lâu năm cũng như những học sinh sinh viên cao học trẻ tuổi: Một công trình nghiên cứu có triển vọng nhưng được thực hiện và trình bày một cách hời hợt vẫn có thể được xuất bản ở những hội nghị có uy tín, và được coi như một xuất bản ở một tạp chí đầu ngành.

Lấy một ví dụ về ngành machine learning , một lĩnh vực mang đậm tính liên ngành (liên quan đến thống kê (statistics), thuật toán (algorithms), lý thuyết thông tin (information theory)), và có ứng dụng rộng khắp trong các vấn đề xử lý dữ liệu (data analysis) trong các ngành khoa học ứng dụng. Một trong những hội nghị có uy tín nhất của ML là NIPS . Để được chấp nhận vào hội nghị này không dễ. Quả thực có khá nhiều ý tưởng, phát hiện có tính đột phá được trình bày từ đây, như sự giới thiệu của thuật toán support vector machines , statistical inference algorithms in graphs , v.v. Mặc dù vậy, rất nhiều bài báo ở NIPS cũng rất tầm thường về nội dung, và người ta quên đi chúng rất nhanh sau khi được xuất bản. Một trong những lý do là format của bài báo chỉ có 6 trang nhỏ (một cột), không đủ để trình bày tỉ mỉ những chi tiết quan trọng về thuật toán, chứng minh, cũng như kết quả thực nghiệm. Những người ở trong ngành đủ lâu đều biết là có những "magic formula" để có thể làm một bài báo được xuất bản ở những hội nghị (kể cả là có uy tín nhất) như thế.

Dầu sao thì NIPS cũng là một hội nghị có uy tín, và được nhiều người đầu ngành đến tham dự, cũng như nhiều sinh viên trẻ đến dự. Nó cũng là một trong những hội nghị thú vị nhất mà tôi hay đến dự. Nhưng sự coi trọng có phần thái quá của giới nghiên cứu ngành KHMT dẫn đến một sự thực là càng ngày càng có nhiều hội nghị vô cùng vớ vẩn về chất lượng. Một chuyện nực cười nhất là vừa qua, một nhóm học sinh KHMT ở MIT đã viết một chương trình tự động có thể viết ra những "research papers" , và ít nhất một bài báo của họ đã được nhận tại một hội nghị với một cái tên rất kêu 9th World Multi-Conference on Systemics, Cybernetics and Informatics . Hội nghị này được tổ chức năm thứ 9, và có đến 2904 bài báo chấp nhận năm naỵ Đây là một trong rất nhiều hội nghị liên quan đến ngành máy tính, được tổ chức bởi một nhóm người đứng ra để thu lời từ tiền registration fee, và được sự ủng hộ của những người mong muốn cải thiện publication records của mình bằng mọi cách.

Có nhiều điều có thể rút ra về câu chuyện này. Có lẽ cần phải có sự điều chỉnh về quan niệm xuất bản ở hội nghị và các tạp chí. Việc đánh giá khả năng bằng số lượng bài báo thay vì chất lượng, sự coi trọng thái quá đối với xuất bản ở hội nghị, đang góp phần dẫn đến sự thờ ơ của nhiều người trong việc tìm cách xuất bản những kết quả nghiên cứu trọn vẹn của mình tới những tạp chí đầu ngành.

Những công trình có giá trị nhất phải là những công trình sẽ giữ được giá trị của nó với thời gian, và do đó, cần phải được thẩm định và xuất bản ở các tạp chí có uy tín. Hạn chế lớn nhất đối với việc xuất bản ở một tạp chí là, thời gian từ lúc nộp bài đến lúc được xuất bản trên một tạp chí có thể rất lâu. Ví dụ với một số tạp chí mà giới làm về machine learning, thống kê hay xử lý dữ liệu hay tham khảo, như
the Annals of Statistics , hay IEEE Transactions on Information Theory có thể mất đến 2 năm. Trong khi đó, với các hội nghị, thời gian đó chỉ khoảng 6 tháng. Hiện tại, các tạp chí điện tử (on-line journals) đang được hình thành để rút ngắn khoảng thời gian turn-around đó.

Chương trình xấu, đẹp, ướt át, khô khan, tồi, tốt

Copy from : Pro Ngo Hung CSE of Buffalo  
Khi dạy lớp mạng máy tính, tôi cho sinh viên viết chương trình trên mạng. Dù nội dung chính của lớp là mạng máy tính, tôi vẫn đặt tiêu chuẩn cao trong kỹ năng lập trình và cách trình bày chương trình. Tôi rất thích một đoạn trong quyển sách " cấu trúc và biên dịch các chương trình máy tính" của các giáo sư Harold Belson và Gerald Jay Sussman:
  • Ngôn ngữ máy tính không chỉ dùng để bảo máy tính làm các tác vụ này khác. Ngôn ngữ máy tính còn là phương tiện truyền tải các ý tưởng về mặt phương pháp. Vì thế, các chương trình máy tính phải được viết để cho người đọc; việc máy tính hiểu và chạy một chương trình chỉ là mục tiêu phụ.
Đây là một trong những quyển sách về máy tính hay nhất mà tôi biết (dù là nó được viết trong ngữ cảnh của ngôn ngữ Scheme). Cá nhân tôi rất ghét các chương trình viết cẩu thả. Vì thế, tôi thường cho sinh viên các ví dụ về các chương trình loại này. Sau đây là ví dụ của một chương trình tồi và chương trình tốt.

Để cho lớp học thêm sinh động, tôi cho cả các ví dụ các chương trình ướt át, khô khan, đẹp, và xấu. Đoạn chương trình xấu là đoạn đáng chú ý. Nó là một ví dụ của một chương trình C được cố ý làm cho rối rắm lên ( obfuscated C code). Có cả một cuộc thi quốc tế hàng năm cho các chương trình loại này. Lần tới ta sẽ bàn thêm về chúng.

Bình chọn triết gia vĩ đại nhất

 

BBC Radio 4 có chương trình bầu chọn triết gia vĩ đại nhất mọi thời đại. Danh sách các triết gia vào "chung kết" gồm có:

  1. (Thánh) Thomas Aquinas (Ý, 1225 - 1274)
  2. Aristotle (Hy Lạp, 384 BC - 322 BC)
  3. Rene Descartes (Pháp, 1596 - 1650)
  4. Epicurus (Hy Lạp, 341 BC - 270 BC)
  5. Martin Heidegger (Đức, 1889 - 1976)
  6. Thomas Hobbes (Anh, 1588 - 1679)
  7. David Hume (Scotland, 1711 - 1776)
  8. Immanuel Kant (Đức, 1724 - 1804)
  9. Søren Kierkegaard (Đan Mạch, 1813 - 1855)
  10. Karl Marx (Đức, 1818 - 1883)
  11. John Stuart Mill (Anh, 1806 - 1873)
  12. Friedrich Nietzsche (Đức, 1844 - 1900)
  13. Plato (Hy Lạp, 427 BC - 347 BC)
  14. Karl Popper (Áo/Hung, 1902 - 1994)
  15. Bertrand Russell (Anh, 1872 - 1970)
  16. Jean-Paul Sartre (Pháp, 1905 - 1980)
  17. Arthur Schopenhauer (Đức, 1788 - 1860)
  18. Socrates (Hy Lạp, 470 BC - 399 BC)
  19. Baruch Spinoza (Hà Lan, 1632 - 1677)
  20. Ludwig Wittgenstein (Áo, 1889 - 1951)

Đáng tiếc là trong danh sách "chung kết" này không có Phật Thích Ca, Khổng Tử, Lão Tử , Trang Tử, và cũng không có cả Georg Hegel hay Gottfried Leibniz.

Dĩ nhiên cái trò bầu bán kiểu này rất vô nghĩa, nhưng tôi cũng tò mò muốn biết kết quả. Bản thân tôi không biết chọn ai giữa Aristotle, Descartes, và Kant, thậm chí cả Russell.

Saturday, July 02, 2005

Chương trình tự tái sinh (hết)


Trong các bài trước, ta đã "chứng minh" rằng mọi chương trình có thể lấy được đoạn mã của chính nó. (Chứng minh điều này một cách chặt chẽ bằng toán học cũng không có gì khó khăn, tương tự như các ý tưởng ta đã trình bày, chỉ cần định nghĩa rõ ràng thế nào là một chương trình.) Phát biểu này thường được gọi là định lý đệ qui (recursion theorem).

Trong bài này, ta minh họa một ứng dụng của định lý đệ qui. Ta sẽ dùng định lý này để chứng minh rằng bài toán dừng không quyết định được. Tôi sẽ thảo luận ý tưởng chính, bỏ qua các chi tiết toán không quan trọng. Bài toán dừng đại khái có thể phát biểu như sau: "
cho một đoạn mã chương trình [M] và một chuỗi w, quyết định xem với input w thì M có dừng sau một số hữu hạn các bước hay không? " (Ta dùng [M] để chỉ đoạn mã của chương trình M.)

Định lý : không tồn tại chương trình nào giải bài toán dừng.

Chứng minh: giả sử có chương trình A giải bài toán dừng, ta thiết kế một chương trình M để làm phản chứng như sau

  1. Gọi input của Mw
  2. M tự lấy đoạn mã [M] của chính nó
  3. M chạy A với input là ([M], w).
  4. Nếu A trả lời là "dừng" thì M nhảy vào một vòng lặp vô tận.
  5. Nếu A trả lời là "không dừng" thì M dừng.

Như vậy A không thể nào quyết định xem M có dừng hay không!

Chứng minh trên rất đặc trưng cho lập luận đường chéo của Cantor, thường được dùng cho các bài toán mà đối tượng có tính tự tham chiếu. Lý luận kiểu như trên là một trong những công cụ rất mạnh để chứng minh phản chứng trong lý thuyết tính toán.

Không biết các bạn thế nào chứ lúc đầu tôi thấy việc thiết kế chương trình tự in khá là phản trực quan. (Tưởng tượng một nhà máy sản xuất gỗ lại có thể sản xuất một nhà máy sản xuất gỗ y hệt như nó.) Thế mà câu trả lời không những là có các chương trình như vậy, mà còn có cả một nguyên tắc viết các chương trình đó.

Trong loạt bài này, ta đã đi từ một câu hỏi tự tham chiếu này (chương trình tự in) sang câu hỏi tự tham chiếu khác (bài toán dừng). Ta dùng câu trả lời cho câu hỏi đầu để trả lời không cho câu hỏi thứ hai.

Friday, July 01, 2005

Chương trình tự tái sinh (4)


Chương trình tự tái sinh có nhiều ứng dụng thú vị. "In bản thân" chỉ là một ví dụ của sự tái sinh.

Các virus máy tính đều có chức năng tái sinh "y chang" này, nhưng thay vì in ra stdout, chúng tự copy bản thân qua một địa chỉ mới (trong bộ nhớ, qua mạng, hay xuống đĩa cứng). Trong bài
tiến hóa số tôi có đề cập đến các chương trình máy tính tự tái sinh dùng để mô phỏng tiến hóa của các loại "vi khuẩn số" đơn giản.

Trong tương lai, bạn có thể tưởng tượng các chương trình phức tạp hơn, hay các robots tự tái sinh. Hy vọng đến đây bạn đã được thuyết phục rằng sự tự tái sinh không phải là thứ vô vọng về mặt triết học.

Trong các ví dụ trước, ta chỉ thiết kế các chương trình có chức năng duy nhất là in ra bản thân. Còn bọn "vi khuẩn số" hay viruses còn làm các việc khác nữa. Chuyện này không có gì khó. Giả sử ta có chương trình T làm việc gì đó (phá đĩa cứng chẳng hạn), ta có thể thiết kế chương trình ABT bao gồm đoạn A = P( x), đoạn B giống như trước, và đoạn T. Thay vì A ghi x = B vào vùng nhớ, thì trong trường hợp này A sẽ ghi x = BT, còn B thì in P(x)x như cũ. Như vậy ta đã bổ túc cho chương trình T chức năng tự tái sinh mà không cần suy nghĩ gì nhiều.

Cái mô hình máy có bộ vi xử lý truy cập một vùng nhớ chung của ta chính là mô hình máy Turing. Lần tới ta sẽ dùng ý tưởng về sự tự tái sinh này để chứng minh rằng có bài toán không quyết định được bằng máy Turing (xem thêm
chung qui chỉ tại Cantor). Như đã nói trong bài "chung qui chỉ tại Cantor", khái niệm tự tham chiếu là một khái niệm then chốt. Vì thế, cũng không ngạc nhiên lắm khi sự tự tái sinh có liên quan đến vấn đề không quyết định được.

Bài tập 1 : viết một chương trình C chép file X sang file Y, sau đó tự in bản thân nó (C) ra stdout.

Để minh họa khái niệm tự in và tự tham chiếu một lần nữa, hãy xét ví dụ sau (tôi lấy
ở đây):

  • This sentence has three a's, two c's, two d's, twenty-eight e's, four f's, four g's, ten h's, eight i's, two l's, eleven n's, six o's, seven r's, twenty-seven s's, eighteen t's, three u's, five v's, six w's, three x's, and three y's.
Bài tập 2 : viết một chương trình C tìm một câu tiếng Việt có nội dung tương tự.

Bài tập 3: có phải tất cả các ngôn ngữ đều có một câu dạng này hay không? Ngôn ngữ với tính chất gì thì có một câu như vậy?

Chương trình tự tái sinh (3)

Ta thử dùng nguyên tắc mô tả trong ví dụ trước để viết một chương trình C tự in bản thân. Lần thử đầu tiên, chương trình A ghi x vào biến buffer, chương trình B in ra đoạn chương trình P(x), sau đó in x. Kết quả đại khái như sau:

int main() {
char* buffer = "printf(\"int main() {\\n char* buffer = %s;\\n %s\\n}\\n\", buffer, buffer);";
printf("int main() {\n char* buffer = \"%s\";\n %s\n}", buffer, buffer);
}

Lần thử này không thành công lắm, dù chương trình này in ra một chương trình gần giống nó. Vấn đề nằm ở cả đống ký tự thoát (escape characters '\'). Nó in thế này:

int main() {
char* buffer = "printf("int main() {\n char* buffer = %s;\n %s\n}\n", buffer, buffer);";
printf("int main() {\n char* buffer = %s;\n %s\n}\n", buffer, buffer);
}

Rút kinh nghiệm, tôi tránh các escape characters và thay chúng bằng mã ASCII. Mã ASCII của ký tự xuống dòng (linefeed) là 10, và của ký tự ngoặc kép (") là 34. Kết quả lần thử thứ hai cho đoạn chương trình:

int main() {
char* buffer = "printf(\"int main() {%c char* buffer = %c%s%c;%c %s%c}\", 10, 10, 34, buffer, 34, 10, buffer, 10);";
printf("int main() {%c char* buffer = %c%s%c;%c %s%c}", 10, 34, buffer, 34, 10, buffer, 10);
}

Chương trình này in ra

int main() {
char* buffer = "printf("int main() {%c char* buffer = %c%s%c;%c %s%c}", 10, 10, 34, buffer, 34, 10, buffer, 10);";
printf("int main() {%c char* buffer = %c%s%c;%c %s%c}", 10, 10, 34, buffer, 34, 10, buffer, 10);
}

Giống lắm rồi. Nhưng vẫn bị một escape character \ cho dấu " của printf. Lý do là vì cả printf lẫn định nghĩa buffer đều dùng ", mà nếu bỏ " vào trong định nghĩa buffer thì phải escape nó. Nhưng ta hoàn toàn có thể printf mà không dùng " như sau:

int main() {
char* buf1 = "char buf2[] = {'i', 'n', 't', ' ', 'm', 'a', 'i', 'n', '(', ')', ' ', '{', '%', 'c', ' ', 'c', 'h', 'a', 'r', '*', ' ', 'b', 'u', 'f', '1', ' ', '=', ' ', '%', 'c', '%', 's', '%', 'c', ';', '%', 'c', ' ', '%', 's', '%', 'c', '}', (char) 0}; printf(buf2, 10, 34, buf1, 34, 10, buf1, 10);";
char buf2[] = {'i', 'n', 't', ' ', 'm', 'a', 'i', 'n', '(', ')', ' ', '{', '%', 'c', ' ', 'c', 'h', 'a', 'r', '*', ' ', 'b', 'u', 'f', '1', ' ', '=', ' ', '%', 'c', '%', 's', '%', 'c', ';', '%', 'c', ' ', '%', 's', '%', 'c', '}', (char) 0}; printf(buf2, 10, 34, buf1, 34, 10, buf1, 10);
}

Bạn có thể dịch và chạy thử đoạn trên, in ra chương trình y hệt

Probability Surveys

 

Nhân anh Hưng nói về xuất bản hàn lâm, tôi muốn nhắc tới chuyện giáo sư Jim Pitman và các nhà xác suất học (probabilists) hàng đầu khác đang phát động một dự án lớn về xuất bản on-line. Dự án này gọi là The Mathematics Surveys, với mục đích thiết lập một hệ thống tạp chí on-line lớn cho các ngành hẹp khác nhau của toán học, trong đó có kể cả ngành khoa học máy tính. Hiện tại, dự án được bắt đầu với ngành xác suất (probability and stochastic processes), với hy vọng ý tưởng này sẽ được copy đến các ngành khác trong toán học.

Tạp chí điện tử
The Probability Surveys là một sự khởi đầu có triển vọng. Ðiều khác biệt của dự án Mathematics Survey với các tạp chí điện tử khác là ở chỗ, những bài báo sẽ có tính chất survey hơn, và như vậy sẽ có tác dụng rất tốt với những người nghiên cứu ngoài ngành toán muốn ứng dụng các công cụ toán học mới, cũng như những người muốn tìm hiểu ngành hẹp khác nhau nắm bắt và tiếp thu được xu hướng phát triển của nhau.

Như
chùm bài về Cantor đã gợi, toán học, đặc biệt là lý thuyết logic và tập hợp, có vai trò nền móng cho sự hình thành của khoa học và công nghệ máy tính. Ngày nay, càng có nhiều ngành trong công nghệ máy tính đòi hỏi các công cụ toán học cao cấp khác, từ xác suất thống kê, hình học topo cho đến lý thuyết tối ưu hóa. Những người học và nghiên cứu lý thuyết khoa học máy tính, lý thuyết thông tin (information theory) và xử lý tín hiệu (signal processing), trí tuệ nhân tạo (artificial intelligence), v.v. chắc chắn sẽ thu lượm được nhiều từ những tạp chí survey điện tử toán học trong tương lai.