In this series of blogposts, I will describe the computer simulation of a socialist economy that I’ve created as part of my doctoral research on socialism at the University of Glasgow. Computers and mathematical algorithms have been recognized as great possibilities for socialist economic planning since the early days of computing. Linear Programming, the key component of the simulation, was first developed by Soviet mathematician Leonid Kantorovich in the 1930s, specifically for the purpose of optimizing production plans in socialist economies (Kantorovich 1960, Kantorovich 1965, cf. Cockshott 2010). However, the actual application of both linear programming and computers in socialist economies was limited due to both technical difficulties and political resistance (Gerovitch 2008).

In the 1990s, computer scientist Paul Cockshott and political scientist Allin Cottrell, suggested a model of a socialist economy that would rely on computers to determine production plans and that would adapt the plan target based on observed consumer behaviour (Cockshott and Cottrell 1993). My own model is an adaptation of their model, the crucial difference being that I suggest using a system of mathematically derived values instead of the labour values which Cockshott and Cottrell rely on (Dapprich 2018, ADH Manifesto). I call these values Mathematically Derived Valuations (MDVs) in reference to a similar (but different) concept proposed by Kantorovich (Objectively Determined Valuations, Kantorovich 1960, Kantorovich 1965). The MDVs I use represent the opportunity cost of a single unit of a product. I will now outline the various components of the simulation and how they interact. They will then be looked at individually and in more detail in later posts.

Linear Programming

Linear programming is a way of optimising a linear objective function under a set of linear constraints. For the simulation I use lp_solve as it is open source and can be easily implemented in Python. This is central to the simulation as it is used to both determine an optimal production plan and derive valuations for the various products. The linear constraints represent the various physical constraints on production. For example, they will specify how much energy, labour, raw materials and so on are needed in order to produce one unit of a product. They will also make sure that the plan target uses no more resources than are available, that deliberate environmental constraints (such as a cap on greenhouse gas emissions) are not violated and that products are produced at the right proportions. The proportions at which products are to be produced are represented by the plan target. For an economy with two products A and B, a plan target [2, 1] would specify that 2 As are to be produced for every B. The optimization then consists in maximising overall production at these proportions without violating any of the constraints.

Mathematically Derived Valuations (MDVs) are calculated by slightly altering the constraints and observing how this affects overall production output. Essentially it is assumed that one unit is available “for free”, i.e. without the use of resources. This slightly increases the supply of products across the board, because resources that would otherwise have to be used to produce this unit can be used elsewhere. The increase in production witnessed is recorded as the MDV for that product.

Consumer Model

An agent-based model that was developed for the purpose of the simulation is used to model the behaviour of consumers. In a real socialist economy this would not be necessary, as there would be actual consumers. In the simulation it is, however, necessary in order to determine the consumer demand for various product. Consumers are given a set amount of credits and will then semi-randomly decide how they will spend those credits. From this the overall demand for the various products is derived. What’s crucial about the consumer model is that demand is sensitive to credit prices. Consumers are less likely to buy a product if it has a higher price.

Based on a comparison of demand and the supply of consumer products given by the optimized production plan “market clearing prices” can be approximated. This is done by successively adjusting the price of products depending on the difference between supply and demand until supply and demand match.

Adjusting the Plan Target

The previous plan target is now adjusted through a comparison of prices and values (MDVs). The MDVs are scaled in order to make them comparable to prices. Should prices of a product exceed MDVs, this suggests that consumers are sufficiently interested in the product to justify further production. Therefore, the target entry for the product is increased. Should prices be below MDVs, this suggests that consumers are not interested enough in the product to justify the current emphasis on the product and the target entry is consequently lowered. By adjusting the plan target this way we make sure that in the next plan period the proportions at which products are produced more closely resemble what consumers actually need. This process also takes into account the cost of producing a product in the form of the MDVs. Should there be a significant limitation on the amount of greenhouse gas emissions that are allowed for, this would result in higher MDVs for products whose production involves higher amount of emissions. In this case the targets for those products will be lowered and a greater emphasis will be put on producing more environmentally friendly products. A central hypothesis that I wish to confirm using the simulation is that this shift towards environmentally friendly products distinguishes the effect of my model from the labour value model of Cockshott and Cottrell, as labour values don’t take emissions into account.