我在使用时不断收到此错误:ES calculation produces unreliable result (inverse risk) for column: 1消息DEoptim。也许我忽略了一些事情,所以我需要一些帮助来解决这个问题。我在网上搜索过但似乎找不到答案。
我有一个xts名为 的对象RETS,包含 127 行和 4 列,其中有日志返回:
library("quantmod")
library("PerformanceAnalytics")
library("DEoptim")
e <- new.env()
getSymbols("SPY;QCOR;CLNT;SRNE", from="2007-06-30", to="2007-12-31", env=e)
# combine the adjusted close values in one xts object
dataset1 <- do.call(merge, eapply(e, Ad))
# calculate returns
RETS <- na.omit(CalculateReturns(dataset1, method="log"))
# objective function
optRR.gt3 <- function(x, ret) {
retu <- ret %*% x
obj <- -CVaR(as.ts(-retu))/CVaR(as.ts(retu))
obj <- ifelse(obj>0,-obj,obj)
weight.penalty <- 100*(1-sum(x))^2
small.weight.penalty <- …Run Code Online (Sandbox Code Playgroud) 我有一个包含 70 种食物的数据集,以及有关每种食物的营养价值(蛋白质/盎司、脂肪/盎司、卡路里/盎司等)以及食物/盎司的成本的信息。我试图弄清楚——给定美元预算——食物的最佳组合(以及每种食物的含量)将是最大限度地提高蛋白质、最大限度地减少脂肪、最大限度地减少卡路里等。我的目标是做到这一点跨越一系列价格点,并绘制每个价格点。
我在这里找到了一大堆不同的软件包可以帮助解决这个问题: http: //cran.r-project.org/web/views/Optimization.html。然而,我是一个初学者,不确定什么最有帮助/从哪里开始 - 希望熟悉解决此类优化问题的任何人提供一些建议。
尝试实现自适应步长 Runge-Kutta Cash-Karp 但失败并出现此错误:
home/anaconda/lib/python3.6/site-packages/ipykernel_launcher.py:15: RuntimeWarning: divide by zero encountered in double_scalars from ipykernel import kernelapp as app
Run Code Online (Sandbox Code Playgroud)
我试图解决的 ODE(并在下面的示例中使用,从高阶转换为一阶 ODE 系统)如下:
这是我正在使用的实现:
def rkck(f, x, y, h, tol):
#xn = x + h
err = 2 * tol
while (err > tol):
xn = x + h
k1 = h*f(x,y)
k2 = h*f(x+(1/5)*h,y+((1/5)*k1))
k3 = h*f(x+(3/10)*h,y+((3/40)*k1)+((9/40)*k2))
k4 = h*f(x+(3/5)*h,y+((3/10)*k1)-((9/10)*k2)+((6/5)*k3))
k5 = h*f(x+(1/1)*h,y-((11/54)*k1)+((5/2)*k2)-((70/27)*k3)+((35/27)*k4))
k6 = h*f(x+(7/8)*h,y+((1631/55296)*k1)+((175/512)*k2)+((575/13824)*k3)+((44275/110592)*k4)+((253/4096)*k5))
yn4 = y + ((37/378)*k1)+((250/621)*k3)+((125/594)*k4)+((512/1771)*k6)
yn5 = y + ((2825/27648)*k1)+((18575/48384)*k3)+((13525/55296)*k4)+((277/14336)*k5)+((1/4)*k6)
err = yn4[-1]-yn5[-1]
if …Run Code Online (Sandbox Code Playgroud) math mathematical-optimization numerical-methods ode runge-kutta
我有一个 Minizinc 程序,用于为并网电池生成最佳充电/放电时间表,给定一组时间间隔价格。
我的程序有效(有点;有一些注意事项),但我的问题是关于两个“约束”语句,它们实际上只是赋值语句:
constraint forall(t in 2..T)(MW_SETPOINT[t-1] - SALE[t] = MW_SETPOINT[t]);
constraint forall(t in 1..T)(PROFIT[t] = SALE[t] * PRICE[t]);
Run Code Online (Sandbox Code Playgroud)
这些只是平均能量SALES是在三角洲MW_SETPOINT从t-1到1,并且PROFIT是SALE*PRICE每个间隔。因此,将它们声明为“约束”对我来说似乎违反直觉。但是我一直无法在不抛出语法错误的情况下将它们表述为赋值语句。
题:
constraints 中为数组赋值是在 Minizinc 中推荐的/惯用的方法吗?上下文的完整程序:
% PARAMS
int: MW_CAPACITY = 10;
array[int] of float: PRICE;
% DERIVED PARAMS
int: STARTING_MW = MW_CAPACITY div 2; % integer division
int: T = length(PRICE);
% DECISION VARIABLE - MW SETPOINT EACH INTERVAL
array[1..T] of var …Run Code Online (Sandbox Code Playgroud) 我需要为 JuMP/Julia 实现以下伪代码:
forall{i in M, j in Ni[i]}: x[i] <= y[j];
Run Code Online (Sandbox Code Playgroud)
我想象这样的事情:
for i in M and j in Ni[i]
@constraint(model, x[i] <= y[j])
end
Run Code Online (Sandbox Code Playgroud)
如何在 for 循环中正确实现 2 个迭代器?
optimization mathematical-optimization linear-programming julia julia-jump
我正在尝试使用 PuLP 解决优化问题,但在编写目标函数时遇到问题。
我已将现实生活中的示例简化为使用谷物的更简单的示例。假设我有一个产品列表和一些可以将它们放入的过道(对于本示例 2)。每种产品都有一个我们通常每周销售的数量(例如:我们每周销售 20 盒水果圈和 6 盒麦片)。每个物品还需要一定数量的架子(例如:磨砂片需要 1 个架子,但玉米片需要 2 个)。
| 产品 | 销售量 | 货架 | 指定通道 |
|---|---|---|---|
| 水果圈 | 20 | 2 | |
| 磨砂片 | 15 | 1 | |
| 可可卵石 | 8 | 1 | |
| 果味鹅卵石 | 9 | 1 | |
| 玉米片 | 12 | 2 | |
| 麦片 | 6 | 1 |
每个过道只有4个货架。因此,理论上我可以将水果圈和玉米片放在一个过道上(2 个架子 + 2 个架子)。如果我将这些商品放在一个过道中,则该过道的每周销售额将为 20 + 12 = 32。如果我将其他 4 件商品(1 个货架 + 1 + 1 + 1)放入一个过道中,则该过道的销售额将为 15 + 8 + 9 + 6 = 38。过道的平均销售额应为 35。我的优化问题的目标是让每个过道尽可能接近该平均数字。我想最小化每个过道每周总销售额和平均数量之间的总绝对差异。在此示例中,我的偏差为 ABS(38-35) + ABS(32-35) = 6。这就是我想要最小化的数字。
我不知道如何写,所以 PuLP 接受了我的目标。我无法在网上找到具有这种复杂程度的示例,它将每个值与平均值进行比较并获取累积绝对偏差。当我写出技术上可以计算的代码时,PuLP 似乎不接受它。
这是一些示例代码:
products = ['Fruit Loops', 'Frosted Flakes', …Run Code Online (Sandbox Code Playgroud) 我们目前正在使用Matlab的fmincon函数对我正在进行的项目进行非线性优化.我们需要将项目的这一部分移植到C++中,以便将它与项目的其他部分集成.有没有一种很好的方法可以将fmincon函数编译成我们可以在C++中使用的库?或者,是否已经有一个可以在某处实现fmincon的库?
如果以上都不是一个选项,那么可以使用哪些优化库很容易从fmincon切换到?
背景资料:
我们正在尝试优化无人机的航点飞行路径,以尽可能地沿着地面沿着给定的航点相机路径行进.两条路径之间的航点在时间上对应,因此当UAV到达第i个飞行路径航点时,摄像机万向节将指向第i个摄像机航路点.由于无人机以恒定速度飞行,飞行路径段将全部具有相同的长度.转弯半径也受上限约束.摄像机路径没有任何限制,因此其段可能比飞行路径段更长或更短,并且可能有急转弯.成本函数是相应的飞行航路点和摄像机航点之间的平方和距离(忽略高度差).
我尝试使用NMinimize函数来查找以下函数的全局最小值.
f = {s1 - Log[1000/{Norm[{2.83, 0, 2} - {u, v, w}]}^3]}^2 + {s2 -
Log[1000/{Norm[{0, 2.83, -2} - {u, v, w}]}^3]}^2 + {s3 -
Log[1000/{Norm[{-2.83, 0, 2} - {u, v, w}]}^3]}^2 + {s4 -
Log[1000/{Norm[{0, -2.83, -2} - {u, v, w}]}^3]}^2;
NMinimize[f, {u, v, w}, Method -> {"DifferentialEvolution"}].
Run Code Online (Sandbox Code Playgroud)
优化是无约束的优化.以下是我每次运行时得到的错误.
"NMinimize :: nnum:"函数值{{2.67476}}不是{u,v,w} = {0.673558,0.659492,0.0861047}处的数字"
我不确定我哪里出错了.还有一种方法可以设置停止规则,并在出现此类错误时从NMinimize输出中提取值.请帮我调试这段代码.提前感谢您帮助Kum.
我正在使用scipy的fmin_l_bfgs_b优化方法对作为黑盒子的二维函数.无法直接评估渐变,因此我要求方法通过设置来近似渐变approx_grad = True.
我想知道如何计算近似梯度.我的猜测是,在每个点上,对于每个维度,梯度由前向差异近似.因此,对于N维中的每个点,进行N次评估以获得偏导数.它是否正确?
It is known that exact mathematical strategies such MILP are not efficient for large instances of the flexible job shop problem.
It is common to see in the literature MILP formulations for the FJS problem. I read that it is interesting to use the MILP model for experiments involving non-exact methods as metaheuristics (GA, FA, TS, etc) since it provides lower and upper bounds.
我还读到,当找到可行的解决方案比最优解决方案更重要时,应该选择CP。这是真实的说法吗?
mathematical-optimization linear-programming constraint-programming mixed-integer-programming