Thứ Bảy, 31 tháng 1, 2015

Các bài toán về khoa học máy tính (1) Dùng biểu thức chính quy hay tìm kiếm nhị phân

Nguyễn Ái Việt - Từ tuần này sẽ đề ra một số bài toán không khó về mặt kỹ thuật, nhưng có tính gợi mở những ý tưởng ứng dụng mới và đòi hỏi sáng tạo về kỹ thuật.

Tuần này sẽ bắt đầu bằng một bài toán về xử lý ngôn ngữ tự nhiên, nhưng xử lý đặc thù tiếng Việt. Lý do 1: xử lý tiếng Việt là lĩnh vực công nghệ mà người Việt phải quan tâm hàng đầu, vì không thể chờ đợi người nước ngoài làm hộ. Lý do 2: Một kỹ sư lập trình trước tiên phải thành thạo xử lý chuỗi text. Bài toán này vừa là một bài tập xử lý chuỗi, đánh giá tốc độ tính toán có quy mô một dự án nhỏ, nhưng có thể áp dụng cho xử lý tiếng Việt

 Bài toán: So sánh tốc độ tính toán xác định một chuỗi ký tự có phải là âm tiết tiếng Việt hay không theo hai cách:
   i) Sử dụng một danh sách các âm tiết tiếng Việt (gồm khoảng gần 70 nghìn âm tiết, theo cơ sở dữ liệu của công ty VIEGRID JSC) đã được sắp xếp theo trật tự từ điển và sử dụng tìm kiếm nhị phân để xem chuỗi ký tự có nằm trong danh sách hay không.
  ii)  Sử dụng một biểu thức chính quy (REGEX) về một âm tiết tiếng Việt và một thuật toán match biểu thức chính quy.

Chủ Nhật, 18 tháng 1, 2015

Ngụy biện và Charlie Hebdo

Thế giới chia làm hai phần. Có những người lên án việc bọn khủng bố Hồi giáo tàn sát những họa sĩ châm biếm làm việc cho tờ Charlie Hebdo, đa số là những người tử tế và những người cực đoan, bênh vực bọn này.
Số những người lên án bọn khủng bố lại chia làm hai. Có những người kịch liệt ủng hộ Charlie Hebdo, cho Charlie Hebdo đúng hoàn toàn và những người không nghĩ thế. Hai nhóm người này lại chia tiếp tục chia thành các nhóm nhỏ hơn. Việc đó không có gì đáng nói. Thế giới này sở dĩ thú vị vì kể từ khi biết thế nào là tự do, người ta chấp nhận các cách nhìn nhận khác mình. Loài người là một loại động vật tồi tệ nhất kể từ khi cho phép mình tiêu diệt đồng loại chỉ vì khác biệt ý kiến về một vấn đề.
Tuy vậy, ít ai để ý tới sự gian manh, quỷ biện của Charlie Hebdo. Tờ báo này cố tình dùng phép ngụy biện, đồng nhất một số vấn đề, một cách vô lương. Trước hết họ đánh đồng việc châm biếm, khiêu khích tín đồ Hồi giáo của họ với bảo vệ tự do. Tự do của nắm đấm của chúng ta bắt đầu ở ở chỗ mũi của người khác chấm dứt. Nếu chúng ta hoa chân múa tay đấm đá vào khoảng không trước mũi của người khác 1mm, tuy vẫn là việc tự do cho phép, nhưng đã là một việc khiêu khích, người văn minh yêu tự do, không nên làm. Hãy tưởng tượng, một người giả bộ khập khiễng trước mặt người què để làm vui, nhai mỡ lợn sấy nhồm nhoàm trong nhà thờ Hồi giáo, hay in ảnh người thân đã khuất của bạn lên giấy vệ sinh và cho rằng đó là hài hước là tự do. Đó chính là khiêu khích. Khiêu khích không những vô văn hóa mà còn ngu xuẩn. Trêu chọc một kẻ điên khùng, kích động một con bò điên hay chó dại, giơ đầu ra đi dưới giàn giáo có đá rơi, rồi cho mình là tự do hay anh hùng. Khiêu khích để người ta phạm tội, chính mình cũng sẽ có tội.
Ngụy biện thứ hai có phần bất lương hơn là Charlie Hebdo đồng nhất bản thân tòa báo với những họa sĩ bị giết. Các họa sĩ bị giết là người làm công cho Charlie Hebdo, họ bị giết gia đình của họ mất người thân. Charlie Hebdo nhờ sự kiện mà thu hút người quan tâm tăng vọt, khả năng thu lợi khổng lồ. Quyền lợi khác, vì thế khác làm sao là một được. Điều bất lương ở chỗ Charlie Hebdo có biết trêu chọc con bò điên, đi dạo dưới đá rơi hay khiêu khích Hồi giáo là nguy hiểm tới tính mạng hay không. Sau sự kiện 11/9, nếu ai không biết đến sự nguy hiểm của các tín đồ Hồi giáo cực đoan, có lẽ họ sống trongg rừng hay trên hành tinh khác chứ không phải ở Paris. Nếu đã biết điều đó, Charlie Hebdo vẫn đang tâm bỏ mặc các nhân viên của mình đi vào chỗ chết. Đó là hành động gì.
Điều bất lương thứ ba là việc Charlie Hebdo vẫn cố tình ngụy biện nhân danh tự do, dùng những người đã chết để kiếm lợi ích truyền thông.
Tôi không nói về nhận thức của Charlie Hebdo về tự do, về tôn giáo và văn hóa. Tôi không hy vọng có cái gì như thế. Nhưng những người hôm nay tự xưng "Tôi là Charlie" hãy nghĩ về phép ngụy biện và tự do chân chính.

Giải toán, làm toán và kỹ năng thực tế

Tôi chưa bao giờ cảm thấy sung sướng khi giải được một bài toán như các bạn cùng lứa. Dù là bài toán tính hay là một bài chứng minh. Năm lớp 4-5, tính toán một dãy số dài là một kỷ niệm hãi hùng đối với tôi. Kỳ thi học sinh giỏi Toán thành phố, tôi suýt được điểm tuyệt đối, nhưng ở bước cuối cùng tính sai công thức giải phương trình bậc 2, bị trừ 1.5 điểm. Năm lớp 6, khi các bạn học tới các tam giác, phân giác, đường cao, tôi vẫn loay hoay không biết thế nào là chứng minh, để hiều được hai góc đối đỉnh bằng nhau.

Sau này, khi để ý học Toán tôi bắt đầu tích cóp các mẫu bài tập khó. Tuy nhiên, tôi không cho rằng việc học cách giải một bài toán có gì là sáng tạo. Tôi chỉ thấy đó là việc biết và không biết, còn chuyện biết một vài mẹo rồi áp dùng cho các biến thể hơi khác hoặc các tổ hợp phức tạp, chỉ là kỹ năng phân tích. Từ khi đó, tôi thấy việc đi giải bài toán là nhạt nhẽo, vì có hàng vạn bài toán trên đời.

Năm lớp 7, đọc Tư Mã Thiên Sử Ký đến đoạn Hạng Vũ nói: Học kiếm giỏi lắm cũng đánh được vài người, ta muốn học cái đánh vạn người, bèn học binh pháp, tôi hỏi cha: có môn học nào học cách giải tất cả các bài toán không. Cha tôi nói không biết, phải chăng là Triết học. Tôi mầy mò đọc Triết, thấy chỉ là một mớ lý lẽ u minh, chẳng liên quan gì tới thực tế. Tình cờ tôi có bà bác làm thủ thư ở Thư viện Hà Nội cho mượn cuốn Giải bài toán thế nào và Toán học và những suy luận có lý của G.Polya. Phải nói là tôi không thể hiểu hết được những điều trong đó, phần vì sách mượn không thể giữ lâu, phần vì kiến thức còn sơ sài. Nhưng đọc xong, đúng là có thể giải hàng loạt bài toán. Đặc biệt là việc đưa ra các phương pháp luận như xét trường hợp riêng, tổng quát hóa, xét tính đối xứng,... Khi học đến hình học không gian, nhiều người chới với vì hầu như không có mẫu bài tập, làm bài nào biết bài đó. Tôi cố gắng suy nghĩ và tự phát hiện ra một bí mật: rất nhiều bài toán hình không gian đều có mấu chốt là một bài toán hình học phẳng trên một mặt phẳng nào đó. Vấn đề chỉ là việc nhìn ra mặt phẳng nọ mà thôi. Tôi luyện kỹ năng theo hướng này và trở thành chuyên gia hình không gian với rất ít khổ luyện giải bài toán. Tất nhiên, có những bài hình không gian mà phương pháp này không áp dụng được thì tôi đầu hàng luôn sau khi xoay đủ kiểu.

Nhưng từ đó tôi bắt đầu đọc các sách lý thuyết như Hình Giải Tích, Đại số cao cấp, thậm chí đọc một sách chuyên khảo và viết một bài nghiên cứu về các đường conic từ lớp 8. Hầu như bài vở bài tập trên lớp không hề ngó tới, thậm chí chẳng biết thế nào là đạo hàm, loga, công thức sin cos cộng góc. Khi nào đi thi bỏ 2 ngày đọc một quyển bài tập có sẵn lời giải, cũng nhiều lần điểm đạt tối đa, cũng có khi bỏ 1-2 bài, nhưng tôi thấy tạm đủ.

Lên đại học, cố nhiên không thể học theo cách giải từng bài toán được. Rất nhiều bạn của tôi bị sốc, và cho rằng Toán Đại học khác và Toán Sơ cấp khác. Tôi chỉ thấy nghiên cứu Toán và giải Toán là hai việc khác nhau. Tôi không cho rằng học toán sẽ có ích lợi nếu chỉ bằng cách rèn luyện kỹ năng giải Toán. Tôi cho rằng nắm được các concept chính, vạch ra mối quan hệ và đặt ra một lớp các bài toán cùng với phương pháp chung cho lớp đó quan trọng hơn nhiều. Có lẽ đây là tư duy của Vật lý lý thuyết, chứ không phải là tư duy của Toán lý thuyết. Chẳng hạn như phương trình Einstein hay bài toán nhiều vật là những bài toán không có lời giải tổng quát. Vấn đề là phải thêm các điều kiện để có bài toán giải được, nhưng không đặc biệt để có thể bao gồm "hàng vạn bài toán" có thể giải bằng một phương pháp thống nhất. Tôi giải ra nhiều bài toán vào lúc ngủ mơ màng, có lẽ là khi đó tư duy không bị nhiễu bởi các tạp niệm, các khái niệm trở nên sạch và các mối quan hệ trở nên rõ ràng hơn.

Sau này, con trai tôi, khi lên lớp 5 tình cờ có nói một câu: cuộc đời có nhiều việc phải làm, nếu phải làm toán thì thà giải hàng vạn bài toán dễ còn hơn làm một bài toán khỏ. Việc tách một bài toán khó thành nhiều bài toán dễ với mẹo mực có sẵn hoặc ai đó đã giải chính là làm toán. Khác biệt giữa làm toán và giải toán theo cách hiểu sơ cấp chính là như vậy. Làm Toán là hình thành phương pháp, nếu giỏi chuyển sang ứng dụng không có vấn đề gì. Chỉ chăm chăm giải các bài toán riêng rẽ lầ tự giam mình trong hũ nút, chính là căn bệnh của một số mọt Toán học mãi không thành tài, mặc dù tư chất không phải là ngu độn.

Tất nhiên là ứng dụng không có nghĩa là là bắt buộc phải giỏi làm Toán. Nhưng Toán học sẽ đem lại sự khác biệt, chí ít là đối với người Việt Nam, không có điều kiện thực nghiệm, kém về phương pháp luận và thiếu nền tảng triết lý.

Tào Tháo bỉ mặt Trương Tùng mất Thục - Lệnh Lỗi Dương

Cuối tuần này, các việc gấp đã tạm thư, tiếp tục mục Luận Tam Quốc

   Cuối đời Hán Linh Đế, nạn mua quan bán chức lan tràn, những kẻ bất tài hối lộ làm quan đầy rẫy, đè nén dân gian trục lợi, oán thán đầy đồng, điêu dân làm loạn theo bọn Khăn Vàng mong đổi đời. Công khanh dâng biểu tiến cử các đại thần có danh vọng, phẩm cách thanh cao làm chức Mục ở các châu. Các quan Mục đều được phong hầu, được dùng màn trướng y phục sắc đỏ. Vào chầu được được đi xe công xa tứ mã, đãi ngộ đặc biệt, địa vị tôn quý, quyền thay thiên tử sinh sát một phương. Ích Châu có Lưu Yên, Kinh Châu có Lưu Biểu, U Châu có Lưu Ngu đều là tôn thân nhà Hán.
Lời bình của Lệnh Lỗi Dương
  Loạn là do thể chế yếu, chứ không phải thể chế yếu do loạn. Loạn bắt đầu từ việc không dùng hiền tài. Quan lại chạy theo lợi riêng, bỏ bê việc phải chăm sóc đời sống và giáo hóa cho dân. Xét Linh Đế muốn cải cách, cũng là đáng khen, nhưng thay vì tăng quyền lực Trung ương lại tăng quyền lực địa phương để đến nỗi sau này các sứ quân tự chuyên đánh giết lẫn nhau không kiểm soát nổi, đến nỗi thiên hạ chia ba, chẳng phải là sai lầm từ gốc sao. 

Lưu Yên vốn dòng dõi Lỗ Cung Vương Lưu Giao, gia tộc được phong ở Huyện Cánh Lăng, Giang Hạ, thuộc Kinh Châu. Cha Yên là bậc đại nho đời Hán mạt là Lưu Hướng. Do là tông thất nên từ trẻ đã được bái làm Trung Lang, rồi dần trải qua các chức Huyện lệnh, Thái thú, Thứ sử rồi đến bậc công khanh như Tông Chính, Thái thường. Khi triều đình có chính sách cử quan Mục, Lưu Yên muốn tránh loạn đảng trong triều bèn xin làm quan Mục ở Giao Chỉ. Sau nghe lời quan Thị Trung là Đổng Phù, thạo giảng sấm ký, nói Ích Châu có khí tượng đế vương bèn xin vào Thục. Được phong Dương Thành Hầu, Giám quân Sứ giả, lĩnh Mục Ích Châu. Đổng Phù và Triệu Vĩ là các quan lại có tiếng tăm đi theo Yên làm vây cánh. Yên đến châu, giết thứ sử cũ là Khích Kiệm, thu nạp lưu dân làm vây cánh gọi là quân Đông Châu. Ích Châu giàu có và trở thành một sứ quân mạnh. Yên nghe lời sấm ký, nói chân mệnh thiên tử có hoàng hậu họ Ngô, bèn cưới thêm vợ là Ngô thị, chế xe cộ nghi trượng thiên tử. Phía bắc cấu kết với bọn Mã Đằng làm phản, phía Đông sai Trương Lỗ nắm lấy Hán Trung. Phía Nam ngăn đường sang Kinh Châu. Lại cắt đường sạn đạo, tuyệt tin tức với nhà Hán. Những kẻ chống lại Yên tại châu đều bị Yên giết chết.
Lời bình của Lệnh Lỗi Dương 
   Lưu Yên là tôn thân nhà Hán, vốn là người có học đậu khoa Hiền lương Phương Chính, có danh vọng. Nhưng tham hư danh mà đắm vào mê tín dị đoan. Nắm trong tay Ích Châu giàu mạnh mà mưu đồ cá nhân đen tối. Sau này Lưu Bị lên ngôi Hoàng Đế lấy con gái của Ngô Ban làm hậu. Chân mệnh đế vương đâu chỉ vì một việc lập hậu.

Lưu Chương nối cơ nghiệp của cha, giả mệnh thiên tử lĩnh Ích Châu Mục. Triều đình lắm việc không xét tới lại gia phong Phấn Uy tướng quân. Ích Châu, binh nhiều lương lắm, lại thu nạp được kẻ sĩ từ Kinh Tương bất đắc chí về theo. Võ thì có bọn Bàng Hi, Trương Nhiệm, Hoàng Quyền, Lý Nghiêm, văn thì có bọn Trương Tùng, Pháp Chính, Bành Dạng, Mạnh Đạt. Chương bản tính khoan hòa, tuy thích nói chuyện nhân nghĩa nhưng không có uy để ngăn quân Đông Châu tàn hại bách tính. Tuy có nhiều nhân tài nhưng do dự không dám hành động, lại khăng khăng cố chấp những điều nhỏ mọn, nên lòng người dần chia lìa muốn tìm chủ khác để thực hành tài học của mình.
Lời bình của Lệnh Lỗi Dương 
  Người có chân mệnh thiên tử phải có viễn kiến, không câu nệ tiểu tiết. Đâu phải chỉ nói chuyện giống bậc vương giả mà thành vương giả. Sau này rước quân Kinh Châu vào Thục rồi lại đổi ý gây hấn, đánh nhau với Lưu Bị ba năm, xương dân chất trắng đầy đồng. Mới biết do dự, u mê là do tư chất ngu độn mà ra, thà về đuổi gà cho vợ, ôm đống của làm anh trọc phú còn hơn. Sau này Chương lại theo Tôn Quyền, được phong Thứ sử Ích Châu hữu danh vô thực ở Kinh Châu.

Tào Tháo bôn ba nhiều năm, lao tâm khổ tứ đã dẹp được bọn Viên Thuật, Viên Thiệu, Lã Bố, Mã Đằng, thống nhất Trung Nguyên, củng cố chính quyền địa phương, đem quân xuống phía Nam, bình định Kinh Châu.  Lưu Bị đem quân bỏ chạy, liên hợp với Tôn Quyền, chống Tào, thế yếu. Quân Tào chỉ chờ một trận dẹp yên phương Nam, nên tạm không hỏi đến Hán Trung và Ích Châu. Lưu Chương kinh sợ bèn sai người mang lễ vật xin theo hiệu lệnh của Tháo. Lại cử quan Biệt giá là Trương Tùng đến xin nội thuộc nhà Hán.
Lời bình của Lệnh Lỗi Dương 
  Sau khi lấy Kinh Châu, nếu Tháo đem một cánh quân bình định Hán Trung thu nạp Ích Châu, lấy thế ép Giang Nam, đã không còn nhà Thục. Nhưng chắc Tháo coi thường Trương Lỗ, Lưu Chương là bọn ngu dốt, lúc nào cũng có thể lấy Thục như lấy đồ trong túi. Phàm việc đời, cái gì dễ phải lấy trước, tạo thanh thế cho đại cục, không cần dùng sức mà yên thiên hạ, giữ tính mạng cho trăm quân. Tháo đọc kỹ binh thư mà vẫn còn thích động binh chém giết, chưa nắm được tuyệt học của đạo đánh dẹp.  Nhưng chưa lấy Thục ngay cũng chưa phải là thất sách nếu biết trọng vọng Trương Tùng

Trương Tùng là quan Biệt Giá, một bậc rất cao của Ích Châu, thông minh trác tuyệt, kiến thức uyên thâm, biện bác ít người theo kịp, có tham vọng giúp đời, chỉ tiếc không gặp minh chủ để làm nghiệp lớn. Tùng tướng mạo cổ quái, xấu xí, râu thưa, trán ngắn, cao chưa tới 6 thước. Tháo gặp Tùng, không cho vào trong mắt, tỏ ý khinh bỉ, lại khoe khoang tài chinh phạt để áp đảo. Dương Tu khi đó là thư ký riêng của Tào Tháo, nhìn ra tài của Tùng, cho rằng Tùng có tài lạ, khuyên Tháo nên trọng vọng, nhưng Tháo không nghe. Tùng thất vọng mà dèm pha với Chương đoạn tuyệt với Tháo. Kịp khi Tháo thua ở Xích Bích, Chương bèn nghe theo Tùng. Tùng biết rằng Chương sớm muộn cũng để mất Ích Châu vào tay Tháo, bèn cùng bọn Pháp Chính, Mạnh Đạt bày mưu đón Lưu Bị vào Xuyên.
Lời bình của Tập Tạc Xỉ:
    Xưa Tề Hoàn một lần khoe công mà chín nước làm phản, Tào Tháo kiêu ngạo trong chốc lát mà thiên hạ chia ba, mấy chục năm chuyên cần bên trong đều đem vứt bỏ trong một thoáng cử động, há chẳng tiếc lắm hay sao!  Vì thế nên bậc quân tử phải hết sức khiêm cung đến trưa, lo nghĩ cho kẻ dưới, công cao mà phải ở vào chỗ nhún nhường, được tôn kính vẫn phải giữ lễ với kẻ hèn mọn. Tình gần với vật, nên dù quý hiển mà người ta không ghét mà trọng; đức hòa hợp với cuộc sống của mọi người, nên công nghiệp to lớn mà thiên hạ vẫn vui mừng hân hoan. Người như thế, có thể được phú quý, giữ được công nghiệp, đương thời được hiển hách, truyền phúc lại cho trăm đời, sao lại kiêu căng làm gì! Thế nên bậc quân tử biết Tào Tháo chẳng thể là người thâu tóm được thiên hạ vậy.

Lời bình của Lệnh Lỗi Dương: 
     Kiêu ngạo là tật chung của kẻ sĩ, kiêu nên mới cao khỏi đắm mình vào cái tầm thường. Nhưng Tháo kiêu, Tùng cũng kiêu. Nếu Tùng cẩn thận giữ được mạng về với Lưu Bị như Pháp Chính, công nghiệp có khác gì bọn Chính, Lượng. Có thể nói Tùng kiêu chẳng mất gì. Tháo kiêu, mất Thục, vứt bỏ công sức hàng chục năm, sau này thua ở Hán Trung mất cả huynh đệ. Mới biết rằng, cái kiêu không đúng chỗ, phải trả bằng thời gian, công sức và tính mệnh. Kiêu như Hán Cao Tổ với bọn Kình Bành, hay như Ngọa Long bắt Lưu Bị bâ lần cầu kiến mà thu phục được thiên hạ lại là việc khác.