Skip to content
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

Lifelong_v0.06.0 #98

Merged
merged 116 commits into from
Nov 25, 2024
Merged

Lifelong_v0.06.0 #98

merged 116 commits into from
Nov 25, 2024

Conversation

J-morag
Copy link
Owner

@J-morag J-morag commented Nov 24, 2024

No description provided.

J-morag and others added 30 commits March 20, 2024 11:32
* Remove SST from TransientMAPFSettings, use only I_SolutionCostFunction. In PrP, properly initialize subproblem GAndH when using SST cost function

* fix TransientMAPFExampleMain
* add MDD copy under constraints functionality

* misc. comments, todos, cleaning

* Use bigger prime for Coordinate_2D to reduce the likelihood of hash collisions

* Fix LargeNeighborhoodSearch_SolverTest because commit #76f584d1 affected the tie breaking

* MDD functionality extensions

* PCS v1

* add useSimpleMDDCache to PCS

* PCS tie breaking for higher g

* change getHToTargetFromLocation signature to return int

* make MDDManager handle getting queried for depth out of order

* add partial generation to PCS

* add printEnv to main

* add printEnv to main

* MDD building optimizations and tests

* always report all standard cost functions

* add expansion and generation rates to standard fields

* add using perfect heuristic in some SIPP tests

* PCS assorted fixes and improvements

* TODO use Timeout in RunParameters

* change default to usePartialGeneration

* PCS fix usePartialGeneration

* MDDManager optimization - lazier getMDD

* add PCS SIPP-based heuristic

* fix SIPP based heuristic

* update PCS tests

* Add support for random tie-breaking in A*

* groundwork SIPP for random tie-breaking

* PP AStar random restarts

* fix PrP test asserts

* small updates

* use SIPP heuristic by default

* SIPP add an option to initialize intervals externally

* PCS initialize safe intervals to reuse them

* remove todo

* merge from master

* add PCS to performance benchmark

* reduce PCS performance benchmark to 20 agents

* shorten PCS tests

* rename PCS test

* shorten PCS tests
# Conflicts:
#	src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java
#	src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java
#	src/main/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanning_Solver.java
#	src/main/java/Environment/RunManagers/GenericRunManager.java
#	src/main/java/TransientMAPF/TransientMAPFExampleMain.java
#	src/test/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanningSolverTest.java
* first commit

* begin implement LaCAM algorithm

* begin implement LaCAM algorithm

* begin implement LaCAM algorithm

* implement LaCAM

* LaCAM - start implement create new configuration

* basic test passes in LaCAM, adapt PIBT

* LaCAM tests

* LaCAM tests

* LaCAM tests

* LaCAM tests

* LaCAM tests

* returnPartialSolutions flag in PIBT

* LaCAM tests

* LaCAM add tests

* continue implement LaCAM, still not working

* add complicated test instances to LaCAM

* LaCAM tests

* small changes LaCAM

* add transient option to LaCAM

* improve implementation of LaCAM

* improve implementation of LaCAM

* LaCAM implementation

* try to adapt pibt to find configuration for LaCAM

* try to adapt pibt to find configuration for LaCAM

* add LeCAM debug parameters to instanceReport

* clean code and try to improve LaCAM

* LaCAM bug fix

* try to improve performance of LaCAM

* improving LaCAM

* clean code of LaCAM, need to detect bug in pibt

* clean code of LaCAM, need to detect bug in pibt

* clean code of LaCAM, need to detect bug in pibt

* add transient to LaCAM solver and tests

* LaCAM improvements - need to detect transient bug

* merge from master

* implementing LaCAMt, clean code

* add LaCAMStar solver based on LaCAM class

* add LaCAMStar solver based on LaCAM class

* try to improve LaCAM and LaCAM*, still heap overflow

* try to improve LaCAM and LaCAM*, add timestep

* improve LaCAMt, start separation of LaCAM and LaCAMStar

* final changes in LaCAM and LaCAM*

* final changes before PR

* final changes before PR, add composition to implement LaCAMStar
# Conflicts:
#	src/main/java/BasicMAPF/Solvers/PIBT/PIBT_Solver.java
* add Config static class

* add debug and info to command line args
J-morag and others added 28 commits September 17, 2024 12:02
# Conflicts:
#	src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java
#	src/main/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanning_Solver.java
#	src/main/java/Environment/RunManagers/GenericRunManager.java
#	src/main/java/TransientMAPF/TransientMAPFExampleMain.java
#	src/test/java/BasicMAPF/Solvers/PerformanceBenchmarkTest.java
#	src/test/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanningSolverTest.java
* adapt LaCAM to Lifelong

* adapt LaCAM to Lifelong, add non-transient PIBT

* set experiments

* set main experiment

* set main experiment

* set new lifelong experiment

* set new lifelong experiment

* Fix LaCAM_Solver.sharedGoals. Was considering having a target conflict on a shared goal as no having no conflict for the move. Now only ignores that specific target conflict.

* add metrics for throughput at later timesteps

* add more throughput numbers to "log" results

* no shareGoals in experiment

* temporary fix to allow non-shared goals in lifelong

* clean code before PR

* merge lifelong

* fix PIBT after merge, remove use in goalCnfiugration, changes before PR

* Update src/main/java/LifelongMAPF/LifelongRunManagers/A_LifelongRunManager.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/LifelongMAPF/LifelongRunManagers/A_LifelongRunManager.java

Co-authored-by: J-morag <[email protected]>

* use utils in LaCAM tests

* use utils in LaCAM tests

* use utils in LaCAM tests

* use utils in LaCAM tests

* improve partial solution strategy, keep track on best node to return partial solution from

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAMStar_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAMStar_Solver.java

Co-authored-by: J-morag <[email protected]>

* refactoring and final changes before PR

* refactoring and final changes before PR

* long experiments configuration

* add relevant changes to handle constraints to work with subset agents selection

* merge lifelong, minor changes before pr merge

---------

Co-authored-by: J-morag <[email protected]>
* add stay in current location in lacam

* Do constraints checks only if necessary for efficiency

* add constraints handling test

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

---------

Co-authored-by: J-morag <[email protected]>
* add constraints support in lacam, do constraints checks only if necessary for efficiency

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* refactoring and removing not necessary constraints set

* add constraints handling test

---------

Co-authored-by: J-morag <[email protected]>
…me (#41)

* add-offline-solver-runtime-metric-to-lifelong

* fix low level runtime and calls
* add boolean to TransientMAPFSettings indicates avoid separating vertices

* Implementing Tarjan's Algorithm to find cut vertices with Iterative DFS

* Add separating vertices set to RunParameters

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParametersBuilder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/TransientMAPFSettings.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* throw exceptions where needed, add separating vertices support for PIBT and improve efficiency

* refactoring of files locations, support finding SVs to I_ExplicitMap, make SV finder static, improve SV test class,

* Update src/main/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanning_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/TransientMAPFExampleMain.java

Co-authored-by: J-morag <[email protected]>

* Update src/test/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_SolverTest.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* visualize SV in visualizer and print in test

* final fixes before PR

---------

Co-authored-by: J-morag <[email protected]>
* add relevant test constants to transient test, add transeint test, add bug fix in lacam when agent stays in current location.

* Add transient lifelong test, set factory solvers to best settings

* Update src/test/java/BasicMAPF/TestConstants/Agents.java

Co-authored-by: J-morag <[email protected]>

* changes before PR

* improve test in LifelongSimulationSolverTest

---------

Co-authored-by: J-morag <[email protected]>
* changes required to create LaCAM builder class (#37)

* Add low level expansion/generation rate, and add all rates to A_RunManager output ("log" files)

* add generation and expansion rates for low-level

* fix low level expansion/generation rate metric

* simplify (and optimize?) TieBreakingForLessConflictsAndHigherG

* lacam constraints support (#39)

* add constraints support in lacam, do constraints checks only if necessary for efficiency

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* refactoring and removing not necessary constraints set

* add constraints handling test

---------

Co-authored-by: J-morag <[email protected]>

* Add regenerated nodes metric. Low level only.

* Add regenerated nodes metric. Low level only.

* simplify Move.equals

* Transient seperating vertices (#43)

* add boolean to TransientMAPFSettings indicates avoid separating vertices

* Implementing Tarjan's Algorithm to find cut vertices with Iterative DFS

* Add separating vertices set to RunParameters

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParameters.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/DataTypesAndStructures/RunParametersBuilder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/TransientMAPFSettings.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java

Co-authored-by: J-morag <[email protected]>

* throw exceptions where needed, add separating vertices support for PIBT and improve efficiency

* refactoring of files locations, support finding SVs to I_ExplicitMap, make SV finder static, improve SV test class,

* Update src/main/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanning_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/TransientMAPFExampleMain.java

Co-authored-by: J-morag <[email protected]>

* Update src/test/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_SolverTest.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/TransientMAPF/SeparatingVerticesFinder.java

Co-authored-by: J-morag <[email protected]>

* visualize SV in visualizer and print in test

* final fixes before PR

---------

Co-authored-by: J-morag <[email protected]>

* merge fixes and add LaCAMBuilder

---------

Co-authored-by: J-morag <[email protected]>
#48)

* Add results printing function to test utils, with running example using CBS. Add constraints handling in LaCAM_Solver

* Update src/test/java/BasicMAPF/Solvers/CBS/CBS_SolverTest.java

Co-authored-by: J-morag <[email protected]>

* Update src/test/java/BasicMAPF/TestUtils.java

Co-authored-by: J-morag <[email protected]>

* refactoring before PR

---------

Co-authored-by: J-morag <[email protected]>
* add SV support for PrPt and CBSt

* Update src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java

Co-authored-by: J-morag <[email protected]>

* Update src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java

Co-authored-by: J-morag <[email protected]>

* add TransientMAPFUtils class and put all relevant static function in it, make changes accordingly in all relevant solvers

---------

Co-authored-by: J-morag <[email protected]>
# Conflicts:
#	src/main/java/BasicMAPF/Solvers/CBS/CBS_Solver.java
#	src/main/java/BasicMAPF/Solvers/LaCAM/LaCAMBuilder.java
#	src/main/java/BasicMAPF/Solvers/LaCAM/LaCAM_Solver.java
#	src/main/java/BasicMAPF/Solvers/LargeNeighborhoodSearch/LargeNeighborhoodSearch_Solver.java
#	src/main/java/BasicMAPF/Solvers/PIBT/PIBT_Solver.java
#	src/main/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanning_Solver.java
#	src/main/java/Environment/RunManagers/A_RunManager.java
#	src/main/java/TransientMAPF/TransientMAPFExampleMain.java
#	src/main/java/TransientMAPF/TransientMAPFSettings.java
#	src/test/java/BasicMAPF/Solvers/CBS/CBS_SolverTest.java
#	src/test/java/BasicMAPF/Solvers/LaCAM/LaCAM_SolverTest.java
#	src/test/java/BasicMAPF/Solvers/PrioritisedPlanning/PrioritisedPlanningSolverTest.java
#	src/test/java/BasicMAPF/TestConstants/Agents.java
#	src/test/java/BasicMAPF/TestUtils.java
@J-morag J-morag merged commit de66feb into lifelong Nov 25, 2024
4 checks passed
@J-morag J-morag deleted the lifelong-v0.06.0 branch November 25, 2024 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants