# Protocol to split a common item between 2 people

I have a question related to the "pizza splitting" problem (split the pizza in a fair way), and I am looking for an answer of hopefully the same elegance (first splits, second chooses).

Not sure if this is the right Stack Exchange site to ask this, as it has some economics traits to it.

Problem statement: Two participants A and B buy an indivisible item to use together, for an initial price of P'. Some time passes (the "price" is now only P < P') and the two of them need to split the item: A keeps the item and pays B some money for it, or the other way around.

I am looking for a fair protocol (a bidding system perhaps?), input of which would be "what value does the item have for A and B" and the output would be "who gets the item and how much money he pays to the other".

Ideas: I thought that the item has 2 "values" for each of the participants: the maximum amount of money he would pay to keep it P_keep(), and the minimum amount he would sell it for P_sell(). Not sure whether it is always true that one of these is always larger than the other one. I am guessing this could at least be a validation of some sort: if P_keep(A) < P_sell(B) and P_keep(B) < P_sell(A) then there is no way to split this.

What should I be looking for here? Wikipedia has some articles about splitting and fair protocols, but it always seems to be the case that the value is the same for each of the participants...

A great help to me would be some insight into how P, P', P_keep() and P_sell() work, how they are e.g. ordered.

-
Even with the pizza the players may attribute different value to it: If you know that I don't like anchovies (and you like them), you might cut the pizza into a large piece with many anchovies and a small one with no anchovies. How big can you make the difference between the pieces? It depends on how littel I like anchovies, and how good you can estimate that I don't, and how much you can be sure that I won't pick the anchovies just to teach you a lessnon not to split unfair ... – Hagen von Eitzen Apr 8 '14 at 22:28
Keeping with the pizza method, I suppose you could have one person choose the price and the other to decide who has to buy it. In the unsolvable circumstance you mentioned, I guess there would be no price the chooser would want to choose, but it seems unlikely that what a person is willing to pay is that different from what they are willing to sell for, as they are both really just measures of how much they value the object as you said. – KSab Apr 9 '14 at 7:06

First, recognize that $P'$ has no relevance. Whether the value has increased or decreased from initial purchase, we are dealing with the situation today. If there is a market for the item, it doesn't matter who gets it. That one should pay the other $\frac P2$. Each can (by buying or selling the item) get to the other state (item - $\frac P2$,no item + $\frac P2$).

If the item is irreplaceable, it may have different values to the two people and $P$ doesn't matter. Let the value to A be $a$ and the value to B be $b$. We may as well assume $a \ge b$. A will be happier than today if he gets the item and pays less than $\frac a2$. B will be happier than today if he gives up the item and receives at least $\frac b2$. Anywhere in that range is an improvement over the current situation, and negotiation skill will determine the settling point. The natural thing is to suggest A should pay $\frac {a+b}4$ and get the item. Discovering that value is not easy. You can ask them each to write down what their valuation is and average them. The problem is that if A writes a somewhat smaller number than his true value, he pays less, while if B writes a number higher than his true value he receives more. If they both do, you might get back to the correct result, or (if carried to an extreme) give the item to the wrong person.

-

    #include <stdio.h>

int moneyToPleasureA(int money){return money;}
int moneyToPleasureB(int money){return money;}

int main(){
int minSellA = 90;
int minSellB = 20;

int bidA = 0;
int bidB = 0;

int sellPleasureA;
int sellPleasureB;

sellPleasureA   = moneyToPleasureA(bidB - minSellA);
sellPleasureB   = moneyToPleasureB(bidA - minSellB);

int newBidA;
int newBidB;

else{
printf("B gets the item and he pays %d\n", bidB);
}
else{
printf("A gets the item and he pays %d\n", bidA);
}

bidA=newBidA;
bidB=newBidB;
}

return 0;
}


Each turn, each of A and B is given the chance to bid 1 more dollar to buy the item or to take the money the other person is offering, selling the item. The decision is taken depending on what would give him more pleasure, selling the item for the current money offer or buying it for 1 more dollar.

-
This will value the item at the lower of the two valuations, so one can argue that the person who values it less is losing. – Ross Millikan Apr 10 '14 at 21:11
@Ross Millikan: The person who values it less is not losing, but the one who values it more is gaining. – Henry Apr 10 '14 at 22:38
I meant in the sense of losing the negotiation. There is a range of payments that both will find acceptable. This gives the whole benefit of that range to the one who values the object more highly (and gets it) – Ross Millikan Apr 11 '14 at 4:58