I'm not sure if this is a bug, a feature, or just a stupid question.
I'm doing some experiments with repeated, randomised search, using FD. For this
purpose, I've added some randomisation to the FF heuristic (when there are
several min cost supporters for a proposition, one is chosen randomly) and to
lazy_search (very similar to the succ_mode == shuffled option that was already
there, but shuffling the preferred and non-preferred successors separately, and
placing the preferred ones first). To run repeated searches, I'm using the
iterated_search engine, as follows:
iterated(lazy_greedy(hff, succ_mode=3, preferred=(hff)), pass_bound=false,
repeat_last=true)
that is, I want the search to start "fresh" (no passing of bounds) in each
iteration. However, it seems that something is kept in memory between searches,
because memory use grows continually, and very rapidly. Are old "phase" engines
not deleted? (If not, some hints as to where/how I should modify iterated search
to do that would be highly appreciated...) Or is some information, like the
closed list, kept between searches?
|