Description Usage Arguments Value Author(s) References See Also Examples
View source: R/rpsg_riskratioprog.R
Finds a maximum for a problem specified by
max_x[\frac{d^{T}x-risk2(x)}{risk1(x)}]
subject to
A \cdot x= b
Aeq \cdot x= beq
lb ≤q x ≤q ub
where
A, Aeq are matrices;
d, x are vectors;
b, beq, lb, ub are vectors or scalars;
risk1(x), risk2(x) functions are linear combinations of PSG risk functions, PSG deterministic functions, or PSG utility functions. List of PSG functions for riskratioprog
1 | rpsg_riskratioprog(model, stroptions = NULL)
|
model |
list with data for optimization problem. Some components are optional. Names of list members:
|
stroptions |
list with additional optimization options:
|
list results
with solution results:
results$status
status of solved problem;
results$objective
optimal value of objective function;
results$gap
difference between objective value in obtained point and Lower estimate of optimal value;
results$optimal.point
optimal point;
results$ineq.constraint.value
optimal values of left hand sides of linear inequality constraint;
results$ineq.constraint.residual
residual of linear inequality constraint;
results$eq.constraint.value
optimal values of left hand sides of linear equality constraint;
results$eq.constraint.residual
residual of linear equality constraint;
results$function.value
optimal values of PSG functions defined in problem;
results$loading.time
data loading time;
results$preprocessing.time
preprocessing time;
results$solving.time
solving time.
Stan Uryasev [aut, cre, cph], Grigoriy Zrazhevsky [aut], Viktor Kuzmenko [aut], Alex Zrazhevsky [aut]
Maintainer: Stan Uryasev <stan.uryasev@aorda.com>
American Optimal Decisions
Portfolio Safeguard Help
rpsg_riskprog
rpsg_riskconstrprog
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 | #Problem:
#Find x = (x1,x2,x3,x4) maximizing
#f(x) = Average Gain(x)/Partial Moment Penalty for Loss(x)
#subject to
#x1+x2+x3+x4+x5 = 1
#x1+x3 <= 0.6
#x2+x4+x5 <= 0.5
#0 <= x1 <= 0.5, 0 <= x2 <= 0.5, 0.3 <= x3 <= 0.5, 0 <= x4 <= 0.5, 0 <= x5 <= 0.5
input.model <- list()
input.model$risk1 <- "pm_pen"
input.model$w1 <- -1
input.model$risk2 <- "avg"
H1 <- c(0.11, 0.04, -0.12, 0.01, -0.05,
-0.01, -0.1, 0.03, 0.21, 0.01,
0.05, 0.2, 0.07, -0.03, -0.12,
-0.1, 0.14, 0.04, -0.1, 0.09,
0.08, -0.02, -0.2, 0.07, -0.01,
0.17, 0.3, -0.12, -0.02, 0.08)
input.model$H1 <- matrix(H1,ncol = 5,byrow = TRUE)
input.model$c1 <- c(0.06, -0.1, 0.12, 0.01, -0.06, 0.11)
input.model$H2 <- input.model$H1
input.model$c2 <- input.model$c1
input.model$Aineq <- matrix(c(1,0, 1, 0, 0, 0, 1, 0, 1, 1),ncol = 5,byrow = TRUE)
input.model$bineq <- c(0.6, 0.5)
input.model$Aeq <- matrix(c(1.0, 1.0, 1.0, 1.0, 1.0),nrow = 1)
input.model$beq <- 1.0
input.model$lb <- c(0.0, 0.0, 0.3, 0.0, 0.0)
input.model$ub <- c(0.5, 0.5, 0.5, 0.5, 0.5)
options<-list()
options$solver <- "van"
options$precision <- 7
results <- rpsg_riskratioprog(input.model,options)
print(results)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.