R: Integer Programming for the Assignment Problem

lp.assign {lpSolve} | R Documentation

## Integer Programming for the Assignment Problem

### Description

Interface to lp\_solve linear/integer programming system specifically for solving assignment problems

### Usage

    lp.assign (cost.mat, direction = "min", presolve = 0, compute.sens = 0)

### Arguments

`cost.mat` | Matrix of costs: the ij-th element is the cost of assigning source i to destination j.
`direction` | Character vector, length 1, containing either "min" (the default) or "max"
`presolve` | Numeric: presolve? Default 0 (no); any non-zero value means "yes." Currently ignored.
`compute.sens` | Numeric: compute sensitivity? Default 0 (no); any non-zero value means "yes." In that case presolving is attempted.

### Details

This is a particular integer programming problem. All the decision variables are assumed to be integers; each row has the constraint that its entries must add up to 1 (so that there is one 1 and the remaining entries are 0) and each column has the same constraint. This is assumed to be a minimization problem.

### Value

An `lp` object. See documentation for details. The constraints are assumed (each row adds to 1, each column adds to 1, and no others) and are not returned.

### Author(s)

Sam Buttrey, buttrey@nps.edu

### See Also

`lp`, `lp.transport`

### Examples

    assign.costs <- matrix (c(2, 7, 7, 2, 7, 7, 3, 2, 7, 2, 8, 10, 1, 9, 8, 2), 4, 4)
    ## Not run:
    > assign.costs
         [,1] [,2] [,3] [,4]
    [1,]    2    7    7    1
    [2,]    7    7    2    9
    [3,]    7    3    8    8
    [4,]    2    2   10    2

    ## End(Not run)
    lp.assign (assign.costs)
    ## Not run: Success: the objective function is 8
    lp.assign (assign.costs)$solution
    ## Not run:
         [,1] [,2] [,3] [,4]
    [1,]    0    0    0    1
    [2,]    0    0    1    0
    [3,]    0    1    0    0
    [4,]    1    0    0    0

    ## End(Not run)

[Package lpSolve version 5.6.13 Index]