Commit Graph

421 Commits (6a01c98c079660b3b88e4c2445ef7747775ba7e0)

Author SHA1 Message Date
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
Alinson S. Xavier d7131e9f66 Knapsack: Make jitter relative instead of absolute
6 years ago
Alinson S. Xavier cae1915660 Reactivate linear relaxation code; move to WarmStartComponent
6 years ago
Alinson S. Xavier 85b804610f Move components into submodule
6 years ago
Alinson S. Xavier 52b476f0a3 Remove PerVariableTransformer
6 years ago
Alinson S. Xavier 5750b4c98d KNN: Make distinction between k and min_samples; improve logging
6 years ago
Alinson S. Xavier cb0b3d5468 Fix component name
6 years ago
Alinson S. Xavier fc62a7b067 Temporarily disable linear relaxation features
6 years ago
Alinson S. Xavier f9e9077803 Only use warmstart=true if warm start is available
6 years ago
Alinson S. Xavier 2dc66696f9 Initial version of TSP generator
6 years ago
Alinson S. Xavier dbea4aa988 Make WarmStartComponent use Extractor
6 years ago
Alinson S. Xavier 17c21382c5 miplearn module: export extractors
6 years ago
Alinson S. Xavier 6685f4ff23 Switch tests to simpler Knapsack encoding; remove outdated test
6 years ago
Alinson S. Xavier c82de560f4 Implement UserFeaturesExtractor and SolutionExtractor
6 years ago
Alinson S. Xavier bb42815404 Knapsack: change encoding; add simpler class for tests
6 years ago
Alinson S. Xavier 1986effcd5 Update MSS results
6 years ago
Alinson S. Xavier 9239c4eb82 LearningSolver: add more constructor options; perform fit in parallel
6 years ago
Alinson S. Xavier 1300a73bc2 WarmStart: save trained predictors; update defaults
6 years ago
Alinson S. Xavier f7f3b7e525 Branching: use variable categories instead of hardcoded indices
6 years ago
Alinson S. Xavier 203537711f Export components and predictors
6 years ago
Alinson S. Xavier ccfcbe4e64 Unify API for challenges
6 years ago
Alinson S. Xavier 82dfe20001 Do not collect training data during benchmarks
6 years ago
Alinson S. Xavier 2679522b76 Merge components more efficiently
6 years ago
Alinson S. Xavier 46e19eed1b Knapsack: minor correction to docs; update docstrings
6 years ago
Alinson S. Xavier c1ede58fbe Adjust knapsack challenge; introduce round option
6 years ago
Alinson S. Xavier 2692e6946a Disable BranchPriorityComponent by default
6 years ago
Alinson S. Xavier 354d0ac541 Branching: read priorities as float
6 years ago
Alinson S. Xavier 46298db097 Fix docstrings regarding variables that should not be predicted
6 years ago
Alinson S. Xavier 25ba23a58d Minor updates to knapsack docs; add challenge
6 years ago
Alinson S. Xavier a3309aa4b2 PerVariableTransformer: ignore variables with None category
6 years ago
Alinson S. Xavier 8fe9ff1cd8 Knapsack: add fix_w and w_jitter
6 years ago
Alinson S. Xavier a9776715f4 Implement MultiKnapsackGenerator and MultiKnapsackInstance
6 years ago
Alinson S. Xavier 1e0a1d48db Fix test_solver.py
6 years ago
Alinson S. Xavier 94bcaa4a10 Remove unused parameters
6 years ago
Alinson S. Xavier b48dfad3aa Minor changes
6 years ago
Alinson S. Xavier 6a29411df3 Modularize LearningSolver into components; implement branch-priority
6 years ago
Alinson S. Xavier f7d20ed52b Add customizable branch priority; add more metrics to BenchmarkRunner
6 years ago
Alinson S. Xavier 68191837a9 Make package work with persistent solvers; update README.md
6 years ago
Alinson S. Xavier 228d41fb6b Switch to Gurobi by default
6 years ago
Alinson S. Xavier 3c9b1e2f44 Improve stable set generator
6 years ago
Alinson S. Xavier 3644c59101 BenchmarkRunner: save and load results
6 years ago
Alinson S. Xavier 8f141e6a9d Implement BenchmarkRunner
6 years ago
Alinson S. Xavier fa847f76ec LearningSolver: add method for solving training instances in parallel
6 years ago
Alinson S. Xavier 5817f273e9 Implement solver.save and solver.load; update README
6 years ago
Alinson S. Xavier 480da41fa9 Implement KnnWarmStartPredictor; make it the default method
6 years ago
Alinson S. Xavier 35218d4893 Update README and copyright notice; rename heuristic mode
6 years ago
Alinson S. Xavier 3bb6e61e82 LearningSolver: add fix_variables option; simplify ws_predictor option
6 years ago
Alinson S. Xavier 077d5326bc Add Maximum-Weight Stable Set Problem
6 years ago
Alinson S. Xavier e96f678518 LearningSolver: Flip warmstart labels
6 years ago
Alinson S. Xavier eb9a677136 Implement LogisticWarmStartPredicitor with tests
6 years ago
Alinson S. Xavier e13eba86b0 Make LearningSolver work with persistent solvers
6 years ago
Alinson S. Xavier f538356bf6 Temporarily remove unused files; make package work with Cbc
6 years ago
Alinson S. Xavier e4526bc724 Add PerVariableTransformer
6 years ago
Alinson S. Xavier 3ef1733334 Initial version
6 years ago