Learn R Programming

coopProductGame (version 2.0)

coopProductGame: Cooperative linear production games

Description

Given a linear production problem A%*%x <= B, the coopProductGame solves the problem by making use of lpSolveAPI where each agent provides his own resources.

Usage

coopProductGame(c, A, B, plot = FALSE, show.data = FALSE)

Arguments

c

vector containing the benefits of the products.

A

production matrix.

B

matrix containing the amount of resources of the several players where each row is one player.

plot

logical value indicating if the function displays graphical solution (TRUE) or not (FALSE). Note that this option only makes sense when we have a two-dimension problem.

show.data

logical value indicating if the function displays the console output (TRUE) or not (FALSE). By default the value is TRUE.

Value

coopProductGame returns a list with the solution of the problem, the objective value and a Owen allocation if it exists. If we have a two dimension dual problem, the function returns all the Owen allocations (if there are more than one we obtain the end points of the segment that contains all possible allocations.)

Examples

Run this code
# NOT RUN {
# Vector of benefits
c <- c(68, 52)
# Production matrix
A <- matrix(c(4, 5, 6, 2), ncol = 2, byrow = TRUE)
# Matrix of resources. Each row is the vector of resources of each player
B <- matrix(c(4, 6, 60, 33, 39, 0), ncol = 3, byrow = TRUE)
# Solution of the associated linear production game
coopProductGame(c, A, B, show.data = TRUE)

 # ------------------------------------------------------------------------
 # Optimal solution of the problem for each coalition: 
 # ------------------------------------------------------------------------
 # 
 # S={1}      1.00  0.00
 # S={2}      1.50  0.00
 # S={3}      0.00  0.00
 # S={1,2}    2.50  0.00
 # S={1,3}    1.68 11.45
 # S={2,3}    2.86 10.91
 # S={1,2,3} 10.00  6.00
 # 
 # ------------------------------------------------------------------------
 #   Cooperative production game: 
 # ------------------------------------------------------------------------
 #                S={0} S={1} S={2} S={3} S={1,2} S={1,3} S={2,3} S={1,2,3}
 # Associated game    0    68   102     0     170     710     762       992
 # ------------------------------------------------------------------------
 #   
 # ------------------------------------------------------------------------
 #   The game has a unique Owen's allocation:
 # ------------------------------------------------------------------------
 # [1] "(230, 282, 480)"
 # ------------------------------------------------------------------------

  
# }

Run the code above in your browser using DataLab