Issue776

Title CostAdaptedTask should not use g_root_task as parent
Priority bug Status resolved
Superseder Nosy List florian, jendrik, malte, silvan
Assigned To silvan Keywords
Optional summary

Created on 2018-04-11.11:46:23 by silvan, last changed by florian.

Messages
msg7692 (view) Author: florian Date: 2018-09-21.01:57:37
All done. I removed the last few references to the option caveat page from the
automatic documentation in the default branch.
msg7691 (view) Author: florian Date: 2018-09-21.01:37:04
I handled Malte's additional comment and a few added by Jendrik afterwards.
Looks like all comments are handled now. I'll merge and remove the infamous
option caveat.
msg7689 (view) Author: jendrik Date: 2018-09-21.01:01:50
Strangely, you sometimes have to update the pull request manually by clicking the 
bubble that sometimes appears on the top right of the pull request.
msg7688 (view) Author: malte Date: 2018-09-21.00:45:34
Commits just showed up, left one more comment.
msg7687 (view) Author: malte Date: 2018-09-20.23:22:23
Can do, but they don't seem to be on bitbucket yet.
msg7686 (view) Author: silvan Date: 2018-09-20.23:21:15
Done with addressing the comments. Somebody wants to check the three commits?
msg7680 (view) Author: malte Date: 2018-09-20.21:48:39
I'm done with the comments on bitbucket. Looks ready to merge once the comments
are addressed. (I can be swayed regarding the portfolio config.)
msg7679 (view) Author: silvan Date: 2018-09-20.21:27:58
The run_dir is included in the default attributes of our Lab issue experiments.
(Sorry for being late to save time..)
msg7677 (view) Author: malte Date: 2018-09-20.21:17:58
D'oh! run_dir is included. I think I missed it because I looked at the summary
rather than the table of contents. Could have saved me a ton of time...
msg7676 (view) Author: malte Date: 2018-09-20.20:52:33
Thanks, the path was exactly right! I'll have a closer look at home.

BTW, it would help a lot if the "run_dir" attribute were included in the table.
I think this is a very useful attribute in general, and I would encourage
everyone to include it in all their reports. Have already used it many times in
this sprint.
msg7668 (view) Author: florian Date: 2018-09-20.19:22:34
The experiment should be under
/infai/pommeren/projects/downward/issues/issue776/experiments/issue776/data/issue776-v2

(This is from memory without grid access, so if it's not there I probably made
an obvious mistake. It should all be readable so you should be able to find it
from there.)
msg7666 (view) Author: malte Date: 2018-09-20.18:59:30
I think LAMA's behaviour is known to be non-stable, so the differences are not
necessarily a sign of a problem. Can you tell us where we can find the run.log
files for this? They may be useful for deciding whether things work as expected.
msg7665 (view) Author: florian Date: 2018-09-20.18:58:04
And here is the one for lama (didn't have a chance to look at it yet):
https://ai.dmi.unibas.ch/_tmp_files/pommeren/issue776-v2-lama-issue776-v2-base-issue776-v2-compare.html
msg7664 (view) Author: florian Date: 2018-09-20.18:44:00
Reports for bjolp and lama-first are done:
https://ai.dmi.unibas.ch/_tmp_files/pommeren/issue776-v2-issue776-v2-base-issue776-v2-compare.html

bjolp looks fine but lama-first has a few changes in the number of evaluations.
I won't have time to look into this tonight.
msg7655 (view) Author: silvan Date: 2018-09-20.16:49:15
After a longer discussion among Malte, Florian, and myself, we think that we can
remove the lm_cost_type option of LandmarkCountHeuristic. By doing so, the
problem with not knowing which task to use for a cost transformation vanishes,
because the landmark heuristic will use the same (potentially cost adapted) task
to pass to the landmark factory and for everything else it does. Florian started
experiments to verify this.
msg7064 (view) Author: silvan Date: 2018-04-21.10:21:07
http://ai.cs.unibas.ch/_tmp_files/sieverss/issue776-v1-lama-second-issue776-base-issue776-v1-compare.html

You are right, the documentation on the old options is correct but doesn't help
us here. I'm not sure how to proceed with this issue, since the patch does not
fix anything if using task transformations with landmark heuristics "is not
allowed" in the first place.
msg7057 (view) Author: malte Date: 2018-04-16.11:57:53
PS: The experiment only needs to look at the domains that are not unit cost. In
particular, we don't need any of the before-2008 domains.
msg7056 (view) Author: malte Date: 2018-04-16.11:57:09
> Costs change in elevators and nomystery (3 tasks). Regarding our discussion
> whether the current code would perform a cost adaptation twice if using plusone
> for both the heuristic and the landmark factory, I think this needs further
> investigation.

The anytime behaviour of lama inteferes with this experiment, so I suggest
running a "lama-second" configuration, i.e., extracting the second configuration
used by LAMA 2011 in the non-unit-cost case. Something like:

[
"--heuristic",
"hlm2=lama_synergy(lm_rhw(reasonable_orders=true,lm_cost_type=plusone),transform=adapt_costs(plusone))",
"--heuristic",
"hff2=ff_synergy(hlm2)",
"--search",
"lazy_greedy([hff2,hlm2],preferred=[hff2,hlm2],reopen_closed=false)"
]

> From the code it looks like it could be the case, but the
> documentation at http://www.fast-downward.org/OptionCaveats reads
> that only one of the cost options is used in any case.

Not sure I understand. We saw that the old code ignored the "task" argument
here, so indeed only one of the options was used in the old code. But we change
the code here, so the documentation for the old code can't tell us how the new
code behaves.
msg7039 (view) Author: silvan Date: 2018-04-12.10:19:11
It's not urgent, I already integrated the fix in my code.

Here are the requested results:
http://ai.cs.unibas.ch/_tmp_files/sieverss/issue776-v1-issue776-base-issue776-v1-compare.html

Costs change in elevators and nomystery (3 tasks). Regarding our discussion
whether the current code would perform a cost adaptation twice if using plusone
for both the heuristic and the landmark factory, I think this needs further
investigation. From the code it looks like it could be the case, but the
documentation at http://www.fast-downward.org/OptionCaveats reads that only one
of the cost options is used in any case.
msg7035 (view) Author: malte Date: 2018-04-11.12:39:01
If the patch solves Silvan's problem, I'm fine with merging it, although I would
like to see some experiments, e.g. with lama-first, lama and seq-opt-bjolp. 

However, the new code still looks broken to me in the way it attempts/pretends
to handle task transformations. This needs further discussion, and probably a
further (bug) issue.
msg7034 (view) Author: jendrik Date: 2018-04-11.12:33:04
Good catch! I left some comments on Bitbucket but am happy with the general fix.
msg7033 (view) Author: florian Date: 2018-04-11.12:11:17
The patch looks fine to me. Using g_root_task is left over from our change to
the task interface, it shouldn't be hard-coded. After the patch, it is still
hard-coded on a higher level. This should also eventually go away (as part of
issue509) but it will take some more work to do that.
msg7032 (view) Author: silvan Date: 2018-04-11.12:03:07
The plugin adapt_cost now creates a cost-adapted task of the root task. I
documented this, but I'm not sure if this is the right intention. I saw that at
the transform option of Heuristic, we say that there are currently two
transformations: no_transform and adapt_costs. However, we have many more tasks,
but none of them supports being created via plugin. This issue probably has to
do with many of our past discussions on where and how to create shared pointer
objects and how to pass them around.

The current solution works fine in my eyes and I'd be very happy to have a quick
review, which should take only a few minutes, because this solves my problem of
computing suboptimal solutions with the landmark heuristic in my IPC submissions.

https://bitbucket.org/SilvanS/fd-dev/pull-requests/34/issue776/diff
msg7031 (view) Author: silvan Date: 2018-04-11.11:46:23
There is a bug in CostAdaptedTask: it passed g_root_task to its parent class
DelegatingTask, which is a very nasty bug.
History
Date User Action Args
2018-09-21 01:57:37floriansetstatus: reviewing -> resolved
messages: + msg7692
2018-09-21 01:37:04floriansetmessages: + msg7691
2018-09-21 01:01:50jendriksetmessages: + msg7689
2018-09-21 00:45:34maltesetmessages: + msg7688
2018-09-20 23:22:23maltesetmessages: + msg7687
2018-09-20 23:21:15silvansetmessages: + msg7686
2018-09-20 21:48:39maltesetmessages: + msg7680
2018-09-20 21:27:58silvansetmessages: + msg7679
2018-09-20 21:17:58maltesetmessages: + msg7677
2018-09-20 20:52:33maltesetmessages: + msg7676
2018-09-20 19:22:34floriansetmessages: + msg7668
2018-09-20 18:59:30maltesetmessages: + msg7666
2018-09-20 18:58:04floriansetmessages: + msg7665
2018-09-20 18:44:00floriansetmessages: + msg7664
2018-09-20 16:49:15silvansetmessages: + msg7655
summary: Status: needs further discussion. See also the "component coordination problem" of issue559 and "task class enhancements" of issue509. ->
2018-09-18 13:51:32silvansetsummary: Status: needs further discussion. See also the "component coordination problem" of issue559 and "task class enhancements" of issue509.
2018-04-24 11:30:32maltesettitle: CostAdapatedTask should not use g_root_task as parent -> CostAdaptedTask should not use g_root_task as parent
2018-04-21 10:21:07silvansetmessages: + msg7064
2018-04-16 11:57:53maltesetmessages: + msg7057
2018-04-16 11:57:09maltesetmessages: + msg7056
2018-04-12 10:19:11silvansetmessages: + msg7039
2018-04-11 12:39:01maltesetmessages: + msg7035
2018-04-11 12:33:04jendriksetmessages: + msg7034
2018-04-11 12:11:17floriansetnosy: + florian
messages: + msg7033
2018-04-11 12:07:37jendriksetnosy: + jendrik
2018-04-11 12:03:07silvansetstatus: in-progress -> reviewing
messages: + msg7032
2018-04-11 11:46:23silvancreate