Set thinning and thickening caps for full 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 nonnegative, numeric
discrepancies, or a list of such matrices. (See

min.controls 
Optionally, set limits on the minimum number
of controls per matched set. (Only makes sense for

max.controls 
Optionally, set limits on the maximum number
of controls per matched set. (Only makes sense for

Details
The function works by repeated application of full matching, so on large problems it can be timeconsuming.
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

given.max.controls 
The 
given.min.controls 
The 
strictest.feasible.max.controls 
The smallest values of
the 
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.
Author(s)
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.
See Also
fullmatch