GA,无法找到一个可行的初始点
37视图(30天)
显示旧的评论
我triying组合使用遗传算法优化。
这是我做的模型,有一些限制,但是当我运行它,我不能达成解决方案,只是似乎无法找到一个可行的初始点。
有人能帮我修复我的代码或者帮助我找到错误。
谢谢。
数据= xlsread (“Returns.xlsx”);
nAssets =大小(数据,2);
%的回报和协方差
μ=意味着(数据);
σ= x(数据);
%制定/优化的问题
r_target = 0.10;% r_target是所需的回报
f = 0 (nAssets, 1);%,没有不变的
=(μ;黑眼圈(nAssets)];%除了返回我们禁止卖空
b = [-r_target;0 (nAssets 1)];%的要求收益和重量更大的/ eqauls 0
Aeq = 1 (1、nAssets);%所有重量都应该总结…
说真的= 1;%……一(1)
%解决优化
w = ga (@MaxReturn nAssets, A、b、Aeq beq);
w
%打印解决方案
流(2“风险:% .3f % % \ n”,sqrt (w *σ* w) * 100);
流(2“Ret: % .3f % % \ n”,w *μ* 100);
函数f = MaxReturn (w,μ);
f = mtimes (w *亩);
结束
4评论
接受的答案
沃尔特·罗伯森
2021年12月16日
格式长g
文件名=“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/835520/Returns.xlsx”;
data = readmatrix(文件名);
nAssets =大小(数据,2);
%的回报和协方差
μ=意味着(数据);
μ。
σ= x(数据);
%制定/优化的问题
r_target = 0.10;% r_target是所需的回报
f = 0 (nAssets, 1);%,没有不变的
=(μ;黑眼圈(nAssets)]%除了返回我们禁止卖空
b = [-r_target;0 (nAssets 1)]%的要求收益和重量更大的/ eqauls 0
nAssets Aeq = 1 (1)%所有重量都应该总结…
说真的= 1%……一(1)
%解决优化
fcn = @ (w) MaxReturn (w,μ);
[w, fval、国旗、输出]= ga (fcn nAssets, A、b、Aeq beq)
如果isempty (w)
警告(“找不到任何解决方案”)
其他的
%打印解决方案
流(2“风险:% .3f % % \ n”,sqrt (w *σ* w) * 100);
流(2“Ret: % .3f % % \ n”,w *μ* 100);
结束
(wF fvalF、flagF outputF] = fmincon (fcn, 0。* (1, nAssets), A, b, Aeq, beq)
函数μf = MaxReturn (w)
f = w *亩”;
结束
发生了什么是,ga()决定的约束不能满足任何一组值,所以从来没有调用函数。fmincon()无法找到可行点。
3评论
沃尔特·罗伯森
2021年12月16日
在下面我降低要求返回0.004(比最大的μ小一点,所以目标变得可行。)
您可以看到,ga()成功。
我还创建一个很多随机起点fmincon和提取的满足约束和使用其中的一个作为一个起点。你可以看到,如果你开始用随机点罕见但有可能得到一个可行的(因此是起点
确定
fmincon会发现
一些
解决方案。)
我们从上面的实验我知道fmincon的起点是不可行的可能无法找到解决的办法。
格式长g
文件名=“//www.tianjin-qmedu.com/matlabcentral/answers/uploaded_files/835520/Returns.xlsx”;
data = readmatrix(文件名);
nAssets =大小(数据,2);
%的回报和协方差
μ=意味着(数据);
μ。
σ= x(数据);
%制定/优化的问题
r_target = 0.004;% r_target是所需的回报
f = 0 (nAssets, 1);%,没有不变的
=(μ;黑眼圈(nAssets)]%除了返回我们禁止卖空
b = [-r_target;0 (nAssets 1)]%的要求收益和重量更大的/ eqauls 0
nAssets Aeq = 1 (1)%所有重量都应该总结…
说真的= 1%……一(1)
%解决优化
fcn = @ (w) MaxReturn (w,μ);
[w, fval、国旗、输出]= ga (fcn nAssets, A、b、Aeq beq)
如果isempty (w)
警告(“找不到任何解决方案”)
其他的
%打印解决方案
流(2“风险:% .3f % % \ n”,sqrt (w *σ* w) * 100);
流(2“Ret: % .3f % % \ n”,w *μ* 100);
结束
N = 100000;
x0 =兰德(N, nAssets);
x0 = x0。/ (x0, 2)总和;
Alhs =μ* x0 ';
掩码= Alhs > = r_target;
x0 = x0(面具,:);
如果isempty (x0)
流(“失败的所有% d初始条件\ n”N);
流(最大的是% g但需要% g \ n '马克斯(Alhs) r_target);
流(“μ马克斯是% g \ n”马克斯(μ));
其他的
流(“% d初始条件\ n成功”、大小(x0, 1));
(wF fvalF、flagF outputF] = fmincon (fcn, x0 (1:), A, b, Aeq, beq)
结束
(wF fvalF、flagF outputF] = fmincon (fcn, 0。* (1, nAssets), A, b, Aeq, beq)
函数μf = MaxReturn (w)
f = w *亩”;
结束