Một dáng điệu của hệ chắn tàu

Một phần của tài liệu Một số phương pháp kiểm chứng tính đúng đắn của hệ thời gian thực bằng thuật toán (Trang 41)

4 Kỹ thuật rời rạc hoá và duyệt đồ thị đạt được

3.2 Một dáng điệu của hệ chắn tàu

Biểu thức RCM cho phép biểu thịmọi khả năng quan sát về hệ thống từ lúc bắt đầu cho đến một thời điểm cho trước nào đó. Hình 3.2 biểu diễn dáng điệu của hệ thống trong đoạn [0, T]: trạng thái A xuất hiện trong khoảng thời gian từ 0 đến x1, và từ y2 đến x3; trạng thái B xuất hiện từ x1 đến y1 và từ

x3 đến T. Trạng thái P xuất hiện từ x2 đến y2, trạng thái U xuất hiện trong

khoảng[x2, z1] và [x3, T]. . . Từ đó, mỗiTRE R xác định một hệ thời gian thực (tập các mô hình DC - kí hiệu M(R)) được định nghĩa đệ qui như sau.

Định nghĩa 3.2 (Tập mô hình M(R) của TRE R).

1. Mô hình σ = (I,[0, T]) thuộc vào M() nếu và chỉnếu T = 0.

2. Mô hìnhσ = (I,[0, T])thuộc vào M((s,[a, b]))nếu và chỉnếu a≤ T ≤b

33

3. Mô hình σ = (I,[0, T]) thuộc vào M(R1R2) nếu và chỉnếu tồn tại

0 T T, σ1 = (I1,[0, T])∈ M(R1), σ2 = (I2,[0, T −T])∈ M(R2)

sao cho với mọi s state(R1) state(R2), sI1(t) = sI(t) với mọi

t [0, T) sI2(t T) = sI(t) với mọi t [T, T], và với mọi

s state(R1) state(R2), sI(t) = 0 với mọi t [0, T]. Khi đó, có thể xem σ =σ1σ2.

4. Mô hình σ = (I,[0, T]) thuộc vào M(R1⊗R2) nếu và chỉnếu có

σ1 = (I1,[0, T]) ∈ M(R1), σ2 = (I2,[0, T]) ∈ M(R2) sao cho với mọi

t∈[0, T], sI1(t) = sI(t) với mọi s∈ state(R1), và sI2(t) = sI(t) với mọi

s∈state(R2), và sI(t) = 0 với mọi s ∈state(R1)∪state(R2), khi đó có thể xem σ1⊗σ2 như mô hình σ.

5. Mô hình σ = (I,[0, T])∈ M(R1⊕R2) nếu và chỉnếu σ ∈ M(R1) hoặc

σ ∈ M(R2).

6. Mô hình σ = (I,[0, T]) ∈ M(R∗) nếu và chỉnếu tồn tại số nguyên

k 0 sao cho σ ∈ M(Rk), ở đây R0 = , và đối với k >0, Rk = RRk. Hoặc, một cách tương đương, có các mô hình σ1, . . . , σk ∈ M(R) sao cho

σ =σ1σ2. . .σk.

Ví dụ 3.1.

Lấy R1 = (s,[1,5])(u,[1,7]). Khi đó (I1,[0,7]) thuộc M(R1) do s được minh hoạ như 1 trong đoạn [0,4) 0 trong đoạn [4,7] còn u được minh hoạ bởi 0 trong đoạn [0,4) 1 trong đoạn [4,7] dưới thể hiện I1.

Lấy R = R1(v,[3,10]). Khi đó (I,[0,7]) thuộc M(R) bởi vì dưới thể hiện I, s u được minh hoạ như trong mô hình (I1,[0,7]) ở trên, còn

v được minh hoạ như hàm bool 1 trên đoạn [0,7].

Quay lại hệ chắn tàu, yêu cầu về tính an toàn của hệ có thể được đặc tả như bất biến khoảng tuyến tính : 0 <∞ ⇒ C−Dn≤ 0, điều này có nghĩa với mọi khoảng quan sát từ 0 đến T, thời gian đoàn tàu băng qua vịtrí

cắt nhau sẽ không nhiều hơn thời gian cổng chắn đóng (hạ xuống). Một cách hình thức, mô hình σ = (I,[0, T]) thoả mãn công thức bất biến khoảng tuyến tính A B s∈Scs

s M khi và chỉ khi A T B ràng buộc Σs∈ScsT

0 sI(t)dt ≤M là đúng.

3.1.2 Biểu thức TRE hữu hạn

Trong phần này chúng tôi định nghĩa thế nào là một TRE hữu hạn và để kiểm tra tính thoả của TRE hữu hạn đối với LDI, chúng tôi xây dựng bài toán qui hoạch tuyến tính tương đương với nó theo nghĩa lời giải của bài toán qui hoạch tuyến tính cũng cung cấp lời giải của bài toán kiểm chứng mô hình.

Xét R là một TRE, σ = (I,[0, T]) là mô hình trong M(R), và D là một bất biến khoảng tuyến tính. Chúng ta sử dụng một số kí hiệu sau: ds(σ) kí hiệu cho tổng khoảng thời gian xuất hiện của trạng thái s∈ S trên đoạn [0, T] dưới thể hiện I, tức ds(σ) = T

0 sI(t)dt, l(σ) kí hiệu độ dài của đoạn [0, T], tức l(σ) = T, và θ(σ) kí hiệu cho

s∈Scsds(σ)(tức

s∈Scs

sđược ước lượng trên σ). Từ đó, σ |= D nếu và chỉ nếu A ≤l(σ) B θ(σ) ≤M. Ví dụ, đối với mô hình σ trong hình 3.2, ta có dA(σ) = x1+x3 −y2, dDn(σ) = x2 −z1,

l(σ) = T.

Bổ đề 3.1. Lấy σ, σ1 = (I1,[0, T1]) ∈ M(R1), σ2 = (I2,[0, T2]) ∈ M(R2) các mô hình DC. Khi đó,

1. nếu σ =σ1σ2 thì ds(σ) = ds(σ1) +ds(σ2) đối với mọi s ∈S,

l(σ) =l(σ1) +l(σ2) θ(σ) =θ(σ1) +θ(σ2),

2. nếu σ =σ1⊗σ2 thì ds(σ) =ds(σ1) +ds(σ2) đối với mọi s∈S,

l(σ) =l(σ1) = l(σ2), và θ(σ) = θ(σ1) +θ(σ2).

Trong các định nghĩa và kết quả sau đây, ta luôn luôn kí hiệu D là một công thức bất biến khoảng tuyến tính.

Một tập mô hình DC có thể được biểu diễn bởi các biểu thức chính quy thời gian khác nhau, khi đó các biểu thức chính quy này được gọi là tương

35

đương. Hai biểu thức chính quy xác định cùng một tập mô hình DC thoả D

được gọi là D-tương đương. Định nghĩa sau cụ thể hoá ý tưởng đó và định lý 3.1 tiếp theo cung cấp một số lớp biểu thức tương đương. Định lý này đặt cơ sở cho phép biến đổi một TRE R bất kỳ về TRE R tương đương với nó nhưng có dạng đơn giản hơn.

Định nghĩa 3.3 (Tính tương đương của các TRE). Đối với các TRE R1,

R2 bất kỳ, ta gọi R1 R2 nếu và chỉnếu M(R1) = M(R2).

Định lý 3.1. Đối với các TRE R, R1, R2 bất kỳ, ta có:

1. (R1⊕R2)R (R1R)(R2R) R(R1⊕R2) (RR1)(RR2)

2. (R1⊕R2)⊗R (R1⊗R)⊕(R2⊗R) R⊗(R1⊕R2) (R⊗R1)⊕(R⊗R2)

3. (R1⊕R2) ((R∗1)(R∗2))

Định lý 3.1 có thể dễ dàng suy trực tiếp từ định nghĩa 3.2. Nó cho thấy một TRE R bất kỳ có thể được viết như R1⊕R2⊕. . .⊕Rk, trong đó mỗi Ri

(1 i ≤k) là một TRE không chứa phép toán .

Định nghĩa 3.4 (Tính D-tương đương của các TRE). Các TRE R1 R2

được gọi là D-tương đương (kí hiệu bởi R1 ≡D R2) nếu R1 |= D khi và chỉkhi

R2 |=D.

Hiển nhiên, nếu R1 R2 thì R1 ≡D R2.

Định lý 3.2. Đối với các TRE R1, R2 bất kỳ

1. R1R2 ≡D R2R1

2. (R1⊕R2) ≡D (R1)(R∗2)

3. ((R∗1)R2) ≡D (R∗1)R∗2

Định lý được suy trực tiếp từ bổ đề 3.1.

Định nghĩa 3.5.

Một TRE R trong đó không chứa phép toán ∗được gọi là hữu hạn. Ngược lại, R được gọi là vô hạn.

Một TRE đơn giản là một TRE hữu hạn và trong nó không chứa phép toán ⊕.

Ví dụ, ((s,[1,5])(u,[1,7])) ((v1,[3,10]) (v2,[2,9])) là một TRE hữu hạn, và ((s,[1,5])(u,[1,7]))(v,[3,10]) là một TRE đơn giản.

Do định lý 3.1 và từ định nghĩa 3.5, chúng ta sẽ chỉ chú ý đến các TRE đơn giản bởi vì bất kỳ TRE hữu hạn R đều có thể đưa về dạng R1⊕. . .⊕Rk, trong đó mỗi một Ri là một TRE đơn giản, và R |= D nếu và chỉ nếu đối với mọi i (i k), Ri |= D.

3.1.3 Xây dựng bài toán qui hoạch tuyến tính

Kết hợp với mỗi TRE đơn giản R, chúng ta xây dựng một tập các ràng buộc tuyến tính C(R), tập các khoảng {ds(R) | s S} và thời gian thực hiện l(R) như sau. Gọi V ar(C(R)) là tập các biến xảy ra trong C(R), khi đó:

Định nghĩa 3.6.

Trường hợp R = (s,[a, b]). Lấy C(R) = {a≤ t≤b}, ds(R) =t, l(R) =t, ở đây t là biến thực, và ds(R) = 0 đối với mọi s =s.

Trường hợp R =R1R2. Bằng việc đổi tên biến, có thể giả thiết

V ar(C(R1))∩V ar(C(R2)) =∅. Khi đó, C(R) = C(R1)∪ C(R2), ds(R) =

ds(R1) +ds(R2) l(R) = l(R1) +l(R2).

Trường hợp R =R1⊗R2. Giả thiết V ar(C(R1))∩V ar(C(R2)) =∅. Khi đó, C(R) = C(R1)∪ C(R2) ∪ {l(R1) = l(R2)}, ds(R) = ds(R1) +ds(R2)

37

Kí hiệu

s∈Scsds(R) bởi θ(R).

Ví dụ 3.2. Cho R = ((s,[1,5])(u,[1,7]))(v,[3,10]). Kết hợp mỗi nguyên thuỷ trong R với một biến, chẳng hạn x kết hợp với (s,[1,5]), y kết hợp với

(u,[1,7]) z kết hợp với (v,[3,10]). Khi đó C(R) = {1 ≤x≤ 5,

1 y 7,3 z 10, x +y = z}, l(R) = z, ds(R) = x, du(R) = y, và

dv(R) = z.

Đối với nghiệmwcủa hệ các ràng buộc C(R), ta sử dụngds(R)(w),l(R)(w) và θ(R)(w) để kí hiệu cho các giá trị ds(R), l(R) và θ(R) tính trên w một cách tương ứng. Với các vec-tơw1 = (t1, t2, . . . , tp)vàw2 = (u1, u2, . . . , uq), chúng ta dùng (w1, w2) để kí hiệu cho vec-tơ (t1, t2, . . . , tp , u1, u2, . . . , uq), và nếu p=q

chúng ta kí hiệu vec-tơ (t1+u1, t2+u2, . . . , tp+up) bởi w1+w2.

Kí hiệu D(R) = max (R) | C(R)∧A ≤l(R) B}.

Định lý 3.3. Đối với TRE đơn giản R, R |=D khi và chỉkhi D(R) ≤M.

Chứng minh. Đầu tiên, chúng ta chứng minh đối với mọi mô hìnhσ ∈ M(R), có tồn tại một nghiệm w của C(R) và ngược lại, sao cho đối với mọi s S,

ds(σ) = ds(R)(w), và l(σ) = l(R)(w) (từ đó, θ(σ) = θ(R)(w)). Điều này có nghĩa: có một tương ứng 1-1 giữa M(R) và tập nghiệm của C(R). Một chứng minh chi tiết bằng qui nạp theo cấu trúc của R đã được cho trong [56], vì vậy chúng tôi xin phép không nhắc lại chứng minh này ở đây.

Từ định lý 3.3, đối với một TRE R đơn giản, bài toán kiểm chứng R |= D

có thể được thực hiện bởi việc giải bài toán qui hoạch tuyến tính để tìm D(R) và so sánh nó với M.

Ví dụ 3.3. Lấy

R = ((s,[1,5])(u,[1,7]))(v,[3,10])

lấy x, y, z là các biến kết hợp với các nguyên thuỷ (s,[1,5]),(u,[1,7]),(v,[3,10])

tương ứng. R |=D có thể được kiểm chứng bởi việc giải

max{2x−z} với 1 x≤5 1 y 7 3 z 10

z =x+y

4 z 8

và kiểm tra liệu giá trị của nó có bé hơn 5 ? Dễ thấy nghiệm của bài toán qui hoạch tuyến tính là x= 5, y = 1, z = 6 và giá trị lớn nhất của hàm mục tiêu là 4 < 5.

Cho R là một TRE vô hạn. Bằng việc thay mỗi một xuất hiện của phép toán (lặp) với một biến nguyên ki, chúng ta nhận được một một TRE hữu hạn và từ đó xây dựng một bài toán qui hoạch tuyến tính để giải. Tuy nhiên, vì tập giá trịcủa các ki là vô hạn, số của các bài toán qui hoạch tuyến tính cũng là vô hạn. Trong phần tiếp theo, chúng tôi sẽ giới thiệu một kỹ thuật để đưa một TRE vô hạn về hợp các TRE hữu hạn mà là D-tương đương tới nó, và từ đó một TRE vô hạn có thể được kiểm chứng thông qua tập cácTRE hữu hạn.

3.2 Chuyển TRE về hợp của các TRE hữu hạn

Từ đây trở đi chúng ta giả thiết rằng bất kỳTRE R là không chứaM(s,[0,0]), vì việc loại các nguyên thuỷ như vậy không làm thay đổi tập M(R).

Lấy R, R là các TRE. NếuR xảy ra trong R, thìR được gọi là biểu thức con của R. Ví dụ, lấyR = ((s,[1,5])(u,[1,7]))(v,[3,10]). Khi đó(s,[1,5]), (u,[1,7]), (v,[3,10]), (s,[1,5])(u,[1,7]), (v,[3,10])R là các biểu thức con của R. Một biểu thức conR của R có thể xuất hiện tại nhiều vịtrí khác nhau trong R. Khi nói đến biểu thức con của R, chúng ta đồng nhất với một xuất hiện của chúng trong R.

39

3.2.1 Cận thời gian của biểu thức TRE

Một TRE RM(R) = được gọi là một TRE rỗng và được kí hiệu bởi Λ. Ví dụ, (s,[3,5])(v,[6,9]) là một TRE rỗng. Chúng ta sẽ chỉ ra làm thế nào để đoán nhận một TRE là rỗng trong phần sau.

Giả sử R là một TRE bất kỳ không chứa biểu thức con rỗng, chúng ta sẽ xây dựng hai số m(R), M(R) như các cận dưới và cận trên của độ dài các mô hình được xác định bởi R. Tức, m(R), M(R) là cận dưới và cận trên tương ứng của tập {l(σ) | σ ∈ M(R)}. Một cách hình thức các này cận được định nghĩa đệ qui như sau.

Định nghĩa 3.7. Nếu R = , thì m(R) = 0 M(R) = 0. Nếu R = (s,[a, b]), thì m(R) =a M(R) =b (b có thể ∞). Nếu R = R∗1, thì m(R) = 0 M(R) = ∞. Nếu R = R1R2, thì m(R) = m(R1) +m(R2) M(R) = M(R1) +M(R2). Nếu R =R1⊕R2, thì m(R) = min(m(R1), m(R2)) M(R) = max(M(R1), M(R2)). Nếu R =R1⊗R2, thì m(R) = max(m(R1), m(R2)) M(R) = min(M(R1), M(R2)).

Từ định nghĩa 3.7, ta dễ dàng thấy rằng nếu R là một TRE đơn giản và

M(R)<∞ thì m(R), M(R) là các giá trịnhỏ nhất và lớn nhất của

{l(σ) | σ ∈ M(R)}. Hơn nữa, đối với TRE R bất kỳ, với mọi σ ∈ M(R),

m(R) ≤l(σ) ≤ M(R).

Ví dụ, lấy R = ((s,[1,5])(u,[1,7]))(v,[3,10]), thì m(R) = 3 và M(R) = 10. Tức đối với mọi σ ∈ M(R), 3 ≤l(σ) 10.

Một chú ý quan trọng là đối vớiTRE R đơn giản, với mọi số thựcrsao cho

m(R) r M(R), luôn luôn tồn tại mô hình σ ∈ M(R) sao cho l(σ) = r. Do vậy, việc kiểm tra tính rỗng của một TRE đơn giản R là tầm thường. Từ đó, đối với một TRE đơn giản R, m(R) = 0 tức là đối với mọi nguyên thuỷ (s,[a, b]) xuất hiện trong R cận dưới a sẽ là 0.

Nếu R là một TRE khác rỗng, chúng ta có thể tìm được R1 sao cho R1

không chứa biểu thức con rỗng và M(R) = M(R1). Như vậy, từ đây trở đi, trừ phi phát biểu ngược lại, chúng ta giả thiết rằng mọi TRE dưới quan sát của chúng ta là không rỗng và không chứa biểu thức con rỗng.

Lấy R1, R2 là các TRE. Như đã thảo luận, nếu R = R1 R2 thì mọi

σ ∈ M(R) được xây dựng từ các mô hình σ1 ∈ M(R1) và σ2 ∈ M(R2) sao cho l(σ1) = l(σ2). Từ đó, thời gian thực hiện của R1 được giới hạn bởi thời

gian thực hiện của R2 và ngược lại. Tổng quát, thời gian thực hiện của R, ở đây R là một biểu thức con bất kỳ của R1, là không chỉ bịchặn bởi m(R) và M(R) mà còn bởi m(R2) và M(R2). Điều này có nghĩa thời gian thực hiện của một biểu thức con R trong một TRE R là bịràng buộc bởi phép toán

và bởi các vịtrí xuất hiện của nó trong R. Để chỉ rõ các ràng buộc này, chúng ta đưa ra các đại lượng m(R, R) và M(R, R) như là các cận trên và dưới của thời gian thực hiện của R khi nó xảy ra tại một vịtrí nào đó trong R. Các đại lượng này được định nghĩa đệ qui như sau.

Định nghĩa 3.8.

Trường hợp R =R. m(R, R) = 0 M(R, R) = ∞.

Trường hợp R =R1 R2 (R2 R1, R∗1), ở đây ∈ {,⊕} R xuất hiện trong R1. Khi đó m(R, R) =m(R, R1) M(R, R) = M(R, R1).

Trường hợp R =R1⊗R2 (R2⊗R1), và lấy R xuất hiện trong R1.

thì m(R, R) =max(m(R, R1), m(R2))

41

Ví dụ, lấyR = ((s,[1,5])(u,[1,7]))⊗(v,[3,10]), vớiR= (s,[1,5])(u,[1,7]) thì m(R, R) = 0 và M(R, R) = . Nếu R = (v,[3,10]) thì m(R, R) = 2 và

M(R, R) = 12.

Kí hiệu M(R, R) = ∈ M(R) | m(R, R) l(σ) M(R, R)}. Như đã thảo luận ở trên có thể thấy rằng chỉ có các mô hình trong M(R, R) mới có thể tham dự vào cấu trúc các mô hình trong R. Do đó, từ nay trở đi, nếu R

được xét như một biểu thức con (xuất hiện tại một vịtrí cố định nào đó) của

R thì chúng ta có thể đồng nhất M(R) với tập con M(R, R).

Bằng qui nạp theo cấu trúc của TRE, chúng ta dễ dàng chứng minh được các bổ đề sau đây .

Bổ đề 3.2. ChoR1, R2,R là cácTRE bất kỳ. Nếu đối với bất kỳ mô hình σ1 M(R1), tồn tại mô hình σ2 ∈ M(R2) sao cho l(σ1) = l(σ2) θ(σ1) θ(σ2)

thì đối với mọi mô hình σ1 ∈ M(R1R) (M(R1⊕R),M(R1⊗R),M(R1)), tồn tại mô hình σ2 ∈ M(R2R) (M(R2⊕R),M(R2⊗R),M(R∗2)) sao cho

l(σ1) = l(σ2) θ(σ1) θ(σ2).

Bổ đề 3.3. Gỉa sử R, R1, R2 là các TRE bất kỳ thỏa

1. Đối với bất kỳ mô hình σ1 ∈ M(R1), tồn tại mô hình σ2 ∈ M(R2) sao cho l(σ1) =l(σ2) θ(σ1) θ(σ2), và

2. Đối với mọi mô hình σ2 ∈ M(R2), tồn tại mô hình σ1 ∈ M(R1) sao cho

l(σ2) =l(σ1) θ(σ2) ≤θ(σ1),

khi đó bằng việc thay thế một xuất hiện của R1 trong R bởi R2, chúng ta nhận

được một biểu thức mới R mà là D-tương đương với R, tức R ≡D R.

3.2.2 Khử phép toán trong biểu thức TRE

Các kết quả sau đây đều được suy trực tiếp từ các kết quả đã trình bày ở trên, do vậy trong phần này chúng tôi chỉ tổng kết lại các trường hợp cho việc khử

phép lặptrong một TRE, từ đó đưa mộtTRE biểu diễn tập vô hạn dáng điệu về tập hữu hạn. Các chứng minh chi tiết được trình bày trong [56].

Kí hiệu x là phần nguyên của số thực x, tức nó là số nguyên lớn nhất không lớn hơn x.

Định lý 3.4. Giả sử A là một TRE đơn giản với m(A) = 0. Lấy A TRE

đạt được từ A bởi thay thế mỗi một nguyên thuỷ (s,[0, b])của A với (s,[0,∞))

(chú ý b > 0 như đã được giả thiết trước đây). Khi đó, bằng việc thay mỗi xuất hiện của A∗ trong một TRE R bởi A, chúng ta đạt được một biểu thức mới R

D-tương đương với R.

Định lý 3.5. Giả sử A là một TRE đơn giản với m(A) > 0. Lấy một xuất hiện của A∗ trong R mà đối với nó M(A∗, R) <∞ hoặc B <∞ (nhắc lại rằng

B là cận trên của đoạn quan sát trong công thức LDI D). Lấy A =⊕k

i=0Ai, ở đây k =min {M(A∗, R), B}/m(A)+1. Khi đó bằng việc thay thế xuất hiện của A∗ trong R bởi A, chúng ta đạt được một biểu thức mới R D-tương đương với R.

LấyR là một biểu thức con của R. R được gọi là nằm dưới nếu có một biểu thức con dạng R1⊗R2 của R sao cho R là một xuất hiện trong R1 hoặc

trong R2. NếuA∗ là không nằm dưới , thì do định nghĩa 3.8,M(A∗, R) = . Cho một TRE đơn giản A. Lấy maxθ(A) kí hiệu giá trịlớn nhất của

(σ) | σ∈ M(A)}. maxθ(A) có thể tính được bằng việc giải bài toán qui hoạch tuyến tính: tìm giá trịlớn nhất của hàm mục tiêu

s∈Scsds(A) đối với tập các ràng buộc C(A).

Bổ đề 3.4. Lấy E là một số thực,A∗ là một biểu thức con củaR không xảy ra dưới ⊗, ở đây A là một TRE đơn giản với m(A) >0, maxθ(A) 0. Giả thiết

B = R TRE đạt được từ R bởi việc thay xuất hiện A∗ trong R bởi

A =⊕k

i=0Ai với k =E/m(A)+1. Khi đó, đối với bất kỳ mô hình σ ∈ M(R)

sao cho l(σ) E, tồn tại một mô hình σ ∈ M(R) sao cho l(σ) E, và

43

Định lý 3.6. Với B =∞, và A∗ là một biểu thức con củaR sao cho A∗ không xuất hiện dưới ⊗, ở đây A là một TRE đơn giản với m(A) >0. Khi đó:

1. nếumaxθ(A) 0, thì bởi việc thayA∗ trong R với A =⊕k

i=0Ai, trong đó

k =A/m(A)+ 1, chúng ta nhận được biểu thức R sao cho R≡D R.

Một phần của tài liệu Một số phương pháp kiểm chứng tính đúng đắn của hệ thời gian thực bằng thuật toán (Trang 41)

Tải bản đầy đủ (PDF)

(129 trang)