Computer Simulation as “Core Philosophical Method”
“Modeling and computer simulations, we claim, should be considered core philosophical methods.”
So argue Conor Mayo-Wilson (University of Washington) and Kevin Zollman (Carnegie Mellon University) in a new paper, “The Computational Philosophy: Simulation as a core philosophical method“.More specifically, they argue for two main points:
First, philosophers should use simulations for many of the same reasons we currently use thought experiments. In fact, simulations are superior to thought experiments in achieving some philosophical goals… We describe six purposes of thought experiments… [and] argue that, for five of the six purposes that we identify, simulations are sometimes more effective than thought experiments.
Second, devising and coding computational models instill good philosophical habits of mind. Our second argument explains what a modeler learns from the act of modeling; the first explains what everyone can learn from computational models… We describe several skills that philosophers prize: the ability to disambiguate claims, to recognize implicit assumptions in arguments, to assess logical validity, and more. We then explain how devising and programming computational models can foster those skills, even if one has no intent of using the simulation results in construction of the final published argument. Our claim is unusual in that it suggests that philosophers would benefit from using simulations privately as part of their argumentative development even if that doesn’t ultimately show up in the finished product.
They don’t think simulations are the only tool philosophers need:
Simulations can’t help address every philosophical problem. No simulation will tell us whether abortion is moral. Moreover, simulations almost never answer philosophical questions by themselves. So simulations should not supplant other philosophical methods. Rather, simulations should be a tool in the philosopher’s toolbox, to be used alongside thought experiments, careful analysis of arguments, symbolic logic, probability, empirical research, and many other methods. But for reasons we discuss below simulations are especially useful in several philosophical subfields, including social epistemology, social and political philosophy, and philosophy of science.
But they do think “training philosophers in computational methods should be more common” as “modeling and programming are two important formal tools that fit naturally with paradigmatic philosophical methods.”
Mayo-Wilson and Zollman are right! Here is a paper I wrote ten years ago in which a colleague and I used computer simulations for studying the argument from disagreement in metaethics: http://johanegustafsson.net/papers/a-computer-simulation-of-the-argument-from-disagreement.pdfReport
Interesting looking paper, Martin. Kevin and I will check it out. There are so many good examples of simulation in philosophy that we couldn’t mention in the paper.Report
For readers interested in teaching a “formal methods” course for beginning graduate students that incorporates computational modeling, feel free to steal ideas from my syllabuses here:
Kevin and I are also happy to talk to anyone who is thinking about embarking on changing their graduate (or undergraduate) curriculum to include a course (or course unit) on computational modeling. Feel free to email us. Alternatively, if you’ve already been teaching such a course and have ideas about how we could improve what we’re doing, let us know that too!
Thanks for sharing our work, Justin.Report
This looks like a wonderful class. I’ve been meaning to teach a class along similar lines myself because I’ve increasingly been using R in my own research (and just as a hobby) in the past couple of years. However, I’ve wondered how people teach classes like this, so your syllabus is helpful.
One obstacle to teaching a class that requires students to program is that most philosophy students are not very technically inclined. However, netlogo looks pretty user friendly. Is that impression right?Report
Yes. NetLogo is really easy to learn. I’ve taught students with no programming background how to create basic models in NetLogo in a few hours. The syllabuses you see were for courses that met *once* a week for two hours, with a ten minute break in the middle.
I should mention that while many philosophers often have little programming experience, they still often have some experience in a sort of slow, algorithmic thinking that other humanists are often not taught. Evaluating whether the criteria of a theory of knowledge, or a theory of explanation are satisfied in a given case is not algorithmic, but it is systematic in a way that means programming will likely not be foreign to them.
Finally, in my opinion, the primary benefit of NetLogo is the graphical interface and primitives for building agent-based models. After ten minutes of learning NetLogo, students can write one line of code that makes colorful objects move around on the screen in front of them. That type of immediate reward is important to encouraging students to keep learning. Printing “Hello World” doesn’t have that effect on many students.Report
As I mention to someone lower in the thread, I also like to recommend the Railsback and Grimm book on NetLogo. It is a nice mixture of teaching the nuts and bolts of using NetLogo along with teaching some basic concepts in agent based modeling.
“Agent Based” modeling is perhaps the most common, and most useful, type of simulation for philosophers. But, it’s not the only one. Skyrms for instance, pioneered the use of the replicator dynamics in philosophy. And this isn’t “agent based” but “population based.”Report
Absolutely! Patrick Grim has been arguing for this for many decades. So was Paul Thagard and so was I. I’m really heartened to see this method gaining further traction.Report
Yes! That’s why we mention Patrick Grim right up front. He’s been an inspiration to both me and Kevin. I also like a lot of Paul Thagard’s work but must admit less knowledge of all that he’s done here. His publication record is so prolific, it’s hard to keep up.Report
Yes. And many other computational methods and techniques besides. Theorem proving, decision procedures, and many other formal/exact methods shouldn’t be forgotten here either.Report
Agreed. Branden, why don’t you post a link to your course webpages in which you’ve incorporated automated theorem proving and discussion of decision procedures? I couldn’t find them immediately on your website anymore. Many readers might not know that you’ve incorporated that type of logic-related material into courses on inductive reasoning and probability.Report
the article says “Although computer modeling is becoming more popular, it has not gained wide acceptance as a core philosophical method. Computer simulation is discussed in precisely one article in five recent handbooks dedicated to philosophical methodology. The PhilPapers entry on “Philosophical Methods” mentions neither modeling nor simulation.”
the philpapers “philosophical methods” category does have a subcategory on “computational philosophy”. articles on computer modeling and computer simulation as a philosophical method are welcome there for now.Report
Oh, certainly. Also simulations could easily be included in “formal methods” as well. Often that’s how we classify it.
We didn’t mean to imply that we thought papers of this sort would be unwelcome at PhilPapers. Our point was to use PhilPapers (among other things) to illustrate what methods are considered “core” philosophical methods. And I think it’s fair to say that simulations, while gaining acceptance, are still seen as heterodox by large segments of the philosophical community.Report
This looks really cool. I am a Phd student specialising in political philosophy, and I do some programming for fun but I am finding it hard to incorporate it into my thesis. I’m using Python, do you have any experience with Python (specific packages for instance) that you find useful for philosophically-oriented modelling and simulation, or would you suggest trying to pick up NetLogo instead?Report
I’ve never programmed simulations in Python, although you certainly could. I know people who like the Repast libraries which were originally made for Java (I think), but now has a Python version. But simulations can be written in almost any language. Over my career, I’ve used C, Java, Mathematica, NetLogo, R, and even Perl (on a lark).
NetLogo is very easy to learn and there are a lot of resources for it. So, I usually encourage people to start there and only move to a general purpose language if they find that NetLogo is too slow for their purposes. (It can be quite slow for “big” simulations.)
For NetLogo, I really like the Railsbach and Grimm book (different Grimm from the philosopher Grim who does simulations… confusing, I know.)
The book is a nice introduction both to the programming language and to the basics of agent based modeling.
The only caution I have about NetLogo is that it makes certain types of simulations “easy” while other things are more hard. As we talk about in the paper, I would be careful not to let the language dictate how you write your simulations. There is a danger that you fall into certain ruts in how simulations are made.Report
For Python, there is a nice package being developed that is designed to be a competitor to Netlogo called Mesa: https://mesa.readthedocs.io/en/master/ . I’ll be teaching a course next semester on agent-based models in philosophy and I may use it as an opportunity to try using Mesa rather than Netlogo (though I completely agree with Kevin about the ease of use of Netlogo and that it is very good for beginners).Report
One of the benefits of using Python, of course, is that students gain familiarity with one of the most commonly used languages in industry. So I think there’s a lot to be said for Eric’s suggestion here too.Report
I learned Netlogo with the Railsback and Grimm book (and Railsback and Grimm) and it’s quite good. As a matter of taste, I prefer Wilensky and Rand’s _An Introduction to Agent-Based Modeling_ in my classes: https://mitpress.mit.edu/books/introduction-agent-based-modeling. But you really can’t go wrong with either.Report
I looked for any mention of “Conway” and “Wolfram” in this “paper”, but didn’t see any. Is this thing supposed to make its readers think that learning python will be less philosophically valuable than learning some snake oil salesperson’s MacGuffin?
Consider the Wolfram circus presenting to the Indiana logic community in the immediate post-Barwise era. It’s hard to articulate the mood in the room as I remember it as a graduate student, but I’m going to try.
Suppose you sit down with Jean van Heijenoort’s excellent book “From Frege to Godel: A Source Book in Mathematical Logic, 1879-1931” and are able to say to yourself “I don’t really follow most of this, but can at least do equivalent proofs/arguments in something resembling set theory/first order logic”.
And you can even write down some graph representations of Turing machines that do addition, or remove left-most character, etc. You sat through actual translations of Post machines and Church’s recursive arithmetic (oh, that minimization operator! You’re like the Jesus nut of the whole thing!) into tuple-form Turing machines performed by underpaid heroes.
And then some guy who slings math software comes in and says that not only is his Turing-complete representation _more important_, and has _more science_ in it because it is _more experimental_ or something, but you are supposed to care, well, the mood turned to bored pretty quickly from what I remember.
“which has made it famous in two ways” (10). So Rule 110 is the Kanye West of Turing-complete representations of symbolic manipulation. Neat.Report