•
N u con ki n đ ng trên ô tr ng; nó quay sang ph i, tô màu ô thành đen, r i ti n b
c.
ế
ế
ứ
ắ
ả
ồ ế
ướ
•
N u con ki n đ ng trên ô đen; nó quay sang trái, tô màu ô thành tr ng, r i ti n b
c.
ế
ế
ứ
ắ
ồ ế
ướ
Vì nh ng quy lu t này r t đ n gi n nên b n s trông đ i r ng con ki n này s làm nh ng đi u đ n gi n
ữ
ậ
ấ ơ
ả
ạ ẽ
ợ ằ
ế
ẽ
ữ
ề
ơ
ả
nh ch y vòng quanh ho c l p l i m t m u hình đ n gi n. Song n u ki n ta b t đ u trên l
i ô toàn
ư ạ
ặ ặ ạ
ộ
ẫ
ơ
ả
ế
ế
ắ ầ
ướ
màu tr ng thì nó s đi h n 10000 b
c theo m t d ng m u t
ng nh ng u nhiên tr
c khi vào m t
ắ
ẽ
ơ
ướ
ộ ạ
ẫ ưở
ư
ẫ
ướ
ộ
vòng l p g m 104 b
c.
ặ
ồ
ướ
B n có th đ c thêm v con ki n Langton t i
ạ
ể ọ
ề
ế
ạ http://en.wikipedia.org/wiki/Langton_ant.
Th t không d l p nên con ki n Langton trong GridWorld vì ta không th đ t màu c a các ô. Song thay
ậ
ễ ậ
ế
ể ặ
ủ
vào đó, ta có th dùng nh ng bông hoa đ đánh d u ô. Có đi u là ta không th có đ ng th i c ki n l n
ể
ữ
ể
ấ
ề
ể
ồ
ờ ả ế ẫ
hoa trên cùng m t ô, nên ta không hoàn toàn th c hi n đúng đ
c nh ng quy lu t v i con ki n.
ộ
ự
ệ
ượ
ữ
ậ ớ
ế
Thay vào đó ta s t o nên m t con m i có tên
ẽ ạ
ộ
ố
LangtonTermite, trong đó dùng seeFlower đ ki m tra
ể ể
xem ô tr
c m t có bông hoa không, và n u ô tr
c m t có bông hoa, thì dùng
ướ
ặ
ế
ướ
ặ
pickUpFlower đ hái nó,
ể
và throwFlower đ đ t hoa xu ng ô k ti p. B n có th s mu n đ c mã l nh c a nh ng ph
ng th c
ể ặ
ố
ế ế
ạ
ể ẽ
ố
ọ
ệ
ủ
ữ
ươ
ứ
này đ ch c r ng chúng làm gì.
ể ắ ằ
10.3 Bài t p
ậ
Bài t p 1
ậ
Bây gi b n đã bi t đ ki n th c đ làm bài t p trong cu n Sách bài t p (Student Manual),
ờ ạ
ế ủ ế
ứ ể
ậ
ố
ậ
Ph n 2. Hãy làm nh ng bài này, r i xem ti p nh ng bài lý thú d
i đây.
ầ
ữ
ồ
ế
ữ
ướ
Bài t p 2
ậ
M c đích c a bài t p này là khám phá bi u hi n c a các con m i khi t
ng tác v i nh ng
ụ
ủ
ậ
ể
ệ ủ
ố
ươ
ớ
ữ
bông hoa. Hãy s a ch a
ử
ữ TermiteRunner.java đ t o nên nh ng
ể ạ
ữ MyTermite thay vì các Termite. Sau đó
ch y l i.
ạ ạ MyTermite s ch y vòng quanh
ẽ ạ
m t cách ng u nhiên, làm d ch chuy n nh ng bông hoa. T ng
ộ
ẫ
ị
ể
ữ
ổ
s bông hoa ph i không đ i (k c nh ng mông mà
ố
ả
ổ
ể ả
ữ
MyTermite đang gi ). Trong cu n “Termites,
ữ
ố
Turtles and Traffic Jams”, Mitchell Resnick đã mô t m t mô hình đ n gi n cho bi u hi n c a con m i:
ả ộ
ơ
ả
ể
ệ ủ
ố
•
N u b n th y bông hoa, hãy nh t nó lên. Tr khi b n đã có hoa r i; trong tr
ng h p này thì v t b
ế
ạ
ấ
ặ
ừ
ạ
ồ
ườ
ợ
ứ ỏ
bông hoa hi n có.
ệ
•
Ti n b
c, n u có th .
ế
ướ
ế
ể
•
Quay sang trái ho c ph i m t cách ng u nhiên.
ặ
ả
ộ
ẫ
Hãy s a ch a
ử
ữ MyTermite.java đ th c hi n mô hình này. Theo b n thì thay đ i trên s có hi u ng gì
ể ự
ệ
ạ
ổ
ẽ
ệ ứ
đ i v i bi u hi n c a các
ố ớ
ể
ệ ủ
MyTermite?
Hãy th ch y ch
ng trình. M t l n n a, t ng s bông hoa không đ i, nh ng d n d n hoa s t l i
ử ạ
ươ
ộ ầ
ữ
ổ
ố
ổ
ư
ầ
ầ
ẽ ụ ạ
thành m t s ít các đ ng, nhi u khi ch là m t đ ng.
ộ ố
ố
ề
ỉ
ộ ố
Bi u hi n này là m t
ể
ệ
ộ thu c tính n i
ộ
ổ , mà b n có th tham kh o
ạ
ể
ả
ở http://en.wikipedia.org/wiki/Emergence. Các con MyTermite tuân theo nh ng quy t c đ n gi n ch
ữ
ắ ơ
ả
ỉ
b ng thông tin quy mô nh , song k t qu s là s t ch c có quy mô l n.
ằ
ỏ
ế
ả ẽ
ự ổ ứ
ớ
Hãy th nghi m v i nh ng quy t c khác nhau và xem chúng có tác đ ng gì lên h th ng. Nh ng thay
ử
ệ
ớ
ữ
ắ
ộ
ệ ố
ữ
đ i nh có th gây nên k t qu không l
ng tr
c!
ổ
ỏ
ể
ế
ả
ườ
ướ
Bài t p 3
ậ
1.
Sao chép l i file
ạ
Termite.java r i đ t tên thành
ồ ặ
LangtonTermite và sao
chép TermiteRunner.java thành LangtonRunner.java. Hãy s a ch a sao cho nh ng đ nh nghĩa l p có
ử
ữ
ữ
ị
ớ
tên trùng v i tên file, và do đó
ớ
LangtonRunner t o nên m t
ạ
ộ LangtonTermite.