Description Usage Arguments Details Value See Also Examples
Define a rational objective function of the form
f(x) = (x' Q1 x + a1 x + d1)/(x' Q2 x + a2 x + d2)
1 2 |
Q1 |
Numeric quadratic matrix. |
a1 |
Numeric vector. |
d1 |
Numeric value. |
Q2 |
Numeric quadratic matrix. |
a2 |
Numeric vector. |
d2 |
Numeric value. |
id |
Vector defining the names of the variables to which the constraint applies. Each variable name corresponds to one component of |
name |
Name for the constraint. |
Define a rational ofjective function of the form
f(x) = (x' Q1 x + a1 x + d1)/(x' Q2 x + a2 x + d2)
Reasonable bounds for the variables should be provided because the function can have several local optima. Solvers 'slsqp'
(the default) and 'alabama'
are recommended.
An object of class ratioFun
.
The main function for solving constrained programming problems is solvecop
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | ### Constrained optimization with rational objective ###
### function and linear and quadratic constraints ###
### Example from animal breeding ###
### The mean kinship at native alleles in the offspring is minimized ###
### The mean breeding value and the mean kinship are constrained ###
data(phenotype)
data(myQ)
data(myQ1)
data(myQ2)
Ax <- t(model.matrix(~Sex+BV+MC-1, data=phenotype))
Ax[,1:5]
val <- c(0.5, 0.5, 0.4, 0.5 )
dir <- c("==", "==", ">=", "<=")
mycop <- cop(f = ratiofun(Q1=myQ1, Q2=myQ2, d1=0.0004, d2=0.00025,
id=rownames(myQ1), name="nativeKinship"),
lb = lbcon(0, id=phenotype$Indiv),
ub = ubcon(NA, id=phenotype$Indiv),
lc = lincon(A=Ax, dir=dir, val=val, id=phenotype$Indiv),
qc = quadcon(Q=myQ, d=0.001, val=0.035,
name="Kinship", id=rownames(myQ)))
res <- solvecop(mycop, quiet=FALSE)
validate(mycop, res)
# valid solver status
# TRUE slsqp successful completion
#
# Variable Value Bound OK?
# --------------------------------------
# nativeKinship 0.0366 min :
# --------------------------------------
# lower bounds all x >= lb : TRUE
# Sexfemale 0.5 == 0.5 : TRUE
# Sexmale 0.5 == 0.5 : TRUE
# BV 0.4 >= 0.4 : TRUE
# MC 0.4963 <= 0.5 : TRUE
# Kinship 0.035 <= 0.035 : TRUE
# --------------------------------------
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.