Netlogo là phần mềm mô phỏng
được viết bởi Uri Wilenski ở Đại học Northwestern.
Mục đích của nó là giúp người dùng dựng mô hình,
cũng như để dùng trong nghiên cứu Hệ thống phức tạp.
Netlogo được dựa vào 2 ngôn ngữ nền tảng, Logo và Starlogo.
Tất cả đều đã được dùng rộng rãi trong giáo dục,
từ tiểu học cho đến sau đại học.
Ở đây, chúng ta sẽ dùng Netlogo để minh họa cho các ý tưởng quan trọng
về hệ thống phức tạp, và 1 số công cụ thường được dùng để nghiên cứu.
Trong các bài tập, bạn sẽ dùng Netlogo
và thử nghiệm với các mô phỏng sẵn có, và nếu bạn chọn bài tập nâng cao,
thì bạn sẽ tạo mô phỏng của riêng mình.
Trong phần còn lại, tôi sẽ điểm qua cách cài đặt và dùng Netlogo.
Nếu bạn không từng lập trình, không sao. Netlogo rất dễ dùng, từ với người thiếu kinh nghiệm,
cho đến cả các chuyên gia.
Tuy vậy, nếu bạn đã biết lập trình với Netlogo, và đã quen thuộc với nó,
bạn có thể bỏ qua chương này, và làm luôn bài tập của chương 1.
Được rồi, bắt đầu nào.
Đầu tiên chúng ta sẽ tải Netlogo. Nó miễn phí và hoạt động trên Windows, Mac, hay Linux.
Tôi sẽ mở trình duyệt
và vào trang web để tải, đó là:
http://ccl.northwestern.edu/netlogo
Link này cũng có trong phần Course Materials trên trang web của khóa học.
Đây là trang để tải, có thêm 1 số thông tin về Netlogo.
Tôi sẽ nhấn "download". Và nó sẽ tự tải về máy.
Bạn có thể điền thông tin cá nhân nếu muốn, không bắt buộc.
Tôi đang dùng Mac OS X, vậy tôi sẽ tải cái này, tôi sẽ tải nó về màn hình (desktop).
Mở nó ra, có thư mục là Netlogo 5.0.3, nếu bạn đang tải vào thời gian tới
khi đã có bản mới hơn, nó có thể có số hiệu lớn hơn, tôi sẽ kéo ra Desktop,
bỏ đi 2 file cài đặt, bây giờ tôi có 1 thư mục bên trong chứa Netlogo 5.0.3
bạn sẽ thấy y như vậy, có thể là bản mới hơn. Đây là file tôi sẽ mở.
Đây là bản 2 chiều của Netlogo, cũng có 1 bản 3 chiều là Netlogo 3D,
tuy nhiên chúng ta sẽ xem xét sau.
Nhấn đúp chuột để mở file này, chính xác.
Nó mất một lúc để mở, tùy xem máy tính của bạn mạnh đến đâu.
Đây rồi. Giờ tôi sẽ chỉ cho bạn cách chạy 1 mô hình Netlogo sẵn có.
Netlogo có 1 thư viện các mô hình. Bạn có thể truy nhập bằng cách File -> Models Library.
Bạn có các lĩnh vực khác nhau và các mô hình của từng lĩnh vực.
Tôi chọn Sinh học, mô hình kiến, và bạn có thể thấy đây là mô hình 1 đàn kiến tìm thức ăn.
Dù 1 con kiến chỉ theo những qui luật đơn giản, cả tổ lại hành xử rất phức tạp.
Chúng ta mở mô hình, việc đầu tiên bạn cần làm là vào phần "Info".
Có mục "Interface", "Info", và "Code".
Phần "Info" mô tả về mô hình, nói về cơ chế hoạt động và cách dùng.
các điểm cần chú ý, hay cách bạn mở rộng mô hình,...
Bạn có thể tự tìm hiểu điều này.
Tôi sẽ quay lại phần "Interface" (giao diện).
Bạn sẽ thấy có 2 nút: Setup và Go.
2 nút này có ở phần lớn mô hình Netlogo, điều đầu tiên bạn nên làm là nhấn Setup.
Nó sẽ chuẩn bị mô hình. Bạn thấy chúng ta có 1 tổ kiến, nó là ô màu tím với chấm đỏ ở giữa,
chính là nơi tất cả kiến ở.
Thanh trượt ở đây, Population, cho thấy có 125 con kiến.
3 ô còn lại là thức ăn, và ta sẽ được xem 1 biểu đồ về lượng thức ăn còn lại theo thời gian.
Kiến sẽ rời tổ tìm thức ăn.
Tôi sẽ nhấn Go và bạn sẽ thấy chúng hoạt động.
Tôi sẽ nhấn Go để tạm dừng và chỉ ra 1 số chi tiết.
Bạn thấy kiến đi vòng quanh, đó là chuyển động ngẫu nhiên
cho đến khi 1 con tìm thấy thức ăn, hình vuông nhỏ ở đây, màu xanh,
hay 1 đống thức ăn khác. Khi đó chúng đem thức ăn về tổ.
Khi chúng đi về tổ, chúng để lại dấu vết hóa học, gọi là pheromone.
Các con khác có thể dò ra dấu vết đó. Nói cách khác 1 con kiến sẽ để lại dấu vết để hướng dẫn
các con khác đi kiếm thức ăn.
Dấu vết này sẽ khuếch tán dựa vào tốc độ khuếch tán.
được thể hiện ở thanh trượt này, chúng mở rộng theo dấu vết ban đầu dọc theo quãng đường.
và chúng bay hơi theo tốc độ này.
Khi dấu vết bay hơi hết, chúng ta không thấy nó nữa.
Tôi sẽ cho chậm lại, thanh trượt này điều chỉnh tốc độ của mô hình.
Tôi sẽ ấn Go.
Bạn có thể thấy dấu vết được tăng cường, bay hơi, khuếch tán.
nếu 1 con tìm thấy và đem thức ăn về tổ,
và các con khác sớm tìm ra dấu vết, thì chúng có thể theo đó
Bạn có thể thấy thức ăn ở mỗi đống đều đang ít đi.
Đây là đống cuối cùng.
Tôi sẽ lại tăng tốc.
Bạn có thể thấy lũ kiến, tôi sẽ tăng tốc hơn nữa.
Các con kiến đang đi rất nhanh.
Thức ăn đã hết, nên bây giờ chúng chỉ đi vòng quanh ngẫu nhiên.
Tôi sẽ nhấn Go để dừng, bạn có thể thấy qua đồ thị rằng lũ kiến
tìm thấy hết thức ăn sau khoảng 900 đơn vị thời gian.
Đó là tất cả những gì về mô hình này.
Ta có thể thay đổi chút, sẽ thế nào nếu ta tăng số kiến ?
Tôi sẽ chỉnh số kiến lên đến 200.
Tôi sẽ lại ấn Setup, và Go.
Ta sẽ xem có gì khác không. Tất nhiên đây là mô hình ngẫu nhiên.
Kiến đi vòng quanh đến khi tìm được thức ăn, và theo các dấu vết để lại.
Ta thấy khi số kiến tăng lên, có vẻ như, ít nhất là lần này,
thức ăn hết nhanh hơn nhiều. Nhưng vì tính ngẫu nhiên, bạn sẽ phải lặp lại
nhiều lần để thống kê xem có thật là nhanh hơn không,
khi mà số kiến tăng lên.
Điều hay về Netlogo là bạn có thể phát triển mô hình,
và thử nghiệm với chúng bằng cách thay đổi các thông số khác nhau.
Một điều hữu dụng khác là mục "Help", nó cho phép bạn
có thể truy cập nhiều tài nguyên, đặc biệt là Netlogo User Manual và Netlogo Dictionary.
Nếu tôi ấn vào User Manual (hướng dẫn sử dụng), nó sẽ dẫn đến 1 trang web có hướng dẫn lập trình trong Netlogo,
và rất nhiều công cụ tham khảo khác.
Trở lại đây, ta đã xem "Interface", "Info", bây giờ hãy nhìn code.
Code được viết trong ngôn ngữ Netlogo, đây là ngôn ngữ riêng của nó và rất dễ học.
Ta sẽ học 1 chút trong khóa học này, sẽ không học hết, vì như thế sẽ cần cả 1 khóa học riêng.
nhưng bạn sẽ biết cơ bản làm sao để viết những mô hình này, sửa lỗi, và chạy chúng.
Netlogo được dựa trên Java, nó được viết bằng Java,
Tuy nhiên bạn không cần quan tâm đến điều đó nên muốn dùng và lập trình Netlogo.