Localsolver求解器性能大提升,问题标杆研究

news/2024/10/22 10:34:50/

LocalSolver性能大提升,12.0发布!

车辆路由问题

在1分钟的运行时间内,1,000次交货的车辆路径优化问题得到了近乎最优的解决。下面提到的“差距”是LocalSolver 12.0在标准服务器(Intel Xeon E3-1230处理器,4核,3.6 GHz, 8MB缓存,32GB RAM)上运行1分钟内计算出的解决方案与研究文献中使用专用算法计算出的最知名的解决方案之间的相对差距,已知的那些专用算法需要在更强大的硬件上运行好几天。

带时间窗的车辆路径问题(CVRPTW):在交付1,000次以上的情况下,平均差距为2.3%。
有时间窗口的取件和发货问题(PDPTW): 对于1,000次交付的情况,平均差距为1.7%。

此外,LocalSolver 12.0在解决现实生活中的路线优化问题方面带来了显著的性能改进,这些问题涉及预分配、同一辆卡车交付的客户互斥、地点的限制条件、前后优先级、转运、分割交付以及与资源使用成本相关的目标(例如:驾驶时间或工作时间等等)。

生产计划调度

LocalSolver 12.0引入了区间决策和相关操作符:start, end, length, contains。区间的引入简化了排产调度问题的建模,因为它们可以用来表示任务的时间跨度。由于区间变量的存在,许多问题可以用一种更简洁、直接和自然的方式建模,例如:

作业车间问题(JSP)
带有工作强度的作业车间问题
灵活作业车间(FJSP)
带准备时间的灵活作业车间问题
开放车间调度问题OSSP
资源受限的项目调度问题(RCPSP)
灵活的资源约束项目调度问题(Flexible RCPSP)

区间变量的使用示例如下:

// Interval decisions: time range of each task

tasks[i in 0...nbTasks] <- interval(0, horizon);

// Task duration constraints

for [i in 0...nbTasks]

constraint length(tasks[i]) == duration[i];

// Precedence constraints between the tasks

for[i in 0...nbTasks][s in 0...nbSuccessors[i]] {

constraint tasks[i] < tasks[successors[i][s]];

}

makespan <- max[i in 0...nbTasks] (end(tasks[i]));

minimize makespan;

LocalSolver 12.0改进了对具有不同目标的多个调度问题的计算下界。下表结果显示了LocalSolver对各种问题在1分钟运行时间内报告的相对于市场上最佳已知解决方案的平均对偶差距(Dual Gap)。

问题    # 任务数    目标    对偶差距
作业车间问题    2,000    生产周期    4.0%
灵活作业车间问题    4,000    生产周期    6.0%
资源受限的项目调度问题    300    生产周期    4.3%
开放车间调度问题    400    完成时间加权和    4.0%
设施位置规划问题

单源容量约束的设施位置问题:在拥有多达1,500个客户的网络上,在1分钟内对最知名解决方案的平均差距为3.8% (知名解决方案需要在更强大的服务器上运行数天)。这个基准来自P. Avella和M. Boccia(2009)的论文:一种用于有容量限制的设施选址问题的切割平面算法,Computational Optimization and Applications期刊vol. 43, pp. 39–65。

混合整数非线性优化 (MINLP)

投资组合优化是传统马科维茨投资组合问题的一种变体,对所选资产的数量进行了基数约束。在这个混合整数非线性优化问题(MINLP)上,LocalSolver 12.0在拥有多达2,000个资产的实例上在10秒以内提供了接近最优的解决方案。

仿真优化问题

•Localsolver 12.0将其词典式多目标能力扩展到仿真优化。

•在我们的内部基准中,由工业问题和学术问题,不受约束和受约束的实例所组成的199个实例的134个实例上实现了少于150个函数评估的佳绩(与LocalSolver 11.5相比求解实例+10)。在LocalSolver 12.0中,达到最佳解决方案的平均评估次数为70.8次(与之相比,LocalSolver 11.5为75.0次)。LocalSolver12.0使用更少的评估次数获得最佳解决方案。

建模API和LSP语言

•Localsolver 12.0引入了一个Geodata地理数据模块,用于快速计算距离和时间矩阵,这是路径优化的关键数据:我们的模块在1秒的运行时间内计算1,000 x 1,000矩阵。

•LSP建模语言现在支持语法“M…N”来创建从M(包含)到N(不包含)的范围。

•Localsolver 12.0已适用于Linux arm64架构。

LocalSolver Studio低代码SaaS平台

LocalSolver Studio为数学模型开发人员提供了完美的低代码SaaS平台,用于开发、调试和运行使用LocalSolver建模语言编写的优化应用程序。在其众多功能中,该工作室应用平台提供了:


•功能强大的代码编辑器,具有语法检查和自动完成等高级功能,可帮助您编写简洁且无错误的优化模型。

•安全的文件云存储,为从任何设备访问的无限个项目提供充足磁盘空间。

•与LocalSolver Cloud集成,使您可以直接从浏览器运行您的LocalSolver模型,而无需安装软件或配置。

•用于构建用户界面的直观可视化工具,因此您可以轻松输入数据并可视化您的优化结果。

•Localsolver无代码建模器为您生成数学优化模型和接口,仅需几次点击。


http://www.ppmy.cn/news/1072654.html

相关文章

Python random常见函数

Python 的 random 模块提供了很多功能来产生随机数和随机选择。以下是该模块中的一些常见函数&#xff1a; random(): 返回一个在 [0.0, 1.0) 之间的浮点数。 import random print(random.random())randint(a, b): 返回在 [a, b] 之间的随机整数&#xff0c;包括两端的值。 pri…

聊聊架构师的能力模型

要想从一名普通程序员发展成为优秀的架构师&#xff0c;“个人特性”与“技术技能”缺一不可&#xff1b;而“技术专业能力”、“人际关系能力”和“业务能力”更是优秀架构师重要的三种能力。引子究竟是什么让你在同一个位置上——例如程序员或技术负责人——工作了三年、五年…

win10/11电脑中病毒后programdata文件夹不显示,其他文件夹不显示问题,文件夹存在不显示问题解决

首先出现这个问题确保是打开了显示隐藏文件夹 发现问题还是没有解决继续往下看 就是上边这个文件夹&#xff0c;我解决之前忘记截图了&#xff0c;这是解决后的图 这个文件夹是系统应用程序数据缓存文件夹&#xff0c;很重要 好多病毒就是优先隐藏此文件夹来监视系统数据&…

JSONUtil详解

JSONUtil是一个通用的JSON工具类&#xff0c;用于在Java中操作JSON数据。虽然之前提到的示例中没有直接提及JSONUtil&#xff0c;但可以解释一下可能存在的一些常见JSON操作方法&#xff0c;这些方法通常可以在不同的JSON工具类中找到。 JSONUtil中的一些常见方法包括&#xf…

最优化:建模、算法与理论(优化建模)

最优化&#xff1a;建模、算法与理论 目前在学习 最优化&#xff1a;建模、算法与理论这本书&#xff0c;来此记录一下&#xff0c;顺便做一些笔记&#xff0c;在其中我也会加一些自己的理解&#xff0c;尽量写的不会那么的条条框框&#xff08;当然最基础的还是要有&#xff…

Python-使用xlsxwriter创建单元格下拉列表(数据校验)

在一个B/S系统中&#xff0c;用户经常需要从以Excel的方式填写后导入&#xff0c;此时网页上需要提供Excel填写的模板&#xff0c;将所需填写的字段以及所处的列的位置固定下来。其中&#xff0c;避免用户随意填写导致系统后台校验出错&#xff0c;对于某些字段&#xff0c;系统…

C# 课后练习题

17. XAF框架下的导航按钮 using System; using System.Collections.Generic; using System.Line; using System.Text; using System.Threading.Tasks;namespace Tutorial_XAF.Module.BussinessObjects {[XAFDisplayName("测试")][NavigationItem("这是导航&quo…