Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
PH N M Đ UẦ Ở Ầ
Trí tu nhân t o là m t lĩnh v c trong khoa h c máy tính nghiên c uệ ạ ộ ự ọ ứ
và phát tri n các h th ng thông minh h tr cho ho t đ ng x lý thôngể ệ ố ỗ ợ ạ ộ ử
tin, x lý tri th c, tính toán và đi u khi n. Trong quá trình phân tích và thi tử ứ ề ể ế
k các h th ng Trí tu nhân t o, các nhà nghiên c u th ng quan tâm đ nế ệ ố ệ ạ ứ ườ ế
hai v n đ l n là: Bi u di n tri th c và ph ng pháp, k thu t suy di nấ ề ớ ể ễ ứ ươ ỹ ậ ễ
trên c u trúc bi u di n tri th c đó.ấ ể ễ ứ
Đ i v i các h gi i bài toán d a trên c s tri th c nh các h chuyênố ớ ệ ả ự ơ ở ứ ư ệ
gia, h gi i các bài toán t đ ng thì vi c bi u di n tri th c và xây d ngệ ả ự ộ ệ ể ễ ứ ự
chi n l c tìm ki m đóng vai trò quy t đ nh trong quá trình thi t k và càiế ượ ế ế ị ế ế
đ t h th ng. Các k t qu nghiên c u v bi u di n tri th c và suy lu nặ ệ ố ế ả ứ ề ể ễ ứ ậ
d a trên tri th c là c s và công c cho vi c xây d ng các h chuyên gia,ự ứ ơ ở ụ ệ ự ệ
các h gi i toán d a trên tri th c và các h c s tri th c.ệ ả ự ứ ệ ơ ở ứ
Trong bài ti u lu n này, tôi xin trình bày c u trúc c a c s tri th c vể ậ ấ ủ ơ ở ứ ề
Lý thuy t đ th mà ph n m m Maple thi t k và xây d ng trong ế ồ ị ầ ề ế ế ự package
GraphTheory đ ng th i qua đó cũng trình bày m t s bài toán c b n trongồ ờ ộ ố ơ ả
Lý thuy t đ th nh ế ồ ị ư Bài toán đ th con đ y đ l n nh t, Bài toán đ th ph ng,ồ ị ầ ủ ớ ấ ồ ị ẳ
Bài toán ng i bán hàng.ườ
Tôi xin chân thành c m n Phó giáo s , Ti n sĩ Đ Văn Nh n, gi ngả ơ ư ế ỗ ơ ả
viên môn h c “ọ L p trình symbolic cho trí tu nhân t oậ ệ ạ ”, đã truy n đ t nh ngề ạ ữ
ki n th c quý báu v các h ng nghiên c u trong lĩnh v c trí tru nhânế ứ ề ướ ứ ự ệ
t o và bi u di n tri th c tiên ti n hi n nay; đã h ng d n và ch b o đạ ể ễ ứ ế ệ ướ ẫ ỉ ả ể
hoàn thành chuyên đ nghiên c u r t b ích và lý thú này. ề ứ ấ ổ
N i dung c a bài ti u lu n ngoài ph n m đ u và k t lu n, có baộ ủ ể ậ ầ ở ầ ế ậ
ch ng nh sau: ươ ư
Ch ng 1: Gi i thi u gói package GraphTheory trong ph n m m Maple.ươ ớ ệ ầ ề
Ch ng 2: Gi i m t s bài toán lý thuy t đ th v i gói package GraphTheory.ươ ả ộ ố ế ồ ị ớ
CH NG 1ƯƠ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 1
1
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
GI I THI U GÓI PACKAGE GRAPHTHEORY TRONG Ớ Ệ
PH N M M MAPLEẦ Ề
N i dung Ch ng 1 gi i thi u v ph n m m Maple, trình bày c u trúc dộ ươ ớ ệ ề ầ ề ấ ữ
li u c a package GraphTheory trong vi c h tr gi i quy t các bài toán Lý thuy t đệ ủ ệ ỗ ợ ả ế ế ồ
th cũng nh m t s thu t toán c b n trên c u trúc c s tri th c này. ị ư ộ ố ậ ơ ả ấ ơ ở ứ
1. Gi i thi u ph n m m Mapleớ ệ ầ ề
Maple là m t gói ph n m m toán h c th ng m i ph c v cho nhi uộ ầ ề ọ ươ ạ ụ ụ ề
m c đích. Đ c phát tri n l n đ u tiên vào năm 1980 b i nhóm Tính toánụ ượ ể ầ ầ ở
hình th c t i Đ i h c Waterloo Waterloo, Ontario, Canada.ứ ạ ạ ọ ở
T năm 1988, Maple đ c phát tri n và th ng m i hóa b i Waterlooừ ượ ể ươ ạ ở
Maple Inc., m t công ty Canada có tr s t i Waterloo, Ontario. Phiên b nộ ụ ở ạ ả
hi n t i là Maple 16 đ c phát hành vào tháng 3 năm 2012.ệ ạ ượ
Các ch c năng chính c a Maple:ứ ủ
- Th c hi n các tính toán v i kh i l ng l n, th i gian nhanh và đự ệ ớ ố ượ ớ ờ ộ
chính xác cao.
- Các gói chuyên d ng (package) c a Maple đ gi i quy t các bài toánụ ủ ể ả ế
c th nh : V đ th (plots), Hình h c gi i tích (geometry), Đ i sụ ể ư ẽ ồ ị ọ ả ạ ố
tuy n tính (LinearAlgebra), Gi i tích (Student), Ph ng trình vi phânế ả ươ
(DEtools), Lý thuy t s (numtheory), D li u r i r cế ố ữ ệ ờ ạ
(DiscreteTransforms), Lý thuy t đ th (GarghTheory) ế ồ ị
- Thi t k các đ i t ng 3 chi u.ế ế ố ượ ề
- Minh h a hình h c thu n ti n bao g m: v đ th tĩnh và đ ng c aọ ọ ậ ệ ồ ẽ ồ ị ộ ủ
các đ ng, m t đ c cho b i các hàm tùy ý trong nhi u h t a đườ ặ ượ ở ề ệ ọ ộ
khác nhau;
- Tính toán trên các bi u th c đ i s ;ể ứ ạ ố
- Th c hi c đ c h u h t các phép toán c b n trong ch ng trìnhự ệ ượ ầ ế ơ ả ươ
toán đ i h c và sau đ i h c;ạ ọ ạ ọ
- Ngôn ng l p trình đ n gi n và m nh m , có kh năng t ng tácữ ậ ơ ả ạ ẽ ả ươ
v i các ngôn ng l p trình khác;ớ ữ ậ
2. Gói GraphTheory trong Maple
Gói GraphTheory đ c nghiên c u và phát tri n b i nhóm nghiên c uượ ứ ể ở ứ
Đ i s máy tính (ạ ố Computer Algebra Group) và Tính toán hình th c (ứ Symbolic
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 2
2
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
Computation) c a khoa Toán, Đ i h c Simon Fraser t i Burnaby, Canada vàoủ ạ ọ ạ
năm 2006. Nhóm nghiên c u bao g m: Mahdi Javadi, Ron Ferguson, Michaelứ ồ
Monagan, Peter Borwein, Ha Le, Mohammed Ghebleh, Austin Roche, Allan
Wittkopf, Liang Chen, Greg Fee, Alexandro Erickson, Vahid Dhabagghian và
Roman Pearce. Trong đó, tr ng nhóm nghiên c u này - Ti n sĩ Michaelưở ứ ế
Monagan – là m t trong nh ng tác gi c a ph n m m ộ ữ ả ủ ầ ề Maple.
Gói GraphTheory đ c đ a vào ượ ư Maple t phiên b n 11 (tháng 2 năm 2007)ừ ả
đ thay th cho gói ể ế networks. Theo các tác gi , gói này đ c thi t k dùngả ượ ế ế
cho vi c gi ng d y và nghiên c u có th x lý đ c các bài toán trên đ thệ ả ạ ứ ể ử ượ ồ ị
có h n 1.000 đ nh. Nó đ c thay th cho gói ơ ỉ ượ ế networks là b i vì ở Maple c n sầ ự
tách bi t trong vi c gi i quy t các bài toán lý thuy t đ th v i các bài toánệ ệ ả ế ế ồ ị ớ
m ng. H n n a các tính toán lý thuy t đ th trong gói ạ ơ ữ ế ồ ị networks đã l c h uạ ậ
và ch đ c thi t k ch y u cho các bài toán m ng. C u trúc d li u c aỉ ượ ế ế ủ ế ạ ấ ữ ệ ủ
gói networks quá n ng n và c ng k nh trong vi c gi i quy t các bài toán lýặ ề ồ ề ệ ả ế
thuy t đ th c b n. C u trúc d li u c a gói ế ồ ị ơ ả ấ ữ ệ ủ GraphTheory đ c thi t kượ ế ế
đ n gi n, linh ho t và ch y u là đ gi i quy t các bài toán trong lĩnh v cơ ả ạ ủ ế ể ả ế ự
lý thuy t đ th ch không bao g m các bài toán m ng l i. H u h t cácế ồ ị ứ ồ ạ ướ ầ ế
tính toán c b n trên đ th đ u đ c tích h p s n trong gói này, bao g m:ơ ả ồ ị ề ượ ợ ẳ ồ
ki m tra đ th ph ng, đ th con đ y đ l n nh t, chu trình Haminton, đaể ồ ị ẳ ồ ị ầ ủ ớ ấ
th c Tutte, s c s và tô màu đ th …ứ ắ ố ồ ị
Gói GraphTheory là m t t p l nh h tr vi c t o, v , tính toán ki m traộ ậ ệ ỗ ợ ệ ạ ẽ ể
các thu c tính c a c a đ th . Gói này h tr c hai lo i đ th có h ngộ ủ ủ ồ ị ỗ ợ ả ạ ồ ị ướ
và vô h ng, có tr ng s ho c không có tr ng s nh ng không h tr đaướ ọ ố ặ ọ ố ư ỗ ợ
đ th . L nh t o ra m t đ th vô h ng là l nh ồ ị ệ ạ ộ ồ ị ướ ệ Graph, đ th có h ng làồ ị ướ
Digraph. Đ ki m tra xem m t đ i t ng ể ể ộ ố ượ G có ph i là m t đ th không taả ộ ồ ị
dùng l nh ệ type(G, GRAPHLN). Các l nh ệ ImportGraph và ExportGraph dùng
đ đ c và ghi các đ th vào m t t p tin v i các đ nh đ ng đ c Maple hể ọ ồ ị ộ ậ ớ ị ạ ượ ỗ
tr . M t s l nh c n thi t khi thao tác trên các đ th l n là: ợ ộ ố ệ ầ ế ồ ị ớ HasEdge,
HasArc, AddEdge, AddArc, DeleteEdge, DeleteArc. Gói SpecialGraphs ch a m tứ ộ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 3
3
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
th vi n đ th đ c đ nh nghĩa tr c và gói ư ệ ồ ị ượ ị ướ RandomGraphs g m các hàmồ
dùng cho vi c t o các đ th ng u nhiên.ệ ạ ồ ị ẫ
3. C u trúc d li u c a gói GraphTheoryấ ữ ệ ủ
C u trúc d li u bi u di n m t đ th là m t hàm ấ ữ ệ ể ễ ộ ồ ị ộ Maple có d ng:ạ
GRAPHLN(D, W, V::list, A::Array, T::table, M::{0,Matrix})
Trong đó:
- D = undirected th hi n đ th vô h ng, D = ể ệ ồ ị ướ directed th hi n đ thể ệ ồ ị
có h ng.ướ
- W = unweighted th hi n đ th không tr ng s , khi đó M = 0, W =ể ệ ồ ị ọ ố
weighted th hi n đ th có tr ng s và khi đó M là ki u ma tr n.ể ệ ồ ị ọ ố ể ậ
- V là m t danh sách ki u ộ ể integer, symbol ho c ặ string (th hi n nhãnể ệ
đ nh).ỉ
- A là m t m ng c a t p s nguyên (th hi n các c nh c a đ th ).ộ ả ủ ậ ố ể ệ ạ ủ ồ ị
- T là ki u b ng ch a thông tin v m i c nh, m i đ nh c a đ th .ể ả ứ ề ỗ ạ ỗ ỉ ủ ồ ị
Các l nh sau cho phép ng i s d ng truy xu t tr c ti p các thànhệ ườ ử ụ ấ ự ế
ph n trên:ầ
- IsDirected(G) tr v ả ề true n u ế D = directed và false n u ế D = undirected.
- IsWeighted(G) tr v ả ề true n u ế W = weighted và false n u ế W = unweighted.
- Vertices(G) tr v danh sách V.ả ề
- WeightMatrix(G) tr v ma tr n M n u G là đ th có tr ng s và trả ề ậ ế ồ ị ọ ố ả
v m t l i trong tr ng h p ng c l i.ề ộ ỗ ườ ợ ượ ạ
Các c nh c a đ th đ c xác đ nh b i m ng A. N u u = Vạ ủ ồ ị ượ ị ở ả ế
i
và v = V
j
là hai đ nh c a đ th thì c nh {u, v} t n t i n u và ch n u j n m trongỉ ủ ồ ị ạ ồ ạ ế ỉ ế ằ
t p s nguyên Aậ ố
i
. Các l nh ệ Edges, Neighbors, Arrivals, Departures và
AdjacencyMatrix tr v thông tin c a c nh v i nh ng đ nh d ng khác nhau.ả ề ủ ạ ớ ữ ị ạ
Ví d sau đây cho th y c u trúc d li u c a m t đ th vô h ng G =ụ ấ ấ ữ ệ ủ ộ ồ ị ướ
(V, E) v i V = {a, b, c} và E = {{a,b}, {b,c}}.ớ
> with(GraphTheory):
> G := Graph([a,b,c],{{a,b},{b,c}});
GRAPHLN(undirected,unweighted, [a, b, c], [{2} , {1, 3} , {2}], table([]), 0 )
Chú ý r ng bi u di n bên trong đ th s d ng các s nguyên 1, 2, 3ằ ể ễ ồ ị ử ụ ố
ch không ph i là nhãn a, b, c c a ng i s d ng. Đi u này cho phép duy tứ ả ủ ườ ử ụ ề ệ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 4
4
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
đ th hi u qu h n. Khi m t đ th G đ c t o ra, ng i s d ng khôngồ ị ệ ả ơ ộ ồ ị ượ ạ ườ ử ụ
th xóa ho c thêm đ nh mà không t o ra m t b n sao c a G. Tuy v y,ể ặ ỉ ạ ộ ả ủ ậ
ng i s d ng v n có th xóa ho c thêm c nh vào G.ườ ử ụ ẫ ể ặ ạ
> DeleteEdge(G,{a,b}): G;
GRAPHLN(undirected,unweighted, [a, b, c], [{} , {3} , {2}], table([]), 0 )
Gi s r ng ta thêm ho c xóa m t c nh {i, j} trong đ th G và vìả ử ằ ặ ộ ạ ồ ị
Maple s d ng m t m ng s nguyên đ bi u di n G nên chi phí đ thêmử ụ ộ ả ố ể ể ễ ể
ho c xóa m t c nh là ặ ộ ạ O(max{deg
G
(i), deg
G
(j)}).
4. Các l nh kh i t o đ thệ ở ạ ồ ị
Đ kh i t o m t đ th ta có th s d ng hàm ể ở ạ ộ ồ ị ể ử ụ Graph() ho c ặ Digraph().
Có th s d ng k t h p các tham s V, E, A, D, W đ kh i t o các lo i để ử ụ ế ợ ố ể ở ạ ạ ồ
th khác nhau. Trong đó:ị
- V là t p ho c danh sách các đ nh ho c s đ nh.ậ ặ ỉ ặ ố ỉ
- E là t p các c nh.ậ ạ
- A là ma tr n k (có th ch a tr ng s c nh).ậ ề ể ứ ọ ố ạ
- D là tham s h ng có d ng ố ướ ạ directed/undirected ho c ặ directed = true/false.
- W là tham s tr ng có d ng ố ọ ạ weighted/unweighted ho cặ weighted =
true/false.
M t s ví d v các cách t o đ th :ộ ố ụ ề ạ ồ ị
>
>
>
>
>
>
>
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 5
5
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
>
>
Maple l u ý r ng E ph i là ki u t p h p (set). B t kỳ input ki u danhư ằ ả ể ậ ợ ấ ể
sách nào cũng đ c hi u là các nhãn đ nh. Gi i h n h n cho phép ng iượ ể ỉ ớ ạ ạ ườ
s d ng t o ra các đ th v i các nhãn đ nh ki u t p h p. T ng t , l u ýử ụ ạ ồ ị ớ ỉ ể ậ ợ ươ ự ư
r ng các đ th có d ng ằ ồ ị ạ Graph(E, A) và Graph(V, E, A), v i V là ki u t pớ ể ậ
h p cũng không đ c ch p nh n. V n đ đây là các input ki u nàyợ ượ ấ ậ ấ ề ở ể
Maple không th c thi đ c tr tr ng h p ki m tra đ th đ ng c u.ự ượ ừ ườ ợ ể ồ ị ẳ ấ
CH NG 2ƯƠ
GI I M T S BÀI TOÁN LÝ THUY T Đ TH V I GÓI PACKAGEẢ Ộ Ố Ế Ồ Ị Ớ
GRAPHTHEORY
N i dung Ch ng 2 trình bày cách gi i quy t m t s bài toán lý thuy t độ ư ơ ả ế ộ ố ế ồ
th c b n c a gói GraphTheory nh : Đ th con đ y đ l n nh t (Maximum clique),ị ơ ả ủ ư ồ ị ầ ủ ớ ấ
Bài toán ki m tra đ th ph ng (Planarity test), Bài toán ng i bán hàng (Travelingể ồ ị ẳ ườ
salesman problem).
1. Bài toán đ th con đ y đ l n nh tồ ị ầ ủ ớ ấ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 6
6
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
Bài toán tìm m t đ th con đ y đ l n nh t (ho c t p con đ c l pộ ồ ị ầ ủ ớ ấ ặ ậ ộ ậ
l n nh t) c a m t đ th thu c l p bài toán NP-khó. ớ ấ ủ ộ ồ ị ộ ớ Maple đã thi t k m tế ế ộ
thu t toán quay lui d a trên k thu t phân nhánh - gi i h n đ gi i quy tậ ự ỹ ậ ớ ạ ể ả ế
bài toán này. Maple s d ng m t hàm gi i h n d a trên thu t toán tô màuử ụ ộ ớ ạ ự ậ
tham lam.
Sau đây là m t ví d :ộ ụ
>
>
>
>
V i c u trúc d li u cho c s tri th c v Lý thuy t đ th nh đãớ ấ ữ ệ ơ ở ứ ề ế ồ ị ư
gi i thi u, ta s tìm hi u ớ ệ ẽ ể Maple th hi n thu t toán này nh th nào.ể ệ ậ ư ế
Cho m t đ th vô h ng G = (V, E). V là t p các đ nh, E là t p cácộ ồ ị ướ ậ ỉ ậ
c nh t ng ng n i các đ nh trong V. Ta c n tìm t p các đ nh trong đ thạ ươ ứ ố ỉ ầ ậ ỉ ồ ị
mà t ng đôi m t có c nh n i v i nhau nghĩa là tìm m t đ th con đ y đừ ộ ạ ố ớ ộ ồ ị ầ ủ
trong đ th G (ồ ị Maximum clique).
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 7
7
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
Bài toán tìm đ th con đ y đ l n nh t có r t nhi u ng d ng trongồ ị ầ ủ ớ ấ ấ ề ứ ụ
th c t . Ta hãy xét m t m ng xã h i. Xem các đ nh c a đ th là m tự ế ộ ạ ộ ỉ ủ ồ ị ộ
ng i tham gia m ng xã h i, các c nh là m i liên h quen nhau gi a nh ngườ ạ ộ ạ ố ệ ữ ữ
ng i tham gia. Đ tìm m t t p con l n nh t gi a nh ng ng i quenườ ể ộ ậ ớ ấ ữ ữ ườ
nhau, ng i ta có th ki m tra t t c các t p con, m t quá trình quá t nườ ể ể ấ ả ậ ộ ố
th i gian đ th c hi n đ c trên nh ng m ng xã h i có s ng i tham giaờ ể ự ệ ượ ữ ạ ộ ố ườ
vài ch c ngàn tr lên. M c dù phép tìm ki m brute-force có m t vài c iụ ở ặ ế ộ ả
ti n b ng nh ng thu t toán hi u qu h n nh ng t t c đ u t n th i gianế ằ ữ ậ ệ ả ơ ư ấ ả ề ố ờ
theo c p s mũ đ gi i quy t bài toán. Cùng v i ng d ng trong m ng xãấ ố ể ả ế ớ ứ ụ ạ
h i, bài toán tìm đ th con đ y đ l n nh t còn có nhi u ng d ng trongộ ồ ị ầ ủ ớ ấ ề ứ ụ
tin sinh h c, hóa h c.ọ ọ
Thu t gi i này đ c đ a ra b i D.L. Kreher và D.R. Stinson trongậ ả ượ ư ở
cu n “ố Combinatorial Algorithms: Generation, Enumeration and Search” do nhà xu tấ
b n ả CRC Press phát hành năm 1990 t i Florida, M .ạ ỹ
2. Bài toán ki m tra đ th ph ngể ồ ị ẳ
M t đ th đ c g i là ph ng n u ta có th v nó trên m t ph ng saoộ ồ ị ượ ọ ẳ ế ể ẽ ặ ẳ
cho các c nh c a nó không c t nhau ngoài đ nh. Cách v nh v y sạ ủ ắ ở ỉ ẽ ư ậ ẽ
đ c g i là bi u di n ph ng c a đ th . Ví d ượ ọ ể ễ ẳ ủ ồ ị ụ là m t đ th ph ng.ộ ồ ị ẳ
Đi u ki n c n và đ đ đ th là ph ng đ c ch ra trong đ nh líề ệ ầ ủ ể ồ ị ẳ ượ ỉ ị
Kuratowski: Đ th là ph ng khi và ch khi nó không ch a đ th con đ ng phôi v iồ ị ẳ ỉ ứ ồ ị ồ ớ
ho c ặ .
Trong th c t vi c s d ng đ nh lý Kuratowski đ ki m tra đ th cóự ế ệ ử ụ ị ể ể ồ ị
ph i là đ th ph ng hay không thì r t khó khăn. Tuy nhiên, t n t i thu tả ồ ị ẳ ấ ồ ạ ậ
toán đ ki m tra v n đ này. Xét đ th ph ng v i n đ nh và p c nh, ta có:ể ể ấ ề ồ ị ẳ ớ ỉ ạ
Đ nh lý 1. ị N u n ≥ 3 thì p ≤ 3n - 6.ế
Ð nh lý 2. ị N u n ≥ 3 và không có chu kỳ có đ dài 3, thì p ≤ 2n - 4.ế ộ
Đ ki m tra xem m t đ th n đ nh có ph ng không, ta hay s d ngể ể ộ ồ ị ỉ ẳ ử ụ
thu t toán c a ậ ủ Demoucroun (Alan Gibbons, Algorithmic Graph Theory.
Cambridge University Press, 1985) v i th i gian ch y là ớ ờ ạ O(n
2
). Cũng có m tộ
vài thu t toán khác nh thu t toán ậ ư ậ Hopcroft-Tarjan v i th i gian ch y tuy nớ ờ ạ ế
tính. Tuy nhiên, thu t toán c a ậ ủ Maple s d ng đ n gi n và t ra hi u quử ụ ơ ả ỏ ệ ả
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 8
8
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
h n v i các đ th d i 1.000 đ nh. N u m t đ th là ph ng, ơ ớ ồ ị ướ ỉ ế ộ ồ ị ẳ Maple tr vả ề
m t t p các m t nhúng. Nh ng thông tin này t ra h u ích trong vi c v độ ậ ặ ữ ỏ ữ ệ ẽ ồ
th ph ng.ị ẳ
>
>
>
>
>
3. Bài toán ng i bán hàngườ
Bài toán phát bi u nh sau: Có m t ng i giao hàng c n đi giao hàngể ư ộ ườ ầ
t i n thành ph . Ông ta xu t phát t m t thành ph nào đó, đi qua cácạ ố ấ ừ ộ ố
thành ph khác đ giao hàng và tr v thành ph ban đ u. M i thành phố ể ở ề ố ầ ỗ ố
ch đ n m t l n và kho ng cách t m t thành ph đ n các thành ph khácỉ ế ộ ầ ả ừ ộ ố ế ố
đã đ c bi t tr c. Hãy tìm m t chu trình (m t đ ng đi khép kín th aượ ế ướ ộ ộ ườ ỏ
mãn đi u ki n trên) sao cho t ng đ dài các c nh là nh nh t.ề ệ ổ ộ ạ ỏ ấ
Bài toán đ c nêu ra l n đ u tiên năm 1930 và là m t trong nh ng bàiượ ầ ầ ộ ữ
toán đ c nghiên c u sâu nh t trong t i u hóa. Nó th ng đ c dùngượ ứ ấ ố ư ườ ượ
làm th c đo cho nhi u ph ng pháp t i u hóa. M c dù bài toán r t khóướ ề ươ ố ư ặ ấ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 9
9
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
gi i trong tr ng h p t ng quát, có nhi u ph ng pháp gi i chính xác cũngả ườ ợ ổ ề ươ ả
nh heuristic đã đ c tìm ra đ gi i quy t m t s tr ng h p có t i hàngư ượ ể ả ế ộ ố ườ ợ ớ
ch c nghìn thành ph .ụ ố
Maple thi t k hàm ế ế TravelingSalesman tr v hai đ i t ng. Đ i s đ uả ề ố ượ ố ố ầ
tiên là giá tr t i u cho bài toán, giá tr th hai là m t chu trình Hamiltonị ố ư ị ứ ộ
đ t giá tr t i u. Chi n l c đ c áp d ng trong hàm là thu t toán phânạ ị ố ư ế ượ ượ ụ ậ
nhánh - gi i h n và đ c g i là “ớ ạ ượ ọ Reduce bound”.
>
>
>
>
>
K T LU NẾ Ậ
Ti u lu n t p trung trình bày c u trúc cũng nh m t s hàm c b nể ậ ậ ấ ư ộ ố ơ ả
trong gói GraphTheory c a ph n m m Maple, ch y u là mô ph ng l iủ ầ ề ủ ế ỏ ạ
thu t toán và cách th c thi t k cũng nh quá trình th c hi n và t i uậ ứ ế ế ư ự ệ ố ư
hóa các hàm c th c a Maple trong lĩnh v c lý thuy t đ th .ụ ể ủ ự ế ồ ị
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 10
10
Gi i m t s bài toán lý thuy t đ th v i ph n m m Maple ả ộ ố ế ồ ị ớ ầ ề
Do quá trình ti p xúc là làm quen v i ph n m m Maple ng n, nên ti uế ớ ầ ề ắ ể
lu n cũng không đ a ra đ c ng d ng thi t th c nào, ch là mô ph ng l iậ ư ượ ứ ụ ế ự ỉ ỏ ạ
m t s thu t toán mà Maple đã thi t nh ộ ố ậ ế ư Bài toán đ th con đ y đ l n nh tồ ị ầ ủ ớ ấ
(Maximum Cliq1ue), Bài toán đ th ph ng (Planar test), Bài toán ng i bán hàngồ ị ẳ ườ
(Traveling Saleman Problem) đ hi u rõ thêm c u trúc và c ch th c hi n c aể ể ấ ơ ế ự ệ ủ
Maple ng d ng trong các lĩnh v c c a toán h c. ứ ụ ự ủ ọ
Qua đó, tìm hi u rõ thêm v các nghiên c u tính toán hình th c ngể ề ứ ứ ứ
d ng trong các h th ng thông minh làm cho máy tính ngày càng mô ph ng,ụ ệ ố ỏ
th hi n đ c cách suy nghĩ cũng nh cách làm thông th ng c a conể ệ ượ ư ườ ủ
ng i.ườ
L p trình symbolic cho trí tu nhân t oậ ệ ạ Trang 11
11