← 返回文章库

行业下限加起来超过100%,优化器报无解前怎样自己查

2026-10-24 · L5

本例无需启动优化器就能证明无解:甲行业至少占六十个百分点,乙行业至少占五十个百分点,两行业互斥并覆盖全部四项资产,下限相加已达一百一十,而总资金只有一百。关键是先核实覆盖与分母,再定位哪几条要求共同矛盾;一条报错信息本身不能说明应改哪项业务条件。

先把四项资产放进同一张约束矩阵

以下完全是构造样本,不对应任何真实账户或行业规则。观察时点设为教学日零,价格和净资产固定,不考虑费用、现金、借贷与卖空。四项资产A、B、C、D各自非负且最多七十个百分点。甲行业只含A、B,乙行业只含C、D,每项恰归一个行业;两组没有交叉,也没有遗漏。所有权重都以同一份净资产为分母,百分之六十写成表中的六十。

约束A系数B系数C系数D系数关系右端(百分点)
总资金1111=100
行业甲1100>=60
行业乙0011>=50

系数矩阵的第一行把四项全部相加,第二行只取前两项,第三行只取后两项。读者应先检查资产标识和行业映射,再抄入上下限。若一只基金同时穿透到多个行业,或者有未归类现金,第二行加第三行未必等于第一行,下面的相加证明就不能直接套用。把风险预算百分比误写成资金权重,哪怕单位都显示百分号,也是在混合两种不同约束。

必要条件能筛出什么,不能证明什么

必要检查百分点
单资产下限合计0
单资产上限合计280
两行业下限和110
可用总资金100

单资产下限总和为零,上限总和为二百八十,所以只看资产区间,分出一百个百分点并无障碍。这一步通过不能证明整个组合可行。将行业两条不等式相加,左边恰是全部资产之和,右边为一百一十;总资金等式又要求左边等于一百,于是得到一百至少等于一百一十的矛盾。这是连续权重空间中的代数反证,与网格步长、收益预测和目标函数都无关。

实际核对可以按三个层次推进:先逐项确认下限不大于上限,再检查全体上下限能否覆盖总资金,最后对互斥分组检查区间和。行业与风格限制若相互重叠,简单相加可能重复计算同一资产,需要回到矩阵,寻找能抵消或组合的行。必要条件未发现矛盾,只能记录尚未筛出问题,不能写成所有约束已经同时满足;完整可行证人仍然需要逐行验算。

最小冲突必须检查真子集,而不是只删一行

本例把四项资产的零到七十边界作为固定背景,只讨论表一三条汇总约束组成的冲突。下表枚举每项取零、十、二十直到七十的四维网格,共四千零九十六个候选点;不要求所有候选点先满足总资金,否则就无法检验删除总资金等式后的子问题。每个真子集均列一个实际证人,空集合也保留,以便核对覆盖完整性。

保留约束网格可行数证人[A,B,C,D]
[]4096[0,0,0,0]
["总资金"]246[0,0,30,70]
["行业甲"]2752[0,60,0,0]
["总资金","行业甲"]105[0,60,0,40]
["行业乙"]3136[0,0,0,50]
["总资金","行业乙"]141[0,0,30,70]
["行业甲","行业乙"]2107[0,60,0,50]
["总资金","行业甲","行业乙"]0缺失

保留全部三条时没有网格证人,这项搜索结果只就网格而言。连续不可行的结论来自上一节相加反证;每个真子集却都已有网格内证人,自然也就是连续空间中的证人。因此三条汇总约束相对于固定资产边界构成一个不可再删的最小冲突集合。这里的最小是按包含关系,不能推成所有可能约束集中条数最少,更不能把背景中的每一条资产边界也说成必不可少。

删除甲行业下限,证人可以把资金放到乙;删除乙行业下限,甲达到六十后仍能闭合;删除总资金等式,两行业合计一百一十也能各自成立。删除操作是在诊断系统,不是授予实际账户突破资金上限的权限。复核报告应同时保存被删除行、剩余行的数值和证人,而不是只写放松后成功,这样别人才能判断到底是恢复了可行性,还是悄悄改变了题目。

放松十个百分点后,重新提交完整证人

条件ABCD总资金甲行业乙行业
乙下限降至400600401006040

把乙行业下限由五十改成四十时,构造证人是A零、B六十、C零、D四十。每项落在零到七十之内,行业甲六十、乙四十,总资金一百,所有行同时成立。这是对一个具体修订问题的完整证明。它没有比较收益,也没有证明这样的行业分配最优;若另有单项最低持仓、不可交易数量或换手限制,应将新增要求逐项加入后再验证,旧证人可能立即失效。

一种错误修复是把原先六十与五十同比缩小到合计一百,随后宣称原行业下限已经满足。缩放会把两项都压到原下限以下,解决的是另一套条件。另一种错误是调高收益预测,希望优化器更愿意买入;收益只能在可行集合内排序,无法让互相矛盾的等式同时成立。还应检查输入是否缺失:行业映射未知时不能默认为零,下限缺字段也不应自动改成没有限制。

把无解证据交给谁,以及工具能核到哪一步

操作顺序是保存输入版本,形成矛盾行组合,再提交一个可解释的放松方案和对应证人。负责规则的人确认修改后,才在新问题中重跑收益或风险目标。需要分清严格上限、可协商偏好和数据错误,不能由程序为得到一个答案擅自决定优先级。若不同规则来自不同时间,先确认它们是否本来就需要同时适用,避免把过期和现行区间拼到同一矩阵里。

CVXPY入门的不可行状态说明支持区分无解与无界,不提供本文业务下限。本文用显式反证和子集证人解释原因,而不是把某个求解器状态当成冲突清单。矩阵全部使用整数百分点,证人无须舍入;软件实现若用浮点数,应另列容差,不能用大容差吞掉十个百分点的实质缺口。

从分数到持仓的母题可了解组合构建背景;组合波动率基础工具只核给定输入的基础风险,本页新增模型在教学表中核算,不表示工具已增加优化能力。相关条件可继续核对组合限量卖出期限约束与多空组合总净敞口,分别保留各题输入,避免把不同约束的结论混用。

道积君编辑组,AI辅助编写与核算。本文编号DJ4-078,构造教学数据不对应真实账户;来源支持所注明方法,不证明参数、预测或执行条件真实成立。

复算资料

本篇编号DJ4-078。下载Python复算脚本(文本)与构造输入输出JSON,按编号核对本篇。脚本改存为.py后可用Python标准库运行,数据不是实际用户记录。

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。