Prolog Eclipse CLP:约束/变量的最大数量

Prolog Eclipse CLP:约束/变量的最大数量,prolog,constraints,eclipse-clp,clp,Prolog,Constraints,Eclipse Clp,Clp,在EclipseCLP中,我可以定义多少约束或变量 我目前正在重新设计我的调度问题-我需要将单个alldifferent约束替换为多个atmost约束。但是自从我引入了这个变更,我的ecl脚本就无法工作。我所说的“不工作”是指Eclipse CLP-Eclipse.exe或TkEclipse GUI刚刚关闭。没有任何错误消息、评论或道别。没什么 如果我尝试注释掉一些约束,脚本至少会被编译 有人已经为这个问题烦恼了吗?对数量、变量或约束没有具体限制 但您使用的是生成的大型源文件,其中子句有数千个子

在EclipseCLP中,我可以定义多少约束或变量

我目前正在重新设计我的调度问题-我需要将单个
alldifferent
约束替换为多个
atmost
约束。但是自从我引入了这个变更,我的ecl脚本就无法工作。我所说的“不工作”是指Eclipse CLP-Eclipse.exe或TkEclipse GUI刚刚关闭。没有任何错误消息、评论或道别。没什么

如果我尝试注释掉一些约束,脚本至少会被编译


有人已经为这个问题烦恼了吗?

对数量、变量或约束没有具体限制

但您使用的是生成的大型源文件,其中子句有数千个子目标。由于ECLiPSe使用递归下降解析器,此类文件可能导致操作系统堆栈溢出,特别是在Windows上。您可以将生成的代码分解成更小的子句,并结合调用这些子句

然而,一般来说,生成文本源代码并不是一个好主意:它必须被创建、编写、读取、解析、编译,然后只执行一次。考虑生成一个<强>纯数据文件,它只包含数组/列表的内容,但<强>没有变量< /强>。然后,您可以有一个通用的ECLiPSe程序来读取这些数据并使用它们创建变量和约束,通常是在几个循环中

对于一个非常简单的示例,将(在平面模型中所有数据都是显式的)与
如果模型是通用的,并且所有数据都来自最后的data/3事实(这将对应于生成的数据文件)。

对于数量、变量或约束没有具体限制

但您使用的是生成的大型源文件,其中子句有数千个子目标。由于ECLiPSe使用递归下降解析器,此类文件可能导致操作系统堆栈溢出,特别是在Windows上。您可以将生成的代码分解成更小的子句,并结合调用这些子句

然而,一般来说,生成文本源代码并不是一个好主意:它必须被创建、编写、读取、解析、编译,然后只执行一次。考虑生成一个<强>纯数据文件,它只包含数组/列表的内容,但<强>没有变量< /强>。然后,您可以有一个通用的ECLiPSe程序来读取这些数据并使用它们创建变量和约束,通常是在几个循环中

对于一个非常简单的示例,将(在平面模型中所有数据都是显式的)与
模型是通用的,所有数据都来自最后的data/3事实(这将对应于生成的数据文件)。

您是否试图编译生成的巨大源文件?在这种情况下,您可能会破坏系统堆栈,尤其是在Windows上。您是否正在尝试编译生成的巨大源文件?在这种情况下,您可能会破坏系统堆栈,尤其是在Windows上。