clpfd

    3热度

    2回答

    我的比赛即将从给定的名单,他们的总和是N 例如采摘最大元素集合:L=[1,1,2,2,3,2,4,5,6],N = 6,子列表将等于[1,1,2,2] 我需要一个使用约束逻辑编程的提示。

    3热度

    1回答

    我是新来的Prolog,我想做这样的事情,但不知道从哪里开始。已经制作矩阵和如何验证这些数字是在Bounds图书馆的9以下,但这就是它,几天来一直在挣扎着。 它应该是这样的: 2+7-4=5 + - * 9-5*2=8 - + - 4*3-8=4 = = = 7 5 0 主要的想法是给Prolog的半填充基质这样他就可以完成它。感谢您提前给予我的任何信息或想法。 一种通过将运营商提

    -1热度

    1回答

    我试图解决SWI-Prolog的一个9x9的数独谜题, 我给出的查询是空的数独,但它不会给任何错误它只是陈述“错误”。 代码也编译正确。 我的代码如下所示: :- use_module(library(clpfd)). valid([]). valid([Head|Tail]) :- all_different(Head), valid(Tail). sudoku(P

    1热度

    1回答

    我只是想要做这样的事情 schedule(Activities, GLB) :- get_start_times(Activities,StartTimes), get_resources(Activities,Resources), get_durations(Activities,Durations), sum_list(Durations, Max

    0热度

    1回答

    我在格式化行上出现语法错误,我不知道为什么! magic3(Variables):- Variables[A,B,C,D,E,F,G,H,I], fd_domain(Variables,1,9), fd_all_different(Variables), A+B+C#= A+D+G, A+B+C#= A+E+I, A+B+C#= C+F+

    2热度

    2回答

    在回答another question on StackOverflow(推广一下)时,出现了这个问题,它生成了由一组有限的元素组成的所有序列,没有重复出现。 正如鲍里斯在评论中正确指出的那样,这个问题有很多现有的解决方案。然而,我对不使用累加器的解决方案感兴趣(即,已经挑选出的元素的列表与新比较的元素进行比较),而是使用dif/2语句代替。 为了说明,在我的后续程序中,我有4个元素,经过4次递归

    2热度

    1回答

    我在SICStus Prolog的一个程序,运行以下限制: processList([Elem1,Elem2|_], X) :- (Elem1 #= 0 #/\ Elem2 #= X) #\/ Elem1 #= X. 但我需要把它设置动态 processList([Elem1,Elem2,Elem3|_], X) :- (Elem1 #= 0 #/\ Elem2

    6热度

    1回答

    有安排上的问题,许多家庭。我期待到那里 我的地方从一个家庭到另一个家庭 过渡需要重新配置机器(建立时间)工作/家庭任务的一个问题。 我使用cumulatives[2/3]来解决这个问题,但我不确定如何设置时间 可以表示。 在这个小例子,我有属于3个不同家庭的10种任务。任何任务都可以在任何机器上运行,但是从一个系列中的一个任务切换到另一个系列中的另一个任务需要添加安装时间。 :- use_modu

    1热度

    1回答

    我正在研究Prolog中的约束编程问题,我在尝试为列表列表定义一个域时遇到了问题。问题的最初的挑战如下: trains([[1,2,0,1], %from station, to station, departs at, arrives at [2,3,4,5], [2,3,0,1], [3,4,5,6], [3,4,2,3],

    0热度

    1回答

    我无法运行此代码,关于允许maplist/2运行all_distinct/1的列表,我有什么要说的? Solution = [A, B, C, D, E, F, G, H, I], Solution ins 1..9, maplist(all_distinct, Solution). 我得到ERROR: Arguments are not sufficiently instantiated