THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 96

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.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.