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

ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh

102 422 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 102
Dung lượng 1,06 MB

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

Nội dung

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 1

1.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 2

5

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 4

7

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 5

8

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 6

9

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 7

10

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 8

11

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 9

Mộ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 10

13

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 11

14

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 12

15

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 13

Giữ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 14

17

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 15

18

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 16

19

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 17

20

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 18

21

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 19

22

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 20

23

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 21

24

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 22

25

Độ 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 23

26

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 24

27

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 26

29

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 27

30

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 28

31

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 29

32

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 30

33

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 31

34

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 32

35

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 33

36

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 34

37

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 35

38

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 36

2) 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 37

40

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 38

41

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 39

42

(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 40

43

- 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

Ngày đăng: 09/01/2015, 08:54

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Ba, Ngôn ngữ hình thức, NXB Khoa học và Kỹ thuật, 2002 Sách, tạp chí
Tiêu đề: Ngôn ngữ hình thức
Nhà XB: NXB Khoa học và Kỹ thuật
[2] Phan Đình Diệu, Lý thuyết Otomat và Thuật toán, NXB Đại học và Trung học chuyên nghiệp, 1971 Sách, tạp chí
Tiêu đề: Lý thuyết Otomat và Thuật toán
Nhà XB: NXB Đại học và Trung học chuyên nghiệp
[3] Đỗ Đức Giáo, Đặng Huy Ruận, Ngôn ngữ hình thức, NXB Khoa học và Kỹ thuật, 1991 Sách, tạp chí
Tiêu đề: Ngôn ngữ hình thức
Nhà XB: NXB Khoa học và Kỹ thuật
[4] Nguyễn Hữu Ngự, Lý thuyết Đồ thị, NXB Đại học Quốc gia Hà Nội, 2001 Sách, tạp chí
Tiêu đề: Lý thuyết Đồ thị
Nhà XB: NXB Đại học Quốc gia Hà Nội
[5] Đặng Huy Ruận, Độ phức tạp otomat hữu hạn của dãy biểu thức chính quy suy rộng, Tạp chí Khoa học Đại học Quốc gia Hà Nội, T XI (1), 1995 Sách, tạp chí
Tiêu đề: Độ phức tạp otomat hữu hạn của dãy biểu thức chính quy suy rộng
[6] Đặng Huy Ruận, Phùng Văn ổn, Độ phức tạp otomat hữu hạn đoán nhận siêu ngôn ngữ chính quy, Tạp chí Tin học và Điều khiển học, Tập 14, Số 4, 1998, trang 25-30 Sách, tạp chí
Tiêu đề: Độ phức tạp otomat hữu hạn đoán nhận siêu ngôn ngữ chính quy
[7] Đặng Huy Ruận, Lý thuyết Đồ thị và Ứng dụng, NXB Khoa học và Kỹ thuật, 2001 Sách, tạp chí
Tiêu đề: Lý thuyết Đồ thị và Ứng dụng
Tác giả: Đặng Huy Ruận
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2001
[8] Đặng Huy Ruận, Lý thuyết Ngôn ngữ hình thức và Otomat, NXB Đại học Quốc gia Hà Nội, 2002 Sách, tạp chí
Tiêu đề: Lý thuyết Ngôn ngữ hình thức và Otomat
Nhà XB: NXB Đại học Quốc gia Hà Nội
[9] Đặng Huy Ruận, Otomat hữu hạn hai phía, Tạp chí Tin học và Điều khiển học, Tập 19, Số 1, 2003, trang 1-5 Sách, tạp chí
Tiêu đề: tomat hữu hạn hai phía
[10] A. Saloma, Nhập môn tin học, lý thuyết tính toán và các otomat, NXB Khoa học và Kỹ thật, 1992 (bản dịch tiếng Việt của Nguyễn Xuân My) Sách, tạp chí
Tiêu đề: Nhập môn tin học, lý thuyết tính toán và các otomat
Nhà XB: NXB Khoa học và Kỹ thật
[11] Hoàng Chí Thành, Các thuật toán tìm dạng chuẩn của vết và vết đồng bộ, Tạp chí Tin học và Điều khiển học, Tập 17, Số 1, 2001, trang 72-77 Sách, tạp chí
Tiêu đề: Các thuật toán tìm dạng chuẩn của vết và vết đồng bộ
[12] Hoàng Chí Thành, Đồ thị và các thuật toán, NXB Giáo dục, 2007. Tài liệu tham khảo tiếng Anh Sách, tạp chí
Tiêu đề: Đồ thị và các thuật toán
Tác giả: Hoàng Chí Thành
Nhà XB: NXB Giáo dục
Năm: 2007
[13] J. I. Aalbersberg and G. Rozenberg, Theory of Traces, Theoretical Computer Science, Nr. 60, 1988, pp. 1-82 Sách, tạp chí
Tiêu đề: Theory of Traces
[14] Pham Tra An, A complexity characteristic of Petri net languages, Acta Mathematica Vietnamica, 24 (2), 1999, pp. 157-167 Sách, tạp chí
Tiêu đề: A complexity characteristic of Petri net languages
[15] A. Arnold, A syntactic congruence for rational  -languages, Theoretical Computer Science, Vol. 39, 1995, pp. 333-335 Sách, tạp chí
Tiêu đề: A syntactic congruence for rational ""-languages
[16] A. Arnold. Deterministic and non-ambiguos rational  -languages. Lecture Notes in Computer Science, Nr. 192, 1995, pp. 138-146 Sách, tạp chí
Tiêu đề: Deterministic and non-ambiguos rational " "-languages
[17] J. Berstel, Properties of infinitive words: recent results, Proceedings of the Annual IEEE Symposium, 1989 Sách, tạp chí
Tiêu đề: Properties of infinitive words: recent results
[18] E. Best, Concurrent behaviour: sequences, processes and axioms, Lecture Notes in Computer Science, Nr. 197, 1984, pp. 221-279 Sách, tạp chí
Tiêu đề: Concurrent behaviour: sequences, processes and axioms
Tác giả: E. Best
Nhà XB: Lecture Notes in Computer Science
Năm: 1984
[19] W. Brauer, W. Reisig and G. Rozenberg (Eds.), Petri Nets: Central models and their properties, Lecture Notes in Computer Science, Nr. 254, Springer-Verlag, Berlin - 1987 Sách, tạp chí
Tiêu đề: Petri Nets: Central models and their properties
[20] J. R. Buchi, On a decision method in restrictrd second order arithmetic, Logic Methodology and Philosophy of Science, Standford Uniuersity Press, 1962, pp. 1-11 Sách, tạp chí
Tiêu đề: On a decision method in restrictrd second order arithmetic
Tác giả: J. R. Buchi
Nhà XB: Logic Methodology and Philosophy of Science
Năm: 1962

HÌNH ẢNH LIÊN QUAN

Đồ thị G cho ở Hình 1.1 có tập các đỉnh V = {a, b, c, d, e} và tập các  cạnh    E = {(a, b), (a, c), (b, c), (d, b), (d, c), (e, a), (e, b), (e, d)} - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
th ị G cho ở Hình 1.1 có tập các đỉnh V = {a, b, c, d, e} và tập các cạnh E = {(a, b), (a, c), (b, c), (d, b), (d, c), (e, a), (e, b), (e, d)} (Trang 13)
Hình 1.2. Đa đồ thị có hướng và ma trận kề tương ứng - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
Hình 1.2. Đa đồ thị có hướng và ma trận kề tương ứng (Trang 15)
1.1.5. Đồ thị gán nhãn - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
1.1.5. Đồ thị gán nhãn (Trang 16)
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 - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
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 (Trang 22)
Hình 1.7: Nguồn I 1 - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
Hình 1.7 Nguồn I 1 (Trang 27)
Hình 1.9: Nguồn K 2  là nguồn bù của nguồn K 1 - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
Hình 1.9 Nguồn K 2 là nguồn bù của nguồn K 1 (Trang 30)
Hình 1.11. Một hệ mạng vị trí - chuyển - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
Hình 1.11. Một hệ mạng vị trí - chuyển (Trang 43)
Hình 2.2. Đồ thị các trường hợp của hệ mạng  - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
Hình 2.2. Đồ thị các trường hợp của hệ mạng  (Trang 50)
Hình  3.3. Sơ đồ sinh không chứa cung bù với c j  là cung lấy tiền tố - ứng dụng lý thuyết đồ thị để khảo sát đặc trưng một số lớp ngôn ngữ và điều khiển tương tranh
nh 3.3. Sơ đồ sinh không chứa cung bù với c j là cung lấy tiền tố (Trang 82)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

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