forked from aibasel/downward
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue559 prototype #2
Open
SimonDold
wants to merge
233
commits into
salome-eriksson:issue559-prototype
Choose a base branch
from
SimonDold:issue559-prototype
base: issue559-prototype
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Issue559 prototype #2
SimonDold
wants to merge
233
commits into
salome-eriksson:issue559-prototype
from
SimonDold:issue559-prototype
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
For developers: we updated the version of uncrustify we use to fix the code formatting. Instructions on how to install the new version can be found on the [wiki](https://www.fast-downward.org/ForDevelopers/Uncrustify).
For LP/MIP users: so far, we used the open solver interface OSI to communicate with MIP and LP solvers. We now replaced this with our own interface to have more direct control and fewer external dependencies. We now support CPLEX 22.11 and SoPlex from their current main branch (released versions <= 6.0.3 are incompatible with C++-20). We dropped command line options for CLP and Gurobi in the process: CLP has much worse performance than SoPlex which is also open source, while Gurobi was never practically possible to compile with, as we did not have a CMake find script for it. Performance with CPLEX increased in MIP configurations and stayed roughly the same in LP configurations. Performance with SoPlex increased for potential heuristics and decreased slightly in other configurations.
We won't address the issue. Also did some related cleanup.
For developers: our GitHub Actions were not compatible with the changes introduced by issue1076. We adapt the Actions by removing references to OSI, using CPLEX 22.11, and using the current main-branch SoPlex.
For developers: previous changes to the CMake setup revealed that the Ubuntu workflow was not working as intended. The Ubuntu builds now link against the dynamic library of CPLEX.
For developers: We no longer ignore warnings C4800, C4512, C4706, C4100, C4127, C4309, C4702, C4239, C4996, and C4505 on Windows builds as they no longer occur in our code. We also treat warnings as errors in our GitHub actions.
We remove some additional references to COIN/OSI/Gurobi. Our Windows tests forced static linking because of OSI, we no longer do this.
For developers: now that we use C++ 20, optional is available in the std namespace and we no longer need the version in src/search/ext. This was our last external dependency in this directory so we could simplify some other scripts.
For users: The MIASM scoring function (feature: sf_miam) now has an option to cache scores for merge candidates. This greatly decreases computation time of M&S abstractions with the stateless merge strategy based on score-based filtering with this scoring function (e.g., merge_strategy=merge_stateless( merge_selector=score_based_filtering( scoring_functions=[ sf_miasm( use_caching=true, shrink_strategy=shrink_bisimulation(greedy=false), max_states=50000, threshold_before_merge=1), total_order( atomic_ts_order=reverse_level, product_ts_order=new_to_old, atomic_before_product=false)])) ).
For developers: the cegar directory is now called cartesian_abstractions to better reflect what it actually contains and to avoid confusion with CEGAR-based code in the pdbs directory. This changes includes renaming the namespace as well as some minor changes in the documentation.
For developers: the class previously called SearchEngine is now called SearchAlgorithm, and the directory search_engines is now called search_algorithms accordingly.
The build script (build.py) now performs the requested builds in the given order. For example, ./build.py debug release will perform a debug build and then a release build. Previously, the order was arbitrary (depending on Python dictionary order). ./build.py --all now performs the builds in alphabetical order (previously arbitrary). If the same build is specified multiple times, it will now also be performed multiple times (but of course the second build will complete quickly if the first was successful).
We used to have a wiki page with option caveats, but over time this was reduced to only one entry referring to the use of preferred operators with the landmark heuristics. This information has now been moved to the documentation of the affected heuristics.
for developers: we removed the OSI-related parts from our release templates.
Apptainer (formerly Singularity) can build containers directly from Dockerhub, so we do not need a recipe file anymore.
We now warn when floating numbers are converted to integers.
The previous commit triggered a compile error on Mac due to implicit conversions from floating-point to integer. It turns out the previous rounding happened at a problematic state and could lead to very wrong timing information on some (non-Intel) Mac platforms. For example, see https://stackoverflow.com/questions/23378063/how-can-i-use-mach-absolute-time-without-overflowing We changed the way these times are computed to avoid rounding at this stage and be less convoluted.
We don't use it any more.
We implement valid landmark progression according to Büchner et al. (ICAPS 2023). With this, the previously incomplete LAMA becomes complete and also we can now use reasonable landmark ordrings for optimal planning. The implemented progression functions can be turned on or off by the following (boolean) command line options (default on) of the landmark_sum and landmark_cost_partitioning heuristic: prog_goal, prog_gn, and prog_r (for goal landmarks, greedy-necessary orderings, and reasonable orderings, respectively). The changes require more memory per state, but in general the performance of these heuristics is merely unaffected.
We remove this landmark ordering type as it is no longer used after generating the orderings.
89f74f3
to
a874b37
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prototype for issue 559
https://issues.fast-downward.org/issue559