61
Nhng lời đầu tiên Vi những dòng chữ đầu tiên này, tôi xin dành để gi li cảm ơn chân thành và sâu sắc nht ti CPGS.TS Trn ThChâu - ngƣời đã tận tình hƣớng dn, chbo cho tôi từ nhng kiến thức trên lớp Đại hc, Cao học cho đến Luận văn thạc skhoa hc. Tôi cũng xin gi li cảm ơn rt chân thành và sâu sắc tới Cô giáo, TS Nguyn ThMinh Huyn ngƣời đã tiếp tục hƣớng dn tận tình và tạo cho tôi những điều kin tt nht cho tới khi hoàn thành công việc của mình. Đồng thời, tôi xin gửi li cm ơn sâu sắc tới các Thầy, Cô trong Bộ môn Tin hc, Ban Chnhiệm Khoa Toán – Cơ – Tin học và các Thầy, Cô, cán bộ công tác tại Phòng Sau đại hc những ngƣời đã tạo rt nhiều điều kiện và cho tôi những li khuyên vô cùng bổ ích để giúp tháo gỡ những khó khăn, vƣớng mắc trong quá trình hc tp. Cuối cùng, xin cảm ơn tất cnhững ngƣời thân yêu trong gia đình tôi cùng toàn thể bạn bè, những ngƣời đã luôn giúp đỡ và động viên tôi mỗi khi vp phi những khó khăn, bế tc.

5-LuanVanThacSi-ChuaPhanLoai (102).pdf

  • Upload
    lyhuong

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Những lời đầu tiên

Với những dòng chữ đầu tiên này, tôi xin dành để gửi lời cảm ơn chân thành

và sâu sắc nhất tới Cố PGS.TS Trần Thọ Châu - ngƣời đã tận tình hƣớng dẫn, chỉ

bảo cho tôi từ những kiến thức trên lớp Đại học, Cao học cho đến Luận văn thạc sỹ

khoa học.

Tôi cũng xin gửi lời cảm ơn rất chân thành và sâu sắc tới Cô giáo, TS

Nguyễn Thị Minh Huyền – ngƣời đã tiếp tục hƣớng dẫn tận tình và tạo cho tôi

những điều kiện tốt nhất cho tới khi hoàn thành công việc của mình.

Đồng thời, tôi xin gửi lời cảm ơn sâu sắc tới các Thầy, Cô trong Bộ môn Tin

học, Ban Chủ nhiệm Khoa Toán – Cơ – Tin học và các Thầy, Cô, cán bộ công tác

tại Phòng Sau đại học những ngƣời đã tạo rất nhiều điều kiện và cho tôi những lời

khuyên vô cùng bổ ích để giúp tháo gỡ những khó khăn, vƣớng mắc trong quá trình

học tập.

Cuối cùng, xin cảm ơn tất cả những ngƣời thân yêu trong gia đình tôi cùng

toàn thể bạn bè, những ngƣời đã luôn giúp đỡ và động viên tôi mỗi khi vấp phải

những khó khăn, bế tắc.

LỜI CAM ĐOAN

Tôi xin cam đoan kết quả đạt đƣợc trong luận văn là sản phẩm của riêng cá

nhân, không sao chép lại của ngƣời khác. Trong toàn bộ nội dung của luận văn,

những điều đƣợc trình bày hoặc là của cá nhân hoặc là đƣợc tổng hợp từ nhiều

nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và đƣợc trích

dẫn hợp pháp.

Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy

định cho lời cam đoan của mình.

Hà Nội, ngày 14 tháng 12 năm 2012

Bùi Việt Hải

MỤC LỤC

MỞ ĐẦU ........................................................................................................................ 1

Chƣơng 1 – MẠNG PETRI CƠ SỞ VÀ MẠNG CÁC ĐIỀU KIỆN - BIẾN CỐ ......... 4

1.1. Các khái niệm cơ bản về mạng Petri ................................................................... 4

1.1.1. Ví dụ về mạng Petri .................................................................................. 4

1.1.2. Các khái niệm cơ sở .................................................................................. 5

1.1.3. Phân loại mạng Petri ................................................................................. 7

1.2. Mạng các điều kiện – biến cố .............................................................................. 8

1.2.1. Các trƣờng hợp và các bƣớc ..................................................................... 8

1.2.2. Hệ điều kiện - biến cố ............................................................................. 11

1.2.3. Hệ chu trình và hệ sống........................................................................... 12

1.2.4. Sự tƣơng đƣơng của các hệ điều kiện – biến cố ..................................... 13

1.2.5. Các hệ mạng an toàn và đầy đủ hóa hệ điều kiện – biến cố ................... 15

1.2.6. Đồ thị các trƣờng hợp ............................................................................. 17

1.2.7. Các quá trình của hệ điều kiện – biến cố ................................................ 19

Chƣơng 2 – MẠNG VỊ TRÍ/ CHUYỂN VÀ MỘT SỐ TÍNH CHẤT CỦA MẠNG

PETRI ........................................................................................................................... 29

2.1. Mạng vị trí chuyển............................................................................................. 29

2.1.1. Khái niệm mạng vị trí chuyển ................................................................. 29

2.1.2. Mạng an toàn và quá trình chuyển mạng về mạng an toàn ..................... 32

2.1.3. Biểu diễn đại số cho các mạng Petri ....................................................... 33

2.1.4. Đồ thị phủ của mạng Petri....................................................................... 37

2.1.5. Ngôn ngữ sinh bởi lƣới mạng ................................................................. 38

2.2. Một số tính chất của mạng Petri ........................................................................ 40

2.2.1. Tính chất bị chặn của mạng Petri ............................................................ 40

2.2.2. Tính chất sống của mạng Petri ................................................................ 41

2.2.3. Tính chất tắc nghẽn của mạng Petri ........................................................ 42

2.2.4. Tính chất thuận nghịch của mạng Petri ................................................... 42

Chƣơng 3 – ỨNG DỤNG MẠNG PETRI TRONG LẬP TRÌNH HƢỚNG ĐỐI

TƢỢNG TƢƠNG TRANH.......................................................................................... 44

3.1. Phƣơng pháp đối tƣợng hợp tác ........................................................................ 44

3.2. Sử dụng phƣơng pháp COO giải quyết bài toán “Bữa ăn tối của các triết gia” 47

3.3. Trình biên dịch SYROCO dựa trên phƣơng pháp COO ................................... 51

KẾT LUẬN .................................................................................................................. 53

DANH MỤC BẢNG, HÌNH VẼ, CHỮ VIẾT TẮT

Hình 1. Mô hình mƣợn và trả sách thƣ viện

Hình 2. Mô hình chi tiết mƣợn và trả sách thƣ viện

Hình 3. Mô hình mạng đơn giản

Hình 4. Thí dụ về các bƣớc

Hình 5. Thí dụ về tính xung đột

Hình 6. Thí dụ về các bƣớc

Hình 7. Thí dụ về hệ sống nhƣng không là chu trình

Hình 8. Ví dụ về hệ 4 mùa trong năm

Hình 9. Thí dụ hệ tƣơng đƣơng biểu diễn 4 mùa trong năm

Hình 10. Hệ mạng và hệ mạng đầy đủ tƣơng ứng ’

Hình 11. Hệ mạng an toàn nhƣng không đầy đủ

Hình 12. Hệ điều kiện biến cố và đồ thị các trƣờng hợp tƣơng ứng

Hình 13. Đồ thị có hƣớng

Hình 14. Mô hình quá trình sản xuất và tiêu thụ

Hình 15. Sơ đồ chuyển kích hoạt và hoạt động

Hình 16. Sơ đồ chuyển không đƣợc kích hoạt

Hình 17. Ví dụ chuyển mạng về mạng an toàn

Hình 18. Thí dụ biểu diễn ma trận của một mạng Petri

Hình 19. Mạng Petri và đồ thị phủ tƣơng ƣớng

Hình 20: Mô phỏng quá trình “đọc” bằng mạng Petri suy rộng

Hình 21: Mô phỏng quá trình “ghi” bằng mạng Petri suy rộng

Hình 22. Ví dụ mạng Petri không bị chặn

Hình 23. Thí dụ về mạng Petri thuận nghịch

DANH MUC CAC TƢ VA CAC KY HIÊU VIÊT TĂT

STT Ky hiệu viết tắt Minh giai

1 ={0,1,2,…} Tập tất cả các số tự nhiên

2 P/T nets Mạng vị trí chuyển

3 M0(s) Vị trí s đƣợc đánh dấu khởi tạo

4 M(s) Vị trí s đƣợc đánh dấu

5 x Tập tất cả các vị trí có cung hƣớng đến x

6 x Tập tất cả các vị trí có cung từ x đi ra

7 pre Ma trận điều kiện trƣớc

8 post Ma trận điều kiện sau

9 COO Phƣơng pháp đối tƣợng hợp tác

CoOperativeObjects

10 OPNs Mạng Petri đối tƣợng

Object Petri Nets

11 OBCs Cấu trúc điều khiển đối tƣợng

Object Control Structure

1

MỞ ĐẦU

Trong đời sống hàng ngày, bên cạnh các sự kiện mà các hành động trong nó

xảy ra một cách tuần tự, còn có các sự kiện mà các hành động trong nó xảy ra một

cách không tuần tự. Tƣơng ứng với các sự kiện trên ta có các quá trình và chúng

đƣợc phân thành hai loại: các quá trình tuần tự và các quá trình không tuần tự. Các

quá trình không tuần tự là cơ sở xây dựng hệ thống tƣơng tranh.

Một hệ thống đƣợc gọi là hệ tƣơng tranh (concurrent system) nếu nó đƣợc

hợp thành từ một số hệ con (tuần tự) và có các biến cố đƣợc xảy ra một cách đồng

thời. Trong các hệ thống tƣơng tranh, tại một thời điểm có thể xảy ra đồng thời

nhiều hành động. Các hành động này có thể không phụ thuộc vào nhau, cạnh tranh

lẫn nhau trong việc sử dụng tài nguyên.

Đề biểu diễn hệ tƣơng tranh, các nhà khoa học trên thế giới đã nghiên cứu và

đƣa ra các phƣơng pháp luận nhƣ: mạng Petri đƣợc đề xuất bởi C. A. Petri vào năm

1962; Ngôn ngữ vết (trace language) do A. Mazurkiewicz đƣa ra vào năm 1977;

CSP (Communicating Sequential Processes) do C. A. R. Hoare đƣa ra vào năm

1978; CCS (Calculus of Communicating Systems) đƣợc R. Milner xây dựng vào

năm 1980; Đại số các quá trình (algebra of processes) của J. A. Bergstra; COSY

(COncurent SYstem) do P. Lauer đề xuất; Cấu trúc biến cố (event structure) của G.

Winskel…Trong đó, mạng Petri (Petri net) đƣợc biết đến nhƣ là mô hình đầu tiên

để biểu diễn hệ tƣơng tranh đƣợc đề xuất bởi C. A. Petri vào năm 1962 trong Luận

án Tiến sĩ của ông “Kommunikation mit Automaten”. Nếu otomat hữu hạn chỉ mô

tả đƣợc các hệ thống tuần tự thì mạng Petri, một công cụ toán học đƣợc phát triển

trên cơ sở của otomat hữu hạn, mô tả đƣợc các hệ thống không tuần tự mà trong đó

có các hệ thống tƣơng tranh.

Khái niệm mạng Petri đã đƣợc phát triển nhằm tìm kiếm những phƣơng pháp

tự nhiên, đơn giản và có hiệu lực để mô tả, phân tích các dòng thông tin, và các dữ

liệu điều khiển trong các hệ xử lý thông tin. Mạng Petri đƣợc sử dụng nhằm mục

đích mô hình hóa các hệ chế biến thông tin và các quá trình trên các mức độ trừu

tƣợng khác nhau, nghĩa là có thể mô hình hóa chúng một cách chi tiết nhất theo một

2

ngôn ngữ thống nhất [1,2]. Yêu cầu đặt ra đối với lý thuyết này là làm thế nào xây

dựng đƣợc những loại máy tính có khả năng tính toán song song hoặc đồng thời

đánh giá đƣợc nhiều hàm. Trong mọi trƣờng hợp, nhiệm vụ chủ yếu của máy tính là

đóng vai trò làm một bộ phận của một hệ thống có tổ chức cao, đồng thời đảm bảo

đƣợc dòng thông tin mong muốn giữa các bộ phận làm việc song song của hệ thống

ấy và đƣơng nhiên những vấn đề tính đƣợc phải chứa đựng trong đó, và hơn nữa,

một số tính chất của mạng nhƣ “tính sống”, “tính an toàn” đƣợc thể hiện [1, 8].

Mạng Petri thƣờng đƣợc áp dụng trong các lĩnh vực mà ở đó số lƣợng và sự

phân bố của các đối tƣợng chuyển động là quan trọng. Chẳng hạn, dữ liệu trong

máy tính, hàng hoá trong kho, tài liệu trong hệ thống hành chính, các công việc

đang tiến hành ở một hệ thống sản xuất …Tại đây, mạng Petri đƣợc sử dụng để thực

hiện những nhiệm vụ khác nhau nhƣ phân tích yêu cầu, mô tả chi tiết, thiết kế, kiểm

tra, mô phỏng và phân tích hành vi [9]. Nghĩa là, mạng Petri chỉ đƣợc sử dụng trong

những bƣớc đầu tiên của phát triển phần mềm (đặc tả và thiết kế), chứ không phải

trong suốt các bƣớc thực hiện phần mềm, bởi vì chúng không phải là một ngôn ngữ

lập trình.

Trong khi đó, lập trình hƣớng đối tƣợng là một phƣơng pháp lấy đối tƣợng

làm nền tảng để xây dựng thuật giải và chƣơng trình. Việc kết hợp mạng Petri và

lập trình hƣớng đối tƣợng nhằm phát huy các điểm mạnh của mạng Petri và cách

tiếp cận hƣớng đối tƣợng có khả năng giải quyết các bài toán tƣơng tranh.

Luận văn tập trung vào tìm hiểu lý thuyết cơ bản về mạng Petri, các tính chất

điển hình của mạng Petri thể hiện thông qua mạng vị trí/ chuyển. Đồng thời, luận

văn nghiên cứu khả năng kết hợp giữa mạng Petri và lập trình hƣớng đối tƣợng

trong một mô hình cụ thể là mô hình Đối tƣợng hợp tác CoOperative Objects

(COOs). Đối tƣợng hợp tác sử dụng lý thuyết mạng Petri để định nghĩa tính tƣơng

tranh trong mỗi đối tƣợng, tƣơng tranh giữa các đối tƣợng và tƣơng tranh giữa các

đối tƣợng có kết nối không đồng bộ. Sử dụng Đối tƣợng hợp tác CoOperative

Objects có thể giải đƣợc bài toán “Bữa ăn tối của các nhà triết học”.

Ngoài phần Mở đầu, Phần Kết luận, nội dung luận văn đƣợc chia thành 3 chƣơng:

3

Chƣơng 1 – Mạng Petri cơ sở và mạng các điều kiện - biến cố. Chƣơng

này trình bày các khái niệm cơ bản về mạng Petri cơ sở và mạng các hệ điều kiện –

biến cố, các quá trình của hệ điều kiện – biến cố.

Chƣơng 2 - Mạng vị trí/chuyển và một số tính chất của mạng Petri.

Trong chƣơng này, chúng tôi trình bày một cách hệ thống về mạng vị trí/chuyển và

các tính chất của mạng Petri gồm tính chất phụ thuộc bộ đánh dấu đầu tiên và tính

chất không phụ thuộc vào bộ đánh dấu đầu tiên. Trong đó, một số tính chất điển

hình của mạng Petri đƣợc đề cập là “tính bị chặn”, “tính an toàn”, “tính sống”, “tính

tắc nghẽn” và “tính thuận nghịch”.

Chƣơng 3 - Ứng dụng mạng Petri trong lập trình hƣớng đối tƣợng tƣơng

tranh. Chúng tôi trình bày ứng dụng của lý thuyết mạng Petri kết hợp với lập trình

hƣớng đối tƣợng tƣơng tranh và một ứng dụng cụ thể là mô hình Đối tƣợng hợp tác

CoOperative Objects để giải quyết bài toán tƣơng tranh “Bữa ăn tối của các nhà triết

học”.

4

Chƣơng 1 – MẠNG PETRI CƠ SỞ VÀ

MẠNG CÁC ĐIỀU KIỆN - BIẾN CỐ

Mạng Petri là một công cụ toán học đƣợc phát triển trên cơ sở của otomat

hữu hạn; nhằm mô hình hóa và phân tích các hệ thống không tuần tự. Mạng Petri

đƣợc đề xuất bởi C.A.Petri vào năm 1962 trong Luận án Tiến sĩ của ông. Ngay từ

giữa những năm 70, mạng Petri trở thành đối tƣợng và một trong những động lực

chính thúc đẩy việc nghiên cứu giải quyết các vấn đề về tính toán song song và

phân tán. Hiện nay, mạng Petri vẫn đang đƣợc nghiên cứu phát triển mạnh mẽ và

đƣợc áp dụng vào nhiều lĩnh vực.

Mạng Petri có thể đƣợc xem nhƣ là một công cụ toán học và đồ thị đầy tiềm

năng dùng cho việc thiết kế và phân tích các hệ - sự kiện rời rạc. Đồng thời, nó cũng

có thể giúp chúng ta trong việc mô hình hóa, phân tích, kiểm tra, lập lịch và đánh

giá kết quả của giai đoạn thiết kế.

1.1. Các khái niệm cơ bản về mạng Petri

1.1.1. Ví dụ về mạng Petri

Việc tổ chức cho mƣợn và nhận trả sách ở một thƣ viện thông thƣờng nhƣ

sau: Bạn đọc có thể truy nhập vào thƣ viện thông qua ba bàn: bàn yêu cầu, bàn nhận

sách và bàn trả sách. Trong thƣ viện tất cả các sách đều đƣợc để trên giá và mỗi

cuốn sách có một thẻ mục. Bạn đọc yêu cầu: nếu cuốn sách có trong thƣ viện thì

Thủ thƣ lấy sách, thẻ mục của cuốn sách đó đƣợc cập nhật và bạn đọc nhận sách tại

bàn nhận sách. Bạn đọc trả sách: Thẻ mục của sách đƣợc cập nhật và sách đƣợc đặt

trở lại giá. Quy trình mƣợn sách và trả sách đƣợc mô tả nhƣ hình vẽ dƣới đây.

Thư viện

Bàn yêu cầu

Bàn nhận sách

Bàn trả sách

Hình 1. Mô hình mƣợn và trả sách thƣ viện

5

Bổ sung vào quy trình trên hai bộ phận làm việc là: “cho mƣợn sách” và

“nhận lại sách” và hai thành phần thụ động là “kho sách” và “hộp thẻ mục sách đã

mƣợn”. Khi đó ta có sơ đồ thƣ viện nhƣ sau:

Cho mượn sách

Nhận lại sách Bàn trả sách

Bàn mượn sách

Hộp thẻ mục sách

đã mượn

Bàn yêu cầu

Kho sách

Hình 2. Mô hình chi tiết mƣợn và trả sách thƣ viện

Đây là một ví dụ về mạng Petri.

1.1.2. Các khái niệm cơ sở

Định nghĩa 1.1.2.1: Bộ ba N = (S, T; F) đƣợc gọi là một mạng Petri nếu:

S và T là hai tập hợp không giao nhau. Các phần tử của tập S đƣợc gọi là S-

phần tử, các phần tử của tập T đƣợc gọi là T-phần tử.

F (S T) (T S) là một quan hệ nhị nguyên và đƣợc gọi là lƣu đồ của

mạng N.

Ngƣời ta thƣờng biểu diễn đồ thị định hƣớng cho mạng Petri bằng cách coi

mỗi phần tử của tập S T là một đỉnh của đồ thị. Các S-phần tử đƣợc biểu diễn

bằng các hình tròn còn các T-phần tử đƣợc biểu diễn bằng các hình vuông. Quan hệ

lƣu đồ F chính là các cung nối giữa các đỉnh tƣơng ứng.

Giả sử N là một mạng Petri. Nếu không nhầm lẫn đôi khi ta viết N thay cho S

T, đó chính là tập các phần tử của mạng N.

i) Với mỗi x N thì:

x = { y N (y, x) F } - đƣợc gọi là tập vào của x,

x = { y N (x, y) F } - đƣợc gọi là tập ra của x.

6

với X N thì:

X =

Xx

x và X

=

Xx

x

Chú ý rằng, với x, y N ta có:

x y y x

ii) Cặp (s, t) S T đƣợc gọi là một chu trình hẹp (self-loop) nếu (s, t) F và (t,

s) F.

Mạng N đƣợc gọi là tinh khiết (pure) nếu quan hệ lƣu đồ F không chứa một chu

trình hẹp nào.

iii) Phần tử x N đƣợc gọi là cô lập nếu x x

= .

iv) Mạng N đƣợc gọi là đơn giản (simple net) nếu các phần tử khác nhau không có

chung tập vào và tập ra, nghĩa là:

x, y N : ( x =

y ) ( x

= y

) x = y

Ví dụ:

t1

t2

t3

t4

t5

s2

s3

s4

s5

Hình 3. Mô hình mạng đơn giản

Mạng ở trên là đơn giản, không tinh khiết và không có phần tử cô lập.

Sự đẳng cấu

Giả sử N và N’ là hai mạng Petri.

1) Cho một song ánh : N N’. Ta nói hai mạng N và N’ là -đẳng cấu nếu:

s SN (s) SN’ và (x, y) FN ((x), (y)) FN’

7

(Điều này cũng suy ra rằng: t TN (t) TN’ ).

2) Hai mạng N và N’ đƣợc gọi là đẳng cấu nếu chúng là -đẳng cấu với một song

ánh nào đó.

Hai mạng đẳng cấu với nhau thì đồ thị biểu diễn của chúng cũng đẳng cấu

với nhau và ngƣợc lại. Do vậy, các mạng đẳng cấu với nhau đƣợc xem là “giống

nhau”.

1.1.3. Phân loại mạng Petri

Mạng Petri đƣợc nghiên cứu một cách rộng rãi trên thế giới, hiện nay có hơn

10 loại mạng Petri khác nhau, chúng tạm đƣợc phân loại thành ba cấp bậc.

Các lớp mạng Petri loại một:

Là loại mạng đƣợc mô tả bởi các vị trí có khả năng biểu diễn giá trị đúng sai,

mỗi vị trí đƣợc đánh dấu tối đa bởi một thẻ dấu không có cấu trúc (unstructured

token). Các mạng thuộc lớp này gồm có :

Mạng các điều kiện – biến cố (Condition / Event Systems)

Mạng cơ sở (Elementary Net Systems)

Mạng 1 – an toàn (1-safe systems)

Các lớp mạng Petri loại hai:

Là loại mạng đƣợc mô tả bởi các vị trí có khả năng biểu diễn giá trị là một số

nguyên. Mỗi vị trí đƣợc đánh dấu bởi một số thẻ dấu không có cấu trúc

(unstructured token). Đại diện cho lớp mạng này là mạng vị trí chuyển

(Place/Transition Nets).

Các lớp mạng Petri loại ba:

Mỗi vị trí trong mạng có khả năng biểu diễn giá trị ở mức độ cao, chúng

đƣợc đánh dấu bởi tập các thẻ dấu có cấu trúc.

Các mạng thuộc lớp này có thể kể đến nhƣ :

Mạng Petri cao cấp với các kiểu dữ liệu trừu tƣợng (High-Level Petri Nets

with Abstaract Data Types)

Mạng Petri suy rộng

o Mạng Petri tô màu (Coloured Petri Nets)

8

o Mạng Petri có thời gian

o Mạng Petri có gán nhãn

1.2. Mạng các điều kiện – biến cố

1.2.1. Các trƣờng hợp và các bƣớc

Ta xét các hệ thống đƣợc tạo bởi các điều kiện (condition) và các biến cố

(event). Các điều kiện đƣợc biểu diễn bằng bởi các S-phần tử còn các biến cố đƣợc

biểu diễn bởi các T-phần tử. Chúng ta biết rằng, các điều kiện hoặc là thoả mãn

hoặc là không thỏa mãn và sự xuất hiện của các biến cố sẽ làm thay đổi sự thoả mãn

của các điều kiện. Trong mỗi một hình trạng của hệ nhƣ thế, một số điều kiện nào

đó thoả mãn, số còn lại thì không.

Tập các điều kiện đƣợc thoả mãn trong một hình trạng đƣợc gọi là một

trƣờng hợp (case). Biến cố e có thể xuất hiện trong trƣờng hợp c nếu các điều kiện

vào của e thuộc c còn các điều kiện ra thì không. Khi biến cố e xuất hiện, các điều

kiện vào của e không thoả mãn nữa còn các điều kiện ra của e bắt đầu thoả mãn.

Nếu S-phần tử và T-phần tử đƣợc thể hiện nhƣ các điều kiện và các biến cố

thì ta sẽ ký hiệu mạng là (B, E; F) thay cho (S, T; F).

Định nghĩa 1.2.1.1: Giả sử N = (B, E; F) là một mạng Petri.

1. Tập con c B đƣợc gọi là một trƣờng hợp hay trạng thái.

2. Giả sử e E và c B. Ta nói rằng e là kích hoạt đƣợc trong c (hay e là c-

kích hoạt) nếu e c và e c = .

3. Giả sử e E , c B và e là kích hoạt đƣợc trong c. Khi đó, c’ = (c\e) e

đƣợc gọi là trƣờng hợp tiếp sau của c (c’ chính là kết quả của sự xuất hiện

của biến cố e trong trƣờng hợp c).

Ta viết: c [ e > c’.

Một biến cố của hệ mạng có thể xảy ra nếu trong hệ có trạng thái làm thoả

mãn các điều kiện trƣớc (pre-conditions) của biến cố đó và khi ấy các điều kiện sau

(post-conditions) của biến cố này chƣa thoả mãn. Khi biến cố xảy ra, các điều kiện

trƣớc không thoả mãn nữa và các điều kiện sau đƣợc thoả mãn. Trạng thái kế tiếp

nhận đƣợc sau khi biến cố trên xảy ra phải thuộc không gian các trạng thái, để có

9

thể kích hoạt các biến cố khác. Không gian các trạng thái của hệ là môi trƣờng để

dãy các bƣớc có thể xảy ra trên hệ, tạo nên các quá trình trên hệ.

Nếu có điều kiện sau nào đó làm cản trở sự xuất hiện của e, nghĩa là e c

e c # thì ta gọi hiện tƣợng này là tình trạng không an toàn.

Tập G E các biến cố mà các tập vào và các tập ra của các biến cố trong G

là rời nhau thì G đƣợc gọi là tách biệt. Các biến cố trong một tập tách biệt G có thể

xuất hiện đồng thời trong một bƣớc nếu mọi biến cố trong G đều đƣợc kích hoạt bởi

cùng một trƣờng hợp.

Định nghĩa 1.2.1.2: Giả sử N = (B, E; F) là một mạng Petri.

1. Tập các biến cố G E đƣợc gọi là tách đƣợc nếu:

e1,e2 G : e1 e2 e1 e2 = e1 e2 = e1 e2 = e1 e2 =

.

2. Giả sử c và c’ là các trƣờng hợp của mạng N và tập con các biến cố G là tách

đƣợc. G đƣợc gọi là một bƣớc từ c tới c’ nếu mỗi biến cố e trong G là c-kích

hoạt và c’ = (c \ G) G

Ta cũng ký hiệu là c [ G > c’. Bƣớc G đã dẫn từ trƣờng hợp c tới trƣờng hợp

c’. Nếu G chỉ chứa một biến cố G = {e} thì:

c [ G > c’ c [ e > c’.

Bổ đề 1.2.1.1: Giả sử N = (B, E; F) là một mạng Petri, tập con các biến cố G E là

tách biệt và c, c’ là các trƣờng hợp. Khi đó thì: c [ G > c’ c \ c’ = G c’ \ c

= G

Nói chung có một số khả năng để ghép các biến cố thành một bƣớc.

Ví dụ:

10

b1 b3 b4

b5b2 e1

e2 e3

Hình 4. Thí dụ về các bƣớc

Trong ví dụ trên:

{e1,e2} là một bƣớc từ {b1,b2} đến {b3,b5}

{e1,e3} cũng tạo nên một bƣớc từ {b2,b3} đến {b4,b5}

Khi thay thế các trƣờng hợp, bƣớc tiếp theo bƣớc sinh ra các quá trình. Nếu bƣớc

hữu hạn thì nó có thể đƣợc thể hiện bởi sự xuất hiện của các biến cố của nó theo thứ

tự tuỳ ý. Do vậy, các biến cố trong một bƣớc hữu hạn có thể thực hiện đồng thời với

nhau.

Bổ đề 1.2.1.2: Giả sử N = (B, E; F) là một mạng Petri, c1, c2 là các trƣờng hợp của

N và G là một bƣớc hữu hạn dẫn c tới c’. Giả sử G = {e1, e2, … , ek} và <e1, e2, …

, ek> là một thứ tự nào đó của các biến cố trong G. Vậy thì có các trƣờng hợp c0,

c1, … , ck mà c = c0, c’ = ck và ci-1[ ei > ci với i = 1, 2, …, k.

Có thể xảy ra trƣờng hợp là hai biến cố đều đƣợc một trƣờng hợp kích hoạt

nhƣng chỉ có thể xuất hiện trong các bƣớc đơn thôi. Đó là trƣờng hợp mà hai biến

cố này có chung điều kiện vào hoặc điều kiện ra. Khi đó sự xuất hiện của chúng loại

trừ lẫn nhau. Các biến cố nhƣ thế đƣợc gọi là xung đột lẫn nhau (conflict). Không

phải lúc nào cũng có thể nhận biết một cách rõ ràng rằng xung đột có xảy ra hay

không.

11

e1 e3

e2

Hình 5. Thí dụ về tính xung đột

Chẳng hạn trong mạng trên, với trƣờng hợp đƣợc chỉ ra nếu e1 xuất hiện

trƣớc e2 thì không có xung đột giữa e1 và e3; còn nếu e2 xuất hiện trƣớc e1 thì xảy

ra xung đột. Do không có thứ tự xác định trƣớc giữa e1 và e2 nên tình trạng này

đƣợc gọi là mập mờ.

1.2.2. Hệ điều kiện - biến cố

Một mạng Petri bao gồm các điều kiện và các biến cố thì chƣa đủ để mô tả

hệ thống. Vì vậy ngoài mạng ta phải thêm vào các trƣờng hợp mà ta muốn xét.

Tập các trƣờng hợp C này phải thoả các tính chất sau đây:

1. Nếu tập G E là một bƣớc đƣợc kích hoạt bởi trƣờng hợp c C thì G

phải dẫn tới một trƣờng hợp cũng thuộc C. Nhƣ vậy, các bƣớc không

đƣợc dẫn ra ngoài C.

2. Ngƣợc lại, nếu trƣờng hợp c C là kết quả của bƣớc G E thì tình

huống mà ta đi từ đó cũng phải là một trƣờng hợp thuộc C. Hay nói một

cách khác, nếu ta quay trở lại tìm trƣờng hợp trƣớc thì ta chỉ cần tìm

trong C.

3. Mỗi trƣờng hợp trong C đều có thể biến đổi (tiến trƣớc hoặc lùi sau một

số lần) thành các trƣờng hợp còn lại trong C.

4. C phải đủ rộng để mà:

12

Mỗi điều kiện b B phải thuộc vào ít nhất một trƣờng hợp trong

C nhƣng không thuộc vào mọi trƣờng hợp trong C. Điều này giúp

loại trừ điều kiện cô lập và chu trình hẹp.

Mỗi biến cố e E phải có ít nhất một trƣờng hợp trong C kích

hoạt đƣợc nó.

Ta cũng loại trừ các biến cố cô lập vì sự xuất hiện của các biến cố phải quan

sát đƣợc. Hơn nữa, ta cũng không cho phép hai điều kiện hay hai biến cố khác nhau

có chung tập vào và tập ra vì ta sẽ không phân biệt đƣợc chúng.

Định nghĩa 1.2.2.1: Bộ bốn = (B, E; F, C) đƣợc gọi là một hệ điều kiện - biến cố

(C/E-system) nếu:

Bộ ba (B, E; F) là một mạng Petri đơn giản, không có phần tử cô lập và B E # .

Tập C P(B) là một lớp tƣơng đƣơng của quan hệ đạt đƣợc r = (r r-1)*,

trong đó quan hệ r P(B) P(B) đƣợc định nghĩa nhƣ sau:

c1 r c2 G E , c1 [ G > c2.

C đƣợc gọi là không gian các trƣờng hợp của .

e E , c C để e đƣợc kích hoạt trong c.

Ví dụ:

b1 b2

b3 b4

Hình 6. Thí dụ về các bƣớc

Trong ví dụ trên: C = {{b1} , {b2} , {b3} , {b4}} là một không gian các trƣờng hợp

của hệ điều kiện – biến cố.

1.2.3. Hệ chu trình và hệ sống

Những yêu cầu đặt ra cho không gian các trƣờng hợp C của hệ điều kiện -

biến cố sẽ cụ thể hơn bằng cách thể hiện đƣợc rằng C là tập tất cả các trƣờng hợp

13

tiếp sau của một trƣờng hợp ban đầu nào đó. Nếu mọi trƣờng hợp của đều đƣợc

tái sản xuất thì mỗi một không gian các trƣờng hợp nhƣ thế sẽ trùng với tập C.

Định nghĩa 1.2.3.1:

Hệ điều kiện - biến cố đƣợc gọi là chu trình nếu:

c1, c2 C , c1 r* c2 .

Định nghĩa 1.2.3.2:

Hệ điều kiện - biến cố đƣợc gọi là sống nếu:

c C , e E : c’ C để cho c r*c’ và e là c’-kích hoạt.

Định ly 1.2.3.1: (Wolfgang Reisig, [8])

Mọi hệ điều kiện - biến cố chu trình là sống.

Ví dụ: Hệ sống nhƣng không là chu trình.

e1 e2b

Hình 7. Thí dụ về hệ sống nhƣng không là chu trình

Hệ điều kiện - biến cố chu trình là sống tuy nhiên điều ngƣợc lại thì không phải khi

nào cũng đúng. Ví dụ trên là một minh họa.

C = [{a, b}]R , {g, d} C nhƣng ({a, b} ,{g, d}) r* .

1.2.4. Sự tƣơng đƣơng của các hệ điều kiện – biến cố

Ta nói rằng hai hệ điều kiện - biến cố đã cho là tƣơng đƣơng nếu các trƣờng

hợp và các bƣớc của chúng tƣơng ứng với nhau theo cách sau đây.

Định nghĩa 1.2.4.1: Giả sử và ’ là hai hệ điều kiện - biến cố.

1) Giả sử có hai song ánh : C C’ và : E E’ .

- Hai hệ và ’đƣợc gọi là (,)-tƣơng đƣơng nếu:

c1, c2 C , G E : c1[ G > c2 (c1) [ (G) > (c2) .

14

- Hai hệ và ’đƣợc gọi là tương đương nếu chúng là (,)-tƣơng đƣơng

đối với cặp song ánh (, ) nào đó và ta ký hiệu: ’.

2) Hai hệ và ’đƣợc gọi là đẳng cấu nếu hai mạng (B , E; F) và

(B’, E’; F’) là -đẳng cấu với song ánh nào đó và:

c C {(b) b c} C’ .

Định ly 1.2.4.1: (Wolfgang Reisig, [8])

Các hệ điều kiện - biến cố tƣơng đƣơng có số các trƣờng hợp, số các biến cố và số

các bƣớc nhƣ nhau nhƣng số các điều kiện của chúng có thể khác nhau.

Ví dụ: Hai hệ điều kiện - biến cố tƣơng đƣơng biểu diễn các mùa trong năm.

Lập hạ Hạ

Lập thu

ThuLập đôngĐông

Lập xuân

Xuân

Hình 8. Ví dụ về hệ 4 mùa trong năm

Lập xuân

Lập thu Lập hạ

Lập đôngs2

s3s1

Hình 9. Thí dụ hệ tƣơng đƣơng biểu diễn 4 mùa trong năm

15

Tập các điều kiện B’: s1 – xuân hoặc hạ

s2 – xuân hoặc thu

s3 – hạ hoặc thu

Tập các trƣờng hợp C’: {s1, s2} = xuân , {s1, s3} = hạ ,

{s2, s3} = thu , = đông.

Định ly 1.2.4.2: (Wolfgang Reisig, [8])

Giả sử và ’ là hai hệ điều kiện - biến cố tƣơng đƣơng.

1. Hệ là chu trình hệ ’ là chu trình.

2. Hệ là sống hệ ’ là sống.

Hệ điều kiện - biến cố tuần tự với các trƣờng hợp bao gồm chỉ một điều kiện

tƣơng ứng với các ôtômat hữu hạn. Với hai hệ nhƣ thế sự tƣơng đƣơng trùng với sự

đẳng cấu.

1.2.5. Các hệ mạng an toàn và đầy đủ hóa hệ điều kiện – biến cố

Trong phần trƣớc chúng ta đã chỉ ra rằng biến cố sẽ không đƣợc kích hoạt

trong tình trạng không an toàn. Tình trạng nhƣ thế có thể loại trừ đƣợc nhờ một

phép biến đổi tƣơng đƣơng trên các hệ điều kiện - biến cố. Để làm việc này, ta thêm

vào cho mỗi điều kiện b một điều kiện bù của nó

b để trong mỗi trƣờng hợp của hệ

thì hoặc b hoặc

b đƣợc thoả mãn.

Định nghĩa 1.2.5.1: Giả sử là hệ điều kiện - biến cố và b, b’ là các điều kiện trong

B.

1. Điều kiện b’ đƣợc gọi là bù của điều kiện b khi và chỉ khi b = b’

và b

=

b’.

2. Hệ là đầy đủ nếu mỗi điều kiện b trong B đều có điều kiện bù b’ cũng

trong B.

Định nghĩa 1.2.5.2: Giả sử là hệ điều kiện - biến cố và ký hiệu B là tập các điều

kiên trong B không có bù. Với mỗi điều kiện b trong B ta thêm vào điều kiện mới b .

Đặt quan hệ F = { (e,b ) b B (b, e) F } { (b , e) b B (e, b) F }.

16

Với c C đặt (c) = c {b b B b c}.

Khi đó hệ điều kiện - biến cố

= ( B {b b B}, E ; F F, ( C) ) đƣợc

gọi là đầy đủ của hệ .

Mỗi điều kiện b không có bù trong thì đã có bù trong

.

Định ly 1.2.5.1: (Wolfgang Reisig, [8])

Giả sử là hệ điều kiện - biến cố và trƣờng hợp c C .

1.

=

2. b B , c C : b (c) b (c)

3. c = (c) B .

Định ly 1.2.5.2: (Wolfgang Reisig, [8])

Giả sử là hệ điều kiện - biến cố và tập G E và B là tập các điều kiện không có

bù trong B .

a) –G =

G {b b B b G

} và

G– = G

{b b B b

G

}

b) G =

–G B , G

= G

– B .

Bây giờ ta có thể chỉ ra rằng việc làm đầy đủ một hệ điều kiện - biến cố sẽ

cho ta một hệ điều kiện - biến cố an toàn tƣơng đƣơng.

Ví dụ:

Σ

Σ’

Hình 10. Hệ mạng và hệ mạng đầy đủ tƣơng ứng ’

17

Định nghĩa 1.2.5.3: Giả sử là hệ điều kiện - biến cố.

Hệ đƣợc gọi là an toàn (safe) nếu với mỗi biến cố e E và mỗi trƣờng hợp c

C :

1. e c e

B \ c , nghĩa là e

c =

2. e c

e B \ c , nghĩa là

e c = .

Chú ý rằng, trong định nghĩa trên mệnh đề 2. không phải bao giờ cũng suy đƣợc

từ mệnh đề 1. Chẳng hạn, xét hệ đơn giản sau đây:

Định ly 1.2.5.3: (Wolfgang Reisig, [8])

1) Mọi hệ điều kiện - biến cố đầy đủ là an toàn.

2) Với mỗi hệ điều kiện - biến cố có một hệ an toàn tƣơng đƣơng.

3) Nếu hệ là an toàn thì: e E : e e

.

Không phải mọi hệ điều kiện - biến cố an toàn nào cũng đầy đủ.

Ví dụ:

b1 b3 b4

b5b6b2

e1

e2 e3

Hình 11. Hệ mạng an toàn nhƣng không đầy đủ

1.2.6. Đồ thị các trƣờng hợp

Để có cái nhìn tổng quát tất cả các trƣờng hợp của một hệ điều kiện - biến

cố, ta xây dung đồ thị các trƣờng hợp của hệ này. Các đỉnh của đồ thị là các trƣờng

hợp còn các cung chính là các bƣớc trên hệ.

Định nghĩa 1.2.6.1:

Giả sử là một hệ điều kiện - biến cố và G là tập tất cả các bƣớc của hệ này.

Đặt:

18

P = { (c1, G , c2) C G C c1[ G > c2 }

Đồ thị = (C , P) đƣợc gọi là đồ thị các trường hợp của .

Định ly 1.2.6.1: (Wolfgang Reisig, [8])

Hệ điều kiện - biến cố là chu trình nếu đồ thị các trƣờng hợp của nó là liên

thông mạnh.

Định ly 1.2.6.2: (Wolfgang Reisig, [8])

Hệ điều kiện - biến cố là sống khi và chỉ khi với mỗi trƣờng hợp c0 C

và với mỗi biến cố e E đều có đƣờng đi c0 l1 c1 … ln cn trong đồ thị mà nhãn

ln = {e}.

Ví dụ:

b3

e1

b1

b2

e4

e2

e3

b5

e5

b4

{b1}

{b2,b3} {b4,b5}

{b3,b4}

{b2,b5}{e1} {e2} {e5}

{e4} {e3}

{e3} {e4}

{e3,e4}

Hình 12. Hệ điều kiện biến cố và đồ thị các trƣờng hợp tƣơng ứng

Hệ này là chu trình và đồ thị các trƣờng hợp của nó là liên thông mạnh.

Định ly 1.2.6.3: (Wolfgang Reisig, [8])

Hai hệ điều kiện - biến cố là tƣơng đƣơng khi và chỉ khi đồ thị các trƣờng

hợp của chúng là đẳng cấu với nhau.

Không phải mọi đồ thị định hƣớng đều có thể thể hiện nhƣ đồ thị các trƣờng

hợp của các hệ điều kiện - biến cố. Xét đồ thị định hƣớng sau đây:

19

c1

c2 c3

c4

e1 e2

e3

Hình 13. Đồ thị có hƣớng

Theo đồ thị trên thì hai biến cố e1 và e2 đều đƣợc trƣờng hợp c1 kích hoạt. Nếu trong

c1 có xung đột giữa e1 và e2 thì c2 không thể kích hoạt e2. Khi đó, trong đồ thị phải

bỏ cung (c2,{e2}, c4). Ngƣợc lại, nếu trong c1 không có xung đột giữa e1 và e2 thì c3

có thể kích hoạt e1. Vậy thì, trong đồ thị phải thêm cung (c3, {e1}, c4).

Đồ thị các trƣờng hợp trở nên rất phức tạp đối với các hệ tƣơng tranh mạnh.

Chẳng hạn, một bƣớc chứa n biến cố sẽ sinh ra 2n cung trong đồ thị các trƣờng hợp.

Định lý sau đây sẽ thể hiện điều đó.

Định ly 1.2.6.4: (Wolfgang Reisig, [8])

Giả sử là hệ điều kiện - biến cố và c1, c2, c3 C , G1, G2 E .

1. Nếu c1 G1 c2 G2 c3 là đƣờng đi trong đồ thị thì G1 G2 = .

2. Giả sử G1 G2 = . Nếu c1 (G1 G2) c2 là một cung trong thì tồn tại c

C sao cho c1 G1 c G2 c3 là đƣờng đi trong đồ thị .

1.2.7. Các quá trình của hệ điều kiện – biến cố

Có thể định nghĩa quá trình của hệ điều kiện - biến cố nhƣ là một đƣờng đi

trong đồ thị các trƣờng hợp của nó. Song đƣờng đi nhƣ thế không mô tả chính xác

đƣợc cái mà ta hiểu trực quan từ quá trình. Thứ tự tổng thể của các phần tử của nó

cũng không cho ta một thông tin nào về sự xuất hiện trƣớc sau của các biến cố hay

liệu chúng có độc lập với nhau hay không. Thứ tự bộ phận mà trong đó các biến cố

xuất hiện chỉ đƣợc biểu diễn gián tiếp trong đồ thị các trƣờng hợp bởi tập tất cả các

khả năng xuất hiện kế tiếp của các bƣớc.

20

Bởi vậy, chúng ta muốn tìm một cách mô tả thích hợp hơn cho quá trình. Đặc

biệt là, nó phải rõ ràng và chỉ ra đƣợc một cách tƣờng minh rằng các biến cố có xuất

hiện một cách đồng thời đƣợc không. Mô tả nhƣ thế đƣợc xem nhƣ là bản ghi sự

xuất hiện của các biến cố và sự thay đổi của các điều kiện. Các phần tử của bản ghi

này đƣợc sắp thứ tự bộ phận nhờ quan hệ “a là điều kiện tiên quyết cho b”. Hơn

nữa, sự lặp lại của chính biến cố hay chính điều kiện này đƣợc ghi lại nhƣ một phần

tử mới. Có một biểu diễn thực sự đúng đắn cho các bản ghi nhƣ thế lại chính là một

mạng.

Để có thể điều khiển các quá trình đƣợc mô tả nhƣ thế, chẳng hạn “mạng

đƣợc sắp thứ tự bộ phận”, ta cần phải xét một số tính chất của tập có thứ tự bộ phận

và sau đó xét các mạng hiện. Đó là các mạng đƣợc sắp thứ tự bộ phận và thích hợp

để mô tả các quá trình. Sau đó, ta trình bày khái niệm quá trình và chỉ ra rằng các

quá trình có thể hợp thành và phân rã nhƣ thế nào. Đồng thời, ta cũng nghiên cứu

mối liên hệ của chúng với đồ thị các trƣờng hợp.

1.2.7.1. Tập có thứ tự bộ phận

Các quan hệ độc lập hay phụ thuộc thƣờng là đối xứng, phản xạ nhƣng nói

chung là không bắc cầu. Trƣớc tiên, ta xét quan hệ tƣơng tự.

Định nghĩa 1.2.7.1.1: Giả sử A là một tập hợp.

Quan hệ nhị nguyên A A đƣợc gọi là quan hệ tương tự nếu:

1. a A : (a, a) (tính phản xạ)

2. a, b A : (a, b) (b, a) (tính đối xứng).

Tập con B A đƣợc gọi là một vùng của quan hệ tƣơng tự nếu:

a) a, b B : (a, b) (tính đầy đủ)

b) a A \ B , b B : (a, b) (tính cực đại).

Định ly 1.2.7.1.1: (Wolfgang Reisig, [8])

Giả sử A là một tập hợp và là một quan hệ tƣơng tự trên A.

1. Mỗi phần tử của A phải thuộc vào một vùng của .

2. Các vùng của tập không rỗng A là khác rỗng và không có vùng nào là tập

con thực sự của một vùng khác.

21

3. Nếu là quan hệ tƣơng đƣơng thì các vùng của chính là các lớp tƣơng

đƣơng của nó.

Biểu diễn đồ thị:

Một quan hệ tƣơng tự trên tập hữu hạn A có thể biểu diễn nhƣ một đồ thị vô

hƣớng: A đƣợc xem nhƣ là tập các đỉnh và:

K = { (a, b) a b (a, b) } là tập các cạnh.

Bây giờ ta xét tập hợp có thứ tự bộ phận, nghĩa là tập hợp mà trên nó có một

quan hệ không phản xạ và bắc cầu. Hai quan hệ li và co đƣợc định nghĩa nhƣ sau:

Định nghĩa 1.2.7.1.2: Giả sử A là tập có thứ tự bộ phận < .

1. Quan hệ li A A đƣợc xác định nhƣ sau:

(a, b) li a < b b < a a = b.

2. Quan hệ co A A đƣợc xác định nhƣ sau:

(a, b) co (a < b) a = b.

Định ly 1.2.7.1.2: (Wolfgang Reisig, [8])

Giả sử A là tập có thứ tự bộ phận và a, b A.

1. (a, b) li (a, b) co ,

2. (a, b) li (a, b) co a = b.

Định ly 1.2.7.1.3: (Wolfgang Reisig, [8])

Với mỗi tập có thứ tự bộ phận A thì li và co là các quan hệ tƣơng tự.

Định nghĩa 1.2.7.1.3: Giả sử A là tập có thứ tự bộ phận và tập con B A.

1. Tập con B đƣợc gọi là một đường nếu B là một vùng của quan hệ li.

2. Tập con B đƣợc gọi là một nhát cắt nếu B là một vùng của quan hệ co.

Định ly 1.2.7.1.4: (Wolfgang Reisig, [8])

Giả sử A là tập có thứ tự bộ phận và tập con B A.

1. Tập con B là một đƣờng nếu:

i) a, b B : a < b b < a a = b và

ii) a A \ B , b B : (a < b b < a) .

2. Tập con B là một nhát cắt nếu:

22

i) a, b B : (a < b b < a) và

ii) a A \ B , b B : a < b b < a .

Khái niệm tập bị chặn và tập trƣớc đƣợc định nghĩa nhƣ sau:

Định nghĩa 1.2.7.1.4: Giả sử A là tập có thứ tự bộ phận và giả sử B và C là các tập

con của tập A.

1. Tập A là bị chặn nếu có một số nguyên n N sao cho mọi đƣờng đi L trong

A đều thoả mãn: | L | n .

2. Tập con B đƣợc gọi là trước tập con C (ta viết: B C) nếu:

b B , c C : b < c b co c .

( B < C có nghĩa là: B C B C ).

3. Ta ký hiệu:

B- = {a A {a} B} và B

+ = {a A B {a}} - đƣợc gọi là tập trước

và tập sau của B.

B = {b B b’ B : b co b’ b < b’} và

B = {b B b’ B : b’ co b b’ < b} .

Cụ thể là, B bao gồm các phần tử ”cực tiểu” của B và B

bao gồm các phần tử ”cực

đại” của B.

Định ly 1.2.7.1.5: (Wolfgang Reisig, [8])

Nếu A là tập có thứ tự bộ phận bị chặn thì các tập con A và A

là các nhát

cắt.

Định ly 1.2.7.1.6: (Wolfgang Reisig, [8])

Giả sử A là tập có thứ tự bộ phận, L là một đƣờng và D là một nhát cắt trong

A. Khi đó: | L D | = 1.

Tính K-trù mật của một tập có thứ tự bộ phận đƣợc định nghĩa nhƣ sau:

Định nghĩa 1.2.7.1.5: Tập có thứ tự bộ phận A đƣợc gọi là K-trù mật nếu mỗi

đƣờng và mỗi một nhát cắt trong A đều có giao khác rỗng.

Tuy nhiên, không phải tập có thứ tự bộ phận nào cũng là K-trù mật. Chẳng

hạn,

23

a b đƣờng L = {c, b} , nhát cắt D = {a, d}

và L D =

c d

1.2.7.2. Mạng hiện

Mạng hiện là một mạng phi chu trình với các S-phần tử là không rẽ nhánh.

Thế thì, ta sẽ có một thứ tự bộ phận trên các phần tử của mạng. Ta sẽ chỉ ra rằng các

mạng hiện là K-trù mật. Do vậy, mạng hiện thƣờng đƣợc dùng để biểu diễn các quá

trình trên một hệ điều kiện - biến cố.

Định nghĩa 1.2.7.2.1:

Mạng K = (SK, TK; FK) đƣợc gọi là một mạng hiện nếu:

1. a, b K : a FK+ b (b FK

+ a) (mạng K là phi chu trình).

2. s SK : | s | 1 | s | 1 (S-phần tử không rẽ nhánh).

Định ly 1.2.7.2.1: (Wolfgang Reisig, [8])

Giả sử K là một mạng hiện. Quan hệ < đƣợc định nghĩa nhƣ sau:

a, b K : a < b a FK+ b

là một thứ tự bộ phận trên K.

Vậy thì, các khái niệm liên quan đến thứ tự bộ phận nhƣ: đƣờng, nhát cắt,

tính bị chặn, K-trù mật đều có thể áp dụng cho các mạng hiện.

Định nghĩa 1.2.7.2.2: Nhát cắt của mạng hiện K chỉ chứa các S-phần tử đƣợc gọi là

một lát cắt.

Ký hiệu: sl(K) là tập tất cả các lát cắt của mạng hiện K.

Định ly 1.2.7.2.2: (Wolfgang Reisig, [8])

Mọi mạng hiện không rỗng bị chặn đều là K-trù mật.

Chú ý rằng, mạng hiện không bị chặn chƣa chắc đã là K-trù mật.

1.2.7.3. Các quá trình

Bây giờ chúng ta định nghĩa các quá trình của một hệ điều kiện - biến cố

bằng cách sử dụng các mạng hiện bị chặn. Vì mỗi hệ điều kiện - biến cố đều có thể

biến đổi thành một hệ điều kiện - biến cố an toàn tƣơng đƣơng, nên ta sẽ chỉ định

nghĩa quá trình cho các hệ điều kiện - biến cố an toàn.

24

Các quá trình sẽ đƣợc mô tả nhƣ các ánh xạ từ các mạng hiện bị chặn vào hệ

điều kiện - biến cố an toàn thoả mãn hai yêu cầu sau đây:

1. Mỗi lát cắt đƣợc ánh xạ 1 - 1 vào một trƣờng hợp.

2. Ánh xạ mỗi T-phần tử vào một biến cố và phải bảo toàn môi trƣờng của

biến cố này.

Định nghĩa 1.2.7.3.1: Giả sử K là một mạng hiện bị chặn và là một hệ điều kiện

- biến cố an toàn.

Một ánh xạ p : K đƣợc gọi là một quá trình của nếu với mỗi lát cắt D

của K và mỗi phần tử t TK thoả mãn:

1. pD là ánh xạ 1 - 1 và p(D) C .

2. p(t) =

p(t) và p(t

) = p(t)

.

Trong biểu diễn đồ thị của quá trình p : K , mỗi phần tử x của K đƣợc

gán nhãn bởi ảnh p(x) của nó.

Tính K-trù mật của các mạng hiện bị chặn là một tính chất quan trọng để sử

dụng mạng hiện trong mô tả các quá trình không tuần tự. Mỗi đƣờng biểu diễn dãy

các phần tử mà chúng phụ thuộc nhân quả lẫn nhau, thể hiện nhƣ một quá trình con

tuần tự. Tính K-trù mật của mạng hiện đảm bảo rằng mỗi quá trình con tuần tự

đƣợc.

Định ly 1.2.7.3.1: (Wolfgang Reisig, [8])

Giả sử p : K là một quá trình và tập con T TK thoả mãn t1, t2 T :

t1 co t2. Thế thì, c1, c2 C : c1 [ p(T) > c2 .

Định nghĩa 1.2.7.3.2: Hai quá trình p1 : K1 và p2 : K2 của cùng một hệ

điều kiện - biến cố đƣợc gọi là đẳng cấu nếu mạng hiện K1 là -đẳng cấu với

mạng hiện K2 và: x K1 : p1(x) = p2((x)).

Dƣới đây ta không phân biệt các quá trình đẳng cấu mà ta có thể hiểu hoặc là

lớp các tƣơng đƣơng các quá trình đẳng cấu với nhau hoặc là một đại diện nào đó

của lớp này.

25

Một quá trình p : K thƣờng đƣợc biểu diễn bởi tập hợp các cặp {(x,

p(x)) x K}. Các hệ điều kiện - biến cố an toàn đƣợc đặc trƣng một cách đầy đủ

bởi tập các quá trình của chúng.

Định ly 1.2.7.3.2: (Wolfgang Reisig, [8])

Giả sử 1, 2 là hai hệ điều kiện - biến cố an toàn và giả sử Pi là tập các quá

trình của i (i = 1, 2). Khi đó thì:

P1 = P2 1 = 2 .

1.2.7.4 Sự hợp thành của các quá trình

Với hai quá trình p1, p2 mà p1 kết thúc ở chính trƣờng hợp mà từ đó p2 bắt

đầu thì ta có thể định nghĩa phép toán hợp thành trên các quá trình này.

Bổ đề 4.23:

Nếu p : K là một quá trình thì tập K và K

là các lát cắt của K.

Bổ đề 4.24: Giả sử pi : Ki , i = 1, 2 là hai quá trình với p1(K1) = p2(

K2). Thế

thì có đúng một mạng hiện K sai khác một đẳng cấu, với lát cắt D và quá trình p : K

thoả mãn: pD- = p1 và pD+ = p2 , trong đó D- và D

+ là tập trƣớc và tập sau

của D.

Định nghĩa 1.2.7.4.1: Giả sử p1, p2 và p là các quá trình thoả mãn các yêu cầu của

Bổ đề 4.24 ở trên. Khi đó, quá trình p đƣợc gọi là hợp thành của các quá trình p1 và

p2 và ta ký hiệu p = p1 p2 .

Định ly 1.2.7.4.1: (Wolfgang Reisig, [8])

Giả sử p : K là một quá trình và giả sử D là một lát cắt của mạng hiện

K. Giả sử p- = pD- và p

+ = pD+ . Thế thì, p

- và p

+ cũng là các quá trình của hệ

và p = p- p

+ .

Định ly 1.2.7.4.2: (Wolfgang Reisig, [8])

Giả sử p1, p2, p3 là các quá trình mà hợp thành p1 p2 và p2 p3 xác định.

Khi đó thì: p1 (p2 p3) và (p1 p2) p3 là hai quá trình đẳng cấu với nhau.

Ta gọi một quá trình là cơ sở nếu nó mô tả một bƣớc. Mỗi quá trình có thể

phân tích thành hợp thành của một số hữu hạn quá trình cơ sở.

26

Định nghĩa 1.2.7.4.2: Quá trình p : K đƣợc gọi là cơ sở nếu SK = K K

.

Định ly 1.2.7.4.3: (Wolfgang Reisig, [8])

1) Quá trình p : K là cơ sở p(K) [ p(TK) > p(K

) là một bƣớc trên .

2) Nếu quá trình p : K là cơ sở thì: t1, t2 TK : t1 co t2 .

Định nghĩa 1.2.7.4.3:

Quá trình p : K đƣợc gọi là rỗng nếu TK = .

Định lý 1.2.7.4.4: (Wolfgang Reisig, [8])

1. Mọi quá trình rỗng đều là cơ sở.

2. Nếu p’ là một quá trình rỗng và p p’ (hoặc p’ p) xác định thì p = p p’ (hoặc

p = p p’) một cách tƣơng ứng.

Định lý 1.2.7.4.5: (Wolfgang Reisig, [8])

Với mọi quá trình p : K đều tồn tại một số hữu hạn quá trình cơ sở p1, p2, ... ,

pn sao cho p = p1 p2 ... pn .

1.2.7.5. Các quá trình và đồ thị các trƣờng hợp

Trong phần này chúng ta nghiên cứu mối quan hệ giữa các quá trình và

đƣờng đi trong đồ thị các trƣờng hợp của một hệ điều kiện - biến cố. Trƣớc hết, ta

chỉ ra rằng các quá trình cơ sở tƣơng ứng với các cung trong đồ thị các trƣờng hợp.

Sau đó ta tìm các đƣờng đi trong đồ thị mô tả các quá trình đơn. Ta sẽ thấy rằng tất

cả các đƣờng đi đó có thể biến đổi lẫn nhau nhờ “phân tích” hay ”hợp nhất” các

cung của chúng.

Bổ đề 4.33: Giả sử là một hệ điều kiện - biến cố an toàn.

Quá trình p : K là cơ sở khi và chỉ khi có một cung v = (c1, G, c2) trong đồ thị

các trƣờng hợp sao cho p(K) = c1 , p(K

) = c2 và p(TK) = G.

Bổ đề này thiết lập một sự tƣơng ứng duy nhất giữa các quá trình cơ sở và

các cung của đồ thị các trƣờng hợp. Do vậy, ta định nghĩa:

Định nghĩa 1.2.7.5.1: Giả sử là một hệ điều kiện - biến cố an toàn.

27

1) Nếu v là một cung trong thì ta ký hiệu v là quá trình cơ sở tƣơng ứng với v,

xác định theo Bổ đề trên. v đƣợc gọi là quá trình của cung v và v đƣợc gọi là cung

của quá trình v.

2) Giả sử v1, v2, …, vn là các cung của đồ thị và giả sử w = v1 v2 … vn là một

đƣờng đi trong . Thế thì, w = v1 v2 … vn đƣợc gọi là quá trình của w còn w

đƣợc gọi là đƣờng đi của quá trình w.

3) Với cung v = (c1, G, c2) và biến cố e G, đặt t(v,e) = v-1

(e) và (v) = {t(v,e) e

G}.

Định nghĩa 1.2.7.5.2:

Giả sử là một hệ điều kiện - biến cố và giả sử c1, c2, c3 C và G1, G2

E .

1) Nếu u1 = c1 G1 c2 , u2 = c2 G2 c3 và v = c1 (G1 G2) c3 là các cung trong đồ thị

thì đƣờng đi u1u2 đƣợc gọi là phân tách của v và v đƣợc gọi là hợp thành của u1

và u2.

2) Giả sử w, w’ là các đƣờng đi trong đồ thị , w’ đƣợc gọi là hoán vị của w nếu

tồn tại các đƣờng đi w1, w2, w3, w4 sao cho w = w1 w2 w3 và w’ = w1 w4 w3 và w4 là

phân tách hoặc hợp nhất của w2 .

3) Giả sử w1, w2, ... , wn là các đƣờng đi trong đồ thị . (w1, w2, ... , wn) đƣợc gọi

là một dãy hoán vị nếu với mỗi i = 1, 2, ..., n thì wi+1 là hoán vị của wi .

Định lý 1.2.7.5.1: (Wolfgang Reisig, [8])

Giả sử là một hệ điều kiện - biến cố và giả sử c1, c2, c3 C và hai tập con G1, G2

E không rỗng và rời nhau.

1. Nếu v = c1 (G1 G2) c3 là một cung trong đồ thị thì tồn tại một phân tách của

v có dạng c1 G1 c G2 c3 với trƣờng hợp c nào đó thuộc C .

2. Giả sử u1 = c1 G1 c3 và u2 = c3 G2 c2 là các cung trong đồ thị và giả sử

u1 u2 : K là một quá trình của hệ . Thế thì:

t1, t2 TK : t1 co t2 c1 (G1 G2) c3 là một cung trong đồ thị .

Bổ đề 4.37:

28

Giả sử w là một đƣờng đi của quá trình không rỗng nào đó w : K . Khi

đó, tồn tại một đƣờng đi w’ và một cung v sao cho (v) = {t TKt

K} và có

một dãy các hoán vị từ w tới w’.

Định lý 1.2.7.5.2: (Wolfgang Reisig, [8])

Hai đƣờng đi w và w’ tƣơng ứng với cùng một quá trình khi và chỉ khi có một dãy

hoán vị từ w tới w’.

Ngƣợc lại, nếu u1u2 là một phân tách của cung v thì các quá trình của u1u2

và của v là một. Vậy nếu w’ là hoán vị của w thì w và w’ là các đƣờng đi của cùng

một quá trình. Do vậy, mọi thành phần của một dãy hoán vị là các đƣờng đi của

cùng một quá trình.

Kết luận chƣơng 1: Nội dung của Chƣơng này trình bày các khái niệm cơ bản về lý

thuyết mạng, mạng Petri cơ sở và phân loại các lớp mạng Petri. Chƣơng này cũng

nghiên cứu khái niệm về các trƣờng hợp, các bƣớc của hệ điều kiện – biến cố và các

quá trình của hệ điều kiện – biến cố. Đây là những lý thuyết cơ sở trong mô hình

tƣơng tranh.

29

Chƣơng 2 – MẠNG VỊ TRÍ/CHUYỂN VÀ MỘT SỐ TÍNH

CHẤT CỦA MẠNG PETRI

Sau khi mô hình hóa các hệ thống nhƣ một mạng Petri, một câu hỏi đƣợc đặt

ra là ta có thể làm gì với chúng? Mạng Petri đƣợc xem nhƣ là một công cụ hỗ trợ

phân tích các tính chất của hệ thống và các vấn đề liên quan đến hệ thống đã đƣợc

mô hình hóa. Do đó, ta cần thiết nghiên cứu các tính chất của bản thân mạng Petri.

Có hai nhóm tính chất của mạng Petri liên quan đến bộ đánh dấu đầu tiên đó là: các

tính chất phụ thuộc vào bộ đánh dấu đầu tiên và các tính chất không phụ thuộc vào

bộ đánh dấu đầu tiên này. Tuy nhiên, các nghiên cứu về mạng Petri thƣờng quan

tâm nhiều hơn đến các tính chất phụ thuộc bộ đánh dấu đầu tiên. Trong nội dung

Chƣơng này, Chúng ta xem xét mạng vị trí/ chuyển và một số tính chất của mạng

Petri liên quan đến bộ đánh dấu đầu tiên trên mạng vị trí/ chuyển này.

2.1. Mạng vị trí chuyển

2.1.1. Khái niệm mạng vị trí chuyển

Mạng vị trí chuyển (mạng Petri) là một trong những mô hình tốt để biểu diễn

các hệ tƣơng tranh. Mạng bao gồm hai đối tƣợng là vị trí và chuyển cùng với các

cung có hƣớng liên hệ giữa chúng. Các vị trí mang thông tin mô tả trạng thái địa

phƣơng, các chuyển thể hiện các hành động. Trong mạng Petri, chuyển t có thể cháy

nếu các vị trí vào chứa đủ số dấu (token) cần thiết cho chuyển đó và không làm tràn

sức chứa ở mọi vị trí. Sau khi một chuyển cháy, nó lấy đi token ở vị trí vào và thêm

token trong mỗi vị trí ra.

Trƣớc hết, chúng ta xét một hệ thống sản xuất bao gồm một nhà sản xuất và

hai ngƣời tiêu thụ với các ràng buộc nhƣ sau:

1. Kho của xƣởng sản xuất chứa đƣợc nhiều nhất là 5 sản phẩm.

2. Mỗi lần sản xuất, nhà sản xuất làm đƣợc 3 sản phẩm.

3. Có bộ đếm đếm số lần sản xuất.

4. Tại mỗi thời điểm chỉ có thể một ngƣời tiêu thụ vào lấy hàng.

5. Mỗi lần lấy hàng, ngƣời tiêu thụ đều mua 2 sản phẩm.

Quá trình sản xuất và tiêu thụ sản phẩm trên có thể mô tả bằng mạng sau đây:

30

t1

.

. . . . .

. . .

. .

Nhà sản xuất Nhà tiêu dùng

Bộ đếm

Kho

k = ω

k = 5

k = 1

k = 1

s1

s2

t23 2

k = 1

k = 2

k = 2t3

t4

t5

s3

s4s5

s6

s7

Hình 14. Mô hình quá trình sản xuất và tiêu thụ

Định nghĩa mạng vị trí /chuyển:

Bộ sáu N = (S, T; F, K, M0, W) đƣợc gọi là một mạng vị trí /chuyển (P/T - net) nếu:

1) Bộ ba (S, T; F) là một mạng hữu hạn, các phần tử của tập S đƣợc gọi là các vị

trí còn các phần tử của tập T đƣợc gọi là các chuyển.

2) K : S {} , hàm cho dung lượng (có thể vô hạn) trên mỗi vị trí.

3) W : F \ {0} , hàm gắn một trọng số dƣơng vào mỗi cung của mạng.

4) M0: S {} là bộ đánh dấu đầu tiên của mạng phù hợp với dung

lƣợng, có nghĩa là: s S : M0 (s) K(s).

Trong biểu diễn đồ thị của mạng vị trí /chuyển

Các vị trí đƣợc ký hiệu:

Các chuyển đƣợc ký hiệu:

Định nghĩa bộ đánh dấu:

Ánh xạ M : S {} đƣợc gọi là một bộ đánh dấu của mạng N nếu: s

S: M(s) K(s).

Điều kiện để kích hoạt:

Giả sử M là một bộ đánh dấu của mạng vị trí /chuyển N. Chuyển t T đƣợc gọi

là M-kích hoạt nếu: s t : M(s) W(s, t) và s t

:M(s) K(s) - W(t, s).

Xác định bộ đánh dấu kế tiếp:

31

Một chuyển t T đƣợc M-kích hoạt hoạt động và sẽ cho ta bộ đánh dấu kế

tiếp M’ của M nhƣ sau:

M’(s) =

)(

),(),()(

),()(

),()(

sM

stWtsWsM

stWsM

tsWsM

Ta nói rằng t hoạt động và dẫn M tới M’ và ký hiệu: M [ t > M’.

Định nghĩa: Bộ đánh dấu đạt đƣợc

R(M) đƣợc gọi là tập các bộ đánh dấu đạt được từ M nếu R(M) là tập nhỏ

nhất các bộ đánh dấu thoả mãn hai điều kiện:

1) M R(M) và

2)Nếu M1 R(M) và với chuyển t nào đó mà M1 [ t > M2

thì M2 R(M).

Trong biểu diễn đồ thị của một mạng vị trí/chuyển, cung p F đƣợc gán

nhãn W(p) nếu W(p) > 1. Dung lƣợng tại vị trí s đƣợc thể hiện bởi “k = K(s)”; nếu

dung lƣợng bằng thì bỏ qua không viết. Bộ đánh dấu M đƣợc biểu diễn bởi M(s)

dấu chấm hay ký hiệu trên các vị trí s.

Ví dụ: Chuyển đƣợc kích hoạt và hoạt động

H2

O2

H2O

t

2

2H2

O2

H2O

t

2

2H2

O2

H2O

t

2

2H2

O2

H2O

t

2

2

Hình 15. Sơ đồ chuyển kích hoạt và hoạt động

, nếu s t \ t

, nếu s t \

t

, nếu s t t

các trƣờng hợp còn lại

32

Chuyển không đƣợc kích hoạt:

. .

.

. .

2

2

t

k= 3

k = 2

Hình 16. Sơ đồ chuyển không đƣợc kích hoạt

Mỗi một hệ điều kiện - biến cố có thể xem nhƣ là một mạng vị trí chuyển mà

dung lƣợng của các vị trí và trọng số của các cung trên mạng bằng 1. Ngƣợc lại,

mỗi một mạng vị trí chuyển với dung lƣợng của các vị trí và trọng số của các cung

bằng 1 hoạt động giống nhƣ một hệ điều kiện - biến cố. Một hệ điều kiện - biến cố

liên quan tới một lớp các trƣờng hợp, còn một mạng vị trí chuyển chỉ nhận một bộ

đánh dấu đầu tiên.

Bộ đánh dấu đầu tiên M có thể dẫn chuyển t tới tình trạng không an toàn nếu

t bị mất tính M-kích hoạt chỉ vì các vị trí trong tập t không đủ dung lƣợng.

2.1.2. Mạng an toàn và quá trình chuyển mạng về mạng an toàn

Định nghĩa 2.1.2.1:

Mạng vị trí/chuyển N = (S, T; F, K, M, W) đƣợc gọi là an toàn nếu với mọi

M R(MN) và với mọi t T :

s t : M(s) W(s, t) s t

: M(s) + W(t, s) K(s)

Mỗi mạng vị trí/chuyển không an toàn có thể đƣa về mạng an toàn bằng cách

thêm vào các vị trí mà hành vi của mạng không bị thay đổi nhƣng tình trạng không

an toàn sẽ bị loại trừ. Chẳng hạn,

33

. . 2

3

k = 5

s

t1

t2

t3

. . 2

3

k = 5

s

t2

t3

. . .

2

3k = 5

s

t1

Hình 17. Ví dụ chuyển mạng về mạng an toàn

Phƣơng pháp chuyển mạng không an toàn về mạng an toàn

Giả sử N = (S, T; F, K, M, W) là một mạng vị trí/chuyển. Mạng N’ nhận đƣợc bằng

cách thêm vào các vị trí và các cung mới nhƣ sau:

Bƣớc 1: Với mỗi vị trí s ta thêm vào một vị trí mới s’ và với các cung (s, t)

và (t, s) thuộc FN ta thêm vào các cung mới (t, s’) và (s’, t) một cách tƣơng ứng,

đồng thời WN’(t, s’) = WN(s, t) và WN’(s’, t) = WN(t, s).

Bƣớc 2: Dung lƣợng tại các vị trí mới KN’(s’) = KN(s)

Bƣớc 3: Với các vị trí mới s’ thì bộ đánh dấu đầu tiên đƣợc bổ sung:

MN’(s’) = KN(s) - MN(s)

Mạng nhận đƣợc N’ là an toàn vì với mỗi bộ đánh dấu đạt đƣợc M thì:

M(s) + M(s’) = KN(s)

Bộ đánh dấu M của mạng N và bộ đánh dấu M’ của mạng N’ tƣơng ứng với

nhau khi và chỉ khi thu hẹp của M’ trên SN là bằng M. Với các bộ đánh dấu M của

mạng N và M’ của mạng N’ tƣơng ứng nhau thì một chuyển t là M-kích hoạt trong

N khi và chỉ khi t là M’-kích hoạt trong N’.

Hơn nữa, mọi dung lƣợng hữu hạn của các vị trí trong N’ có thể thay bằng

mà không làm thay đổi hành vi của mạng N’.

2.1.3. Biểu diễn đại số cho các mạng Petri

Quy tắc hoạt động trên các mạng vị trí/chuyển có thể đơn giản hoá nhờ biểu

diễn đại số tuyến tính nhƣ sau.

Giả sử N = (S, T; F, K, M, W) là một mạng vị trí/chuyển.

34

1) Với chuyển t T, ta xây dựng vectơ t : S Z nhƣ sau:

t(s) =

0

),(),(

),(

),(

tsWstW

tsW

stW

2) Xây dựng ma trận N : S T Z nhƣ sau: N(s,t) = t(s).

Ma trận N đƣợc gọi là biểu diễn đại số tuyến tính của mạng vị trí/chuyển N.

Mỗi bộ đánh dấu M, dung lƣợng K của mạng có thể biểu diễn nhƣ các vectơ. Chẳng

hạn, biểu diễn đại số tuyến tính của mạng sản xuất - tiêu thụ ở Hình 14 nhƣ sau:

t1

.

. . . . .

. . .

. .

Nhà sản xuất Nhà tiêu dùng

Bộ đếm

Kho

k = ω

k = 5

k = 1

k = 1

s1

s2

t23 2

k = 1

k = 2

k = 2t3

t4

t5

s3

s4s5

s6

s7

t1 t2 t3 t4 t5 M K

s1 1 -1 1 1

s2 -1 1 1

s3 1 5

s4 3 -2 3 5

s5 1 -1 2

s6 1 -1 2 2

s7 -1 1 1

, nếu s t \ t

, nếu s t \

t

, nếu s t t

các trƣờng hợp còn lại

35

Phần tử N(si,tj) diễn tả sự thay đổi trong đánh dấu tại vị trí si khi chuyển tj

hoạt động.

Nếu mạng N là an toàn thì hành vi của N sẽ đƣợc xác định một cách đầy đủ

bởi ma trận N và vectơ MN. Với cách biểu diễn ma trận, ta tìm đƣợc công thức ngắn

gọn cho quy luật hoạt động trên mạng nhƣ sau:

Định ly 2.1.3.1: (Wolfgang Reisig, [8])

Giả sử N là một mạng vị trí/chuyển và M và M’ là hai bộ đánh dấu của mạng N.

1. Nếu chuyển t là M-kích hoạt thì:

M [ t > M’ M + t = M’

2. Nếu mạng N là tinh khiết thì:

- Chuyển t là M-kích hoạt 0 M + t KN

- Mạng N là an toàn M R(MN) : 0 M + t M + t KN .

Với các mạng có dung lƣợng vô hạn tại các vị trí thì tính chất đơn điệu sau

đây thoả mãn.

Bổ đề 2.1.3.1: Giả sử N là một mạng vị trí/chuyển mà các vị trí của nó đều có dung

lƣợng vô hạn. Giả sử M1, M2 là hai bộ đánh dấu của mạng.

1. M1 [ t > M (M1 + M2)[ t > (M + M2)

2. M R(M1) (M + M2) R(M1 + M2).

Định nghĩa 2.1.3.2: Giả sử N là một mạng vị trí/chuyển và U là tập con các chuyển

tách biệt. Tập U đƣợc gọi là một bƣớc trên mạng N nếu:

t U , M R(MN) : t là M-kích hoạt.

Tập con các chuyển U là một bƣớc khi và chỉ khi tập U là tách biệt và 0 M

+ t KN.

* Sau đây ta xét một cách biểu diễn đại số khác của mạng Petri:

Giả sử N = (S, T; I, O) là một mạng vị trí/chuyển, trong đó

S = {s1, s2, …, sm}- tập hữu hạn các vị trí

T = {t1, t2, …, tn}- tập hữu hạn các chuyển

36

I: S T là hàm vào nhằm chỉ định các cung trực tiếp từ vị trí nối vào

chuyển.

O: T S là hàm ra nhằm chỉ định các cung trực tiếp từ chuyển nối vào

vị trí.

Một bộ đánh dấu là một ánh xạ M : S , trong đó M(si) là số kích động có

mặt trong vị trí si . Thông thƣờng ngƣời ta biểu diễn bộ đánh dấu dƣới dạng một

vectơ m-chiều:

M = (M(s1), M(s2), …, M(sm))

Ký hiệu M0 = (M0(s1), M0(s2), …, M0(sm)) là bộ đánh dấu đầu tiên.

Khi đó ngƣời ta gọi ma trận điều kiện trước (viết tắt: pre) là ma trận m x n

chiều với các hệ số nguyên dƣơng trong đƣợc xác định:

pre(i,j) = I(si, tj)

Ngƣời ta gọi ma trận điều sau (viết tắt: post) là ma trận n x m chiều với các

hệ số nguyên dƣơng trong đƣợc xác định:

post(i,j) = O(tj, si)

Và ngoài ra, ma trận C = post – preT đƣợc gọi là ma trận tới của mạng.

Ta xét ví dụ biểu diễn ma trận của mạng Petri sau:

Cho mạng Petri N = (S, T, I, O), trong đó S = {p , q, r} và T = {x, y}

xp

q y

r3

2

2 4

Hình 18. Thí dụ biểu diễn ma trận của một mạng Petri

Khi đó các ma trận đƣợc viết nhƣ sau:

preT =

20

03

01 , post =

41

10

20 và C = post – pre

T =

21

13

21

37

2.1.4. Đồ thị phủ của mạng Petri

Yêu cầu đặt ra là có hay không một đồ thị hữu hạn biểu diễn trực tiếp các bộ

đánh dấu đạt đƣợc của một mạng vị trí/chuyển (hữu hạn). Điều này thật khó làm vì

nói chung có nhiều vô kể các bộ đánh dấu đạt đƣợc khác nhau. Bởi vậy, ta chỉ lấy

một đồ thị hữu hạn mà mỗi bộ đánh dấu đạt đƣợc hoặc đƣợc biểu diễn tƣờng minh

bằng một đỉnh của đồ thị hoặc đƣợc “phủ“ bởi một đỉnh. Đồ thị nhƣ thế đƣợc gọi là

đồ thị phủ của mạng.

Ví dụ:

.s1

a

b

dc

s3

s2

100

001

010 0ωω

3

2

53

5

4c

d

c

da

b

Hình 19. Mạng Petri và đồ thị phủ tƣơng ƣớng

Mỗi đỉnh của đồ thị phủ cần hiểu nhƣ là một bộ đánh dấu của mạng, một số

đỉnh thực sự là các bộ đánh dấu đạt đƣợc còn những đỉnh khác phủ các bộ đánh dấu

đạt đƣợc. Ý tƣởng chủ đạo cho việc phủ các bộ đánh dấu xuất phát từ việc phân tích

các dãy vô hạn các bộ đánh dấu đƣợc sinh ra nhƣ thế nào. Chẳng hạn,

Giả sử M và M’ là hai bộ đánh dấu đạt đƣợc của mạng và M’ R(M). Giả

thiết thêm rằng: s SN : M(s) M’(s) và M M’ (ta viết M < M’) và KN(s) =

tại tất cả các vị trí mà M(s) < M’(s). Khi đó, một chuyển nào đó kích hoạt đƣợc

trong M thì cũng kích hoạt đƣợc trong M’.

Lặp lại dãy các chuyển mà nó dẫn M tới M’ ta lại nhận đƣợc bộ đánh dấu

mới M’’ mà M’ < M’’. Lặp lại thủ tục này nhiều lần, ta sinh ra một dãy vô hạn các

bộ đánh dấu khác nhau {Mi}, i = 1, 2, 3, ...

Chú ý rằng, dãy này thoả mãn tính chất là: Mi(s) = M(s) nếu M’(s) = M(s) và

Mi+1(s) > Mi(s) nếu M’(s) > M(s). Dãy này sẽ đƣợc biểu diễn trong đồ thị phủ bằng

một đỉnh phủ V với:

V(s) = M(s) nếu M’(s) = M(s) và V(s) = nếu M’(s) > M(s).

38

Nhƣ vậy, ta đã hình thức hoá việc xây dựng đồ thị phủ.

Thuật toán xây dựng đồ thị phủ:

Giả sử N = (S, T; F, K, M, W) là một mạng vị trí/chuyển mà ta cần phải xây

dựng đồ thị phủ cho nó.

Ta thực hiện các bƣớc sau đây:

Bƣớc 1: Xây dựng đồ thị ban đầu chỉ gồm một đỉnh V0 = MN, không có cung.

Bƣớc 2: Giả sử V là đỉnh nào đó của đồ thị nhƣng chƣa có cung nào đi ra từ nó thì:

1. Nếu V kích hoạt chuyển t nào đó và V [ t > V’ thì ta bổ sung đỉnh mới V’ và

cung mới (V, t, V’) vào đồ thị.

2. Trên đƣờng từ đỉnh V0 tới đỉnh V, nếu tồn tại đỉnh V’ mà V' < V thì với

những vị trí s mà V’(s) < V(s) thì toạ độ tƣơng ứng của V đƣợc thay bằng

và đỉnh V đƣợc gọi là -đỉnh.

3. Trên đƣờng từ đỉnh V0 tới đỉnh V, nếu tồn tại đỉnh V’ mà V' = V thì V là

đỉnh treo của đồ thị (đỉnh không có cung đi ra).

4. Nếu không có một chuyển nào đƣợc V kích hoạt thì V là đỉnh treo.

Bƣớc 3: Lặp lại Bƣớc 2 chừng nào còn có thể.

Ta xét một số tính chất của đồ thị phủ.

Bổ đề 2.1.4.1: Giả sử G là đồ thị phủ của mạng vị trí/chuyển N.

Với mỗi dãy hoạt động MN [ t1 > M1 [ t2 > M2 . . . Mk-1 [ tk > Mk trên mạng N tồn tại

một đƣờng đi V0 t1 V1 t2 . . . Vk-1 tk Vk trong G mà MN = V0 và Mi Vi , i = 1,2, ...,

k.

Đồ thị phủ của các mạng hữu hạn là hữu hạn. Do vậy có thể lƣu trữ và sử

dụng đồ thị phủ trong máy tính.

Định ly 2.1.4.1: (Wolfgang Reisig, [8])

Đồ thị phủ của một mạng vị trí/chuyển là hữu hạn.

Do vậy, đồ thị phủ thực sự có thể xây dựng đƣợc cho mọi mạng vị trí/chuyển

và nó là công cụ hữu hiệu để nghiên cứu các tính chất của những mạng này.

2.1.5. Ngôn ngữ sinh bởi lƣới mạng

Giả sử N = (S, T; F, K, M, W) là một mạng vị trí/chuyển.

39

Giả sử, M1, M2, ..., Mn R(MN) , t1, t2, ..., tk TN mà:

MN[ t1 > M1[ t2 > ... > Mk-1[ tk > Mk – dãy hoạt động trên mạng M.

Khi đó, = t1 t2 ... tk là một từ trên TN đƣợc sinh ra bởi dãy hoạt động trên.

Ta ký hiệu là: MN Mk .

Định nghĩa 1.3.5.1:

Tập hợp L(N) = { TN* , Mk R(MN): MN Mk} đƣợc gọi là

ngôn ngữ sinh bởi mạng vị trí/chuyển N.

Cặp (R(MN) , L(N)) mô tả hành vi của mạng N.

Các kết quả nghiên cứu đã chỉ ra rằng: Lớp các ngôn ngữ sinh bởi các mạng vị

trí/chuyển rộng hơn lớp các ngôn ngữ chính quy, hẹp hơn lớp các ngôn ngữ sinh bởi

các văn phạm tuỳ ý và không so sánh đƣợc với lớp các ngôn ngữ phi ngữ cảnh.

Riêng lớp ngôn ngữ sinh bởi các hệ điều kiện - biến cố là nằm trọn trong lớp các

ngôn ngữ chính quy.

Định nghĩa 2.1.5.2: Hai mạng vị trí/chuyển N1 và N2 đƣợc gọi là tƣơng đƣơng

ngôn ngữ nếu: L(N1) = L(N2).

Bài toán tƣơng đƣơng ngôn ngữ:

Có hay không một thuật toán để sau một số hữu hạn bƣớc có thể khẳng định

đƣợc đối với hai mạng vị trí/chuyển đã cho là tƣơng đƣơng ngôn ngữ hay không?

Định ly 2.1.5.1: (Wolfgang Reisig, [8])

Bài toán tƣơng đƣơng ngôn ngữ là không giải đƣợc.

Bài toán này có thể giải đƣợc ở một số lớp mạng có các tính chất cụ thể nào

đó. Vấn đề này vẫn đang đƣợc tiếp tục nghiên cứu.

Bây giờ ta xét mối quan hệ giữa lớp ngôn ngữ sinh bởi các mạng vị

trí/chuyển và lớp ngôn ngữ sinh bởi các hệ điều kiện - biến cố.

Định ly 2.1.5.2: (Wolfgang Reisig, [8])

Lớp ngôn ngữ sinh bởi các mạng vị trí/chuyển bao hàm thực sự lớp ngôn ngữ sinh

bởi các hệ điều kiện - biến cố.

40

2.2. Một số tính chất của mạng Petri

2.2.1. Tính chất bị chặn của mạng Petri

Định nghĩa 2.2.1.1:

1. Vị trí s trong mạng vị trí/chuyển N = (S, T; F, K, M, W) đƣợc gọi là bị chặn

nếu tồn tại số nguyên dƣơng n sao cho với mọi bộ đánh dấu đạt đƣợc trong

mạng N đều thoả mãn: M(s) n.

2. Mạng N đƣợc gọi là bị chặn nếu tất cả các vị trí của nó đều bị chặn.

Tính an toàn:

Mạng N bị chặn bởi 1 đƣợc gọi là mạng an toàn.

Định ly 2.2.1.1: (Wolfgang Reisig, [8])

Giả sử N là mạng vị trí/chuyển và G là đồ thị phủ của nó.

1. Vị trí s là bị chặn V G : V(s) .

2. Mạng N là bị chặn Đồ thị G không chứa -đỉnh.

Nhƣ vậy, bài toán bị chặn đối với một vị trí nào đó và bài toán bị chặn của

một mạng vị trí/chuyển là giải đƣợc nhờ thuật toán sau đây.

Thuật toán:

1. Xây dựng đồ thị phủ của mạng đã cho.

2. Duyệt toạ độ s của các đỉnh của đồ thị phủ G để xem có toạ độ nào bằng

không. Nếu không có thì vị trí s là bị chặn, ngƣợc lại là không bị chặn.

3. Duyệt các đỉnh của đồ thị phủ G xem có đỉnh nào là -đỉnh không. Nếu

không có thì mạng N là bị chặn, ngƣợc lại là không bị chặn.

Ví dụ:

s1 t2

N =

.

s2

s4

s3

t3t1

41

1000

0010

1ω00 0ω10 0ω1ω

G =

Hình 22. Ví dụ mạng Petri không bị chặn

Mạng N có hai vị trí s2 và s4 là không bị chặn. Vậy N không bị chặn.

Trong đồ thị phủ của một mạng vị trí/chuyển, -đỉnh có thể sinh ra các -đỉnh

khác.

2.2.2. Tính chất sống của mạng Petri

Mạng vị trí/chuyển thƣờng đƣợc áp dụng trong các lĩnh vực mà ở đó số

lƣợng và sự phân bố của các đối tƣợng chuyển động là quan trọng. Chẳng hạn, dữ

liệu trong máy tính, hàng hoá trong kho, tài liệu trong hệ thống hành chính, các

công việc đang tiến hành ở một hệ thống sản xuất …

Trong các lĩnh vực nhƣ thế, mục đích chính là có đƣợc một tổ chức hợp lý

cho phép thay đổi số lƣợng và sự phân bố của các đối tƣợng động nhƣng hạn chế sự

thay đổi trong một giới hạn nào đó. Trong những hệ nhƣ vậy, rất có thể xuất hiện

các sự cố dƣới dạng phong toả, gây nên ngừng trệ toàn bộ hay một phần hệ thống

đó. Sự phong tỏa nhƣ thế là do quá thiếu hoặc quá thừa các đối tƣợng động.

Trong biểu diễn mạng của các hệ nói trên, các phần tử hoạt động (bộ vi xử

lý, hãng vận tải, máy móc …) đƣợc biểu diễn nhƣ các chuyển còn các phần tử

không hoạt động (bộ nhớ, kho …) đƣợc biểu diễn nhƣ các vị trí. Các đối tƣợng

chuyển động đƣợc biểu diễn nhƣ các dấu (token). Vậy thì, sự phong tỏa có thể “nhìn

thấy” nhƣ là không có chuyển nào đƣợc kích hoạt. Mạng nhƣ thế là không sống.

Định nghĩa 2.2.2.1: Giả sử N = (S, T; F, K, M, W) là một mạng vị trí/chuyển và t là

một chuyển nào đó của N.

1. Chuyển t đƣợc gọi là sống nếu: M R(MN) , M’ R(M) : t là M’-kích

hoạt.

2. Mạng N đƣợc gọi là sống nếu mọi chuyển của nó đều là sống.

42

Tính sống không suy ra rằng mỗi bộ đánh dấu đƣợc tái sản xuất, nghĩa là:

M1, M2 R(MN) : M2 R(M1).

Định nghĩa 2.2.2.2: Bộ đánh dấu của mạng vị trí/chuyển N là sống nếu:

t TN , M’ R(M) : t là M’-kích hoạt.

Bổ đề 2.2.2.1:

Mạng vị trí/chuyển N là sống khi và chỉ khi tất cả các bộ đánh dấu đạt đƣợc

là sống.

Chứng minh:

Mạng N là sống t TN : t là sống t TN , M R(MN), M’

R(M) : t là M’-kích hoạt M R(MN) : M là sống.

Bài toán sống:

Cho một mạng vị trí/chuyển N. Có hay không một thuật toán để sau một số

hữu hạn bƣớc có thể trả lời đƣợc mạng N là sống hay không?

Đây là bài toán sống là giải đƣợc.

2.2.3. Tính chất tắc nghẽn của mạng Petri

Một bộ đánh dấu M đạt đƣợc từ bộ đánh dấu M0 gọi là tắc nghẽn hay chết

nếu không có một chuyển nào là có thể cháy bắt đầu từ M.

2.2.4. Tính chất thuận nghịch của mạng Petri

Mỗi bộ đánh dấu M đạt đƣợc từ M0 thì M0 cũng đạt đƣợc từ M

N đƣợc gọi là thuận nghịch nếu:

M R(M0) s T* : M0 R(M)

Ví dụ:

Cho mạng Petri N = (P, T, I, O) và bộ đánh dấu ban đầu M0 = (1, 1, 0)

43

.

.

s1

s2

s3

t2

t1

t3

Hình 23. Thí dụ về mạng Petri thuận nghịch

Xuất phát từ bộ đánh dấu đầu tiên M0 = (1, 1, 0) chúng ta có thể cho cháy chuyển t1,

sau đó hoặc là chuyển t2 hoặc là chuyển t3 và chúng ta nhận đƣợc tình trạng tắc

nghẽn của mạng đã cho.

LN(M0) = {t1, t1t2, t1t3 }- tập các xâu đạt đƣợc từ bộ đánh dấu M0

RN(M0) = {(1, 1, 0), (0, 0, 1), (1, 0, 0), (0, 1, 0)}

và các bộ đánh dấu: (1, 0, 0) và (0, 1, 0) là các bộ đánh dấu tắc nghẽn.

Kết luận chƣơng 2: Trong chƣơng này, luận văn trình bày nội dung cơ bản

về mạng vị trí/chuyển, điều kiện “cháy”, bộ đánh dấu đạt đƣợc và các tính chất điển

hình nhất của mạng Petri là “tính bị chặn”, “tính sống”, “tính tắc nghẽn” và “tính

thuận nghịch”.

44

Chƣơng 3 – ỨNG DỤNG MẠNG PETRI TRONG LẬP TRÌNH

HƢỚNG ĐỐI TƢỢNG TƢƠNG TRANH

Lập trình hƣớng đối tƣợng có các tính chất: đóng gói, kế thừa, đa hình. Tính

chất đóng gói trong lập trình hƣớng đối tƣợng gần giống với việc phân chia đối

tƣợng, còn tính kế thừa và tính đa hình “gần giống” với việc tổ chức và chia sẻ đối

tƣợng. Khái niệm đối tƣợng đã đƣợc đề cập và nghiên cứu trong lý thuyết tƣơng

tranh và lý thuyết phân tán từ lâu. Vấn đề có liên quan hay tìm ra những yếu tố “gần

giống nhau” về đối tƣợng giữa lập trình hƣớng đối tƣợng và lý thuyết tƣơng tranh

đã đƣợc đƣa ra. Ngƣời ta hƣớng đến tìm mối liên hệ giữa Lập trình hƣớng đối tƣợng

và Mạng Petri vì mạng Petri là mô hình đầu tiên biểu diễn các hệ thống tƣơng tranh

[7].

Yêu cầu đặt ra là nghiên cứu khả năng tích hợp giữa mạng Petri và định

hƣớng đối tƣợng trong một mô hình trong đó định nghĩa các nguyên tắc, cú pháp,

ngữ nghĩa và minh họa bằng các ví dụ.

Mô hình hƣớng đối tƣợng và mạng Petri hƣớng đối tƣợng đƣợc Lakos và

Charles A [7] đề xuất. Trong đó, mạng Petri hƣớng đối tƣợng (Object Petri Nets) hỗ

trợ tích hợp triệt để các khái niệm hƣớng đối tƣợng vào Petri mạng, bao gồm cả tính

chất kế thừa và tính chất đa hình và rằng buộc động. Chúng có một phân cấp lớp

đơn trong đó bao gồm cả hai loại thẻ và các loại mạng con, do đó cho phép nhiều

cấp độ hoạt động trong mạng.

Sau đó, mạng Petri hƣớng đối tƣợng (OPNs) đƣợc sử dụng để mô hình một trình

soạn thảo hợp tác cho các sơ đồ phân cấp. Các tác giả đã chứng minh việc áp dụng

mô hình OPNs để mô hình hóa các hệ thống tƣơng tranh là khả thi. Phƣơng pháp

để thu đƣợc một mô hình mạng Petri là thích ứng với một phƣơng pháp thiết kế

hƣớng đối tƣợng: mô hình đối tƣợng đƣợc chuẩn bị trong ký hiệu OMT của

Rumbaugh [12], mô hình động sau đó đƣợc chuẩn bị trong các hình thức vòng đời

theo phƣơng pháp Shlaer-Mellor [13], và cuối cùng là các mô hình này đƣợc gắn

tƣơng ứng vào một mô hình OPNs. Cách tiếp cận này mở đầu cho sự phát triển các

45

phƣơng pháp kết hợp mạng Petri và lập trình hƣớng đối tƣợng và chứng minh tính

tổng quát và khả năng linh hoạt của các hình thức mạng Petri hƣớng đối tƣợng

(OPNs).

Luận văn nghiên cứu một mô hình đƣợc xây dựng dựa trên sự kết hợp giữa lập trình

hƣớng đối tƣợng và mạng Petri đó là Đối tƣợng hợp tác CoOperative Objects

(COOs)

3.1. Tổng quan về mô hình đối tƣợng hợp tác (COOs)

Phƣơng pháp hƣớng đối tƣợng và lý thuyết mạng Petri đƣợc nghiên cứu tích

hợp với nhau thành một Framework có khả năng biểu đạt của cả hai cách tiếp cận

trên mà vẫn giữ những điểm mạnh riêng của chúng. Đối tƣợng hợp tác (COOs)

đƣợc định nghĩa:

- Là sự tích hợp của mô hình mạng Petri và cách tiếp cận hƣớng đối tƣợng

vào một khuôn khổ khái niệm duy nhất.

- Từ quan điểm của mạng Petri : đối tƣợng hợp tác COOs là một mạng Petri

cấp cao (High level Petri nets, thẻ (token) có cấu trúc dữ liệu) có thể xử lý dữ liệu

của hệ thống và cho phép cấu trúc các mô hình theo nguyên tắc hƣớng đối tƣợng.

- Từ quan điểm hƣớng đối tƣợng: đối tƣợng hợp tác COOs là một ngôn ngữ

tƣơng tranh mà các đối tƣợng là chủ động và có thể xử lý đồng thời một số công

việc.

a. Các khái niệm

Về dạng thức, một hệ thống trong đối tƣợng hợp tác COOs đƣợc xem xét

nhƣ sau:

Hệ thống = Các đối tƣợng (Objects) + các thao tác kết hợp (Cooperation)

Đối tƣợng = Cấu trúc dữ liệu + cá thao tác + hành vi

COOs xem một hệ thống nhƣ là một tập hợp các đối tƣợng đang hoạt động.

Mỗi đối tƣợng là một thể hiện của lớp COO. Trong khi một hệ thống COO đang

chạy, tập hợp các đối tƣợng thành viên có thể thay đổi do các đối tƣợng có thể đƣợc

tự động tạo ra và xóa. Hành vi của một hệ thống COO hình thành từ các hành vi của

các đối tƣợng của nó và mỗi một hành vi đồng thời xử lý hoạt động riêng của mình.

46

Hoạt động này liên quan đến việc giao tiếp với các đối tƣợng khác theo một giao

thức yêu cầu/ trả lời.

b. Cấu trúc của một đối tƣợng trong COO

Cấu trúc của một đối tƣợng trong COO gồm 02 phần là Data Structure và

Control Structure.

Cấu trúc dữ liệu (Data structure) của một đối tƣợng bao gồm: một tập các

thuộc tính và một tập các hàm. Các phần tử chung (Public) của cấu trúc dữ liệu này

có thể đƣợc truy cập một cách đồng bộ bởi các đối tƣợng khác.

Cấu trúc điều khiển (Control structure): bao gồm một tập hợp các dịch vụ và

một mạng Petri cấp cao gọi là cấu trúc điều khiển đối tƣợng (OBCs – Object

Control Structure ). Một lớp COO đƣợc định nghĩa nhƣ sau:

47

c. Các tính năng chính của phƣơng thức COO

Tính độc lập Autonomy (từ quan điểm hƣớng đối tƣợng): đòi hỏi có hai cơ

chế liên quan là giao thức liên hệ cấp cao cho phép mỗi đối tƣợng phân biệt các

hoạt động nội bộ của nó với tƣơng tác của nó với các đối tƣợng khác.

Tính năng động Dynamism (từ quan điểm mạng Petri): là khả năng để hệ

thống COOs giới thiệu các đối tƣợng mời hoặc loại bỏ các đối tƣợng thành viên mà

không kiểm soát tập trung.

3.2. Sử dụng mô hình đối tượng hợp tác COOs giải quyết bài toán “Bữa ăn

tối của các triết gia”

48

Đối tƣợng hợp tác COOs đƣợc sử dụng để giải quyết bài toán “Bữa ăn tối

của các triết gia” nhƣ một ứng dụng. Phƣơng hƣớng giải quyết bài toán trong ba

trƣờng hợp:

Trƣờng hợp 1: Một đối tƣợng hợp tác trong sự cô lập

Trƣờng hợp 2: Sự tƣơng tác giữa các đối tƣợng hợp tác

Trƣờng hợp 3: Nghiên cứu động

a. Trƣờng hợp 1 - Một đối tƣợng hợp tác trong sự cô lập

Định nghĩa của các lớp COO: dựa trên ngôn ngữ OO tuần tự, đƣợc quy về

ngôn ngữ dữ liệu. Ngôn ngữ này đƣợc sử dụng để xác định hàm và hằng số bên

ngoài. Những định nghĩa này nằm trong những tập tin thích hợp và đƣợc chia sẻ bởi

các lớp của một hệ thống.

Bài toán “Bữa ăn tối của các nhà triết học” quy về ngôn ngữ lập trình C++

đƣợc giả định nhƣ sau:

+ Phần khai báo:

+ Định nghĩa của lớp COO PhiloTable:

49

Lớp COO bao gồm phần đặc tả và phần thực hiện.

- Phần đặc tả chứa thông tin về lớp: các định nghĩa, các thuộc tính, toán tử và

nó có thể hoàn thành với một OBCs.

- Phần thực hiện: gồm các định nghĩa của các mục riêng và các lớp thực tế

của OBCs.

b. Trƣờng hợp 2 -Sự tƣơng tác giữa các đối tƣợng hợp tác

+ Định nghĩa của lớp COO Sphilo:

50

Mỗi triết gia đƣợc xem nhƣ một tác nhân Actor độc lập đƣợc mô hình hóa

bằng một thể hiện của lớp COO Sphilo và một bảng là tập hợp các trƣờng hợp của

lớp này.

51

c. Trƣờng hợp 3 - Nghiên cứu động

Trong trƣờng này các Triết gia có thể tham gia hoặc rời khỏi bàn ăn (có thể

giới thiệu khách mới hoặc rời khỏi bàn ăn).

3.3. Xây dựng trình biên dịch thực thi mô hình đối tƣợng hợp tác COOs

SYROCO là một trình biên dịch COO: dịch mỗi lớp COO vào một lớp C++

để một thể hiện của lớp COO đƣợc thực hiện nhƣ một thể hiện của lớp C++ tƣơng

ứng. Mỗi đối tƣợng đƣợc cung cấp trình biên dịch và một thẻ (token). Mạng Petri

xác định hành vi của nó, do đó một đối tƣợng đƣợc thực hiện nhƣ quá trình độc lập

thực sự. Nhờ các tính năng này, SYROCO hiệu quả trong không gian và thời gian.

52

Hình 24. Nguyên lý hoạt động của trình biên dịch SYROCO

Đối tƣợng hợp tác COOs có thể đƣợc xem nhƣ là một công cụ dùng cho các

đặc tả kỹ thuật, thiết kế và phân tích các hệ thống phức tạp, hoặc đƣợc sử dụng nhƣ

là một ngôn ngữ lập trình hƣớng đối tƣợng tƣơng tranh. Khi đó, trình biên dịch

SYROCO sẽ đƣợc sử dụng nhƣ một công cụ mô phỏng hoặc nhƣ là một môi trƣờng

lập trình cho phép kiểm soát tốt hành vi của từng đối tƣợng trong hệ thống tƣơng

tranh.

Kết luận chƣơng 3: Chƣơng này trình bày cách tiếp cận tích hợp lập trình

hƣớng đối tƣợng vào lý thuyết mạng Petri nhằm mục đích nghiên cứu các mô hình

có thể giải quyết các bài toán tƣơng tranh thông qua việc xây dựng các mô hình lập

trình hƣớng đối tƣợng tƣơng tranh. Đối tƣợng hợp tác COOs là một ví dụ cụ thể.

COOs tận dụng khả năng mô hình hóa của mạng Petri (mỗi vị trí đƣợc đánh dấu

bằng thẻ dấu có cấu trúc) và cách tiếp cận hƣớng đối tƣợng (xây dựng trình biên

dịch) để giải quyết một bài toán tƣơng tranh cụ thể là bài toán “Bữa ăn tối của các

nhà triết học”.

53

KẾT LUẬN

Luận văn với đề tài “Một số tính chất của mạng Petri và ứng dụng” nghiên

cứu về mạng Petri (Petri nets), lý thuyết đƣợc biết đến nhƣ một phƣơng pháp tự

nhiên, đơn giản và có hiệu lực để mô tả, phân tích các dòng thông tin, và các dữ liệu

điều khiển trong các hệ xử lý thông tin. Các kết quả của Luận văn:

Luận văn đã trình bày một cách tổng quan về mạng Petri, mạng các điều kiện

– biến cố, mạng vị trí/chuyển.

Các tính chất cơ bản nhất của mạng Petri đƣợc nghiên cứu trong Luận văn là

“tính bị chặn”, “tính sống”, “tính tắc nghẽn” và “tính thuận nghịch”. Các tính chất

này đƣợc thể hiện thông qua mạng vị trí chuyển.

Luận văn nghiên cứu đến khả năng ứng dụng của lý thuyết mạng Petri khi

kết hợp với phƣơng pháp nghiên cứu hƣớng đối tƣợng để xây dựng nên một công cụ

hỗ trợ cho lập trình hƣớng đối tƣợng tƣơng tranh đó là mô hình đối tƣợng hợp tác

(CoOperativeObjects) và nghiên cứu ứng dụng mô hình này vào giải quyết một bài

toán tƣơng tranh thực tế “Bữa ăn tối của các nhà triết học”.

Do hạn chế về năng lực, luận văn chƣa tiến hành cài đặt trình biên dịch

SYROCO trong việc giải quyết bài toán tƣơng tranh thực tế “Bữa ăn tối của các

nhà triết học” và đánh giá khả năng áp dụng mô hình đối tƣợng hợp tác COOs để

giải quyết các bài toán tƣơng tranh khác.

Trong tƣơng lai, chúng tôi sẽ nghiên cứu khả năng áp dụng mô hình COOs

đối với các bài toán tƣơng tranh, nghiên cứu cách tiếp cận tổng quát về các mô hình

kết hợp mạng Petri và lập trình hƣớng đối tƣợng trong việc giải quyết các bài toán

tƣơng tranh.

54

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Trần Thọ Châu (1996), Lưới Petri có thời gian và đặc trưng ngôn ngữ của lưới

Petri suy rộng, Luận án phó tiến sĩ khoa học Toán lý‎, Trƣờng đại học Khoa học

tự nhiên – Đại học Quốc gia Hà Nội.

2. Phạm Văn Thạo (2001), Về khả năng biểu diễn ngôn ngữ của mạng Petri, Luận

án tiến sĩ Toán học, Viện Toán học, Hà Nội.

Tiếng Anh

3. Pham Tra An (2000), “On growth function of Petri net”, ActaMathematica

Vietnamica, 25(3), pp. 269 – 279.

4. Choppy C., Dedova A., Evangelista S., Hong S., Klai K. and Petrucci L. (2010),

“The NEO Protocol for Large-Scale Distributed Database Systems: Modelling

and Initial Verification”, Lecture Notes in Computer Science 2010, Springer-

Verlag, pp. 145– 164.

5. Gil-Costa V., Lobos J., Inostrosa-Psijas A. and Marin M. (2012), “Capacity

planning for vertical search engines: an approach based on coloured Petri nets”,

Lecture Notes in Computer Science 2012, Springer-Verlag, pp. 288– 307.

6. Murata T. (1989), “ Petri nets: Properties, analysis and applications”,

Proceedings of the IEEE, 77(4), pp. 541– 580.

7. Lakos, Charles A., “Object Oriented Modelling with Object Petri Nets”, A paper

to be published in Advances in Petri Nets. 1999.

8. Reisig W. (1983), „Petri Nets: An Introduction“, Springer-Verlag, Berlin.

9. Sibertin-Blanc C. (2001), “CoOperative Object: Principles, Use and

Implementation”, Lecture Notes in Computer Science 2001, Springer-Verlag,

pp. 216– 246.

55

10. Sibertin-Blanc C. (1997), “Concurrency in CoOperative Objects”, Proceedings

of the Second International Workshop on High-Level Parallel Programming

Models and Supportive Environments HIPS’97, IEEE Society Press.

11. Westergaard M. and Maggi F. (2011), “Modeling and verification of a protocol

for operational support using coloured Petri nets”, Lecture Notes in Computer

Science 2011, Springer-Verlag, pp. 169– 188.

12. Rumbaugh J. (1991), “Object-oriented modeling and design”, Prentice-Hall.

13. Shlaer S. and Mellor S.J. (1992), “Object Lifecycles – Modeling the World in

States” , Prentice Hall.