本研究运用MATLAB开发了针对STYRENE问题的变邻域搜索算法,旨在探索复杂工业过程中的黑盒优化策略,提高模型求解效率与精度。
变邻域搜索算法的MATLAB代码用于解决STYRENE问题,这是一个无导数优化领域的基准案例。该问题模拟苯乙烯生产过程中的情况,并被视为一个没有衍生信息的黑盒模型。其目标是最大化净现值,同时遵守多个工艺和经济约束条件。
此代码最初是由标准C++编写而成,在目录中提供两个版本:一个是代表“真实”黑匣子用于优化;另一个则是静态代理,即真实问题的一个便宜但不太准确的近似解法,常用来辅助实际问题中的优化算法。该问题涉及8个范围在[0;100]内的可调变量和总计11条约束条件(分为两组:4项不可放松且无法量化的以及7项可以调整并量化衡量的)。
黑匣子执行后会输出包含目标函数值在内的总共12个结果。如果这前十一项均小于或等于零,那么这个解就是可行的。此外还提供了两个起始点以供测试:一个为可行状态;另一个则不可行。
解决方案中包括了用于解决真实问题和替代方案版本的Makefile。要进行编译,请进入相应的目录并输入make命令,这将生成blackbox/truth/truth.exe 和 blackbox/surrogate 可执行文件。