Issue1088

Title Assert that LP constraints contain every variable at most once
Priority feature Status resolved
Superseder Nosy List clemens, florian, jendrik, malte, silvan
Assigned To Keywords
Optional summary

Created on 2023-06-27.15:48:54 by clemens, last changed by clemens.

Messages
msg11104 (view) Author: clemens Date: 2023-07-06.12:36:09
Merged. Thank you!
msg11100 (view) Author: malte Date: 2023-07-05.14:08:38
Agreed.
msg11099 (view) Author: florian Date: 2023-07-05.11:07:17
Merging is fine with me.
msg11098 (view) Author: clemens Date: 2023-07-05.11:01:41
I suggest to merge this despite nobody reacting to my last message. The change is very small and if we find there's a problem with it later on, we can still revert it -- in my opinion that's better than leaving it hang here. I'll wait another day for people to react or object and schedule the merge for tomorrow around noon.
msg11095 (view) Author: clemens Date: 2023-06-28.10:04:29
The changes have no effect on the release mode, as can be seen here: https://ai.dmi.unibas.ch/_experiments/ai/downward/issue1088/data/issue1088-v1-eval/issue1088-v1-issue1088-base-issue1088-v1-compare.html

I will wait with merging until somebody else confirms here that it is fine to do so (after removing the experiments from the patch).
msg11094 (view) Author: clemens Date: 2023-06-27.16:17:06
I've created a pull request: https://github.com/aibasel/downward/pull/156
Jendrik already seems to be reviewing, thanks. :-)

To my understanding, these changes should not affect the release build at all. Nevertheless, I'm open to running an experiment to verify that. Do we have a set of LP-based configurations at hand?
msg11093 (view) Author: clemens Date: 2023-06-27.15:48:53
Writing or solving an LP where a constraint contains the same variable multiple times yields a segfault. While I'm not aware of any part of the released Fast Downward where this happens, I've encountered the problem several times myself when writing my own LP-related code. Finding out that this was the problem was a painful task (and involved a lot of coaching by Florian). To avoid the effort for everybody else in the future, I suggest to assert this is not the case whenever a constraint is added to an LP in Fast Downward.
History
Date User Action Args
2023-07-06 12:36:09clemenssetstatus: in-progress -> resolved
messages: + msg11104
2023-07-05 14:08:38maltesetmessages: + msg11100
2023-07-05 11:07:17floriansetmessages: + msg11099
2023-07-05 11:01:41clemenssetmessages: + msg11098
2023-06-28 10:04:29clemenssetmessages: + msg11095
2023-06-27 16:17:06clemenssetmessages: + msg11094
2023-06-27 15:48:54clemenscreate