1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave

143 869 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Hệ Thống Mô Phỏng Và Thực Tại Ảo Sử Dụng Ngôn Ngữ Wave
Tác giả Đỗ Thế Chuẩn
Trường học Trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề án tốt nghiệp đại học
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 143
Dung lượng 3,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. N

Trang 1

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

Ngành: Công nghệ thông tin

Trang 2

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 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ôn ngữ 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.  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 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 

Trang 3

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ỰC TẠ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 

Trang 4

4

5.3.  Ngôn ngữ 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ôn ngữ VRML 92 

5.4.  Sử dụng Wave và 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ực tạ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 

Trang 5

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 

Trang 6

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 

Trang 7

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 WAVE và 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 x2 + y2 hiển thị 3D 90 

Hình 5-6.Khối cầu với bán kính 10 trong VRML 93 

Trang 8

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 

Trang 9

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 

Trang 10

10

CHƯƠNG 2 GIỚI THIỆU

2.1 Giới thiệu về mô phỏng

Mô 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ỏng thực tạ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

Trang 11

2.2 Công nghệ WAVE

Ngày nay, các hệ thống mở và mạng máy tính đang phát triển rất nhanh và được cả thế giới quan tâm Hệ thống mạng máy tính kết nối công việc từ khắp nơi trên thế giới, mạng máy tính cũng giữ một khối lượng khổng lồ dữ liệu dịch vụ và thông tin Những công cụ tương tác không chỉ để tìm kiếm thông tin, dịch vụ hoặc file ngay trên máy tính

mà còn được mở rộng về địa lý, không gian… và hoàn toàn mở trên Internet Một ví dụ điển hình ở đây chính là World Wide Web Tuy nhiên, hầu hết các mô hình và công cụ lập trình phân tán thiếu đi khả năng linh hoạt để khai thác thông tin về cấu trúc mở một cách tự động

Những mô hình lập trình và hệ thống phân tán truyền thống thường dựa trên dữ liệu đóng Công việc được xử lý trong các ứng dụng phân tán thường phải được định nghĩa trước hoặc được gọi thông qua việc kích hoạt thủ tục, phương thức Phần lớn việc xử lý

và tương tác thông qua việc trao đổi thông điệp chứa dữ liệu Ngoài 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 còn là công nghệ dựa trên sự liên kết và điều khiển của các hệ thông lớn được hỗ trợ bởi mạng máy tính và viễn thông Wave cho

Trang 12

12

phép linh động tạo các cấu trúc điều khiển và việc xử lý mạng tri thức (phân tán và song song) thông minh Các cấu trúc này có thể cung cấp khả năng tự tổ chức, phục hồi, tạo khuôn mẫu để kết nối tới các hệ thống khác Công nghệ này dựa trên việc cài đặt nhiều 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ôn ngữ Wave Mã đệ quy được viết từ ngôn ngữ 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 của chương trình có thể tùy

ý mở rộng về mặt địa lý và hỗ trợ nhiều máy tính trên mạng Trong Wave, chương trình

có thể cho vào trong hệ thống bất kỳ chỗ nào Khi đó các chương trình này có khả năng lan tỏa qua mạng như virus Nhiều người sử dụng có thể độc lập phát triển các chương trình Wave hoặc liên kết trong cùng một hệ thống không gian, chia sẻ biến cục bộ (biến này được liên kết với Node) với các biến khác (được kèm theo sự di chuyển của mã Wave) Nói cách khác:

• 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

Trang 13

13

Hình 2-1.Mô hình Wave

Trang 14

14

CHƯƠNG 3 NGÔN NGỮ 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ôn ngữ Wave Đây là một ngôn ngữ đặ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ôn ngữ 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 quá trình “di chuyển”, chương trình có thể mang theo dữ liệu đồ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: Wave và 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ôn ngữ Wave

Wave là một ngôn ngữ đặc biệt cung cấp khả năng thực thi mềm dẻo, đa người dùng trên hệ thống phân tán Quá trình thực thi của ngôn ngữ Wave giống như virus, tức là có khả năng nhân bản và lan tỏa qua mạng, thực thi phân tán mà không cần bất kỳ sự điều khiển tập trung nào

Kiến trúc Wave mô tả quá trình xử lý phân tán qua việc tự định hướng luồng chương trình qua không gian dữ liệu phân tán có cấu trúc như một đồ thị hay được gọi là

Knowledge Network Các node trên mạng phân tán thuộc về một Wave Interpreter nào

đấy WI là thành phần có trách nhiệm thực thi trên từng bộ phận riêng lẻ của mạng, thao tác lên dữ liệu được lưu trữ trong các node.Trong khi di chuyển, những thành phần của

mã Wave có thể tự nhân bản, phân chia hay được chỉnh sửa trong khi vẫn duy trì sự trao

đổi dữ liệu qua lại lẫn nhau

3.2 Node, Link và Không gian phân tán : Knowledge Network (KN)

Định nghĩa:

Trang 15

Wave tạo và xử lý KN – là tập hợp các node và các link có hướng hoặc vô hướng

Cả node và link đều có nội dung riêng của mình (kiểu giá trị là string) KN có thể được phân tán trong không gian mạng, tồn tại trên nhiều máy tính khác nhau Mỗi máy tính có thể không chứa hoặc chứa nhiều node của KN và các link có thể kết nối tới các node trong cùng máy tính hoặc với các máy tính khác

Tất cả các node đều có địa chỉ duy nhất trong không gian phân tán bao gồm 2 thành phần: thành phần thứ nhất để phân biệt các node trong cùng một máy, và thứ hai là để phân biệt các node giữa các máy khác nhau trong không gian mạng Node có thể được

truy cập qua các node khác một cách trực tiếp bằng Content hay bằng Address của

chúng hoặc qua quá trình mở rộng qua các link của KN, việc đặt tên cho link và node

nhằm phục vụ điều này Có 2 kiểu nhảy qua lại giữa các node đó là direct hop và surface hop để thực hiện việc nhảy tới 1 node hay có thể nhảy đến tất cả các node khác – được dùng cho việc gửi quảng bá

Không giống với node, link của KN không thể truy xuất trực tiếp qua tên Dữ liệu lưu trữ trong link chỉ có thể nhận được hoặc thay đổi một cách cục bộ, trong quá trình di chuyển qua link hay khi đứng trực tiếp tại một node cụ thể nào đó Từ một node, cả nội dung và hướng của link có thể truy xuất trực tiếp

Ví dụ:

Trang 16

16

Hình 3-1.Knowledge Network

3.3 Tổ chức chung của ngôn ngữ Wave

Ngôn ngữ 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ôn ngữ miêu tả rõ quá trình hoạt động này:

trong đó các phần nằm trong [] là tùy chọn

Một chương trình Wave hay gọi đơn giản là Wave bao gồm sự kết hợp các tác động

lên KN gọi là các move – thành phần có thể thực hiện xử lý dữ liệu cục bộ tại các Node

của KN và mở rộng tới các Node khác Quá trình thực thi song song hay thực thi không theo thứ tự được tách biệt bởi dấu phẩy (,) phát triển một cách độc lập từ cùng một Node

Trang 17

17

trong KN Tập các moves độc lập gọi là zone, được tách biệt nhau bởi dấu chấm câu (.),

các thành phần này sẽ được thực thi một cách tuần tự

Ví dụ:

Ft={Fa=1;2;3} Fa+1 ^Ft.T=Fa

Các Rule trong Wave cung cấp cho Wave khả năng mở rộng trong không gian mạng, kết hợp cùng với các Wave khác Một ví dụ, các luật có thể tự động tách Wave ra thành nhiều nhánh riêng biệt rồi sau đó phát triển chúng song song hoặc tuần tự trong KN, chúng có thể tạo ra hoặc mở rộng KN trong khi di chuyển Các Rule sẽ được làm rõ hơn trong phần sau

Một cách tổng quát, việc thực thi phần đầu của Wave (Wave’s Head) tại một vài Node có thể là nguyên nhân dẫn tới quá trình lan tỏa của Tail của chuỗi Wave (Wave’s Tail) tới 0 hay nhiều các Node khác – chúng ta sẽ gọi chúng là tập các Node tới được

(SNR)

Ví dụ:

• w1.w2.w3.w4: cấu trúc của một chương trình Wave - sự nối tiếp của các zones

• w1,w2,w3: zone đơn lẻ với tập các move độc lập, tất cả đều được thực thi tại cùng một Node bắt đầu

• w1,w2.w3,w4: sự kết hợp của 2 kiểu trên

3.4 Cấu trúc dữ liệu cơ bản của Wave

Wave là ngôn ngữ được dùng cho quá trình xử lý trên mạng, nhưng không giống các ngôn ngữ khác, kiểu dữ liệu cơ sở không phản ánh việc đó Wave sử dụng kiểu dữ liệu cơ

sở là Vector: là tập các string được phân tách nhau bới dấu chấm phẩy (;) Tất cả các hoạt động của ngôn ngữ đều thực thi trên Vector Truy cập tới thành phần của Vector có thể

Trang 18

• Chứa nhiều kiểu dữ liệu khác nhau: 34;NONE;25;;a;;;b

3.5 Biến Spatial và kiểu

Wave thao tác trên kiểu biến được gọi là spatial variable, chúng nằm phân tán và thường liên quan tới dữ liệu cục bộ tại các Node của KN hay có thể thuộc về một chuỗi

Wave nào đó Biến kiểu này được chia làm 2 loại: task variable và environment variable

3.5.1 Task variables

Task variable bao gồm: node variable và frontal variable Các biến kiểu nodal được lưu cục bộ tại node của KN, các biến kiểu frontal có thể đi cùng Wave qua các node khác nhau trong mạng Cả 2 loại biến này đều là tạm thời

9 Biến Nodal: các biến loại này được khai báo bắt đầu bằng ký tự N

9 Biến Frontal: các biến loại này được khai báo bắt đầu bằng ký tự F

3.5.2 Environment variables

Biến môi trường có những định danh và ý nghĩa khác nhau:

Trang 19

19

9 CONTENT (C): chứa content của Node hiện thời Giá trị của C luôn là string, việc thay đổi nội dung của C có thể được gán trực tiếp bằng giá trị nào đó hoặc NONE – xóa Node cùng với các Link liên kết với nó

9 ADDRESS (A): địa chỉ của Node hiện thời Luôn trả lại địa chỉ đầy đủ của Node nơi Wave đang đứng gồm định danh của Node trong máy và định danh của Node trong mạng Đây là biến chỉ đọc

9 PREDECESSOR (P): biến lưu địa chỉ của Node trước đó Wave đã đi qua

Nó chỉ thay đổi khi có sự di chuyển của Wave sang Node khác

9 LINK (L): chứa content của Link vừa mới đi qua

9 TERMINAL (T): một loại biến đặc biệt dùng để in ra giá trị tương ứng tại một đầu cuối nào đó

Ví dụ:

• Biến Nodal: N, Nhieu, Ntue…

• Biến Frontal: Fpath, Ftemp…

• Biến môi trường: TERMINAL, LINK, L…

3.6 Các hành động – ACTS

3.6.1 Control acts

Các Act thực hiện các phép toán cơ bản bên trong move, dùng để thay đổi giá trị các

biến, thay đổi trạng 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

Trang 20

20

• DONE (1): thành công nhưng không cho phép Wave thực thi tiếp tại Node hiện thời

• FALSE (0): thất bại, loại bỏ Wave tạ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 hạng # Ta sẽ hiểu rõ hơn cách thực thi của Hop qua các Ví

dụ sau:

• DIRECT # ANY, cách viết khác @#: nhảy tới tất cả các node khác trong KN trên cùng máy tính từ một node nào đó

• -p#b: nhảy từ node hiện thời theo cung đi ra (-)p tới node b

• ANY#ANY hay #: nhảy qua tất cả các link tới tất cả hàng xóm của một node

• Và một số kiểu nhảy khác: x#ANY, ANY#x

• Để nhảy sang 1 node ở máy khác ta có cấu trúc: a#b$$`IP, trong đó IP là địa chỉ

IP của máy đích

Filter Các filter gồm các phép toán sau đây: ~ (thuộc về), /~ (không thuộc về), == (so

sánh bằng), /= (so sánh không bằng), < (so sánh nhỏ hơn), <= (so sánh nhỏ hơn hoặc bằng), > (so sánh lớn hơn), >= (so sánh lớn hơn hoặc bằng) Giá trị trả về sẽ là TRUE hoặc FALSE Nếu giá trị trả về là TRUE, node hiện thời sẽ trở thành một SNR và Wave tail sẽ tiếp tục phát triển từ node này

• Filter ~:

o Cú pháp: vector1 ~ vector2

o Chức năng: kiểm tra các phần tử của vector 1 có nằm trong vector 2 hay không

Trang 21

21

• Ví dụ: a;b ~ p;q;b;a sẽ trả về TRUE

• Filter /~: ngược lại toán tử ~

• Filter ==:

o Cú pháp: v1 == v2

o Chức năng: kiểm tra 2 vector có bằng nhau hay không

o Ví dụ: 2;3 == 2;3 sẽ trả lại TRUE

• Filter /=: ngược lại với ==

• Các filter còn lại: >,>=,<,<= có ý nghĩa toán học thông thường nhưng được thực hiện trên vector

Nếu 1 filter trả lại giá trị TRUE, node hiện tại sẽ trở thành SNR, ngược lại SNR sẽ rỗng và chuỗi Wave sẽ dừng quá trình thực thi

Assignment.Toán tử gán = sẽ gán giá trị của toán hạng bên phải vào toán hạng bên trái

Dữ liệu bên phải có thể là giá trị số, string, biến, vector Phép gán luôn trả lại kết quả là TRUE

Ví dụ: Na=1, Na=1;2;3, Na=Nb;2;3;Fc

State Generator Các trạng thái trả về ở trên đều xảy ra sau một quá trình thực thi nào đó

Đôi khi ta muốn trực tiếp xác định trạng thái kết quả trả về để điều khiển luồng chương trình, có một cách khác để thực hiện đó là dùng State Generator gồm 4 trạng thái: TRUE, DONE, FALSE, ABORT Cú pháp gồm tên trạng thái, theo sau là dấu !

Ví dụ:

w1.TRUE!.w2 Trong Ví dụ này w2 sẽ tiếp tục thực hiện

Trang 22

22

• w1.DONE.w2 hoặc w1.!.w2 sẽ dừng sau khi thực hiện xong w1

Code Injection Cú pháp ^Func, trong đó Func là một chuỗi Wave Phép chèn mã này sẽ

bổ sung thêm vào chuỗi Wave một chuỗi nằm trong biến sau ^ Phép này hay được sử dụng khi gọi chương trình con

Ví dụ:

Ft={Fa=1;2;3} Fa+1 ^Ft.T=Fa

3.6.2 Fusion acts: Các phép toán hợp nhất

Các phép toán số học Bao gồm các phép toán +, -, *, / Nếu thực hiện chia cho 0, kết quả

Các phép toán trên Vector đặc biệt Gồm 1 số phép toán sau:

• &: append, nối 1 Vector vào sau 1 Vector khác

o Ví dụ: v1 & v2 – v1, v2 là 2 Vector

• Toán tử hai chấm (:) : lấy giá trị tại 1 vị trí của Vector

o Ví dụ: Fa=3;2;3 Fa:1 sẽ trả lại 3

Trang 23

23

• Toán tử (::):

o Ví dụ: Fa=3;2;3 Fa::3 = 10 Kết quả Fa = 10;2;10

• |: splits, chia string ở toán hạng bên trái thành 1 Vector các string con bởi dấu phân cách ở toán hạng bên phải

o Ví dụ: `a+b+c’ | `+’ sẽ trả lại a;b;c

• %: join, ngược lại với | tức nó sẽ hợp các Vector con lại thành 1 string với phân cách là toán hạng bên phải

o Ví dụ: a;b;c % `+’ sẽ trả lại a+b+c

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 Wave

Wave 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 thiết lập các ràng buộc trong việc lan tỏa chuỗi Wave Thông qua RULE, hệ thống có thể thực thi nhiều lần một Wave, hay tiếp tục lan tỏa Wave nếu thỏa mãn một điều kiện nào đó, hoặc có thể chấm dứt toàn bộ wave RULE thường

“treo” phần còn lại của chuỗi Wave (remainder) và lan tỏa nó ra chỉ khi chuỗi Wave nằm trong luật thực thi xong và trả lại trạng thái TRUE

Các Luật Rẽ Nhánh

• SEQUENCE(SQ): kích hoạt tất cả các nhánh một cách tuần tự mà không cần quan tâm tới trạng thái kết quả trả về SNR trên SQ là tập các SNR từ các nhánh con

Trang 24

24

Ví dụ: SQ(Fa=1, Fa+1).T=Fa sẽ tạo ra 2 nhánh Fa=1 và Fa+1, thực hiện tuần tự

2 nhánh này Kết quả cuối là 2

• OS_SEQUENCE: kích hoạt tất cả các nhánh tuần tự cho tới khi nó nhận được kết quả TRUE hoặc DONE trả về từ một nhánh nào đó

Ví dụ: OS(Fa=5.Fa>1, T=Fa) tạo ra 2 nhánh Fa=5.Fa>1 và T=Fa và thực hiện

tuần tự Nhưng do nhánh thứ nhất trả về TRUE nên không thực hiện tiếp nhánh thứ 2

• AND_SEQUENCE(AS): tương tự SQ nếu tất cả các nhánh đều trả về TRUE hoặc DONE, nếu 1 nhánh FALSE, trạng thái toàn bộ AS sẽ là FALSE

Ví dụ: AS(TRUE!, FALSE!) sẽ trả lại FALSE

• OR_PARALLEL(OP): kích hoạt các nhánh và thực thi chúng song song, nếu 1 nhánh trả về TRUE hoặc DONE, OP sẽ nhận TRUE Nếu không nhánh nào trả

về TRUE hoặc DONE, OP sẽ FALSE

Ví dụ:OP(FALSE!, FALSE!, TRUE!) sẽ trả lại TRUE

• AND_PARALLEL(AP): như AS nhưng các nhánh thực thi song song

Ví dụ: AP(TRUE!, TRUE!, FALSE!) sẽ trả lại FALSE

• RANDOM(RN): chọn một nhánh ngẫu nhiên để phát triển tiếp

Repetition

Luật REPEAT với khả năng vòng lặp cho phép chia Wave thành các phần nhỏ hơn khi di chuyển trong KN

Trang 25

25

Nếu kết quả trạng thái trả về là TRUE hoặc FALSE (SNR không rỗng) thì mỗi thành phần này sẽ được ghép thêm Tail của Wave Lúc này, ở tất cả SNR Node đều chứa biến Frontal (biến này được mang tới từ các Node)

Nếu kết quả trạng thái trả về là DONE (SNR không rỗng) thì Tail của Wave sẽ bị loại bỏ

Có rất nhiều chi tiết quan trọng trong ngữ nghĩa của luật CR Nếu node của 1 bước nhảy tương ứng bằng địa chỉ của nó – điều này có nghĩa node đó đã tồn tại, tức các thành phần trong luật CR nếu chưa có sẽ được tạo ra, còn nếu đã tồn tại thì quá trình CR sẽ không tạo ra node hoặc link mới

Ví dụ:

CR(@#a.+p#b.+q$$c`192.168.1.10’)

Ý nghĩa: nhảy trực tiếp tới node a mặc dù node a chưa có nhưng do nằm trong luật

CR nên node a sẽ được tạo ra, sau đó tạo ra link có hướng +p tới node b, tạo node c và link +q nối từ a đến c trên máy 192.168.1.10

Trang 26

26

Release

Luật RL sẽ khởi tạo 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 mới cho vào hàng đợi xử lý, chuỗi Wave tiếp tục thực thi là w3 cùng với biến môi trường của nó

3.8 Wave và mô hình lập trình truyền thống

3.8.1 Sơ đồ luồng (SD)

Wave là ngôn ngữ có khả năng xử lý cấu trúc dữ liệu không gian phân tán lớn Một thuộc tính quan trọng của Wave là các chương trình điều khiển luôn được liên kết với vị trí nào đó trong không gian dữ liệu (trong khi dữ liệu giữa các Node lan tỏa, hay giữa các SNR lan tỏa) Dữ liệu của cùng một Node có thể xuất hiện ở những nơi khác nhau trong cùng một SNR ở cùng một không gian cục bộ

Trang 27

27

Hình 3-2.Thành phần của Spread Diagrams

Các kiểu module của Spread Diagram là

Trang 28

28

3.8.2 Wave và mô hình lập trình song song

Wave biểu diễn theo SD trong mạng dữ liệu có thể được điều khiển hoàn toàn bởi Rule Các thành phần của chuỗi Wave tự tách thành các nhánh trước và trong quá trình thực thi

Ví dụ: Tách chuỗi Wave

m1, m2 , m3 m4, m5 Æ

(m1 m4, m5), (m2 m4, m5 ), (m3 m4, m5)

Hình 3-3.Tự động tách trong chuỗi Wave

Ngoài ra, trong quá trình Wave thực thi, các thành phần của nó có thể được sao chép

và thay thế mà dữ liệu không bị thay đổi (Như trong Hình 3-4: m2 được sao chép và thay

thế mà dữ liệu vẫn được giữ nguyên)

m1 m2 m3 Æ

m1 m2, m2, m2 m3 Æ

Trang 29

29

m1.(m2 (m3, m3, m3)), (m2 (m3, m3, m3)), (m2 (m3, m3, m3))

Hình 3-4.Một số trường hợp xử lý song song

Ở một ví dụ khác ta thấy rõ hơn Rule điều khiển chuỗi Wave như nào (Hình 3-5)

Trang 30

3.8.3 Wave và mô hình lập trình tuần tự

Việc cho phép phát triển không gian, xử lý song song và tự động trong môi trường phân tán, Wave có thể dễ dàng mô hình hóa một số chương trình xử lý tuần tự Giống các chương trình bình thương, truyền thống ở cùng một máy tính, Wave phải ở cùng một điểm trong không gian và chỉ có duy nhất một luồng được xử lý Chúng ta sẽ bàn về vấn

đề này thông qua các ví dụ ở dưới đây

Ví dụ 1

Trang 31

31

s1 s2 s3 s4

Ví dụ 2

SEQUENCE (s1, s2, s3, s4)

Hai ví dụ trên được thể hiện ở Hình 3-6

Hình 3-6.Xử lý tuần tự không Rule và có Rule

Ngoài ra có thể xem ví dụ ở Hình 3-7

s1 SQ ((s2 s3), s4)

SQ (s1, (s2 SQ (s3, s4)))

Trang 32

Mệnh đề s1 thực hiện và trả về kết quả đúng thì mệnh đề s2 sẽ được thực thi

Ở Hình 3-8.Một số trường hợp với mệnh đề If – else:

OR_SEQUENTIAL (( e s1) và

OR_SEQUENTIAL (AND_SEQUENTIAL ( (e DONE ! ) , s1) s2)

Trang 33

33

Hình 3-8.Một số trường hợp với mệnh đề If – else

Hình 3-9.Một số trường hợp với mệnh đề If – else

• Lựa chọn nhiều nhánh

o If – else với filter

Trang 35

35

Hình 3-12.Else – if với Rule

o Switch

Hình 3-13.Switch

Trang 37

37

Hình 3-15.Câu lệnh lặp sử dụng Recursion

Trang 38

Hình 3-1 mô tả lưới thực địa được dùng trong các bài toán giả lập

Hình 3-1 minh họa cấu trúc của lưới thực địa gồm nhiều node và các link liên kết Ngoài ra, chúng ta có thể thêm các chướng ngại vật bằng cách sử dụng biến nodal đánh

Trang 39

39

dấu vị trí node thuộc chướng ngại vật đó Việc tạo lưới, chướng ngại vật và các đối tượng

di chuyển sẽ được đề cập trong các phần tiếp theo

4.1.1 Thuật toán tạo lưới đơn hướng

Mô tả chung

Đây là cách tạo lưới cơ bản Nó sẽ tạo ra các node trong từng hàng Các hàng sau sẽ nối với các hàng trước qua các link tương ứng của từng node trong hàng đó

Thuật toán

Trang 40

40

Hình 3-2 mô tả việc tạo lưới đơn hướng Chúng ta khởi đầu từ hàng dưới cùng Node 1-1 sẽ được tạo đầu tiên Các node được tạo theo thứ tự từ trái qua phải, từ dưới lên trên Các node hàng trên sẽ có link xuống các node tương ứng ở hàng dưới

4.1.2 Thuật toán tạo lưới trên máy khác

Ngày đăng: 18/02/2014, 00:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10] Livatharas, C., “Integration of Heterogeneous Databases Using WAVE,” M.Sc. Project Report, Department of Electrical Engineering, University of Surrey.Surrey, England, August 1995 Sách, tạp chí
Tiêu đề: Integration of Heterogeneous Databases Using WAVE
[11] Vuong, S., and I. Ivanov, “Mobile Intelligent Agent Systems: WAVE vs. JAVA,” Proc, etaCOM’96, Portland, Oreg., May 1996 Sách, tạp chí
Tiêu đề: Mobile Intelligent Agent Systems: WAVE vs. JAVA,” "Proc, etaCOM’96
[12] Vuong, S., and L. Mathy, “Simulating the Mobile-IP Protocol Using Wave,” Proc, etaCOM’96, Porland, Oreg., May 1996 Sách, tạp chí
Tiêu đề: Simulating the Mobile-IP Protocol Using Wave,” "Proc, etaCOM’96
[14] Tan, H. K. V,. “Distributed Dynamic 3D Virtual Reality,” M.Sc Telematics Diploma Project (base on WAVE), Department of Electrical Engineering, University of Surrey, Surrey, England, 1997 Sách, tạp chí
Tiêu đề: Distributed Dynamic 3D Virtual Reality
[15] Peter Sapaty, “Mobile Processing in distributed and open environments”, 1998 WEBSITE THAM KHẢO Sách, tạp chí
Tiêu đề: Mobile Processing in distributed and open environments”, 1998

HÌNH ẢNH LIÊN QUAN

Hình 2-1.Mơ hình Wave - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 2 1.Mơ hình Wave (Trang 13)
-Những biến số chi tiết của một yếu tố P được liệt kê dưới biểu hình sau: - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
h ững biến số chi tiết của một yếu tố P được liệt kê dưới biểu hình sau: (Trang 22)
Hình 3-2.Thành phần của Spread Diagrams - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 3 2.Thành phần của Spread Diagrams (Trang 27)
3.8.2. Wave và mơ hình lập trình song song - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
3.8.2. Wave và mơ hình lập trình song song (Trang 28)
Hình 3-4.Một số trường hợp xử lý song song - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 3 4.Một số trường hợp xử lý song song (Trang 29)
Hình 3-12.Else – if với Rule - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 3 12.Else – if với Rule (Trang 35)
Hình 3-1 mô tả lưới thực địa được dùng trong các bài toán giả lập - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 3 1 mô tả lưới thực địa được dùng trong các bài toán giả lập (Trang 38)
(Bảng giá sản phẩm, phần phụ lục) 2.Cách chiết khấu cho khách hàng - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Bảng gi á sản phẩm, phần phụ lục) 2.Cách chiết khấu cho khách hàng (Trang 38)
Hình 4-3.Tạo lưới đa hướng - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 4 3.Tạo lưới đa hướng (Trang 42)
Hình 4-9.Di chuyển cùng nhau kiểu tịnh tiến - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 4 9.Di chuyển cùng nhau kiểu tịnh tiến (Trang 55)
Để vẽ một hình trịn chúng ta chỉ cần đặt width = height. Để vẽ một hình trịn và - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
v ẽ một hình trịn chúng ta chỉ cần đặt width = height. Để vẽ một hình trịn và (Trang 61)
Và câu lệnh này sẽ tạo ra hình ảnh giống Hình 4-18 - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
c âu lệnh này sẽ tạo ra hình ảnh giống Hình 4-18 (Trang 67)
4.4.5. Tạo chướng ngại vật - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
4.4.5. Tạo chướng ngại vật (Trang 69)
Hình 4-22. Tạo node với tọa độ (1-1) và màu đỏ - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 4 22. Tạo node với tọa độ (1-1) và màu đỏ (Trang 73)
Hình 6-3.Đồ thị hàm sin(x) - xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave
Hình 6 3.Đồ thị hàm sin(x) (Trang 89)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w