As a computer science major, I have the exciting opportunity to occasionally take entire classes about topics that most people have never heard of. This semester, I walked in to the first day of Multiagent Systems class (CSCE 475H) without even knowing myself what the class was really about, only that the Raikes School had assured me it would be applicable to both computer science and business.

The introduction of the textbook (freely available here) didn't do much to clear things up:

Somewhat strangely for a book that purports to be rigorous, we will not give a precise definition of a multiagent system.

Uh... okay. Luckily, it goes on to offer a 'loose' definition:

Multiagent systems are those systems that include multiple autonomous entities with either diverging information or diverging interests, or both.

Oh, perfect! That's much better. Right?

Let me translate for you: Agents are entities that can act on their own. They can be digital, like a robot or a computer character in a video game, or physical, like a person or an animal. They can know stuff (thus potential for diverging information), want stuff (potential for diverging interests), and generally, do stuff. Agents can work together towards a common goal, or try to get ahead as individuals. The study of multiagent systems involves studying the different ways that these agents interact, learn about the world, and make decisions. MAS lays a foundation for artificial intelligence, but also has applications to game theory, economics, linguistics, operations research, logic, and beyond.

Most of what we are learning is theoretical -- foundational concepts instead of specific applications. Earlier in college, theoretical computer science felt really dry to me, but I'm starting to appreciate and enjoy it. My professor obviously has a passion for the subject and that definitely helps. The field itself is just fascinating- instead of looking at real systems, like sociologists or psychologists might, computer scientists studying MAS build small systems that obey a fixed set of laws, and see what they can learn. It's still learning about the world, but from the bottom up instead of the top down.

I wouldn't need to know anything about multiagent systems, complexity theory, or even advanced algorithms to build a basic website. However, studying these concepts provides a much deeper toolbox for approaching problems, and helps move beyond the basics to building the complex systems that power our world. And, believe it or not, sometimes it's even fun.