LocalSolver快速入门指南(连载十六) ---- LocalSolver可用的操作符和函数列表

Local solver可用的操作符和函数列表在下表中,每个操作符用LSP语言的名称标识。请注意,在Python,C++,C语言或java语言中,这些名称可能略有不同,以尊重每个开发语言的编码约定和预留关键字:在C++和java中,决策变量被冠以“var”( boolVar, floatVar, intVar, setVar 和 listVar)前缀 在C#中所有函数都以大写字母开头. 下表列出了LocalSolver中可用的操作符和函数如有任何疑问请联系localsolver中国代理商/技术
分类: 其他 发布时间: 11-19 09:13 阅读次数: 0

LocalSolver快速入门指南(连载十七) ---- LocalSolver可用的操作符-At操作符

超大规模数学求解器LocalSolver可用的操作符-At操作符At操作符运算符“at”是第一个操作数是数组或列表,后面的操作数是整数(或索引)的一种运算符。索引的数目必须与数组的维数相匹配(如果是列表,则为1)。它的值是数组中元素在给定索引处的值。本页介绍“at”操作符在数组(一维或多维)上的使用。有关在列表变量上使用“at”运算符的说明,请参见列表变量。如果对学习使用Local Solver有更多问题,请联系LocalSolver中国独家代理商无锡迅合信息科技有限公司开发人员。一.
分类: 其他 发布时间: 11-19 09:12 阅读次数: 0

LocalSolver快速入门指南(连载十八) ---- 多维的At操作符

At 操作符还提供了访问数组的数组的方法(在数组的每个索引处保存另一个数组的数据结构)。对于避免创建二次表达式非常方便。假设我们模拟 TSP旅行商问题,其中访问过的第i个城市存储在表达式city[i] 中,并且每对城市之间的距离由距离矩阵(名为distance)决定。第i个城市到下一个城市的行驶距离可以简单地由距离矩阵上的At运算符定义,索引值分布为city[i]和city[i+1]::city = {exprCity0, exprCity1, ..., exprCityn};dist...
分类: 其他 发布时间: 11-19 09:12 阅读次数: 0

LocalSolver快速入门指南(连载十九) ---- 多维的At操作符(续)

Pitfalls(缺点)数组必须具有统一的维数不要求数组具有相同数量的元素(交错数组),但它们必须具有相同的维数。因此,在同一表达式中,不可能将二维数组与三维数组混合。// Will throw an error because the first operand is an expression of// dimension 0 (a boolean decision) whereas the second is an array of// dimension 1...
分类: 其他 发布时间: 11-19 09:12 阅读次数: 0

LocalSolver快速入门指南(连载二十) ---- 分段操作符

分段操作符 利用分段(piecewise)操作符在LocalSolver中引入分段线性函数。分段线性函数是由直线段组成的函数。每条直线的末端称为断点。我们定义分段函数是按照从左到右的顺序给出它的所有断点。分段操作符接受3个参数:一个非递减数组,包含“n”个常量,“n”>= 2。 一个包含“n”常量的数组。 整数或双精度表达式如果第三个操作数的值严格小于第一个数组的第一个元素,或严格大于第一个数组的最后一个元素,则此解决方案将不可行。该操作符返回一个浮点数。表达式piecewise
分类: 其他 发布时间: 11-19 09:12 阅读次数: 0

LocalSolver快速入门指南(连载二十一) ---- 列表、集合变量1

列表和集合变量(List /Set variables)除了布尔型,整数型和浮点型以外,localsolver还提供了两个更高层次的决策变量,即列表变量(list)和集合变量(sets)。Creation operator(创建运算符)列表(List)和集合(set)运算符允许定义一个决策变量,其值是值域是[0,n-1]上的整数集合,其中n是运算符的唯一操作数。它们不一定包含[0,n-1]中的所有值,并且列表或集合中的所有值都是两两不同的、非负的,并且严格小于n。请注意,操作数必须是一...
分类: 其他 发布时间: 11-19 09:11 阅读次数: 0

LocalSolver快速入门指南(连载二十二) ---- 列表、集合变量2

列表变量和集合变量操作符一元操作符和二元操作符Thecountoperator returns the number of elements in a collection. For example, the following model merely expresses the search for a set of maximum size:count运算符返回集合中的元素数量。例如,以下模型仅表示搜索一个集合的最大元素个数:x <- set(5);maximiz...
分类: 其他 发布时间: 11-19 09:11 阅读次数: 0

LocalSolver快速入门指南(连载二十三) ---- 列表、集合变量3

列表变量特定的操作符at运算符允许访问列表中给定位置的值。它需要两个操作数:一个列表和一个整数表达式(不一定是常量)。当给定索引为负或大于或等于count(x)时,它返回-1。例如,以下模型中的目标函数是最大化列表中第一项和最后一项的乘积:x <- list(5);constraint count(x) > 0;maximize x[0] * x[count(x)-1];indexOf运算符返回给定整数在列表中的位置,如果该整数未包含在列表中,则返回-1。..
分类: 其他 发布时间: 11-19 09:11 阅读次数: 0

LocalSolver快速入门指南(连载二十四) ---- 列表、集合变量4

使用集合变量构建模型集合可以作为一种紧凑的方法来建模各种问题中的组成员。如果k是货箱数量,则装箱问题将用k集合来建模。这些集合将被约束成一个分区(使用操作符partition)。虽然列表在建模排序约束的能力上是唯一的,但是集合变量可以被等效的布尔模型所代替。如果问题涉及到将一个项目分配给几个相似的组或容器中的某一个,则应首选集合变量。这是用不相交算子(disjoint)或分区算子(partition)自然地建模的。另一方面,在某些情况下,布尔模型可能执行得更好。当存在一个单独的集合时(...
分类: 其他 发布时间: 11-19 09:11 阅读次数: 0

LocalSolver快速入门指南(连载二十五) ---- Lambda表达式

Lambda expressions(拉姆达表达式)LocalSolver 提供了将 n 元运算符(如 sum、min、max 等)应用于一系列动态大小的可能性。例如,它允许定义一个总和,其项数将取决于其他表达式。在这样的表达式中,迭代项作为 lambda 函数引入。一个典型的用法是定义集合项的总和:// x是一个列表变量或集合变量total <- sum(x, i => quantity[i]);在上面的例子中, sum 有两个操作数:第一个操作数是集合。 第二.
分类: 其他 发布时间: 11-19 09:10 阅读次数: 0

LocalSolver快速入门指南(连载二十六) ---- 整数范围

Ranges(整数范围)范围是连续整数的集合。注意:在LSP建模语言中,..操作符定义一个封闭范围。也就是说,两个端点都包含在区间内:a..b表示从a到b的整数序列。相反,当从LocalSolver的api调用时,range(a,b)表示从a到b-1的整数序列。范围的两端都可以是非常数表达式。请注意,当范围为空时,一些n元操作符(如min和max)将被认为是未定义的,也就是说,当范围为空时,解仍然是不可行的。例如,下面的表达式隐式地约束b大于或等于a:minimize max(.
分类: 其他 发布时间: 11-19 09:10 阅读次数: 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。这个特...
分类: 其他 发布时间: 11-19 09:10 阅读次数: 0

LocalSolver快速入门指南(连载二十八) ---External functions外部函数

LocalSolver的External functions外部函数外部函数是LocalSolver的一个特殊功能,它允许您为模型创建自己的操作符。他们有两个主要目的:创建无法用LocalSolver的可用的运算符轻松表示的表达式。例如,LocalSolver没有用于反三角函数(如arctan、arcin或arccos)的特殊运算符。对于外部函数,只要您的编码语言允许,就可以创建它们。实际上,只要返回有效的整数或浮点数,几乎可以创建任何所需的运算符或函数。 缩小数学模型的尺寸。如果有许多等价表达式
分类: 其他 发布时间: 11-19 09:10 阅读次数: 0

Simio仿真软件解决方案和AI人工神经网络训练器

人工智能,大数据,系统仿真并列为未来工业基础性技术的三大支柱。将仿真模拟和机器学习(ML)等人工智能技术结合使用的一个重大障碍是:开发人员有不同的背景和使用不同的工具,特别是仿真模型开发人员缺乏开发ML算法所需的软件工具和编码能力方面的专业知识。为了弥补这一差距,Simio经过多年潜心研发,率先发布了Simio人工神经网络训练器模块,得益于Simio创新的AI学习智能体(AI Learning Agent),仿真模型用户不需要有太多AI神经网络训练方面的开发能力就能轻松地在Simio仿真模型中加入智能的模型
分类: 其他 发布时间: 11-19 09:10 阅读次数: 0

LocalSolver快速入门指南(连载二十九) ---外部函数实例LSP

外部函数的实例 LSP建模语言在本例中,我们将反余弦函数(也称为arccosine)应用于我们的模型,并试图基于这个新的运算符最小化一个简单的表达式。LSP建模语言:在LSP中,虚拟机为您完成了大部分工作。实际上,任何函数都可以通过特殊的方法intexteralfunction或doubleExternalFunction转换为新的操作符(取决于函数的返回类型)。此外,O_Call表达式中提供的参数只是作为LSP函数的参数公开。因此,在下面的示例中,参数x + y的值被简单地传递给了ls.
分类: 其他 发布时间: 11-19 09:09 阅读次数: 0

LocalSolver快速入门指南(连载三十) ---- 外部函数的实例 PYTHON

LocalSolver快速入门指南(连载三十) ---- 外部函数的实例 PYTHONPYTHON代码:在Python中,任何函数都可以转换为一个新的操作符,只要它接受一个数值字列表,并返回一个整数或双精度浮点数。要创建一个新的外部函数,可以使用create_int_external_function()或create_double_external_function()(取决于函数的返回类型)。然后,您可以在CALL表达式中使用您的函数。要创建CALL表达式,可以使用泛型方法crea.
分类: 其他 发布时间: 11-19 09:09 阅读次数: 0

LocalSolver快速入门指南(连载三十一) -- 外部函数实例 C++

外部函数C++代码实例在C++中,必须扩展LSExternalFunction类,特别是call()方法来实现外部函数(第1步)。然后(第2步),实例化函数并使用createExternalFunction()方法将其转换为一个LSExpression。最后(步骤3),可以在O_Call表达式中使用你的函数。要创建O_Call表达式,可以使用泛型方法createExpression()、快捷方法call()或在LSExpression上使用特定重载的:cpp:func:~LSExpressi
分类: 其他 发布时间: 11-19 09:09 阅读次数: 0

系统仿真和AI技术的融合 (NN102)

"我不懂AI,但AI将替代老师且教得更好"--俞敏洪系统仿真中的AI技术 人工智能应用已经从实验室环境扩展到了现实世界(无论是商业环境,公共领域,还是军事领域)。仿真建模通过提供一个支持环境来更好利用人工智能的优势,促进这种扩展。人工智能和仿真模拟的结合为整个工业部门提供了众多机会来评估业务过程,以获得精确决策所需的、数据驱动的洞察力。 人工智能包括机器学习(M/L)、深度学习(D/L)和神经网络(ANN)等子集。按照定义,人工智能是指构建能够模拟人类智能的机器和计算机系统...
分类: 其他 发布时间: 11-19 09:08 阅读次数: 0

NOIP2012 国王游戏(贪心)

原题链接题目描述输入描述输出描述输入样例3 1 1 2 3 7 4 4 6 输出样例2样例说明数据范围本题中不难发现,交换任意两个大臣时,只会影响他们各自的金币数,而不会影响他们之前和之后的大臣的金币数,因此可以考虑贪心对比两个大臣交换前后的金币。假设相邻的两个大臣中,其左右手分别为 a1,b1,a2,b2,之前所有人的左手乘积总和为 sum,可得交换前为 sum * a1 / b2,交换后为 sum * a2 / b1,若存在交换前 > 交换后,可推出
分类: 其他 发布时间: 11-19 09:08 阅读次数: 0

于是他错误的点名开始了(字典树Trie模板)

原题链接题目描述输入描述输出描述输入样例5 abcadacd3aae输出样例OKREPEATWRONG题目大意:对输入的 n 个名字建 Trie 树,并在 m 个询问内查找是否有对应的 Trie 树,同时注意是否为第一次询问该名字。快乐模板题,唯一在建树和查找之上增加的内容是判断当某个 Trie 树存在时,标记它是否已经访问过。可用 1 表示第一次找到,2 表示已找到过一次即可。参考代码#include <bits/stdc++.h>u
分类: 其他 发布时间: 11-19 09:08 阅读次数: 0