-
Notifications
You must be signed in to change notification settings - Fork 93
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
More robust pivot selection #81
Merged
Merged
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
representation, needed for sparse factorization. still WIP
insertions and deletions
new assertions
optimizations to PSE
loop, due to degeneracy
matanost
pushed a commit
that referenced
this pull request
Nov 2, 2021
* initial work on sparse matrix representation * store/restore functionality * addLastRow functionality * getRow and getColumn * column-merging functionality * added an interface class * introducing also sparse vectors * added addLastColumn functionality * another unittest * get sparse columns/matrices in dense form * WIP on storing the constraint matrix inside the tableau in sparse form * more WIP, fixed a few bugs, still have a couple of failing tests * fixed some test issues * initialization * resize _a along with the rest * sparse lu factors * store also the transposed versions of F and V * starting work on the sparse GE * some work on changing the values within an existing sparse representation, needed for sparse factorization. still WIP * refactoring and new functionality for CSRMatrix: any kind of insertions and deletions * support for empty initialization and counting elements * sparse GE is now working. minor bug fixes elsewhere * compute Ft and Vt as part of the G-elimination process * tests * basis oracles can return also sparse columns, not just dense * sparse LU factorization class * switch to using the sparse factorization in the engine/tableau * bug fix in mergeColumns, and nicer printing * bug fix * bug fix * bug fix: merging columns does not delete the actual column, just leaves it empty * configuration changes * optimization: since the sparse columns of A are needed all the time, just compute them once-and-for-all * a more efficient implementation of sparse vectors * comments and unit tests * cleanup * keep _A in dense column-major format, too, instead of repeatedly invoking toDense() to gets its columns * bad deletes * bug fix in test * bug fixes: relu constraint propagation, and the handling of merged variables in the preprocessor * new test * compute Ft incrementally, use it whenever sparse columns are required * did the todo * valgrind fixes * debugging * un-initialized memory * cleanup * fixing an issue with cost function degradation * reinstating the anti-looping trick * debug prints * verify invariants * debug info for crash * fixing a numerical stability issue new assertions * cleanup * cleanup * removing the code with the failing assertion * weaken a couple of too-storng assertions * bug fix and some fine-tuning of PSE * bug fix in LU factorization optimizations to PSE * WIP * cleanup * cleanup * fine-tuning the computation of basic costs * more robust comparisons * more stable cost function computation * changes to how the cost function is adjusted at the beginning of every loop, due to degeneracy * made the decision on which non-basics are eligible for entry more robust * minor * more robust calculations * more robust PSE computation * if stuck with an unstable pivot, refresh the basis factorization and try again
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.
No description provided.