Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(59)

Issue 6590058: Issue 350 Dominance pruning in canonical heuristic

Can't Edit
Can't Publish+Mail
Start Review
Created:
13 years, 3 months ago by Florian
Modified:
13 years, 3 months ago
Reviewers:
malte.helmert
CC:
gabriele.roeger_unibas.ch
Visibility:
Public.

Description

Issue 350 Dominance pruning in canonical heuristic

Patch Set 1 #

Total comments: 25

Patch Set 2 : Issue 350 second review iteration #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+196 lines, -18 lines) Patch
M src/search/Makefile View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/search/landmarks/landmark_types.h View 1 1 chunk +0 lines, -11 lines 1 comment Download
M src/search/pdbs/canonical_pdbs_heuristic.h View 1 1 chunk +5 lines, -0 lines 0 comments Download
M src/search/pdbs/canonical_pdbs_heuristic.cc View 1 2 chunks +22 lines, -0 lines 0 comments Download
A src/search/pdbs/dominance_pruner.h View 1 1 chunk +32 lines, -0 lines 0 comments Download
A src/search/pdbs/dominance_pruner.cc View 1 1 chunk +105 lines, -0 lines 0 comments Download
M src/search/pdbs/max_cliques.cc View 1 1 chunk +2 lines, -7 lines 0 comments Download
M src/search/pdbs/pattern_generation_haslum.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M src/search/pdbs/pdb_heuristic.cc View 1 2 chunks +2 lines, -0 lines 0 comments Download
M src/search/utilities.h View 1 2 chunks +18 lines, -0 lines 0 comments Download
M src/search/utilities.cc View 1 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 5
Florian
Changes in Makefile are not checked in. http://codereview.appspot.com/6590058/diff/1/src/search/Makefile File src/search/Makefile (right): http://codereview.appspot.com/6590058/diff/1/src/search/Makefile#newcode209 src/search/Makefile:209: CCOPT_DEBUG = ...
13 years, 3 months ago (2012-10-02 08:24:20 UTC) #1
malte.helmert
Hi Florian, no substantial comments, really. I'd prefer to have the big method taken into ...
13 years, 3 months ago (2012-10-04 00:56:49 UTC) #2
Florian
Patch set 2 now addresses most of you issues http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_heuristic.cc File src/search/pdbs/canonical_pdbs_heuristic.cc (right): http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_heuristic.cc#newcode115 src/search/pdbs/canonical_pdbs_heuristic.cc:115: ...
13 years, 3 months ago (2012-10-05 15:11:27 UTC) #3
malte.helmert
http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_heuristic.cc File src/search/pdbs/canonical_pdbs_heuristic.cc (right): http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_heuristic.cc#newcode121 src/search/pdbs/canonical_pdbs_heuristic.cc:121: } On 2012/10/05 15:11:27, Florian wrote: > On 2012/10/04 ...
13 years, 3 months ago (2012-10-05 15:25:00 UTC) #4
Florian
13 years, 3 months ago (2012-10-08 09:02:36 UTC) #5
The way I see it, this feature is complete enough to run some tests now, or did
one of you want to comment on the second patch set before I start the tests?

http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_h...
File src/search/pdbs/canonical_pdbs_heuristic.cc (right):

http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/canonical_pdbs_h...
src/search/pdbs/canonical_pdbs_heuristic.cc:18: #include
<boost/functional/hash.hpp>
On 2012/10/04 00:56:49, malte.helmert wrote:
> This adds a dependency on boost which we currently don't have. Hence needs
> discussion.
Done. The code for hashing pointers and pairs was already implemented for the
landmarks heuristic. I pulled it out and combined it in the general utilities.cc
(see second patch set).

http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/pattern_generati...
File src/search/pdbs/pattern_generation_haslum.cc (right):

http://codereview.appspot.com/6590058/diff/1/src/search/pdbs/pattern_generati...
src/search/pdbs/pattern_generation_haslum.cc:228:
current_heuristic->dominance_pruning();
On 2012/10/05 15:25:00, malte.helmert wrote:
> Right, we have to be careful: we should not throw away a pattern that is
> currently unneeded, because it might become needed later.
> 
> I didn't try to think of an example, but probably for the same reason we
should
> also keep around dominated *cliques*, right?
> 
> Maybe it would be a good idea to add a comment line where the dominance
pruning
> is called observing that dominance pruning should not be done incremental
> because patterns and/or cliques that are currently dominated can become
> non-dominated after more patterns are added? Then we won't feel the temptation
> to "optimize" this later.
> 
> > With this comment I was thinking more about the pattern
> > candidates that are discarded during search because they
> > would take up too much memory. Maybe we could collect
> > those discarded patterns and try them again after
> > dominance pruning cleared up some memory.
> 
> I think it's not worth the code complication. We rarely hit the memory limit,
> and when we do it's generally caused by the *large* PDBs, i.e., those with the
> highest number of variables. By definition, dominated PDBs are never maximal
> among PDBs w.r.t. subset exclusion, so reclaiming them can only give us a
> fraction of the memory that its dominators use.
> 
> In other words, I wouldn't expect significant space savings from dominance
> pruning, only savings in time.

Done. I removed the TODO completely and replaced it with warning explaining
this.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b