# minmaxctlcap: Set thinning and thickening caps for full matching In optmatch: Functions for Optimal Matching

## Description

Functions to find the largest value of min.controls, or the smallest value of max.controls, for which a full matching problem is feasible. These are determined by constraints embedded in the matching problem's distance matrix.

## Usage

 ```1 2 3``` ```maxControlsCap(distance, min.controls = NULL) minControlsCap(distance, max.controls = NULL) ```

## Arguments

 `distance` Either a matrix of non-negative, numeric discrepancies, or a list of such matrices. (See `fullmatch` for details.) `min.controls` Optionally, set limits on the minimum number of controls per matched set. (Only makes sense for `maxControlsCap`.) `max.controls` Optionally, set limits on the maximum number of controls per matched set. (Only makes sense for `minControlsCap`.)

## Details

The function works by repeated application of full matching, so on large problems it can be time-consuming.

## Value

For `minControlsCap`, `strictest.feasible.min.controls` and `given.max.controls`. For `maxControlsCap`, `given.min.controls` and `strictest.feasible.max.controls`.

 `strictest.feasible.min.controls` The largest values of the `fullmatch` argument `min.controls` that yield a full match; `given.max.controls` The `max.controls` argument given to `minControlsCap` or, if none was given, a vector of `Inf`s. `given.min.controls` The `min.controls` argument given to `maxControlsCap` or, if none was given, a vector of `0`s; `strictest.feasible.max.controls` The smallest values of the `fullmatch` argument `max.controls` that yield a full match.

## Note

Essentially this is just a line search. I've done several things to speed it up, but not everything that might be done. At present, not very thoroughly tested either: you might check the final results to make sure that `fullmatch` works with the values of `min.controls` (or `max.controls`) suggested by these functions, and that it ceases to work if you increase (decrease) those values. Comments appreciated.

Ben B. Hansen

## References

Hansen, B.B. and S. Olsen Klopfer (2006), ‘Optimal full matching and related designs via network flows’, Journal of Computational and Graphical Statistics 15, 609–627.

`fullmatch`