Simulating Socialism (3): Mathematically Derived Valuations

by Jan Philipp Dapprich

This is the third part of my series “Simulating Socialism” (Part 1, Part 2) in which I give an outline of my simulation of a socialist economy. In the previous parts we saw what the overarching structure of the simulation is and how an optimal production plan is determined using linear programming.

In this part we will see how linear programming can be used to determine what I call mathematically derived valuations (MDVs). MDVs are meant to represent the opportunity cost of a consumer product. In other words, they give the answer to the question “How much other stuff could be produced if we had to produce one unit less of this?”. A comparison of clearing prices and MDVs is then used to adapt the planning target, to ensure that consumer products are produced at adequate proportions. More on this in a later post. Since this is currently the only purpose of valuation, it is not necessary to calculate values for non-consumer products.

1. How MDVs are Calculated

The question “How much other stuff could be produced if we had to produce one unit less of this?” can be answered by considering what would happen if the resources involved in that production were freed up. How many more consumer products could be produced at the proportions specified by the plan target with those resources available? We can measure this as an increase in plan fulfilment, or in other words an increase in the objective function of the linear programming problem. This increase is then recorded as the MDV for the according consumer product. This is done separately for each consumer product by considering how plan fulfilment would increase if the resources for one unit of that product were freed up. Let us see how this works in practice by calculating the MDV of bread in the sample economy we saw in part 2.

Tables 1 and 2 are the input and output tables for the economy respectively. These show the various available production methods, their required inputs and what and how much they produce. In a later post we will consider examples where there is more than one production method for the same product, but in this very basic economy there is only one way to produce each kind of item. The first thing we will have to do is determine how much could be produced at the proportions specified by the plan target with available resources. The only resource we have to consider in this case is labour, because all other resources are assumed to be produced within the same planning period (see part 2). We will assume that there are 1000 units of labour available. Using lp_solve we find that the optimal production plan for the plan target (see table 3) produces 1161.26 units of corn, the output of which serves at the objective function. Note that this doesn’t include the corn which is used for baking bread, only the corn which is directly made available to consumers. Since the proportions specified by the plan target are maintained, this also means that approximately 1355 units of coal and 1935 units of bread are produced for consumers under the optimal production plan.

To calculate the MDV of bread, we have to see by how much output of these consumer products goes up if the resources that go into one unit of bread are freed up. Since the output of consumer products is at fixed proportions, it is enough if we only consider by how much output of anyone of them (we will look at corn, which is used as the objective function for our linear programming problem) goes up. To do this we will pretend that there is an additional production method which produces a single unit of bread. It does so without using any inputs, but this production method can only be used once (i.e. at an intensity of one). Since production using this method is basically free, an optimised production plan will surely make use of this to produce one unit of bread. The resources that could otherwise be used for the production of that unit of bread are freed up and can instead be used to increase overall production of consumer goods. Tables 4 and 5 are the input and output tables which include our hypothetical “free” production method. An additional constraint is built into the linear programming problem to ensure that this method can only be used to produce a single unit of bread. All other units of bread must be produced in the regular manner, requiring labour, corn and coal. The reason that we introduce a free production method, rather than the free inputs required to produce one unit of bread (i.e. the corresponding labour, corn and coal that goes into making bread) is that in another example there might be more than one way of producing something. This way abstracts from the particular production method used to produce a particular unit of bread. The value of bread ends up being the same, no matter by what method an individual loaf of bread was produced by.

When we include the ‘one free bread’ method, lp_solve finds that this increases the value of the objective function (i.e. the output of corn for consumers) by 0.19. So, the overall corn supply for consumers would be increased from 1161.26 to 1161.45. An increase at the proportions specified in the plan target for the other consumer goods would also follow, but we use the increase in corn supply as a measure for valuation. So, the (unadjusted) value of one unit of bread would be 0.19. Values are later adjusted to make them more comparable to prices, as we will see in an upcoming part of this series. In the same way that we have calculated the value of one unit of bread, we can also find the MDVs for other consumer goods by including methods that yield one free unit of the according product and observing how this increases the value of the objective function. When doing this we will find that the value of one unit of corn is 0.31 and the value of one unit of coal is 0.32. This tell us that the marginal opportunity cost for producing one unit of corn or coal is much higher than the marginal opportunity cost for producing one unit of bread.

The main disadvantage of this method of calculating MDVs is that it requires solving a linear programming problem for every consumer product in order to determine the corresponding value. This significantly increases the computing time needed for economies with large product diversity. Possible solutions to this are finding more efficient optimal planning methods than linear programming (something that Paul Cockshott has been working on), reducing the frequency at which values are recalculated, aggregating similar products in the same category, or finding a completely different method of valuation which yields comparable results.

2. Alternative Labour Value Model

To compare the model of socialism based on MDVs to the original ‘Towards a New Socialism’ model by Paul Cockshott and Allin Cottrell, I’ve created an alternative version of the simulation which uses labour values. These are calculated using the Marxist labour theory of value. Each product has the value of all material inputs required, plus any direct labour needed in the production process. In cases where there is more than one method for producing a product, we take the societal average. The optimal production plan calculated by lp_solve will specify the intensity at which the various methods will be used, which allows us to determine the overall resources and labour used in the production of one type of consumer good and the overall amount of that good produced. From this we can calculate the average resource usage per unit of product when the optimal production plan is implemented.

Calculating the labour values on this basis requires us to solve a system of linear equalities. This is easily done using the NumPy library for Python. The only condition is that there mustn’t be any production methods that have more than one output, as this may lead to linear dependencies which would make it impossible to solve for the labour values. Since in our example this isn’t the case, we find that the labour values for corn, coal and bread are given by 0.27, 0.27 and 0.16 respectively. In relative terms, this is basically identical to the MDVs. But we will see in a future post that this is not always the case, demonstrating that labour values cannot necessarily be used as a proxy for opportunity cost as defined by the MDV method.

3. Appendix

Inputs

Farming

Coal Mining

Iron Mining

Baking

Corn

2

0

0

5

Coal

1.05

1.1

3

1

Iron

1.09

2

1.2

0

Bread

0

0

0

0

Labour

2

3

1.3

2.1

Table 1: Input table based on a small sample economy devised by W.P. Cockshott

Outputs

Farming

Coal Mining

Iron Mining

Baking

Corn

11

0

0

0

Coal

0

13

0

0

Iron

0

0

17

0

Bread

0

0

0

23

Table 2: Output table complementing table 1

Corn

Coal

Iron

Bread

Target

6

7

0

10

Table 3: Target vector complementing tables 1 and 3

Inputs

Farming

Coal Mining

Iron Mining

Baking

Free Bread

Corn

2

0

0

5

0

Coal

1.05

1.1

3

1

0

Iron

1.09

2

1.2

0

0

Bread

0

0

0

0

0

Labour

2

3

1.3

2.1

0

Table 4: Input table with hypothetical free production method used for valuation of bread