Professional Documents
Culture Documents
BO CO BI TP LN H CHUYN GIA
TI: Xy dng h chuyn gia nhn dng con vt
Gv hng dn: TS. Phm Vn H
H Ni 12/08/2013
Nhm 27 Lp KHMT2-K5
Mc lc
Phn cng cng vic ............................................................................................................................... 2
I.
II.
2.
3.
III.
2.
Thut ton gii thch li khuyn khi ngi dng nhn nt Gii thch ................................. 8
3.
4.
5.
IV.
2.
3.
H tn
L Thanh Ngh
Vn Lng
Cng vic
Tm hiu thut ton suy din tin, vit bo co
Tm hiu cc thut ton gii quyt d tha d liu
Nhm 27 Lp KHMT2-K5
I.
1. Mc ch
p dng cc kin thc hc, lp trnh mt chng trnh m phng, dng
h chuyn gia. H nhn dng mt s ng vt trong bi ny s dng c s tri
thc ngi dng da trn cc s kin ngi dng a vo. H chuyn gia s s
dng mt ng c suy din thch hp kt hp cc s kin ngi dng a
vo vi cc lut c xy dng sn tm c mc tiu thch hp.
2. Cch thc thc hin
- Ngn ng la chn: C#
- S dng c s d liu bao gm tp cc s kin, cc lut, lu tr trong
cc tp .txt.
- S dng 3 giao din: giao din chnh chy chng trnh (frmMain),
giao din trnh by (frmExplain), giao din qun l tp s kin, tp lut
(frmManagerRule)
- S dng cc thut ton nh suy din tin, thut ton tm bao ng, loi
b lut tha, s kin tha.
II.
a ra kt qu.
Nhm 27 Lp KHMT2-K5
*/
Nhm 27 Lp KHMT2-K5
* +
/*Tnh li tp SAT*/
}
If
Nhm 27 Lp KHMT2-K5
X+ = X+ ;
Flag = True;
}
}
}
}
c. Thut ton tm ph ti thiu
Input : Lc quan h ban u Q v tp ph thuc hm F, s lng ph
thuc hm trong F l m.
Output : Tp ph thuc hm ti thiu ca F
Bc 1 :
Tch v phi mi ph thuc hm trong F sao cho v
phi ca mi ph thuc hm ch cha mt thuc tnh
(iu ny lun thc hin c do b trn)
f: X Y
F
A
Y
g = X A F = F
g
m = m + 1
Bc 2 : Tm tp ph thuc hm y bng cch loi
b cc thuc tnh d tha v tri ca tng ph
thuc hm.
f X A
F
B
X
X' =X B
If (X' A
F+) X = X'
Ch :
Vic tm tt c cc tp X' X theo thut ton trn
hon ton thay th c vic tm X' cch tm cc tp
con ca X.
Bc 3 : Loi b cc ph thuc hm d tha trong F.
f
F
G = F f {loi f ra khi F. v lu { F f} vo G }
If (F + = G+ ) {gi th tc kim tra F, G tng ng
di}
Nhm 27 Lp KHMT2-K5
III.
Ci t chng trnh
Nhm 27 Lp KHMT2-K5
2. Thut ton gii thch li khuyn khi ngi dng nhn nt Gii thch
protected void LoadExplain()
{
ArrayList listNode = new ArrayList();
LoadListNode(listNode);
if (VET == null) return;
string mes = "Qu trnh suy din:\r\n";
string exp = "Gii thch: \r\n";
foreach (var itemV in VET)
{
Rule r = (Rule)itemV;
mes += "Theo lut "+r.nameRule +": "+ r.clauseLeft + "=>"
+ r.clauseRight + " th:\r\n";
mes += Common.RuleToExplain(r) + "\r\n";
}
txtExplain.Text = mes;
}
public static string RuleToExplain(Rule rule)
{
string[] s = rule.clauseLeft.Split('^');
string left = "";
for (int i = 0; i < s.Length; i++)
{
if (i < s.Length - 1) left += ReadNameToDesc(s[i]) + " v
";
else left += ReadNameToDesc(s[i]);
}
return left + " => " + ReadNameToDesc(rule.clauseRight);
}
Nhm 27 Lp KHMT2-K5
continue;
}
string s = R[count].Substring(0, R[count].IndexOf('='));
if (match(result, s))
{
flag2 = false;
flagArray[count] = true;
s = R[count].Substring(R[count].IndexOf('>') + 1);
if (!match(result, s))
{
result += "^" + s;
}
Nhm 27 Lp KHMT2-K5
}
count++;
if (count == R.Length && flag2)
{
break;
}
if (count == R.Length)
{
flag2 = true;
count = 0;
}
flag = true;
foreach (bool item in flagArray)
{
if (!item)
{
flag = false;
break;
}
}
}
return result.ToString();
}
Nhm 27 Lp KHMT2-K5
Nhm 27 Lp KHMT2-K5
string[] R = Common.ArrayListToArrayString(arr);
string re =
lstbDSLuat.SelectedItem.ToString().Split(':')[1].Split('=')[0];
string[] ev = re.Split('^');
ArrayList Events = new ArrayList();
foreach (var item in ev)
{
string bd = Common.timBaoDong(Common.RemoveEvent(re,
item), R);
if (Common.match(bd, item))
Events.Add(item);
}
if (Events.Count == 0)
{
MessageBox.Show("Khng c s kin no d tha","Thng
bo");
return;
}
string ms = "Cc s kin d tha:\r\n";
foreach (var item in Events)
{
ms += item + "\r\n";
}
ms += "Bn c mun loi b cc s kin d tha ra khi
lut:\r\n"+lstbDSLuat.SelectedItem;
string te = lstbDSLuat.SelectedItem.ToString();
if (MessageBox.Show(ms, "Thng bo",
MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) ==
System.Windows.Forms.DialogResult.OK)
{
foreach (var item in Events)
{
string a = te.Substring(0, te.IndexOf(':') + 1) +
Common.RemoveEvent(re, item.ToString()) + te.Substring(te.IndexOf('='));
lstbDSLuat.Items[lstbDSLuat.SelectedIndex] = a;
}
12
Nhm 27 Lp KHMT2-K5
Common.WriteTextToFile("Rule.txt", lstbDSLuat);
}
}
13
Nhm 27 Lp KHMT2-K5
IV.
14
Nhm 27 Lp KHMT2-K5
15
Nhm 27 Lp KHMT2-K5
16