Software to Make Society Work

This site is being revised to fit into the initiative to use mathematical methods to make society work.  This is part of the Social Systems Project.


The project include both hardware and software considerations, but software will be key, and  to truly make the world a better place the software must incorporate sophisticated mathematical methods.

This website will provide an overview  of how the social mathematics is turned into software which will be acceptable even to people for whom the term ‘math’ evokes horrible memories of classroom tedium.  I hated school myself, but rather enjoyed some of it, especially highschool geometry.  For me the idea of using real math to change the world is an exciting one.   You may be amused by a short fictional account of a few people who feel the same, taken from the novel Society Changed.

As I have written elsewhere, what I’d rather not be writing this sort of thing, either here or there.  I’d prefer to be writing code.  These days I write in Python, mostly small utility programs, such as one to navigate my websites at the touch of a single key, calling Mozilla Firefox to actually open the sites.  I would also choose Python for larger programming efforts, such as the one I originally planned to post here.  I may still do that, when more of the code is complete, but I need to present the bigger picture.

I was working on software to estimate missing values for datasets in which the overwhelming majority of the data is just not there.  It’s amazing what can be done, but code for working with static datasets needs drastic changes to adapt it to an interactive process in which the user is repeatedly prompted for the data which reveals the most about the other missing values.

An almost identical situation arises in bipartite matching, such as that used to create stable interpersonal relationships within a group of people.  I am much less interested in software for selecting all of the matches in a single step, though in a sense that is the ideal method.  Implementing a greedy algorithm in which the people with the best matches learn about them first is totally wrong.  The right kind of algorithm preserves the fundamentally fair nature of a weighted bipartite matching, while allowing new individuals to be added and newly matched couples to be withdrawn from the problem.

To make society work, we need a lot of software like this, which deals with individuals one at a time, still implements the basic requirements.  I will try to spell out as many of these as possible on these websites.  Though I’d rather be coding, I am stuck with analysis and design.  Oh, well.