Search Techniques – Những kỹ thuật tìm kiếm - Pdf 13

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
@&?
Bµi tiÓu luËn
M¤N HäC: hÖ chuyªn gia
§Ò 6:
Search Techniques – Những kỹ thuật tìm kiếm
Giáo viên hướng dẫn : Nguyễn Thị Hải Năng
Sinh viên thực hiện : Bùi Văn Chung
Đỗ Xuân Cường
Phùng Thế Bốn
Phạm Ngọc Lập
Nguyễn Văn Huấn
Lớp : TK6LC1
Hưng Yên, tháng 12 năm 2009
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
Lời nói đầu
Hệ chuyên gia là một hệ thống tin học có thể mô phỏng (emulates) năng lực
quyết đoán (decision) và hành động (making abilily) của một chuyên gia (con người).
Hệ chuyên gia là một trong những lĩnh vực ứng dụng của trí tuệ nhân tạo (Artificial
Intelligence). Dạng phổ biến nhất của hệ chuyên gia là một chương trình gồm một tập
luật phân tích thông tin (thường được cung cấp bởi người sử dụng hệ thống) về một
lớp vấn đề cụ thể, cũng như đưa ra các phân tích về các vấn đề đó, và tùy theo thiết kế
chương trình mà đưa lời khuyên về trình tự các hành động cần thực hiện để giải quyết
vấn đề. Đây là một hệ thống sử dụng các khả năng lập luận để đạt tới các kết luận.
Đề tài của chúng em là Đề 6: Search Techniques - Những kỹ thuật tìm kiếm
Dưới đây chúng em có phần Tiếng Anh và phần dịch sang tiếng Việt.
Tuy nhiên do thời gian có hạn nên chúng em dịch theo ý hiểu và còn có nhiều
chỗ có thể chưa hợp lí. Chúng em rất mong được cô giáo xem và nhận xét để bài tiểu
luận của chúng em được hoàn thiện hơn nữa.

solve_dfs(State,History,[Move|Moves]) ← move(State,Move),
update(State,Move,Moves),
legal(State1),
not member(State1,History),
slove_dfs(State1,[State1|
History],Moves).
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
Quá trình kiểm tra FrameWork
test_dfs(Problem, Moves) ← initial_state(Problem, State),
solve_dfs(State, [State], Moves).
Để ngăn cản đường vòng. Kiểm tra đường vòng sẽ không xảy ra nếu như phát
hiện thấy. Nếu trạng thái mới xuất hiện trong trạng thái History. Chuỗi dịch chuyển
dẫn từ tạng thái ban đầu đến trạng thái kết thúc được xây dựng ở luận cứ thứ 3 của
slove_dfs/3.
Để giải quyết vân đề sử dụng FrameWork, chương trình phải quyết định trạng
thái trình bày như thế nào, và thủ tục move, update, legal. Sự trình bày hợp lý sẽ thu
được hiệu quả cao của FrameWork này.
Chúng ta sẽ sử dụng FrameWork để giải quyết vấn đề về chó sói, dê, cải
bắp. Một người nông dân với một con chó sói, một con dê, và cải bắp ở bên trái dòng
sông. Người nông dân có một cái thuyền có thể chở một trong ba thứ, và anh ta phải
vận chuyển cả ba sang bên phải dòng sông. Vấn đề là anh ta không thể di chuyển chó
và dê cung chuyến (chó sói sẽ ăn thịt dê), hoặc dê và cải bắp ( dê thích ăn cải). Anh ta
phải chở tất cả một lúc thì nặng và không được làm mất sự cân bằng nếu để lại một vật
gì đó. Trạng thái được đưa ra bởi một triple, wgc(B, L, R), ở đây B là vị trí của thuyền
(trái hoặc phải), L là danh sách vật ở bân trái dòng sông và R là danh sách những vật ở
bên phải dòng sông. Trạng thái xuất phát và kết thúc là wgc(left,[wolf, goat,
cabbage],[ ]) và wgc(right,[ ], [wolf, goat, cabbage]), lần lượt theo thứ tự. Trong

Vấn đề có thể được khái quát hóa tới N những cái bình của khả năng C1, …,
CN. Vấn đề sẽ đo một thể tích V, khác với mọi C1 nhưng ít hơn là lớn nhất. Có một
giải pháp nếu V là một nhiều của ước số chung lớn nhất của C1. Ví dụ đặc biệt chúng
ta có thể giải quyết được bởi vì 4 là một nhiều của ước số chung lớn nhất của 8 và 5.
Phát biểu cho wolf, goat và cabbage là một cấu trúc wgc(Boat, Left, Right), Left
là danh sách của những thứ ở trên bờ trái của sông, và Right là danh sách của những
thứ ở trên bờ phải.
initial_state(wgc,wgc(left,[wolf, goat, cabbage],[ ])).
final_state(wgc(righ , [ ], [wolf, goat, cabbage] )).
move(wgc(left, L, R), Cargo) ← member(Cargo, L).
move(wgc(right, L, R), Cargo) ← member(Cargo, R).
move(wgc(B, L, R), alone).
update(wgc(B, L, R), Cargo, wgc(B1, L1, R1)).
update_boat(B, B1), update_banks( Cargo,B, L, R, L1, R1).
update_boat(left, right).
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
update_boat( right, left).
update_banks(alone, B, L, R, L, R).
update_banks(Cargo,left, L, R, L1, R1) ← select(Cargo, L, L1), insert(Cargo,R, R1).
update_banks(Cargo,right, L, R, L1, R1) ← select(Cargo, R, R1), insert(Cargo,L, L1).
insert(X,[ Y | Y
S
], [X, Y | Y
S
]) ← precedes(X, Y).
insert(X,[ Y | Y
S

Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
lớn hơn.
Dữ liệu để giải quyết vấn đề trên với chương trình 20.1 được cho trong chương
trình 20.3. Có các bước: việc hoàn thành, làm trống rỗng mỗi cái bình, chuyển lượng
nước từ cái bình này sang bình khác. Một thực tế mẫu đó là để hoàn thành cho cái
bình đầu tiên move(iugs(V1, V2), fill(1)). Trạng thái được đưa để rõ ràng cho phép
dữ liệu để cùng tồn tại với vấn đề khác giải quyết dữ liệu như vậy như trong Chương
trình 20.2. Những động tác làm trống rỗng một cái bình. Thủ tục cập nhật có liên hệ
với bốn bước đơn giản, trong khi thao tác chuyển dịch có hai trường hợp. Nếu thể tích
tổng trong những cái bình là ít hơn thể tích cái bình đầy. Đây được đạt được bởi vị từ
adjust/4. Chú ý rằng thử cho đúng bình thường bởi vì tất cả các trạng thái có thể với
tới được đều đúng.
Đa số những vấn đề thú vị có một sự tìm kiếm quá lớn. Không gian sẽ được tìm
kiếm toàn diện bởi một chương trình thích 20.1. Một sự cải tiến:
initial_state(jugs, jugs(0,0)).
final_state(jugs(4, V)).
final_state(jugs(V, 4)).
move(jugs(V1, V2), fill(1)).
move(jugs(V1, V2), fill(2)).
move(jugs(V1, V2), empty(1)) ← V1 > 0.
move(jugs(V1, V2), empty(2)) ← V2 > 0.
move(jugs(V1, V2), transfer(2, 1)).
move(jugs(V1, V2), transfer(1, 2)).
update(jugs(V1, V2), fill(1), jugs(C1, C2)) ← capacity(1, C1).
update(jugs(V1, V2), fill(2), jugs(C1, C2)) ← capacity(2, C2).
update(jugs(V1, V2), empty(1), jugs(0, V2)).
update(jugs(V1, V2), empty(2), jugs(V1, 0)).
update(jugs(V1, V2), transfer(2, 1), jugs(W1, W2)) ←

Sử dụng chương trình này, chúng tôi làm cần chỉ có ba đầy và những thao tác
chuyển đổi để giải quyết vấn đề trong hình 20.1
Thêm những những phương tiện kiến thức miền như vậy thay đổi mô tả bài
toán emtirely và cấu thành lập trình, mặc dù tại một mức khác.
Khả năng khác (cho) sự cải tiến (của) sự thực hiện tìm kiếm, được điều tra bởi
nghiên cứu sớm ở Al, là sự chỉ đạo phát hiện. Một tổng quan framework, dựa vào một
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
sự lựa chọn rõ ràng hơn của trạng thái tiếp theo để tìm kiếm trong những trạng thái đồ
thị không gian, được sử dụng. Sự lựa chọn phụ thuộc vào những điểm số được gán đối
với positions. Điểm, được tính toán Bởi Một evaluation function, là một biện pháp
(của) lòng tốt (của) vị trí. Sự tìm chiều sâu có thể được coi là một trường hợp đặc biệt
(của) sự tìm kiếm sử dụng một chức năng đánh giá mà có giá trị là khoảng cách (của)
trạng thái curren, trong khi sự tìm chiều rộng sử dụng một chức năng đánh giá mà là
sự đảo (của) khoảng cách đó.
Chúng tôi cho thấy rằng hai tìm kiếm kỹ thuật mà sử dụng một chức năng đánh
giá rõ ràng leo và sự tìm kiếm đầu tiên tốt nhất. Trong sự chảy, vị từ value(State, Giá
trị) Là một chức năng Đánh giá. Sự leo Ngọn đồi là một sự khái quát của sự tìm chiều
sâu nơi suc- cessor vị trí với những điểm cao nhất được lựa chọn hơn là cực tả Một lựa
chọn bởi prolog. Khung giải quyết vấn đề (của) chương trình 20.1 (thì) dễ dàng được
làm thích nghi.Sự chuyển động leo ngọn đồi phát sinh mọi trạng thái mà có thể được
với lấy từ trạng thái curren trong một sự chuyển động đơn, và ra lệnh họ trong việc
giảm bớt mệnh lệnh đối với những giá trị được tính toán bởi chức năng đánh giá. Vị từ
evaluate_and_order(Moves, State, MVs) xác định quan hệ điều đó MVs, một danh
sách có trật tự (của) những bộ dữ liệu giá trị chuyển động tương xứng với danh sách
(của) những sự chuyển động Moves một Trạng thái Trạng thái. Chương trình toàn bộ
được cho như Lập trình 20.4.
Để trình diễn hành vi (của) chương trình chúng tôi sử dụng cái cây ví dụ (của)

Moves là chuỗi (của) những sự chuyển động để đạt đến trạng thái cuối cùng quảng cáo
esired từ dòng State, where History là một danh sách (của) trạng thái được đến thăm
trước đó.
Solve_hill_climb(State,History,[])
Final_state(State).
Solve_hill_climb(State,History,[Move|Moves])
Hill_climb(State,Move),
Update(State,Move,State1),
Legal(State1),
Not member(State1,History),
Solve_hill_climb(State1,[State1|History],Moves).
Hill_climb(State,Move)
Findall(M,move(State,M),Move),
Evaluate_and_order(Moves,State,[],MVs),
Member((Move,Value),MVs).
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
Evaluate_and_order(Moves,State,SoFar,OrderedMVs)
Tất cả Moves từ dòng State được ước lượng và ra lệnh như OrderedMVs. SoFar
Evaluate_and_order(Move| Move], state, MVs1, OrderedMVs).
Update(State,Move,State1),
Value(State1,Value),
Insert((Move,Value),MVs,MVs1)
Evaluate_and_order(Moves, State, MVs,MVs1).
Insert(MV,[],[MV]).
Insert((M,V),[M1,V1)|MVs],[(M,V),(M1,V1)|MVs])
V>=V1.
Insert((M,V),[M1,v1)|MVs},[(M1,V1)|MVs1])

sinh những cấu trúc dữ liệu trung gian. Lập trình 20.7 minh họa ý tưởng bằng việc kết
hợp mọi sự kiểm tra vào trong một thủ tục, , update_frontier.
Những bài tập (cho) Mục(khu vực) 20.1
Làm lại chương trình những bình nước bị dựa vào hai sự đầy- và- những thao
tác chuyển đổi
(ii) Viết một chương trình để giải quyết những người truyền giáo và vấn đề
cannibals:
Ba người truyền giáo và Ba cannibals đang đứng trên ngân hàng trái (của) một
sông. Có một thuyền nhỏ để chở phà họ ngang qua với đủ phòng được chỉ có một hay
hai người. Họ ước muốn tới ngang qua sông. Nếu bao giờ có nhiều những người
truyền giáo hơn cannisbals trên một ngân hàng đặc biệt (của) sông, những người
truyền giáo sẽ chuyển đổi cannibals. Tìm một loạt của việc chở phà tới sự vận chuyển
an toàn mọi người truyền giáo và cannibals ngang qua sông không có việc phơi bày
bất kỳ cannibals cho sự chuyển đổi
Solve_best(frontier,History,Moves)
Moves là một chuỗi (của) những sự chuyển động để đạt đến một trạng thái cuối cùng
mong muốn từ trạng thái ban đầu, ở đâu Frontier chứa đựng những trạng thái hiện thời
dưới sự xem xét, và History chứa đựng những trạng thái được đến thăm trước đó
Solve_best([State(State,Path,Value)|Frontier],History,Moves)
Final_state(State), reverse(Path,Moves).
Solve_best([State(State,Path,Value)|Frontier],History,FinalPath)
Findall(M,move(State,M),Moves),
Updates(Moves,Path,State,States),
Legals(States,States1),
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
News(states1,History,States2),
Evaluates(States2,values)

Evaluates([],[]).
Lập trình 20.6 Khung đầu tiên Tốt nhất (cho) sự giải quyết vấn đề
Inserts(States,Frontier, Frontier1)
Frontier1 là kết quả của việc chèn những trạng thái vào trong Biên giới hiện thời
Inserts([Value|values], Frontier, Frontier1)
Insert(Values, Frontier, Frontier0),
Inserts(Values, Frontier0, Frontier1).
Inserts([],Frontier, Frontier).
Insert(State,[],[State]).
Insert(State,[State1|States],[State, State1| States])
Lesseq_value(State, State1).
Insert(State,[State1| States],[ State| States])
Equals(State, State1).
Insert(State,[State1| States],[ State1|States1])
Greater_value(State,State1), Insert(State,States,States1).
Equals(State(S,P,V),State(S,P1,V)).
Lesseq_value(State(S1,P1,V1),State(S2,P2,V2)) S1<>S2, V1<=V2.
Greater_value(State(S1,P1,V1),State(S2,P2,V2)) V1>V2.
Program 20.6 (continued)
Solve_best(Frontier,History,Moves)
Moves là một chuỗi (của) những sự chuyển động để đạt đến một trạng thái cuối
cùng mong muốn từ trạng thái ban đầu. Frontier chứa đựng những trạng thái hiện
thời dưới sự xem xét. History chứa đựng những trạng thái được đến thăm trước
đó
Solve_best([State(State,Path,Value)|Frontier],History,Moves)
Final_state(State), reverse(Path,[],Moves).
Solve_best([State(State.Path,Value)|Frontier],History,FinalPath)
Findall(M,move(State,M),Moves),
Update_frontier(Moves,State,Path,History,Frontier,Frontier1),
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn

chọn cách di chuyển, nước đi được thực thi, và người chơi tiếp theo được đi tiếp. Cách
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
hiểu rõ ràng nhất của thể hiện này là như một thủ tục đệ quy, play, với ba đối số: một
vị trí trò chơi, một di chuyển của người chơi, và kết quả cuối cùng. Đó là sự lựa chọn
thuận lợi để tách các move (di chuyển) bằng choose_move/3 từ sự thực thi của nó bằng
move/3. Số còn lại
play(Game) ←
play game with name Game.
play(Game) ←
initialize(Game, Position, Player),
display_game( Position,Player),
play (Position, Player, Result).
play (Position, Player, Result) ←
game_over (Position, Player, Result), !, announce(Result).
play (Position, Player, Result) ←
choose_move (Position, Player, Move),
move (Move, Position, Position1),
display_game( Position1,Player),
next_play (Player, Player1),
!, play (Position1, Player1, Result).
Chương trình 20.8. Khuôn dạng để chơi trò chơi.
Những vị từ trong mệnh đề play/3 hiển thị trạng thái của trò chơi và xác định các
người chơi tiếp theo.
play (Position, Player, Result) ←
choose_move (Position, Player, Move),
move (Move, Position, Position1),
display_game( Position1,Player),

update (Move, Value, (Move1, Value1), (Move, Value)) ← value > value1.
Chương trình 20.9. Sự lựa chọn nước đi tốt nhất.
Phần lớn các cây trò chơi là quá rộng để tìm kiếm được tường tận. Phần này bàn
về phưong pháp đã được phát triển để đối phó với các không gian tìm kiếm lớn cho
trò chơi 2 người. Cụ thể, chúng tôi tập trung vào các thuật toán minimax với các đối
alpha-beta. Chiến lược này được sử dụng làm cơ sở cho chương trình Kalah mà chúng
tôi sẽ giới thiệu trong Chương 21.
Chúng tôi mô tả các cách tiếp cận cơ bản của cây trò chơi tìm kiếm bằng
cách sử dụng chức năng hoạt động đánh giá. Một lần nữa, trong phần này
value(Position,Value) là một chức năng đánh giá, tính toán các giá trị gia tăng của các
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
vị trí, hiện trạng của trò chơi. Đây là một thuật toán đơn giản cho việc lựa chọn các
nước đi tiếp theo.
Tìm tất cả các trạng thái có thể có trong một di chuyển của trò chơi. Tính toán
các giá trị của trạng thái bằng cách sử dụng chức năng đánh giá. Chọn nước đi dẫn đến
vị trí có điểm số cao nhất.
Thuật toán này được mã hóa như Chương trình 20.9. Nó giả định rằng vị từ move
(Move,Position,Position1) áp dụng cho một Move (nước đi) từ Position (vị trí) đến
Position1 (vị trí 1). Giao diện, khuôn dạng của trò chơi trong chương trình 20.8 được
cung cấp bởi mệnh đề.
choose_move (Position, computer, Move) ←
findall(M,move ( Position, M), Moves),
evaluate_and_choose(Moves, Position, (nill, - 1000), Move).
Vị từ move(Position, Move) là đúng nếu Move là một nước đi có thể thực hiện
được từ vị trí hiện tại.
Các mối quan hệ cơ bản là evaluate_ and_choose (Moves, Vị trí, Record,
BestMove) mà chọn các BestMove di chuyển tốt nhất trong Moves có thể từ một vị trí

các nút lá là các giá trị cho người chơi. Các đối thủ muốn giảm số điểm, do đó, sẽ chọn
các giá trị tối thiểu, làm cho các vị trí có giá trị + 1 và -1 ở một mức cao hơn trong cây.
Người chơi muốn tối đa giá trị và sẽ chọn nút có giá trị + 1.
Hình 20.2. Một cây trò chơi đơn giản.
Chương trình 20.10 mã hóa thuật toán minimax. Các mối quan hệ cơ bản là
minimax(D,Position,MaxMin,Move,Value), điều này là đúng nếu Move là nước đi có
giá trị gia cao nhất từ vị trí Position thu được bằng cách tìm kiếm D lớp trong cây trò
chơi. MaxMin là một cờ (flag) chỉ ra rằng nếu chúng là tối đa hoặc tối thiểu. Nó có giá
trị 1 nếu là tối đa và -1 nếu là tối thiểu, các giá trị cụ thể được lựa chọn để dễ thao tác
bằng các phép tính đơn giản. Tổng quát của Chương trình 20.9 được sử dụng để lựa
chọn các thiết lập của nước đi. Hai đối số thêm phải thêm vào evaluate_and_choose
là số lượng các lớp D và các cờ MaxMin. Đối số cuối cùng là một bản ghi bao gồm cả
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1
+1
+1
+1
-1
-1
+2
3
Tiểu luận Hệ chuyên gia
Đề 6: Search Techniques – Những kỹ thuật tìm kiếm
nước đi và giá trị nước đi. Các bản ghi ban đầu là (nil, -1000), trong đó nil đại diện cho
một di chuyển tùy ý và -1000 là một số điểm dự định có được, nó ít hơn bất kỳ điểm
số có thể có được nhờ các chức năng đánh giá.
Các quan sát về tính hiệu quả đó đã được thực hiện để kết hợp các nước đi tổng
quát và cập nhật các thủ tục trong bối cảnh tìm kiếm trạng thái - không gian đồ thị
tương tự như khi tìm kiếm cây trò chơi. Cho dù đó là tốt hơn để tính toán các thiết lập
của các vị trí thay vì tập các chuyển động (với sự thay đổi tương ứng trong thuật toán)

evaluate_and_choose (Moves, Position, D1, MinMax, (nil, -1000), (Move,
Value)).
update(Move, Value, Record, Record1) ← Xem chương trình 20.9.
Chương trình 20.10. Chọn nước đi tốt nhất bằng thuật toán minimax.
Chương trình 20.10 là một phiên bản sửa đổi của Chương trình
20.10 kết hợp với phương pháp rút gọn alpha-beta. Quan hệ mới là
alpha_beta(Depth,Position,Alpha,Beta, Move,Value), nó mở rộng minimax
bằng cách thay thế cờ minimax bằng alpha và beta. Các mối quan hệ như với
evaluate_and_choose.
Không giống như trong chương trình 20.10, phiên bản evaluate_and_choose
trong Chương trình 20.11 không cần phải tìm kiếm tất cả các khả năng. Điều này đạt
được nhờ vị từ cutoff, nó quyết định mỗi điểm dừng tìm kiếm các nhánh hiện tại hoặc
tiếp tục tìm kiếm, cập nhật giá trị của alpha và tìm nước đi thích hợp tốt nhất.
Ví dụ, các nút cuối trong cây trò chơi trong hình 20.2 không cần phải được tìm
kiếm. Khi một nước đi có giá trị -1 tìm thấy, mà nó được đảm bảo là thấp hơn giá trị
+1, thì không có các nút khác có thể đóng góp vào điểm số cuối cùng.
Chương trình có thể được khái quát bằng cách thay thế trường hợp cơ sở của
alpha_beta bởi một kiểm tra cho dù vị trí là không xác định. Điều này là cần thiết trong
các chương trình cờ vua, ví dụ, để xử lý các phần chưa hoàn thành.
evaluate_and_choose (Moves, Position, Depth, Alpha, Record,BestMove) ←
Chooses the BestMove from the set of Moves from the current
Position using the minimax alogorithm with alpha – beta cutoff searching
Depth ply ahead. Alpha and Beta are the parameters of the algorithm.
Record records the current best move.
evaluate_and_choose([Move|Moves],Position,D,Alpha,Beta,Move1,BestMove)

move ( Move, Position, Position1),
alpha_beta (D, Position1, Alpha, Beta, MoveX, Value),
Value is – Value,
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn

Lời nói đầu 2
20. Những kỹ thuật tìm kiếm. 3
20.1 Đồ thị tìm kiếm state-space 3
20.2. Trò chơi cây tìm kiếm (Searching Game Trees). 15
20.3. Thông tin nền. 22
Mục lục 23
Bùi Văn Chung – Đỗ Xuân Cường – Phùng Thế Bốn – Phạm Ngọc Lập – Nguyễn Văn Huấn
Lớp TK6LC1


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