Issue527

Title Add support for operator-counting heuristics
Priority feature Status resolved
Superseder Nosy List florian, jendrik, malte
Assigned To florian Keywords
Optional summary

Created on 2015-04-29.11:31:49 by florian, last changed by malte.

Messages
msg4718 (view) Author: malte Date: 2015-10-31.10:46:14
Great! :-)
msg4717 (view) Author: florian Date: 2015-10-31.01:26:37
The buildbot complained a couple of times (never copy paper references into the
code), but now this is finally merged. :-)
msg4711 (view) Author: malte Date: 2015-10-30.18:39:02
Fine with me.
msg4708 (view) Author: florian Date: 2015-10-30.18:30:45
The results for the repeated experiment look better. Strangely, rounding in the
correct dimension only made a noticeable difference for h^SEQ, not for the other
constraint types. Another indicator, that we get a lot of integer solutions
there. Anyway, the results are all a bit better than in the paper but are
qualitatively the same.

          | Paper | v1  | v2
------------------------|--------
SEQ       | 630   | 626 | 632
PhO-Sys^1 | 587   | 593 | 593
PhO-Sys^2 | 631   | 636 | 635
LMC       | 744   | 756 | 756

The difference I noticed between my laptop and the grid is still there but only
affects a handful of the tasks I tried (for example freecell/pfile5). On my
laptop, I get the same amount of expanded, evaluated and generated nodes but the
total time is about 5 times as high. This might be caused by the new Cplex
version (12.5.1 on the grid, 12.6.1 on my laptop). Strangely, the newer version
is slower. We should run more extensive experiments before we switch the grid to
12.6.1, but not as part of this issue. The numbers in the reports are all
generated with Cplex 12.5.1.

I think this is ready to merge now. Do you agree?
msg4702 (view) Author: florian Date: 2015-10-29.14:17:18
I found one source of the difference: the new code did not round up the
heuristic value, but rounded down instead. That we still got almost the same
coverage and the same number of expansions in most of the tasks probably means
that most solutions are integer (by chance) which is interesting, I think.

I'm now repeating the experiment for the affected configs and will see if there
still is a difference.

Also, the version on my laptop was much slower for some tasks than the
experiment on the grid. Since my laptop is usually faster than a grid node, I
suspect I messed something up while incorporating the code review comments. I'll
check once we have the results of the current experiment.
msg4693 (view) Author: malte Date: 2015-10-29.11:28:18
I wouldn't be overly worried about this change in coverage, but of course feel
free to investigate if that's your preference.
msg4689 (view) Author: florian Date: 2015-10-29.09:22:04
Thanks for the review Malte. I made changes we discussed and ran experiments (on
the version before the review, but that should not affect things too much).

The results deviate a little from the results in our paper. Most configs
increase coverage by a bit, which may be because of general planner improvements
or the switch from Cplex 12.5 to 12.6. But h^SEQ loses 4 tasks. I can try to
compare h^SEQ directly, if can get the old version to run or pull the old
experiment files into a common report.

          | Paper | issue branch
--------------------------------
SEQ       | 630   | 626
PhO-Sys^1 | 587   | 593
PhO-Sys^2 | 631   | 636
LMC       | 744   | 756

http://ai.cs.unibas.ch/_tmp_files/pommeren/issue527-v1.html
msg4684 (view) Author: florian Date: 2015-10-28.15:00:10
A pull request for a first version is on my bitbucket account:

https://bitbucket.org/flogo/downward-issues-issue527/pull-requests/1
msg4183 (view) Author: florian Date: 2015-05-05.15:03:24
Before we can continue here, we should update LM-cut (issue528) and the PDB
heuristics (issue529) so they use the new task interface.
msg4180 (view) Author: florian Date: 2015-04-29.11:31:49
I would like to start integrating the code for operator-counting heuristics
starting with the basics. As a first step, we could add the basic framework
(without variable merging) and some constraint generators (only LM-cut, SEQ,
PhO, for now).

I would prefer to leave some topics for later issues that are more complicated
or less tested so far:
 * variable merging for LP variables that always occur together
 * lm-count landmarks
 * dead-end-detection constraints
 * optimal cost partitioning
 * fluent merging in SEQ
History
Date User Action Args
2015-10-31 10:46:14maltesetmessages: + msg4718
2015-10-31 01:26:37floriansetstatus: chatting -> resolved
messages: + msg4717
2015-10-30 18:39:02maltesetmessages: + msg4711
2015-10-30 18:30:45floriansetmessages: + msg4708
2015-10-29 14:17:18floriansetmessages: + msg4702
2015-10-29 11:28:18maltesetmessages: + msg4693
2015-10-29 09:22:05floriansetmessages: + msg4689
2015-10-28 15:00:11floriansetmessages: + msg4684
2015-05-05 15:03:24floriansetstatus: unread -> chatting
messages: + msg4183
2015-04-29 11:50:00jendriksetnosy: + jendrik
2015-04-29 11:31:49floriancreate