Issue486

Title PDB heuristic should not store cost function permanently
Priority feature Status resolved
Superseder Nosy List florian, malte, silvan
Assigned To florian Keywords
Optional summary

Created on 2014-10-07.16:30:21 by florian, last changed by florian.

Messages
msg3751 (view) Author: florian Date: 2014-10-09.15:24:43
Merged.
msg3745 (view) Author: malte Date: 2014-10-09.13:36:25
not because of me
msg3744 (view) Author: florian Date: 2014-10-09.13:31:23
I fixed the comments in the pull request [1]. Do we need another round of
experiments for this?

[1]
https://bitbucket.org/flogo/downward-issues-issue486/commits/19802aff363e359245b9b1caed1aa5bf73a5ccac?at=default
msg3742 (view) Author: malte Date: 2014-10-09.11:06:05
I guess it's OK. The comment was mainly about how operator_costs is passed
through several methods that need to know the special meaning of an empty vector
without any documentation of these methods indicating this. So the knowledge
about the semantics of this operator cost vector is contained quite far from the
place where it is needed. I'm also not sure I like passing all operator costs to
build_abstract_operators if it only needs *one* operator cost -- I think it
would be cleaner to only pass in the one operator cost that the method is
interested in.

But I don't mind leaving this as is. Ideally we'll add a better, more general
mechanism for cost partitioning in the future based on the new task class.
msg3726 (view) Author: florian Date: 2014-10-08.20:30:46
Of course I can add a comment, but I don't understand what you mean by
"heuristic or PDB". The constructor already has a comment that explains the
parameter (line 97 of pdb_heuristic.h) but I guess you meant something else. The
comment for the constructor still uses the old parameter name which I just fixed
locally.
msg3724 (view) Author: malte Date: 2014-10-08.19:46:44
In all other respects very nice. :-)
msg3723 (view) Author: malte Date: 2014-10-08.19:46:20
It's a bit sad that the comments are gone; we used to have comments that explain
the purpose of the arguments (that it's there for cost partitioning) and explain
the default. Can we add something like this back? (One problem is that it's not
really clear which place is the best place to document it -- heuristic or PDB.
Maybe an explanation in the code that actually computes the cost and a reference
to that in the heuristic?) Feel free to merge, but I'd like it a bit better with
the comment back in. As a general rule, it'd be good if arguments to public
methods were either self-explanatory or explained.
msg3722 (view) Author: florian Date: 2014-10-08.18:44:56
Results [1] look good and Silvan already reviewed the code [2]. Can we merge this?

[1]
http://ai.cs.unibas.ch/_tmp_files/pommeren/issue486-base-issue486-v1-compare.html
[2] https://bitbucket.org/flogo/downward-issues-issue486/branch/issue486
msg3697 (view) Author: florian Date: 2014-10-07.16:30:21
The PDB heuristic currently stores a copy of the cost function for cost
partitioned heuristics. This copy is only used during the heuristic construction
but persists for the whole life time of the heuristic object. We could use a
local variable in the constructor and pass it around in parameters instead of
storing it in a member variable.
History
Date User Action Args
2014-10-09 15:24:43floriansetstatus: chatting -> resolved
messages: + msg3751
2014-10-09 13:36:25maltesetmessages: + msg3745
2014-10-09 13:31:23floriansetmessages: + msg3744
2014-10-09 11:06:05maltesetmessages: + msg3742
2014-10-08 20:30:46floriansetmessages: + msg3726
2014-10-08 19:46:44maltesetmessages: + msg3724
2014-10-08 19:46:20maltesetmessages: + msg3723
2014-10-08 18:44:56floriansetstatus: unread -> chatting
messages: + msg3722
2014-10-07 16:59:59silvansetnosy: + silvan
2014-10-07 16:30:21floriancreate