Tải bản đầy đủ (.doc) (61 trang)

Ứng dụng mạng petri trong lập trình hướng đối tượng tương tranh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (776.12 KB, 61 trang )

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̣ CÁC TƢ̀ VÀ CÁ
̣ C KÝ HIÊU VIẾT TẮT

STT

Ký hiệu viết tắt

Minh giải

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



6

x

7

pre

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

8

post

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

9


COO

10

OPNs

11

OBCs

x

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



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

Phƣơng pháp đối tƣợng hợp tác
CoOperativeObjects
Mạng Petri đối tƣợng
Object Petri Nets
Cấu trúc điều khiển đối tƣợng
Object Control Structure


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

1



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:


2


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

3


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.
Bàn nhận sách

Thư viện
Bàn yêu cầu

Bàn trả sách

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

4


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


Bàn yêu cầu

Bàn mượn sách

Kho sách

Hộp thẻ mục sách
đã mượn

Nhận lại sách

Bàn trả 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à Sphầ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.

5


với X ⊆ N thì:




X= 

x∈X

x và X• = Υ

x•
x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ụ:

t3

s2
t2

s3

s5
t1

t4

s4

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’

6

t5


(Đ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)

7



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à ckí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ó


8


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ụ:

9



e2

b3
e3

b4



b1

b2

e1

b5

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à , 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.

10


e3





e1



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à:

11


• 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ụ:
b2



b1

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

12


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 lý 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.

b

e2





e1

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

13


- 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 lý 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ạ



Xuân

Lập xuân

Lập thu

Đông

Lập đông

Thu

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

Λậπ ξυν


Λậπ νγ





s2

s1

Λậπ τηυ

Λậπ ηạ

s3

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

14


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 lý 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Σ }.

15


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 lý 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 lý 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 Σ’

16


Đị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 lý 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ụ:

e2

e3
b3

b4



b1

b6

b2
e1

b5


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:

17


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 lý 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 lý 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

b5

e4


{b1}
{e1}

e2



e1

e5
{b2,b3}

b1

{e2}
{e5}
{b2,b5}
{e4}

{e3}
{e3,e4}

{e3}
b2

e3

{b4,b5}

{e4}

{b3,b4}

b4

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 lý 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:

18


c1
e1
c2

e2
c3

e3
c4

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 lý 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.

19


×