Sicstus Prolog でさまざまなラベル付けヒューリスティックを比較するためのいくつかの実験に取り組んでいます。
しかし、「リソース エラー: メモリ不足」が発生し続けます。
テストコードで何か間違ったことをしていると確信しています。
次のコードは私の問題を再現します:
:- use_module(library(clpfd)).
:- use_module(library(lists)).
atest( R, C ):-
X is R * C,
length( M, X),
domain( M, 0, X),
all_distinct( M ),
statistics(walltime, [_,_SinceLast]),
labeling( [],M ),
statistics(walltime, [_,SinceLast]),
write('Labeling time: '), write(SinceLast),write('ms'),nl.
% Testcode for looping through alot of variations and run one test for each variant
t1:-
Cm = 1000,
Cr = 1000,
(
for(C,0, Cm),
param([Cm,Cr])
do
(
for(R, 0, Cr ),
param([C])
do
atest( C, R )
)
).
t1 述語を呼び出した直後に、「リソース エラー: メモリ不足」という例外が発生します。
リソースを解放するために atest を呼び出した後、何かをする必要があると思いますか?
また、これはラベル付け時間を測定する正しい方法ですか? これを行うより良い方法はありますか?