
localsolver数学求解
文章平均质量分 61
流水潺潺行云不语
专注于系统仿真建模、数学建模和求解器。精通Simio,Simul8,Promodel和数学优化器LocalSolver,面向企业咨询20+年。流水潺潺行云不语。
展开
-
LocalSolver快速入门指南(连载四十一) -车辆路径调度问题建模指导
Localsolver的列表变量(List variables)是一个非常强大的建模功能,可以使用于各种问题,其中项目的集合必须以优化的方式进行排序。例如,调度问题、生产计划问题、船员调度问题甚至指派问题都可以用列表变量进行高效建模和求解。...原创 2022-06-10 10:43:21 · 675 阅读 · 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黑盒优化使用 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快速入门指南(连载三十四) -- Local solver外部函数的陷阱
求解器状态大多数时候,您的外部函数将在求解器处于运行状态时被调用。在这种状态之中不要尝试调用解算器的任何方法(用于检索统计信息、LSExpressions的值等),否则将抛出异常。唯一可访问的函数是LocalSolver::stop()。线程安全LocalSolver的搜索策略默认是多线程的。因此,多个线程可以同时调用外部函数和代码。这不是一个问题,只要你的外部功能没有任何副作用。在其他情况下,您有责任通过使用互斥锁(mutexes)、临界区或任何其他您想要的锁定机制来确保代码的线程安全。如果不原创 2021-12-09 12:06:28 · 1349 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十三) -- 外部函数实例 JAVA
外部函数的实例(Local Solver Java实现)JAVA实现在Java中,您必须实现LSIntExternalFunction或LSDoubleExternalFunction接口,特别是call ()方法来实现外部函数(第1步)。然后(第2步)实例化函数并使用LSModel.createIntExternalFunction或LSModel.createDoubleExternalFunction方法将其转换为一个LSExpression表达式。要创建LSOperator.ca.原创 2021-12-06 17:48:10 · 236 阅读 · 0 评论 -
LocalSolver-全领域、超大规模混合变量数学规划介绍
LocalSolver-全领域、超大规模混合变量数学规划介绍“由于数学建模是主人,计算是仆人,任何计算方法都不应假定有自己的求解器。这意味着世界上本没有CP求解器,没有MIP求解器,也没有SAT求解器。所有这些技术都应该在单个系统中可用,以解决手头的模型。它们应该能够利用问题结构无缝地结合起来。随着问题的扩大,精确的方法应该优雅地演变成不精确的和启发式方法。”【John N. Hooker(2007)“约束规划未来之好与坏(和运筹学)”约束规划手札1,第21-32页】混合整数原创 2021-11-28 14:11:57 · 811 阅读 · 0 评论 -
LocalSolver快速入门指南(连载三十二) -- 外部函数实例 C#
外部函数的实例外部函数C#示例代码在c#中,外部函数的签名必须符合委托LSIntExternalFunction或LSDoubleExternalFunction,它们接受LSExternalContext实例并返回一个整数或浮点值。然后,您可以在LSOperator.call表达式中使用您的函数。创建LSOperator.Call调用表达式时,可以使用通用方法LSModel.CreateExpression或使用快捷方式LSModel .Call。外部函数的参数值将通过LSExtern.原创 2021-11-23 19:29:21 · 183 阅读 · 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 评论