Đề tài Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường

Tài liệu Đề tài Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường: MỤC LỤC DANH MỤC HÌNH ẢNH Hình 1.1 Giao diện của chương trinh Robot tìm đừờng về đích 11 Hình 1.2 Danh sách liên kết 12 Hình 1.3 Robot di chuyển qua các đối tượng vùng 13 Hình 1.4 Ma trận bản đồ định vị robot khi di chuyển 14 Hình 1.5 Đánh dấu vị trí vừa là đích vừa là điểm xuất phát 15 Hình 1.6 Hướng dẫn sử dụng chương trình 17 Hình 1.7 Cảnh báo lỗi không tìm thấy đường đi khi đánh dấu sai vị trí 17 Hình 1.8 Lỗi không load được bản đồ 18 Hình 1.9 Robot xoay đổi chiều tìm đường thích hơp đi về đích 19 Hình 1.10 Hình ảnh các loại địa hình 21 Hình 1.11 Trường hợp phải hủy bỏ một phần tử trong danh sách 23 LỜI NÓI ĐẦU Theo dòng phát triển của lịch sử, xã hội loài người tồn tại và phát triển song hành với quá trình sáng tạo không ngừng. Với khả năng sáng tạo vô tận, con người ngày càng đạt được những thành tựu vượt bậc và xây dựng nền văn minh vĩ đại cho xã hội loài người. Xã hội càng văn minh, yêu cầu khả tư duy sáng tạo càng tăng cao. Theo thống kê cho thấy các nước trên t...

doc30 trang | Chia sẻ: hunglv | Lượt xem: 1207 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC DANH MỤC HÌNH ẢNH Hình 1.1 Giao diện của chương trinh Robot tìm đừờng về đích 11 Hình 1.2 Danh sách liên kết 12 Hình 1.3 Robot di chuyển qua các đối tượng vùng 13 Hình 1.4 Ma trận bản đồ định vị robot khi di chuyển 14 Hình 1.5 Đánh dấu vị trí vừa là đích vừa là điểm xuất phát 15 Hình 1.6 Hướng dẫn sử dụng chương trình 17 Hình 1.7 Cảnh báo lỗi không tìm thấy đường đi khi đánh dấu sai vị trí 17 Hình 1.8 Lỗi không load được bản đồ 18 Hình 1.9 Robot xoay đổi chiều tìm đường thích hơp đi về đích 19 Hình 1.10 Hình ảnh các loại địa hình 21 Hình 1.11 Trường hợp phải hủy bỏ một phần tử trong danh sách 23 LỜI NÓI ĐẦU Theo dòng phát triển của lịch sử, xã hội loài người tồn tại và phát triển song hành với quá trình sáng tạo không ngừng. Với khả năng sáng tạo vô tận, con người ngày càng đạt được những thành tựu vượt bậc và xây dựng nền văn minh vĩ đại cho xã hội loài người. Xã hội càng văn minh, yêu cầu khả tư duy sáng tạo càng tăng cao. Theo thống kê cho thấy các nước trên thế giới đã bắt đầu đào tạo cử nhân, thạc sỹ về chuyên ngành sáng tạo và đổi mới. Từ đó, ra đời các khóa học về “Phương pháp luận sáng tạo”. Giống như An.Tôlxtôi đã từng nói:” Trong con người vốn có những nguồn sáng tạo vô tận, nếu khác đi thì đã không thành người. Cần giải phóng và khơi thông chúng.” Nói một cách ngắn gọn, “Phương pháp luận sáng tạo ”(PPLST) là bộ môn khoa học có mục đích trang bị cho người học hệ thống các phương pháp, các kỹ năng thực hành về suy nghĩ để giải quyết các 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. Trên thế giới, các trung tâm,trường học, công ty chuyên về sáng tạo được thành lập cách đây chưa lâu. Ở Mỹ, lâu đời nhất là Trung tâm nghiên cứu sáng tạo (Center for Studies in Creativity) thuộc Đại học Buffalo, New York ra đời năm 1967. Ngày nay, ít nhất đã có 12 nước Tây Âu triển khai các chương trình tương tự. Các hiệp hội, mạng lưới về sáng tạo được thành lập ở nhiều nước và nhiều khu vực trên thế giới. Ở nước ta, lớp học đầu tiên về tư duy sáng tạo được tổ chức vào năm 1977. Người Thầy đầu tiên truyền bá bộ môn khoa học này vào Việt Nam là Giáo sư, Tiến sĩ vật lý thực nghiệm Phan Dũng . Hòa mình với sự phát triển của thời đại, của khoa học sáng tạo, Trường Đại học Công nghệ thông tin – Đại học quốc gia thành phố Hồ Chí Minh đã mở ra lớp học đầu tiên về Phương pháp luận sáng tạo khoa học dưới sự dìu dắt tận tình của Giáo sư, Tiến sĩ Hoàng Kiếm. Với đề tài:” Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường” em hi vọng đúc kết ra được những kinh nghiệm, những bài học quý báu sau khi hoàn khóa học này. Mục đích của đồ án này là vận dụng vài thủ thuật sáng tạo và phương pháp đệ quy để cho Robot có thể tìm đường đi đến đích đã được đánh dấu từ trước. Tuy nhiên, vì khả năng của bản thân còn nhiều hạn chế, nên vẫn còn gặp nhiều vướng mắc khi giải quyết vấn đề. Dù đề tài đã được hoàn thành nhưng đó chỉ là một phần rất nhỏ trong hệ thống bài giảng của Thầy. Trong tương lai, em mong muốn có thể vận dụng thành thạo những lời giảng của Thầy, không ngừng nâng cao khả năng tư duy sáng tạo để không phụ lòng người Thầy mà chúng em mãi tri ân và tôn kính. Chúng em, thế hệ sinh viên đầu tiên của trường đã may mắn là những sinh viên được tiếp cận với bộ môn khoa học còn khá mới và đầy sáng tạo này. Em xin chân thành cảm ơn Thầy, Thầy đã cho thế hệ chúng em những bài học quý giá nhất trong suốt cuộc hành trình chinh phục cuộc sống. Những bài học về sự sáng tạo không ngừng, những phương pháp giải quyết vấn đề đầy khó khăn thử thách. TỔNG QUAN Trước một vấn đề cần giải quyết trong cuộc sống, người ta thường hoặc là không biết cách đạt được mục đích, hoặc là không biết giải pháp tối ưu để đạt được mục đích. PPLST giúp nhanh chóng tìm ra con đường xử lý ngắn nhất dựa trên các quy luật phát triển của tư duy và khoa học. Dù công nhân, nông dân, học sinh, sinh viên, giảng viên đại học, doanh nhân, cán bộ nhà nước, tiến sĩ, giáo sư,...đều cần nắm vững 40 thủ thuật sáng tạo cơ bản, các quy luật phát triển khách quan, các phương pháp nghiên cứu giải quyết vấn đề,... Học viên trải qua các khoá học PPLST đều tự tin, mạnh dạn hơn khi hành động để theo đuổi những dự định và ước mơ của mình, biết cách làm nẩy sinh các ý tưởng giải thích dễ hiểu rồi thực hiện. PPLST giúp bổ sung, hoàn thiện kiến thức, tiến thêm một bước trong tư duy sáng tạo khoa học công nghệ. Suy nghĩ một cách sáng tạo, thông minh luôn là yêu cầu thiết yếu để có thể đưa ra những sáng kiến. Điều này đặc biệt quan trọng đối với sinh viên. Tuy vậy, để có thể tư duy sáng tạo cần có phương pháp. Áp dụng các thủ thuật và phương pháp giải quyết vấn đề, em đã lựa chọn đề tài ”Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường” đề làm bài luận văn. Với yêu cầu bài toán đặt ra: Các nhà khoa học vũ trụ gởi lên mặt trăng một robot thám hiểm mặt trăng. Địa điểm hạ cánh của tàu vũ trụ không người lái đã được xác định trước. Từ vị trí này, một robot thám hiểm sẽ xuất phát và di chuyển đến một địa điểm được xác định trước. Robot vừa di chuyển vừa phải biết cách phân biệt địa hình sao cho có thể vượt qua hay đi vòng qua chướng ngại vật để về đich. Vị trí xuất phát và đích đều có thể khởi tạo ngẫu nhiên trên bản đồ. Bài luận được chia làm các chương như sau: Chương 1: Đưa ra cơ sở lý thuyết cũng như xây dựng bài toán cơ bản, đưa ra cách giải quyết vấn đề . Chương 2: Đi sâu vào phân tích nội dung bao gồm: 15 thủ thuật sáng tạo, và phương pháp đệ quy tìm đường. Chương 3: Nêu ra những hạn chế cần được giải quyết. Hướng giải quyết vấn đề. CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU Phương pháp trực tiếp Đặc điểm của cách giải quyết này xác định trực tiếp được lời giải qua một thủ tục tính toán,.. hoặc qua các bước căn bản để có được lời giải. Đối với phương pháp này, việc giải quyết vấn đề trên máy tính chỉ là thao tác lập trình hay là sự chuyển đổi lời giải từ ngôn ngữ bên ngoài sang các ngôn ngữ được sử dụng bên trong máy tính. Tìm hiểu về phương pháp này chính là tìm hiểu về kỹ thuật lập trình trên máy tính. Áp dụng nguyên lý 6 trong phương pháp trực tiếp. Nguyên lý 6 : Biểu diễn các tính toán không tường minh bằng đệ quy, có nghĩa là “Quá trình đệ quy trong máy tính không đơn giản như các biểu thức quy nạp trong toán học”. Một số nguyên tắc sáng tạo. Dựa trên việc phân tích hàng trăm ngàn sáng chế trong những ngành kỹ thuật mũi nhọn người ta đã tìm được 40 nguyên tắc sáng tạo cơ bản. Chúng còn có tên gọi là các thủ thuật khắc phục mâu thuẫn kỹ thuật. 15 nguyên tắc được vận dụng trong bài toán tìm đường: 1.Nguyên tắc 1- Nguyên tắc phân nhỏ Chia đố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 2. Nguyên tắc 2- Nguyên tắc tách khỏi Tách phần gây phiền phức ra khỏi đối tượng hoặc ngược lại. Tách lấy phần cần thiết 3. Nguyên tắc 3- Nguyên tắc phẩm chất cục bộ 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ó các chức năng khác nhau. Mỗi phần của đối tượng phải có các chất năng khác nhau. 4. Nguyên tắc 5- Nguyên tắc kết hợp Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạ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 5. Nguyên tắc 6- Nguyên tắc vạn năng Đối tượng thực hiện một số chức năng khác nhau do đó không cần sự tham gia của đối tượng khác. 6. Nguyên tắc 7- Nguyên tắc chứa trong Một đối tượng chứa bên trong nó đối tượng khác và đối tượng khác đó lại chứa đối tượng thứ 3,… Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác. 7. Nguyên tắc 10- Nguyên tắc thực hiện sơ bộ Thực hiện trước sự thay đổi, tác động cần có, hoàn toàn hoặc từng phần, đối tượng với đối tượng. Cần sắp xếp các đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất và không mất thời gian dịch chuyển. 8. Nguyên tắc 11- Nguyên tắc dự phòng Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các phương tiện báo động, ứng cứu dự phòng. 9. Nguyên tắc 15- Nguyên tắc linh động 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 trong từng giai đoạn làm 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 Nếu đối tượng nhìn chung bất động làm nó di động. 10. Nguyên tắc 17- Nguyên tắc chuyển sang chiều khác 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 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 chuyển động (hay sắp xếp) các đối tượng trên mặt phẳng sẽ được đơ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 nhiều 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 11. Nguyên tắc 19- Nguyên tắc hoạt động theo chu kỳ Chuyển các tác động liên tục thành tác động theo chu kỳ(xung) Nếu đã có tác động theo chu kỳ hãy thay đổi chu kỳ Sử dụng khoảng thời gian giữa các xung để thực hiện tác động khác nhau. 12. Nguyên tắc 26- Nguyên tắc sao chép Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện lợi hoặc dễ vỡ, sử dụng bản sao.        Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học (ảnh, hình vẽ) với các tỷ lệ cần thiết.       Nếu không thể sử dụng bản sao quang học ở vùng biểu kiến (vùng ánh sáng nhìn thấy được bằng mắt thường), chuyển sang sử dụng bản sao hồng ngoại hoặc tử ngoại. 13. Nguyên tắc 32- Nguyên tắc thay đổi màu sắc Thay đổi màu sắc của đối tượng hay môi trường bên ngoài. Thay đổi độ trong suốt của đối tượng hay môi trường bên ngoài. Để có thể quan sát được những đối tượng hoặc những quá trình, sử dụng các chất phụ gia màu, huỳnh quang. Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu. Sử dụng các hình vẽ, ký hiệu thích hợp 14. Nguyên tắc 33- Nguyên tắc đồng nhất Những đối tượng, tương tác với đối tượng cho trước phải được làm từ cùng một vật liệu ( hoặc từ vật liệu gần với các tính chất) với vật liệu chế tạo đối tượng cho trước. 15. Nguyên tắc 34- Nguyên tắc phân hủy hay tái sinh các phần Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không cần thiết phải tự phân hủy (hòa tan, bay hơi) hoặc phải biếng dạng. Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong quá trình làm việc. Xây dựng yêu cầu cơ bản cho bài toán Xây dựng Robot có các tính năng sau: Tiến 1 bước, lùi 1 bước, xoay trái một góc 45 độ, xoay phải một góc 45 độ. Khoảng đường di chuyển này có thể có một số chướng ngại đất đá mà robot phải vượt qua. Do đó, robot cũng được thiết kế thêm một tính năng để vượt qua các chướng ngại vật có chiều cao thấp hơn hoặc bằng 50 cm. Nếu chướng ngại vật cao hơn 50 cm, robot phải đi vòng. Robot cũng tránh không đi vào các vùng quá trũng. Robot được xây dựng sẵn các nguyên tắc cho việc di chuyển để phù hợp với địa hình trên. Robot được cung cấp một bản đồ địa hình về quãng đường mà nó sẽ phải di chuyển. Trong đó có: các vùng trũng nhiều, các chướng ngại vật đất đá lớn nhỏ khác nhau. Trên bản đồ cần xác định trước vị trí xuất phát của robot và vị trí đích mà robot phải di chuyển đến. Bản đồ có cấu trúc của một ma trận n x n, trên đó mỗi ô có một tọa độ và có thông tin về địa hình của vị trí đó. ÁP DỤNG PHƯƠNG PHÁP ĐỆ QUY VÀ CÁC NGUYÊN TẮC SÁNG TẠO GIẢI QUYÊT BÀI TOÁN Vận dụng nguyên lý 6 và một số nguyên tắc sáng tạo để giải quyết toàn bộ vấn đề của bài toán tìm đường đến đích cho Robot. Xây dựng nên cái nhìn tổng quan về toàn bộ quá trình. Áp dụng 15 nguyên tắc sáng tạo vào bài toán Thủ thuật sáng tạo là thao tác tư duy đơn lẻ kiểu: Hãy đặc biết hóa bài toán , hãy phân nhỏ đối tượng, hãy làm cho đối tượng linh động… Khi giải quyết những vấn đề tìm đường, áp dụng cụ thể vào bài toán 15 nguyên tắc sau: Áp dụng nguyên tắc 1- Nguyên tắc phân nhỏ Khi xây dựng bản đồ để quản lý toàn bộ bề mặt địa hình của mặt trăng . Vì địa hình quá lớn và có nhiều loại nên cần chia nhỏ địa hình để dễ quản lý. Xây dựng bản đồ để quản lý địa hình và phân nhỏ bản đồ này thành 225 (n*n) vùng con, mỗi vùng là một đối tượng. Số lượng đối tượng có thể được thay đổi: tăng hoặc giàm tùy theo mô hình giải quyết bài toán. Bản đồ này sẽ được quản lý bởi ma trận 2 chiều n*n (15*15) nhằm xác định vị trí của từng vùng trên bản đồ dễ dàng hơn. Nhờ việc phân nhỏ thành các vùng mà ta có thể dễ dàng thay thế các đối tượng vùng, di chuyển đối tượng trên các vùng và nhờ đó mà bản đồ có thêm những tính chất mới: mỗi vùng có một giá trị khác nhau để xác định loại địa hình. Ngoài ra khi xây dựng code cho chương trình, ta sẽ phân chương trình thành nhiều lớp. Mỗi lớp thực hiện các chức năng nhiệm vụ khác nhau. Ví dụ: xây dựng một lớp robot.cs, một lớp MoonMap.cs, một lớp MyPoint để thể hiện cho từng vùng và một lớp thực hiện các thao tác xử lý. Các class này có thể được đặt chung trong một class lớn nhưng nên tách ra thành các class riêng biệt , độc lập để quản lý dễ dàng hơn. Muốn mở rộng hơn giả sử có 2,4,5.. con robot di chuyển trên bản đồ thì lúc này xây dựng chương trình đỡ phức tạp. Hình 1.1 Giao diện của chương trinh Robot tìm đừờng về đích Khi phân nhỏ đối tượng ta cũng nên kết hợp chúng lại thành thể thống nhất. Các đối tượng này có thể thực hiện nhiều chức năng, mỗi đối tượng thì có tính cục bộ và phải linh động…Vì vậy nguyên tắc phân nhỏ thường đi kèm theo một số nguyên tắc:ckết hợp, vạn năng, cục bộ.. Tiếp theo sau là nguyên tắc kết hợp. Áp dụng nguyên tắc 5- Nguyên tắc kết hợp Khi xây dựng nguyên tắc phân nhỏ thường lúc nào cũng có mặt của nguyên tắc kết hợp. Nếu các đối tượng này nằm rời rạc trên bản đồ thì robot không thể di chuyển từ vùng này sang vùng khác. Điều đặc biệt là các đối tượng này phải đồng loại.Trong chương trình xây dựng các đối tượng vùng này đều là đối tượng MyPoint( Đối tượng do ta tự định nghĩa). Các đối tượng này có vị trí trên bản đồ, có các hình ảnh để xác định địa hình là đồng bằng, đầm lầy hay đá cao, đá thấp. Khi nhìn trên giao diện thì ta thấy đó là một tấm ảnh địa hình mặt trăng. Nhưng trên thực tế nó là 225(15*15) phần tử kết hợp lại với nhau tạo thành. Chương trình là một tổng thể kết hợp từ các class khác nhau. Hay khi sử dụng danh sách liên kết để lưu đường đi của robot thì ta đã sử dụng nguyên tắc kết hợp. Kết hợp nhiều phần tử lại với nhau, mỗi phần tử thể hiện một vùng mà ta đã đi qua. List PathToTarget = new List() Hình 1.2 Danh sách liên kết Ngoài ra, nguyên tắc kết hợp cần hiểu theo nghĩa rộng là thiết lập mối liên kết chớ không đơn thuần là cộng thêm hay gắn thêm, nó kế hợp nhiều chức năng lại để thực hiện toàn bộ yêu cầu của bài toán đặt ra. Cũng như, ta gán cho mỗi vùng một giá trị. Mỗi đối tượng vùng đó dựa vào giá trị được gán là 0, 1,2 ,3 mà xác định xem đó là loại địa hình gì để kết hợp với hình ảnh địa hình tương ứng đồng thời dựa vào những giá trị đó để xét xem robot có thể di chuyển vào vùng đó hay không. Như vậy cũng có thể xem nguyên tắc kết hợp là nguyên tắc ngược của nguyên tắc phân nhỏ. Áp dụng nguyên tắc 3- Nguyên tắc phẩm chất cục bộ Các vùng đối tượng có thể được thay đổi mà không làm ảnh hưởng đến toàn bộ bản đồ. Ví dụ như trên bản đồ thể hiện khu vực đó là đồng bằng nhưng khi Robot ( ô vuông khac màu ) đi ngang thì vị trí đó được thay thế bởi robot, các vùng lân cận vẫn không thay đổi. Khi Robot đi qua khỏi vị trí đó thì nó được trả về trạng thái ban đầu. Hình 1.3 Robot di chuyển qua các đối tượng vùng Hay trong quá trình xây dựng code cho chương trình thường có nhiều thay đổi. Vì vậy người ta chia chương trình thành các class riêng. Trong mỗi class sẽ có các hàm thực hiện các chức năng riêng biệt. Như vậy khi cần thay đổi, sửa chữa ta chỉ cần thay đổi cục bộ mà không ảnh hưởng đến toàn bộ chương trình. Các phẩm chất cục bộ phát triển từ đơn giản đến phức tạp để tạo ra những ưu điểm riêng biệt. Nguyên tắc phẩm chất cục bộ tạo ra những sản phẩm tối ưu, có thể mở rộng. Các nguyên tắc kết hợp, phân nhỏ, phẩm chất cục bộ còn phản ảnh khuynh hướng phát triển biện chứng : Sự liên kết , hợp tác hóa đi kèm với sự phân công chức năng nhiệm vụ và chuyên sâu hơn. Áp dụng nguyên tắc 2- Nguyên tắc tách khỏi Thiết kế sao cho Robot là một đối tượng riêng biệt so với bản đồ. Robot di chuyển trên bản đồ qua từng vùng và tiến về đích. Bản đồ lúc này thể hiện là nền cho ta nhìn thấy sự di chuyển của Robot. Những thay đổi trên Robot không làm ảnh hưởng đến bản đồ. Như vậy Robot và bản đồ là hai đối tượng riêng biệt. Hình 1.4 Ma trận bản đồ định vị robot khi di chuyển Các chương trình có thể quá lớn nên khi xây dựng ta tách ra thành nhiều phần riêng biệt. Chương trình được tách thành các thư mục khác nhau. Như thư mục Resource để chứa các file hình ảnh đưa vào chương trình. Thư mục bin, obj, … Trong class robot có rất nhiều phần nhưng ta tách phần quản lý tọa độ khi di chuyển thành một class con. Để dễ sử dụng lại nhiều lần mà không phải tốn thời gian và tài nguyên. Tương tự, khi xây dựng bản đồ để tạo 255, mỗi vùng ta lại phải gán giá trị, gán hình ảnh. Để đơn giản hơn ta tách phần thể hiện các giá trị của mỗi vùng thành 1 file text map.txt sẵn bên ngoài. Viết đoạn chương trình đọc các giá trị trong file text để gán vào từng phần từ. Như vậy khi muốn thay đổi giá trị ta chỉ việc điền giá trị vào file text. Vì các đối tượng thường có nhiều thành phần tính chất, khía cạnh khác nhau nên nhiều khi ta chỉ cần một trong những số đó. Tách khỏi không có nghĩa là bỏ, là vứt đi mà là cách để tận dụng những tính chất những khả năng đem lại những lợi ích cao nhất. Nguyên tắc tách khỏi thường đi kèm với nguyên tắc phân nhỏ, kết hợp, cục bộ, nguyên tắc vạn năng .. Áp dụng nguyên tắc 6- Nguyên tắc vạn năng Đây là nguyên tắc làm cho đối tượng được cải tiến có nhiều chức năng mới. Tạo ma trận 2 chiều để quản lý bản đồ. Mỗi phần tử của mảng vừa chịu sự quản lý của mảng vừa được dùng cho nhiều nhiệm vụ khác nhau.Ví dụ như giá trị của mỗi phần tử vùng vửa để thể hiện hình ảnh loại địa hình: đá cao, đá thấp, vùng đàm lầy hay đồng bằng, vừa dùng thể hiện robot hay là đích. Nếu phần tử nào là robot hay là đích sẽ được gán hình ảnh khác để thay thế cho hình ảnh loại địa hình. Ví dụ khác, khi ta đánh dầu vị trí đích mà Robot phải đi đến. Để cải tiến chương trình, sau khi robot di chuyển đến đích thì biến vị trí đích thành vị trí xuất phát mới của Robot. Như vậy Robot sẽ tiếp tục di chuyển đến đích mới. Một vị trí vừa là đích đến vừa là điểm xuất phát. Hình 1.5 Đánh dấu vị trí vừa là đích vừa là điểm xuất phát Xét theo một ý nghĩa nào đó thì nguyên tắc vạn năng là trường hợp riêng của nguyên tắc kết hợp. Kết hợp nhiều chức năng trên cùng một đối tượng. Nguyên tắc này làm cho các đối tượng trở nên linh động hơn và thực hiện nhièu chức năng khác nhau làm cho chương trình đơn giản hơn. Áp dụng nguyên tắc 7- Nguyên tắc chứa trong Đối tượng robot di chuyển xuyên suốt bên trong bản đồ. Bản đồ là một đối tượng lớn chứa đối tượng robot.Vi dụ khác, khi xây dựng chương trình, thường xuất hiện trường hợp class này lồng class khác vào bên trong của nó, và hàm này gọi hàm khác.Ví dụ trong class Robot thì sử dụng class vec.cs để xác định vị trí của robot trên bản đồ. Trong class MoonMap.cs thì khai báo class Mypoint.cs. Hay trong hàm ClickMap() (đánh dấu vị trí đích mà robot cần di chuyển đến) ta phải gọi hàm SearchPath() kiểm tra xem vị trí đó robot có thể đi được hay không. public void MapClick(object sender, EventArgs e) { // Reset MapFooted va bat dau goi de qui tim duong di Map.ResetFooted(); // Xoa du lieu cu trong PathToTarget robo.ClearPath(); if (SearchPath(robo.srcPoint, target) == true) { robo.ResetMove(); timer.Enabled = true; Map.Reset(robo.targetPoint); Map.SetTarget(target); robo.targetPoint = target; } } Trong hàm khởi tạo gọi hàm Tick() thời gian, sau 1 lần tick thì robot sẽ di chuyển thêm một bước. Xét theo một góc độ nào đó thì chứa trong là một trường hợp riêng của nguyên tắc phẩm chất cục bộ. Phân biệt”trong” ,”ngoài”giúp vấn đề được giải quyết một cách đơn giản. Nguyên tắc chứa trong thường dùng kết hợp với phân nhỏ, tách khỏi, vạn năng…. Áp dụng nguyên tắc 10- Nguyên tắc thực hiện sơ bộ Trước khi Robot thực hiện di đến bước tiếp theo thì cần phải được kiểm tra xem vị trí đó có thể di chuyển được hay không để giảm thời gian di chuyển cũng như tiết kiệm đường đi. Khi viết chương trình, để người khác nhìn vào có thể hiểu được để chạy cho đúng. Người ta thường tạo ra phần hướng dẫn để sử dụng chương trình.Ví dụ trong bài toán tìm đường này, khi chạy chương trình, đầu tiên sẽ hiện ra hướng dẫn: Hình 1.6 Hướng dẫn sử dụng chương trình Khi đọc hướng dẫn này thì người chạy chương trình dễ dàng sử dụng chương trình. Biét cách đánh dấu vị trí đích đến. Nguyên tắc này đòi hỏi khả năng thực hiện trước một phần nào đó hoặc toàn bộ và đạt được rất nhiều lợi ích. Nguyên tắc thực hiện sơ bộ giúp đề ra cách giải quyết vấn đề. Có thể dựa vào tuần tự thời gian mà ta sắp xếp trước các sự việc. Từ thủ thuật này ta hiểu vấn đề muốn thực hiện tốt bất cứ việc gì cần có sự chuẩn bị một cách toàn diện chu đáo. Chuẩn bị tốt là đã giành được một phần trong sự thành công. Áp dụng nguyên tắc 11- Nguyên tắc dự phòng Nguyên tắc này được xây dựng để kịp thời báo hiệu những vấn đề rắc rối. Ví dụ những vị trí không được phép đánh dấu như trên đá hay đầm lầy thì khi click chuột vào đó sẽ hiện ra thông báo khu vực này không được đánh dấu. Hình 1.7 Cảnh báo lỗi không tìm thấy đường đi khi đánh dấu sai vị trí Khi tập tin map.txt có lỗi: sửa giá trị không hợp lệ, thiếu phần tử, file hỏng do virut phá hoại,..thì chương trình không đọc được giá trị để gán vào các phần tử trong mảng hai chiều. Trong trường hợp này chương trình sẽ hiện ra thông báo lỗi: Hình 1.8 Lỗi không load được bản đồ Và để dự phòng cho trường hợp này, ta tạo một file bản đồ dự phòng. Trường hợp bản đồ đầu tiên không load được thì sẽ hiện ra thông báo và bước tiếp theo chương trình sẽ tự động load file bản đồ dự phòng. Có thể nói nguyên tắc dự phòng là phần chi phi thêm làm tăng độ tin cậy cho đối tượng, chương trình. Nguyên tắc này nhằm chuẩn bị các biện pháp để đối phó với những rủi ro, những bất ngờ , những lỗi mắc phải. Nguyên tắc dự phòng giúp chương trình hoạt động với độ tin cậy cao nhất. Áp dụng nguyên tắc 15- Nguyên tắc linh động Vị trí bắt đầu xuất phát được khởi tạo trước đáng lẽ là bất động như vì linh động nên ta thiết kế chương trình sao cho khi Robot đã đi đến đích thì từ đích đó lại đi đến một đích khác.Như vậy vị trí xuất phát đã bị thay đổi. Một trường hợp khác, ta có thể sửa giá trị của các phần tử của bản đồ mảng hai chiều. Như vậy giá trị được gán bằng tay, có thể thay đổi linh động để tối ưu chương trình. Các hằng số được định nghĩa trong chương trình: độ lớn bản đồ, thời gian Tick() (Thời gian để Robot di chuyển một bước đi),…có thể thay đổi tùy ý. Các biến khởi tạo trong chương trình có thể thay đổi giá trị tùy theo từng trường hợp cụ thể . Nguyên tắc này giúp đối tượng có những thay đồi phù hợp theo thời gian, theo từng trường hợp cụ thể, tạo ra sự thống nhất chặt chẽ cho chương trình. Giúp chương trình phát triển có định hướng. Sự thay đổi cần hiểu theo nghĩa rộng về mọi mặt: bản chất, chức năng, giá trị ,.. sao cho tạo mối liên kết giúp chương trình tối ưu trong từng giai đoạn. Tư duy sáng tạo không chỉ là áp dụng lý thuyết mà phải biết cách vận dụng linh động sao cho đạt hiệu quả cao nhất. Đây chính là đặc trưng của môn phương pháp luận sáng tạo khoa học. Áp dụng nguyên tắc 17- Nguyên tắc chuyển sang chiều khác Trên thực tế bản đồ địa hình cần phải lớn. Khi Robot di chuyển cần chọn bước tiếp theo sao cho có thể về đich nhanh nhất. Nhưng trong quá trình di chuyển do gặp phải chướng ngại vật: đá lớn, đầm lầy làm cho Robot không thể di chuyển được theo chiều ban đầu. Lúc này Robot cần thực hiện động tác xoay đổi chiều để tìm chiều thích hợp cho việc di chuyển. Hình 1.9 Robot xoay đổi chiều tìm đường thích hơp đi về đích Khi duyệt mảng các phần tử thường ta sẽ duyệt từ đầu mảng đến cuối mảng, nhưng có một vài trường hợp người ta cần duyệt tìm theo chiều ngược lại. Hệ trục tọa độ trong không gian này được xây dựng theo chiều âm và chiều dương. Có đôi khi ta không cho Robot đi theo chiều dương mà phải đi theo chiều âm về phía cuối bản đồ để về đích tùy thuộc vào vị trí của Robot và bản đồ lúc đó. Nguyên tắc chuyển sang chiều khác cho ta cái nhìn tổng quan, nhìn từ nhiều khía cạnh khác nhau. Tránh tính ì tâm lý trong việc sử dụng một chiều nào đó vốn đã quen thuộc. Chuyển đổi “chiều” giúp giải quyết vấn đề linh động hơn, trong nhiều trường hợp lại có thêm nhiều khả năng hay hơn, nhiều tính chất mới hơn giúp cho chương trình đạt hiệu quả cao hơn. Đây là cách giải quyết vấn đề đặc biệt, cần có cái nhìn linh động sáng tạo trong mọi trường hợp. Áp dụng nguyên tắc 19- Nguyên tắc hoạt động theo chu kỳ. Câu hỏi đặt ra:”Làm thế nào để Robot biết khi nào thì di chuyển sang vị trí tiếp theo?” Hàm tick() thời gian được Csharp hỗ trợ sẵn cho người dùng, sau một thời gian do ta qui định thì robot sẽ bước đi một bước. Và cứ theo chu kì như vậy , các bước di chuyển sẽ lặp đi lặp lại cho đến khi nào về đến đích. void timerTick(object sender, EventArgs e) { // Ngung dong ho khi xong di chuyen den diem dich if (robo.Move() == false) timer.Enabled = false; } Thời gian này có thể được thay đổi tùy theo người lập trình sao cho phù hợp với chương trình. Chỉ cần đặt lại giá trị thời gian. Ngoài ra, sau khi di chuyển một bước thì lúc nào robot cũng phải gọi hàm kiểm tra để xác định vị trí kế tiếp nào sẽ được lựa chọn. Hoạt động kiểm tra lặp lại trong suốt quá trình di chuyển. Tác động theo chu kỳ tạo ra những tính chất mới khác biệt giúp cho những vấn đề không có hướng đi được giải quyết nhanh chóng. Đó là lý do vì sao nguyên lý hoạt động theo chu kì được áp dụng rất nhiều trong các ứng dụng, các chương trình khác nhau. Giúp giâỉ quyết vấn đề gọn nhẹ và thực hiện dễ dàng. Có thể cải tiến , thay đổi chu kỳ theo những tác động khác nhau. Có thể tác động thành chu kỳ liên tục có ích theo thời gian hay làm ngược lại để tạo ra hiệu quả tốt nhất. Nguyên tắc 26- Nguyên tắc sao chép Thay vì phải viết lại một đoạn chương trình nhièu lần, người ta nghĩ ra các lớp con kế thừa từ lớp cơ sở. Như vậy ta chỉ cần lấy các hàm, các biến trong lớp cơ sở ra sử dụng. Hay trường hợp ta khai báo đối tượng nào đó, khi khai báo nhiều đối tượng cùng loại thì các đối tượng có cùng bản chất giống nhau. Cụ thể trong chương trình ta xây dựng lớp Mypoint được kế thừa từ lớp PictureBox để lấy đặc tính chèn hình ảnh của PictureBox khi ta load bản đồ lên. Nhờ PictureBox mà ta dễ dàng thay đổi hình ảnh( Khi phần tử mang giá trị 0 là đất liền, 1 là đá cao, 2 là đá thấp, 3 là đất trũng). class MyPoint : PictureBox { public Vec2 Position; public Image colour; public int type; public MyPoint(Vec2 pos) { Position = pos; type = 0; colour = global::Robotthamhiemmattrang.Properties.Resources.ground2; } Sử dụng nguyên tắc sao chép có thể tiết kiệm chi phí, thời gian. Ngoài ra, có những trường hợp không thể thay đổi trên bản gốc ta có thể thực hiện trên bản sao. Đặc biệt trên bản sao ta có thể thêm vào các tính năng mới. Như trong trường hợp kế thừa, ta có thể tạo thêm các biến, các hàm, các đặc tính tùy theo yêu cầu sao cho phù hợp với chương trình. Nguyên tắc này giúp ta mở rộng vấn đề và giải quyết gọn gàng, nhanh chóng. Áp dụng nguyên tắc 32- Nguyên tắc thay đổi màu sắc Địa hình của mặt trăng có nhiều loại khác nhau, làm sao để thể hiện trên bản đồ. Nhờ vào màu sắc khác nhau mà ta phân biệt.Ví dụ như đầm lầy có màu xám của đất sình, đá lớn có màu khác, đá nhỏ, đồng bằng có màu khác. Dựa vào những đặc trưng đó khi nhìn vào bản có thể phân biệt. Hình 1.10 Hình ảnh các loại địa hình Điểm đặt biệt là vị trí đích được đánh dấu chéo màu đỏ để nổi bật trên bản đồ và màu vàng thề hiện cho robot. Mỗi khi robot di chuyển sang vùng mới thì vùng đất tại đó biến thành màu vàng, thể hiện cho hình ảnh của Robot. Trong Csharp có hỗ trợ tính năng trong suốt. Tùy vào vấn đề khác nhau mà ta thiết lập độ trong suốt khác nhau.Ví dụ trong bài toán này, ta có thể chỉnh độ trong suốt của thể hiện cho Robot theo tỷ lệ phần trăm phù hợp để robot khi di chuyển ngang qua các vùng ta vẫn nhận biết được loại địa hình của vùng đất đó. Lúc này Robot không che phủ mà hoàn toàn vùng đó. Phát triển chương trình theo hướng đa dạng hóa thu hút sự ưa thích của người sử dụng. Nguyên tắc thay đổi màu sắc được sử dụng phổ biến vì thị giác của con người phát triển và đóng vai trò quan trọng: hơn 90 % thông tin bên ngoài được tiếp nhận bằng thị giác. Màu sắc kích thích trí tưởng tượng, thu hút thị giác và tạo nhiều cảm xúc, cảm giác khác nhau cho con người. Nguyên tắc này giúp quá trình truyền, phát, biến đổi, thu nhận, xử lý thông tin trở nên thông suốt hơn. Màu sắc có nhiều màu không nên sử dụng một màu nào đó theo thói quen. Phải tùy thuộc vào môi trường hoàn cảnh để sử dụng màu tương ứng. Tạo được cái nhìn bao quát và xứ lý thông tin nhanh. Áp dụng nguyên tắc 33- Nguyên tắc đồng nhất Các phần tử trong mảng hai chiều đều cùng là một loại đối tượng giống nhau. Các phần tử đều thuộc kiểu Pos để giúp robot dề dàng di chuyển từ vùng này sang vùng khác. public MyPoint[,] Pos Ngoài ra, khi tạo được sự đồng nhất giữa các đối tượng giúp cho chương trình được gắn kết một cách chặt chẽ. Khi đó, sự thay đổi trên các đối tượng được thực hiện dễ hơn, và tiết kiệm chi phí hơn. Trong chương trình, khi thay đồi số phần tử của mảng hai chiều ta phải thay đổi luôn file Map.txt để đảm bảo tính đồng bộ chương trình. Số phần tử của mảng phải giống với số lượng giá trị được tạo trong file Map. Nếu không giống nhau chương trình không thể load được bản đồ. Và như vậy chương trình sẽ bị lỗi. Một trường hợp khác, khi thay đổi tên hình ảnh trong resource, thì trong chương trình ta cũng phải sửa luôn code chèn hình ảnh cho trùng tên. Nếu không chương trình không thể tìm thấy được hình ảnh cần load. Từ “đồng nhất” phải được hiểu theo nghĩa rộng , không đơn thuần là đồng nhất về vật liệu như nghĩa đen của thủ thuật. Ý nghĩa thật sự của nó là phải làm sao cho chương trình đạt đến sự đòng nhất, sự tương hợp giữa các đối tượng. Sự tương hợp phải được thể hiện ở nhiều mặt. Sử dụng nguyên tắc này giúp định hướng cho việc đánh giá tốt hơn, dự báo bước phát triển tiếp theo sau của đối tượng. Sự tương hợp cho phép chương trình hoạt động một cách hiệu quả hơn. Thủ thuật này được sử dụng kết hợp với các nguyên tắc khác:Chứa trong, kết hợp…. Áp dụng nguyên tắc 34- Nguyên tắc phân hủy hay tái sinh các phần Danh sách liên kết một chiều là một danh sách quản lý các phần tử, trong phần tử đầu có con trỏ chứa địa chỉ của phần kế tiếp. Như vậy thì phần tử kế cuối sẽ quản lý phần từ sau cùng. Nếu sử dụng danh sách hai chiều ta sẽ có thêm con trỏ để quản lý phần tử trước nó. Hình 1.11 Trường hợp phải hủy bỏ một phần tử trong danh sách Trong bài này, ta dùng danh sách liên kết để lưu đường đi của Robot. Mỗi khi robot đi qua vùng kế tiêp nó sẽ lưu thêm phần tử mới vào danh sách. Tuy nhiên có nhiều lúc đá được xếp theo hình chữ U nên khi Robot tiến đến đáy thì không thể đi tiếp. Lúc này, danh sách liên kết sẽ hủy bỏ phần tử cuối danh sách và quá trình này sẽ lặp lại cho đến vị trí mà Robot tại phần tử đó có thể đi đến đích theo hướng khác. private List PathToTarget = new List(); Ngoài ra, cũng sử dụng nguyên lý này để mô tả cho quá trình di chuyển của robot. Vì trên bản đồ chỉ có một con robot duy nhất nên khi robot quavùng tiếp theo thì robot ở vùng cũ bị mất đi. Có cảm giác giống như lấy hủy robot ở phần tử này rồi cho nó hiện ra ở phần tử khác. Thời gian thực hiện quá trình này cũng thương đối nhanh. Nguyên tắc này tạo ra sự thống nhất giữa hai mặt đối lập: “có ” và “không”. Đối tượng tồn tại trong khoảng thời gian này và không tồn tại ở thời gian khác. Nguyên tắc này có tính định hướng cao. Do đó nguyên tắc này rất có giá trị trong việc đánh giá, đặt vấn đề và giải quyết khuynh hướng phát triển của đối tượng,… Nguyên tắc này thường dùng kết hợp với nguyên tắc phân nhỏ, tách khỏi, phẩm chất cục bộ, kết hợp….. Áp dụng phương pháp đệ quy để giải quyết vấn đề tìm đường Bài toán đưa ra nhiều vấn đề khó khăn cần được giải quyết. “Làm sao để tìm được hướng đi tiếp theo?” Đó là câu trả lời rất khó. Đây là vấn đề trọng yếu của cả bài toán tìm đường. Cách làm đơn giản hiệu quả nhất là phương pháp tìm đường sử dụng hàm đệ qui. Hàm SearchPath() để tìm vị trí tiếp theo mà robot phải di chuyển đến. Trong hàm SearchPath() gọi lại hàm SearchPath(). bool SearchPath(Vec2 src, Vec2 target) { // Kiem tra xem neu da tim thay if (src.X == target.X && src.Y == target.Y) { robo.AddPath(src); return true; } // nguoc lai, de qui tim tat ca 8 diem xung quanh // Check vao MapFooted rang cho nay da di qua Map.SetFooted(src); ……… for (int count = 0; count < 8; count++) { Vec2 next = new Vec2(src.X, src.Y); next.Add(search); // Neu diem tiep theo la hop le if (Map.ValidatePoint(next) == true) if (SearchPath(next, target) == true) { robo.AddPath(src); return true; } // Nguoc lai tim de qui diem tiep theo search = ChangeDir(search); } Chú ý: Khi áp dụng phương pháp đệ quy trong tin học phải quan tâm đặc biệt đến điều kiện dừng gọi đệ quy. Quá trình đệ quy trong máy tính không đơn giản như trong biểu thức toán học. NHỮNG VẤN ĐỀ HẠN CHẾ Hạn chế chung khi sử dụng các thủ thuật Không có các tiêu chuẩn khách quan để xác định dùng thủ thuật gì, lúc nào, ở đâu và như thế nào để giải quyết bài toán cho trước nhanh nhất. Khi một thủ thuật mang lại lợi ích cho người giải và được yêu thích, chúng tiềm chứa tính ì tâm lý, cản trở khả năng tư duy sáng tạo khi phải giải quyết các bài toán khác. Hạn chế trong giải quyết vấn đề khi áp dụng các thủ thuật Vận dụng nguyên lý thay đỏi màu sắc còn chưa triệt để nên đồ họa còn chưa đẹp mắt, màu sắc sử dụng chưa nhiều, kết hợp màu sắc còn chưa hài hòa. Cần có sự chuẩn bị tốt hơn về đồ họa cũng như có sự am hiểu nhất định về hội họa để phối hợp màu sắc hài hài hòa hơn. Khi viết chương trình, do hạn chế của bản thân nên các đoạn code chương trình chưa được tối ưu, vận dụng nguyên tắc phân nhỏ, tách khỏi trong code chưa thành thục. Vấn đề mắc phải là do kỹ năng lập trình còn yếu nên chưa có cái nhìn tổng quan về toàn bộ chương trình. Do đó chưa phân chia chương trình, chia các class, các chức năng từng phần có những chỗ còn hạn chế. Muốn giải quyết vấn đề này trước hết phải học tập, nâng cao trình độ bản thân, nâng cao kỹ năng lập trình. Từ đó áp dụng các phương pháp sáng tạo tốt hơn, vận dụng ngày càng linh hoạt để đạt được hiệu quả cao nhất. Chưa tận dụng hết khả năng tối ưu của nguyên tắc vạn năng để kết hợp các tính năng lại với nhau. Nguyên tắc chuyển sang chiều khác: Đây là nguyên tắc rất hay. Nếu có thể nên mở rộng bài toán sang không gian ba chiều. Như vậy lúc này Robot có thể quay ở mọi góc độ khác nhau (tùy theo địa hình mà ta muốn quay góc bao nhiêu cũng được), không bị bó hẹp chỉ quanh tám hướng di chuyển. Từ đây hình ảnh robot không chỉ đơn thuần là một ô vuông nữa mà có thể nhìn ở không gian ba chiều. Có thể diễn tả cử động khi robot bước đi, khi robot quay thì hình ảnh sẽ sống động. Lúc này nguyên tắc linh động sẽ được sử dụng hoàn hảo. Hình ảnh robot qua cái nhìn của không gian thật đẹp. Không gian mở rộng, với các loại địa hình khác nhau, vùng đầm lầy có độ lõm tương đối, những vùng đá cao thì có đồi núi nhấp nhô….Nếu mở rộng bài toán sang không gian ba chiều thì còn rất nhiều vấn đề cần được giải quyết. Hạn chế chung nhất là chưa sử dụng thành thạo các nguyên tắc sáng tạo. Khả năng tư duy sáng tạo còn nhiều hạn chế nên chưa thể nắm bắt hết các ý trong bài giảng. Cần có sự rèn luyện thường xuyên. Nên theo dõi các cuộc thảo luận được mở ra trên các diễn đàn về phương pháp luận sáng tạo khoa học, trao đổi với bạn bè, học thêm qua sách vở…để có thể đạt được hiệu quả cao nhất. KẾT LUẬN Phương pháp luận sáng tạo là bộ môn khoa học giúp con người hành động tư duy có định hướng, được kế hoạch hóa. Nó có mục đích tổ chức hợp lý và làm tích cực hóa tư duy sáng tạo, có tính logic và linh động. Về mặt logic, có tác dụng phân nhỏ bài toán sáng chế thành từng phần, vừa sức với người giải bình thường. Về mặt linh động, nó khai thác tới mức lớn nhất mặt mạnh của từng người giải như kiến thức, kinh nghiệm, trí tưởng tượng, linh tính... và hạn chế mặt yếu như tính ì tâm lý, sự phân tán trong suy nghĩ. PPLST giúp nâng cao hiệu suất tư duy sáng tạo giải quyết vấn và ra quyết định. Đối với sinh viên, tiếp xúc với bộ môn khoa học này là điều kiện cần và đủ để bước ra môi trường làm việc năng động sáng tạo. Thông qua bộ môn này, giúp bản thân em học tập được rất nhiều từ phương pháp tư duy sáng tạo. Dù còn nhiều điều chưa thấu hiểu cặn kẽ nhưng đây thật sự là môn học đầy say mê và cuốn hút. Với đề tài :” Áp dụng một số nguyên tắc và phương pháp trực tiếp trong bài toán Robot tìm đường” em đã tìm ra những thiếu sót còn hạn chế của bản thân. Trong quá trình nghiên cứu và đi đến hoàn thành đề tài, khi giải quyết các vấn đề cụ thể thì em càng học tập tốt hơn và hiểu nhiều hơn về PPLST. Đây là môn học đòi hỏi sự tìm tòi nghiên cứu, và có cả tính kiên nhẫn, chịu khó. Đề tài dù đã được hoàn thành nhưng vẫn còn vướng mắc nhiều hạn chế. Qua đề tài này, em đã hoàn thành được một số phần cơ bản sau: Nghiên cứu cơ sở lý thuyết về 40 thủ thuật sáng tạo và các phương pháp giải quyết bài toán trong tin học. Hoàn thành những yêu cầu đặt ra cho đề tài . Vận dụng các nguyên tắc thành thạo hơn, ứng dụng bài giảng của thầy đưa vào áp dụng trong bài toán tìm đường. Hiều rõ những hạn chế mà bản thân còn mắc phải. Tìm ra được hướng giải quyết cho những hạn chế của bài toán và của bản thân. Mở rộng, nâng cao vấn đề đến những hướng phát triển cao hơn, xa hơn. Mở ra nhiều cách giải quyết vấn đề hiệu quả. Những hạn chế trong đề tài này là bài học quý giá, tạo tiền để, cơ sở, những bước đi đầu tiên đến những thành tựu về sau. Khóa học mở ra với nhiều bỡ ngỡ từ bước đầu tiếp cận với môn học nhưng khi hiểu rõ bản chất các vấn đề thì thật có ích. Sinh viên sau khi tiếp cận với môn học này sẽ nâng cao khả năng tư duy sáng tạo, khi giải quyết các vấn đề đều có định hướng trước. Nâng cao khả năng tư duy logic, giải quyết vấn đề đơn giản hơn và nhìn từ nhiều hướng khác nhau. Suy nghĩ một cách sáng tạo, thông minh luôn là yêu cầu thiết yếu để có thể đưa ra những sáng kiến. Tuy vậy, để có thể tư duy sáng tạo cần có phương pháp. Do đó, nhu cầu được tiếp cận với bộ môn này là vấn đề cấp thiết hiện nay. Em hi vọng trong một tương lai không xa, PPLST không còn xa lạ với giảng đường đại học, không còn xa lạ với các bạn học sinh, không còn xa lạ với người dân Việt Nam. Nâng cao trí thức, sáng tạo không ngừng, học nữa học mãi,.. là nhiệm vụ của lớp trẻ, thế hệ kế thừa và tiếp bước, đưa Việt Nam tiến lên , xây dựng một đất nước Việt Nam giàu đẹp. TÀI LIỆU THAM KHẢO 1.Các thủ thuật (nguyên tắc) sáng tạo cơ bản, 2007 - Phan Dũng. 2.Phương pháp luận sáng tạo – Giải quyết vấn đề và ra quyết định - Phan Dũng 3.Algorit sang chế - Nguyễn Chân-Phan Dũng-Dương Xuân Bảo 4.Phương pháp luận sáng tạo - TRIZVIET - 5. Phương pháp luyện trí não của OMIZUMI KAG - 6.

Các file đính kèm theo tài liệu này:

  • docM7908C L7908Cwww.doc