Ứ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
Trang 1Các thuật toán biến đổi các quá trình tuần tự thành các quá trình tương
tranh được trình bày trong luận án là khá chi tiết, đánh giá được độ phức tạp
tính toán và dễ dàng cài đặt trên máy tính
3) Tính toán 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
Những kết quả đạt được của luận án có thể phát triển cho các mô hình
biểu diễn khác của hệ thống như: hệ mạng theo thời gian, hệ thống công
nghệ thông minh, otomat vào - ra, otomat sác xuất và có thể áp dụng vào
thực tế như: điều khiển tối ưu các dây chuyền sản xuất công nghiệp, điều
khiển các giao tác trong tìm kiếm và khai phá dữ liệu trong các cơ sở dữ liệu
lớn
Đó cũng là những ý tưởng mà tác giả dự định nghiên cứu trong thời
gian sắp tới
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 Nó đã trở thành công cụ đắc lực cho việc thiết kế các thuật toán, mô hình hình học và phân tích các hệ thống, biểu diễn các quá trình của hệ thống
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 nội dung 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 bởi I J Aalbersberg, G Rozenberg nhờ ngôn ngữ vết và bởi Hoàng Chí Thành nhờ phép đẩy trái Những kết quả này gợi
ý cho tác giả ứ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 hành vi tuần tự của hệ 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 sẽ giúp ta hữu hạn hoá đồ thị biểu diễn hành vi của hệ
Để đ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 và 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ữ 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ữ chính quy 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 M Linna đã xác định độ phức tạp otomat cho các thuật toán đoán nhận các ω-ngôn ngữ phi ngữ cảnh Đô phức tạp otomat của một số ngôn ngữ cũng được nghiên cứu bởi Đặng Huy Ruận, Đỗ Long Vân và Phan Trung Huy ở Việt Nam, việc nghiên cứu điều khiển hệ thống tương tranh và độ phức tạp của ngôn ngữ hình thức được tập trung nghiên cứu tại Viện Toán học và Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội 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
Trang 2hệ mạng điều kiện - biến cố và trên các hệ mạng vị trí - chuyển Tác giả
cũng sử dụng đồ thị để biểu diễn một số công cụ sinh ra ngôn ngữ như:
nguồn, biểu thức chính quy, đồ thị sinh, sơ đồ sinh và chùm đầu và
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ữ sinh bởi các công cụ này rất có ý
nghĩa
Trong bản luận án này chúng tôi đã đóng góp được những kết quả
chính sau đây:
1) Mô tả bài toán điều khiển tương tranh các quá trình trên một hệ
thống
2) Xây dựng đồ thị các trường hợp và ứng dụng nó để xây dựng
thuật toán điều khiển tương tranh các quá trình trên hệ mạng
điều kiện - biến cố
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 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
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
1.1 Đại cương về đồ thị
1.1.1 Định nghĩa đồ thị
Định nghĩa 1.1: Đồ thị là một cặp G = (V, E), trong đó: V là tập hợp các
đỉnh và E ⊆ V ì V là tập hợp các cạnh
Hai đỉnh cùng nằm trên một cạnh được gọi là kề nhau 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 đó: V là tập hợp các
đỉnh và F : V → 2V , được gọi là ánh xạ kề
Ký hiệu số đỉnh của một đồ thị là n và số cạnh của đồ thị là m
1.1.2 Đường đi và chu trình
Định nghĩa 1.4: Đường đi trong đồ 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
Chu trình là một đường đi khép kín
1.1.3 Một số cách biểu diễn đồ thị trong máy tính
đỉnh trong tập q nhờ các cung cốt yếu có nhãn là {a} Đặt f(q,a) =
g(TIi (q,a))
- Trạng thái kết thúc: trạng thái q ≠ q 0 được xem là trạng thái kết thúc của otomat Ai nếu tồn tại ít nhất một từ p sao cho p ∈ L(Ii) và gi(p) = q Trạng thái q 0 cũng được xem là trạng thái kết thúc nếu ε ∈ L(Ii)
Bước 3: Chứng minh sự tương đương của otomat với chùm đầu
Ta chứng minh rằng L(Ai) = L(Ii)
Tổng kết lại, ta có định lý sau đây
Định lý 3.18: Với mọi chùm đầu I ta đều có thể xây dựng otomat hữu hạn
đơn định A tương đương với nó với số trạng thái không vượt quá
| ) (
|
22
+
Vậy cận trên độ phức tạp otomat của chùm đầu I là
| ) (
|
22
+
Phần KếT luận Bằng cách sử dụng các công cụ của lý thuyết đồ thị chúng tôi đã xây dựng được hai thuật toán điều khiển tương tranh các quá trình xảy ra trên các hệ thống phân tán Đồng thời, kết hợp giữa lý thuyết đồ thị với các phương pháp truyền thống của otomat, chúng tôi đã xây dựng được các otomat hữu hạn đoán nhận một số lớp ngôn ngữ và đánh giá cận trên độ phức tạp otomat cho các ngôn ngữ này Trong luận án này, chúng tôi đã đạt
được được các kết quả chính sau đây:
1) Bản luận án đã phát biểu 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 được thuật toán đầy đủ hoá đồ thị các trường hợp của một hệ mạng điều kiện - biến cố Thuật toán cho chúng ta đồ thị các trường hợp đầy đủ của hệ mạng tương ứng Khi đó, dãy các nhãn trên mỗi đường đi của đồ thị các trường hợp đầy đủ sẽ chỉ ra một quá trình tương tranh xảy ra trên hệ mạng này
2) Đồng thời luận án cũng đã xây dựng thuật toán tìm các bước tương tranh cực đại trên một hệ mạng vị trí - chuyển nhờ đồ thị phủ của nó Kết quả của thuật toán này chỉ ra một chiến lược điều khiển tối ưu trên các hệ thống được biểu diễn bởi hệ mạng vị trí - chuyển
Trang 3Giả sử Ii là một chùm đầu Khi đó với từ p tuỳ ý và mọi chữ cái a thuộc
Σ ta xác định các tập hợp sau đây:
γ1(pa) = {β ⎜a ∈ L Ii (s Ii ,β)} nếu p = ε và
= {β ⎜∃α ∈ ZIi (p) ∩ D+(Ii ) và a ∈ L Ii(α,β)} nếu ngược lại
γ2(pa) = {β ⎜∃t , 1≤ t ≤ s mà pa ∈ NIi(e jt ) và a ∈ L Ii (K(e jt),β)},
γ3(pa) = {β ⎜∃t , 1≤ t ≤ s mà pa ∈ N Ii (e jt) và ε ∈ LIi (K(e jt),β)}
Bổ đề 3.12: Với mọi từ p và mọi chữ cái a ∈ Σ thì:
Z Ii (pa) = γ1(pa) ∪ γ2(pa) ∪ γ3(pa)
Hệ quả 3.13: Với mọi sơ đồ sinh đơn giản S, mọi từ p và mọi chữ cái a ∈ Σ
ta đều có: ZS(pa) = γ1(pa)
Hệ quả 3.14: Giả sử S là sơ đồ sinh đơn giản, p 1 , p 2 là các từ và chữ cái a ∈
Σ Nếu ZS(p 1) ∩ D+(S) ⊆ ZS(p 2) ∩ D+(S) thì ZS(p 1 a) ∩ D+(S) ⊆ ZS(p 2 a) ∩
D+(S)
Bổ đề 3.15: Giả sử p 1 p 2 là các từ tuỳ ý và a là chữ cái thuộc Σ
Nếu gi (p 1) ⊆ gi (p 2) thì gi (p 1 a) ⊆ g i (p 2 a)
Hệ quả 3.16: Nếu gi (p 1 a) ⊆ g i (p 2 a) thì với mọi từ q ta đều có: g i (p 1 q) ⊆
gi (p 2 q)
Hệ quả 3.17: Giả sử gi (p 1) ⊆ gi (p 2 ) Khi đó với mọi từ q, nếu p 2 q ∈ C(L(I i))
thì p 1 q ∈ C(L(I i))
Bước 2: Xây dựng otomat
Xây dựng otomat hữu hạn đơn định Ai tương đương với chùm đầu Ii
như sau:
- Tập trạng thái Q(Ai ) = {s 0(Ii)} ∪ {gi (p) ⎜ p ≠ ε}
- Trạng thái khởi đầu của Ai là q 0 = {s 0(Ii)}
- Hàm chuyển trạng thái f xác định như sau: với chữ cái a ∈Σ,
1) f (q 0 , a) = g i (a)
2) Giả sử q ∈ Q(Ai) , q ≠ q 0
Xây dựng tập hợp TIi (q,a) = {v ∈ D(I i ) ⎢∃s ∈ q : a ∈ LIi(s, v)}, trong đó D(I i)
là tập các đỉnh cốt yếu của chùm đầu Ii Đây chính là tập các đỉnh kề với các
a) Biểu diễn đồ thị bằng ma trận kề
Ma trận vuông An x n được gọi là ma trận kề của đồ thị G nếu: ∀i, j ∈ V : A[i,j] = d, với d là số các cạnh nối đỉnh i với đỉnh j trong G 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 Một đồ thị được biểu diễn bằng một mảng các
danh sách kề
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?
Thuật toán 1.1 (Xác định đường đi)
Đầ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
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
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
1) Duyệt đồ thị theo chiều sâu
Sử dụng stack S để lưu trữ các đỉnh đang duyệt và danh sách L chứa kết quả
Thuật toán 1.4 (Duyệt đồ thị theo chiều sâu)
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
1 procedure D_SAU2 (v) ;
2 begin
3 S := ∅ ;
4 Thăm_đỉnh (v) ;
5 L := L v ; { thêm v vào danh sách L }
6 Duyet [v] := true ;
7 push v onto S ; {nạp v lên đỉnh của S}
8 while S ≠ ∅ do
9 begin
10 while ∃x ∈ DK[top(S)] do
Trang 411 if NOT Duyet [x] then
14 L := L x ;
18 pop(S) ; {loại bỏ phần tử ở đỉnh của S}
19 end ;
20 end ;
21 BEGIN { Chương trình chính }
22 for v ∈ V do Duyet [v] := false ;
23 L := ∅ ;
24 for v ∈ V do
25 if NOT Duyet [v] then D_SAU2 (v) ;
26 END
Độ phức tạp của thật toán duyệt theo chiều sâu là: O(n+m)
2) Duyệt đồ thị theo chiều rộng
Sử dụng hàng đợi Q để lưu trữ các đỉnh đang được duyệt và và
danh sách L chứa kết quả
Thuật toán 1.5 (Duyệt đồ thị theo chiều rộng)
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
1 procedure D_RONG (v) ;
2 begin
3 Q := ∅ ;
4 enqueue v into Q ; {nạp v vào cuối hàng đợi Q}
5 Duyet [v] := true ;
6 while Q ≠ ∅ do
7 begin
8 dequeue x from Q ; {loại x ra khỏi đầu Q}
10 L := L x ;
11 for u ∈ DK[x] do
12 if NOT Duyet [u] then
13 begin
17 end ;
18 end ;
Định lý 3.9: Với mọi sơ đồ sinh S, cận trên độ phức tạp otomat của nó là
( ) 1
| |.3 3
2
l S
3.4 Độ phức tạp otomat của chùm đầu
3.4.1 Khái niệm chùm đầu
Giả sử I = (V, E, s 0 , F, Σ, n) là một đồ thị sinh nào đó thuộc sơ đồ sinh S
và X là một từ trên bảng chữ cái Σ Ký hiệu ZI(X) = {α ∈ V(I) ⎢X ∈
LI(s I ,α)} Đó chính là tập các đỉnh trong đồ thị sinh I đạt được nhờ từ X
Định nghĩa 3.5: Đồ thị sinh I được gọi là chùm đầu nếu:
1) Không có cung đi tới đỉnh vào s 0 của đồ thị sinh I
2) Mỗi cung bù và cung giao trong đồ thị sinh I và trong các đồ thị sinh
mà I phụ thuộc đều là cung đi ra từ đỉnh vào của đồ thị sinh chứa cung này
Ký hiệu D+(I) là tập tất cả các đỉnh cốt yếu của đồ thị sinh I và của các
đồ thị sinh trong sơ đồ sinh S mà I phụ thuộc
3.4.2 Otomat hữu hạn đơn định đoán nhận ngôn ngữ sinh bởi chùm đầu
Để xây dựng otomat hữu hạn đơn định có ít trạng thái nhất đoán nhận
được ngôn ngữ sinh bởi chùm đầu ta tiến hành ba bước sau đây
Bước 1: Nghiên cứu cấu trúc các trạng thái của otomat
Định nghĩa hàm gi : Σ+ → 2D+(I i)
một cách đệ quy như sau:
Với từ p ≠ ∅, giả sử e j1 , e j2 , , e js là tất cả các cung bù trong chùm đầu
Ii và với mỗi chùm đầu Ijt (1≤ t ≤ s) thì hàm g jt (p) đã được xác định Thế thì:
gi (p) = (Z Ii (p) ∩ D+(Ii)) ∪ ( ( ) \ ( ))
1
p g I D
t
j s
t
U= +
Một số tính chất của hàm gi:
Bổ đề 3.10: Giả sử p 1 , p 2 là các từ khác rỗng
Nếu gi(p 1) ⊆ gi(p 2 ) và p 1 ∈ L(Ii) thì p 2 ∈ L(Ii)
Hệ quả 3.11: Nếu gi (p 1) ⊆ gi (p 2 ) và p 2 ∈ C(L(Ii)) thì p 1 ∈ C(L(Ii))
Trang 5Độ sâu độ phụ thuộc của đồ thị sinh I được lấy là: l(I) =
)
max
I E
e∈ {l(e)}
Khi đó, độ sâu độ phụ thuộc l(S) của sơ đồ sinh S được định nghĩa là
độ sâu độ phụ thuộc của đồ thị sinh cuối cùng, nghĩa là l(S) = l(I n) Sơ đồ
sinh S được gọi là đơn giản nếu các đồ thị sinh I i (1≤ i ≤ n) của nó chỉ chứa
cung rỗng hoặc cung cốt yếu
3.3.2 Độ phức tạp otomat của sơ đồ sinh
Để xác định độ phức tạp otomat của sơ đồ sinh, ta xây dựng một số
phép biến đổi các sơ đồ sinh và nhận được các kết quả hỗ trợ sau đây
Bổ đề 3.3: Với các sơ đồ sinh đơn giản S1, S2, , Sk luôn có thể xây dựng sơ
đồ sinh đơn giản S, sao cho: L(S) = It k L S t
1 ) (
=
và |D(S)| ≤ |D(S)|
1 t
∏
=
k
t
Bổ đề 3.4: Với mọi sơ đồ sinh đơn giản S đều có thể xây dựng được sơ đồ
sinh đơn giản S' sao cho: |D(S')| ≤ |D(S)| và L(S') = {X ∈ Σ* ⎜∃Y ∈ L(S) , |X |
= | Y|}
Bổ đề 3.5: Với mọi sơ đồ sinh S chỉ chứa cung lấy tiền tố, ta đều có thể xây
dựng được sơ đồ sinh đơn giản S', sao cho |D(S')| < |D(S)|3 và L(S') = {X ⎜X
là tiền tố của từ thuộc đồ thị sinh Ii thuộc S}
Bổ đề 3.6: Với mọi sơ đồ sinh S chỉ chứa cung lấy hậu tố ta đều có thể xây
dựng được sơ đồ sinh đơn giản S' mà |D(S')| < |D(S)|3 và
L(S') = {X ⎜X là hậu tố của từ thuộc đồ thị sinh Ij thuộc S}
Bổ đề 3.7: Giả sử I, Δ1, Δ2, , Δk là các đồ thị sinh không có đỉnh chung còn
e 1 , e 2 , , e k là các cung của đồ thị sinh I mà MI(e i) = L(Δi ) với mỗi i (1≤ i
≤ k), và I1 = k k
e e e
I 1,,2, ,, ,
2 1 ]
[ Δ Δ Δ là kết quả của phép thay thế các cung e i bằng
các đồ thị sinh Δi Thế thì, L(I1) = L(I) và |D(I1)| ≤ |D(I )| + | ( ) |
1
∑
= Δ
k
i
i
D
Bổ đề 3.8: Với mọi sơ đồ sinh S không chứa cung bù luôn có thể xây dựng
được sơ đồ sinh đơn giản S' sao cho: L(S') = L(S) và |D(S')| ≤
( ( ) 1)
| |.3
3 S l S ư
Từ các bổ đề trên ta có khẳng định sau đây
19 BEGIN { Chương trình chính }
20 for v ∈ V do Duyet [v] := false ;
21 L := ∅ ;
22 for v ∈ V do
23 if NOT Duyet [v] then D_RONG (v) ;
24 END
Độ phức tạp của thật toán duyệt theo chiều rộng
Thuật toán duyệt đồ thị theo chiều rộng cũng có độ phức tạp là:
O(n+m)
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
Từ là một dãy các chữ cái khác rỗng thuộc một bảng chữ cái
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 đó
1.2.2 Một số phép toán trên ngôn ngữ
1) Tích ghép của hai ngôn ngữ
2) Hợp của hai ngôn ngữ
3) Giao của hai ngôn ngữ
4) Hiệu của hai ngôn ngữ
5) Phần bù của ngôn ngữ
6) Lặp của ngôn ngữ
7) Lặp cắt của ngôn ngữ
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
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 dẫn xuất có dạng α → β, với α, β ∈
(Σ ∪V)* và α ≠ ε, đồng thời từ α phải chứa chữ cái phụ
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 → x i+1, với 0 ≤ i ≤ k-1
Trang 6Ngôn ngữ L(G) sinh bởi văn phạm G được định nghĩa như sau:
L(G) = { w ⎢ w ∈ Σ* , S
*
⇒ w}
Văn phạm G được gọi là văn phạm cảm ngữ cảnh nếu mỗi quy tắc
của nó đều có dạng ξ1Aξ2 → ξ1θ ξ2 trong đó ξ1, ξ2 ∈ (Σ ∪V)*, A
∈ V, θ ∈ (Σ ∪V)+ và θ ≠ ε
Quy tắc cảm ngữ cảnh mà ξ1 = ξ2 = ε được gọi là quy tắc phi ngữ
cảnh Văn phạm G với mọi quy tắc đều là quy tắc phi ngữ cảnh thì được gọi
là văn phạm phi ngữ cảnh
Văn phạm phi ngữ cảnh 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
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ị 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 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)
Ngôn ngữ sinh bởi một nguồn được xác định như sau:
Giả sử d = < x, s 1 , s 2 , , s n , y > là một đường đi nào đó trên nguồn I 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 ∈ (Σ ∪{ε}) Khi đó, từ
w = a 1 a 2 … a n a n+1 được gọi là từ sinh bởi đường đi d 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)
a) NIi(e) = {ε} và t được gọi là cung rỗng
b) NIi(e) = {a}, với a ∈ Σ và e được gọi là cung cốt yếu
c) NIi(e) = C(L(I j )) và khi đó ta nói rằng cung e phụ thuộc vào đồ thị
sinh Ij và được gọi là cung bù
d) NIi(e) = Ik t L II k
1 ) (
=
, trong trường hợp này ta nói rằng cung e phụ
thuộc vào các đồ thị sinh Ij1, Ij2, , Ijt và e được gọi là cung giao
e) NIi(e) = {X ⎢∃Y ∈ L(I p ) và X là tiền tố của từ Y}, trong trường hợp này ta nói rằng cung e phụ thuộc vào đồ thị sinh I p và gọi là cung lấy tiền tố
f) NIi(e) = {Z ⎢∃U ∈ L(I q) và Z là hậu tố của từ U} Khi đó ta nói rằng
cung e phụ thuộc vào đồ thị sinh I q và gọi là cung lấy hậu tố
3 Với mỗi đồ thị sinh Ii (1≤ i ≤ n-1) thì có một và chỉ một cung trong đồ thị
sinh In phụ thuộc vào nó
Đồ thị sinh Ii phụ thuộc vào đồ thị sinh Ij trong sơ đồ sinh S nếu Ii chứa một cung nào đó phụ thuộc vào đồ thị sinh Ij hoặc phụ thuộc vào một
đồ thị có chứa cung phụ thuộc vào đồ thị Ij Sự phụ thuộc của các đồ thị sinh trong một sơ đồ sinh mang tính bắc cầu và lan truyền về phía cuối dãy Do vậy, ta định nghĩa:
Định nghĩa 3.4: Ngôn ngữ sinh bởi sơ đồ sinh S, ký hiệu là L(S), là ngôn
ngữ sinh bởi đồ thị sinh cuối cùng In trong dãy Nghĩa là, L(S) = L(In)
Để xác định được độ phức tạp otomat của sơ đồ sinh S, chúng ta tính
toán độ sâu độ phụ thuộc l(S) của sơ đồ này như sau
Giả sử e là một cung của đồ thị sinh nào đó I thuộc sơ đồ sinh S Độ sâu độ phụ thuộc của cung e, ký hiệu là l(e) và được xác định một cách đệ
quy như sau:
1) Nếu e là cung rỗng hay cung cốt yếu thì đặt l(e) = 0
2) Nếu e là cung bù phụ thuộc vào đồ thị sinh I' và l(I') đã xác định thì l(e) = l(I') +1
3) Nếu e là cung lấy tiền tố hay lấy hậu tố phụ thuộc vào đồ thị I' và l(I') đã xác định thì l(e) = l(I') +1
4) Nếu e là cung giao phụ thuộc vào các đồ thị sinh I i1, Ii2, , Iik và
l(I it) (1≤ t ≤k) đã được xác định thì: l(e) =
k
t≤
≤ 1
max{l(I it)}
Trang 7(r) là biểu thức chính quy biểu diễn ngôn ngữ R
Tập hợp các từ do một biểu thức chính quy biểu diễn được gọi là
ngôn ngữ sinh bởi biểu thức chính quy
Theo Định lý Kleene, lớp các ngôn ngữ sinh bởi các biểu thức
chính quy trùng với lớp các ngôn ngữ chính quy
3.2.2 Xây dựng nguồn tương đương với biểu thức chính quy
Biểu thức chính quy E và nguồn I được gọi là tương đương nếu
chúng sinh ra cùng một ngôn ngữ Tổng số vị trí của các chữ cái xuất hiện
trong biểu thức chính quy E được ký hiệu là |E|
Định lý 3.2: Với mọi biểu thức chính quy E luôn tồn tại một nguồn I tương
đương với A sao cho: |D(I)| ≤ |E|
Theo định lý trên, cận trên của độ phức tạp otomat của biểu thức
chính quy E không lớn hơn 2|D(I)|, trong đó D(I) là tập các đỉnh cốt yếu của
nguồn I tương đương
3.3 Độ phức tạp otomat của sơ đồ sinh
3.3.1 Khái niệm sơ đồ sinh
Định nghĩa 3.2: Đồ thị sinh I = (V, E, s 0, F, Σ, N) trên bảng chữ cái Σ là
một đa đồ thị (V, E) hữu hạn có hướng và có thể có đỉnh nút Trên đồ thị
này có một đỉnh đặc biệt s 0 gọi là đỉnh vào, một tập con không rỗng các
đỉnh F gọi là tập đỉnh ra Hàm gán nhãn N : E → 2Σ* gán cho mỗi cung của
đồ thị một tập các từ trên bảng chữ cái Σ
Khái niệm đồ thị sinh là mở rộng thực sự của khái niệm nguồn
Giả sử d = e 1 , e 2 , , e k (k ≥1) là một dãy các cạnh trên đường đi nào
đó trong đồ thị sinh I Thế thì, từ t = t 1 t 2 t k với t i ∈ NI(e i ), 1≤ i ≤ k, được
sinh bởi đường đi d trên đồ thị sinh I Ký hiệu LI(α,β) là tập tất cả các từ
sinh bởi mọi đường đi từ đỉnh α tới đỉnh β
)
β
β F I I
L
U
∈
là tập tất cả các từ sinh bởi mọi
đường đi trên đồ thị sinh I đi từ đỉnh vào sI Tập L(I) được gọi là ngôn ngữ
sinh bởi đồ thị sinh I
Định nghĩa 3.3: Sơ đồ sinh trên bảng chữ cái Σ là một dãy các đồ thị sinh
trên Σ, S = (I1, I2, , In) thoả mãn ba tính chất sau đây:
1 Các đồ thị sinh I1, I2, , In từng đôi một không có đỉnh chung
2 Với mỗi cung e của đồ thị sinh I i (1≤ i ≤ n) thuộc S thì một trong các đẳng
thức sau được thoả mãn:
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ữ
Một số phép toán trên nguồn
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 đã cho
Thuật toán 1.6 (Đơn định và đầy đủ hoá nguồn)
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)} 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
U∈ 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 có nhãn là a
Bây giờ ta xây dựng nguồn đơn định K như sau:
Đỉnh vào của K là đỉnh {s 0 } với s 0 là đỉnh vào của nguồn I Với mỗi đỉnh C
⊆ D(I) ta xác đị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 F(K) = {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
Đị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
Thuật toán 1.7 (Xây dựng nguồn bù)
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
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
Thuật toán 1.8 (Xây dựng nguồn giao)
Để tìm nguồn giao I của các nguồn I1 và I2 ta xây dựng các đỉnh và các cung của nó như sau:
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
Trang 8cá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
Thuật toán 1.9 (Xây dựng nguồn tích ghép)
Để xây dựng nguồn tích ghép I của các nguồn I1 và I2 ta giữ
nguyên cấu trúc của I1, I2 Lấy đỉnh vào của I1 là đỉnh vào của I, 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 Đồng thời, 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
c) Otomat hữu hạn và ngôn ngữ được đoán nhận bởi otomat hữu hạn
Định nghĩa 1.10: Otomat hữu hạn đơn định trên bảng chữ cái Σ là một bộ
năm: A = (Q, Σ, q 0, δ, 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
Mỗi lần chuyển trạng thái trong otomat hữu hạn đơn định ta chỉ
nhận được một trạng thái kế tiếp Ta mở rộng hàm chuyển δ thành ánh xạ
δ’ : Q ì Σ* → Q như sau:
a) ∀q ∈ Q đặt δ’(q, ε) = q ;
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 ∈ Σ* ⎢δ’(q 0 ,x) ∈ F} được gọi là ngôn ngữ được đoán nhận
bởi otomat hữu hạn đơn định A
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 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, Σ, q 0 , δ, 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
Đị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à:
Đầu ra: Đồ thị phủ rút gọn Ω của hệ mạng vị trí - chuyển Π
1) Xây dựng đồ thị phủ Ω cho hệ mạng vị trí - chuyển Π có nhãn trên cạnh
là các bước đơn (Thuật toán 3.2)
2) Nếu (V1, U1, V2) và (V1, U2, V3) là các cạnh của đồ thị với U1 ∩ U2 = ∅
và 0 ≤ V2 + U2 ≤ K, tập U = U1 ∪ U2 là tách được thì ta bỏ đi bốn cạnh
(V1, U1, V2), (V1, U2, V3), (V2, U2, V4) và (V3, U1, V4) với V4 = V2 + U2, và
thêm vào cạnh mới (V1, U, V4)
3) Lặp lại các bước 2) chừng nào còn có thể
Dãy các nhãn trên các đường đi của đồ thị rút gọn vừa nhận được
sẽ cho ta các quá trình tương tranh của mạng Π với các bước tương tranh cực đại
Độ phức tạp của thuật toán: Độ phức tạp của thuật toán là O(n.|T|4), với n là
số đỉnh của đồ thị phủ
Chương 3 Độ phức tạp otomat của các thuật toán
đoán nhận ngôn ngữ
Số trạng thái của otomat đơn định có ít trạng thái nhất đoán nhận
một ngôn ngữ được gọi là độ phức tạp otomat của ngôn ngữ
3.1 Độ phức tạp otomat của nguồn Giả sử Σ = {a 1 , a 2 , , a m} là một bảng chữ cái hữu hạn và I = (V, E,
s 0 , F, Σ, n) là một nguồn trên bảng chữ cái Σ Khi đó, ta có thể xây dựng
được otomat hữu hạn đơn định A đoán nhận ngôn ngữ do nguồn I sinh ra với
độ phức tạp otomat như sau
Định lý 3.1: Với nguồn I = (V, E, s 0 , F, Σ, n) thì cận trên độ phức tạp otomat
của nguồn I là 2|D(I)|, trong đó D(I) là tập các đỉnh cốt yếu của nguồn I 3.2 Độ phức tạp otomat của biểu thức chính quy
3.2.1 Biểu thức chính quy
Giả sử Σ là một bảng chữ cái không rỗng hữu hạn
Định nghĩa 3.1: Biểu thức chính quy trên bảng chữ cái Σ được định nghĩa đệ
quy như sau:
1) Tập rỗng ∅ là một biểu thức chính quy, nó biểu diễn ngôn ngữ rỗng
2) Với mỗi chữ cái a ∈ Σ thì a là biểu thức chính quy trên bảng chữ cái Σ, nó biểu diễn ngôn ngữ {a}
3) Nếu r, s là hai biểu thức chính quy trên Σ biểu diễn hai ngôn ngữ
R và S tương ứng thì:
(r) + (s) là biểu thức chính quy biểu diễn ngôn ngữ R ∪ S , (r) (s) là biểu thức chính quy biểu diễn ngôn ngữ R S ,
Trang 9Định lý 2.7 : Giả sử Ω là đồ thị phủ của hệ mạng vị trí - chuyển Π Với mỗi
dãy hoạt động M0[t1 > M1[t2 > M2 Mk-1 [tk > Mk trên hệ mạng Π luôn tồn
tại một đường đi < V0 t1 V1 t2 Vk-1 t k Vk > trong Ω mà M0 = V0 và Mi ≤
Vi , i = 1,2, , k
2.3.2 Các bước tương tranh trên hệ mạng vị trí - chuyển
Định nghĩa 2.5: Tập con các chuyển U được gọi là tách được nếu:
∀t1, t2 ∈ U, t 1 ≠ t 2 :
•
t1 ∩ t1•
= •t2 ∩ t2•
=•t1 ∩ •
t2 = •t1 ∩ t2•
= t1
•∩ •
t2 = t1
•∩ t2• = ∅
Định nghĩa 2.6: Giả sử Π là một hệ mạng vị trí - chuyển và U là tập con các
chuyển Tập U được gọi là một bước trên hệ mạng Π nếu tập U là tách được
và tồn tại bộ đánh dấu M đạt được từ M0 sao cho:
∀p ∈ •
U : M(p) ≥ ∑
∈U t
t p
W ( , ) , và
∀p ∈ U• : M(p) ≤ K(p) - W ( p t , )
U t
∑
∈
Hiển nhiên, tập con các chuyển U là một bước khi và chỉ khi U là
tách được và tồn tại bộ đánh dấu M thoả mãn: 0 ≤ M + U ≤ K
2.3.3 Tìm bước tương tranh bằng cách rút gọn đồ thị phủ
Các kết quả dưới đây là cơ sở cho việc rút gọn đồ thị phủ
Định lý 2.8 : Giả sử Π là một hệ mạng vị trí - chuyển, các bộ đánh dấu V2,
V3 ∈ R(V1), hai tập con các chuyển U1, U2 không giao nhau Nếu (V1, U1,
V2) và (V1, U2, V3) là hai cạnh trên đồ thị phủ Ω và 0 ≤ V2 + U2 ≤ K, đồng
thời U = U1 ∪ U2 là tách được thì hai cạnh (V2, U2, V4) và (V3, U1, V4) với
V4 = V2 + U2, cũng thuộc đồ thị phủ Ω và V1 [ U > V4
Định lý 2.9 : Giả sử Π là một hệ mạng vị trí - chuyển, các bộ đánh dấu V2,
V3 ∈ R(V1), hai tập con các chuyển U1, U2 không giao nhau Nếu (V1, U1,
V2) và (V2, U2, V3) là hai cạnh trên đồ thị phủ Ω, đồng thời U = U1 ∪ U2
là tách được thì hai cạnh (V1, U2, V4) và (V4, U1, V3) với V4 = V1 + U2, cũng
thuộc đồ thị phủ Ω và V1 [ U > V3
Các kết quả trên được minh hoạ qua hình vẽ dưới đây:
Dựa vào các kết quả trên, chúng ta xây dựng thuật toán như sau
Thuật toán 2.3 (Rút gọn đồ thị phủ)
Đầu vào: Hệ mạng vị trí - chuyển Π = (P, T; F, K, M0, W)
∀q ∈ Q, ∀a ∈ Σ đều có δ(q,a) ≠ ∅
Giả sử A = (Q, Σ, q 0, δ, F) là một otomat hữu hạn không đơn định
và không đầy đủ 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 hai biến TA : 2Q ì Σ → 2Q như sau:
- ∀q ∈ Q, ∀a ∈ Σ : TA({q},a) = {q' ⎢ q' ∈ δ(q,a)}
- ∀B ⊆ Q , ∀a ∈ Σ, TA(B,a) = U
B q
T
∈
) ,
ii) Đặt otomat A’ = (Q’, Σ, q 0 ’, 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)
d) Sự tương đương giữa nguồn và otomat hữu hạn
Từ mỗi nguồn I ta đều có thể xây dựng một otomat hữu hạn A tương đương với nó và ngược lại
Thuật toán 1.10 (Xây dựng otomat tương đương với nguồn)
1) Xây dựng hàm TI : 2D(I) ì Σ → 2D(I) như sau:
- ∀a ∈ Σ : TI(∅,a) = ∅ ,
- ∀s ∈ (D(I) ∪ {s 0 }), ∀a ∈ Σ : TI({s},a) = {s' ∈ D(I) ⎢ a ∈ LI(s,s')},
- ∀q ⊆ D(I), ∀a ∈ Σ : TI(q,a) = Us q TI s a
∈
) },
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 } là trạng thái khởi đầu của otomat A và 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, Σ, q 0, δ, 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
Thuật toán 1.11 (Xây dựng nguồn tương đương với otomat)
1) Lấy các điểm trên mặt phẳng tương ứng với các trạng thái của otomat và đặt tên cho các điểm này bằng các ký hiệu trạng thái của otomat
A Đỉnh vào của nguồn I là trạng thái khởi đầu của otomat Đỉnh được xem
là đỉnh kết thúc của nguồn khi trạng thái của otomat A tương ứng với nó là trạng thái kết thúc
Trang 102) ∀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
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
1.3.1 Mạng Petri
Đị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
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
Đị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à: ∀x, y
∈ N : (•
x = •y) ∧ (x• = y•) ⇒ x = y
Biến cố e có thể xảy ra trong trạng thái 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 xảy ra, 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
Đị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ả thực hiện biến cố e
Ta ký hiệu: c [ e > 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:
1) Quan hệ r N ⊆ 2B ì 2B được định nghĩa như sau:
(c1, c2) ∈ r N ⇔ ∃ e ∈ E : c1 [ e > c2 , gọi là quan hệ đạt được tiến trên
mạng N
2) Quan hệ R N = (r N ∪ r N-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
2) Nếu (c 1, G1, c 2 ) và (c 1, G2, c 3) là các cạnh của đồ thị và G1 ∩ G2 = ∅, G =
G1 ∪ G2 là tách được thì ta thêm một cạnh mới (c 1 , G, c 4 ) với c 4 = (c 1 \ •G) ∪
G•
3) Nếu (c 1, G1, c 2 ) và (c 2, G2, c 3) là các cạnh của đồ thị và G = G1 ∪ G2 là
tách được thì ta thêm vào một cạnh mới (c 1 , G, c 3)
4) Lặp lại các bước 2) và 3) chừng nào còn có thể
Theo thuật toán trên, sau mỗi lần ghép cạnh có nhãn G1 và G2 ở bước 2) hoặc 3) ta bổ sung thêm cạnh mới với bước tương tranh G = G1 ∪
G2 có nhiều hành động hơ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 lớn 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
đang mong muốn
Độ phức tạp của thuật toán: Độ phức tạp của thuật toán là O((|C|2.|E|)3 ) Thuật toán này có độ phức tạp nhỏ hơn rất nhiều so với thuật toán sử dụng
Định lý 2.4
2.3 Thuật toán điều khiển tương tranh trên các hệ mạng vị trí – chuyển
2.3.1 Đồ thị phủ của hệ mạng vị trí - chuyển
Một hệ mạng vị trí - chuyển Π = (P, T; F, K, M0, W) có thể có nhiều vô hạn các bộ đánh dấu đạt được khác nhau Bởi vậy, ta phải tìm cách xây dựng
được một đồ thị hữu hạn biểu diễn các quá trình xảy ra trên mạng mà mỗi
bộ đánh dấu đạt được hoặc được biểu diễn tường minh bằng một đỉnh của
đồ thị hoặc được “phủ“ bởi một đỉnh
Thuật toán 2.2 (Xây dựng đồ thị phủ)
Đầu vào: Hệ mạng vị trí - chuyển Π = (P, T; F, K, M0, W)
Đầu ra: Đồ thị phủ Ω của hệ mạng vị trí - chuyển Π
1) Xây dựng đồ thị ban đầu chỉ gồm một đỉnh V0 = M0, không có cung 2) Giả sử V là đỉnh nào đó của đồ thị nhưng chưa có cung nào đi ra từ nó thì:
1 Nếu V kích hoạt chuyển t nào đó và V[ t > V’ thì ta bổ sung đỉnh mới V’ và cung mới (V, t, V’) vào đồ thị
2 Trên đường từ đỉnh V0 tới đỉnh V, nếu tồn tại đỉnh V’ mà V' < V
thì với những vị trí p mà V’(p) < V(p) thì toạ độ tương ứng của V
được thay bằng ω và đỉnh V được gọi là ω-đỉnh
3 Trên đường từ đỉnh V0 tới đỉnh V, nếu tồn tại đỉnh V’ mà V' = V thì V là đỉnh treo của đồ thị
4 Nếu không có một chuyển nào được V kích hoạt thì V là đỉnh treo 3) Lặp lại bước 2) chừng nào còn có thể