小编Mor*_*enM的帖子

内存泄漏Sicstus Prolog

这个问题是这个问题的后续问题.

我在Sicstus prolog中运行了大量测试:

runtest:-
 t1,
 t2,
 t3,
 .
 .
 t100.
Run Code Online (Sandbox Code Playgroud)

每个测试都是独立的,并将其结果打印到屏幕上.测试之间没有关联,因此每次测试之间不需要存储/保存数据.

我的问题是Sicstus累积内存并最终遇到异常:'资源错误:内存不足'

我试图像这样组织我的测试:

runtest:-
  once( t1 ),
  once( t2 ),
  .
  .
  once( t100 ).
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到了这个问题.

有没有其他方法告诉Prolog在每次测试调用之间释放所有分配的内存?

prolog sicstus-prolog clpfd

6
推荐指数
2
解决办法
289
查看次数

用累积表示设置时间

调度问题有许多系列.我正在研究一个问题,我有一系列的工作/任务,从一个家庭到另一个家庭的过渡需要重新配置机器(设置时间).

cumulatives[2/3]用来解决这个问题,但我不确定如何表达设置时间.

在这个小例子中,我有10个任务属于3个不同的家庭.任何任务都可以在任何计算机上运行,​​但是从一个系列中的一个任务切换到另一个系列中的另一个任务需要添加设置时间.

:- use_module(library(clpfd)).
:- use_module(library(lists)).

go( Ss, Es, Ms, Tm, Lab ) :-

    Ss = [S1, S2, S3, S4,S5,S6,S7,S8,S9,S10], %Starttimes
    Es = [E1, E2, E3, E4,E5,E6,E7,E8,E9,E10], %Endtimeds
    Ms = [M1, M2, M3, M4,M5,M6,M7,M8,M9,M10], %MachineIds



    domain(Ss, 1, 30),
    domain(Es, 1, 30),
    domain(Ms, 1, 3 ),

    Tasks = [
        %Family 1: Setuptime, Su1 = 4, 
        task(  S1, 6,  E1,  1, M1 ),  %Task T1
        task(  S2, 6,  E2,  1, M2 ),  %Task T2
        task(  S3, 3,  E3,  1, …
Run Code Online (Sandbox Code Playgroud)

prolog constraint-programming job-scheduling sicstus-prolog clpfd

6
推荐指数
1
解决办法
167
查看次数

使用累积量

我正在研究一个使用cumulatives/[2,3]谓词的问题.但是当我尝试将其与minimizein 相结合时,我的表现会非常糟糕labeling

我有以下演示.10个任务,所有持续时间为1,4的机器,所有容量均为1.我的目标是尽量减少总时间,即minimize(maximum(Es)):

:- use_module(library(clpfd)).
:- use_module(library(lists)).

go( Ss, Es, Ms, Tm, Lab ) :-

    Ss = [S1, S2, S3, S4,S5,S6,S7,S8,S9,S10], %Starttimes
    Es = [E1, E2, E3, E4,E5,E6,E7,E8,E9,E10], %Endtimeds
    Ms = [M1, M2, M3, M4,M5,M6,M7,M8,M9,M10], %MachineIds


    domain(Ss, 1, 20),
    domain(Es, 1, 20),
    domain(Ms, 1, 10),

    %All task has duration = 1
    Tasks = [
        task(  S1, 1,  E1,  1, M1 ), 
        task(  S2, 1,  E2,  1, M2 ), 
        task(  S3, 1,  E3,  1, …
Run Code Online (Sandbox Code Playgroud)

prolog sicstus-prolog clpfd

4
推荐指数
2
解决办法
239
查看次数