目标优先级(全局最优,非贪心):
① 资金利用率:先求最大可达 Σ市值 U* ≤ C;
② 利用率达标(下限可调,默认 99.5%):在 Σ市值 ∈ [U*−(1−下限)·C, C] 范围内;
③ 最小化浮动绝对值合计 Σ|浮动|;
④ 最小化 Σ浮动² —— 这一项让浮动均匀分摊到各项资产,而不是集中压在某一只上。
核心约束:调整手数 = 100 股整数倍;持仓 ≥ 0;Σ市值 ≤ 资金总量 C;每项比例尽量落在 [原比例×0.8, 原比例×1.2]。
求法:对每项资产枚举其浮动带内所有可行的 100 股整数倍持仓,用分支限界(DFS + 上下界剪枝)做全局搜索,得到的是真正的全局最优解,而非逐步贪心的近似解。
关于"均匀":Σ|浮动| 的最小值与"均匀"并不完全等价 —— 当某项被结构性地迫偏离(如单手金额大于浮动带)时,其余各项只要"同向"补足,Σ|浮动| 都相同。此时由第 ④ 项目标(Σ浮动²)把负担均匀分摊开。
比例口径:浮动 = 最终比例 − 原比例,单位为百分点(pp)。最终比例 = 该资产调整后市值 ÷ 资金总量 C。