基于Benders分解的混合整数规划求解器
项目介绍
本项目设计并实现了一个采用Benders分解算法的高效混合整数规划求解器。该求解器通过将原始问题分解为主问题和子问题,利用割平面技术迭代求解,有效处理包含连续变量和整数变量的复杂优化问题。支持自定义目标函数、约束条件及变量类型,并提供可视化迭代过程与收敛分析功能。
功能特性
- Benders分解算法实现:完整实现了Benders分解框架,包括主问题与子问题的协同求解
- 割平面生成技术:支持最优割平面与可行割平面的动态生成与添加
- 灵活的问题定义:允许用户自定义目标函数系数、约束条件矩阵和变量类型
- 可视化分析:提供迭代过程的实时可视化,包括收敛曲线图和求解状态监控
- 参数可配置:支持最大迭代次数、容差值、割平面类型等算法参数的灵活设置
使用方法
输入参数
- 目标函数系数矩阵
- 约束条件矩阵
- 变量类型标识向量(整数/连续变量标识)
- 最大迭代次数
- 容差值(收敛判定)
- 割平面类型选择
输出结果
- 最优解向量
- 目标函数值
- 收敛状态(成功/失败)
- 实际迭代次数
- 收敛曲线图
基本使用流程
- 准备优化问题的输入参数
- 设置算法参数(或使用默认参数)
- 运行求解器
- 查看输出结果和收敛分析图表
系统要求
- MATLAB R2018a 或更高版本
- 优化工具箱(Optimization Toolbox)
- 内存:至少4GB RAM(建议8GB以上)
- 硬盘空间:至少500MB可用空间
文件说明
主程序文件实现了整个求解器的核心控制逻辑,包括初始化参数设置、算法流程控制、迭代求解循环、结果分析与可视化输出等功能。该文件整合了Benders分解算法的各个模块,负责读取输入数据、执行主问题与子问题的交替求解、管理割平面的生成与添加、监控收敛状态,并最终生成求解结果报告和收敛分析图表。