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

Data Structure Refactor #43

Closed
wants to merge 133 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
268a4ab
Initial commit
pulsipher May 13, 2022
fd87c2f
Add logical vars and propositions.
pulsipher Jun 12, 2022
0ffa3b4
More progress
pulsipher Jun 15, 2022
e61b531
Update src-old
pulsipher Aug 31, 2022
46ae36a
fix some bugs preventing package from loading
hdavid16 May 3, 2023
93b6d3e
bug fixes
hdavid16 May 3, 2023
c826cef
add methods for disjunctive constraints
hdavid16 May 3, 2023
9919908
add bigM and hull reformulations
hdavid16 May 5, 2023
9943654
add default BigM; add general GDPData method
hdavid16 May 11, 2023
708a8cb
extend copy_extension_data
hdavid16 May 11, 2023
372785b
update example
hdavid16 May 11, 2023
4062f72
up version; remove deps
hdavid16 May 11, 2023
0d61cdd
update example 1
hdavid16 May 11, 2023
5ddb008
remove bounds on binary indicator vars
hdavid16 May 11, 2023
1f594eb
extend methods for LogicVariableRef
hdavid16 May 11, 2023
96af35f
change LogicalIndex to LogicalVariableIndex
hdavid16 May 11, 2023
a33702c
extend getindex to allow copying GDPModel
hdavid16 May 11, 2023
6352ed7
update ex1 and ex2
hdavid16 May 11, 2023
fa53c52
copy_extension_data needs more work
hdavid16 May 12, 2023
3b8938a
update based on review
hdavid16 Jul 11, 2023
6952e33
use Sets instead of Vectors for querying variables
hdavid16 Jul 11, 2023
bb2ec4a
replace push! with union!
hdavid16 Jul 11, 2023
d528472
improve performance for Hull
hdavid16 Jul 11, 2023
44f08ea
clean code
hdavid16 Jul 11, 2023
0d1866f
close #64; add epsilon value for Hull
hdavid16 Jul 12, 2023
a5451de
update fallbacks for quadexpr
hdavid16 Jul 12, 2023
4e926df
implement copy_extension_data
hdavid16 Jul 13, 2023
929413c
add big-m support for NLP; fix bugs
hdavid16 Jul 18, 2023
4f901d9
first pass on hull reform for nlp
hdavid16 Jul 18, 2023
8ff3e83
first pass on nlp hull reform
hdavid16 Jul 18, 2023
e6e12dd
hull reformulation for nonlinear models added
hdavid16 Jul 19, 2023
d41aaee
update ex2
hdavid16 Jul 19, 2023
17d124b
add selector logical constrain reformulations
hdavid16 Jul 19, 2023
3ebf603
add CNF functions
hdavid16 Jul 19, 2023
82c0397
update logic transformation; add _flatten
hdavid16 Jul 20, 2023
a4e1e49
fix distribute AND over OR
hdavid16 Jul 20, 2023
42121fd
remove usage of @constraint macro
hdavid16 Jul 20, 2023
25d700f
remove JuMP macros; add reformulate proposition
hdavid16 Jul 20, 2023
f58a242
wrapper for VariableInfo
hdavid16 Jul 20, 2023
5fa4f93
update ex4
hdavid16 Jul 20, 2023
da2fef5
complete proposition transformation functions
hdavid16 Jul 20, 2023
d0c5ddd
define and use logical operators to build LogicExpr
hdavid16 Jul 20, 2023
7f44c7f
first implementation using @constraint macro for disjunct constraints…
hdavid16 Aug 1, 2023
2781545
use parse_constraint_call for logical constraints
hdavid16 Aug 1, 2023
4e7edcd
clean
hdavid16 Aug 1, 2023
0f29b5f
use func in set for logical constraints
hdavid16 Aug 1, 2023
6eef5d4
allow creating a constraint with exactly, atleast, atmost functions a…
hdavid16 Aug 1, 2023
f88e2b2
clean up
hdavid16 Aug 1, 2023
73d759b
bug fix to allow CP set to have a LogicalVariableRef
hdavid16 Aug 1, 2023
f9a730d
organize and add section titles
hdavid16 Aug 1, 2023
5f93854
.
hdavid16 Aug 1, 2023
9cd3a67
Refactor frontend
pulsipher Aug 3, 2023
a967d35
Fix bugs
pulsipher Aug 3, 2023
82aa16c
first pass at adding reformulations and copy to new structure
hdavid16 Aug 7, 2023
36da978
2nd pass: fix bugs. add parse methods for logical operators
hdavid16 Aug 8, 2023
74ed9b8
fix copy warning
hdavid16 Aug 8, 2023
e4d5a83
remove `-->` from logic operators since clashes with indicator constr…
hdavid16 Aug 8, 2023
eadaa2e
add dispatch methods for non Bool sets in build_constraint
hdavid16 Aug 8, 2023
caeb39b
use _error instead of error
hdavid16 Aug 8, 2023
47bed8a
update to fix bugs
hdavid16 Aug 13, 2023
37243b5
minor edits
hdavid16 Aug 16, 2023
5b973e7
extend operator_to_set. update allowed unicode logical ops
hdavid16 Sep 6, 2023
ff8db85
Update JuMP nlp and clean it
pulsipher Sep 7, 2023
b92d812
update selector reformulation to use @expression
hdavid16 Sep 8, 2023
2dbc184
pass fix and start values from logical to bin vars
hdavid16 Sep 8, 2023
b4ac164
update NonlinearOperator arg order; clean up
hdavid16 Sep 8, 2023
7df62f8
extend BigM for VectorConstraints
hdavid16 Sep 11, 2023
f4ae4b9
use @expression for all reformulations; bug fixes; improve code
hdavid16 Sep 11, 2023
db5d95a
extend hull reform to vectorconstraints; cleanup
hdavid16 Sep 11, 2023
d7adb3a
refactor to simplify objects stored in gdpdata
hdavid16 Sep 12, 2023
e57b7e4
extend JuMP.delete for GDP constraints and vars
hdavid16 Sep 12, 2023
bc77455
address TODOs
hdavid16 Sep 12, 2023
107ac0d
support vector constraints for disjunctconstraint
hdavid16 Sep 13, 2023
aa47a1c
update optimize_hook
hdavid16 Sep 13, 2023
ee9ff23
delete reformulated constraints and vars from previous optimize call
hdavid16 Sep 13, 2023
7489b56
add method; bug fix
hdavid16 Sep 13, 2023
6a6c2e8
expose function for reformulating a model
hdavid16 Sep 13, 2023
7fb4540
support indicator reformulation with vector constraints and nonlinear…
hdavid16 Sep 13, 2023
1f2296f
fix bugs by running Aqua and JET
hdavid16 Sep 13, 2023
c0f0317
use MA.add_mul!! for nonlinear expr
hdavid16 Sep 14, 2023
38d919c
review and cleanup codebase
hdavid16 Sep 15, 2023
1402750
add tests for logical vars; fix bugs
hdavid16 Sep 15, 2023
98665e5
add lvar tests
hdavid16 Sep 15, 2023
005d735
make suggested changes; fix bug
hdavid16 Sep 16, 2023
a84531a
review items
hdavid16 Sep 16, 2023
6989f24
address review
hdavid16 Sep 18, 2023
b61f701
add nested disjunction reformulations:
hdavid16 Sep 19, 2023
abaad04
fix bug for multi-level nesting
hdavid16 Sep 20, 2023
72cd989
bug fix for nested indicator reformulation
hdavid16 Sep 20, 2023
4fb7e3d
clean nested indicator reformulation
hdavid16 Sep 20, 2023
a416bc5
remove copy methods
hdavid16 Sep 20, 2023
8ec0573
improve nested disjunction code
hdavid16 Sep 20, 2023
639da3e
replace indices with refs
hdavid16 Sep 20, 2023
6a8c6ec
Update src/constraints.jl
hdavid16 Sep 21, 2023
94f832b
Update src/constraints.jl
hdavid16 Sep 21, 2023
27b95c9
Update src/reformulate.jl
hdavid16 Sep 21, 2023
e349c4b
remove files that shouldn't be git tracked
pulsipher Sep 21, 2023
2782434
Update src/indicator.jl
hdavid16 Sep 21, 2023
07febb5
append instead of push
hdavid16 Sep 21, 2023
a1c4945
Merge branch 'structure_overall' of https://github.com/pulsipher/Disj…
hdavid16 Sep 21, 2023
1396b65
bug fix
hdavid16 Sep 21, 2023
03c456b
add some tests
hdavid16 Sep 21, 2023
9aa317a
check only continuous vars used in disj constr
hdavid16 Sep 21, 2023
b999c1d
Update reformulate.jl
hdavid16 Sep 22, 2023
8df0ecd
add tests; fix bugs
hdavid16 Sep 22, 2023
5667bae
add solve example tests
hdavid16 Sep 22, 2023
7e839fb
fix MOI sets for selectors
hdavid16 Sep 22, 2023
98fc3b2
Update Project.toml
hdavid16 Sep 22, 2023
e180d75
update tests
hdavid16 Sep 27, 2023
39cc9ab
Merge branch 'structure_overall' of https://github.com/pulsipher/Disj…
hdavid16 Sep 27, 2023
6aea798
IsTrue() for propositions; add tests
hdavid16 Sep 28, 2023
1a45fc3
add some logic constraint tests
hdavid16 Sep 28, 2023
2714a96
update tests
hdavid16 Sep 28, 2023
b5a69b4
add test for disjunctions
hdavid16 Sep 29, 2023
a6d34a4
Fix disjunction macro logic
pulsipher Sep 30, 2023
b5b0c59
add todo
pulsipher Sep 30, 2023
8bf32e1
disjunct tests
hdavid16 Oct 1, 2023
a20000f
Merge branch 'structure_overall' of https://github.com/pulsipher/Disj…
hdavid16 Oct 1, 2023
02af76a
generalize disjunction for containers of logicalvariablerefs
hdavid16 Oct 1, 2023
5ad2d2e
fix macro
pulsipher Oct 2, 2023
de14932
clean up comments
pulsipher Oct 2, 2023
040fc15
Clean up and simply macro
pulsipher Oct 2, 2023
9c76df9
minor fix
pulsipher Oct 2, 2023
5039970
add tests
hdavid16 Oct 3, 2023
8bb78ac
Merge branch 'structure_overall' of https://github.com/pulsipher/Disj…
hdavid16 Oct 3, 2023
762a877
get variable bounds up front for BigM and store
hdavid16 Oct 9, 2023
1b25f10
add methods
hdavid16 Oct 9, 2023
50ca71a
add tests
hdavid16 Oct 9, 2023
4136a4a
support empty disjuncts
hdavid16 Oct 10, 2023
ad5c87c
update readme and ex2
hdavid16 Oct 10, 2023
3a5957b
add release note
hdavid16 Oct 10, 2023
bc2a3bc
Update logic heads to be consistent with JuMP
pulsipher Oct 10, 2023
d501c77
fix bugs/tests
hdavid16 Oct 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
*.jl.*.cov
*.jl.cov
*.jl.mem
.DS_Store
/Manifest.toml
/test/Manifest.toml
/dev/
/docs/build/
/docs/site/
/docs/src/examples/*/*.md
/docs/src/examples/*/*.png
/docs/Manifest.toml
.vscode/
18 changes: 8 additions & 10 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
name = "DisjunctiveProgramming"
uuid = "0d27d021-0159-4c7d-b4a7-9ccb5d9366cf"
authors = ["hdavid16 <[email protected]>"]
version = "0.2.1"
version = "0.4.0"

[deps]
IntervalArithmetic = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"

[compat]
IntervalArithmetic = "0.20"
JuMP = "1"
Suppressor = "0.2"
Symbolics = "4"
julia = "1"
JuMP = "1.15"
Reexport = "0.2, 1"
julia = "1.6"

[extras]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Test"]
test = ["Aqua", "HiGHS", "Test"]
244 changes: 187 additions & 57 deletions README.md

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions docs/.gitignore

This file was deleted.

260 changes: 0 additions & 260 deletions docs/build/assets/documenter.js

This file was deleted.

Loading