reset password
Author Message
rabbott
Posts: 1649
Posted 10:37 Apr 29, 2018 |

The point of the project is to determine whether an alternative platform would be better for teaching CS 4635. In particular is there an alternative that makes it easier to write agent-based models?

NetLogo makes it quite easy to develop agent-based models.

  • It's easy to develop a UI (buttons, sliders, graphs, etc.) via drag-and drop.
     
  • It's easy to allow the user to interact with the graphic display using a mouse. (Recall the TSP program.)
     
  • It's easy to write models in which agents move around on a plane. The plane is displayed automatically. No developer effort is required.
     
  • The plane can be resized easily to fit the needs of the model.
     
  • NetLogo has many powerful language constructs such as

ask <AgentSet> <anonymous function>  (The anonymous function is not written as param -> body. Instead, only one parameter is allowed, and it is assumed to be named self.) 

  • NetLogo lets one give commands to grid elements, i.e., patches, in the built-in 2-dimensional plane.
     
  • NetLogo has a capability to connect agents with links, which themselves can be directed to act in certain ways. (Again recall TSP.)
     
  • NetLogo includes a generous collection of functional programming constructs that can be applied to lists. 
     
  • All-in-all NetLogo offers an easy-to-use and relatively powerful platform for developing agent-based models.
     

On the other hand NetLogo as an IDE sucks. It does not have compile-time typing. It has very bad compile-time and run-time error messages. It has no trace capability. Its no-shadowing rule rules out variable names one wants to use. Its syntax in which code blocks are indicated with square brackets is both confusing and inconsistent. Its multi-file capabilities are primitive, and it has virtually no mechanisms for breaking code up into modules. It actively fights users who attempt to format their code. It has too many ways to do the same thing. (For example ask and foreach are really equivalent. One should be dropped and the other expanded to include the capabilities of both.) It supports AgentSets but no other kinds of sets. It has no other data structures besides AgentSets and Lists. Etc.

So don't underestimate the power and convenience of NetLogo. Instead look for platforms with similar power and convenience but with fewer of NetLogo's failures.

The task is not to determine whether selected NetLogo models can be implemented on a given platform.

The task is to determine whether all NetLogo models can be implemented easily on a given platform. Showing that some carefully selected NetLogo models can be implemented on the platform you are examining won't cut it.

The task is to ask: If we replace NetLogo with a given alternative platform would it be easier or harder to implement arbitrary Agent-Based models of the sort that can be implemented in NetLogo and that we examined in the course.

 

NetLogo does not support discrete event modeling, but as we saw it's easy to build a simple discrete event modeling framework in NetLogo that lets us understand how discrete event modeling works.

NetLogo offers a simple system dynamics framework that allows one to understand how system dynamics models work. 

As far as these two modeling paradigms are concerned, that's about all I want from an alternative. As far as the course overall is concerned the focus is on agent-based models.

Last edited by rabbott at 17:54 Apr 29, 2018.
wcwir
Posts: 75
Posted 23:47 Apr 29, 2018 |

After spending several hours with Unity, I am moving on to Repast Simphony.

Unity seems great and I plan to come back to it and learn to program in it - over the summer. Because after encountering a serious UI bug on my setup and losing hours on Unity forums trying to figure it out, I realized that this project might eat up all of my time and leave with me little to present on May 11th.

Unity seems like very powerful tool and it could be (maybe) great for developing agent based simulations - if you know your way around Unity in the first place. Which I don't yet, so for me comparing Repast and NetLogo is a more feasible project. 

Last edited by wcwir at 23:48 Apr 29, 2018.
rabbott
Posts: 1649
Posted 23:59 Apr 29, 2018 |

There was a time when I did a lot of work in Repast. It's basically Java. I liked it at the time better than any other platform. I was close to picking it this year until I saw how much progress NetLogo has made.

Last edited by rabbott at 00:02 Apr 30, 2018.
RobertKarapet
Posts: 20
Posted 16:02 Apr 30, 2018 |

Unity is a bit of a risky endeavor especially at the end of the semester, but I am the kind of person who gets stimulated by immense difficulties. My objective is to brag about learning Unity within a week at some point. It is, I take it, a life worth living.