Commit Graph

403 Commits (9ddda7e1e2774336af6fc8608ba41b8fe1e221f5)

Author SHA1 Message Date
Alinson S. Xavier b0bf42e69d
Remove obsolete extractor classes
5 years ago
Alinson S. Xavier 9e7eed1dbd
Finish rewrite of user cuts component
5 years ago
Alinson S. Xavier 9f2d7439dc
Add user cut callbacks; begin rewrite of UserCutsComponent
5 years ago
Alinson S. Xavier cfb17551f1
Make sample_xy an instance method
5 years ago
Alinson S. Xavier 54c20382c9
Finish DynamicLazyConstraintsComponent rewrite
5 years ago
Alinson S. Xavier c6aee4f90d
Make sample_ method accept instance
5 years ago
Alinson S. Xavier bb91c83187
LazyDynamic: Rewrite fit method
5 years ago
Alinson S. Xavier 6e326d5d6e
Move feature classes to features.py
5 years ago
Alinson S. Xavier b11779817a
Convert TrainingSample to dataclass
5 years ago
Alinson S. Xavier aeed338837
Convert ConstraintFeatures to dataclass
5 years ago
Alinson S. Xavier 94084e0669
Convert InstanceFeatures into dataclass
5 years ago
Alinson S. Xavier d79eec5da6
Convert VariableFeatures into dataclass
5 years ago
Alinson S. Xavier 59f4f75a53
Convert Features into dataclass
5 years ago
Alinson S. Xavier f2520f33fb
Correctly store features and training data for file-based instances
5 years ago
Alinson S. Xavier 025e08f85e
LazyStatic: Use dynamic thresholds
5 years ago
Alinson S. Xavier 08e808690e
Replace InstanceIterator by PickleGzInstance
5 years ago
Alinson S. Xavier 6e614264b5
StaticLazy: Refactor
5 years ago
Alinson S. Xavier 168f56c296
Fix typos
5 years ago
Alinson S. Xavier ea5c35fe18
Objective: Refactoring
5 years ago
Alinson S. Xavier 185b95118a
Objective: Rewrite sample_evaluate
5 years ago
Alinson S. Xavier 7af22bd16b
Refactor ObjectiveValueComponent
5 years ago
Alinson S. Xavier 674c16cbed
FeaturesExtractor: Fix assertion
5 years ago
Alinson S. Xavier 7a6b31ca9a Fix benchmark scripts; add more input checks
5 years ago
Alinson S. Xavier 0bce2051a8 Redesign component.evaluate
5 years ago
Alinson S. Xavier 0c687692f7 Make all before/solve callbacks receive same parameters
5 years ago
Alinson S. Xavier 8eb2b63a85 Primal: Refactor stats
5 years ago
Alinson S. Xavier ef556f94f0 Rename xy_sample to xy
5 years ago
Alinson S. Xavier bc8fe4dc98 Components: Switch from factory methods to prototype objects
5 years ago
Alinson S. Xavier 59c734f2a1 Add ScikitLearnRegressor; move sklean classes to their own file
5 years ago
Alinson S. Xavier 820a6256c2 Make classifiers and regressors clonable
5 years ago
Alinson S. Xavier b83911a91d Primal: Add end-to-end tests
5 years ago
Alinson S. Xavier db2f426140 Primal: reactivate before_solve_mip
5 years ago
Alinson S. Xavier fe7bad885c Make xy_sample receive features, not instances
5 years ago
Alinson S. Xavier 8fc9979b37 Use instance.features in LazyStatic and Objective
5 years ago
Alinson S. Xavier 5db4addfa5 Add instance-level features to instance.features
5 years ago
Alinson S. Xavier 0f5a6745a4 Primal: Refactoring
5 years ago
Alinson S. Xavier 4f46866921 Primal: Use instance.features
5 years ago
Alinson S. Xavier 12fca1f22b Extract all features ahead of time
5 years ago
Alinson S. Xavier b3c24814b0 Refactor PrimalSolutionComponent
5 years ago
Alinson S. Xavier ec69464794 Refactor primal
5 years ago
Alinson S. Xavier 9cf28f3cdc Add variables to model features
5 years ago
Alinson S. Xavier 1224613b1a Implement component.fit, component.fit_xy
5 years ago
Alinson S. Xavier 205a972937 Add StaticLazyComponent.xy
5 years ago
Alinson S. Xavier 07388d9490 Remove unused composite component
5 years ago
Alinson S. Xavier 64a63264c7 Rename xy to xy_sample
5 years ago
Alinson S. Xavier e8adeb28a3 Add ObjectiveValueComponent.xy
5 years ago
Alinson S. Xavier 9266743940 Add Component.xy and PrimalSolutionComponent.xy
5 years ago
Alinson S. Xavier 75d1eee424 DropRedundant: Make x_y parallel
5 years ago
Alinson S. Xavier 3b61a15ead Add after_solve_lp callback; make dict keys consistent
5 years ago
Alinson S. Xavier 6ae052c8d0 Rename before/after_solve to before/after_solve_mip
5 years ago
Alinson S. Xavier bcaf26b18c Sklearn: Handle the special case when all labels are the same
5 years ago
Alinson S. Xavier b6ea0c5f1b ConstraintFeatures: Store lhs and sense
5 years ago
Alinson S. Xavier 3a60deac63 LearningSolver: Handle exceptions in parallel_solve
5 years ago
Alinson S. Xavier bca6581b0f DropRedundant: Clear pool before each solve
5 years ago
Alinson S. Xavier 1397937f03 Add first model feature (constraint RHS)
5 years ago
Alinson S. Xavier 31ca45036a Organize test fixtures; handle infeasibility in DropRedundant
5 years ago
Alinson S. Xavier 8153dfc825 DropRedundant: Update for new classifier interface
5 years ago
Alinson S. Xavier d3c5371fa5 VarIndex: Use tuples instead of lists
5 years ago
Alinson S. Xavier d1bbe48662 GurobiSolver: Small fix to _update_vars
5 years ago
Alinson S. Xavier 9abcea05cd Objective: Use LP value as feature
5 years ago
Alinson S. Xavier fe47b0825f Remove unused extractors
5 years ago
Alinson S. Xavier 603902e608 Refactor ObjectiveComponent
5 years ago
Alinson S. Xavier edd0c8d750 Remove RelaxationComponent
5 years ago
Alinson S. Xavier a97089fc34 Primal: Add tolerance in binary check
5 years ago
Alinson S. Xavier 203afc6993 Primal: Compute statistics
5 years ago
Alinson S. Xavier b0b013dd0a Fix all tests
5 years ago
Alinson S. Xavier 3ab3bb3c1f Refactor PrimalSolutionComponent
5 years ago
Alinson S. Xavier f68cc5bd59 Refactor thresholds
5 years ago
Alinson S. Xavier 4da561a6a8 AdaptiveClassifier: Refactor and add tests
5 years ago
Alinson S. Xavier 8dba65dd9c Start refactoring of classifiers
5 years ago
Alinson S. Xavier b87ef651e1 Document and simplify Classifier and Regressor
5 years ago
Alinson S. Xavier f90d78f802 Move tests to separate folder
5 years ago
Alinson S. Xavier f755661fa6 Simplify BenchmarkRunner; update docs
5 years ago
Alinson S. Xavier c342a870d1 Minor fixes to docstrings; make some classes private
5 years ago
Alinson S. Xavier 7dbbfdc418 Minor fixes
5 years ago
Alinson S. Xavier f7ce441fa6 Add types to internal solvers
5 years ago
Alinson S. Xavier d500294ebd Add more types to LearningSolver
5 years ago
Alinson S. Xavier fc0835e694 Add type annotations to components
5 years ago
Alinson S. Xavier a98a783969 Update tests
5 years ago
Alinson S. Xavier a42c5ebdc3 Remove unused methods
5 years ago
Alinson S. Xavier 868675ecf2 Implement some constraint methods in Pyomo
5 years ago
Alinson S. Xavier 13e142432a Add types to remaining InternalSolver methods
5 years ago
Alinson S. Xavier 0cf963e873 Fix tests for Python 3.6
5 years ago
Alinson S. Xavier 6890840c6d InternalSolver: Better specify and test infeasibility
5 years ago
Alinson S. Xavier 372d6eb066 Instance: Reformat comments
5 years ago
Alinson S. Xavier a1b959755c Fix solve_lp_first=False and add tests
5 years ago
Alinson S. Xavier 06402516e6 Move collected data to instance.training_data
5 years ago
Alinson S. Xavier 23dd311d75 Reorganize imports; start moving data to instance.training_data
5 years ago
Alinson S. Xavier 947189f25f Disallow untyped calls and incomplete defs
5 years ago
Alinson S. Xavier 7555f561f8 Use TypedDict from typing_extensions
5 years ago
Alinson S. Xavier 1971389a57 Add types to InternalSolver
5 years ago
Alinson S. Xavier 69a82172b9 Fix some _compute_gap corner cases; add tests
5 years ago
Alinson S. Xavier a536d2ecc6 Fix various warnings
5 years ago
Alinson S. Xavier 36061d5a14 Make _compute_gap static
5 years ago
Alinson S. Xavier 9ddb952db0 Make LearningSolver.add internal
5 years ago
Alinson S. Xavier 4b8672870a Add XpressPyomoSolver
5 years ago
Alinson S. Xavier 34e1711081 Remove incorrect import
5 years ago
Alinson S. Xavier 0371b2c7a9 Simply Pyomo solvers
5 years ago
Alinson S. Xavier 185025e86c Remove methods to set solver parameters
5 years ago
Alinson S. Xavier ffc77075f5 Require a callable as the internal solver
5 years ago
Alinson S. Xavier 3ff773402d Remove unused variable
5 years ago
Alinson S. Xavier fb006a7880
Merge branch 'dev' of github.com:iSoron/miplearn into dev
5 years ago
Alinson S. Xavier 872ef0eb06
Benchmark: Move relative statistics to benchmark script
5 years ago
Alinson S. Xavier d7aac56bd9
Benchmark: Remove unused save_chart; load multiple results
5 years ago
Alinson S. Xavier aecc3a311f
Merge branch 'feature/convert-ineqs' into dev
5 years ago
Gregor Hendel 601bfa261a make gap computation robust against missing upper/lower bounds
5 years ago
Alinson S. Xavier 088a4a0355
Fix formatting
5 years ago
Alinson S. Xavier 5a062ad97e
ConvertTight: Use x function from DropRedundant
5 years ago
Alinson S. Xavier fab7b5419b
BenchmarkRunner: Create parent dirs in save_results
5 years ago
Alinson S. Xavier 137247aed9
GurobiSolver: Randomize seed
5 years ago
Alinson S. Xavier 7e4b1d77a3
DropRedundant: Collect data from multiple runs
5 years ago
Alinson S. Xavier e12a896504
Add training_data argument to after_solve
5 years ago
Alinson S. Xavier 30d6ea0a9b
Benchmark: Include solver log in results file
5 years ago
Alinson S. Xavier beee252fa2
simulate_perfect: Do not overwrite original file
5 years ago
Alinson S. Xavier b01d97cc2b
ConvertTight: Always check feasibility
5 years ago
Alinson S. Xavier d67af4a26b
ConvertTight: Detect and fix sub-optimality
5 years ago
Alinson S. Xavier c9ad7a3f56
Benchmark: Add extra columns to CSV
5 years ago
Alinson S. Xavier f77d1d5de9
ConvertTight: Detect and fix infeasibility
5 years ago
Alinson S. Xavier dfe0239dff
LearningSolver: Implement simulate_perfect
5 years ago
Alinson S. Xavier bdfe343fea
Silence debug statements
5 years ago
Alinson S. Xavier 7f55426909
Remove debug print statements
5 years ago
Alinson S. Xavier 3f1aec7fad RelaxationComponent: Always use np arrays
5 years ago
Alinson S. Xavier 4057a65506 ConvertTightIneqs: Convert only inequalities, not equalities
5 years ago
Alinson S. Xavier 1e3d4482f4 ConvertTightIneqs: Reduce default slack_tolerance to zero
5 years ago
Alinson S. Xavier 317e16d471 ConvertTight: Don't take any action on constraints with negative slack
5 years ago
Alinson S. Xavier ec00f7555a Export steps
5 years ago
Alinson S. Xavier d8dc8471aa Implement tests for ConvertTightIneqsIntoEqsStep
5 years ago
Alinson S. Xavier 0377b5b546 Minor changes to docstrings
5 years ago
Alinson S. Xavier 191da25cfc Split relaxation.py into multiple files
5 years ago
Alinson S. Xavier 144ee668e9 Fix failing tests
5 years ago
Alinson S. Xavier c1b4ea448d PyomoSolver: Never query values of fixed variables
5 years ago
Alinson S. Xavier 4a26de5ff1 RelaxationComponent: Convert tight inequalities into equalities
5 years ago
Alinson S. Xavier 5b5f4b7671 InternalSolver: set_constraint_sense, set_constraint_rhs
5 years ago
Alinson S. Xavier 8bb9996384 Break down RelaxationComponent into multiple steps
5 years ago
Alinson S. Xavier 6540c88cc5 Component: Add default implementations to all methods
5 years ago
Alinson S. Xavier 94b493ac4b Implement CompositeComponent
5 years ago
Alinson S. Xavier d99600f101 Reformat source code with Black; add pre-commit hooks and CI checks
5 years ago
Alinson S. Xavier 3823931382 RelaxationComponent: max_iterations
5 years ago
Alinson S. Xavier 0b41c882ff Merge branch 'feature/files' into dev
5 years ago
Alinson S. Xavier 388b10c63c Train without loading all instances to memory
5 years ago
Alinson S. Xavier 54d80bfa85 RelaxationComponent: Implement check_dropped
5 years ago
Alinson S. Xavier 51b5d8e549 Component: rename iteration_cb and lazy_cb
5 years ago
Alinson S. Xavier e7426e445a Make tests compatible with Python 3.7+
5 years ago
Alinson S. Xavier 57d185dfc2 Merge branch 'gh-actions' into dev
5 years ago
Alinson S. Xavier 272eb647fd Switch to GitHub runners; temporarily disable CPLEX
5 years ago
Alinson S. Xavier f03cc15b75 Allow solve and parallel_solve to operate on files
5 years ago
Alinson S. Xavier 1b6982ae8d Implement RelaxationComponent
5 years ago
Alinson S. Xavier 3c4045f64b StaticLazy: Add tolerance to tests
5 years ago
Alinson S. Xavier 4144b8b6b3 Primal: In evaluate, skip variables without predictions
5 years ago
Alinson S. Xavier 0cf88ded89 LearningSolver: Silence logging during parallel_solve
5 years ago
Alinson S. Xavier 92615958fb GurobiSolver: Flip upper/lower bound for minimization problems
5 years ago
Alinson S. Xavier b51c367257 UserCutsComponent: ignore training instances without cut data
5 years ago
Alinson S. Xavier 75570ceaeb Minor fixed to BenchmarkRunner
5 years ago
Alinson S. Xavier a221740ac5 Implement lazy callbacks & two-phase gap
5 years ago
Alinson S. Xavier 86e7b1981f Revert changes to default variable category
5 years ago
Alinson S. Xavier ba96338d2d Small fixes to lazy constraints
5 years ago
Alinson S. Xavier 0fe6aab98f Modify Instance defaults
5 years ago
Alinson S. Xavier e527e75481 Implement iteration_cb for LearningSolver; reactivate TSP
5 years ago
Alinson S. Xavier 5390a5b656 Rename LazyConstraintsComponent to DynamicLazyConstraintsComponent
5 years ago
Alinson S. Xavier 425ea2b7cc Temporarily remove native solver callbacks; add iteration_cb
5 years ago
Alinson S. Xavier e731f46b72 Implement preliminary version of static lazy component
5 years ago
Alinson S. Xavier 5ccd65c809 Remove empty tests
5 years ago
Alinson S. Xavier 6b104433be Improve logging
5 years ago
Alinson S. Xavier 25f336aac9 Fix failing test
5 years ago
Alinson S. Xavier 5663ced0be Move python files to root folder; remove built docs
5 years ago
Alinson S. Xavier 7765d1f822
Reorganize directories
6 years ago
Alinson S. Xavier 303750a7dd
Restore add_constraint method
6 years ago
Alinson S. Xavier 19453f5ee5
LearningSolver: only compute all_vars once
6 years ago
Alinson S. Xavier 2750447f6d
Use lazy constraints callback (Gurobi only)
6 years ago
Alinson S. Xavier 72fc65cae0
LazyConstraintsComponent: make threshold configurable
6 years ago
Alinson S. Xavier 570ac09286
Only relax binary variables; do not clear value of fixed variables
6 years ago
Alinson S. Xavier 5eee00c626
Plot predicted objective value
6 years ago
Alinson S. Xavier b609b4a0ee
Include objective sense in benchmark file; update charts
6 years ago
Alinson S. Xavier 0b04fa93da
Finish TSP implementation; improve performance of Extractors
6 years ago
Alinson S. Xavier b1f674fcc6
Improve solve_lp performance
6 years ago
Alinson S. Xavier d2a2de9183
Instance: document find_violations and build_lazy_constraint
6 years ago
Alinson S. Xavier 959cb54d27
Remove load_state and save_state
6 years ago
Alinson S. Xavier 7a01d9cbcf
Implement TSP generator and LazyConstraintsComponent
6 years ago
Alinson S. Xavier f713a399a8 Merge branch 'master' into feature/tsp
6 years ago
Alinson S. Xavier 30e7d7313c Fix failing test
6 years ago
Alinson S. Xavier 996b16f1b7 Add missing files
6 years ago
Alinson S. Xavier a2fbb9f8d8 Implement PrimalSolutionComponent; remove deprecated predictors
6 years ago
Alinson S. Xavier ccd694af9b Implement ObjectiveValueComponent
6 years ago
Alinson S. Xavier 7de1db047f Implement InstanceFeaturesExtractor and ObjectiveValueExtractor
6 years ago
Alinson S. Xavier b428a4fc36 Add option to solve root relaxation only
6 years ago
Alinson S. Xavier 9e4004ae8a Silence Gurobi
6 years ago
Alinson S. Xavier b60afab5ef Extract value of LP relaxation
6 years ago
Alinson S. Xavier 10ad8e0a9e Make Gurobi the default solver
6 years ago
Alinson S. Xavier 212e38d004 Make SolutionExtractor use instance.solution and instance.lp_solution
6 years ago
Alinson S. Xavier 0048fcce13 Extract root relaxation solution
6 years ago
Alinson S. Xavier f8e8aeb973 Better encapsulate solvers
6 years ago
Alinson S. Xavier 141c8f0fdf Store solution into instance object after solving
6 years ago
Alinson S. Xavier 4bf7636f51 Fix tests for CPLEX; temporarily disable incompatible tests
6 years ago
Alinson S. Xavier 4ab957b686 Update copyright notices
6 years ago
Alinson S. Xavier 7d8279a3bb Merge branch 'master' into dev
6 years ago
Alinson S. Xavier 635c16386d Update copyright notices
6 years ago
Alinson S. Xavier d3b5b43b94 Implement AdaptiveSolver; reorganize imports
6 years ago
Alinson S. Xavier 1213f1d0a5 LearningSolver: fix node count for non-compatible solvers
6 years ago
Alinson S. Xavier ffb29d2bbb BenchmarkRunner: add solve method
6 years ago
Alinson S. Xavier c3902ad61c Branching: Make classifier configurable
6 years ago