Tải bản đầy đủ (.pptx) (41 trang)

Bài giảng Automata và ngôn ngữ hình thức - Chương 6: Automat đẩy xuống ppt

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

G I N G V I Ê N : T S . H À C H Í T R U N Gả
B M Ô N : K H M Tộ
k h o a c n t t , h v k t q s
Đ t : 0 1 6 8 . 5 5 8 . 2 1 . 0 2
E M A I L : H C T 2 0 0 9 @ Y A H O O . C O M
Lý thuy t automata và ế
ngôn ng hình th cữ ứ
Languague
Grammar
Automat
a
1
©copyright by PhD. C.T.Ha, Le Quy Don Technical
University
Bài 6. Automata đ y xu ngẩ ố
(Pushdown automata)
M C ĐÍCH:Ụ

Thi t k PDA ch p nh n CFG b ng stack r ng ho c b ng ế ế ấ ậ ằ ỗ ặ ằ
tr ng thái k t thúc;ạ ế

Bi n đ i t ng đ ng gi a PDA ch p nh n ngôn ng ế ổ ươ ươ ữ ấ ậ ữ
b ng tr ng thái k t thúc sang PDA ch p nh n b ng stack ằ ạ ế ấ ậ ằ
r ng. ỗ

Bi n đ i t ng đ ng gi a NPDA và CFG.ế ổ ươ ươ ữ
YÊU C U:Ầ

Sinh viên c th hóa các thu t toán b ng ch ng trình ụ ể ậ ằ ươ ở
nhà.
2


©copyright by PhD. C.T.Ha, Le Quy Don Technical
University
Bài 6. Pushdown Automata
6.1. Khái ni m v Pushdown Automata (PDA)ệ ề
6.1.1. PDA và các khái ni m liên quanệ
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6.1.3. PDA đ n đ nh (DPDA)ơ ị
6.2. S t ng đ ng gi a 2 d ng PDAự ươ ươ ữ ạ
6.2.1. Bi n đ i t ng đ ng t d ng 2 sang d ng 1ế ổ ươ ươ ừ ạ ạ
6.2.2. Bi n đ i t ng đ ng t d ng 1 sang d ng 2ế ổ ươ ươ ừ ạ ạ
6.3. S t ng đ ng gi a PDA và CFGự ươ ươ ữ
6.3.1. Bi n đ i t ng đ ng t CFG sang PDAế ổ ươ ươ ừ
6.3.2. Bi n đ i t ng đ ng t PDA sang CFGế ổ ươ ươ ừ
6/27/14
3
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
Bài 6. Pushdown Automata
6.1. Khái ni m v Pushdown Automata (PDA)ệ ề
6.1.1. PDA và các khái ni m liên quanệ
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6.1.3. PDA đ n đ nh (DPDA)ơ ị
6.2. S t ng đ ng gi a 2 d ng PDAự ươ ươ ữ ạ
6.2.1. Bi n đ i t ng đ ng t d ng 2 sang d ng 1ế ổ ươ ươ ừ ạ ạ
6.2.2. Bi n đ i t ng đ ng t d ng 1 sang d ng 2ế ổ ươ ươ ừ ạ ạ
6.3. S t ng đ ng gi a PDA và CFGự ươ ươ ữ
6.3.1. Bi n đ i t ng đ ng t CFG sang PDAế ổ ươ ươ ừ
6.3.2. Bi n đ i t ng đ ng t PDA sang CFGế ổ ươ ươ ừ
6/27/14
4

Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1. Khái ni m v Pushdown Automataệ ề

Ta đã bi t: ế L p RL đ c sinh ra t RG và đ c đoán nh n b i FA; CFL ớ ượ ừ ượ ậ ở
đ c sinh ra t CFG.ượ ừ

Câu h i: ỏ Li u có th đ c đoán nh n CFL b i m t FA? N u có thì ệ ể ượ ậ ở ộ ế
automata đó nh th nào?ư ế

Ví d 6.1: ụ Automata đoán nh n ngôn ng d ng:ậ ữ ạ
{0n1n}; S 0S1 | ε→

Ví d 6.2: ụ Automata đoán nh n ngôn ng d ng:ậ ữ ạ
{wcwR | w (0+1)*}; S 0S0 | 1S1 | c∈ →

Ví d 6.3: ụ Automata đoán nh n ngôn ng d ng:ậ ữ ạ
{wwR | w (0+1)*}; S 0S0 | 1S1 | ε∈ →

Ví d 6.4: ụ {a2nbn}; S aaSb | ε→
6/27/14
5
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1. Khái ni m v Pushdown Automataệ ề
6/27/14
6

Ví d 6.5: ụ L={0n1n}= {ε, 01, 0011, 000111, …}, thi t k ế ế
DFA đoán nh n ngôn ng trên ???ậ ữ

0,1
q0
q7
0
q1
11
q2
1
q5
0
q3
11
q4
0
1
0
0
0,1
q6
0


Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
Bài 6. Pushdown Automata
6.1. Khái ni m v Pushdown Automata (PDA)ệ ề
6.1.1. PDA và các khái ni m liên quanệ
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6.1.3. PDA đ n đ nh (DPDA)ơ ị
6.2. S t ng đ ng gi a 2 d ng PDAự ươ ươ ữ ạ

6.2.1. Bi n đ i t ng đ ng t d ng 2 sang d ng 1ế ổ ươ ươ ừ ạ ạ
6.2.2. Bi n đ i t ng đ ng t d ng 1 sang d ng 2ế ổ ươ ươ ừ ạ ạ
6.3. S t ng đ ng gi a PDA và CFGự ươ ươ ữ
6.3.1. Bi n đ i t ng đ ng t CFG sang PDAế ổ ươ ươ ừ
6.3.2. Bi n đ i t ng đ ng t PDA sang CFGế ổ ươ ươ ừ
6/27/14
7
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ

Ví d 6.5: ụ v ki m tra cân b ng ề ể ằ
c a chu i đóng m ngo c s d ng ủ ỗ ở ặ ử ụ
stack:
while (input symbol is “[”) {
<push “[” onto the stack>;
while (input symbol is “]”) &&
(top of stack is “[”)
<pop>;
}
if (all of input read) && (top of stack
is “ ”)
<accept>.

Xét chu i nh p vào “[ [ ] [ ] ]”:ỗ ậ
Образец текста
Второй уровень
Третий уровень
Четвертый уровень
Пятый уровень

6/27/14
8
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ

PDA là m t ộ FA v i s b xung thêm m t ngăn x p (ớ ự ổ ộ ế stack) đóng vai
trò b nh , do v y kh năng ghi nh c a ộ ớ ậ ả ớ ủ FA đ c tăng lên, d n đ n ượ ẫ ế
PDA có kh năng đoán nh n l p ngôn ng r ng h n là ả ậ ớ ữ ộ ơ RL (RG,
RE);

Stack ho t đ ng theo nguyên lý ạ ộ FILO (LIFO), do đó FA s d ng b ử ụ ộ
nh có tên g i là ớ ọ Pushdown automata;

T i m i th i đi m, PDA đi u khi n đ ng th i c dòng d li u nh p ạ ỗ ờ ể ề ể ồ ờ ả ữ ệ ậ
vào (băng nh p- tapeậ ) và b nh - ộ ớ b đ y xu ng ộ ẩ ố (stack). Khi đ c ọ
m t tín hi u vào, ộ ệ PDA có th chuy n sang m t tr ng thái m i, ho c ể ể ộ ạ ớ ặ
thêm, xóa đi d li u t ữ ệ ừ stack, ho c đ ng th i c hai;ặ ồ ờ ả

L p ớ PDA có kh năng đoán nh n l p ả ậ ớ CFL, trong đó bao g m các ồ
ngôn ng l p trình hi n đ i;ữ ậ ệ ạ
6/27/14
9
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ

Có 2 d ng ạ chuy n tr ng thái (transitions)ể ạ :

D ng 1: ạ ph thu c vào ký hi u nh p. T i m i tr ng thái, v i 1 ký hi u đ c ụ ộ ệ ậ ạ ỗ ạ ớ ệ ọ

vào và đ nh stack, PDA s l a ch n tr ng thái k ti p và m t chu i ký hi u ỉ ẽ ự ọ ạ ế ế ộ ỗ ệ
thay th trên stack, đ u đ c d ch sang ph i 1 ký hi u;ế ầ ọ ị ả ệ

D ng 2ạ : không ph thu c vào ký hi u nh p (d ch chuy n ε). Đ u đ c đ ng ụ ộ ệ ậ ị ể ầ ọ ứ
im. Ngăn x p bi n đ i.ế ế ổ

Có 2 cách đ nh nghĩa ị ngôn ng ch p nh n b i PDA:ữ ấ ậ ở

Ngôn ng ch p nh n b i stack r ngữ ấ ậ ở ỗ : G m các chu i nh p mà sau b c ồ ỗ ậ ướ
chuy n cu i cùng stack tr v tr ng thái r ng;ể ố ở ề ạ ỗ

Ngôn ng ch p nh n b i tr ng thái k t thúc: ữ ấ ậ ở ạ ế G m các chu i nh p mà sau ồ ỗ ậ
b c chuy n cu i cùng r i vào m t trong các tr ng thái k t thúc;ướ ể ố ơ ộ ạ ế
6/27/14
10
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ
6/27/14
11
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University

Mô hình máy PDA:
6.1.1. PDA và các khái ni m liên quanệ

Ví d 6.6: ụ xét L = {wcwR | w ∈ (0 + 1)*} đ c sinh ra t CFG:ượ ừ
S 0S0 | 1S1 | c→
Ta xây d ng PDA nh sau:ự ư


B đi u khi n có 2 tr ng thái q1 và q2ộ ề ể ạ

Stack có 3 ký hi u: ệ xanh (B), vàng (Y) và đ (R)ỏ

Quy t c thao tác trên automata: ắ
6/27/14
12
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ
6/27/14
13
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
Đ nh ỉ
stack
Tr ng ạ
thái
Ký t đ c vàoự ọ
0 1 c
Xanh (B)
q1 push(B) push(Y) chuy n sang q2ể
q2 pop()
Vàng (Y)
q1 push(B) push(Y) chuy n sang q2ể
q2 pop()
Đ (R)ỏ
q1 push(B) push(Y) chuy n sang q2ể
q2 pop() và không đ c ký t nàoọ ự


Thao tác trên automata v i chu i 1011c1101 ??? ớ ỗ
6.1.1. PDA và các khái ni m liên quanệ

ĐN 6.1: m t PDA A là m t h th ng 7 thành ph n:ộ ộ ệ ố ầ
A (Q, Σ, Γ, δ, q0, Z0, F)

Q : t p h u h n các tr ng thái;ậ ữ ạ ạ

Σ : b ch cái nh p (ộ ữ ậ tape or input alphabet);

Γ : b ch cái stack (ộ ữ stack alphabet);

δ : hàm chuy n Q x (Σ ể ∪ {ε}) x Γ t p con c a Q x Γ*;→ ậ ủ

q0 : tr ng thái kh i đ u;ạ ở ầ

Z0 : ký hi u b t đ u trên stack;ệ ắ ầ

F ⊆ Q : t p các tr ng thái k t thúc (n u PDA ch p nh n chu i b ng ậ ạ ế ế ấ ậ ỗ ằ
Stack r ng thì F = Ø).ỗ
6/27/14
14
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ

ĐN 6.2: Hàm chuy n ể δ ph thu c ký hi u nh pụ ộ ệ ậ :
δ(q, a, z) = { (p1, γ1), (p2, γ2), , (pm, γm) },
6/27/14
15

Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
trong đó:

tr ng thái hi n th i là q;ạ ệ ờ

ký t đ c hi n th i là a;ự ọ ệ ờ

ký hi u trên đ nh hi n th i c a ệ ỉ ệ ờ ủ
stack là z;

tr ng thái chuy n t i là pi , 1 ạ ể ớ ≤ i ≤
m;

Thay th z b ng γi trên đ nh stack;ế ằ ỉ

Chuy n đ u đ c t i v trí ký t ti p ể ầ ọ ớ ị ự ế
theo trên băng.
q
p1
p2
pm
a, z → γ1
a, z → γ2
a, z → γm
6.1.1. PDA và các khái ni m liên quanệ

ĐN 6.3: Hàm chuy n ể δ không ph thu c ký hi u nh pụ ộ ệ ậ :
δ(q, ε, z) = { (p1, γ1), (p2, γ2), , (pm, γm) },
6/27/14

16
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
trong đó:

tr ng thái hi n th i là q;ạ ệ ờ

ký hi u trên đ nh hi n th i c a ệ ỉ ệ ờ ủ
stack là z;

tr ng thái chuy n t i là pi , 1 ạ ể ớ ≤ i ≤
m;

Thay th z b ng γi trên đ nh stack;ế ằ ỉ

Không có ký hi u đ c vào, không ệ ọ
d ch chuy n đ u đ c.ị ể ầ ọ
q
p1
p2
pm
ε, z γ1→
ε, z γ2→
ε, z γm→
6.1.1. PDA và các khái ni m liên quanệ

Ví d 6.6: ụ PDA ch p nh n wcwR b ng Stack r ngấ ậ ằ ỗ
1) δ(q1, 0, R) = {(q1, BR)} 7) δ(q1, c, R) = {(q2, R)}
2) δ(q1, 1, R) = {(q1, YR)} 8) δ(q1, c, B) = {(q2, B)}
3) δ(q1, 0, B) = {(q1, BB)} 9) δ(q1, c, Y) = {(q2, Y)}

4) δ(q1, 1, B) = {(q1, YB)} 10) δ(q2, 0, B) = {(q2, ε)}
5) δ(q1, 0, Y) = {(q1, BY)} 11) δ(q2, 1, Y) = {(q2, ε)}
6) δ(q1, 1, Y) = {(q1, YY)} 12) δ(q2, ε, R) = {(q2, ε)}

ĐN 6.4: Hình thái (configuration or ID) c a PDA ủ dùng đ ghi nh ể ớ
tr ng thái và n i dung c a stack:ạ ộ ủ
(q, aw, zα) (p, w, βα)→ n u δ(q, a, z) ch a (p, β)ế ứ
6/27/14
17
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.1. PDA và các khái ni m liên quanệ
ĐN 6.5: Ngôn ng ch p nh n b i PDA:ữ ấ ậ ở

Ngôn ng đ c ch p nh n b ng tr ng thái k t thúcữ ượ ấ ậ ằ ạ ế
L (A) = {w | (q0, w, Z0) * (p, → ε, γ) v i p ớ ∈ F và γ ∈ Γ*}

Ngôn ng đ c ch p nh n b i stack r ngữ ượ ấ ậ ở ỗ
N (A) = {w | (q0, w, Z0) * (p, ε, ε) v i p → ớ ∈ Q}

Ví d 6.6: ụ PDA ch p nh n wcwR b ng Stack r ng v i chu i nh pấ ậ ằ ỗ ớ ỗ ậ
001c100.
(q1, 001c100, R) (q1, 01c100, BR) (q1, 1c100, BBR) → → →
(q1, c100, YBBR) (q2, 100, YBBR) (q2, 00, BBR) → → →
(q2, 0, BR) (q2, ε, R) (q2, ε, ε) : → → ch p nh n chu i.ấ ậ ỗ
6/27/14
18
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
Bài 6. Pushdown Automata

6.1. Khái ni m v Pushdown Automata (PDA)ệ ề
6.1.1. PDA và các khái ni m liên quanệ
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6.1.3. PDA đ n đ nh (DPDA)ơ ị
6.2. S t ng đ ng gi a 2 d ng PDAự ươ ươ ữ ạ
6.2.1. Bi n đ i t ng đ ng t d ng 2 sang d ng 1ế ổ ươ ươ ừ ạ ạ
6.2.2. Bi n đ i t ng đ ng t d ng 1 sang d ng 2ế ổ ươ ươ ừ ạ ạ
6.3. S t ng đ ng gi a PDA và CFGự ươ ươ ữ
6.3.1. Bi n đ i t ng đ ng t CFG sang PDAế ổ ươ ươ ừ
6.3.2. Bi n đ i t ng đ ng t PDA sang CFGế ổ ươ ươ ừ
6/27/14
19
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.2. PDA không đ n đ nh (NPDA)ơ ị

Ví d 6.7:ụ thi t k PDA ch p nh n ngông ng trong vd ế ế ấ ậ ữ
6.3:
{wwR | w ∈ (0 + 1)*} b ng Stack r ngằ ỗ

Nh n xét: ậ do không có ký hi u c đ bi t th i đi m chuy n ệ ể ế ờ ể ể
t tr ng thái q1 sang q2, d n đ n b t bu c ph i đoán th ừ ạ ẫ ế ắ ộ ả ử
(khi th y 2 ký hi u liên ti p gi ng nhau)ấ ệ ế ố

N u ký hi u thu c chu i xuôi: gi nguyên tr ng thái q1 ế ệ ộ ỗ ữ ạ
và push vào stack;

N u ký hi u thu c chu i ng c: chuy n sang tr ng thái ế ệ ộ ỗ ượ ể ạ
q2 và pop kh i Stackỏ
6/27/14

20
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.2. PDA không đ n đ nh (NPDA)ơ ị

Ta xây d ng nh sau : ự ư
A({q1, q2}, {0, 1}, {R, B, Y}, δ, q1, R, Ø),
trong đó δ có các b c chuy n nh sau:ướ ể ư
1) δ(q1, 0, R) = {(q1, BR)} 6) δ(q1, 1, Y) = {(q1, YY),(q2, ε)}
2) δ(q1, 1, R) = {(q1,YR)} 7) δ(q2, 0, B) = {(q2, ε)}
3) δ(q1, 0, B) = {(q1, BB), (q2, ε)} 8) δ(q2, 1, Y) = {(q2, ε)}
4) δ(q1, 0, Y) = {(q1, BY)} 9) δ(q1, ε, R) = {(q2, ε)}
5) δ(q1, 1, B) = {(q1, YB)} 10)δ(q2, ε, R) = {(q2, ε)}

Các phép chuy n hình thái c a PDA ch p nh n chu i 001100 thu c ể ủ ấ ậ ỗ ộ
ngôn ng {wwR | w ữ ∈ (0 + 1)*} b ng stack r ng: ằ ỗ
6/27/14
21
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
(q1, 001100, R)

(q1, 01100, BR) → (q2, 1100, R) → (q2, 1100, ε) : reject!

(q1, 1100, BBR)

(q1, 100, YBBR) → (q2, 00, BBR)
↓ ↓
(q1, 00, YYBBR) (q2, 0, BR) → (q2, ε, R) → (q2, ε, ε): accept!


(q1, 0, BYYBBR) → (q2, ε, YYBBR) : reject!

(q1, ε, BBYYBBR): reject!
6/27/14
22
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6/27/14
23

NPDA đoán nh n ngôn ng {wwR | w ậ ữ ∈ (0 + 1)*} :
q0
q1 q2
Start
ε, ε  ε
0, ε  0
1, ε  1
0,0 ε
1,1  ε
ε, $  ε
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
q1
q2
0, B  ε
1, Y  ε
0, R  BR
1, R  YR

0,B  BB
1, Y YY
0,0 ε
1,1  ε
ε, R  ε
0, Y  BY
1, B YB
ε, R  ε
Bài 6. Pushdown Automata
6.1. Khái ni m v Pushdown Automata (PDA)ệ ề
6.1.1. PDA và các khái ni m liên quanệ
6.1.2. PDA không đ n đ nh (NPDA)ơ ị
6.1.3. PDA đ n đ nh (DPDA)ơ ị
6.2. S t ng đ ng gi a 2 d ng PDAự ươ ươ ữ ạ
6.2.1. Bi n đ i t ng đ ng t d ng 2 sang d ng 1ế ổ ươ ươ ừ ạ ạ
6.2.2. Bi n đ i t ng đ ng t d ng 1 sang d ng 2ế ổ ươ ươ ừ ạ ạ
6.3. S t ng đ ng gi a PDA và CFGự ươ ươ ữ
6.3.1. Bi n đ i t ng đ ng t CFG sang PDAế ổ ươ ươ ừ
6.3.2. Bi n đ i t ng đ ng t PDA sang CFGế ổ ươ ươ ừ
6/27/14
24
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University
6.1.2. PDA đ n đ nh (DPDA)ơ ị

ĐN 6.6: M t PDA A(Q, ộ Σ, Γ, δ, q0, Z0, F) đ c g i là đ n đ nh n u:ượ ọ ơ ị ế

∀q ∈Q và Z ∈ Γ: n u δ(q, ε, Z) ≠ Ø thì δ(q, a, Z) = Ø,ế ∀a∈ Σ

Không có q ∈ Q, Z ∈ Γ và a ∈ (Σ ∪ {ε}) mà δ(q, a, Z) ch a nhi u h n ứ ề ơ

m t ph n t .ộ ầ ử

Chú ý: đ i v i PDA thì d ng đ n đ nh và không đ n đ nh là ố ớ ạ ơ ị ơ ị không
t ng đ ng nhauươ ươ .

Ví d 6.7ụ : wwR đ c ch p nh n b i PDA không đ n đ nh, nh ng ượ ấ ậ ở ơ ị ư
không đ c ch p nh n b i b t kỳ m t PDA đ n đ nh nào.ượ ấ ậ ở ấ ộ ơ ị
6/27/14
25
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University

×