Sunteți pe pagina 1din 19

I HC QUC GIA TP.

H CH MINH

TRNG I HC CNG NGH THNG TIN


KHOA KHOA HC MY TNH
BO CO N
X L NGN NG T NHIN

VIT CHNG TRNH V CY AND/OR


PHN TCH C PHP CU V PHN TCH TH

Ging vin hng dn: TS. NGUYN TUN NG


Sinh vin thc hin:
NGUYN HONG NGHA
Lp:
Lp mn hc:
Kho:

11520603

KHTN2011
CS221.E21.KHTN
2011

TP. H Ch Minh, Ngy 28 thng 06 nm 2014

I HC QUC GIA TP. H CH MINH

TRNG I HC CNG NGH THNG TIN


KHOA KHOA HC MY TNH
BO CO N
X L NGN NG T NHIN

VIT CHNG TRNH V CY AND/OR


PHN TCH C PHP CU V PHN TCH TH

Ging vin hng dn: TS. NGUYN TUN NG


Sinh vin thc hin:
NGUYN HONG NGHA
Lp:
Lp mn hc:
Kho:

11520603

KHTN2011
CS221.E21.KHTN
2011

TP. H Ch Minh, Ngy 28 thng 06 nm 2014

LI CM N
Li u tin chng em xin c by t lng bit n su sc nht
ti TS. Nguyn Tun ng, Khoa Khoa hc my tnh, i hc Cng ngh
thng tin HQG-HCM, ngi tn tnh hng dn kin thc cn bn
v thit yu hon thnh n.
Tip n, xin cm n cc bn lp CS221.E21.KHTN cng trao
i v b sung kin thc h tr cho vic hon thin n.

TP. H Ch Minh, Ngy 28 thng 06 nm 2014

Nguyn Hong Ngha

NHN XT CA GING VIN

MC LC
I. Tng quan .................................................................................................................................................. 2
1. Thng tin chung .................................................................................................................................... 2
2. Ni dung thc hin............................................................................................................................... 2
3. Cng c h tr ...................................................................................................................................... 2
II. Xy dng chng trnh v cy AND/OR phn tch cu ........................................................................... 3
1. tng ................................................................................................................................................. 3
2. Xy dng class Node ........................................................................................................................ 3
2.1. Cc thuc tnh c khai bo: ...................................................................................................... 3
2.2. Cc hm c xy dng: .............................................................................................................. 5
3. Xy dng chng trnh chnh .............................................................................................................. 6
3.1. Cc bin c khai bo: ............................................................................................................... 6
3.2. Cc hm c xy dng: .............................................................................................................. 6
4. Xy dng giao din v hon thin chng trnh ................................................................................ 7
4.1. Xy dng giao din ........................................................................................................................ 7
4.2. Chng trnh hon chnh .............................................................................................................. 8
5. Kim tra: ............................................................................................................................................. 10
5.1. Mt s vn phm n gin: ........................................................................................................ 10
5.2. Cu mc nh: .............................................................................................................................. 12
III. Xy dng vn phm phn tch cu ....................................................................................................... 14
Vn phm xy dng:............................................................................................................................... 14

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

I. Tng quan
1. Thng tin chung
* Tn n:
Vit chng trnh v cy AND/OR phn tch c php cu v phn tch th.
* Ging vin hng dn: TS. Nguyn Tun ng.
* Sinh vin thc hin: Nguyn Hong Ngha.
* Kho hc: Kho 2011 (Ngy nhp hc: Thng 09/2011).
* Thng tin lin lc ca sinh vin:
STT
Tn
MSSV
Email
1
Nguyn Hong Ngha 11520603 11520603@gm.uit.edu.vn
2. Ni dung thc hin
n thc hin 2 ni dung:
Vit chng trnh xy dng cy AND/OR m phng qu trnh phn tch cu t vn
phm dng c php ca Prolog.
Vit c php DCG phn tch 4 cu th:
Em khng nghe rng thu,
L thu ku xo xc,
Con nai vng ng ngc
p trn l vng kh?
(Ting thu - Lu Trng L)
3. Cng c h tr
Chng trnh v cy AND/OR:
IDE lp trnh: Microsoft Visual Studio 2010.
Mi trng lp trnh: Visual C#: Windows Forms Application.
ng dng h tr: Devcomponents DotNetBar version 10.0.0.0.
Chng trnh h tr kim tra vn phm:
SWI-Prolog (Multi-threaded, 32 bits, Version 6.3.4).

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

II. Xy dng chng trnh v cy AND/OR phn tch cu


1. tng
Mc tiu:
Hon thin chng trnh xy dng cy AND/OR m phng qu trnh phn tch cu t vn
phm dng c php ca Prolog. Chng trnh s dng 2 cu mc nh:
"Em khng nghe rng thu
L thu ku xo xc"
(Ting thu - Lu Trng L)
tng:
Ta nhn thy chng trnh gm 2 bc chnh cn gii quyt:
Bc 1: T vn phm u vo ta cn phn tch cu trn m phng theo cch Prolog
thc hin.
Bc 2: T kt qu bc trn ta s v cy AND/OR m phng li qu trnh phn
tch.
Vy kt qu u ra ca bc 1 v u vo bc 2 phi thng nht hoc c th hiu c
nhau. T , n s xy dng cu trc d liu chnh ca chng trnh: class Node lu
dng cy lu tr cc thng tin v kt qu truy vn vn phm v cc thuc tnh dng v.
class Node c khai bo quy c th lu c cc node (cc thao tc) trong qu
trnh truy vn ng thi c th lu c cu trc cy.
2. Xy dng class Node
class Node c nh ngha quy gm m t 1 Node trong qu trnh truy vn v cc con

ca n. ng thi, lu tr cc thuc tnh dng v.


2.1. Cc thuc tnh c khai bo:
Khai bo

Chc nng

Cc thuc tnh truy vn


string
Tn lut c p dng; tn cc bin tri,
name,nameL,nameR,unionNameL,unionName phi; tn cc bin trc qu trnh hp nht
R
(unified)

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

Lu tr danh sch cc t trong cu thuc


thnh phn truy vn (Node) tri, phi hin
ti.
int numsRule;
Th t lut c p dng ti Node.
bool flag;
C nh du gi tr ca truy vn ti Node
hin ti: true Truy vn dng; false truy
vn sai.
Node[] chilList;
Danh sch cc Node con (cc kt qu truy
vn ti Node hin ti).
Node parent;
Node hin ti l thnh phn truy vn ca
panrent.
Cc thuc tnh dng v
bool isSpecialNode = false;
Node c bit, tn hin th b thay i
trong qu trnh truy vn.
string draw;
Ni dung s dc vit (v) ra ca Node.
float primeDistance = 100;
Khong cc c bn (Pixel) gia 2 Node
cnh nhau (theo ngha hin th trn mn
hnh). Gi tr mc nh: 100.
SizeF sizeNode;
rng ca Node khi v. c tnh nh
sau:
- rng c bn mt Node bng rng
ca string draw; khi v ra.
- rng ca Node khc Node l bng
Max( rng c bn Node ; tng
rng Node con + khong cch gia cc
Node).
float primeHeight;
Chiu cao c bn gia 2 Node bc k
nhau.
int numsChild;
S Node con cn v ra
PointF location;
V tr (to ) ca Node.
Brush brushValue=Brushes.DarkOrange;
Cc gi tr Brush ca cc thnh phn c
Brush
bn c v.
string[] tagNodeLeft;
string[] tagNodeRight;

brushUniValue=Brushes.OliveDrab;
Brush
brushTree
Brushes.DarkSlateGray;
static float sizeFont = 20;
static float lineWidth = 2.0f;

Size ch v dy ca ng k.

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

Font font = new Font("Calibri", Gi tr font ch ca cc thnh phn dng


sizeFont,
FontStyle.Bold, text.
GraphicsUnit.Pixel);
Font uniFont = new Font("Tahoma",
sizeFont
*
(float)0.618,
FontStyle.Bold, GraphicsUnit.Pixel);

2.2. Cc hm c xy dng:
Khai bo
public Node()
public Node(Node a)

Chc nng
Phng thc khi to
Khi to 1 Node c bn.
Khi to, sao chp 1 Node (khng sao chp
thnh phn Node[] chilList;

Cc hm h tr tnh ton

Tnh cc ch s SizeF sizeNode; v int


numsChild;
private PointF calcLineConnect(PointF Tnh to ca im cch p1 khong cch
p1, PointF p2,float k)

k pixel theo chiu ca 12


public void CalcDistance(Graphics g)

Kim tra chui s c phi dng danh sch


cc t.
public string[] expandList(string s) Trin khai danh sch cc t s mng vo
chui (mi phn t ch 1 t).
public string reduceDraw(string s)
Rt gn chui s c dng danh sch cc t
v ra mn hnh.
private bool canTurnBack(Node a)
Kim tra xem Node a c quay lui khi truy
vn khng.
Cc hm v
public SizeF DrawNode(Graphics g)
V mt Node ra mn hnh da trn cc
thng s ca n (Khng v cc thnh phn
con)
public void DrawTree(Graphics g)
V mt Node hon chnh (Dng cy) da
trn cc thng s v cc thnh phn quy
ca n.
public bool isList(string s)

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

3. Xy dng chng trnh chnh


3.1. Cc bin c khai bo:
Khai bo

Chc nng
Lu tr vn phm hin ti, vn phm mc
nh, cu truy vn mc nh.
Lu cc lut p dng
Cy AND/OR truy vn.
Cc thnh phn ho; Thnh phn ho
c x l ton b trn bitmap trc khi
xut ra mn hnh; mu nn chung.

string[] dcg,normalDcg,normalQuery;
Node[] rule;
Node treeAO;
Graphics g;
Bitmap bitmap;
Color backColor;

3.2. Cc hm c xy dng:
Khai bo

Chc nng
Hm khi to
Khi to cc thng s c bn
ca giao din, cc thnh
phn ho.

public Form1()

Cc phng thc x l v truy vn


private void analysis(string s,int count)
private void UnionRule(Node a, Node b)
private void startQuery()
private bool query(Node a, ref string match)
private bool lprocess()
private void drawANDOR()

X l, tng hp d liu u
vo: Cc lut, cu truy vn.
Hp nht (unified) Node a
v Node b.
Hm chnh khi to truy vn
v truy vn.
Hm gi lnh truy vn.
Khi to v gi thao tc v
trc tip ln mn hnh.

Cc s kin
private void Form1_Load(object sender, EventArgs S kin khi to lc Form
e)
Load
private
void
buttonRun_Click(object
sender, S kin click ca cc button
EventArgs e)
private void buttonReset_Click(object sender,
EventArgs e)

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

private
void
buttonExit_Click(object
sender,
EventArgs e)
private void buttonClear_Click(object sender,
EventArgs e)
private
void
buttonEdit_Click(object
sender,
EventArgs e)
private
void
buttonHow_Click(object
sender,
EventArgs e)
private void pictureBoxHow_Click(object sender, X l form tr gip v hp
EventArgs e)
iu khin.
private
void
expandablePanel1_ExpandedChanged(object
sender,
DevComponents.DotNetBar.ExpandedChangeEventArgs
e)

4. Xy dng giao din v hon thin chng trnh


4.1. Xy dng giao din
Giao din c bn ca chng trnh c chia lm 2 phn, cc thng s c tnh theo t l
mn hnh hin th:

Hnh 4.1.1 T l cc thnh phn chnh ca giao din chng trnh.

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

Phn (I): Bng iu khin, cha ton b cc phm chc nng, thng tin chng trnh.
Bng iu khin s dng Expanable c th thu gn li mn hnh v (II) rng hn.
Phn (II): Vng hin th hnh v, c dng Panel dng thanh cun (do mt s hnh
cy ln hn vng hin th).

Hnh 4.1.2 T l thnh phn (I): Bng iu khin.


4.2. Chng trnh hon chnh
Giao din v cc phm, ni dung chnh ca chng trnh:

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

Hnh 4.2.1 Giao din chnh v cc phm chc nng ca chng trnh
Ta c th thu gn bng iu khin bng cch nhn vo thanh tiu ca n:

Hnh 4.2.2 Thu gn bng iu khin


Giao din hng dn:

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

Hnh 4.2.3 Giao din hng dn


5. Kim tra:
5.1. Mt s vn phm n gin:
(1)
Vn phm

Truy vn

1) s(A,B) :- np(A,C), vp(C,B). s([n, hc, bi],[]).


2) np(A,B) :- prp(A,B).
3) np(A,B):-nn(A,B).
4) vp(A,B):-vb(A,C), np(C,B).
5) prp([n|A],A).
6) vb([hc|A], A).
7) nn([bi|A], A).
Kt qu:

10

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

(2)
Vn phm
Truy vn
1) s(A, B) :- np(A, C), vp(C, D), pp(D, B). s([n,,i,paris,vo,nm,ngoi],[]).
2) np(A, B) :- prp(A, B).
3) np(A, B) :- nrp(A, B).
4) np(A, B) :- nn(A, C), jj(C, B).
5) vp(A, B) :- vp1(A, C), np(C, B).
6) vp1(A, B) :- rb(A, C), vb(C, B).
7) pp(A, B) :- in(A, C), np(C, B).
8) prp([n|A],A).
9) rb([|A],A).
10) vb([i|A], A).
11) nrp([paris|A],A).
12) in([vo|A],A).
13) nn([nm|A],A).
14) jj([ngoi|A],A).
Kt qu: Do kch thc ln nn ta cn dng thanh cun c th xem ht hnh.

11

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

5.2. Cu mc nh:
Vn phm
Truy vn
1) s(A,B) :- np(A,C), vp(C,B).
s([em,khng,nghe,rng,thu,l,thu,ku,xo,xc],[]).
2) np(A,B) :- prp(A,B).
3) np(A,B) :- np1(A,B).
4) np(A,B) :- nn(A,C), nn(C,B).
5) np(A,B) :- np1(A,C), np2(C,B).
6) np(A,B) :- np1(A,C), vp(C,B).
7) np1(A,B) :- nn(A,C), nn(C,B).
8) np1(A,B) :- nn(A,B).
9) np1(A,B) :- nn(A,C), vb(C,B).
10) np2(A,B) :- np(A,C), vp(C,B).
11) vp(A,B) :- vp1(A,C), np(C,B).
12) vp(A,B) :- vp1(A,B).
13) vp1(A,B) :- vb(A,C), rb(C,B).
14) vp1(A,B) :- rb(A,C), vb(C,B).
15) vp1(A,B) :- vb(A,C), rb(C,B).
16) vp1(A,B) :- vb(A,C).
17) prp([em|A],A).
18) nn([rng|A],A).
19) nn([thu|A],A).
20) nn([l|A],A).
12

BO CO N X L NGN NG T NHIN

21)
22)
23)
24)

GVHD: TS. NGUYN TUN NG

rb([khng|A],A).
rb([xo,xc|A],A).
vb([ku|A],A).
vb([nghe|A],A).

Kt qu:

(*) Mt s cu truy vn khc:


s([em ,nghe, xo xc],[]).

s([em ,khng, ku],[]).

s([em ,nghe, khng],[]).

s([rng ,xo xc, ku],[]).

s([em ,ku, khng],[]).

s([rng ,khng, ku],[]).

s([rng ,nghe, xo xc],[]).

s([thu ,xo xc, nghe],[]).

s([rng ,ku, xo xc],[]).

s([thu ,khng, nghe],[]).

s([thu ,nghe, xo xc],[]).

s([thu ,khng, ku],[]).

s([l ,nghe, xo xc],[]).

s([l ,xo xc, nghe],[]).

s([l ,ku, xo xc],[])..

s([l ,xo xc, ku],[]).

s([em ,khng, nghe],[]).

s([l ,khng, nghe],[]).


13

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

s([l ,khng, ku],[]).

s([em ,nghe, rng, em, ku, khng],[]).

s([em ,nghe, rng, ku],[]).

s([em ,nghe, rng, thu, ku, xo xc],[]).

s([em ,nghe, thu, ],[]).

s([em ,nghe, rng, thu, ku, khng],[]).

s([em ,ku, em, nghe],[]).

s([em ,nghe, thu, rng, ku, xo xc],[]).

s([em ,ku, em, nghe],[]).

s([em ,nghe, thu, rng, ku, khng],[]).

s([em ,ku, thu, ],[]).

s([em ,nghe, l, rng, ku, xo xc],[]).

s([rng ,nghe, em, nghe],[]).

s([em ,nghe, l, rng, ku, khng],[]).

s([rng ,nghe, em, nghe],[]).

s([em ,nghe, l, thu, ku, xo xc],[]).

s([rng ,nghe, thu, ],[]).

s([em ,nghe, l, thu, ku, khng],[]).

s([rng ,ku, em, nghe],[]).

s([em ,ku, rng, rng, nghe, xo xc],[]).

s([rng ,ku, thu, ],[]).

s([em ,ku, rng, rng, nghe, khng],[]).

s([thu ,nghe, rng, ku],[]).

s([em ,ku, rng, rng, ku, xo xc],[]).

s([l ,nghe, thu, ],[]).

s([rng ,ku, thu, l, nghe, xo xc],[]).

s([em ,nghe, rng, em, ku, xo xc],[]).

s([rng ,ku, thu, l, ku, xo xc],[]).

III. Xy dng vn phm phn tch cu


File: [NLP]NguyenHoangNghia_11520603_Do_an_2.pl
Vn phm xy dng:
s --> np, vp.

jjp --> jjpp, vp.

np --> nn.

jjp --> jjpp, np.

np --> dt, np.

jjpp --> jj.

np --> in, np.

jjpp --> jj, jj.

np --> vb, np.

vp --> rb, np.

np --> nn, np.

vp --> vb, rb.

np --> nn, jjp.

vp --> vb, np.

np --> nn, vp.

vp --> vb.

jjp --> jjpp.

nn --> [em].
14

BO CO N X L NGN NG T NHIN

GVHD: TS. NGUYN TUN NG

nn --> [rng].

vb --> [ng,ngc].

nn --> [l].

vb --> [kh].

nn --> [nai].

jj --> [thu].

rb --> [khng].

jj --> [vng].

rb --> [xo,xc].

jj --> [ng,ngc].

vb --> [ku].

jj --> [kh].

vb --> [nghe].

dt --> [con].

vb --> [p].

in --> [trn].

15

S-ar putea să vă placă și