Đăng ký Đăng nhập
Trang chủ Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học...

Tài liệu Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học

.PDF
32
360
80

Mô tả:

Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CAO HỌC CÔNG NGHỆ THÔNG TIN QUA MẠNG PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC ỨNG DỤNG CÁC THỦ THUẬT SÁNG TẠO TRONG CÁC BÀI TOÁN TIN HỌC Giảng viên: GS.TSKH Hoàng Kiếm Học viên thực hiện: Huỳnh Tuấn Anh CH1101004 Tp.HCM, 04/2012 Trang 2 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CAO HỌC CÔNG NGHỆ THÔNG TIN QUA MẠNG PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC ỨNG DỤNG CÁC THỦ THUẬT SÁNG TẠO TRONG CÁC BÀI TOÁN TIN HỌC Giảng viên: GS.TSKH Hoàng Kiếm Sinh viên thực hiện: Huỳnh Tuấn Anh CH1101004 Tp.HCM, 04/2012 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Lời cám ơn. Em xin chân thành cám ơn GS.TSKH Hoàng Kiếm đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt thời gian học chuyên đề này. Xin chân thành cám ơn quý thầy cô trong Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Tp.HCM đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu, tạo mọi điều kiện tốt cho chúng em học tập và nghiên cứu. Xin chân thành cám ơn gia đình và bạn bè đã ủng hộ, giúp đỡ và động viên em trong thời gian học tập và nghiên cứu. Mặc dù đã cố gắng hoàn thành bài luận nhưng chắc chắn không tránh khỏi thiếu sót. Em kính mong nhận được sự thông cảm và tận tình chỉ bảo của quý thầy cô. Học viên thực hiện Huỳnh Tuấn Anh TpHCM, 04/2012 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Mục Lục Lời nói đầu. .............................................................................................................................. 1 I. Tổng quan về phương pháp luận sáng tạo khoa học. ......................................................... 2 1. Khoa học: ........................................................................................................................ 2 2. Nghiên cứu khoa học: ..................................................................................................... 3 3. Phương pháp luận sáng tạo khoa học: ............................................................................. 3 4. Ý nghĩa, ích lợi của các thủ thuật sáng tạo cơ bản: ......................................................... 4 II. Các nguyên tắc (thủ thuật) sáng tạo và ứng dụng trong các bài toán tin học. ................... 7 III. Những sáng tạo trong công nghệ máy tính của tương lai. ............................................... 24 1. Máy tính quang học: ...................................................................................................... 24 2. Máy tính ADN:.............................................................................................................. 24 3. Máy tính nano: .............................................................................................................. 24 4. Máy tính phân tử và chấm: ............................................................................................ 25 5. Máy tính lượng tử:......................................................................................................... 25 6. Máy tính tích hợp trí thông minh nhân tạo: .................................................................. 25 Kết Luận. ............................................................................................................................... 27 Tài liệu tham khảo. ................................................................................................................ 28 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Lời nói đầu. Ấn tượng sâu sắc do những lợi ích Phương pháp luận sáng tạo và đổi mới đem lại cho cá nhân mình, cùng với sự khuyến khích của thầy GS. Altshuller, GS. Phan Dũng đã cho ra đời bộ sách “Sáng tạo và đổi mới”, trong đó quyển “Các thủ thuật (nguyên tắc) sáng tạo cơ bản, Phần 1” trình bày các lợi ích của 40 thủ thuật sáng tạo cơ bản nhìn dưới góc độ các kiến thức cơ sở của phương pháp luận sáng tạo và đổi mới. Các thủ thuật sáng tạo nói riêng, phương pháp luận sáng tạo và đổi mới nói chung là hệ thống các công cụ. Chúng có những ảnh hưởng ngược lại với người sử dụng chúng. Ví dụ, chúng giúp người sử dụng tăng óc quan sát, tò mò sáng tạo; khắc phục tính ì tâm lý, tăng tính nhạy của việc tiếp thu, xử lý và đánh giá giá trị của thông tin; phát triển trí tưởng tượng sáng tạo; giúp xây dựng tư duy biện chứng – hệ thống… Như chúng ta đã biết, về nguyên tắc, sáng tạo, và đổi mới có thể nảy sinh ở bất kỳ lĩnh vực nào. Trong bài luận này, em sẽ trình bày ứng dụng 40 nguyên tắc sáng tạo trong tư duy của con người để giải quyết các vấn đề - bài toán trong tin học, đồng thời nói đến những sáng tạo trong công nghệ máy tính của tương lai, em xin chân thành cám ơn GS.TSKH Hoàng Kiếm, giảng viên đã dạy môn học Phương pháp luận sáng tạo khoa học, đã cung cấp cho em kiến thức để em hoàn thành bài luận này. Trang 1 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Tổng quan về phương pháp luận sáng tạo khoa học. I. 1. Khoa học: Lịch sử phát triển khoa học từ xưa đến nay đã có nhiều quan niệm khác nhau về khoa học: - Aristote cho rằng : “Chỉ có cái tổng quát mới đáng gọi là khoa học”. - Furie: “Khoa học phải hướng tới cái chân lí tổng quát hoặc hơn nữa là cái tất yếu về cùng một đối tượng”. - Cuvrie:”Khoa học là hệ thống những nhận thức và nghiên cứu có phương pháp nhằm mục đích khám phá ra những qui luật tổng quát về các hiện tượng”. - “Khoa học là một hệ thống tri thức về tự nhiên, xã hội và tư duy được tích luỹ trong quá trình nhận thức trên cơ sở thực tiễn, được thể hiện bằng những khái niệm, phán đoán, học thuyết” [7]. - “Khoa học là hệ thống tri thức về mọi loại qui luật của vật chất và sự vận động của vật chất, những qui luật của tự nhiên, xã hội, tư duy” (Pierre Auger : Tendences actuelles de la recherche scientifique, UNESCO, Paris, 1961, tr 17-19). - “Khoa học là một hệ thống tri thức về tự nhiên, xã hội và tư duy, về những qui luật phát triển khách quan của tự nhiên, xã hội và tư duy, hệ thống tri thức này hình thành trong lịch sử và không ngừng phát triển trên cơ sở thực tiễn xã hội” [4]. Từ những quan niệm trên về ‘khoa học’, có lẽ chúng ta sẽ thống nhất với hai quan niệm sau của các tác giả: - Nguyễn Sinh Huy - Trần Trọng Thuỷ: “Khoa học là toàn bộ hệ thống kiến thức mà nhân loại đã tích luỹ được về những qui luật trong sự phát triển của thiên nhiên, của xã hội và tư duy, về những biện pháp tác động có kế hoạch đến thế giới xung quanh đến sự nhận thức và làm biến đổi thế giới đó nhằm phục vụ lợi ích cho con người” [3]. - Từ điển tiếng Việt: “Khoa học là một hệ thống tri thức tích lũy trong quá trình lịch sử và được thực tiễn chứng minh, phản ánh quy luật khách quan của thế giới bên ngoài cũng như của hoạt động tinh thần của con người, giúp con người có khả năng cải tạo thế giới hiện thực” [8]. Trên cơ sở khái niệm về khoa học được trình bày, chúng ta cũng cùng thống nhất niệm về nội dung của khoa học: tác giả Phạm Viết Vượng trong quan nhiệm về nội dung của khoa học: - Những tài liệu về thế giới do quan sát, điều tra, thí nghiệm mà có. - Những nguyên lí được rút ra dựa trên những sự kiện đã được thực nghiệm chứng minh. Trang 2 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Những qui luật, những học thuyết được khái quát bằng tư duy lí luận. - Những phương pháp nhận thức sáng tạo khoa học. - Những qui trình vận dụng lí thuyết khoa học vào sản xuất và đời sống xã hội. 2. Nghiên cứu khoa học: Theo Phạm Viết Vượng: “Bản chất của nghiên cứu khoa học là hoạt động sáng tạo của các nhà khoa học nhằm nhận thức thế giới, tạo ra hệ thống tri thức có giá trị để sử dụng vào cải tạo thế giới” [5]. Theo Vũ Cao Đàm: “Nghiên cứu khoa học là một hoạt động xã hội, hướng vào việc tìm kiếm những điều mà khoa học chưa biết, hoặc là phát hiện bản chất sự vật, phát triển nhận thức khoa học về thế giới; hoặc là sáng tạo phương pháp mới và phương tiện kĩ thuật mới để cải tạo thế giới” [9]. Từ quan niệm về NCKH của Vũ Cao Đàm và quan niệm về nội dung khoa học của Phạm Viết Vượng đã nêu ở trên, cho thấy NCKH có phạm vi vô cùng rộng lớn trong nhận thức và cải tạo thế giới. Nhưng điều đó không phải chỉ dành cho những nhà NCKH "chính hiệu”. 3. Phương pháp luận sáng tạo khoa học: Bill Gates là người giàu nhất và có lẽ, quyền lực nhất trong làng công nghệ. Trong 3 thập kỷ qua, ông đã có rất nhiều diễn văn, bình luận về kinh doanh, y tế toàn cầu và sự tiến hóa của ngành công nghiệp máy tính... Có một câu nói đáng nhớ của "ông vua" đế chế Microsoft này. Đó là: “Tôi nghĩ sẽ không ngoa khi nói rằng máy tính cá nhân là công cụ mạnh nhất mà con người từng tạo ra. Chúng là công cụ thông tin liên lạc, là công cụ sáng tạo và có thể do người dùng mặc sức tùy biến”. (Phát biểu tại Đại học Illinois, tháng 2/2004). Hoạt động sáng tạo gắn liền với lịch sử tồn tại và phát triển của xã hội loài người. Từ việc tìm ra lửa, chế tạo công cụ bằng đá thô sơ... đến việc sử dụng năng lượng nguyên tử, chinh phục vũ trụ..., hoạt động sáng tạo của loài người không ngừng được thúc đẩy. Sáng tạo không thể tách rời khỏi tư duy - hoạt động bộ não của con người. Chính quá trình tư duy sáng tạo với chủ thể là con người đã tạo các giá trị vật chất, tinh thần, các thành tựu vĩ đại về mọi mặt trong cuộc sống và tạo ra nền văn minh nhân loại. Ý định "khoa học hóa tư duy sáng tạo" có từ lâu. Nhà toán học Hy Lạp Pappos, sống vào thế kỷ III, gọi khoa học này là Ơristic (Heuristics). Theo quan niệm lúc bấy giờ, Ơristic là khoa học về các phương pháp và quy tắc làm sáng chế, phát minh trong mọi lĩnh vực khoa học, kỹ thuật, văn học, nghệ thuật, chính trị, triết học, toán, quân sự... Do cách tiếp cận quá chung và không có nhu cầu xã hội cấp bách, Ơristic bị quên lãng cho đến thời gian gần đây. Trang 3 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Cùng với cuộc cách mạng KHKT, số lượng bài toán phức tạp mà loài người cần giải quyết tăng nhanh, đồng thời yêu cầu thời gian phải giải được chúng rút ngắn lại. Trong khi đó không thể tăng mãi phương tiện và số lượng người tham gia giải bài toán. Thêm nữa, cho đến nay và trong tương lai khá xa sẽ không có công cụ nào thay thế được bộ óc tư duy sáng tạo. Ngưòi ta đã nhớ lại Ơristic và phát triển tiếp để tìm ra cách tổ chức hợp lý, nâng cao năng suất, hiệu quả quá trình tư duy sáng tạo - quá trình suy nghĩ giải quyết vấn đề và ra quyết định trong mọi lĩnh vực không riêng gì khoa học kỹ thuật. Nói một cách ngắn gọn, "Phương pháp luận sáng tạo" (Creativity Methodologies) là bộ môn khoa học có mục đích xây dựng và trang bị cho mọi người hệ thống các phương pháp, các kỹ năng thực hành tiên tiến về suy nghĩ để giải quyết vấn đề và ra quyết định một cách sáng tạo, về lâu dài, tiến tới điều khiển được tư duy. 4. Ý nghĩa, ích lợi của các thủ thuật sáng tạo cơ bản: Edison tìm cái kim trong đống rơm: cho đến nay Edison vẫn là người có nhiều sáng chế nhất: hơn 1000 sáng chế. Ông không làm việc một mình mà cả một tập thể lớn làm việc cho ông. Phương pháp tư duy sáng tạo của ông là phương pháp thử-sai (trial–and–error method), nghĩa là lựa chọn lần lượt các phương án giải một cách mò mẫn và dùng số lượng lớn các phép thử để bù khả năng định hướng. Để sáng tác ra ắc quy kiềm, Edison đã làm hơn 50000 thí nghiệm. Nhà sáng chế Nikolai Tesla, có thời gian làm việc chung với Edison đã viết: “Nếu như Edison cần tìm cái kim rớt trong đống rơm, ông ta sẽ không mất thời gian để suy nghĩ xem khả năng lớn nhất cái kim sẽ nằm ở đâu. Không chậm trễ, với sự siêng năng vội vã của con ong, ông ta sẽ xem xét từng cọng rơm một cho tới khi tìm thấy cây kim thì thôi. Cách làm việc của ông rất kém hiệu quả: ông có thể bỏ ra rất nhiều thời gian và sức lực mà không thu được kết quả gì”. Trong bất kỳ lĩnh vực nào, thông qua việc giải thành công nhiều bài toán, người ta đều có thể rút ra được các kinh nghiệm, “bí quyết”, “mẹo” giúp giải quyết các vần đề trong lĩnh vực đó nhanh hơn, hiệu quả hơn so với phương pháp thử và sai. Những kinh nghiệm, “bí quyết”, “mẹo” như vậy được gọi là các thủ thuật (thủ pháp) sáng tạo (Heuristic Technique), hay gọi tắt là các thủ thuật. Nói cách khác, các thủ thuật có thể được coi là các phương pháp nhỏ, đơn giản nhất. Trong quyển “Các thủ thuật sáng tạo cơ bản, Phần 1”, GS. Phan Dũng tập trung trình bày hệ thống các thủ thật sáng tạo cơ bản của G.S Altshuller. Đây là bộ sưu tập các thủ thuật được đánh giá rất cao trong lĩnh vực sáng tạo và đổi mới hiện nay, do đã khắc phục một cách đáng kể các hạn chế và có nhiều ưu việt hơn các bộ sưu tập khác. Từ năm 1946, GS. Altshuller bắt đầu sưu tập các thủ thuật nhằm mục đích giúp cá nhân mình làm các sáng chế với năng suất và hiệu quả cao hơn. Đến năm 1948, ông đặt mục đích rộng hơn: Xây dựng lý thuyết và hệ thống các phương pháp giải các bài toán sáng tạo sáng chế (TRIZ) cho đông đảo mọi người. Ngày từ thời kỳ đó, ông đã nhận ra rằng, sáng tạo sáng chế chính là Trang 4 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học giải quyết các mâu thuẫn kỹ thuật, tạo ra sự phát triển. Do vậy, tiêu chuẩn lựa chọn các thủ thuật được GS. Altshuller xác định là: Chúng phải có khả năng giải quyết các mâu thuẫn kỹ thuật có trong các bài toán sáng tạo sáng chế. Kể từ năm 1946, số lượng các thủ thuật được GS. Altshuller tìm ra tăng dần theo thời gian. Đến đầu những năm 1970, sau nhiều lần bổ sung, chỉnh sửa, hoàn thiện nội dung và lời phát biểu các thủ thuật, phương án được chọn dùng từ đó đến nay là hệ thống 40 thủ thuật sáng tạo cơ bản. Mỗi thủ thuật cung cấp cho người sử dụng một (hoặc vài) các xem xét đối tượng cho trước. Như vậy, 40 thủ thuật sáng tạo cung cấp cho bạn hệ thống các cách xem xét sự vật. Các xem xét này giúp bạn khắc phục tính ì tâm lý, tạo những đường suy nghĩ giúp tăng tính nhạy bén tư duy, giúp phát hiện và sử dụng các nguồn dự trữ có sẵn trong đối tượng (hệ thống). Các thủ thuật giúp người sử dụng phát các ý tưởng sáng tạo, đưa ra cái mới mà đối tượng tiền thân hiện tại chưa có. Ngoài ra, GS. Phan Dũng muốn nhấn mạnh loại ích lợi do các thủ thuật đem lại cho người sử dụng, nếu người sử dụng có ý thức coi chính mình cũng là đối tượng cần cải tiến, hoàn thiện, phát triển. Phương pháp luận sáng tạo và đổi mới nói chung không chỉ dùng để cải tiến những gì bên ngoài con người mà người sử dụng có thể và cần dùng chúng một cách có ý thức để cải tiến, hoàn thiện, phát triển chính bản thân mình. Sau đây là tập hợp một cách tóm tắt các lợi ích của các thủ thuật sáng tạo nói riêng, phương pháp luận sáng tạo và đổi mới nói chung: - Cung cấp hệ thống các cách xem xét sự vật. - Tăng óc quan sát, tò mò sáng tạo. - Phân tích, lý giải một cách logich những giải pháp sáng tạo đã có. - Tăng tính nhanh nhạy của việc tiếp thu và đánh giá giá trị của thông tin. - Thấy được sự tương tự, thống nhất giữa các hệ thống tưởng chừng rất khác xa nhau. - Khắc phục tính ì tâm lý. - Giúp phát hiện các nguồn dự trữ có sẵn trong hệ, đặc biệt các nguồn dự trữ trời cho không mất tiền sử dụng. - Đưa ra và lựa chọn các cách tiếp cận thích hợp để giải bài toán. - Giải quyết các mâu thuẫn có trong bài toán. - Phát các ý tưởng cải tiến hệ thống cho trước. - Dự báo khuynh hướng phát triển của hệ thống cho trước trong tương lai, xây dựng cơ chế định hướng trong dư duy sáng tạo. - Giúp phát hiện, đặt và lựa chọn bài toán cần giải. - Dùng để luyện tập phát triển trí tưởng tượng sáng tạo. Trang 5 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Dùng để cải tiến, hoàn thiện, phát triển chính bản thân, xây dựng tác phong, suy nghĩ và làm việc một cách khoa học, sáng tạo. - Góp phần xây dựng tư duy biện chứng – hệ thống. - Làm giảm thiểu số lượng các bài toán không đáng nảy sinh. Trang 6 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Các nguyên tắc (thủ thuật) sáng tạo và ứng dụng trong các bài toán tin học. II. 1. Nguyên tắc phân nhỏ: Nội dung: - Chia các đối tượng thành các phần độc lập. - Làm đối tượng trở nên tháo lắp được. - Tăng mức độ phân nhỏ của đối tượng. Ứng dụng trong tin học: - Ứng dụng nguyên tắc trên (trong tin học) vào việc sắp xếp dãy (Quick Sort), hay tìm kiếm nhị phân, mỗi lần tìm kiếm ta chia đôi dãy phần tử, khi đó ta chỉ tìm trên nữa dãy. Nguyên tắc này sẽ cải thiện tốc độ tìm kiếm và độ phức tạp thuận toán sẽ được cải thiện đáng kể. - Ứng dụng quen thuộc nhất chính là chia chương trình thành nhiều chức năng nhỏ, còn được gọi là “hàm” hay “thủ tục”. - Đưa các hàm và thuộc tính tương tự về mặt chức năng vào một mô-đun độc lập. - Tăng độ mịn của các thành phần chương trình (code, data) cho đến khi đạt được ngưỡng nguyên tử. (Ngưỡng nguyên tử là đơn vị cấu trúc nhỏ nhất của một đối tượng hay thành phần, ví dụ: bit có thể xem là ngưỡng nguyên tử trong một sơ đồ mã hóa). 2. Nguyên tắc “tách khỏi”: Nội dung: - Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại, tách phần duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đối tượng. Ứng dụng trong tin học: - Hệ thống ERP cũng áp dụng nguyên tắc trên: Do hệ thống bao gồm nhiều Module (phân hệ), mỗi phân hệ có thể sử dụng riêng cho từng yêu cầu như : Phân hệ Kế toán có thể dùng riêng cho lãnh vực kế toán, phân hệ nguồn nhân lực, phân hệ sản xuất … Khi đó công ty có thể dùng toàn bộ hệ thống cho công việc của mình, nhưng cũng có thể dùng một hay một vài module nào đó cần thiết cho công việc của mình thôi để giảm bớt chi phí. - Trích văn bản trong hình ảnh. Giải thuật khi họat động không biết trước hướng, kích thước, phông chữ. Do đó cần phải lọai bỏ phần ảnh nền và phân lập vùng ảnh có chứa văn bản. - Phân tích cú pháp là quá trình trong đó dữ liệu vào được tách ra thành từng phần nhỏ, các phần nhỏ càng tách biệt càng dễ cho quá trình biên dịch. Trang 7 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học 3. Nguyên tắc phẩm chất cục bộ: Nội dung: - Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu trúc đồng nhất thành không đồng nhất. - Các phần khác nhau của đối tượng phải có những chức năng khác nhau. - Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối với công việc. Ứng dụng trong tin học: - Trong lập trình, trong một đoạn chương trình cần phân biệt phẩm chất cục bộ : ở đâu là phần lỏi của chương trình, phần khác là những thao tác phụ. Ví dụ : In tất cả các số chia hết cho 9 trong phạm vi [1..10000], với hình thức in ra: Mỗi hàng có 10 số, mỗi trang có 20 hàng, tạm dừng chờ nhấn phím liệt tiếp trang sau (nếu hơn trang). Như vậy nếu chương có lỗi thì lỗi thì lỗi của chương trình (phẩm chất cục bộ) là phần kiểm tra một số chia hết cho 9, chứ không phải là phần in ra. - Trong lập trình hướng đối tượng , chúng ta có các phương thức, mà mỗi phương thức có những tính năng khác nhau. - Phương pháp lấy mẫu không đồng nhất trong việc nhận dạng ký tự: Trong việc nhận dạng các mẫu, người ta lấy mẫu theo hướng vuông góc với hướng cho trước theo khỏang cách không đồng nhất để tránh nhận dạng sai 2 dòng gần nhau như là 1 dòng. - Trong việc truyền không dây, thông tin được phát sóng lên các kênh truyền thông đến các máy nhận sử dụng năng lượng hạn chế (pin..). Để tiết kiệm năng lượng, thông tin truyền đi phải được tổ chức sao cho các máy nhận có thể tự chọn lọc tiếp nhận trong một chu lỳ bất kỳ của quá trình phát. Hầu hết các kỹ thuật hiện nay dùng cách phát sóng đồng nhất. Tuy nhiên, thông thường một lượng nhỏ thông tin lại được rất nhiều máy thu tiếp nhận trong khi một lượng lớn còn lại rất ít được sử dụng. Do đó người ta sủ dụng giải pháp phát không đồng nhất tùy theo tính chất của hệ thống. 4. Nguyên tắc phản (bất) đối xứng: Nội dung: - Chuyển đối tượng có hình dạng đối xứng thành không đối xứng (nói chung, làm giảm bậc đối xứng của đối tượng). - Nếu đối tượng phản đối xứng, tăng mức độ phản đối xứng (giảm bậc đối xứng). Ứng dụng trong tin học: Trang 8 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Kiểu biến số nguyên (byte, word, unsigned int) chỉ bao gồm các số nguyên dương, không có tính đối xứng (có cả âm lẫn dương,như dùng kiểu integer hay longint), nhưng trong thực tế rất nhiều lúc ta chỉ làm việc trên những số dương, rõ ràng khai báo kiểu này ta đã tiết kiệm được bộ nhớ và làm cho chương trình trong sáng và linh động hơn. - Thay đổi tính đối xứng của hệ thống để tạo ra hiệu ứng không đồng nhất cho kết quả tính tóan. 5. Nguyên tắc kết hợp: Nội dung: - Kết hợp các đối tượng đồng nhất hoặc các đối tượng dành cho các đối tượng kế cận. - Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận. Ứng dụng trong tin học: - Trong lập trình cổ điển (lập trình theo dạng cấu trúc), khi đó dữ liệu và chức năng là những thành phần riêng biệt. Khi chuyển sang lập trình hướng đối tượng thì dữ liệu và chức năng (phương thức,sự kiện) gộp chung trong một đối tượng, đây chính là khái niệm Class. - Các ngôn ngữ cấp cao thường cho phép kết hợp với mã nguồn Assembly. - Hệ điều hành : Kết hợp thời gian rãnh của CPU, tận dụng thời gian để cho ra hệ điều hành đa nhiệm. Schedule task trong Linux tổng hợp các tác vụ và gán CPU cho từng tác vụ theo một phương thức cho trước. - Máy vi tính cho phép chạy nhiều HĐH trên cùng một máy (Multi boot, Máy ảo “Pc Virtual,VMware”). 6. Nguyên tắc vạn năng: Nội dung: - Đối tượng thực hiện một số chức năng khác nhau, do đó là không cần sự tham gia của đối tượng khác. Ứng dụng trong tin học: - Máy vi tính ngày càng có nhiều chức năng ngoài việc đáp ứng công việc hàng ngày, nó còn có thể là trung tâm giải trí như : Nghe nhạc, xem phim, xem tivi, chơi game, truy cập Internet… - Điện thoại di động : Ngoài chức năng nghe và nhận cuộc gọi, nó còn có thể nghe nhạc MP3, chơi game, nghe FM, chụp hình, quay phim và truy cập Wap… - Ổ USP ngòai việc lưu trử dữ liệu nó còn có thể nghe nhạc, ghi âm, học ngoại ngữ… Trang 9 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Dựa trên lý lịch của người đăng nhập hệ thống, một ngữ cảnh hành vi thích hợp sẽ được thiết lập, và phụ thuộc vào ngữ cảnh, hệ thống sẽ đáp ứng theo cách thích hợp. 7. Nguyên tắc chứa trong: Nội dung: - Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại có thể chứa những đối tượng khác… - Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác. Ứng dụng trong tin học: - Folder: Folder này có thể chứa những Folder con khác và tiếp tục như vậy những Folder khác lại chứa những Folder con khác nữa. Việc thiết kế theo nguyên tắc chứa trong này làm cho việc lưu trữ trong sáng,gọn gàng, dễ dùng và dễ quản lý. - Trong lập trình hướng đối tượng thì tính chất kế thừa cũng áp dụng nguyên tắc chứa trong. Phương thức, dữ liệu của đối tượng được kế thừa sẽ có trong (“chứa trong”) đối tượng kế thừa và đối tượng kế thừa có thể có thêm những thuộc tính, phương thức mới của riêng mình, điều này sẽ làm cho đối tượng có thêm nhiều tính năng hơn, linh động hơn và tiết kiệm được chi phí vì không phải tạo lại những phương thức, thuộc tính đã có sẳn… 8. Nguyên tắc phản trọng lượng: Nội dung: - Bù trù trọng lượng của đối tượng bằng cách gắn nó với đối tượng khác, có trọng lực nâng. - Bù trừ trọng lượng của đối tượng bằng tương tác với mội trường như sử dụng các lực thủy động, khí động… Ứng dụng trong tin học: - Sử dụng cách chia sẻ trong một hệ thống có nhiều đối tượng nhỏ sẽ giúp hiệu quả hơn cho việc nạp tải động hệ thống. Ví dụ: Một đối tượng dùng chung có thể sử dụng trong nhiều ngữ cảnh khác nhau một cách đồng thời, nó đóng vai trò đối tượng độc lập trong các ngữ cảnh. 9. Nguyên tắc gây ứng xuất sơ bộ: Nội dung: - Gây ứng suất trước đối với đối tượng để chống lại ứng suất không cho phép hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng suất trước để khi làm việc sẽ dùng ứng suất ngược lại). Trang 10 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Ứng dụng trong tin học: - Trước khi là lập trình viên: Cấn phải nghiên cứu ngôn ngữ và học giải thuật lập trình trước đã. Có nghĩa phải học và đào tạo trước khi làm việc. - Thực hiện thao tác tiền xử lý trong hệ thống để nâng cao hiệu quả xử lý các bước tiếp theo. 10. Nguyên tắc thực hiện sơ bộ: Nội dung: - Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần đối với đối tượng. - Cấn sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất, không mất thời gian dịch chuyển. Ứng dụng trong tin học: - Trong máy dịch: Trước khi dịch ta phải phân tích ngữ nghĩa của đoạn văn hay văn bản trước… - Trong viện phân loại văn bản dạng Html : ta phải xóa các Tag Html của văn bản trước khi phân loại. Điều sẽ tránh khỏi nhầm lẫn trong việc phân loại do thông tin trong các Tag Html (“những thông tin không cần thiết”) và sẽ làm giảm thới gian khi phân loại do chỉ phân loại trên nội dung chính… - Trong lãnh vực khai khoáng dữ liệu, ta cần áp dụng thuật toán Apriori-Tid, chúng ta biến dữ liệu sang dạng (O,I,R) để làm dữ liệu đầu vào cho thuật toán. (ví dụ áp dụng trong phân tích dữ liệu của siêu thị). 11. Máy ảo Java biên dịch các mã nguồn thành dạng trung gian trước khi thực thi. Nguyên tắc dự phòng: Nội dung: - Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị các phuơng tiện báo động, ứng cứu, an toàn. Ứng dụng trong tin học: - UPS: Dùng cho việc dự phòng khi cúp điện đột ngột, thì lúc đó máy vẫn làm việc bình thường trong một khoảng thời gian nhật định nào đó đủ để chúng ta có những thao tác : Như lưu dữ liệu, tắt máy đúng qui trình … tránh những lỗi gây ra do tắt máy đột ngột. - Trong lập trình: Cần Backup các version đã chạy tốt trước khi nâng cấp thêm những yếu cấu mới, để tránh khi sai sót gì còn có bản dự phòng để sửa chữa… Trang 11 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Trong Quản trị CSDL: cần Backup dữ liệu (“Database”) thường xuyên theo định kỳ nào đó. để lỡ CSDL hư hay bị Virus phát hoại còn có bản backup mới nhất để phục hồi lạI, tránh mất mát ở mức thấp nhất nếu có thể. 12. Nguyên tắc đẳng thế: Nội dung: - Thay đổi điều kiện làm việc để không phải nâng lên hay hạ xuống các đối tượng. Ứng dụng trong tin học: - Hệ thống cân bằng tải máy chủ Load balancer giúp khách hàng xây dựng các hệ thống phân tải giữa các máy chủ web, máy chủ database, máy chủ mail, máy chủ DNS hoặc bất kể dịch vụ nào ở tầng giao thức thứ 4 (layer 4) hoặc thứ 7 ( layer 7) giúp hệ thống dịch vụ luôn ổn định trước hàng triệu yêu cầu (request) trong cùng một thời điểm. Nhờ những tính năng ưu việt này mà Load Balancer đảm bảo rằng tất cả các server hoạt động ở mức tối đa, không có server nào rỗi trong khi server khác quá tải cũng như việc không có dữ liệu nào đi đến các server hỏng. Load Balancer giúp tách ứng dụng ra khỏi server nên người quản trị có thể sửa chữa server mà không cần ngừng dịch vụ. Ngoài ra quản trị hệ thống có thể theo dõi trạng thái của server để từ đó quyết định thêm hoặc bớt server khi cần hay trang bị server dự phòng để dịch vụ không bị ngừng chạy trong mọi trường hợp. 13. Nguyên tắc đảo ngược: Nội dung: - Thay vì hành động theo nhu cầu của bài toán, hành động ngược lại (ví dụ không làm nóng mà làm lạnh đối tượng). - Làm phần chuyển động của đối tượng (hay mội trường bên ngoài) thành đứng yên và ngược lại phần đứng yên thành chuyển động. - Lật ngược đối tượng. Ứng dụng trong tin học: - Trong lãnh vực đồ thị, khi yêu cầu chứng minh hai đồ thị liên thông nhau, ta thường giả sử ngược lại là chúng không liên thông và ta đi chứng minh điều này vô lý (hay không thể xảy ra). Đây cách chứng minh phản chứng rất thường dùng trong Toán và Tin. - Trong bài toán mật mã, nội dung của văn ban thật thường bị ảm hóa thành những ký tự khác trước khi lưu trữ, Một trong những cách này là đảo ngược ký tự này thành ký tự khác bằng bảng tổng quát để định nghĩa sự thay thế được tạo ra. 14. Nguyên tắc cầu (tròn) hóa: Trang 12 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học Nội dung: - Chuyển những phần thẳng của đối tượng thành cong, mặt phẳng thành mặt cầu, kết cấu hình hộp thành kết cấu hình cầu. - Sử dụng các con lăn, viên bi, hình xoắn. - Chuyển sang chuyển động quay, sử dụng lực ly tâm. Ứng dụng trong tin học: - Đĩa CD, DVD,VCD…, đĩa cứng, mềm: chính là ứng dụng nguyên tắc này để ghi dữ liệu, vì cách lưu của nó trên từng track (vòng tròn) trên đĩa. 15. Nguyên tắc năng động: Nội dung: - Cần thay đổi các đặc trưng của đối tượng hay môi trường bên ngoài sao cho chúng tối ưu trên từng giai đoạn công việc. - Phân chia đối tượng thành từng phần có khả năng dịch chuyển đối với nhau. Ứng dụng trong tin học: - Kiểu đối tượng trong lập trình hướng đối tượng : Nó có thể chứa được mọi kiểu dữ liệu, tức tại thời điểm này nó có thể là Integer, nhưng ở thời điểm khác nó có thể là string … - Máy tính xách tay : Có thể sử dụng ở nhà hay di chuyển khỏi nhà , cơ quan … - Mạng máy tính : Cho phép truy cập dữ liệu không cần phải nối dây (theo cách hiểu nối dây vật lý) Wireless khi cần như đi xa, công tác cũng như cho phép kết nối dùng dây (theo nghĩa vật lý) khi cần. Tính linh động rất cao. - ERP : Có thể dùng từng Module (Phân hệ) hay toàn bộ tùy theo yêu cầu hay mục đích của từng doanh nghiệp. - Thư viện liên kết động (tiếng anh: Dynamic Link Library - viết tắt: DLL) là một thành phần của các phần mềm. Đặc điểm của nó là có tính khả chuyển cao, nhờ đó mà một DLL có thể được gắn vào một hoặc nhiều phần mềm khác nhau. 16. Nguyên tắc tác động bộ phận và dư thừa: Nội dung: - Nếu như khó nhận 100% hiệu quả cần thiết, nên nhận ít hơn hay nhiều hơn “một chút”. Lúc đó bài toán có thể trở nên đơn giản hơn. Ứng dụng vào tin học: Trang 13 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Khi việc đo đạc được thực hiện bởi các thao tác lập trình thì kết quả thực có thể bị nhiễu. Ví dụ trong việc đo đạc các quá trình đồng bộ thì việc sử dụng các đối tượng đồng bộ (semaphore, atom..) có thể gây ra kết quả không chính xác lắm. Do đó sử dụng phép phân tích nhiễu lọan người ta có thể thực hiện nhiều hơn hoặc ít hơn một chút mà vẫn đạt được kết quả tốt. 17. Nguyên tắc bộ xung chiều khác: Nội dung: - Những khó khăn do chuyển động (hay sắp xếp) đối tượng theo đường (một chiều) sẽ được khắc phục nếu cho đối tượng có khả năng di chuyển trên mặt phẳng (hai chiều), tương tự những bài toán liên quan đến những chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽ đơn giản hóa khi chuyển sang không gian (ba chiều). - Chuyển các đối tượng có kết cấu một tầng thành đa tầng - Đặt đối tượng nằm nghiêng - Sử dụng mặt sau của diện tích cho trước - Sử dụng các luồng ánh sáng tới diện tích bên cạnh hoặc tới mặt sau của diện tích cho trước. Ứng dụng trong tin học: - Phần mềm Autocad 3D: Áp dụng “chuyển chiều” từ 2D (bản vẽ tay trên giấy, trên máy tính 2D) đã cải thiện đáng kể cho công việc thiết kế của các kiến trúc sư, kỹ sư xây dựng do họ có thể quan sát ở mọi góc độ như thực tế và rất dễ chỉnh sửa… 18. Phần mềm dựng phim: Như Maya, 3DMax… cũng được chuyển sang 3D từ 2D. Nguyên tắc sự dao động cơ học: Nội dung: - Làm cho đối tượng giao động. - Nếu đã có giao động tăng tần suất giao động. - Sử dụng tần số cộng hưởng. - Thay vì sử dụng các bộ phận rung cơ học, dùng các bộ rung áp điện. - Sử dụng siêu âm kết hợp với trường điện từ. Ứng dụng trong tin học: - Người ta thay đổi tốc độ thực hiện giải thuật của một chương trình trong hệ thống cho đến khi đạt đến một sự “cộng hưởng”, ở đó hệ thống sẽ họat động tối ưu. Trang 14 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học 19. Nguyên tắc tác động theo chu kỳ: Nội dung: - Chuyển tác động liên tục thành tác động chu kỳ (xung). - Nếu đã có tác động chu kỳ, hãy thay đổi chu kỳ. - Sử dụng thời gian giữa các xung để thực hiện tác động khác. Ứng dụng trong tin học: - Lấy thời gian khi CPU rãnh, để cho phép chạy multitask (hay đa tiến trình “multi proceses”). 20. Các giải thuật định thời như cơ chế cảnh báo, tácvụ dọn dẹp trong Linux (cron-jobs). Nguyên tắc tác động hữu hiệu: Nội dung: - Thực hiện công việc một cách liên tục (tất cả các phần của đối tượng cần luôn làm việc ở chế độ đủ tải). - Khắc phục vận hành không tải và trung gian. - Chuyển chuyển động tịnh tiến sang chuyển động quay. Ứng dụng trong tin học: - Dùng cơ chế Grid Computing : Tận dụng tài nguyên của các máy trong hệ thống rãnh rỗi, để thực hiện một công việc nào đó. - Thiết kế máy tính Server cho phép chạy liên tục 24/24 ngày này sang ngày khác. - Xây dựng các giải thuật họat động đồng thời để khai thác tối đa họat động của CPU. 21. Nguyên tắc vượt nhanh: Nội dung: - Vượt qua những giai đoạn có hại hoặc nguy hiểm với vận tốc lớn. - Vượt nhanh để có được hiệu ứng cần thiết. Ứng dụng trong tin học: - Trong máy tính khi chúng ta khởi động máy, máy sẽ kiểm tra bộ nhớ Ram, chúng ta muốn vượt nhanh qua việc kiểm tra này thì nhấn phím “ECS”. - Trong ngôn ngữ lập trình cấu trúc rẽ nhánh (if .. then ..else ..,case ..of,..) giúp cho chương trìng hoạt động hiệu quả và 2 nhanh hơn, do vượt qua các điều kiện không thỏa. Trang 15 Ứng dụng các thủ thuật sáng tạo trong các bài toán tin học - Trong vòng lập ta có dùng các lệnh như break,last, continue để vượt nhanh… - Việc sử dụng sơ đồ ưu tiên cho chế độ khối cho các dịch vụ truyền dẫn nhanh trong mạng ATM. 22. Nguyên tắc chuyển hại thành lợi: Nội dung: - Sử dụng các tác nhân có hại (ví dụ tác động có hại của môi trường) để thu được hiệu ứng có lợi. - khắc phục tác nhân có hại bằng cách kết hợp với tác nhân có hại khác. - Tăng cường tác nhân có hại đến khi nó không còn có hại nữa. Ứng dụng trong tin học: - Biến việc tràn số, tràn bộ đệm (có hại) để phát hiện ra các lỗ hổng trong các phần mềm, để khắc phục các lỗi này (thành cái có lợi). - Virus là có hại nhưng ta cũng dựa vào những Viris này để phát hiện ra các lổ hổng của phần mềm, rồi khắc phục chúng vậy tức là ta đã biến Virus có hại thành tác nhân kiểm lỗi cho phần mềm của chúng ta (thành cái có lợi). - Hầu hết các cuộc tấn công DDos nhằm vào việc chiếm dụng băng thông (bandwidth) gây nghẽn mạch hệ thống dẫn đến hệ thống ngưng hoạt động. Để thực hiện kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính/mạng máy tính trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào ạt các gói tin (packet) với số lượng rất lớn nhằm chiếm dụng tài nguyên và làm tràn ngập đường truyền của một mục tiêu xác định nào đó. - Áp dụng Lý thuyết giải các bài toán sáng chế (TRIZ) người ta chuyển việc có hại (tạo thêm tải trên các máy tính) thành việc có lợi (giảm ảnh hưởng của các máy zombie) bằng cách trước khi cho phép một máy kết nối vào máy chủ máy kết nối phải vuợt qua một bài tóan kiểm tra nhỏ. 23. Nguyên tắc quan hệ phản hồi: Nội dung: - Thiết lập quan hệ phản hồi. - Nếu có quan hệ phản hồI, hãy thay đổi nó. Ứng dụng trong tin học: - Ứng dụng trong việc gửi mail : Khi gửi mail đi, cần thông tin phản hồi trở ngược lại nơi gửi xem mail có đi tới đích không, hay dọc đường đã bị rớt …, Cao cấp hơn cho phép người gửi mail biết được mail của mình có được đọc hay chưa, đọc khi nào … Trang 16
- Xem thêm -

Tài liệu liên quan