问题标签 [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.

0 投票
1 回答
612 浏览

python - 如何在 Z3py 函数中有超过 255 个参数?

我想问一下,如何在 Z3 Python 函数中有超过 255 个参数

0 投票
1 回答
452 浏览

z3 - 在 Z3py 中检索匹配的模型?

在以下工作示例中,如何检索匹配的模型?

例如:作为以下求解器

0 投票
5 回答
3032 浏览

c - 年轻画面的编程

一个奇怪的问题接踵而至:
我在我的学校做一个解决问题的比赛,他们允许我们使用电脑。因为我是比赛中唯一知道如何编码的人,所以我使用 C 和 Pascal 程序来更快地解决问题。我已经通过伪代码到代码的练习、算法、Collat​​z 猜想验证等来做到这一点。
现在,昨天我正在为下一个挑战(4 月 18 日)进行训练,我看到了一个关于 Young 画面的练习。措辞是这样的(我会尽力从意大利语翻译):
“费雷尔图是分布在一个或多个水平行中的 N 个框的配置,左对齐并配置为使每一行包含的框数与其上的行相同或更少。这些配置也可以通过以下列表来描述盒子的编号,如下图所示:(来源:olimpiadiproblemsolving.it Young tableau 是 N 个盒子的 Ferrers 图,其中填充了从 1 到 N 的整数。示例:(来源:olimpiadiproblemsolving.it
费勒图



年轻的画面


如果框中的数字按行和列按升序排序,则该表是“标准”表(例如:第一、第三和第五表)。在标准表格中,第一行的第一个框始终包含 1。N 始终位于图表其中一行的最左边的框中。


问题

考虑一个 [6,3,2,1,1,1] 费雷尔图:
1)如果 6 固定在第一行的第 6 个盒子上,而 11 固定在第一列的最后一个盒子里,有多少种方法可以您以标准方式完成图表?

2) 如果 7 固定在第 1 行的第 6 个盒子上,而 11 固定在第 1 列的最后一个盒子上,你可以用几种方式以标准方式完成图表?

3)如果8固定在第一行的第6个盒子上,11固定在第一列的最后一个盒子上,你可以用多少种方式以标准方式完成图表?”

我试图编写一个解决方案用一个填充了这些数字的矩阵,并用“-1”作为“行结束字符”,但我被卡住了。我该如何编码“以各种可能的方式填充它,以便画面是标准的?”。

0 投票
4 回答
645 浏览

prolog - 约束规划,列表中数字的重复,序言

如何限制列表中数字的重复?

以下代码示例中合适的约束是什么?

一些示例查询和预期答案:

0 投票
1 回答
78 浏览

python - ValueError:需要超过 2123 个值

我正在尝试运行一个非常大的 Z3 python 程序,如以下示例:

我使用了一个集合约束来检索匹配的模型;将根据函数参数检索匹配的模型,如下所示:

但是,我收到以下错误

0 投票
1 回答
3260 浏览

algorithm - 算法 - 创建考试时间表

我有一个基于三个因素创建考试时间表的问题:房间、课程和天数。有一定数量的房间 r、课程 c 和天 d,其中每天有三个时段。

还有一组学生和从学生到课程的映射,因此不会有任何冲突。

我正在尝试为此找到一种算法,并发现这适合最大流量问题。我在为此制作流网络图时遇到了麻烦。

谢谢

0 投票
1 回答
3545 浏览

prolog - 在 Prolog 中求解方程组

假设我有一个数字 X,我希望求解方程组,比如 Y+Z=X,Z*Y=1。

现在,这有解决方案 Y=1/Z 和 Z = (sqrt(X*X-4)+X)/2 或 (X-(sqrt(X*X-4)))/2。

所以我可以用 Prolog 写:

这行得通。

它需要我做大量的初步工作,基本上是事先解决它,然后让 Prolog 评估答案。

有什么方法可以在不事先求解 X 的情况下得到 Z 和 Y?

我不能只写像

因为实例化错误。

0 投票
1 回答
821 浏览

algorithm - 任何有界0-1多背包的伪多项式算法?

假设有 n 个项目,例如 i 1 , i 2 , .... i n,每个项目都有一个已知的有界权重 w 1 , w 2 , ... w n。还有一组 m 个背包,例如 k 1、 k 2和 k m。背包是同质的,即它们都具有相同的容量 W。函数 F 可以确定每个背包的分数。F 的输入是每个背包中的物品。所以,

现在我想把一些物品放在背包里,这样:

  1. 背包中物品的重量不超过其容量 W。
  2. 所有背包的得分总和最大

这个问题是否有多项式时间解决方案?

注意:问题是0-1,即每个项目可以选择或不选择。所有问题参数都是有界的。

编辑 1:是否可以将此问题简化为装箱,然后得出结论,这是一个 NP 难题?

编辑 2在这个问题中,每个项目都有三个属性,例如属性 a i、 b i和 c i。F 函数是一个线性函数,它获取其中项目的属性并产生输出。

编辑3:这篇论文似乎为多背包问题提出了一个精确的解决方案。可以在我的情况下使用吗?

0 投票
2 回答
494 浏览

logic - 动态柔性约束满足问题

我正在寻找能够解决灵活和/或动态约束的逻辑约束求解器。有任何想法吗?

0 投票
1 回答
98 浏览

maps - 在哪里可以找到数据来测试我的 CSP 地图着色求解器

我编写 CSP 地图着色问题解决程序。定义为 Constraint(A, B) 的约束意味着 A 国与 B 国相邻。目前我手动创建地图,但现在我需要一些大地图来测试我的算法。你知道我在哪里可以找到一些易于解析的数据吗?像这样的东西对我来说是理想的: