Joshua Palicka

Logo


Hi! I'm a Computer Science professional with an M.S. in Computer Science from Seattle University with Data Science Proficiency. My skillset includes multiple programming languages, machine learning, AI, software design, data structures, and algorithms.

I'm currently seeking a data science career opportunity after I graduate in June and am eager to join a dynamic team and contribute my skills and passion. If you know of any open positions, please feel free to reach out. I look forward to making a meaningful impact in the data science community!

View My LinkedIn Profile
View My GitHub Profile

Hosted on GitHub Pages — Theme by orderedlist

Sugarscape

Project description

A comprehensive Python implementation of Joshua M. Epstein and Robert Axtell’s agent-based simulation: Sugarscape, as detailed in their book “Growing Artificial Societies: Social Science from the Bottom Up”.

Background

The Sugarscape is designed to simulate social interactions and economic activities among agents within an artificial environment. The Sugarscape itself is a two-dimensional grid representing a landscape with “sugar” and “spice” resources that vary in distribution and quantity. In this model, agents are autonomous entities with unique characteristics, such as vision, metabolism, and wealth. They navigate the Sugarscape by moving to nearby cells and collecting resources to increase their wealth, which they consume to stay alive. Agents can also reproduce, creating new agents with inherited traits. The Sugarscape model allows researchers to explore various social phenomena, such as population growth, migration, trade, cultural transmission, and the emergence of social behavior, by observing the interactions that these agents have with the environment and other agents around them.

Goals

The main goal for this project was to implement the Sugarscape and all of its rules and interactions, which are described in “Growing Artificial Societies”. We wanted to do this because we deemed the Sugarscape a solid building-block for our main project, which was to implement Utilitarian ethics using Jeremy Bentham’s formula for Felicific Calculus, programmatically - link.

Although other implementations of Sugarscape exist in other languages, another goal was to make Sugarscape accessible. For this reason, we built upon and updated a previous, incomplete Python 2 implementation of Sugarscape - link. We chose this language because it is extremely accessible and easy to work with. This previous version used Pygame for rendering the Sugarscape world. To remove this dependency, we rewrote the code to use Tkinter, a Python standard library package. The only non-standard library dependency for the project is matplotlib, which is used for graphing Sugarscape statistics during program runtime.

Outcomes

We were successful in reproducing Sugarscape. Although there is not enough detail given in the book for an exact copy, we are able to reproduce many of the results from the book, and it worked well for us in our ethics project. Through this project, I gained skills in project management, working with constraints, performance optimization, communication, refactoring, and collaborative problem-solving.



Snapshot of Basic Sugarscape run with optional location stats and mean trade volume graph
Snapshot of a basic Sugarscape run including optional stats and a graph.



Standard Sugar and Spice Sugarscape run with optional location stats and mean trade volume graph
Snapshot of a Sugarscape run with sugar and spice, including optional stats and a graph