问题标签 [constraint-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
constraints - CHOCO 约束求解器功能
有谁知道CHOCO是否支持以下内容:
和
c# - 自动参数调整
我有一个音频处理应用程序,它接受输入音频文件,对其进行处理,然后输出修改后的输出音频文件。此音频处理应用程序有 10-15 个参数,这些参数会影响其处理音频的方式,从而影响输出音频文件的内容(例如,它可能具有不同的频率响应、更响亮、更安静等)。所有这些参数都有限制范围(例如,x0 必须 < 1 和 > -1)。
输出音频文件由一个给它打分的工具评估。这个工具知道“理想”的输出应该是什么样子,并相应地对输出文件进行评分。1.0 分意味着输出是理想的,即输入文件是用最好的参数集处理的。0 分意味着输出完全错误。
因此,使用 10-15 个参数及其有效范围,组合是无穷无尽的!我会一直坐在这里手动调整这些参数,直到我得到最好的解决方案。我已经检查了一些 LP/MIP 求解器(CBC、MS Solver Foundation、GKLP),但这些求解器使用数学方程作为目标函数......据我所知,您不会“插入”外部评估函数.
LP/MIP 求解器是帮助参数调整的正确工具吗?有任何想法吗?
谢谢,
阿克万
lambda - 序言:迭代
晚上好,我有一个简单的问题,我警告你我对 prolog 很陌生。假设有三个相同大小的列表,每个列表只包含 1、0 或 -1。我想验证对于所有 i,在三个列表的第 i 个元素中,只有一个是非零的。
此代码为固定 i 执行此操作:
我怎么知道“对于所有我,compat1(V1,V2,V3,I)”?我试图定义
这样我就可以用我感兴趣的 K=maximum 值来调用它。但是 compat2 不起作用:在 ";" 之后给出 true,然后 无限期地运行。
谢谢!
logic - 将一阶逻辑转换为 CNF
我正在努力使用MiniSat来解决约束满足问题。在一阶逻辑中,问题很容易用一些离散域变量和一些谓词来表示。
但是,MiniSat 以及我迄今为止看到的其他 CSP 求解器都希望他们以 CNF 形式输入。所以我正在寻找一种“预处理器”,它将一阶逻辑表达式转换为 CNF。
有什么想法吗?
c++ - 如何在 Gecode 中实现“嵌套”成本函数?
一般来说,我是地理编码和约束编程的新手。
到目前为止,我在获取 gecode 时没有遇到太多麻烦,这很棒。但我想知道执行“嵌套”成本函数的最佳方法是什么。具体来说,我希望最小化 X,但在 X 相等的解决方案空间内,更喜欢最小化 Y 的解决方案?我可能可以通过定义一个看起来像 X*large_number+Y 的成本函数来破解它,但如果有一个好的解决方案,我更愿意正确地做到这一点。
如果有人能指点我解释如何在 Gecode 中实现这一点,那将非常有帮助。谢谢!
optimization - 用于解决单纯形的 swi prologs clpq 库的替代方案
对不起,如果这是错误的地方问。
我一直在使用 SWI Prolog 的 clpq 库来解决单纯形问题。我发现语法非常简单且富有表现力。它看起来像这样:
无需转换为任何特殊格式,您只需键入您的约束和对象函数。很好,但是我注意到 clpq 有错误并且没有维护,所以我对它缺乏信心。
所以我想知道是否有人知道一些开源的东西,同样简单,没有错误?到目前为止,我发现的最好的是 GNU 线性编程工具包。其他人用什么来试验单纯形?
prolog - 无法从 CLPFD 最小化工作
我和一个朋友正在编写一个应该解决 CLP 问题的程序。我们想使用最小化来优化解决方案,但它不起作用,因为它一直说我们从 sum(P,#=,S) 得到的数字介于两个数字之间(例如 5..7)。我们还没有找到一种很好的方法来从中提取任何数字或以任何方式对其进行操作,因此正在寻求您的帮助。
问题似乎来自我们的 gen_var 方法,该方法说列表的每个元素必须介于 0 和 1 之间,因此有些数字显示为“0..1”,而不是正确设置。
即使我们得到像“5..7”这样的数字,是否有任何方法可以使用最小化,或者有任何方法可以操纵该数字以便我们只得到 5?S(列表中元素的总和)是我们试图最小化的。
constraints - 保证边界点的二次规划求解器?
我有一个问题,我将其表示为具有线性约束的凸二次程序的最小化。问题是我想禁止任何严格内部的点(即,如果它位于可行区域的顶点上,我只会发现答案有用。
我想在不修改目标函数的情况下做到这一点。我已经考虑了一些修改,这将使这成为一个非问题,但它们都有使程序非凸的不幸结果。
据我估计,有效解决方案的唯一选择是使用惩罚方法从可行区域外部接近解决方案的求解器。有谁知道一个像样的求解器?
我目前的目标函数是抛物柱面的总和。
java - 二维数组约束:数独
我正在尝试将数独作为家庭作业的约束满足问题来解决。我已经为特定行中的所有元素以及列构建了约束。我正在尝试为不同的子区域中的元素构建约束,但遇到了一些麻烦。
我当前算法背后的总体思路是将子区域中的所有变量(例如 9x9 网格的 3x3 框)添加到列表中,然后排列该列表中的所有值以在每个变量之间构造 NotEqualConstraints . 下面的代码适用于 NxN 网格的第一个子区域,但我不确定应该如何更改它以遍历整个网格的其余部分。
任何人都可以指导我如何修改代码以命中每个子区域而不仅仅是左上角的正确方向吗?
编辑:我也愿意尝试任何有效的算法,没有必要将所有值添加到每个子区域的 ArrayList 中。如果您看到更好的方法,请分享见解
prolog - 在 prolog 中解决具有限制的拼图游戏
我现在开始使用 SICStus Prolog 学习 prolog 中的限制。虽然我知道如何使用它来解决简单的问题,但我有一个练习,我必须解决一个拼图游戏。但是我不知道如何解决这个问题,因为我将有几个具有不同属性(片段)的不同元素,谁能给我一个例子,说明如何在序言中表示片段列表以及我应该使用什么样的限制?