Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 143 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
143
Dung lượng
3,44 MB
Nội dung
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ CHƯƠNG 1. Đỗ Thế Chuẩn XÂY DỰNGHỆTHỐNGMÔPHỎNGVÀTHỰCTẠIẢOSỬDỤNGNGÔNNGỮWAVE XÂY DỰNG HỆ THỐNGTHỰCTẠIẢO KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin 2 MỤC LỤC CHƯƠNG 1. GIỚI THIỆU 10 1.1. Giới thiệu về môphỏng 10 1.2. Công nghệ WAVE 11 CHƯƠNG 2. NGÔNNGỮWAVE 14 2.1. Giới thiệu về ngônngữWave 14 2.2. Node, Link và Không gian phân tán : Knowledge Network (KN) 14 2.3. Tổ chức chung của ngônngữWave 16 2.4. Cấu trúc dữ liệu cơ bản của Wave 17 2.5. Biến Spatial và kiểu 18 2.5.1. Task variables 18 2.5.2. Environment variables 18 2.6. Các hành động – ACTS 19 2.6.1. Control acts 19 2.6.2. Fusion acts: Các phép toán hợp nhất 22 2.7. Rules – Các luật trong Wave 23 2.8. Wavevàmô hình lập trình truyền thống 26 2.8.1. Sơ đồ luồng (SD) 26 2.8.2. Wavevàmô hình lập trình song song 28 2.8.3. Wavevàmô hình lập trình tuần tự 30 CHƯƠNG 3. CÁC BÀI TOÁN MÔPHỎNG CƠ BẢN VÀ ĐỒ HỌA 2D 38 3.1. Cách tạo thực địa 38 3.1.1. Thuật toán tạo lưới đơn hướng 39 3.1.2. Thuật toán tạo lưới trên máy khác 40 3.1.3. Thuật toán tạo lưới đa hướng 41 3.2. Các phép di chuyển cơ bản 43 3 3.2.1. Di chuyển tự do 43 3.2.2. Di chuyển tránh chướng ngại vật 44 3.2.3. Di chuyển vòng quanh chướng ngại vật 46 3.2.4. Nhìn trong không gian với độ sâu cho trước 48 3.3. Các môphỏng tương tác cơ bản 50 3.3.1. Đuổi bắt trong không gian 50 3.3.2. Di chuyển cùng nhau kiểu tịnh tiến 53 3.4. Hiển thị trong Java2D 56 3.4.1. Giới thiệu về Java 2D 56 3.4.2. Giới thiệu một vài đối tượng đồ họa trong Java2D 57 3.4.3. Tương tác giữa chương trình hiển thị vàWave 62 3.4.4. Tạo lưới 64 3.4.5. Tạo chướng ngại vật 69 3.4.6. Di chuyển 71 CHƯƠNG 4. CÁC BÀI TOÁN MÔPHỎNG PHỨC TẠP 75 4.1. Bài toán “Hồng cầu, Bạch cầu, Virus” 75 4.1.1. Mô tả chung 75 4.1.2. Hồng cầu 75 4.1.3. Bạch cầu 76 4.1.4. Virus 77 4.2. Bài toán “Rầy nâu” 79 4.2.1. Mô tả chung 79 4.2.2. Chi tiết bài toán 83 CHƯƠNG 5. 3D VÀTHỰCTẠIẢO 87 5.1. Giới thiệu công nghệ 3D 87 5.1.1. Công nghệ 3D 87 5.1.2. Giới thiệu về Java 3D 88 5.2. Chương trình GnuPlot 88 4 5.3. Ngônngữ VRML 90 5.3.1. Khái niệm VRML và các phiên bản của VRML 90 5.3.2. Ngônngữ VRML 92 5.4. SửdụngWavevà GnuPlot 94 5.4.1. Giới thiệu chung 94 5.4.2. Đọc file và tạo KN 95 5.4.3. Cập nhật dữ liệu 95 5.4.4. Duyệt KN và tạo file đầu vào cho GnuPlot 95 5.5. Thựctạiảo 95 5.5.1. Giới thiệu chung 95 5.5.2. Đọc file và tạo KN 96 5.5.3. Cập nhật VRML 103 5.5.4. Duyệt KN và tạo file VRML 104 5.5.5. Thay đổi cách nhìn 105 5.5.6. Hiển thị trên nhiều máy tính 107 CHƯƠNG 6. CÀI ĐẶT VÀ THỬ NGHIỆM 112 6.1. Cài đặt 112 6.1.1. Các yêu cầu về phần cứng 112 6.1.2. Các yêu cầu về phần mềm 112 6.2. Thử nghiệm 113 6.2.1. Sửdụng chương trình 113 6.2.2. Tạo lưới thực địa 115 6.2.3. Di chuyển tự do 116 6.2.4. Di chuyển tránh chướng ngại vật 118 6.2.5. Di chuyển vòng quanh chướng ngại vật 120 6.2.6. Di chuyển cùng nhau kiểu tịnh tiến 124 6.2.7. Hiển thị hình ảnh 3D động bằng GnuPlot 124 6.2.8. Hiển thị hình ảnh 3D của tệp tin VRML 126 5 6.2.9. Hiển thị hình ảnh 3D với các góc nhìn khác nhau 126 6.2.10. Hiển thị hình ảnh 3D VRML trên nhiều máy 128 CHƯƠNG 7. PHỤ LỤC A – WAVE CODE 130 7.1. Tạo lưới đơn hướng 130 7.2. Tạo lưới theo đa hướng 132 7.3. Di chuyển tự do 133 7.4. Di chuyển tránh chướng ngại vật 134 7.5. Di chuyển vòng quanh chướng ngại vật 136 7.6. Nhìn trong không gian với độ sâu cho trước 138 7.7. Di chuyển cùng nhau kiểu tịnh tiến 139 7.7.1. Chuỗi wave chạy theo 139 7.7.2. Chuỗi wave dẫn đầu 140 CHƯƠNG 8. PHỤ LỤC B – TÀI LIỆU THAM KHẢO 142 6 MỤC LỤC HÌNH VẼ Hình 1-1.Mô hình Wave 13 Hình 2-1.Knowledge Network 16 Hình 2-2.Thành phần của Spread Diagrams 27 Hình 2-3.Tự động tách trong chuỗi Wave 28 Hình 2-4.Một số trường hợp xử lý song song 29 Hình 2-5.Wave xử lý song song có kèm theo Rule 30 Hình 2-6.Xử lý tuần tự không Rule và có Rule 31 Hình 2-7.Wave xử lý tuần tự có Rule 32 Hình 2-8.Một số trường hợp với mệnh đề If – else 33 Hình 2-9.Một số trường hợp với mệnh đề If – else 33 Hình 2-10.Else – if với filter 34 Hình 2-11.Else – if parallel 34 Hình 2-12.Else – if với Rule 35 Hình 2-13.Switch 35 Hình 2-14.Câu lệnh lặp sửdụng Repetition 36 Hình 2-15.Câu lệnh lặp sửdụng Recursion 37 Hình 3-1.Lưới thực địa 1 Hình 3-2.Tạo lưới đơn hướng 1 Hình 3-3.Tạo lưới đa hướng 1 Hình 3-4.Di chuyển tự do 1 Hình 3-5.Di chuyển tránh chướng ngại vật 1 Hình 3-6.Di chuyển vòng quanh chướng ngại vật 1 7 Hình 3-7.Nhìn trong không gian với độ sâu cho trước 1 Hình 3-8.Đuổi bắt trong không gian 1 Hình 3-9.Di chuyển cùng nhau kiểu tịnh tiến 1 Hình 3-10.Giao diện người dùng 56 Hình 3-11.Hệ tọa độ màn hình 1 Hình 3-12.Vẽ đường thẳng 1 Hình 3-13.Vẽ hình chữ nhật 1 Hình 3-14.Vẽ hình elip 1 Hình 3-15.Vẽ hình tròn 1 Hình 3-16.Sự liên hệ giữa WAVEvà chương trình hiển thị 1 Hình 3-17.Lưới thực địa quy ước 1 Hình 3-18.Lưới thực địa trong chương trình đồ họa 65 Hình 3-19.Lưới thực địa với gốc là tọa độ (6-1) 1 Hình 3-20. Chướng ngại vật tại tọa độ (4,4) 70 Hình 3-21. Chướng ngại vật được tạo liên tiếp 71 Hình 3-22. Tạo node với tọa độ (1-1) và màu đỏ 73 Hình 3-23.Tạo node với tọa độ (3-2) và màu xanh 73 Hình 3-24. Di chuyển node trên lưới thực địa 74 Hình 5-1.Xe đạp được thể hiện với công nghệ 2D 87 Hình 5-2.Xe đạp được thể hiện với công nghệ 3D 88 Hình 5-3.Đồ thị hàm sin(x) 89 Hình 5-4.Đồ thị hàm x 2 + y 2 hiển thị 3D 90 Hình 5-6.Khối cầu với bán kính 10 trong VRML 93 8 Hình 5-5.Tọa độ trong VRML 1 Hình 5-7.KN dạng cây của file VRML 1 Hình 5-8.Sơ đồ khối thuật toán Parser 1 Hình 5-9.Sơ đồ khối thuật toán kiểm tra một file có phải là VRML hay không 1 Hình 5-10.KN sau khi thêm node mới 1 Hình 5-11.Hai cách nhìn khác nhau trong VRML 1 Hình 5-12.Cách nhìn ban đầu 1 Hình 5-13.Một cách nhìn khác 1 Hình 5-14.Hiển thị trên nhiều máy tính 1 Hình 5-15.Mỗi máy tính hiển thị một khu vực khác nhau 1 Hình 5-16. Đặt nút start tại một node khác node gốc 1 Hình 6-1. Chương trình hiển thị khi mới được chạy 113 Hình 6-2. Chương trình WAVE khi bắt đầu chạy 114 Hình 6-3. Lưới 5x5 115 Hình 6-4. Cửa sổ output của Netbeans 115 Hình 6-5. Vị trí đầu tiên 1-1 116 Hình 6-6. Chạy ngẫu nhiên tới vị trí tiếp theo 116 Hình 6-7. Các bước chạy ngẫu nhiên tiếp theo 1 Hình 6-9. Dừng khi chạy tới đích 118 Hình 6-8. Tiếp tục chạy ngẫu nhiên 1 Hình 6-10. Di chuyển qua chướng ngại vật 1 Hình 6-11. Vượt qua chướng ngại vật và về đến đích 1 Hình 6-12. Di chuyển vòng quanh chướng ngại vật 1 9 Hình 6-13. Vòng quanh chướng ngại vật 1 vòng thì dừng 1 Hình 6-14. Di chuyển tịnh tiến cùng nhau 1 Hình 6-15. Hình ảnh 3D trên máy thứ nhất sửdụng GnuPlot 125 Hình 6-16. Hình ảnh 3D trên máy thứ hai sửdụng GnuPlot 125 Hình 6-17. Tệp tin VRML được hiển thị sau khi được tạo bởi KN 126 Hình 6-18. Các đối tượng hiển thị theo cách khác thi thay đổi Transform 127 Hình 6-19. Một cách nhìn khác thi thay đổi Transform 127 Hình 6-20. Hiển thị đối tượng đầu tiên trên máy 1 128 Hình 6-21. Hiển thị đối tượng thứ hai trên máy 2 129 10 CHƯƠNG 2. GIỚI THIỆU 2.1. Giới thiệu về môphỏngMôphỏng là làm giống như, bắt chước như… một đối tượng, hiện tượng nào đó phục vụ được cho rất nhiều mục đích sử dụng. Môphỏng song song phân tán là công nghệ cho phép một chương trình giả lập có thể được thực thi song song hoặc phân tán trên một hệthống máy tính với nhiều máy tính kết nối với nhau. Chương trình môphỏng trên máy tính là sự tính toán để mô tả các thể hiện của hệthống thật hoặc giả lập. Ngày nay, môphỏng được ứng dụng rộng rãi trong các nhiều mặt của cuộc sống, như giáo dục, giao thông, y tế… Với môphỏng phân tán vàmôphỏng song song, một chương trình môphỏng có thể thực thi trên một máy tính có nhiều bộ vi xử lý như PC.Độ lớn và phức tạp của các chương trình giả lập ngày càng tăng theo thời gian. Trong một chương trình môphỏng phân tán lớn với nhiều đố i tượng, một PC có thể không đủ bộ nhớ và khả năng tính toán để thực hiện. Việc phân tán thực thi trên nhiều máy tính có thể giúp tăng hiệu quả xử lý và lưu trữ hơn là làm trên một máy như trên. Các máy tính có thể được phân tán trong các vùng địa lý khác nhau, ví dụ như trong các phòng của một tòa nhà, trong một thành phố, hoặc rộng hơn là trên toàn thế giới. Bằng việc chia nhỏ một khối lượng tính toán môphỏng lớn sang các khối tính toán bé hơ n, vàthực thi các khối đó đồng thời với N bộ vi xử lý, ta có thể tăng tốc độ lên N lần so với trên 1 bộ vi xử lý trên một máy. Trong các bộ môphỏng trên máy tính việc giảm thời gian thực thi rất quan trọng bởi vì các kĩ sư sẽ không muốn phải đợi một thời gian dài cho việc nhận kết quả trả về bởi chương trình. Trong việc môphỏngthựctại ảo, nơi mà con ng ười hòa mình vào, thời gian xử lý đóng một vai trò rất quan trọng giúp môphỏng được thực hơn, mang hiệu quả cao hơn. Thực thi môphỏng trên các máy tính phân tán trên các vùng địa lý khác nhau giúp chúng ta linh hoạt hơn, không bị hạn chế về không gian. Khi nhiều máy tính cùng thực thi song song, nếu một máy tính bị lỗi, các máy tính [...]... • Wave là một ngôn ngữ, model đặc biệt và là công nghệ mới cho hệthống song song, phân tán hay kết hợp các hệthống đó với nhau • Wave ban đầu được thiết kế cho việc môphỏng mạng ảo như là mạng tri thức (Knowledge Networks) • Wave dựa trên các chương trình mà có thể lan tỏa, mở rộng, chia nhỏ và có thể tự hồi đáp trong những mạng tri thức đã được kích hoạt 12 Hình 2-1 .Mô hình Wave 13 CHƯƠNG 3 NGÔN... tác nhân thông minh trên hệthống phân tán để tối ưu hóa việc xử lý dữ liệu cục bộ thông qua việc lan tỏa thông tin ở các hệthống nhỏ với nhau hoặc ở hai hệthống nhỏ khác nhau Tất cả công việc trên đều được thông dịch qua ngônngữWave Mã đệ quy được viết từ ngônngữ này có khả năng tự lan tỏa trong không gian hệthống Không giống các hệthống truyền thống, nó là một hệthống dựa trên sự linh động... Việc tìm kiếm một ngônngữ hỗ trợ cho môphỏng đáp ứng tốt các yêu cầu của môphỏng có vai trò rất lớn NgônngữWAVEdùng cho môphỏng vốn đã song song, xử lý trên các cấu trúc dạng đồ thị và phân tán giữa các nút xử lý Tất cả các chương trình WAVE đều mang tính di động cao vàthông dịch Điều đó giúp giảm tải mạng, giảm thời gian truyền dữ liệu dẫn đến giảm thời gian chờ đợi chung của môphỏng phân tán... ra hệ thống phân tán có thể cung cấp dữ liệu và dịch vụ chia sẻ Trong mạng máy tính, dịch vụ vàthông tin chỉ nằm ở các máy chủ ứng dụng (ví dụ như việc sửdụng của các tổ chức kinh doanh…) Tuy nhiên, phương pháp tiếp cận này vẫn chưa tối ưu Do đó, chúng ta sẽ cần phải tích hợp linh hoạt các máy chủ ứng dụng trong một hệ thống tổng thể và có cơ sở hạ tầng mở hơn nữa WAVE không chỉ là một mô hình Wave. .. đồng thời cập nhật vào dữ liệu lưu tại mạng KN Các chương trình mặc dù được xử lý song song nhưng vẫn có những cơ chế cho phép chúng phối hợp đồng bộ với nhau thông qua hệ thống các luật Ở phần cuối chương này chúng tôi còn đề cập tới một vấn đề nữa: Wavevà các phương pháp lập trình truyền thống (lập trình tuần tự và lập trình song song) 3.1 Giới thiệu về ngônngữWaveWave là một ngônngữ đặc biệt cung... một Wave mới độc lập với chuỗi Wave ban đầu, mã của Wave mới này là phần nằm trong dấu ngoặc của RL, WE của Wave mới chính là WE của Wave ban đầu Wave mới được tạo ra được đưa vào Wave Queue để chờ xử lý Phần remainder của Wave ban đầu sẽ tiếp tục được thực hiện như bình thường Ví dụ: w1.RL(w2).w3 Ý nghĩa: sau khi thực thi xong w1, gặp RL chương trình Wave sẽ tách w2 cùng với biến môi trường thành Wave. .. Gọi hàm bên ngoài (External calls) .Thực hiện qua toán tử ?, gọi một hàm nào đó của hệ thống với đầu vào là các tham số từ Wave truyền vào Ví dụ: 50?`sleep’ sẽ dừng chương trình 50 giây 3.7 Rules – Các luật trong WaveWave có thể phát triển độc lập, dị bộ và được xử lý song song trong không gian phân tán Tuy nhiên điểm mạnh của Wave là nó có hệthống các RULE để quản lý và đồng bộ các các hành động RULE... đã được kích hoạt 12 Hình 2-1 .Mô hình Wave 13 CHƯƠNG 3 NGÔNNGỮWAVE Trong phần này chúng tôi trình bày về cú pháp vàngữ nghĩa của ngônngữWave Đây là một ngônngữ đặc biệt cho phép tạo và xử lý thông tin trong không gian mạng theo hướng Chương trình viết bằng ngônngữ này có thể được coi như những thành phần linh hoạt, có khả năng di động và kết hợp với các thành phần riêng lẻ, phân tán khác Trong... thái hoạt động của wave Giá trị trả về gồm 3 loại chính sau: • TRUE (2): thành công và cho phép Wave tiếp sau đó thực thi tại Node hiện thời 19 • DONE (1): thành công nhưng không cho phép Wavethực thi tiếp tại Node hiện thời • FALSE (0): thất bại, loại bỏ Wavetại Node hiện thời Control acts được phân loại như hop, filters, assignment, state genertator và code injection Hop Được thực thi bằng toán... tiếp tại một node cụ thể nào đó Từ một node, cả nội dungvà hướng của link có thể truy xuất trực tiếp Ví dụ: 15 Hình 3-1.Knowledge Network 3.3 Tổ chức chung của ngônngữWaveNgônngữWave đặc trưng cho quá trình lan tỏa song song trong không gian dữ liệu phân tán được biết là KN Do vậy cú pháp của ngônngữ miêu tả rõ quá trình hoạt động này: wave {{move , } } move { data_unit act } | [rule] (Wave) . ĐẠI HỌC CÔNG NGHỆ CHƯƠNG 1. Đỗ Thế Chuẩn XÂY DỰNG HỆ THỐNG MÔ PHỎNG VÀ THỰC TẠI ẢO SỬ DỤNG NGÔN NGỮ WAVE XÂY DỰNG HỆ THỐNG THỰC TẠI ẢO KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY . Công nghệ thông tin 2 MỤC LỤC CHƯƠNG 1. GIỚI THIỆU 10 1.1. Giới thiệu về mô phỏng 10 1.2. Công nghệ WAVE 11 CHƯƠNG 2. NGÔN NGỮ WAVE 14 2.1. Giới thiệu về ngôn ngữ Wave. Rules – Các luật trong Wave 23 2.8. Wave và mô hình lập trình truyền thống 26 2.8.1. Sơ đồ luồng (SD) 26 2.8.2. Wave và mô hình lập trình song song 28 2.8.3. Wave và mô hình lập trình tuần