
localsolver入门系列
文章平均质量分 59
流水潺潺行云不语
专注于系统仿真建模、数学建模和求解器。精通Simio,Simul8,Promodel和数学优化器LocalSolver,面向企业咨询20+年。流水潺潺行云不语。
展开
-
LocalSolver快速入门指南(连载四十一) -车辆路径调度问题建模指导
Localsolver的列表变量(List variables)是一个非常强大的建模功能,可以使用于各种问题,其中项目的集合必须以优化的方式进行排序。例如,调度问题、生产计划问题、船员调度问题甚至指派问题都可以用列表变量进行高效建模和求解。...原创 2022-06-10 10:43:21 · 675 阅读 · 1 评论 -
LocalSolver11.0发布新特性新表现
LocalSolver11.0春季强劲登场LocalSolver 11.0带来了许多新特性和求解性能的改进。发现这个新版本的主要新奇之处。1. 车辆路径问题车辆路由问题从来没有被更快地解决过:·有限能力限制的车辆路由问题(CVRP):在一分钟的运行时间内为超过1000个客户的实例提供解,与已知的最佳解决方案的平均差距为2.2%(优于)。·带时间窗的有限能力限制下的车辆路由问题(CVRPTW): 在一分钟的运行时间内为超过1000个客...原创 2022-04-15 14:43:40 · 608 阅读 · 1 评论 -
LocalSolver快速入门指南(连载三十九) -LocalSolver黑盒优化使用Java
黑盒优化使用Java在Java中,黑盒函数作为实现接口LSDoubleBlackBoxFunction的对象传递给LocalSolver。这个接口有一个方法call(调用),它的参数是LSBlackBoxArgumentValues类型的对象。call方法使用此对象来访问当前点的决策变量值,以求值并返回此时的函数值。然后创建一个LocalSolver模型来优化这个黑盒函数。使用doubleBlackBoxFunction方法将黑盒函数转换为LSExpression。决策使用call类型的LSEx.原创 2022-04-08 13:28:37 · 221 阅读 · 0 评论 -
LocalSolver快速入门指南(连载四十) -LocalSolver黑盒优化使用.NET代码
超大规模数学求解器/数学建模优化 Local Solver黑盒优化使用.NET代码 (学习指南)+代码。原创 2022-03-27 09:59:38 · 431 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十八) -LocalSolver黑盒优化使用 C++代码
在 C++ 中,黑盒函数作为实施LSBlackBoxFunction接口的对象传递给 LocalSolver求解器。该接口有一个以 LSBlackBoxArgumentValues 类型的对象为参数的虚拟方法调用。原创 2022-03-12 17:08:35 · 1218 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十七) --Black-Box Optimization黑盒优化(概述)
谨慎!如果该函数的计算成本不高并且可以在求解过程中进行数千次评估,那么使用黑盒函数可能不是最佳选择。考虑使用LocalSolver的外部函数.注意:请注意,此功能在 LSP 语言中不可用注意:此功能当前不支持集合变量。在本节中,我们将详细介绍如何在 LocalSolver 支持的每种编程语言(C++、Java、.NET、Python)中优化黑盒函数。为了说明这个描述,我们将通过一个黑盒界面来最小化 Branin 函数。演示目的,评估次数将限制在 20 次。Branin函数的定义原创 2022-03-12 15:47:31 · 1802 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十六) --外部函数内存管理
如果使用c++开发外部函数,你必须释放你创建的外部函数的内存。LocalSolver不管理在其环境之外创建的对象的内存。当然本建议不适用于托管语言(LSP、c#、Java、Python),托管代码自动进行垃圾内存回收。下一章节:LOCAL SOLVER黑盒优化 未完待续。。。。...原创 2022-02-07 12:21:51 · 805 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十五) --外部函数的性能问题
Local Solver中外部函数的性能问题即使我们将外部函数设计得尽可能快,有时也会遇到性能问题。外部函数可能会出现两种性能上的问题:搜索的最终结果并不像预期的那么好。 与没有外部函数的模型相比,搜索速度下降。第一个问题是由于特性本身的性质。实际上,LocalSolver对你添加的新运算符一无所知。它甚至不知道你的运算符是否是确定性的。因此,它不能像使用软件编目中定义的操作符那样,以搜索为靶向或探索解决方案空间。因此,如果您观察到可行性问题,或者如果您可以轻松地改进由LocalSolver返回原创 2022-02-07 12:16:12 · 814 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十一) -- 外部函数实例 C++
外部函数C++代码实例在C++中,必须扩展LSExternalFunction类,特别是call()方法来实现外部函数(第1步)。然后(第2步),实例化函数并使用createExternalFunction()方法将其转换为一个LSExpression。最后(步骤3),可以在O_Call表达式中使用你的函数。要创建O_Call表达式,可以使用泛型方法createExpression()、快捷方法call()或在LSExpression上使用特定重载的:cpp:func:~LSExpressi原创 2021-10-30 13:35:02 · 168 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十) ---- 外部函数的实例 PYTHON
LocalSolver快速入门指南(连载三十) ---- 外部函数的实例 PYTHONPYTHON代码:在Python中,任何函数都可以转换为一个新的操作符,只要它接受一个数值字列表,并返回一个整数或双精度浮点数。要创建一个新的外部函数,可以使用create_int_external_function()或create_double_external_function()(取决于函数的返回类型)。然后,您可以在CALL表达式中使用您的函数。要创建CALL表达式,可以使用泛型方法crea.原创 2021-10-28 22:40:16 · 244 阅读 · 0 评论 -
LocalSolver快速入门指南(连载二十九) ---外部函数实例LSP
外部函数的实例 LSP建模语言在本例中,我们将反余弦函数(也称为arccosine)应用于我们的模型,并试图基于这个新的运算符最小化一个简单的表达式。LSP建模语言:在LSP中,虚拟机为您完成了大部分工作。实际上,任何函数都可以通过特殊的方法intexteralfunction或doubleExternalFunction转换为新的操作符(取决于函数的返回类型)。此外,O_Call表达式中提供的参数只是作为LSP函数的参数公开。因此,在下面的示例中,参数x + y的值被简单地传递给了ls.原创 2021-10-28 22:08:05 · 214 阅读 · 0 评论 -
LocalSolver快速入门指南(连载二十七) ---- Lambda函数的特殊情形
Local SolverLambda函数的特殊情形当在此上下文中使用数组(array)操作符时,它将创建一个数组,其大小将随着关联范围(associated range)的大小而变化。通过在函数中使用第二个参数,允许递归定义该数组的元素,该参数包含函数对范围的前一个元素的求值。形式上,如果我们定义v<-array(a..b,(i,prev)=>f(i,prev)),对于区间[a, b]内的所有i,我们有v[i] = f(i,v[i-1]),根据约定v[-1]等于0。这个特...原创 2021-06-22 12:52:31 · 136 阅读 · 0 评论