本站所有资源均为高质量资源,各种姿势下载。
本算法包旨在实现线性规划(Linear Programming)中的两类核心仿射尺度内点算法:原仿射内点法(Primal Affine Scaling Method)与对偶仿射内点法(Dual Affine Scaling Method)。与传统的单纯形法沿可行域边界搜索的策略不同,该求解器在可行域内部进行迭代更新。通过仿射变换将当前的迭代点置于缩放空间的中心,该算法能够有效地利用梯度下降或对偶上升方向快速逼近最优解。该实现尤其适用于需要稳定收敛特性的线性规划学习与工程仿真场景。
---
---
对应的对偶问题形式用于对偶仿射法中: 最大化: $b^T y$ 约束条件: $A^T y + s = c$ 且 $s ge 0$
原仿射尺度算法实现 该函数首先构造基于当前点 $x$ 的对角缩放矩阵 $X$。通过求解投影方程计算对偶乘子 $w$,随后在原空间计算下降方向 $dx$。算法检测 $dx$ 中的负分量,通过比例测试确定最大允许步长,并乘以缩放因子 $alpha$ 以确保下一迭代点仍为严格的正内点。当投影梯度的范数低于设定阈值时,认为达到最优性。
对偶仿射尺度算法实现 该函数通过维护对偶可行性进行迭代。它利用对偶松弛变量 $s$ 构造缩放矩阵,并计算对偶上升方向 $dy$ 和松弛变量的变化方向 $ds$。与原法类似,程序通过对 $ds$ 进行比例测试来限定步长。该方法通过不断提升对偶目标函数值 $b^T y$ 来从内部逼近原问题的最优解。
结果显示与报表 实现了一套格式化的输出逻辑,在计算完成后,程序会自动在命令行窗口输出算法的收敛状态、迭代总次数、最优目标函数值以及最终的最优解向量。
收敛性可视化 通过双子图布局对比展示:
alpha 来调整步长的进取程度(建议范围 0.9-0.99)。
* 通过 epsilon 设置收敛精度。
* 通过 max_iter 限制最大迭代尝试次数。
---