Chính điều này đã khích lệ tác giả trong việc nghiên cứu ứng dụng lý thuyết đồ thị để xây dựng các thuật toán điều khiển tối ưu các quá trình tuần tự trên một số hệ thống phân tán được b
Trang 11.1.3 Một số cách biểu diễn đồ thị trong máy tính 17
1.2.3 Một số công cụ sinh ngôn ngữ chính quy
và mối liên hệ giữa chúng
Chương 2 Các thuật toán điều khiển tương tranh 49
Trang 25
trên hệ mạng và độ phức tạp của chúng 2.1 Bài toán điều khiển tương tranh các quá trình 49 2.2 Thuật toán điều khiển tương tranh trên các hệ mạng điều kiện
Chương 3 Độ phức tạp otomat của các thuật toán
đoán nhận ngôn ngữ
68
3.2 Độ phức tạp otomat của biểu thức chính quy 70
3.2.2 Xây dựng nguồn tương đương với biểu thức chính quy 71
3.4.2 Otomat hữu hạn đơn định đoán nhận ngôn ngữ
sinh bởi chùm đầu
84
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ
LIÊN QUAN ĐẾN LUẬN ÁN
98
Trang 3Đồ thị liên thông mạnh Strongly connected graph
Duyệt đồ thị theo chiều sâu Depth-first search Duyệt đồ thị theo chiều rộng Breadth-first search
Trang 47
Văn phạm cảm ngữ cảnh Context-sensitive grammar Văn phạm phi ngữ cảnh Context-free grammar Văn phạm chính quy Regular grammar
Otomat đơn định Deterministic automaton Otomat không đơn định Nondeterministic automaton
Biểu thức chính quy Regular expression
-ngôn ngữ -language Thuật toán đoán nhận Recognition algorithm Thuật toán phân tích Parsing algorithm
Độ phức tạp đoán nhận Recognition complexity
Độ phức tạp otomat Automata complexity
Quan hệ đạt đƣợc Reachability relation
Trang 58
HÖ m¹ng ®iÒu kiÖn - biÕn cè Condition-event net system
HÖ m¹ng vÞ trÝ - chuyÓn Place-transition net system
HÖ m¹ng chu tr×nh Cycle net system
Trang 69
DANH MỤC CÁC HèNH VẼ Trong bản luận ỏn 21 cú hỡnh vẽ
Hỡnh 1.2 Đồ thị cú hướng và ma trận kề tương ứng 17 Hỡnh 1.3 Mảng cỏc danh sỏch kề biểu diễn đồ thị 18
Hỡnh 1.5 Thứ tự của cỏc đỉnh được duyệt theo chiều sõu 23 Hỡnh 1.6 Thứ tự của cỏc đỉnh được duyệt theo chiều rộng 24
Hình 3.3 Sơ đồ sinh không chứa cung bù với c j là cung lấy tiền tố 83
Hình 3.4 Chùm đầu với a i = C(L(I1)) và a j = C(L(I2)) 84
Trang 710
MỞ ĐẦU
Lý thuyết đồ thị là một ngành khoa học ra đời rất sớm và có nhiều ứng dụng Nhờ lý thuyết đồ thị mà nhiều bài toán phức tạp, diễn giải dài dòng được mô tả hình học một cách trực quan và cô đọng Lý thuyết đồ thị đã trở thành công cụ đắc lực cho việc thiết kế các thuật toán [4,7,12,23], mô hình hình học và phân tích các hệ thống [9,49,62], biểu diễn các quá trình của hệ thống [34,60]
Việc tổ chức thực hiện một cách nhanh chóng các quá trình xảy ra trên một hệ thống phân tán là một trong những mục tiêu của bài toán điều khiển
hệ thống Ngoài kỹ thuật đồng bộ hoá thì kỹ thuật thực thi song song đã được xây dựng thành công nhờ một số công cụ như: ngôn ngữ vết [11,13], phép đẩy trái [62] Chính điều này đã khích lệ tác giả trong việc nghiên cứu ứng dụng lý thuyết đồ thị để xây dựng các thuật toán điều khiển tối ưu các quá trình tuần tự trên một số hệ thống phân tán được biểu diễn bởi các hệ mạng điều kiện - biến cố và hệ mạng vị trí - chuyển
Từ một hệ mạng đã cho chúng ta có thể xây dựng được ngôn ngữ sinh bởi hệ này Đó chính là hành vi tuần tự của hệ Hành vi tuần tự của hệ tạo bởi các quá trình xảy ra trên hệ với các bước đơn, mỗi bước chỉ gồm một hành động Các hành động này được thực hiện kế tiếp nhau Chúng ta có thể xây dựng đồ thị có hướng gán nhãn biểu diễn hành vi tuần tự của hệ mạng Trong trường hợp hành vi tuần tự có chứa các quá trình vô hạn thì kỹ thuật phủ đỉnh [34] sẽ giúp ta hữu hạn hoá đồ thị biểu diễn hành vi của hệ
Trang 811
Việc phân tích và điều khiển tương tranh các quá trình tuần tự xảy ra trên một hệ thống phân tán dựa vào ngôn ngữ sinh bởi hệ thống đang là một vấn đề thời sự Để điều khiển tương tranh các quá trình trên hệ mạng, chúng tôi xây dựng kỹ thuật ghép cạnh trên đồ thị biểu diễn hành vi của hệ mạng này Sau mỗi lần ghép cạnh ta nhận được các quá trình với các bước tương tranh có nhiều hành động hơn Hơn nữa, khi ghép cạnh thì số bước trên một quá trình sẽ giảm đi Đến khi không thể ghép cạnh được nữa thì các bước tương tranh mà ta nhận được trở thành cực đại và số bước của quá trình là ít nhất có thể Khi đó, các quá trình với các bước tương tranh cực đại được thực thi trong môi trường song song với thời gian ít nhất Đó chính là ý nghĩa của điều khiển tối ưu mà chúng ta mong muốn
Ngôn ngữ sinh bởi hệ mạng nói riêng và ngôn ngữ hình thức nói chung đều có các cơ chế sinh ngôn ngữ Cơ chế sinh ngôn ngữ từ các lớp văn phạm
và cơ chế đoán nhận ngôn ngữ bởi các lớp otomat đã được nghiên cứu khá chi tiết Trong thời gian gần đây, chúng ta cũng đã xây dựng thêm được một
số công cụ khác để sinh ngôn ngữ như: đồ hình, nguồn, biểu thức chính quy,
sơ đồ sinh, chùm đầu Do vậy, việc nghiên cứu, khảo sát, tính toán độ phức tạp otomat của một số lớp ngôn ngữ được sinh ra từ các công cụ trên vẫn là một đề tài đang được nhiều người quan tâm
Sau sự ra đời và phát triển của lý thuyết ngôn ngữ từ hữu hạn cùng với nhu cầu ứng dụng của thực tiễn, việc nghiên cứu tính chất của các lớp ngôn ngữ từ vô hạn (-ngôn ngữ) trở nên cần thiết Lý thuyết ngôn ngữ từ vô hạn
được đề xuất từ các công trình nghiên cứu về logic của J R Buchi [20], lý thuyết mạch điện của D Muller [43], otomat của R McNaughton [41] Ngôn ngữ từ vô hạn được tiếp tục quan tâm nghiên cứu và ứng dụng trong nhiều lĩnh vực khác nhau, chẳng hạn như: lý thuyết mật mã của G Hansel [28], L Staiger [59], Nguyễn Hương Lâm và Đỗ Long Vân [37], lý thuyết
Trang 9Một trong những vấn đề quan trọng được nhiều người quan tâm nghiên cứu trong lý thuyết ngôn ngữ hình thức là tính toán độ phức tạp otomat đoán nhận các lớp ngôn ngữ sinh bởi các công cụ khác nhau Trên cơ sở đó đưa ra các đặc trưng cho các công cụ sinh và các lớp ngôn ngữ tương ứng Hơn nữa các ngôn ngữ này còn được dùng để biểu diễn hành vi tuần tự của các hệ thống nói chung và các hệ thống phân tán nói riêng
Nhiều nhà khoa học trên thế giới đã tập trung nghiên cứu và phát triển ngôn ngữ vết trong các bài toán điều khiển hệ thống [13,50], xác định độ phức tạp otomat của các thuật toán đoán nhận các -ngôn ngữ phi ngữ cảnh [38], độ phức tạp của các -otomat [56], áp dụng lý thuyết ngôn ngữ cho các bài toán quyết định [39,57] Ở Việt Nam, việc nghiên cứu điều khiển hệ thống tương tranh và độ phức tạp tính toán trên ngôn ngữ hình thức được tập trung nghiên cứu tại Viện Toán học [2,14,26,37] và tại Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội [5,6,11,62] …
Mục tiêu của luận án là sử dụng đồ thị định hướng gán nhãn để xây dựng một số thuật toán điều khiển tương tranh các quá trình xảy ra trên các
hệ mạng điều kiện - biến cố và trên các hệ mạng vị trí - chuyển Đồng thời luận án cũng tập trung nghiên cứu các phương pháp đoán nhận một số lớp ngôn ngữ, -ngôn ngữ và đánh giá độ phức tạp otomat của các thuật toán đoán nhận này Ngoài những công cụ thông dụng sinh ngôn ngữ như: văn phạm, otomat, tác giả đã sử dụng đồ thị định hướng gán nhãn trong việc xây
Trang 1013
dựng một số công cụ khác sinh ra ngôn ngữ chính quy như: nguồn, biểu thức chính quy, đồ thị sinh, sơ đồ sinh và chùm đầu Đồng thời, luận án đã nghiên cứu đánh giá cận trên độ phức tạp otomat của các công cụ này Những kết quả đạt được trên các ngôn ngữ và -ngôn ngữ sinh bởi các công cụ này rất có ý nghĩa
3) Cải tiến thuật toán xây dựng đồ thị phủ của một hệ mạng vị trí - chuyển đã được đưa ra trong [34] và ứng dụng nó để xây dựng thuật toán điều khiển tương tranh trên các quá trình tuần tự xảy ra trên hệ mạng vị trí - chuyển
4) Tính toán cận trên của độ phức tạp otomat đoán nhận các ngôn ngữ sinh bởi nguồn, biểu thức chính quy, sơ đồ sinh và chùm đầu
Các kết quả chính của luận án đã được trình bày tại:
1 Hội thảo Khoa học Quốc gia “Một số vấn đề chọn lọc của Công nghệ Thông tin và Truyền thông”
2 Hội thảo Khoa học Quốc gia “Nghiên cứu cơ bản và ứng dụng Công nghệ Thông tin”
3 Tạp chí Tin học và Điều khển học
4 Xemina Tin học tại Bộ môn Tin học, Khoa Toán - Cơ - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội
Trang 1114
Luận án có cấu trúc như sau Sau phần mở đầu là 3 chương chính Chương 1 trình bày các khái niệm cơ sở và các kết quả liên quan sẽ được dùng trong hai chương sau Những khái niệm cơ bản xuyên suốt luận án là lý thuyết đồ thị Đó là công cụ toán học hữu ích mà tác giả đã sử dụng để biểu diễn các khái niệm, các hệ thống và xây dựng nên các thuật toán hữu hiệu Bên cạnh đó, tác giả cũng nhắc lại các khái niệm cơ bản của ngôn ngữ hình thức, otomat và của các hệ mạng
Chương 2 trình bày bài toán điều khiển tương tranh các quá trình xảy
ra trên một hệ thống và xây dựng hai thuật toán điều khiển tương tranh dựa trên đồ thị gán nhãn có hướng và phân tích độ phức tạp của chúng Thuật toán thứ nhất làm đầy đủ đồ thị các trường hợp của một hệ mạng điều kiện - biến cố Từ đó ta nhận được một bức tranh đầy đủ về hành vi tương tranh của
hệ thống được biểu diễn bởi hệ mạng này Đồng thời ta cũng nhận ra được các quá trình tương tranh với các bước tương tranh cực đại xảy ra trên hệ thống Thuật toán thứ hai rút gọn đồ thị phủ của một hệ mạng vị trí - chuyển
để từ đó nhận được các quá trình tương tranh cực đại Chúng tôi cũng đưa ra các cải tiến từ thuật toán đã có trong [34] để xây dựng đồ thị phủ cho hệ mạng điều kiện - biến cố một cách đơn giản hơn Các thuật toán này góp phần phát triển lý thuyết điều khiển hệ thống
Chương 3 trình bày các kết quả nghiên cứu về độ phức tạp otomat Cụ thể là các tính toán xác định cận trên độ phức tạp otomat đoán nhận ngôn ngữ sinh bởi nguồn, biểu thức chính quy, sơ đồ sinh và chùm đầu
Cuối cùng là phần kết luận, danh sách các công trình khoa học đã công
bố của nghiên cứu sinh liên quan đến luận án và danh sách các tài liệu tham khảo
Trang 1215
Chương 1
CÁC KHÁI NIỆM CƠ SỞ
Trong chương này, chúng tôi nhắc lại một số khái niệm và các kết quả rất cơ bản của lý thuyết đồ thị, lý thuyết ngôn ngữ hình thức và otomat cùng khái niệm mạng Petri, hệ mạng điều kiện - biến cố và hệ mạng vị trí - chuyển Những khái niệm này được trích dẫn từ các tài liệu [1,4,8,12,23,29,49] và là các công cụ để xây dựng lên các kết quả được trình bày ở hai chương sau của bản luận án
1.1 ĐẠI CƯƠNG VỀ ĐỒ THỊ
Lý thuyết đồ thị là một ngành khoa học phát triển rất sớm và trở thành công cụ hữu ích cho sự phát triển của nhiều ngành khoa học khác Với trực quan hình học, lý thuyết đồ thị đã giúp chúng ta thiết kế và phân tích nhiều thuật toán lớn để giải quyết các bài toán phức tạp
1.1.1 Định nghĩa đồ thị
Định nghĩa 1.1: Đồ thị là một cặp G = (V, E), trong đó:
1) V là tập hợp các đỉnh,
2) E V V, là tập hợp các cạnh
Trang 13Giữa hai đỉnh của một đồ thị có thể có nhiều cạnh nối chúng Đồ thị
mà mỗi cặp đỉnh được nối với nhau không quá một cạnh, được gọi là đơn đồ
thị (và gọi tắt là đồ thị) Đồ thị có những cặp đỉnh được nối với nhau nhiều hơn một cạnh được gọi là đa đồ thị
Nếu (a, b) là một cạnh của đồ thị thì ta nói rằng đỉnh b kề với đỉnh a
Do vậy, ta có thể định nghĩa đồ thị bằng ánh xạ kề như sau
Định nghĩa 1.2: Đồ thị là một cặp G = (V, F), trong đó:
1) V là tập hợp các đỉnh,
2) F : V 2V
và được gọi là ánh xạ kề
Ánh xạ kề của đồ thị trong Ví dụ 1.1 được xác định như sau:
F(a) = {b, c}, F(b) = {c}, F(c) = , F(d) = {b, c} và F(e) = {a, b, d}
Sự tương đương của hai định nghĩa của đồ thị được thể hiện bằng mệnh đề sau đây: x, y V : (x, y) E y F(x)
Về bản chất, đồ thị là một tập hợp các đối tượng được biểu diễn bằng các đỉnh và giữa các đối tượng này có một quan hệ nhị nguyên biểu diễn
bằng các cạnh Cặp đỉnh (x, y) E không sắp thứ tự được gọi là cạnh vô
b
Trang 1417
hướng, còn nếu nó có sắp thứ tự thì được gọi là cạnh có hướng Cạnh có hướng còn được gọi là cung của đồ thị Người ta thường phân các đồ thị
thành hai lớp
Định nghĩa 1.3: Đồ thị chỉ chứa các cạnh vô hướng được gọi là đồ thị vô
hướng còn đồ thị chỉ chứa các cạnh có hướng (cung) được gọi là đồ thị có hướng
1.1.2 Đường đi trên đồ thị
Giả sử G = (V, E) là một đồ thị
Định nghĩa 1.4: Đường đi trên đồ thị G là một dãy các đỉnh của đồ thị: < x 1 ,
x 2 , , x i , x j+1 , , x k-1 , x k > sao cho, mỗi đỉnh trong dãy (không kể đỉnh đầu tiên) kề với đỉnh trước nó bằng một cạnh nào đó, nghĩa là:
i = 2, 3, , k-1, k : (x i-1 ,x i) E
Ta nói rằng đường đi này đi từ đỉnh đầu x1 đến đỉnh cuối x k Số cạnh
của đường đi được gọi là độ dài của đường đi
1.1.3 Một số cách biểu diễn đồ thị trong máy tính
a) Biểu diễn đồ thị bằng ma trận kề
Giả sử G = (V, E) là một đồ thị có n đỉnh Ta đánh số các đỉnh của đồ thị bằng các số tự nhiên: 1, 2, , n Xây dựng ma trận vuông A cấp n biểu
Trang 1518
Hình 1.2 Đa đồ thị có hướng và ma trận kề tương ứng
b) Biểu diễn đồ thị bằng các danh sách kề
Với mỗi đỉnh của đồ thị ta xây dựng một danh sách liên kết chứa các đỉnh kề với đỉnh này Danh sách này được gọi là danh sách kề Một đồ thị
được biểu diễn bằng một mảng các danh sách kề
Ví dụ 1.3: Biểu diễn mảng các danh sách kề của đồ thị G trong Ví dụ 1.2
Hình 1.3 Mảng các danh sách kề biểu diễn đồ thị
1.1.4 Bài toán tìm đường đi trên đồ thị
Bài toán: Cho đồ thị G và hai đỉnh a, b thuộc G Có hay không một đường đi
từ đỉnh a đến đỉnh b trên đồ thị G?
Dựa vào các kết quả đã có, chúng ta xây dựng thuật toán sau đây để
giải bài toán trên
Thuật toán 1.1 (Xác định đường đi) [4,12]
Đầu vào: Đồ thị G = (V, E) và ha đỉnh a, b thuộc V
Đầu ra: Câu trả lời: ”có / không”
1) Xây dựng ma trận kề A cho đồ thị G
Trang 1619
2) Tính ma trận tổng các luỹ thừa T = A1 + A2 + + A n-1.
3) Nếu T[a,b] 1 thì kết luận là có đường đi từ đỉnh a đến đỉnh b, ngược
lại thì kết luận là không có
Hiển nhiên, thuật toán trên có độ phức tạp là O(n4)
1.1.5 Đồ thị gán nhãn
Giả sử G = (V, E) là một đồ thị và L là một tập hợp không rỗng nào đó
Hàm n : E L được gọi là hàm gán nhãn trên các cạnh của đồ thị đã cho
Khi đó, mỗi cạnh e E sẽ được gán nhãn n(e) L Đồ thị G với các cạnh
được gán nhãn được gọi là đồ thị gán nhãn
Ví dụ 1.4: Đồ thị được gãn nhãn là các số tự nhiên trên các cạnh
Hình 1.4 Đồ thị gán nhãn Đường đi trên đồ thị gãn nhãn được biểu diễn chi tiết hơn Cụ thể là:
Định nghĩa 1.5: Đường đi trong đồ thị gán nhãn là một dãy các đỉnh và các
nhãn: < x 1 , l 12 , , x 2 , l 23 , x i , l i i+1 , x j+1 , , x k-1 , l k-1 k , x k > sao cho, mỗi đỉnh
trong dãy (không kể đỉnh đầu tiên) kề với đỉnh trước nó bằng một cạnh nào
đó có nhãn tương ứng, nghĩa là: i = 2, 3, , k-1, k : (x i-1 , x i) E và
n((x i-1 , x i )) = l i-1 i
Ta nói rằng đường đi này đi từ đỉnh đầu x 1 đến đỉnh cuối x k với dãy nhãn là = l12 l 23 l k-1 k
Trang 1720
Người ta thường viết: x x k
1 Nghĩa là, trên đường đi từ đỉnh x 1 đến
đỉnh x k ta nhận được từ tạo bởi dãy các nhãn trên mỗi cạnh
Để biểu diễn các nhãn trên các cạnh của một đồ thị được gán nhãn ta thực hiện như sau:
- Trong ma trận kề: phần tử A[i,j] chứa nhãn của cạnh nối đỉnh i với đỉnh j
- Trong biểu diễn mảng các danh sách kề: tại mỗi phần tử của danh sách ta thêm vào một trường mới chứa nhãn của cạnh nối từ đỉnh tương ứng với danh sách tới đỉnh nằm trong phần tử này
Thuật toán xác định đường đi trên đồ thị gán nhãn giúp ta xác định các quá trình của một hệ thống khi hành vi của nó được biểu diễn bởi đồ thị gán nhãn có hướng (Chương 2)
1.1.6 Các thuật toán duyệt đồ thị
Phép duyệt đồ thị là một cách liệt kê tất cả các đỉnh của đồ thị này
thành một danh sách tuyến tính Nói một cách khác, phép duyệt đồ thị cho ta một cách “đi qua” tất cả các đỉnh của đồ thị để truy nhập, thêm bớt thông tin
ở các đỉnh của đồ thị này Với các đồ thị không liên thông thì thuật toán sẽ duyệt lần lượt từng mảng liên thông và kết quả sẽ là danh sách ghép của các danh sách các đỉnh trong từng mảng liên thông của đồ thị đã cho Các thuật toán duyệt đồ thị đã được trình bày trong [4,12,23] Chúng tôi nhắc lại các thuật toán này để sử dụng trong các thuật toán điều khiển tương tranh sẽ được
trình bày ở Chương 2
a) Thuật toán duyệt đồ thị tổng quát
Giả sử G là một đồ thị đã cho Ký hiệu DS là một cấu trúc dữ liệu kiểu danh sách dùng để chứa các đỉnh của đồ thị, L là một danh sách dùng để lưu
Trang 1821
dãy các đỉnh Thuật toán tổng quát duyệt đồ thị được trình bày sơ lược như sau
Thuật toán 1.2 (Duyệt đồ thị) [4,12]
Đầu vào: Đồ thị G = (V, F) được cho dưới dạng ánh xạ kề
Đầu ra: Danh sách L chứa tất cả các đỉnh của đồ thị G
1) Đánh dấu “chưa duyệt” cho mọi đỉnh v V ;
2) Khởi tạo danh sách L rỗng, L ;
3) Với mỗi đỉnh v V, nếu v chưa được duyệt thì thực hiện vòng lặp sau:
4) Khởi tạo danh sách DS rỗng, DS ;
5) Nạp đỉnh v vào danh sách DS ;
6) Lấy đỉnh x ở đầu danh sách DS và loại nó ra khỏi danh sách ;
7) Duyệt đỉnh x ;
8) Thêm x vào cuối danh sách L, L L x ;
9) Đổi thành dấu “đã duyệt” cho đỉnh x ;
10) Nạp các đỉnh chưa được duyệt trong tập đỉnh kề F(x) vào danh sách
DS ;
11) Nếu DS thì quay lên bước 5) ngược lại thì quay lên đầu vòng lặp ở bước 3) ;
12) Khi hết đỉnh để duyệt thì in danh sách L và dừng
Chúng ta sẽ chi tiết hoá thuật toán duyệt tổng quát này
b) Duyệt đồ thị theo chiều sâu
Nếu trong thuật toán tổng quát trên, danh sách DS được tổ chức theo kiểu
stack (danh sách vào sau - ra trước) thì ta có phương pháp duyệt theo chiều
sâu Trong phương pháp này mỗi lần duyệt một đỉnh ta duyệt đến tận cùng mỗi nhánh rồi mới chuyển sang duyệt nhánh khác Chúng ta dùng stack S để lưu trữ các đỉnh đang duyệt Ta có thuật toán duyệt theo chiều sâu sau đây:
Trang 1922
Thuật toán 1.3 (Duyệt đồ thị theo chiều sâu) [12,23]
Dữ liệu: Mảng các danh sách kề DK của đồ thị G
Kết quả: Danh sách L tất cả các đỉnh của đồ thị G
Trang 2023
24 for v V do
25 if NOT Duyet [v] then D_SAU (v) ;
26 END
Độ phức tạp của thật toán duyệt theo chiều sâu
Vòng lặp 24) có độ phức tạp là O(n) Với mỗi đỉnh v V thủ tục D_SAU được gọi đúng một lần có độ phức tạp là O(|DK[v]|) Mà
c) Duyệt đồ thị theo chiều rộng
Nếu trong thuật toán duyệt đồ thị tổng quát cấu trúc danh sách DS được
tổ chức theo kiểu hàng đợi (danh sách vào trước - ra trước) thì ta có phương
pháp duyệt theo chiều rộng Trong phương pháp này việc duyệt có tính chất
“lan rộng” Một đỉnh được duyệt xong ngay sau khi ta đã xét hết tất cả các đỉnh kề với nó Đỉnh được xét càng sớm thì sớm trở thành duyệt xong Ta sử dụng hàng đợi Q để lưu trữ các đỉnh đang được duyệt và thuật toán duyệt đồ thị theo chiều rộng được trình bày chi tiết như sau
Thuật toán 1.4 (Duyệt đồ thị theo chiều rộng) [12,23]
Trang 2124
Dữ liệu: Mảng các danh sách kề DK của đồ thị G
Kết quả: Danh sách L tất cả các đỉnh của đồ thị G
Trang 2225
Độ phức tạp của thật toán duyệt theo chiều rộng
Tương tự như phân tích độ phức tạp của thuật toán duyệt đồ thị theo chiều sâu, thuật toán duyệt đồ thị theo chiều rộng cũng có độ phức tạp là:
O(n+m)
Ví dụ 1.6: Đồ thị trong Ví dụ 1.5 được duyệt theo chiều rộng
Hình 1.6 Thứ tự của các đỉnh được duyệt theo chiều rộng
Đồ thị và các khái niệm của nó thường được dùng để mô tả hình học các tình huống, sự kiện, cấu trúc và hệ thống … Các phần tiếp theo của luận
án sẽ ứng dụng đồ thị để phân tích và điều khiển tương tranh trên hệ thống, đặc biệt là các thuật toán tìm đường đi và duyệt đồ thị Do vậy, chúng tôi nhắc lại định nghĩa của một số hệ thống mà chúng tôi đang nghiên cứu
1.2 NGÔN NGỮ HÌNH THỨC VÀ OTOMAT
1.2.1 Bảng chữ cái, từ và ngôn ngữ
Một tập các ký hiệu được gọi là bảng chữ cái Mỗi ký hiệu trong bảng
được gọi là một chữ cái
Chẳng hạn, 1 = {0,1} hoặc 2 = {a,b,c, } là các bảng chữ cái
Từ là một dãy các chữ cái thuộc một bảng chữ cái nào đó Ví dụ, w =
101000101 là một từ trên bảng chữ cái 1
Độ dài của từ , ký hiệu bởi ||, là số các vị trí của những chữ cái tạo nên từ Chẳng hạn, |w| = 9
Trang 2326
Tích ghép của hai từ và , ký hiệu là ., là xâu đƣợc tạo thành bằng cách ghép vào ngay sau
Ngôn ngữ là tập hợp các từ trên một bảng chữ cái nào đó
Ký hiệu * là ngôn ngữ bao gồm tất cả các từ trên bảng chữ cái , còn
+ là ngôn ngữ bao gồm tất cả các từ không rỗng trên bảng chũ cái
Hiển nhiên, = + {}, trong đó là ký hiệu từ rỗng
1.2.2 Các phép toán trên ngôn ngữ
1) Tích ghép của hai ngôn ngữ L1 và L2 trên cùng bảng chữ cái , ký hiệu là L1.L2, là một ngôn ngữ trên và đƣợc xác định nhƣ sau:
5) Phần bù của ngôn ngữ L trên bảng chữ cái là ngôn ngữ trên bảng
chữ cái , ký hiệu là C(L) và đƣợc xác định nhƣ sau:
= L.Li-1 , i 1
Trang 2427
7) Lặp cắt của ngôn ngữ L trên bảng chữ cái là ngôn ngữ trên , ký
hiệu là L+, đƣợc xác định bởi: L+ = L1 L2
Hiển nhiên, L+ = L* \ {}
1.2.3 Một số công cụ sinh ngôn ngữ chính quy và mối quan hệ giữa chúng
Ngôn ngữ chính quy đƣợc sinh ra từ một số công cụ nhƣ: văn phạm
chính quy, otomat hữu hạn, nguồn …
a) Văn phạm chính quy
Định nghĩa 1.6: Văn phạm là bộ bốn G = (, V, P, S), trong đó:
- là bảng chữ cái chính,
- V là bảng chữ cái phụ,
- S là một chữ cái phụ và đƣợc gọi là ký hiệu khởi đầu,
- P là tập hữu hạn các quy tắc sinh có dạng , với , ( V)* và , đồng thời từ phải chứa chữ cái phụ Ký hiệu không
thuộc bảng chữ cái V
Ví dụ 1.7: Cho văn phạm sau đây:
G1 = ({a,b,c}, {S,X,Y,Z}, P, S ), với:
P = {S XYc , S YXcc , X YZ , Z ac , Y Xa , cXYa caa}
Giả sử G = (, V, P, S) là một văn phạm và hai từ x, y (V)*
Ta nói rằng từ x dẫn trực tiếp ra từ y, ký hiệu x y, nếu tồn tại các từ
x 1 , x 2 , u, v (V)* sao cho x = x 1 u x 2 , y = x 1 v x 2 và u v là một quy tắc
dẫn xuất trong P
Ta nói rằng từ x dẫn ra từ y, ký hiệu x * y, nếu tồn tại một dãy các từ
x 0 , x 1 , , x k (V)* với k 0, sao cho: x 0 = x, x k = y và x i xi+1, với 0 i
k-1
Ngôn ngữ L(G) sinh bởi văn phạm G đƣợc định nghĩa nhƣ sau:
Trang 25}, trong đó từ w^ là đảo ngƣợc của từ w
Văn phạm phi ngữ cảnh mở rộng là văn phạm phi ngữ cảnh có chứa quy tắc rỗng
Ví dụ 1.10: Văn phạm phi ngữ cảnh mở rộng
G4 = ({a,b,c}, {S,X,Y,Z}, P, S ) với:
P = {S XYc, S YXcc, X YZ, Z ac, Y Xa, Y }
Trang 2629
Văn phạm phi ngữ cảnh mà mỗi quy tắc của nó có vế phải chứa không
quá một ký hiệu phụ được gọi là văn phạm tuyến tính Ngôn ngữ sinh bởi văn phạm tuyến tính được gọi là ngôn ngữ tuyến tính
Ví dụ 1.11: Văn phạm tuyến tính
G5 = ({a,b,c}, {S,X,Y,Z}, P, S ), với:
P = {S Yc, S Xcc, X cYc, Z ac, Y Xa, Y , X a}
Văn phạm tuyến tính phải mà mỗi quy tắc của nó có dạng: A aB hoặc A a với A, B V và a được gọi là văn phạm chính quy Ngôn
ngữ sinh bởi văn phạm chính quy được gọi là ngôn ngữ chính quy
Ví dụ 1.12: Xét văn phạm chính quy sau đây:
G6 = ({a,b}, {S,B}, P, S), với P = {S aS, S aB, B bB, B
b}
Văn phạm này sinh ra ngôn ngữ chính quy:
L(G6) = {a m b n m, n 1}
N Chomsky đã phân các văn phạm thành 4 lớp như sau:
- Lớp văn phạm loại 0 : bao gồm các văn phạm tổng quát
- Lớp văn phạm loại 1 : bao gồm các văn phạm cảm ngữ cảnh
- Lớp văn phạm loại 2 : bao gồm các văn phạm phi ngữ cảnh
- Lớp văn phạm loại 3 : bao gồm các văn phạm chính quy
Lớp có số hiệu bé chứa các lớp có số hiệu lớn hơn
b) Nguồn và một số thuật toán trên nguồn
Nguồn là một công cụ sinh ngôn ngữ dựa trên lý thuyết đồ thị [8,36] và được định nghĩa như sau
Định nghĩa 1.7: Nguồn là một đa đồ thị có hướng gán nhãn I = (V, E, s 0, F,
, n), gồm V là tập các đỉnh và E là tập các cung Trên đồ thị có một đỉnh đặc
Trang 2730
biệt s 0 gọi là đỉnh vào và đặt trong ô tròn có mũi tên, một tập con F các đỉnh được gọi là các đỉnh kết thúc và đặt trong các ô hình chữ nhật Hàm gán nhãn
n : E {} gán cho mỗi cung của đồ thị một chữ cái thuộc tập {}
Cung của nguồn I mà trên đó gán ký hiệu rỗng được gọi là cung
rỗng Cung trên đó gán một chữ cái thuộc bảng chữ cái được gọi là cung
cốt yếu Đỉnh có cung cốt yếu đi vào hoặc đi ra được gọi là đỉnh cốt yếu Ký
hiệu tập các đỉnh cốt yếu của nguồn I là D(I)
Ví dụ 1.13: Xét nguồn I1 = (V, E, s 0, F, , n) như sau:
Hình 1.7: Nguồn I1
Nguồn được gọi là đơn định nếu nó không chứa cung rỗng và hai cung
tuỳ ý xuất phát từ cùng một đỉnh phải được gán hai nhãn khác nhau, ngược
lại được gọi là nguồn không đơn định Nguồn được gọi là đầy đủ nếu với mỗi
ký hiệu a thì tại mỗi đỉnh của nguồn I đều có cung đi ra mà trên cung đó gán nhãn là ký hiệu a
Ngôn ngữ sinh bởi một nguồn được xác định như sau:
Giả sử I là một nguồn trên bảng chữ cái và x, y là hai đỉnh thuộc
nguồn I Giả sử d = < x, s 1 , s 2 , , s n , y > là một đường đi nào đó trên nguồn
từ đỉnh x tới đỉnh y Trên cung (x, s 1 ) có nhãn là chữ cái a 1 , trên cung (s 1 , s 2)
có nhãn là chữ cái a 2 , trên cung cuối cùng có nhãn là chữ cái a n+1 , với a i ( {}), 1 i n+1 Khi đó, từ w = a 1 a 2 … a n a n+1 được gọi là từ sinh bởi
đường đi d
Trang 2831
Ký hiệu LI(x, y) là tập tất cả các từ được sinh bởi các đường đi từ đỉnh
x tới đỉnh y Tập LI(x, y) được xác định đệ quy như sau:
1) LI(x, y)
2) Nếu từ w LI(x, z) và từ đỉnh z sang đỉnh y có cung với nhãn là chữ cái a ({}) thì từ wa LI(x, y)
Định nghĩa 1.8: Tập L(I) = {w * w LI(s 0 , s), s F} được gọi là ngôn
ngữ sinh bởi nguồn I
Hai nguồn được gọi là tương đương nếu chúng sinh ra cùng một ngôn ngữ
Chúng tôi nhắc lại một số phép toán trên nguồn Các phép toán này được thể hiện bằng các thuật toán, đã được trình bày trong [8] và sẽ được sử dụng trong Chương 3 của luận án
Giả sử đã cho một nguồn I không đơn định trên bảng chữ cái Chúng
ta cần phải xây dựng nguồn K đơn định, đầy đủ trên bảng chữ cái tương đương với nguồn I
Thuật toán 1.5 (Đơn định và đầy đủ hoá nguồn) [8]
Dữ liệu: Nguồn I không đơn định trên bảng chữ cái
Kết quả: Nguồn K đơn định, đầy đủ trên bảng chữ cái tương đương với nguồn I
1) Với mỗi chữ cái a và mỗi đỉnh s V(I) ta xây dựng tập hợp:
TI(s,a) = {u D(I) a LI(s, u)}, trong đó D(I) là tập các đỉnh cốt yếu
của nguồn I
Trang 2932
2) Với mỗi tập con các đỉnh cốt yếu C D(I) và mỗi a , ta xây dựng tập: HI(C, a) = T ( a s, )
C s II
Tập này chính là tập các đỉnh cốt yếu kề với
đỉnh thuộc C nhờ các cung trong I có nhãn là a
3) Xây dựng nguồn đơn định K= (VK, EK, s 0 K, FK, , nK
) như sau:
- Tập các đỉnh của nguồn K là VK = 2V(I) – tập các tập con các đỉnh của nguồn I
- Đỉnh vào của K là đỉnh s 0 K = {s 0 }, với s 0 là đỉnh vào của nguồn I
- Tập các cung gán nhãn EK của nguồn K được xác định như sau: Với mỗi đỉnh C D(I) ta xác định đỉnh HI(C, a) và vẽ một cung đi từ đỉnh C sang
đỉnh HI(C, a) với nhãn là chữ cái a
- Tập đỉnh kết thúc FK = {C V(I) C F(I) }
Với cách xây dựng trên thì nguồn K là đơn định, đầy đủ và tương đương với nguồn I đã cho
Chú ý: Nếu trong quá trình xây dựng ta loại các đỉnh không cốt yếu khỏi tập
đỉnh của nguồn K thì nguôn K là đơn định nhưng chưa chắc đã đầy đủ
Ví dụ: 1.14: Nguồn đơn định, đầy đủ K tương đương với nguồn I trong Ví dụ 1.13 được xây dựng theo thuật toán trên
Trang 3033
Hình 1.8: Nguồn đơn định đầy đủ K1
Định nghĩa 1.9: Nguồn K trên bảng chữ cái sinh ra ngôn ngữ là phần bù
của ngôn ngữ L(I) đƣợc gọi là nguồn bù của nguồn I Nghĩa là, L(K) =
C(L(I))
Việc tìm nguồn bù của một nguồn đã cho đƣợc thực hiện nhờ thuật toán sau đây
Thuật toán 1.6 (Xây dựng nguồn bù) [8]
Dữ liệu: Nguồn I không đơn định trên bảng chữ cái
Kết quả: Nguồn K đơn định, đầy đủ trên bảng chữ cái là nguồn bù của nguồn I
Ta đổi tất cả các đỉnh không kết thúc thành đỉnh kết thúc và ngƣợc lại đổi đỉnh kết thúc thành đỉnh không kết thúc thì nguồn nhận đƣợc sẽ sinh ngôn ngữ bù của ngôn ngữ sinh bởi nguồn ban đầu
Ví dụ 1.15: Nguồn K2 là nguồn bù của nguồn K1 ở Ví dụ 1.14 Nó sinh ra ngôn ngữ bù của ngôn ngữ sinh bởi nguồn K1
Hình 1.9: Nguồn K2 là nguồn bù của nguồn K1
Giả sử có các nguồn I1 và I2 Ta cần xây dựng nguồn I sinh ra ngôn ngữ
là giao của các ngôn ngữ do I1, I2 sinh ra Nghĩa là, L(I) = L(I1) L(I2)
Trang 3134
Khi đó, nguồn I đƣợc gọi là nguồn giao của các nguồn I1 và I2 Ta cũng
ký hiệu một cách hình thức I = I1 I2
Thuật toán 1.7 (Xây dựng nguồn giao) [8]
Dữ liệu: Hai nguồn I1 và I2 cùng trên bảng chữ cái
Kết quả: Nguồn I trên bảng chữ cái là nguồn giao của I1 và I2
1) Đỉnh vào của nguồn I là: s 0 (I) = ({s 0(I1)}, {s 0(I2)})
2) Giả sử B = (C1, C2), trong đó C1 D(I1), C2 D(I2) là các tập con
các đỉnh cốt yếu và a là chữ cái thuộc Khi đó, ta xác định đỉnh C = (HI1(C1,a), HI2(C2,a)) và thêm một cung đi từ đỉnh B sang đỉnh C với nhãn là chữ cái a
3) Đỉnh (S, R) nào đó trong tập đỉnh của nguồn I vừa xây dựng đƣợc xem là đỉnh kết thúc khi và chỉ khi: S F(I1) và R F( I2 )
Với cách xây dựng nhƣ trên, nguồn I sinh ra ngôn ngữ là giao của các ngôn ngữ do I1 và I2 sinh ra
Với hai nguồn I1 và I2 đã cho, ta cần xây dựng nguồn I sinh ra ngôn ngữ là tích ghép của các ngôn ngữ do I1 và I2 sinh ra Nghĩa là, L(I) = L(I1).L(I2)
Thuật toán 1.8 (Xây dựng nguồn tích ghép) [8]
Dữ liệu: Hai nguồn I1 và I2 cùng trên bảng chữ cái
Kết quả: Nguồn I trên bảng chữ cái là nguồn tích ghép của I1 và I2
1) Lấy đỉnh vào của I1 là đỉnh vào của I
2) Các đỉnh kết thúc của nguồn I2 là các đỉnh kết thúc của nguồn I 3) Từ mỗi đỉnh kết thúc của nguồn I1 ta vẽ một cung rỗng đi tới đỉnh vào của nguồn I2
Với cách xây dựng nhƣ trên, ngôn ngữ sinh bởi nguồn I là tích ghép của ngôn ngữ đƣợc sinh bởi nguồn I1 và nguồn I2
Trang 3235
c) Otomat hữu hạn và ngôn ngữ đƣợc đoán nhận bởi otomat hữu hạn
Otomat hữu hạn là một công cụ đoán nhận các ngôn ngữ chính quy và đƣợc định nghĩa nhƣ sau
Định nghĩa 1.10: Otomat hữu hạn trên bảng chữ cái là một bộ năm: A = (Q, , q0, , F), trong đó:
- Q là một tập hữu hạn các trạng thái,
- là bảng chữ cái vào,
- : Q Q , đƣợc gọi là hàm chuyển trạng thái,
- q 0 Q , đƣợc gọi là trạng thái khởi đầu,
- F Q , đƣợc gọi là tập trạng thái kết thúc của otomat
Theo định nghĩa, mỗi lần đoán nhận một chữ cái otomat hữu hạn A chuyển từ trạng thái này sang một trạng thái xác định khác Do vậy, những
otomat hữu hạn loại này còn đƣợc gọi là otomat hữu hạn đơn định
Ví dụ 1.16: Otomat hữu hạn đơn định A1 đƣợc cho nhƣ sau:
A1 = ({q 0 , q 1 , q 2 , q 3 }, {a, b}, q 0, , {q2}) với hàm chuyển trạng thái là:
a) q Q đặt ’(q, ) = q ;
Trang 3336
b) q Q, a , x * đặt ’(q, xa) = ((q,x),a)
Ngôn ngữ được đoán nhận bởi otomat hữu hạn đơn định
Định nghĩa 1.11: Tập tất cả các từ trên bảng chữ cái vào mà mỗi từ này đƣa otomat A từ trạng thái khởi đầu đến một trong những trạng thái kết thúc:
L(A) = {x * ’(q0 ,x) F},
đƣợc gọi là ngôn ngữ được đoán nhận bởi otomat hữu hạn đơn định A
Ngôn ngữ đƣợc đoán nhận bởi otomat hữu hạn đơn định A1 trong Ví
dụ 1.16 là: L(A1) = {a m b n m, n 1}
Song theo cơ chế chuyển trạng thái của otomat, sau mỗi lần chuyển trạng thái ta có thể nhận đƣợc không chỉ một trạng thái mà là một tập con các trạng thái Những otomat nhƣ vậy đƣợc gọi là otomat hữu hạn không đơn định và đƣợc định nghĩa nhƣ sau
Định nghĩa 1.12: Otomat hữu hạn không đơn định trên bảng chữ cái là một
bộ năm A = (Q, , q0 , , F), trong đó:
- Q là tập hữu hạn các trạng thái,
- là bảng chữ cái vào,
- : Q 2Q
, đƣợc gọi là hàm chuyển trạng thái,
- q 0 Q , đƣợc gọi là trạng thái khởi đầu,
- F Q , đƣợc gọi là tập trạng thái kết thúc của otomat
Ví dụ 1.17: Xét otomat hữu hạn không đơn định
A2 = ({q 0 , q 1 , q 2 , q 3 , q 4 }, {0, 1}, q 0 , , {q2 , q 4}) với hàm chuyển trạng thái là:
q 0 q 1 q 2 q 3 q 4
0 {q 0 ,q 3 } {q 2 } {q 4 } {q 4 }
1 {q 0 ,q 1 } {q 2 } {q 2 } {q 4 }
Trang 3437
Dễ thấy rằng otomat hữu hạn không đơn định A2 đoán nhận ngôn ngữ bao gồm các từ nhị phân có chứa hai chữ số 0 liên tiếp hoặc hai chữ số 1 liên tiếp
Định nghĩa 1.13: Otomat hữu hạn A được gọi là đầy đủ nếu hàm chuyển
trạng thái xác định khắp nơi trên tập Q Nghĩa là:
q Q, a đều có (q,a)
Giả sử A = (Q, , q0, , F) là một otomat hữu hạn không đơn định và
không đầy đủ Chúng ta xây dựng otomat A’ hữu hạn, đơn định và đầy đủ
tương đương với A như sau:
i) Để xây dựng hàm chuyển cho otomat đơn định A’ ta xây dựng hàm
T
) , (
ii) Đặt otomat A’ = (Q’,, q0 ’, f, P) với:
Q’ = 2Q, q 0 ’ = {q 0 }, P = {q’ Q’ q’ F } và hàm chuyển f được xác định như sau: q’ Q’ , a , f(q’,a) = TA(q',a).
Với cách xây dựng như trên, dễ dàng chỉ ra rằng otomat A’ là otomat
hữu hạn đơn định đầy đủ và L(A’) = L(A) Nghĩa là, otomat hữu hạn đơn
định A’ tương đương với otomat hữu hạn không đơn định A
d) Sự tương đương giữa nguồn và otomat hữu hạn
Tập các nguồn và tập các otomat hữu hạn có mối quan hệ chặt chẽ với nhau Cụ thể là, từ mỗi nguồn ta đều có thể xây dựng một otomat hữu hạn tương đương với nó và ngược lại
Trang 3538
Giả sử có nguồn I trên bảng chữ cái Ta cần phải xây dựng otomat A hữu hạn đơn định, đầy đủ, tương đương với nguồn I Để làm việc này ta áp dụng thuật toán sau đây:
Thuật toán 1.9 (Xây dựng otomat tương đương với nguồn) [8]
Dữ liệu: Nguồn I trên bảng chữ cái
Kết quả: Otomat A hữu hạn đơn định, đầy đủ, tương đương với nguồn I
1) Xây dựng hàm TI : 2D(I) 2D(I)
T
) }, ({ 2) Xác định trạng thái khởi đầu và tập trạng thái kết thúc:
- Tập {s 0 } được xem là trạng thái khởi đầu của otomat A, ký hiệu là q 0
- Tập trạng thái kết thúc F là tập {q D(I) q F(I) }{q 0} nếu
L(I) và là tập {q D(I) q F(I) } nếu L(I)
3) Otomat A = (Q, , q0, , F) với Q = 2D(I)
là tập trạng thái và hàm chuyển được xác định như sau: q Q, a : (q,a) = TI(q,a)
Otomat A tương đương với nguồn I đã cho
Bây giờ ta thực hiện điều ngược lại Giả sử A = (Q, , q0, , F) là một otomat hữu hạn đơn định đã cho Ta cần phải xây dựng nguồn I tương đương
với otomat này Để làm điều đó ta thực hiện theo thuật toán dưới đây:
Thuật toán 1.10 (Xây dựng nguồn tương đương với otomat) [8]
Dữ liệu: Otomat A = (Q, , q0, , F) hữu hạn đơn định
Kết quả: Nguồn I trên bảng chữ cái tương đương với otomat A
Trang 362) q, q' Q , a : có cung nối từ đỉnh q sang đỉnh q' gán nhãn là
ký hiệu a q' (q,a)
Nguồn I nhận được tương đương với otomat A đã cho
Các thuật toán trình bày ở trên sẽ được sử dụng trong Chương 3 để xây dựng một số phương pháp đoán nhận ngôn ngữ và -ngôn ngữ cùng với việc đánh giá độ phức tạp otomat cho các phương pháp này
1.3 HỆ MẠNG
Hệ mạng là một mô hình toán học thường được dùng để biểu diễn các
hệ thống phân tán Từ những biểu diễn đó, ta có thể phân tích và điều khiển các quá trình xảy ra trên các hệ thống này Cấu trúc của mỗi một hệ phân tán thường gồm hai phần: phần tĩnh và phần động Phần cấu trúc tĩnh thường được biểu diễn bởi mạng Petri còn cấu trúc động là các thành phần thay đổi được bổ sung theo từng loại hệ mạng để mô tả các lớp các hệ thống phân tán khác nhau
1.3.1 Mạng Petri
Mạng Petri thường được dùng để biểu diễn cấu trúc tĩnh của một hệ thống phân tán và được định nghĩa như sau
Định nghĩa 1.14: Bộ ba N = (S, T; F) được gọi là một mạng Petri nếu:
1) S và T là hai tập hợp không giao nhau
Trang 3740
2) 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
Giả sử N là một mạng Petri Người ta thường viết N thay cho S T
Đó chính là tập các phần tử của mạng N Với mỗi phần tử x N ta ký hiệu:
Định nghĩa 1.15: Mạng N được gọi là đơn giản khi và chỉ khi hai phần tử
khác nhau của mạng đều không có chung tập vào và tập ra, nghĩa là:
Mạng N = (S, T; F), với S = {b 1 ,b 2 ,b 3 ,b 4 , b 5 }, T = {e 1 ,e 2 e 3 , e 4} và F tập các cung
Ta thường gặp các hệ thống được tạo bởi các điều kiện và các biến cố Các điều kiện hoặc thoả mãn hoặc không 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 trạng thái của hệ,
Trang 3841
một số điều kiện nào đó được thoả mãn, số còn lại thì không Một trạng thái
có một số điều kiện thoả mãn, được gọi là một trường hợp Biến cố e có thể xuất hiện trong trường hợp c nếu và chỉ nếu các điều kiện vào của e thoả mãn trong 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 và các điều kiện ra của e bắt đầu thoả mãn
Vì các 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ố nên ta ký hiệu mạng là (B, E; F) thay cho (S, T; F)
Định nghĩa 1.16: 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
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 và chỉ 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 kế tiếp của c Hay nói một cách khá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 ký hiệu: c [ e > c’
Một biến cố của hệ mạng điều kiện - biến cố 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 của biến cố đó và khi ấy các điều kiện sau 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ó 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ệ
Định nghĩa 1.17: Giả sử N = (B, E; F) là một mạng Petri
1) Quan hệ r N 2B 2B
được định nghĩa như sau:
Trang 3942
(c1, c2) rN e E : c1 [ e > c2
và được gọi là quan hệ đạt được tiến trên mạng N
2) Quan hệ R N = (r N rN-1)* là một quan hệ tương đương trên tập 2B và
được gọi là quan hệ đạt được trên mạng N
Giả sử có dãy các biến cố được kích hoạt và xuất hiện kế tiếp trên
mạng N như sau: c0 [ e1 > c1 [ e2 > c2 [ e3 > c3 [ e m > c m Khi đó, các
trường hợp c1, c2, c3, , c m phải thuộc lớp tương đương của quan hệ đạt được
R N chứa c0 Các biến cố e1, e2, e3, , e m xuất hiện một cách tuần tự trong chính lớp tương đương này
1.3.2 Hệ mạng điều kiện - biến cố
Một mạng Petri bao gồm các điều kiện, các biến cố và lưu đồ thì chưa
đủ để mô tả hệ thống Vì vậy ngoài mạng ra ta phải thêm vào tập các trường hợp mà ta muốn xét [49,61,62] Tập các trường hợp C này phải thoả mãn các tính chất sau đây:
1) Nếu biến cố e E được kích hoạt bởi trường hợp c C thì sự xuất
hiện của e phải dẫn tới một trường hợp khác cũng thuộc C Như vậy, các biến
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 sự xuất hiện của
biến cố e 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 hoặc lùi một số lần) thành các trường hợp còn lại trong C
4) Tập C phải đủ rộng để:
Trang 4043
- 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
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, chúng 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
1 Định nghĩa hệ mạng điều kiện - biến cố
Định nghĩa 1.18: Bộ bốn = (B, E; F, C) được gọi là một hệ mạng điều
kiện - biến cố nếu:
1) Bộ ba N = (B, E; F) là một mạng Petri đơn giản, không có phần tử cô lập và B E
không gian các trường hợp C = {{b 1 }, {b 2 ,b 3 }, {b 2 ,b 5 }, {b 3 ,b 4 }, {b 4 ,b 5 }, {b 6}} sinh ra ngôn ngữ L(1) = {e 1 e 2 e 4 , e 1 e 3 e 4}
Ngôn ngữ sinh bởi một hệ mạng điều kiện - biến cố thường là một ngôn ngữ Nó mô tả hành vi tuần tự của hệ thống được biểu diễn bởi hệ mạng