Khóa luận Xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
CHƯƠNG 1.Đỗ Thế Chun  
XÂY DNG HTHNG MÔ PHNG VÀ THC TI O  
SDNG NGÔN NGWAVE  
XÂY DNG HTHNG THC TI O  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
1
MC LC  
CHƯƠNG 1. GII THIU...........................................................................................10  
1.1. Gii thiu vmô phng ........................................................................................10  
1.2. Công nghWAVE ................................................................................................11  
CHƯƠNG 2. NGÔN NGWAVE..............................................................................14  
2.1. Gii thiu vngôn ngWave...............................................................................14  
2.2. Node, Link và Không gian phân tán : Knowledge Network (KN).......................14  
2.3. Tchc chung ca ngôn ngWave......................................................................16  
2.4. Cu trúc dliu cơ bn ca Wave ........................................................................17  
2.5. Biến Spatial và kiu ..............................................................................................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 hp nht..............................................................22  
2.7. Rules – Các lut trong Wave ................................................................................23  
2.8. Wave và mô hình lp trình truyn thng ..............................................................26  
2.8.1. Sơ đồ lung (SD)............................................................................................26  
2.8.2. Wave và mô hình lp trình song song............................................................28  
2.8.3. Wave và mô hình lp trình tun t.................................................................30  
CHƯƠNG 3. CÁC BÀI TOÁN MÔ PHNG CƠ BN VÀ ĐỒ HA 2D ................38  
3.1. Cách to thc địa...................................................................................................38  
3.1.1. Thut toán to lưới đơn hướng.......................................................................39  
3.1.2. Thut toán to lưới trên máy khác .................................................................40  
3.1.3. Thut toán to lưới đa hướng.........................................................................41  
3.2. Các phép di chuyn cơ bn ...................................................................................43  
2
3.2.1. Di chuyn tdo..............................................................................................43  
3.2.2. Di chuyn tránh chướng ngi vt...................................................................44  
3.2.3. Di chuyn vòng quanh chướng ngi vt.........................................................46  
3.2.4. Nhìn trong không gian vi độ sâu cho trước..................................................48  
3.3. Các mô phng tương tác cơ bn ...........................................................................50  
3.3.1. Đui bt trong không gian..............................................................................50  
3.3.2. Di chuyn cùng nhau kiu tnh tiến ...............................................................53  
3.4. Hin thtrong Java2D...........................................................................................56  
3.4.1. Gii thiu vJava 2D.....................................................................................56  
3.4.2. Gii thiu mt vài đối tượng đồ ha trong Java2D........................................57  
3.4.3. Tương tác gia chương trình hin thvà Wave .............................................62  
3.4.4. To lưới..........................................................................................................64  
3.4.5. To chướng ngi vt.......................................................................................69  
3.4.6. Di chuyn .......................................................................................................71  
CHƯƠNG 4. CÁC BÀI TOÁN MÔ PHNG PHC TP.........................................75  
4.1. Bài toán “Hng cu, Bch cu, Virus” .................................................................75  
4.1.1. Mô tchung....................................................................................................75  
4.1.2. Hng cu ........................................................................................................75  
4.1.3. Bch cu.........................................................................................................76  
4.1.4. Virus...............................................................................................................77  
4.2. Bài toán “Ry nâu” ...............................................................................................79  
4.2.1. Mô tchung....................................................................................................79  
4.2.2. Chi tiết bài toán ..............................................................................................83  
CHƯƠNG 5. 3D VÀ THC TI O..........................................................................87  
5.1. Gii thiu công ngh3D.......................................................................................87  
5.1.1. Công ngh3D ................................................................................................87  
5.1.2. Gii thiu vJava 3D.....................................................................................88  
5.2. Chương trình GnuPlot...........................................................................................88  
3
5.3. Ngôn ngVRML..................................................................................................90  
5.3.1. Khái nim VRML và các phiên bn ca VRML ...........................................90  
5.3.2. Ngôn ngVRML ...........................................................................................92  
5.4. Sdng Wave và GnuPlot....................................................................................94  
5.4.1. Gii thiu chung.............................................................................................94  
5.4.2. Đọc file và to KN .........................................................................................95  
5.4.3. Cp nht dliu .............................................................................................95  
5.4.4. Duyt KN và to file đầu vào cho GnuPlot ...................................................95  
5.5. Thc ti o ............................................................................................................95  
5.5.1. Gii thiu chung.............................................................................................95  
5.5.2. Đọc file và to KN .........................................................................................96  
5.5.3. Cp nht VRML...........................................................................................103  
5.5.4. Duyt KN và to file VRML........................................................................104  
5.5.5. Thay đổi cách nhìn.......................................................................................105  
5.5.6. Hin thtrên nhiu máy tính.........................................................................107  
CHƯƠNG 6. CÀI ĐẶT VÀ THNGHIM.............................................................112  
6.1. Cài đặt .................................................................................................................112  
6.1.1. Các yêu cu vphn cng............................................................................112  
6.1.2. Các yêu cu vphn mm............................................................................112  
6.2. Thnghim.........................................................................................................113  
6.2.1. Sdng chương trình...................................................................................113  
6.2.2. To lưới thc địa ..........................................................................................115  
6.2.3. Di chuyn tdo............................................................................................116  
6.2.4. Di chuyn tránh chướng ngi vt.................................................................118  
6.2.5. Di chuyn vòng quanh chướng ngi vt.......................................................120  
6.2.6. Di chuyn cùng nhau kiu tnh tiến .............................................................124  
6.2.7. Hin thhình nh 3D động bng GnuPlot....................................................124  
6.2.8. Hin thhình nh 3D ca tp tin VRML......................................................126  
4
6.2.9. Hin thhình nh 3D vi các góc nhìn khác nhau.......................................126  
6.2.10. Hin thhình nh 3D VRML trên nhiu máy...........................................128  
CHƯƠNG 7. PHLC A – WAVE CODE .............................................................130  
7.1. To lưới đơn hướng ............................................................................................130  
7.2. To lưới theo đa hướng.......................................................................................132  
7.3. Di chuyn tdo...................................................................................................133  
7.4. Di chuyn tránh chướng ngi vt........................................................................134  
7.5. Di chuyn vòng quanh chướng ngi vt .............................................................136  
7.6. Nhìn trong không gian vi độ sâu cho trước ......................................................138  
7.7. Di chuyn cùng nhau kiu tnh tiến ....................................................................139  
7.7.1. Chui wave chy theo ..................................................................................139  
7.7.2. Chui wave dn đầu.....................................................................................140  
CHƯƠNG 8. PHLC B – TÀI LIU THAM KHO...........................................142  
5
MC LC 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 phn ca Spread Diagrams ......................................................................27  
Hình 2-3.Tự động tách trong chui Wave..........................................................................28  
Hình 2-4.Mt strường hp xlý song song ....................................................................29  
Hình 2-5.Wave xlý song song có kèm theo Rule............................................................30  
Hình 2-6.Xlý tun tkhông Rule và có Rule..................................................................31  
Hình 2-7.Wave xlý tun tcó Rule.................................................................................32  
Hình 2-8.Mt strường hp vi mnh đề If – else............................................................33  
Hình 2-9.Mt strường hp vi mnh đề If – else............................................................33  
Hình 2-10.Else – if vi filter ..............................................................................................34  
Hình 2-11.Else – if parallel ................................................................................................34  
Hình 2-12.Else – if vi Rule...............................................................................................35  
Hình 2-13.Switch................................................................................................................35  
Hình 2-14.Câu lnh lp sdng Repetition.......................................................................36  
Hình 2-15.Câu lnh lp sdng Recursion........................................................................37  
Hình 3-1.Lưới thc địa.........................................................................................................1  
Hình 3-2.To lưới đơn hướng...............................................................................................1  
Hình 3-3.To lưới đa hướng.................................................................................................1  
Hình 3-4.Di chuyn tdo.....................................................................................................1  
Hình 3-5.Di chuyn tránh chướng ngi vt..........................................................................1  
Hình 3-6.Di chuyn vòng quanh chướng ngi vt................................................................1  
6
Hình 3-7.Nhìn trong không gian vi độ sâu cho trước ........................................................1  
Hình 3-8.Đui bt trong không gian.....................................................................................1  
Hình 3-9.Di chuyn cùng nhau kiu tnh tiến ......................................................................1  
Hình 3-10.Giao din người dùng........................................................................................56  
Hình 3-11.Hta độ màn hình .............................................................................................1  
Hình 3-12.Vẽ đường thng...................................................................................................1  
Hình 3-13.Vhình chnht .................................................................................................1  
Hình 3-14.Vhình elip.........................................................................................................1  
Hình 3-15.Vhình tròn.........................................................................................................1  
Hình 3-16.Sliên hgia WAVE và chương trình hin th................................................1  
Hình 3-17.Lưới thc địa quy ước.........................................................................................1  
Hình 3-18.Lưới thc địa trong chương trình đồ ha..........................................................65  
Hình 3-19.Lưới thc địa vi gc là ta độ (6-1) ..................................................................1  
Hình 3-20. Chướng ngi vt ti ta độ (4,4) ......................................................................70  
Hình 3-21. Chướng ngi vt được to liên tiếp..................................................................71  
Hình 3-22. To node vi ta độ (1-1) và màu đ...............................................................73  
Hình 3-23.To node vi ta độ (3-2) và màu xanh ............................................................73  
Hình 3-24. Di chuyn node trên lưới thc địa....................................................................74  
Hình 5-1.Xe đạp được thhin vi công ngh2D.............................................................87  
Hình 5-2.Xe đạp được thhin vi công ngh3D.............................................................88  
Hình 5-3.Đồ thhàm sin(x) ................................................................................................89  
Hình 5-4.Đồ thhàm x2 + y2 hin th3D............................................................................90  
Hình 5-6.Khi cu vi bán kính 10 trong VRML..............................................................93  
7
Hình 5-5.Ta độ trong VRML..............................................................................................1  
Hình 5-7.KN dng cây ca file VRML ................................................................................1  
Hình 5-8.Sơ đồ khi thut toán Parser .................................................................................1  
Hình 5-9.Sơ đồ khi thut toán kim tra mt file có phi là VRML hay không..................1  
Hình 5-10.KN sau khi thêm node mi .................................................................................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.Mt cách nhìn khác.............................................................................................1  
Hình 5-14.Hin thtrên nhiu máy tính ...............................................................................1  
Hình 5-15.Mi máy tính hin thmt khu vc khác nhau ...................................................1  
Hình 5-16. Đặt nút start ti mt node khác node gc...........................................................1  
Hình 6-1. Chương trình hin thkhi mi được chy........................................................113  
Hình 6-2. Chương trình WAVE khi bt đầu chy...........................................................114  
Hình 6-3. Lưới 5x5...........................................................................................................115  
Hình 6-4. Ca soutput ca Netbeans.............................................................................115  
Hình 6-5. Vtrí đầu tiên 1-1 .............................................................................................116  
Hình 6-6. Chy ngu nhiên ti vtrí tiếp theo..................................................................116  
Hình 6-7. Các bước chy ngu nhiên tiếp theo ....................................................................1  
Hình 6-9. Dng khi chy ti đích.....................................................................................118  
Hình 6-8. Tiếp tc chy ngu nhiên .....................................................................................1  
Hình 6-10. Di chuyn qua chướng ngi vt..........................................................................1  
Hình 6-11. Vượt qua chướng ngi vt và về đến đích..........................................................1  
Hình 6-12. Di chuyn vòng quanh chướng ngi vt.............................................................1  
8
Hình 6-13. Vòng quanh chướng ngi vt 1 vòng thì dng...................................................1  
Hình 6-14. Di chuyn tnh tiến cùng nhau ...........................................................................1  
Hình 6-15. Hình nh 3D trên máy thnht sdng GnuPlot..........................................125  
Hình 6-16. Hình nh 3D trên máy thhai sdng GnuPlot............................................125  
Hình 6-17. Tp tin VRML được hin thsau khi được to bi KN.................................126  
Hình 6-18. Các đối tượng hin ththeo cách khác thi thay đổi Transform......................127  
Hình 6-19. Mt cách nhìn khác thi thay đổi Transform...................................................127  
Hình 6-20. Hin thị đối tượng đầu tiên trên máy 1 ..........................................................128  
Hình 6-21. Hin thị đối tượng thhai trên máy 2............................................................129  
9
CHƯƠNG 2.GII THIU  
2.1. Gii thiu vmô phng  
Mô phng là làm ging như, bt chước như… mt đối tượng, hin tượng nào đó  
phc vụ được cho rt nhiu mc đích sdng.  
Mô phng song song phân tán là công nghcho phép mt chương trình gilp có  
thể được thc thi song song hoc phân tán trên mt hthng máy tính vi nhiu máy tính  
kết ni vi nhau. Chương trình mô phng trên máy tính là stính toán để mô tcác thể  
hin ca hthng tht hoc gilp. Ngày nay, mô phng được ng dng rng rãi trong  
các nhiu mt ca cuc sng, như giáo dc, giao thông, y tế…  
Vi mô phng phân tán và mô phng song song, mt chương trình mô phng có thể  
thc thi trên mt máy tính có nhiu bvi xlý như PC.Độ ln và phc tp ca các  
chương trình gilp ngày càng tăng theo thi gian. Trong mt chương trình mô phng  
phân tán ln vi nhiu đối tượng, mt PC có thkhông đủ bnhvà khnăng tính toán  
để thc hin. Vic phân tán thc thi trên nhiu máy tính có thgiúp tăng hiu quxlý  
và lưu trhơn là làm trên mt 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í dnhư trong các phòng ca mt tòa nhà, trong mt thành ph,  
hoc rng hơn là trên toàn thế gii.  
Bng vic chia nhmt khi lượng tính toán mô phng ln sang các khi tính toán  
bé hơn, và thc thi các khi đó đồng thi vi N bvi xlý, ta có thtăng tc độ lên N ln  
so vi trên 1 bvi xlý trên mt máy. Trong các bmô phng trên máy tính vic gim  
thi gian thc thi rt quan trng bi vì các kĩ sư skhông mun phi đợi mt thi gian dài  
cho vic nhn kết qutrvbi chương trình. Trong vic mô phng thc ti o, nơi mà  
con người hòa mình vào, thi gian xđóng mt vai trò rt quan trng giúp mô phng  
được thc hơn, mang hiu qucao hơn. Thc thi mô phng 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 hot hơn, không bhn chế vkhông  
gian. Khi nhiu máy tính cùng thc thi song song, nếu mt máy tính bli, các máy tính  
10  
khác vn có thhot động tính toán bình thường. Điu này giúp tăng hiu sut lên đáng  
k.  
Vic tìm kiếm mt ngôn nghtrcho mô phng đáp ng tt các yêu cu ca mô  
phng có vai trò rt ln. Ngôn ngWAVE dùng cho mô phng vn đã song song, xlý  
trên các cu trúc dng đồ thvà phân tán gia các nút xlý. Tt ccác chương trình  
WAVE đều mang tính di động cao và thông dch. Điu đó giúp gim ti mng, gim thi  
gian truyn dliu dn đến gim thi gian chờ đợi chung ca mô phng phân tán song  
song.  
2.2. Công nghWAVE  
Ngày nay, các hthng mvà mng máy tính đang phát trin rt nhanh và được cả  
thế gii quan tâm. Hthng mng máy tính kết ni công vic tkhp nơi trên thế gii,  
mng máy tính cũng gimt khi lượng khng ldliu dch vvà thông tin. Nhng  
công ctương tác không chỉ để tìm kiếm thông tin, dch vhoc file ngay trên máy tính  
mà còn được mrng về địa lý, không gian… và hoàn toàn mtrên Internet. Mt ví dụ  
đin hình ở đây chính là World Wide Web. Tuy nhiên, hu hết các mô hình và công cụ  
lp trình phân tán thiếu đi khnăng linh hot để khai thác thông tin vcu trúc mmt  
cách tự động.  
Nhng mô hình lp trình và hthng phân tán truyn thng thường da trên dliu  
đóng. Công vic được xlý trong các ng dng phân tán thường phi được định nghĩa  
trước hoc được gi thông qua vic kích hot thtc, phương thc. Phn ln vic xlý  
và tương tác thông qua vic trao đổi thông đip cha dliu. Ngoài ra hthng phân tán  
có thcung cp dliu và dch vchia s. Trong mng máy tính, dch vvà thông tin chỉ  
nm các máy chủ ứng dng (ví dnhư vic sdng ca các tchc kinh doanh…). Tuy  
nhiên, phương pháp tiếp cn này vn chưa ti ưu. Do đó, chúng ta scn phi tích hp  
linh hot các máy chủ ứng dng trong mt hthng tng thvà có cơ shtng mhơn  
na.  
WAVE không chlà mt mô hình. Wave còn là công nghda trên sliên kết và  
điu khin ca các hthông ln được htrbi mng máy tính và vin thông. Wave cho  
11  
phép linh động to các cu trúc điu khin và vic xlý mng tri thc (phân tán và song  
song) thông minh. Các cu trúc này có thcung cp khnăng ttchc, phc hi, to  
khuôn mu để kết ni ti các hthng khác. Công nghnày da trên vic cài đặt nhiu  
tác nhân thông minh trên hthng phân tán để ti ưu hóa vic xlý dliu cc bthông  
qua vic lan ta thông tin các hthng nhvi nhau hoc hai hthng nhkhác nhau.  
Tt ccông vic trên đều được thông dch qua ngôn ngWave. Mã đệ quy được viết từ  
ngôn ngnày có khnăng tlan ta trong không gian hthng. Không ging các hệ  
thng truyn thng, nó là mt hthng da trên slinh động ca chương trình có thtùy  
ý mrng vmt địa lý và htrnhiu máy tính trên mng. Trong Wave, chương trình  
có thcho vào trong hthng bt kchnào. Khi đó các chương trình này có khnăng  
lan ta qua mng như virus. Nhiu người sdng có thể độc lp phát trin các chương  
trình Wave hoc liên kết trong cùng mt hthng không gian, chia sbiến cc b(biến  
này được liên kết vi Node) vi các biến khác (được kèm theo sdi chuyn ca mã  
Wave). Nói cách khác:  
Wave là mt ngôn ng, model đặc bit và là công nghmi cho hthng song  
song, phân tán hay kết hp các hthng đó vi nhau.  
Wave ban đầu được thiết kế cho vic mô phng mng o như là mng tri thc  
(Knowledge Networks).  
Wave da trên các chương trình mà có thlan ta, mrng, chia nhvà có thể  
thi đáp trong nhng mng tri thc đã được kích hot.  
12  
Hình 2-1.Mô hình Wave  
13  
CHƯƠNG 3.NGÔN NGWAVE  
Trong phn này chúng tôi trình bày vcú pháp và ngnghĩa ca ngôn ngWave.  
Đây là mt ngôn ngữ đặc bit cho phép to và xlý thông tin trong không gian mng theo  
hướng. Chương trình viết bng ngôn ngnày có thể được coi như nhng thành phn linh  
hot, có khnăng di động và kết hp vi các thành phn riêng l, phân tán khác. Trong  
quá trình “di chuyn”, chương trình có thmang theo dliu đồng thi cp nht vào dữ  
liu lưu ti mng KN. Các chương trình mc dù được xlý song song nhưng vn có  
nhng cơ chế cho phép chúng phi hp đồng bvi nhau thông qua hthng các lut.  
phn cui chương này chúng tôi còn đề cp ti mt vn đề na: Wave và các phương  
pháp lp trình truyn thng (lp trình tun tvà lp trình song song).  
3.1. Gii thiu vngôn ngWave  
Wave là mt ngôn ngữ đặc bit cung cp khnăng thc thi mm do, đa người dùng  
trên hthng phân tán. Quá trình thc thi ca ngôn ngWave ging như virus, tc là có  
khnăng nhân bn và lan ta qua mng, thc thi phân tán mà không cn bt ksự điu  
khin tp trung nào.  
Kiến trúc Wave mô tquá trình xlý phân tán qua vic tự định hướng lung chương  
trình qua không gian dliu phân tán có cu trúc như mt đồ thhay được gi là  
Knowledge Network. Các node trên mng phân tán thuc vmt Wave Interpreter nào  
đấy. WI là thành phn có trách nhim thc thi trên tng bphn riêng lca mng, thao  
tác lên dliu được lưu trtrong các node.Trong khi di chuyn, nhng thành phn ca  
mã Wave có thtnhân bn, phân chia hay được chnh sa trong khi vn duy trì strao  
đổi dliu qua li ln nhau.  
3.2. Node, Link và Không gian phân tán : Knowledge Network (KN)  
Định nghĩa:  
14  
Node: Có thcoi là mt đối tượng – hay mt đim trong không gian, cha các  
biến (biến là thuc tính ca node)  
Link: Có thcoi là mt quan hgia các nút - hay mt đon, đường thng  
trong không gian. Nó cũng có các thuc tính  
Wave to và xlý KN – là tp hp các node và các link có hướng hoc vô hướng.  
Cnode và link đều có ni dung riêng ca mình (kiu giá trlà string). KN có thể được  
phân tán trong không gian mng, tn ti trên nhiu máy tính khác nhau. Mi máy tính có  
thkhông cha hoc cha nhiu node ca KN và các link có thkết ni ti các node  
trong cùng máy tính hoc vi các máy tính khác.  
Tt ccác node đều có địa chduy nht trong không gian phân tán bao gm 2 thành  
phn: thành phn thnht để phân bit các node trong cùng mt máy, và thhai là để  
phân bit các node gia các máy khác nhau trong không gian mng. Node có thể được  
truy cp qua các node khác mt cách trc tiếp bng Content hay bng Address ca  
chúng hoc qua quá trình mrng qua các link ca KN, vic đặt tên cho link và node  
nhm phc vụ điu này. Có 2 kiu nhy qua li gia các node đó là direct hop surface  
hop để thc hin vic nhy ti 1 node hay có thnhy đến tt ccác node khác – được  
dùng cho vic gi qung bá.  
Không ging vi node, link ca KN không thtruy xut trc tiếp qua tên. Dliu  
lưu trtrong link chcó thnhn được hoc thay đổi mt cách cc b, trong quá trình di  
chuyn qua link hay khi đứng trc tiếp ti mt node cthnào đó. Tmt node, cni  
dung và hướng ca link có thtruy xut trc tiếp.  
Ví d:  
15  
Hình 3-1.Knowledge Network  
3.3. Tchc chung ca ngôn ngWave  
Ngôn ngWave đặc trưng cho quá trình lan ta song song trong không gian dliu  
phân tán được biết là KN. Do vy cú pháp ca ngôn ngmiêu trõ quá trình hot động  
này:  
wave Æ {{move , } . }  
move Æ { data_unit act  
} | [rule] (Wave) }  
rule ÆSQ | OS | AS | AP | RP | WT | ID | CR  
unit Æ{ stirng; } | N{l_d} | F{l_d} | C | A | P | S | L | T |  
act Æ# | ~ | /~ | == | / = | < | <= | + | - | * | / |** | | | % | & | : | :: | = | ? | !  
trong đó các phn nm trong [] là tùy chn  
Mt chương trình Wave hay gi đơn gin là Wave bao gm skết hp các tác động  
lên KN gi là các move – thành phn có ththc hin xlý dliu cc bti các Node  
ca KN và mrng ti các Node khác. Quá trình thc thi song song hay thc thi không  
theo thtự được tách bit bi du phy (,) phát trin mt cách độc lp tcùng mt Node  
16  
trong KN. Tp các moves độc lp gi là zone, được tách bit nhau bi du chm câu (.),  
các thành phn này sẽ được thc thi mt cách tun t.  
Ví d:  
Ft={Fa=1;2;3}. Fa+1. ^Ft.T=Fa  
Các Rule trong Wave cung cp cho Wave khnăng mrng trong không gian  
mng, kết hp cùng vi các Wave khác. Mt ví d, các lut có thtự động tách Wave ra  
thành nhiu nhánh riêng bit ri sau đó phát trin chúng song song hoc tun ttrong KN,  
chúng có thto ra hoc mrng KN trong khi di chuyn. Các Rule sẽ được làm rõ hơn  
trong phn sau.  
Mt cách tng quát, vic thc thi phn đầu ca Wave (Wave’s Head) ti mt vài  
Node có thlà nguyên nhân dn ti quá trình lan ta ca Tail ca chui Wave (Wave’s  
Tail) ti 0 hay nhiu các Node khác – chúng ta sgi chúng là tp các Node ti được  
(SNR).  
Ví d:  
w1.w2.w3.w4: cu trúc ca mt chương trình Wave - sni tiếp ca các zones  
w1,w2,w3: zone đơn lvi tp các move độc lp, tt cả đều được thc thi ti  
cùng mt Node bt đầu  
w1,w2.w3,w4: skết hp ca 2 kiu trên  
3.4. Cu trúc dliu cơ bn ca Wave  
Wave là ngôn ngữ được dùng cho quá trình xlý trên mng, nhưng không ging các  
ngôn ngkhác, kiu dliu cơ skhông phn ánh vic đó. Wave sdng kiu dliu cơ  
slà Vector: là tp các string được phân tách nhau bi du chm phy (;). Tt ccác hot  
động ca ngôn ngữ đều thc thi trên Vector. Truy cp ti thành phn ca Vector có thể  
17  
thông qua chshay chính ni dung ca các thành phn trong Vector – indexing và  
contenting. Dliu lưu trtrong Vector là động, tc có ththay đổi khi có sthêm bt  
dliu mt cách tự động.  
Ví d:  
Vector cha 1 phn t: 3  
Cha 6 phn t: 1;2;3;4;5;6  
Cha nhiu kiu dliu khác nhau: 34;NONE;25;;a;;;b  
3.5. Biến Spatial và kiu  
Wave thao tác trên kiu biến được gi là spatial variable, chúng nm phân tán và  
thường liên quan ti dliu cc bti các Node ca KN hay có ththuc vmt chui  
Wave nào đó. Biến kiu này được chia làm 2 loi: task variable environment  
variable  
3.5.1.  
Task variables  
Task variable bao gm: node variable và frontal variable. Các biến kiu nodal được  
lưu cc bti node ca KN, các biến kiu frontal có thể đi cùng Wave qua các node khác  
nhau trong mng. C2 loi biến này đều là tm thi.  
9 Biến Nodal: các biến loi này được khai báo bt đầu bng ký tN  
9 Biến Frontal: các biến loi này được khai báo bt đầu bng ký tF  
3.5.2.  
Environment variables  
Biến môi trường có nhng định danh và ý nghĩa khác nhau:  
18  
9 CONTENT (C): cha content ca Node hin thi. Giá trca C luôn là  
string, vic thay đổi ni dung ca C có thể được gán trc tiếp bng giá trị  
nào đó hoc NONE – xóa Node cùng vi các Link liên kết vi nó.  
9 ADDRESS (A): địa chca Node hin thi. Luôn trli địa chỉ đầy đủ ca  
Node nơi Wave đang đứng gm định danh ca Node trong máy và định  
danh ca Node trong mng. Đây là biến chỉ đọc.  
9 PREDECESSOR (P): biến lưu địa chca Node trước đó Wave đã đi qua.  
Nó chthay đổi khi có sdi chuyn ca Wave sang Node khác.  
9 LINK (L): cha content ca Link va mi đi qua.  
9 TERMINAL (T): mt loi biến đặc bit dùng để in ra giá trtương ng ti  
mt đầu cui 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 thc hin các phép toán cơ bn bên trong move, dùng để thay đổi giá trcác  
biến, thay đổi trng thái hot động ca wave. Giá trtrvgm 3 loi chính sau:  
TRUE (2): thành công và cho phép Wave tiếp sau đó thc thi ti Node hin  
thi.  
19  
DONE (1): thành công nhưng không cho phép Wave thc thi tiếp ti Node hin  
thi.  
FALSE (0): tht bi, loi bWave ti Node hin thi.  
Control acts được phân loi như hop, filters, assignment, state genertator và code  
injection.  
Hop. Được thc thi bng toán hng #. Ta shiu rõ hơn cách thc thi ca Hop qua các Ví  
dsau:  
DIRECT # ANY, cách viết khác @#: nhy ti tt ccác node khác trong KN  
trên cùng máy tính tmt node nào đó  
-p#b: nhy tnode hin thi theo cung đi ra (-)p ti node b  
ANY#ANY hay #: nhy qua tt ccác link ti tt chàng xóm ca mt node  
Và mt skiu nhy khác: x#ANY, ANY#x  
Để nhy sang 1 node máy khác ta có cu trúc: a#b$$`IP, trong đó IP là địa chỉ  
IP ca máy đích  
Filter. Các filter gm các phép toán sau đây: ~ (thuc v), /~ (không thuc v), == (so  
sánh bng), /= (so sánh không bng), < (so sánh nhhơn), <= (so sánh nhhơn hoc  
bng), > (so sánh ln hơn), >= (so sánh ln hơn hoc bng). Giá trtrvslà TRUE  
hoc FALSE. Nếu giá trtrvlà TRUE, node hin thi strthành mt SNR và Wave  
tail stiếp tc phát trin tnode này.  
Filter ~:  
o Cú pháp: vector1 ~ vector2  
o Chc năng: kim tra các phn tca vector 1 có nm trong vector 2 hay  
không  
20  
Ví d: a;b ~ p;q;b;a strvTRUE  
Filter /~: ngược li toán t~  
Filter ==:  
o Cú pháp: v1 == v2  
o Chc năng: kim tra 2 vector có bng nhau hay không  
o Ví d: 2;3 == 2;3 strli TRUE  
Filter /=: ngược li vi ==  
Các filter còn li: >,>=,<,<= có ý nghĩa toán hc thông thường nhưng được  
thc hin trên vector  
Nếu 1 filter trli giá trTRUE, node hin ti strthành SNR, ngược li SNR sẽ  
rng và chui Wave sdng quá trình thc thi.  
Assignment.Toán tgán = sgán giá trca toán hng bên phi vào toán hng bên trái.  
Dliu bên phi có thlà giá trs, string, biến, vector. Phép gán luôn trli kết qulà  
TRUE.  
Ví d: Na=1, Na=1;2;3, Na=Nb;2;3;Fc  
State Generator. Các trng thái trvề ở trên đều xy ra sau mt quá trình thc thi nào đó.  
Đôi khi ta mun trc tiếp xác định trng thái kết qutrvề để điu khin lung chương  
trình, có mt cách khác để thc hin đó là dùng State Generator gm 4 trng thái: TRUE,  
DONE, FALSE, ABORT. Cú pháp gm tên trng thái, theo sau là du !  
Ví d:  
w1.TRUE!.w2  
Trong Ví dnày w2 stiếp tc thc hin  
21  
w1.DONE.w2 hoc w1.!.w2 sdng sau khi thc hin xong w1  
Code Injection. Cú pháp ^Func, trong đó Func là mt chui Wave. Phép chèn mã này sẽ  
bsung thêm vào chui Wave mt chui nm trong biến sau ^. Phép này hay được sử  
dng khi gi 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 hp nht  
Các phép toán shc. Bao gm các phép toán +, -, *, /. Nếu thc hin chia cho 0, kết quả  
trvlà FALSE.  
Ví d:  
`124.36’ + 100 có kết qu: `224.36’  
66;4;24 – 1;1;1;1;1;1;1 có kết qu: 65;3;23;-1;-1;-1;-1  
1;2;3;4;5 * 1;1;1 có kết qu: 1;2;3;0;0  
2;3;4 / 1;2 có kết qu: FALSE  
NONE * strli rng  
Các phép toán trên Vector đặc bit. Gm 1 sphép toán sau:  
&: append, ni 1 Vector vào sau 1 Vector khác  
o Ví d: v1 & v2 – v1, v2 là 2 Vector  
Toán thai chm (:) : ly giá trti 1 vtrí ca Vector  
o Ví d: Fa=3;2;3. Fa:1 strli 3  
22  
Toán t(::):  
o Ví d: Fa=3;2;3. Fa::3 = 10. Kết quFa = 10;2;10  
|: splits, chia string toán hng bên trái thành 1 Vector các string con bi du  
phân cách toán hng bên phi  
o Ví d: `a+b+c’ | `+’ strli a;b;c  
%: join, ngược li vi | tc nó shp các Vector con li thành 1 string vi phân  
cách là toán hng bên phi.  
o Ví d: a;b;c % `+’ strli a+b+c  
Gi hàm bên ngoài (External calls).Thc hin qua toán t?, gi mt hàm nào đó ca hệ  
thng vi đầu vào là các tham stWave truyn vào.  
Ví d: 50?`sleep’ sdng chương trình 50 giây  
3.7. Rules – Các lut trong Wave  
Wave có thphát trin độc lp, dbđược xlý song song trong không gian  
phân tán. Tuy nhiên đim mnh ca Wave là nó có hthng các RULE để qun lý và  
đồng bcác các hành động. RULE thiết lp các ràng buc trong vic lan ta chui Wave.  
Thông qua RULE, hthng có ththc thi nhiu ln mt Wave, hay tiếp tc lan ta Wave  
nếu tha mãn mt điu kin nào đó, hoc có thchm dt toàn bwave. RULE thường  
“treo” phn còn li ca chui Wave (remainder) và lan ta nó ra chkhi chui Wave nm  
trong lut thc thi xong và trli trng thái TRUE.  
Các Lut RNhánh  
SEQUENCE(SQ): kích hot tt ccác nhánh mt cách tun tmà không cn  
quan tâm ti trng thái kết qutrv. SNR trên SQ là tp các SNR tcác  
nhánh con.  
23  
Ví d: SQ(Fa=1, Fa+1).T=Fa sto ra 2 nhánh Fa=1 và Fa+1, thc hin tun tự  
2 nhánh này. Kết qucui là 2  
OS_SEQUENCE: kích hot tt ccác nhánh tun tcho ti khi nó nhn được  
kết quTRUE hoc DONE trvtmt nhánh nào đó  
Ví d: OS(Fa=5.Fa>1, T=Fa) to ra 2 nhánh Fa=5.Fa>1 và T=Fa và thc hin  
tun t. Nhưng do nhánh thnht trvTRUE nên không thc hin tiếp nhánh  
th2  
AND_SEQUENCE(AS): tương tSQ nếu tt ccác nhánh đều trvTRUE  
hoc DONE, nếu 1 nhánh FALSE, trng thái toàn bAS slà FALSE  
Ví d: AS(TRUE!, FALSE!) strli FALSE  
OR_PARALLEL(OP): kích hot các nhánh và thc thi chúng song song, nếu 1  
nhánh trvTRUE hoc DONE, OP snhn TRUE. Nếu không nhánh nào trả  
vTRUE hoc DONE, OP sFALSE  
Ví d:OP(FALSE!, FALSE!, TRUE!) strli TRUE  
AND_PARALLEL(AP): như AS nhưng các nhánh thc thi song song  
Ví d: AP(TRUE!, TRUE!, FALSE!) strli FALSE  
RANDOM(RN): chn mt nhánh ngu nhiên để phát trin tiếp  
Repetition  
Lut REPEAT vi khnăng vòng lp cho phép chia Wave thành các phn nhhơn  
khi di chuyn trong KN.  
24  
Nếu kết qutrng thái trvlà TRUE hoc FALSE (SNR không rng) thì mi thành  
phn này sẽ được ghép thêm Tail ca Wave. Lúc này, tt cSNR Node đều cha biến  
Frontal (biến này được mang ti tcác Node).  
Nếu kết qutrng thái trvlà DONE (SNR không rng) thì Tail ca Wave sbị  
loi b.  
Ví d: F = 1; 9; 5; 6; 7; 8; 12.  
REPEAT ( Fi +1. F : Fi /= NONE. N + ( F: Fi)).  
TERMINAL =N.  
Create  
Lut CREATE(CR) cho phép Wave có khnăng mrng chính mng KN trong khi  
lan ta trong không gian. Chui Wave cha lut này vn phát trin như thông thường, chỉ  
có các bước nhy là bị ảnh hưởng - có ththay đổi chế độ ca chúng tchế độ lan ta  
(navigation) sang chế độ to mi (creation). Khi đó các node và link nếu chưa có sẽ được  
to ra.  
Có rt nhiu chi tiết quan trng trong ngnghĩa ca lut CR. Nếu node ca 1 bước  
nhy tương ng bng địa chca nó – điu này có nghĩa node đó đã tn ti, tc các thành  
phn trong lut CR nếu chưa có sẽ được to ra, còn nếu đã tn ti thì quá trình CR sẽ  
không to ra node hoc link mi.  
Ví d:  
CR(@#a.+p#b.+q$$c`192.168.1.10’)  
Ý nghĩa: nhy trc tiếp ti node a mc dù node a chưa có nhưng do nm trong lut  
CR nên node a sẽ được to ra, sau đó to ra link có hướng +p ti node b, to node c và  
link +q ni ta đến c trên máy 192.168.1.10  
25  
Release  
Lut RL skhi to mt Wave mi độc lp vi chui Wave ban đầu, mã ca Wave  
mi này là phn nm trong du ngoc ca RL, WE ca Wave mi chính là WE ca Wave  
ban đầu. Wave mi được to ra được đưa vào Wave Queue để chxlý. Phn remainder  
ca Wave ban đầu stiếp tc được thc hin như bình thường.  
Ví d:  
w1.RL(w2).w3  
Ý nghĩa: sau khi thc thi xong w1, gp RL chương trình Wave stách w2 cùng vi  
biến môi trường thành Wave mi cho vào hàng đợi xlý, chui Wave tiếp tc thc thi là  
w3 cùng vi biến môi trường ca nó.  
3.8. Wave và mô hình lp trình truyn thng  
3.8.1.  
Sơ đồ lung (SD)  
Wave là ngôn ngcó khnăng xlý cu trúc dliu không gian phân tán ln. Mt  
thuc tính quan trng ca Wave là các chương trình điu khin luôn được liên kết vi vị  
trí nào đó trong không gian dliu (trong khi dliu gia các Node lan ta, hay gia các  
SNR lan ta). Dliu ca cùng mt Node có thxut hin nhng nơi khác nhau trong  
cùng mt SNR cùng mt không gian cc b.  
26  
Hình 3-2.Thành phn ca Spread Diagrams  
Các kiu module ca Spread Diagram là  
SNR  
Move  
Rule  
Halt  
Các thành phn liên quan  
o Link  
o Biến Spatial  
27  
3.8.2.  
Wave và mô hình lp trình song song  
Wave biu din theo SD trong mng dliu có thể được điu khin hoàn toàn bi  
Rule. Các thành phn ca chui Wave ttách thành các nhánh trước và trong quá trình  
thc thi.  
Ví d: Tách chui Wave  
m1, m2 , m3. m4, m5 Æ  
(m1. m4, m5), (m2. m4, m5 ), (m3. m4, m5)  
Hình 3-3.Tự động tách trong chui Wave  
Ngoài ra, trong quá trình Wave thc thi, các thành phn ca nó có thể được sao chép  
và thay thế mà dliu không bthay đổi (Như trong Hình 3-4: m2 được sao chép và thay  
thế mà dliu vn được ginguyên)  
m1. m2. m3 Æ  
m1. m2, m2, m2. m3 Æ  
28  
m1.(m2. (m3, m3, m3)),  
(m2. (m3, m3, m3)),  
(m2. (m3, m3, m3))  
Hình 3-4.Mt strường hp xlý song song  
mt ví dkhác ta thy rõ hơn Rule điu khin chui Wave như nào (Hình 3-5).  
29  
Hình 3-5.Wave xlý song song có kèm theo Rule  
m1. OR_PARALLEL (m2, m3. m4). m5 Æ  
m1. OR_PARALLEL((m2, m4), (m3. m4)) .m5 Æ  
m1. OR_PARALLEL((m2. m4, m4, m4), ( m3. m4, m4, m4) ). m5  
Wave và mô hình lp trình tun tự  
3.8.3.  
Vic cho phép phát trin không gian, xlý song song và tự động trong môi trường  
phân tán, Wave có thddàng mô hình hóa mt schương trình xlý tun t. Ging các  
chương trình bình thương, truyn thng cùng mt máy tính, Wave phi cùng mt  
đim trong không gian và chcó duy nht mt lung được xlý. Chúng ta sbàn vvn  
đề này thông qua các ví dụ ở dưới đây.  
Ví d1  
30  

Tải về để xem bản đầy đủ

pdf 143 trang yennguyen 05/07/2025 1020
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Xây dựng hệ thống mô phỏng và thực tại ảo sử dụng ngôn ngữ wave", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_xay_dung_he_thong_mo_phong_va_thuc_tai_ao_su_dung.pdf