Social media has become an integral part of modern culture. Successful online social media networks consist of millions, if not billions of users. The first online social network that emerged was the network formed by webpages. Analysis of this network was done by Barabasi et al., and they found that the degree distribution of this network followed a power-law distribution. They then proposed a model, called "preferential attachment", to describe how the degree distribution came to be. This model is analogous with the saying "the rich get richer", and in the case of the network formed by webpages, it states that the highly connected webpages are more likely to acquire another connection. In modern day online social networks like Twitter, the preferential attachment model would mean that the probability of a user obtaining another follower is proportional to the number of followers that user has. This model described the network formed by webpages, but this model alone does not accurately describe other online social networks. To try and understand how online social networks evolve, we developed a software package to simulate them. The simulation package is called hashkat; an agent based simulation package that allows for dynamic agent creation, dynamic agent connections, and information propagation. We break these online social networks down into their fundamental constituents, which contain interacting agents. The agents in hashkat can speak different languages, live in different regions, have ideological preferences, send out messages, rebroadcast messages, connect to other agents, and can even get annoyed by other agents and disconnect from them. Hashkat is the most complex network simulation package known to date. The functionality and scalability of hashkat is state-of-the-art for producing large online social networks. In our report, we first describe the implementation details of hashkat, and then move on to show that hashkat can produce existing network topologies; these include random and preferential attachment networks. Afterwards, we generated and analyzed other graph models where analytical solutions are not known. This included investigating how followback effects the degree distribution of a preferential attachment graph, and further understanding how messages go viral in random networks. |