当前位置: 首页 > 软件库 > 程序开发 > 数学计算 >

Choco-solver

用于约束编程的开源 Java 库
授权协议 BSD
开发语言 Java
所属分类 程序开发、 数学计算
软件类型 开源软件
地区 不详
投 递 者 燕实
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Choco-solver 是一个用于约束满足问题(Constraint Satisfaction Problems)和约束规划(Constraint Programming)的 Java 库。 它建立在一个可回溯结构的,基于事件的传播机制上。  

Choco-solver 随附:

  • 各种类型的变量(整数、布尔值、集合、图和实数)
  • 各种最新的约束条件(所有不同、计数、n 值等)
  • 各种搜索策略,从基本的(first_fail、最小等)到最复杂的(基于影响和基于活动的搜索)
  • 基于说明的引擎,可实现基于冲突的回跳、动态回溯和路径修复。
  • Choco求解器的安装 Choco求解器的安装必须要保证是JAVA8(JDK1.8)非常重要,否则可能会安装不全包。 Choco求解器是约束满足问题较为成熟的求解器,可以利用这个平台做约束满足问题的二次开发。 安装步骤: 1.在Choco的官方网站:http://www.choco-solver.org/   上下载choco-4.0.4.zip 2.下载maven软件,如果已经安装了maven则

  • 一. 相关资料 choco-slover github源代码以及工具下载网址:https://github.com/chocoteam/choco-solver choco-slover 官网文档:https://choco-solver.org/ choco-slover安装eclipse视频:https://www.youtube.com/watch?v=qz6ATkEI_F8 视频所采用的资

  • solver文件设置是通过协调网络的正向推理和反向梯度来协调模型优化,得到试图改善损失的的参数。学习的职责被分配给负责监督优化和生成参数更新的solver,以及负责生成损失和梯度的网络。 caffe有六种优化器 Stochastic Gradient Descent (type: "SGD") AdaDelta (type: "AdaDelta") Adaptive Gradient (type:

  • 我想用这样的离散值求解非线性多变量方程: x*y + z + t - 10 = 0 有约束: 10 < x < 100 等等.. 我正在尝试使用Choco库来做,但是我有点迷茫. 我发现此代码: // 1. Create a Solver Solver solver = new Solver("my first problem"); // 2. Create variables through t

 相关资料
  • 我正在使用choco solver库生成一组谜题。我需要运行解算器,检查有多少个解,如果有多个解,添加一个额外的约束。重复这一步会给我一组约束(线索),它们有一个独特的解决方案。 然而,一旦我运行model.get求解器(findAllSolutions()),任何额外的检查都会返回零解。 我猜我需要以某种方式重置模型求解器,但找不到实现这一点的方法——如果必须的话,我宁愿不生成新模型并重新创建现

  • 我在建模一个问题并用Java中的Choco solver解决它时遇到了问题,我一开始对约束编程不太熟悉,但我的任务是为会议制作一个座位应用程序,其中: 每张桌子必须至少有6个人,而且总是有足够的桌子 人们应该与邻居坐在一起,以最大限度地实现共同利益 在之前的几天里,我们希望尽量减少人们和他们之前坐过的人一起坐在桌子上 人们要么属于A类,要么属于B类,我们希望在每张桌子上尽量减少A类的出现 到目前为

  • 我想写一个自动生成室内环境的程序。为此,我考虑了将问题表述为CSP的想法,其中变量为: > x_o,y_o:对象o在环境中的位置 θo:对象o的方向 和域是: > x和y的某个范围[a, b](即2D网格的尺寸) 方向为[0,90180270]度。 为了实现这个问题,我在Eclipse4.7.1a中使用了Choco。 我的问题如下: 我想表达一个约束,比如:对象a在对象b前面。 由于物体有方向,我

  • 我正在和choco solver一起解决一些任务调度问题。 我有几个工作和可能的时间段(可以执行一个工作)。有一些限制,比如: 每个插槽只能有一个作业(C.1) 作业需要一定的时间,并且插槽有一个可用的持续时间。作业必须符合可用的持续时间:

  • 我设置了一个动画,以在打开另一个开关/标签时隐藏一个开关/标签。同时,刚刚打开的开关向上移动。这里的简单解释非常有效。 但是,当我在开关/标签关闭后尝试向下移动时,它不会移动。另一个开关会很好地重新出现,但不会触发顶部约束更改。 我对这种类型的设置和动画都是以编程方式进行的相对较新,在花了一个小时之后,我被难住了。是因为我正在制作相对于另一个顶部约束的动画吗?如果它第一次工作,这有什么关系?即使隐

  • 在Choco求解器中,在寻找解决方案可能需要太长时间的情况下,如何获得最接近的解决方案(满足迄今为止最多约束的解决方案,但可能无法满足所有约束)? 例如,如果我在运行模型的中间。getSolver()。solve()是一个解决方案,我已经决定,尽管找不到解决方案,但它需要足够长的时间,我如何才能输出到目前为止最接近的解决方案?