Skip to content

Commit

Permalink
faster-ILP extractor (#16)
Browse files Browse the repository at this point in the history
* handwritten examples~

* fixed root

* something is wrong with the dump of choice.egg

* ilp-cbc-prune

* flexc data

* greedy bottom up analysis

* A recursive bottom-up

* bug fix. previously the wrong node was added to the worklist.

* Slower but cleaner

* Faster greedy dag

* Clean up as well as speed up the ILP extractor.

* Improve ILP extractor

* Default on timeout to a better extractor. Put in main

* Remove ability to have the same ilp variable bound to different graph elements - simplifies things.

* Extra tests

* Adds code to pull up costs

* fix comments

* Almost the same result for 2/3 of the time.

* Speedup. Adds an extra simplification, puts the simplifications in a loop, increases the timeout.

* Remove cycle blocking which doesn't work properly

* Option to block cycles before ILP solving

* extra config option.

* * Move config to a struct so it can be changed at runtime. * Don't use the faster-greedy-dag extractor - currently it's broken * Add fuzzing code (currently disabled)

* Restore the old ilp cbc solver

* Add test jsons the fuzzer discovered that caused crashes.

* Simpler slower correct ILP with cycle blocking

* extra failing instances

* Extra tests

* Add extra test code - currently faster-greedy-dag, faster-ilp-cbc, and global-greedy-dag all return incorrect extracts on some graphs.

* fix fmt --check

* better ilp extractor

* better testing

* remove unused code

* remove unused code. Increase the number of tests

* Add necessary include

* Less duplication - but more complexity.

* Can test on all .json files too

* Remove files from other PRs

* extra egraphs that previouysly failed

* fix layout

* example with muiltiple root nodes

* Currently disabled - infeasible egraph.

* Improved testing. Fixed defects in simplifications.

* cleanup

* replace with macro

* fix formatting

* small refactor

* Extra egraphs from fuzzing

* disable broken simplification

* fix. return initial solution on timeout.

* remove test cases that are in PR#31

* remove test cases that are in PR#31

* remove test cases that are in PR#31

* restore readme

* Add separate extractor with a timeout

* fix formatting:

* Remove unhelpful simplifications. Adds extra helpful simplifications

* speedup. Should sort on cost, too

* fix formatting

* cleanup

* cleanup

* clean up

* Remove changes that are in a different PR

* fix formatting

* Remove some classes early on where we know their assignments already

* improved description

* improve formatting

---------

Co-authored-by: Philip Zucker <[email protected]>
Co-authored-by: Thomas Koehler <[email protected]>
  • Loading branch information
3 people authored May 17, 2024
1 parent 2a38817 commit ac30499
Show file tree
Hide file tree
Showing 9 changed files with 1,441 additions and 14 deletions.
101 changes: 101 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,16 @@ ordered-float = "3"
pico-args = { version = "0.5.0", features = ["eq-separator"] }
rand = "0.8.5"
walkdir = "2.4.0"

anyhow = "1.0.71"
coin_cbc = { version = "0.1.6", optional = true }
im-rc = "15.1.0"
rustc-hash = "1.1.0"
serde_json = "1.0"

rpds = "1.1.0"
[dependencies.egraph-serialize]
git = "https://github.com/egraphs-good/egraph-serialize"
rev = "951b829a434f4008c7b45ba4ac0da1037d2da90"

[profile.release]
debug = true
Loading

0 comments on commit ac30499

Please sign in to comment.