Phương pháp tìm kiếm có kinh nghiệm A cho bài toán tìm đường đi trên 1 bản đồ. - Pdf 28



Đ N TRÍ TUỆ NHÂN TẠO


GVHD: Thầy TS. NGÔ HỮU PHÚC
Sinh viên thực hiện: HÀ ANH VŨ
MSSV: 11870277
Lớp: CHKHMT – TPHCM23A11
 !" #$%&'%
() *+,  / ,01
MỤC LỤC
!"#$%""&'()*+ #
 ,-!
234 !5$6-*789:8:;< = >?@:AB$C7D$,61:7E-*F !GH107IJ
K !>?L !>7:M:7<+:N1
 #./!
012341235123
!O-PQ7<+>R>D -
O-PQH?@ !!7,S->D >+:
TO-PQUV:W?@ !,X !!7>D >+:Y-N-
 6789:;)<=!
>?2:!
 *0 !,7>Z-
 *0 !,7>+:
 :!7,*[!7,*\ :0 W5>F357>?L !>7]
 :8^:0 ::>_ W5!7,*[5$
@2?2!`$>?L !>7 !a  ;,,S>D Ib !c
d !!7N ,*0 !,7eV75$> !7
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 2



() *+,  / ,01
01:3F1:351:3H
>B::8=IEH z
%ka<{D<E,61,w,u!7|$3Z :}N5$08N1:1,*0 !,7:M!7,*[:}N5$0
J ;,v>Z-3N 8:]
n*8]
 JKL2M=
• ~7|82,-=,,1 3S !v~eV7>F357>?L !>7W5!O~Pe5,N:MO~PQ& \ 
TO~PQ!O~P
• ~7|82 !7.$,^7?-Cd !<|7W5~,^7?-W5~
'
eV7>F357>?L !>7W5
• ?e=p>?L !>7 5pI[,:*Nve[,*+ 51>M7>M:M%C| # !f
N ,*s !~
'
1•:
I Cd !,*s !~
'

• D-€~
'
f
~>?@::q ,*?V:~
'
 \ TO~P•TO~
'
Pe`!O~P•!O~
'
PQ

%oljn
%mljm
&
'ok
''m
%'koj
*1 !>Mf
„ g… !'f:1I7D,8^>_ ,*1 !>),[O,*1 !e+34,*\ >),[:M'&>_ P
„ g… !%f
'l&'kgmhoi"~'%'&%l
+34f>_ :MW?@ !!7'l>_ :MW?@ !!7N&†
„ g… !,wn>D D,f3… !nW?-,d !9 :1>_ &3… !lW?-,d !9 :1>_ 
'3… !kW?-,d !9 :1>_ %†d !9 W?-,*K:1,S !3… ! ?8N-f
l%jn"l'nk%&
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 5

H?@ !
!7
\
>_ 
*q !
8^j
^7>D
>_ %
O>_ P
^>_ 
$5>_ 
5p>7
>D
() *+,  / ,01

get { return m_fv; }
set { m_fv = value; }
}
public int gv
{
get { return m_gv; }
set { m_gv = value; }
}
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 6

() *+,  / ,01
public Node nodecha
{
get { return m_nodecha; }
set { m_nodecha = value; }
}
public LuuVet()
{
v = null;
m_nodecha = null;
gv = 0;
fv = 0;
}
public LuuVet(CDinh dinh, int GV, int FV,Node dc)
{
v = dinh;
gv = GV;
fv = FV;
m_nodecha = dc;
}

Head = p;
}
return true;
}
//hàm thêm node vào DSLK để DSLK vẫn tăng dần theo fv
public bool InsertASC(Node n)
{
if (n == null) return false;
if (Head != null)
{
Node p = Head;
Node q=null;
while ( p != null && n.Value.fv > p.Value.fv)
{
q = p;
p = p.Next;
}
if (q == null)
AddHead(n);
else
{
q.Next = n;
n.Next = p;
}
}
else
AddHead(n);
return true;
}
//Hàm lấy và xóa phần tử đầu trong DSLK

protected string m_tendinh;
protected CDinhKe[] m_tapdinhke;
protected int m_luonggia;//gia tri uoc luong:dung ham
danh gia h(u)
protected int m_index;
public CDinh()
{
m_tendinh = "";
m_luonggia = 0;
}
public CDinh(string tendinh)
{
m_tendinh = tendinh;
m_tapdinhke = null;
m_luonggia = 0;
}
public CDinh(string tendinh,int luonggia)
{
m_tendinh = tendinh;
m_luonggia = luonggia;
m_tapdinhke = null;
}
public string tendinh
{
get { return m_tendinh; }
set { m_tendinh = value; }
}
public int index
{
get { return m_index; }

}
m_luonggia = t;
}
}
k E\ ]U<!W?-,*K,d !9 $5'>_ :M ^7>D
class CDinhKe
{
protected CDinh m_dinhke;
protected int m_trongso;
public CDinh dinhke
{
get { return m_dinhke; }
set { m_dinhke = value; }
}
public int trongso
{
get { return m_trongso; }
set { m_trongso = value; }
}
public CDinhKe()
{
m_dinhke = null;
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 10

() *+,  / ,01
m_trongso = 0;
}
public CDinhKe(CDinh dinh)
{
m_dinhke = dinh;

{
int i, j,n;
string text = File.ReadAllText(tenfile);
StringReader sr = new StringReader(text);

//lay so dinh tu file
string s = sr.ReadLine();
m_sodinh = int.Parse(s);
//lay tap dinh tu file
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 11

() *+,  / ,01
s = sr.ReadLine();
string[] ms = s.Split('\t', ' ');
m_tapdinh = new CDinh[m_sodinh];
for (i = 0; i < m_sodinh; i++)
{
m_tapdinh[i] = new CDinh(ms[i*2]);
m_tapdinh[i].index = i;
m_tapdinh[i].luonggia = int.Parse(ms[i*2+1]);
}
//lay tap dinh ke cho moi dinh
for (i = 0; i < m_sodinh; i++)
{
s = sr.ReadLine();
ms = s.Split('\t', ' ');

//lay so dinh ke cua dinh i
n = int.Parse(ms[0]);
if (n >= 1)

() *+,  / ,01
StringWriter f = new StringWriter();
f.WriteLine(m_sodinh);//ghi so dinh
int i, j;
//ghi ten dinh, luong gia cua moi dinh
for (i = 0; i < m_sodinh; i++)
{
f.Write("{0} {1} ",
m_tapdinh[i].tendinh,m_tapdinh[i].luonggia);
}
//ghi so dinh ke, dinh ke, trong so cho moi dinh
for (i = 0; i < m_sodinh; i++)
{
f.WriteLine();
int sodk = m_tapdinh[i].sodinhke();
f.Write("{0}", sodk);
for(j=0;j<sodk;j++)
{
f.Write(" {0} {1}",
m_tapdinh[i].tapdinhke[j].dinhke.index,
m_tapdinh[i].tapdinhke[j].trongso);
}
}
File.WriteAllText(tenfile, f.ToString());
return true;
}
catch (IOException)
{
return false;
}

//Nếu u là trạng thái đích then {thông báo thành
công,stop}
if (u.Value.v == kthuc)
{
Console.WriteLine("Da tim thay dinh dich, ket
thuc tim kiem!");
return T;
}
//Hiển thị u ra màn hình
Console.WriteLine("Phat trien {0} sinh ra cac
dinh con : ", u.Value.v.tendinh);
//for mỗi trạng thái v kề u
if (u.Value.v.tapdinhke != null)
{
foreach (CDinhKe v in u.Value.v.tapdinhke)
{
LuuVet lv = new LuuVet();
lv.nodecha = u;
lv.v = v.dinhke;
//g(v) <- g(u) + k(u,v)
lv.gv = u.Value.gv + v.trongso;
//u.Value.v.tapdinhke[v.dinhke.index].trongso;
//f(v) <- g(v) + h(v)
lv.fv = lv.gv + v.dinhke.luonggia;
//Đặt v vào danh sách L
Node n = new Node(lv);
//Hiển thị u ra màn hình
Console.WriteLine("g({0})={1}, h({2})={3}
=> f({4})={5}", lv.v.tendinh,
lv.gv, lv.v.tendinh,

ass.tapdinh[i].luonggia);
}

Console.WriteLine("==================================");
for (int i = 0; i < ass.sodinh; i++)
{
CDinh cur=ass.tapdinh[i];
Console.WriteLine("Dinh thu {0}) Dinh {1} co {2}
dinh ke la :", i, cur.tendinh,cur.sodinhke());
for (int j = 0; j < cur.sodinhke(); j++)
{
Console.WriteLine("{0} {1} {2}({3})",
cur.tendinh,
cur.tapdinhke[j].trongso,
cur.tapdinhke[j].dinhke.tendinh,
cur.tapdinhke[j].dinhke.luonggia);
}
}

Console.WriteLine("==================================");
Console.WriteLine("TIM DUONG BANG GIAI THUAT ASTAR");
string bd, kt;
Console.Write("Nhap dinh bat dau : ");
bd = Console.ReadLine();
Console.Write("Nhap dinh ket thuc : ");
kt = Console.ReadLine();
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 15

() *+,  / ,01
CDinh dbd = new CDinh();

p = p.Value.nodecha;
}
//Xuất đỉnh xuất phát
if(p!=null)
Console.Write("{0}", p.Value.v.tendinh);
}
ass.ghiDothi("dothi_out.txt");
Console.Read();
}
}
}
Kết quả thực hiện chương trình :
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 16

() *+,  / ,01
 #\^!
g16$ =<e7. >7E-,*[e5IN:}N6$$;, \ ,L7!7N W5$I57*;,0 :D31>M:?t !
,*` :?NC[<7. ,u:,*\ 'I| >):4,Re55$W?@ !!7:… :?N,^,?t !WN7
:?t !,*` :M,R<34 !>RB$>?L !,*\ 'I| >):4,ReV7'5$W?@ !!7,^,
t 
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 17

() *+,  / ,01
*/ ,*q !:$t ,Zp
SVTH: Hà Anh Vũ GVHD: TS.Ngô Hữu Phúc Trang 18


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status