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

Khóa luận tốt nghiệp Toán tin: Xây dựng chương trình minh họa hoạt động của Automat đẩy

36 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Chương Trình Minh Họa Hoạt Động Của Automat Đẩy
Tác giả Nguyễn Thai Khỏnh Quyền
Người hướng dẫn Thầy Nguyễn Ngục Trung
Trường học Trường Đại Học Sư Phạm Tp.Hcm
Chuyên ngành Toán-Tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2006
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 36
Dung lượng 31,31 MB

Nội dung

Chương trình minh họa hoạt động automat dayChuong | CƠ SƠ LY THUYET Lang Các automat day chấp nhận một lớp ngôn ngữ rộng hơn lớp các ngôn ngữ được chap nhận bởi các automat hữu hạn, lớp

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM

Trang 2

LỜI NÓI ĐẦU

oad,

Mén học ngôn ngữ hỉnh thức va automat có rất nhiều ứng dụng trong lĩnh

vực khoa học may tinh như xây dựng các trình biên dịch, nhận dạng và chuyên đôi

vita các ngôn ngữ khác nhau Do đỏ môn học này là môn học bat buộc đối với

các sinh viên nghành CNTT trong các trường | dai học Tuy nhién việc giảng dạy

và học môn nay con gap nhiều khỏ khăn do thiếu các chương trình hỗ trợ để minhhoa, Dd án được xảy dựng không ngoài mục đích cung cấp công cụ hỗ trợ cho

việc day va học trong đỏ tap trung xảy dựng chương trình minh họa hoạt động của

automat day,

Chương trình củn nhiều hạn chế va sai sót, mong các bạn thông cảm

Thanh phê Hỗ Chi Minh, ngày 15 thắng 6 nằm 2006

Hi ml Ki ier

SVTH: Nguyễn Thai Khánh Quyên I

Trang 3

Chương trình minh họa hoạt động automat day

Chuong |

CƠ SƠ LY THUYET

Lang

Các automat day chấp nhận một lớp ngôn ngữ rộng hơn lớp các ngôn ngữ

được chap nhận bởi các automat hữu hạn, lớp này có quan hệ chặt chẽ với các

thiết bị và quá trình của kĩ thuật tính toán đặc biệt là các công cụ dé dịch và phan

lich ngôn ngữ lap trinh

Một automat day bao gốm:

Một bang vao trên dé có ghi một bộ chữ kết thúc

Một dau đọc dé đọc ki hiệu trên bang vào mỗi lan chỉ doc một kí hiệu rỗi

dich sang phải một vị trí hoặc không doc và đứng nguyên tại chỗ

Một tap hữu han các trạng thải điều khiến

Một bang day trên dé ghi một từ thuộc bảng chữ kết thúc hoặc không kết

Trang 4

Chương trình minh họa hoạt động automat day

Ta có thể định nghĩa một cách hình thức như sau;

L/ Các định nghĩa:

Lí Dinh nghĩa 1:

Automat day không tiễn định là bộ bay M=<K,V,W,Ø,g,,z,,F>, trong đó:

K là tập hợp hữu hạn không rỗng các trạng thái

V là bang chữ kết thúc(bảng chữ vào),

W la bang chữ không kết thúc.

g, © X là trạng thái đầu

F eX là trạng thai kết thúcz„ eW là ký hiệu dau trên bang day

œ là ánh xạ từ tập con của Kx(VUte})x Wo vào P(KxW”)

Quả trình chap nhận của tử œ =a;,a) a, e V* của automat day M diễn ra

như sau:

Từ wm dược ghi trên băng vào Lúc dau máy ở trạng thai qo, trên băng day

chỉ chứa ki hiệu z) ở day, dau đọc/phi lúc đầu ở ki hiệu zụ, đầu đọc đọc kí hiệu a,trên bang vào, ki hiệu z ở trên đỉnh bang day, tùy theo gia trị của ø (q,b,z) (b hoặc

a, hoặc là z } máy có thể chuyển sang trạng thai p nào đó, đầu đọc có thể đứng yên hoặc chuyển sang đọc a,., (tuỳ theo b là a, hay £ ) thay z trên bang day bằng y e W

va dau đọc phì chuyên lên vị tri cuỗi cùng trên băng day Quá trình này có thể mỗ

tả một cách hình thức bằng việc chuyển đổi các cầu hình như trong các định nghĩa

Sau

2/ Dinh nghĩa 2:

Cho automat day M=<K,V,W, o,9,.2,,.F> Một cầu hình của M là một bộ

hà <q,œ.y =, trong đó qeK, a eV*,y eW*,

Cho @ =ai,aa, ,a V*, y =XI,Xạ, ,Xmc6 W* Dưới tac dung của anh xa chuyén

trạng thai, M có thé chuyển từ cầu hình này sang cầu hình khác theo nguyễn tắc

sau:

a) Neu <p,y >eo (q,ãp.XmJ thi cau hinh <q, äiäz ,XịX1 Xm” CO thé chuyén

sang cầu hinh <p,lạ 8y,X¡Xz Xm.¡ÿ > và kí hiệu:

<Q, aị8ạ 8y,XỊXa Km> | <page ay XK Ry >

bì Nếu <p,y >eø (q,e,x,) thi cau hình <q, aạa; ay,XỊX x„> có thể chuyển

đến cầu hình <p,ayaạ ay,XịXạ Xm.¡y > và được ki hiệu như sau:

<q), ñyña ft,XỊX3 Mg L <P,4I81-.-81XI|Xa -Xm.|}Ÿ >

SVTH: Nguyễn Thái Khánh Quyên 3

Trang 5

Chương trình minh họa hoạt động automat day

3/ Dir hi

Cho automat day không tiên định M=<K,V,W,o,q,,2,.F> và từ o eV*,

Chúng ta nói rằng automat M chap nhận từ vai trạng thai kết thúc nếu ton tai

một dãy hữu hạn các cau hình œ »,o \, ,Œ „ sao cho:

a) & g=<qy,0 zZo> gọi là cầu hình đầub) œ „=<p,E ,y >, pe F gọi là cầu hình kết thúc

trạng @ p,@ |, ,Œ „ của M sao cho:

a) @ g=<qu,to ,Z4> gọi là cầu hình dau

b) a, Fe je) với mọi i (Ì=0,1,2, m)

c) Œ m=<p,E ,E > gọi la cau hình kết thúc

Tập hop các từ được chap nhận bởi bang nhé rỗng kỉ hiệu là N(M).

5/ Vị dụ |:

Cho automat day tien dinh M1=<{q0.q1,42},4a,b},{Zo21},0 o.20> với o

dược cho như sau:

<qu,aabb,zp> |<qi,aab,z¿z¡> |<qi.bb,zaz\z4> |<qa.b,zaz\> <qa,£ 20> |Zq,,E ,£>

Và <qu,abaab,z„> |<qi,baab,zgz¡> <qa,aab,zy>

Dé dang thầy ring @ ¡c N(M) con @ ;e N(M]), o2¢T(M) Tổng quát chúng

ta có thể chứng minh được rằng N(M)}=T(M} {a"b" , n>=0}

6/ Ví dụ 2:

Xét automat đây không tiên định M2== {qui}, 10,1), {20212210 su 2n 9 >

đ đây œ được xác định như sau:

& (qu,0.,zn0}={Sqn.Zazi>}

SVTH: Nguyễn Thái Khánh Quyễn 4

Trang 6

Chương trình minh họa hoạt động automat đẩy

các cấu hình như sau:

Trang 7

Chương trình minh họa hoạt động automat day

Đường nét đứt là day dịch chuyên các cau hình di đến chap nhận từ 110011

với bang đây rồng Day địch chuyển này như sau:

-Cũng như đối với automat hữu hạn chúng ta có thé mô tả automat day

không tiên định bằng sơ đồ chuyển trạng thái Giữa 2 nút kí hiệu bởi p,q có một

cạnh định hướng từ q đến p và được kí hiệu bởi (a,z/y ) nêu (p.y )e ơ (q,a,z),

aeVtz‡c};p.qeK;zeW; y eW*

1I/ Các định lý:

L/ Định til:

Ngôn ngữ L được chấp nhận bởi automat day MI với ban dây rỗng khi vả

chi khi ton tại một automat đây M2 chấp nhận L với trạng thái kết thúc

Chứng minh:

Gia sử L được chấp nhận bởi automat M2=<K,V,W, ø,4,.z,,Ê> với trạng

thái kết thúc Chúng ta xây dựng MI như sau:

MI=<K+/ {So,S}.V,We [x),ơ “Sox >, ở đây SeSẽK,xeW, a"

được cho nhu sau:

-Với mọi q<K, mọi ae V hoặc a=e , với mọi ze W, ø '(q.a,z) chứamọi phan tử của ø (q,a,2)

-Với mọi qeF, mọi ze WU {x}, Ø `(q.£ ,z) chứa <§,£ >.

-Với mọi ze Wu {x}, o `(S,z ,Z)=(<§,z >}

-Ø *(Se.€ ,X)={<qu,XZoœ>}

Bay giờ ta cần chứng minh T(M2)=N(M1)Lấy œ < T(M2) khi do ton tại một day dịch chuyển các cấu hình sao cho :

<Qo 0) Zo> k Kp, sy >.peF,y eW*

Suy ra :<S¡ 0X? <qu.œ ,XZ¿> L ae |<p.e XY > <S.c XY >k ve

-<S,c ,r > hay œ eN(MI)

Lay w eN(MI),lúc đó <S¿,e ,x> } }<q,e ,e >, với qeK và do đồ ta có:

<Sy,t x> | <qg, ,xZ> } F<p,e xy >Ƒ <S,e xy > ở đây

p€F.y `=xy(xe W) Thêm vào đó <S,¢ ,xy > L avs <S,e >

SVTH: Nguyễn Thai Khanh Quyền 6

Trang 8

Chương trình minh họa hoạt động automat đây

Vậy <qo.0 xZ4> |<p.e xy > hay <qo,@ x2o> ƑÈ F<p.e.y >, peF

có nghĩa law e T(M2)

Bay giờ gia sử L được chap nhận bởi MI=<K,V,W,øØ,g,.z ,ệ > với băng

nhớ rồng Ta xảy dựng automat M2=<K {So,S},V,Wv [x},o *.qo.x,{S}> ở đây

S;„SeK,xeW, Z" được cho như sau:

-Với moi ge K, mọi ae V hoặc a=e , moi ze W, ơ `'(q,a,z)=ø (q,a,2) -Với mọi qeK, ø `(q,e ,z) chứa <S,e >.

-Ø “(So,€ ,X)={<qQa,xZe>}

Nếu « €N(MI) thi <qo,@ ,Z¿> k k<p.e >

Ta có <Sg,@ x> } <qo,0 , XZg> L oY <p.e x> _ <S,¢,e>

Suy ra œ e T(M2).

Nếu œ €T(M2) thi <So,@ ,x> L sẽ <S,z „y>.ycW*

Do định nghĩa ø ` nên trước khi đến cấu hình <S,e ,y > ta phái có cấu hình

<q.£ x> Điều này có nghĩa là ton tại dãy cấu hình <So,@ ,x> +

vs Feqve ,x> |K§,e ,y > và rõ rằng y =e Thêm vào đó <So,@ ,x> | <qo, ,XZ¿> L

Vị dụ 4: Cho văn phạm phi ngữ cảnh G=< (a,b},(S,A},S,P> trong đó P< (Sa,

S>bSA, A>b, S>bS, ADaS} Theo định lý trên ta có thể xây dựng automat day

chấp nhận L(G) như sau:

M=<{a} fa.b} (a,b,S.A),ơ, q, S, @> trong đó o được xác định như sau:

ø (q,£ ,3)= (<q,a>,<q,ASb>,<q,Ab>})ơ(q,£ ,A)= (<q,b>,<q.Sa>}

ø (q,a,a)= {<q,£ >}

ø (q,b,b)={<q,e >}

3/ Định lý 3;

Giả sử M=<K,V,W,ø,ø,„.z, vệ > là automat day không tiên định bat ky, lúc

đó tên tar vẫn phạm phi ngữ cánh G sao cho L(G)<N(M).

SVTH: Nguyễn Thai Khánh Quyên — 7

Trang 9

Chương trinh minh họa hoạt động automat day

I/ Phần 1: nhập thông số automat day gồm:

+5 textbox: chứa thông tin của các thành phần K, V, W, F, o (Delta)

+15 nút (button): cho phép nhập thông tin vào các thành phần K, V, W, F,

ơ bao gồm

© 4 nút tạo: xuất man hình dé nhập số phan tử can tạo trong các tập

K, V, W, F gọi form tạo phần tử

I Textbox dé nhập số phan

tử cần tao

2 Nút tạo

— Teo | aor 3, Nút thoát form, không

thực hiện tạo phân tử mới

© 5 nút thêm trong đó 4 nút thêm của các thành phần K, V,W, F gọi

form thêm phan từ:

I Textbox để nhập phan tử cần

thêm

= 2 Nút thêm

3 Nút thoát form, không

[Them | La = thuc hién thém phan tử

2

© Núi thêm của Delta gọi form nhập anh xa Delta:

SVTH: Nguyễn Thái Khánh Quyên 8

Trang 10

Chương trình minh họa hoạt động automat day

1 Textbox dé nhập chi số cua

phan tử can xóa

Nhap chi so phan tu can xoe‹ | 1 2 Núi xóa

3 Nút thoát form, không

i Xoa | Cancel | s

thực hiện xóa phan tử

e Nut nhập lại cua Delta: cho phép nhập lại các anh xạ Delta

2/ Phần 3 mỏ tá hoạt động của automat đây gom

Đây các textbox chứa bang chữ vào

Diy các textbox chứa bang chữ không ket thúc

Textbox biếu điển quả trình biến đối

Nut nhập tu: gọi torm đẻ nhập từ can kiểm tra

Trang 11

Chương trình minh họa hoạt động automat đẩy

-Nút kiểm tra: thực hiện kiểm tra từ và xuất kết quả ra man hình

-Nút chạy từng bước: thực hiện kiểm tra từ lừng, bước một

-Nút bước kế tiếp: chuyển sang bước kiểm tra tiếp theo

Toàn bộ giao diện chính như sau:

13.Cac nút tạo, thêm, xóa

của K,V,W,F

14.Các nút thêm, xóa, nhập lại của Delta

z0 = (<a), z0x1>

bd se) 14

SVTH: Nguyễn Thái Khánh Quyên 10

Trang 12

Chương trình minh họa hoạt động automat diy

Il Tổ chức cấu trúc dữ liệu:

Trong lớp COtomatDayÐlg ta lưu trừ dữ liệu của K.V,W.F, bang chữ vào

va bang chữ không kết thúc

ES =

K:CStringArray V:CStringArray W:CStringA ray

class COtomatDayDlg : public CDialog

(

protected:

CStringArray K, — “chứa dit liệu của tập trạng thai K CStringArray V; — //chứa dé liệu của bảng chữ vào V

CStringArray W; //chửa dit liệu của bảng chữ không kết thúc W

CStringArrayF, /chứa dif liệu của tập trạng thái kết thúc F CStringArray A; /chứa dữ liệu

CStringArrayZ, — /chứa dit liệu

Đôi với Delta, ta xảy dựng lớp CDelta dé lay đữ liệu từ form

SVTH: Nguyễn Thái Khánh Quyên H

Trang 13

Chương trình mình họa hoạt động automat đây

V:CString W:CStnng

K-CStringArray

SVTH: Nguyén Thai Khanh Quyén 12

Trang 14

Chương trình minh họa hoạt động automat đây

class CDelta

{

public:

CStringArray K; /chứa dit liệu của tập trang thai K

CString V; //chứa đữ liệu của bảng chữ vào V

CString W; I/chứa dit liệu của bảng chữ không kết thúc W

J/Đỗi với tập W*, ta khai bao 9 biến tương ứng với từng combobox

Sơ đỗ quy trình kiếm tra từ:

SVTH: Nguyễn Thái Khánh Quyên 13

Trang 15

Chương trình minh họa hoạt động automat day

Qht: trạng thai hiện tai

CheckIn(Qht,&F): kiểm tra từ được chip nhận với trang thai kết

SVTH: Nguyễn Thái Khánh Quyên

Trang 16

Chương trinh minh họa hoạt động automat đây

void C!Otomatl2ayDlg OnKiemTra()

|

‘TODO: Add your control notification handler code here

‘khoi tao gia tri ban dau

for (Zpos - Z.GetStze()-Ì;Zpos>=0;:2pos )

SV111: Nguyễn Thai Khánh Quyền

Trang 17

Chương trình minh họa hoạt động automat đây

Trang 18

Chương trình minh họa hoạt động automat đẩy

{

ViewStatic(" > Khong chap nhan !");

retum;

//Xu li truong hop co 2 quy tac

if (i<n && j<n && j!=l)

Trang 19

Chương trình minh họa hoạt động automat day

Trang 20

Chương trình minh họa hoạt động automat day ¬

}

SVTH-NguyễnThiKhahQuyn | THƯVIN l9

Trang 21

Chương trình minh họa hoạt động automat đầy

1V/ Ưu và nhược điểm của chương trình

L/ Uu điểm:

Chương trình dé sử đụng và tiện lợi trong các thao tác nhập xuất

Hỗ trợ các chức năng thêm, xóa thuận tiện cho người ding trong thao tac chỉnh

sửa, thay đổi chương trình

Xử lý tốt những bài toán có nhiều hưởng di

Đặc biệt chương trình đưa ra kết quả thực hiện từng bước, dé dang cho người dùngkiêm tra, tham khảo kết quả trong quá trình học

2/ Nhược điểm:

Giao điện nhỏ, chưa đẹp

Không có các ứng dụng đổ họa vào chương trình

SVTH: Nguyễn Thái Khánh Quyên 20

Trang 22

Chương trình minh hoa hoạt động automat day

Cho automat đây tiên định Ml =< {qo,q:.q›}.(a.b},{Zo.Z¡},Ø qo.zo> với ø

được cho như sau:

Ø (Qu,£ Zo)" {<qo.E >}

-Nhắn nút tạo của tập K trên form sẽ xuất hiện hộp thoại yêu cầu nhập số lượng trạng thái của tập K

-Khi đó tập các trạng thái tự động được cập nhật vào tập

K=¡q0,q1.q2}

Thong so Otomat Dạy ——————————

aoe, Celtel)

-Nếu can thêm một trang thái khác vảo tap K, nhắn nút thêm va nhập

phần tử can thêm vào

SVTIH: Nguyễn Thái Khánh Quyên 2

Trang 23

Chương trình mình họa hoạt động automat đây

-Thực hiện tương tự cho các phan tử khác ta sẽ được tập K bat kỷ

như ÿ muôn

- -Nếu muốn xóa phan tử thứ i trong tập K ta nhắn nút xóa va nhập

chỉ sô i dé xóa (i=1,2 ,n).

Nhap chi so phan tu can xoa oa

Lưu ý sau khi xóa một phần tử thì chỉ số được cập nhật lại Ví dụ:

Tập K=(I,2,3), chỉ số im!) ứng với giá trị là 1, khi xóa phan | thi K={2,3}, khi đó chỉ số i=l ứng với giá trị là 2

Bước 2: Nhập bang chữ kết thúc V, thực hiện tương tự như bước | Bước 3: Nhập bang chữ kết thúc W, thực hiện tương tự như bước |

Bước 4: Nhập ánh xạ o

-Nhắn vào nút thêm, xuất hiện hộp thoại để nhập thông tin vào, ta

click chọn từng phan tu theo yéu cau cua bai toan

[5: Kx (VU fe}) x W> P(K x W*)

SVTH: Nguyễn Thái Khanh Quyền —

.

Trang 24

Chương trình mình họa hoạt động automat day

Sau khi nhập xong tat cả các thông tin, dit liệu được trình bảy như

Bước 6: Thực hiện kiếm tra

-Cé 2 nút dé thực hiện kiếm tra:

Nút kiểm tra: xuất kết qua nhanh ra màn hình

Nút chạy từng bước: thực hiện kiểm tra từng bước mới xuất

ket qua ra man hình

-Nếu chọn nút kiêm tra ta được kết qua ngay lập tức trên man hình-Néu chọn chạy từng bước ta sẽ thấy được quy trình đọc tir một cách

rò rang hơn Quy trình đọc như sau

o BỊ: đầu đọc tại vị trí thứ nhất của từ œ ¡=aabb là a,

đầu đọc/ ghi tại 20, máy ở trạng thái q0, nhắn vào

nút bước kẻ tiếp dé qua bước 2

SVTII: Nguyễn Thai Khánh Quyên

Trang 25

Chương trình minh họa hoạt động automat đây

_RIIERTTTTTT+

m¬ [Bang veo

| ¬— | bu.

SCRE

© B2: -Chon kiểu kiểm tra, xuất hiện hộp thoại yêu

cầu chọn hướng đi, đối với ví dụ này ta chọn hướng

thứ 2

— Hoal dong Otomat Day '

(q0, ø, 20) ={<q0, >} va (q0, a z0) ={‹q1, z0z1>}

Ban chon so

-Nhan OK, ta thấy đầu đọc tại vị tri thứ hai của từ

œ ¡=aabb là a, đầu đọc/ghi tại z1, máy ở trạng thái q1, nhắn vào nút bước kế tiếp

Trang 26

Chương trình minh họa hoạt động automat day

SVTH: Nguyễn Thái Khánh Quyên

© B3: Dầu đọc tại vị trí thứ ba của từ @ ¡=aabb là b,

đầu doc/ghi tại z1, máy ở trạng thái q!

Hoại dong Otomat Day

[efefefef [TT TT”

ca“ po cat ebb s01 > na

cow }- < q1, bb, z0z1z1 > Ouse

© B4: Đầu doc tai vị trí thứ tư của từ œ ;=aabb là b,

đầu đọc/ghi tại z1, máy ở trạng thái q2

Hatt Geng Dinas Day

Trang 27

+ Hoat dong Otomat Day

hương trình minh họa hoạt động automat đã

Minn SCP CTP

| Cen cos Fan: ange

rime te 8 mar

LỆ EErFE

[ mu ][ Kema ][Datungkeec |[ Beeekeue ]

© Bố: Đầu doc đọc hết từ , dầu đọc/ghi rỗng, máy ở

trạng thái q2

Hoại dang Otomat DWýT——————

[eJs fe hE Tr Br te |

Dau dọc |— < ql bb z0z1z1 > |wu I= £92 Bae > — Bang veo

Bang dap ioeqlae> v =

Chay tung base | [ Bune ke tep

© B7: đưa ra kết luận từ @ ¡=aabb được chấp nhận

Trang 28

Chương trình minh họa hoạt động automat day

- Hoat dong Otomat Day

Tương tự với @ y=abaab, kết qua từ @ ; không được chấp nhận

SVTH: Nguyễn Thái Khánh Quyên

Trang 29

Chương trình mình họa hoạt động automat đây

Otamat Day

| Chương trình minh họa hoạt động Otomat đây

How dong OrometDay = = |

Xét automat đây không tiên định M2 =<{qu;q¡} {0.1} {20,21.2Z2}.0 ,Qo.20.$ > ¿

ở đây o được xác định như sau:

Ngày đăng: 04/02/2025, 15:02

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

TÀI LIỆU LIÊN QUAN