Commit Graph

51 Commits

Author SHA1 Message Date
Mizux Seiha
8bb54b04ef Bump Copyright to 2021
FYI:
find ortools \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/\(Copyright 2010\)-2018/\1-2021/g'
2021-04-01 21:00:53 +02:00
Corentin Le Molgat
9662b630d6 python: Fix linear_solver.i wrapper 2021-04-01 16:39:12 +02:00
Laurent Perron
3779db1f83 deep rewrite of the gurobi loading code 2021-03-19 16:24:35 +01:00
Laurent Perron
6e15467065 linear solver: int64 -> int64_t; use new CP-SAT logging 2021-03-12 16:59:39 +01:00
Laurent Perron
c55f00b7ed improve StopSearch() robustness 2021-01-08 09:48:52 +01:00
Laurent Perron
bcb7b3073d large synchro with internal code: linear solver: introduce intermediate SCIP layer called gscip; sat: more work on slow propagation detection; base: remove statusor, use abseil version; constraint solver: more work on internal local search 2020-10-18 16:38:25 +02:00
Mizux Seiha
dbb878aa36 python: Fix LoadSolutionFromProto leak (Fix #2190) 2020-10-08 13:51:47 +02:00
Laurent Perron
23aeaf6072 fix #2094 2020-07-06 11:53:52 +02:00
Laurent Perron
f0f675debd remove non C++ leaks with the linear solver 2020-06-25 11:15:19 +02:00
Laurent Perron
a8fc48e1fd polish linear solver backend selection code 2020-06-25 10:32:58 +02:00
Laurent Perron
d6ecea46ad experimental support for dynamic loading of gurobi; add MPSolver.CreateSolver() factory method for non C++ languages to check correctly installed linear solver backends and licenses when needed; port all non C++ examples 2020-06-24 18:11:12 +02:00
Mizux Seiha
90a3155af1 cmake(python): Fix module update 2020-05-20 18:46:57 +02:00
Mizux Seiha
775aec03dd cmake(python): Refactor
* Use new Python module
* Use setup.py.in input file (should fix windows error)
2020-05-20 10:13:14 +02:00
Corentin Le Molgat
22356ff523 Sync g3 -> gh part_2 2020-03-09 18:34:21 +01:00
Corentin Le Molgat
f2981e11c3 CMake:python: Add missing definition for swig 2020-03-05 13:04:08 +01:00
Corentin Le Molgat
4c7456b175 CMake: Update Python support
* Add define SWIGWORDSIZE64 on Linux
* Add -doxygen option
* add ortools/util/python
* Move python generated stuff to BINARY_DIR/python
* Bump CMake >= 3.14 as requirement
  * SWIG module rework from 3.9 to 3.14
  * Python module rework in 3.12
* Drop Python 2.7 support (like in Makefile)
* Fix clean target
  * OUTPUT/BYPRODUCTS path are relative to CURRENT_BINARY_DIR not WORKING_DIR
* Fix ortools package install in virtualenv
* Clean target now remove the <build>/venv directory
2020-02-28 08:21:27 +01:00
Laurent Perron
2ff000ab9a bump abseil to the latest version, adapt the code all around 2019-11-20 14:28:11 -08:00
Laurent Perron
bc43e37c90 add sat inferface to the linear solver wrapper 2019-10-18 14:39:51 +02:00
Laurent Perron
439cebb9c8 polish xpress support 2019-09-04 15:20:45 +02:00
Laurent Perron
d216e3caab remove obsolete unignore 2019-07-18 11:36:10 -07:00
Laurent Perron
8152464418 document more linear solver code 2019-07-17 07:08:02 -07:00
Laurent Perron
ef8be0d86e polish doc 2019-07-16 10:13:02 -07:00
Laurent Perron
afc4ad1214 simplify python vector swig 2019-07-05 09:32:43 +02:00
Laurent Perron
e6ff7153aa polish new linear_solver non C++ API 2019-07-01 14:13:15 +02:00
Laurent Perron
d4c088a367 test linear solver constraints(), variables(), and SetHint in Python/Java/C# 2019-07-01 13:41:17 +02:00
Laurent Perron
92891ceb01 implement #506 2019-06-29 17:20:42 +02:00
Laurent Perron
8d492a7dfc fix and test SetHint for linear_solver/Python 2019-06-29 15:54:26 +02:00
Laurent Perron
8a4ae8bff0 working SetNumTheads in Python/Java/C#; Working SetHint in java/C# 2019-06-29 12:35:15 +02:00
Laurent Perron
8ade2b9209 revert useless previous CL 2019-06-24 15:43:03 +02:00
Laurent Perron
c5554f6ea7 fix #1374 2019-06-24 11:25:24 +02:00
Laurent Perron
342d703d18 wrap linear solver proto APIs in python 2019-05-17 14:02:59 +02:00
Laurent Perron
dbef2bb42f expose SetNumThreads in python 2019-05-16 08:12:33 +02:00
Corentin Le Molgat
361df3bab6 Expose SetUB and SetLB methods on MPVariables in python. 2019-05-14 11:24:32 +02:00
Laurent Perron
aeec2312d7 fix missing export methods in python 2019-05-10 14:23:28 +02:00
Laurent Perron
2a4fc564b4 add constraint with index in linear solver (API + Proto); rewrite MPS reader/writer; update base library as needed 2019-04-18 19:18:48 +02:00
Laurent Perron
fedf3d4ff4 revamp and simplify swig support, force typed enums for C# and Java for all except the constraint_solver/routing module; port examples; Fix SAT on very large problems 2018-12-11 17:03:03 +01:00
Laurent Perron
1e59a36509 reduce swig complexity 2018-12-11 11:52:50 +01:00
Laurent Perron
589047ce90 python support int64 -> int64_t 2018-12-10 13:35:41 +01:00
Corentin Le Molgat
47fefdc3bb Remove tab from CMakeLists.txt
- Mandatory to follow google internal convention
2018-11-13 10:12:02 +01:00
Laurent Perron
87b9d55b21 update license headers 2018-11-10 18:00:53 +01:00
Laurent Perron
7a1889bb1f make name -> var or constraint optional in linear solver 2018-07-24 13:23:58 -07:00
Ying-zong Huang
b400cf8c2f Add exception handling to the solver creation call
This is a very targeted addition, which can be generalized. It
makes the following changes:

1. In the solver creation call of the Gurobi interface, i.e.
the constructor `GurobiInterface::GurobiInterface`, the GLOG
severity level is reduced to `DFATAL`, which becomes `ERROR` in
production. This means errors in calls to `GRBloadenv` no longer
automatically kill the process as a side effect.

2. An `std::runtime_error` exception is raised with the return code
and the error message from GRBloadenv. This replaces the functionality
of exiting the process when this error is unhandled. Additionally,
it enables alternate handling by the caller.

3. In the linear solver SWIG wrapper, exception wrapping is turned
on specifically for the `MPSolver::MPSolver` constructor call and
the `std::runtime_error` that may now occur there. This exception
is re-raised as the corresponding RuntimeError in the target language.

Addresses issue #699.
2018-05-24 21:40:38 -04:00
Corentin Le Molgat
e452a83dc4 Add missing enum to Python MPSolverParameters (Fix #97) 2018-04-27 18:10:59 +02:00
Laurent Perron
a12d754e8f export CPLEX in python 2018-04-03 07:28:26 +02:00
Corentin Le Molgat
19ae1c121c Fix python loader_path 2018-01-22 14:33:20 +01:00
Corentin Le Molgat
6856567eda Rework CMakeLists.txt
Dependencies:
- Add dependencies as subprojects instead of prebuild (aka imported target)
- add zlib project
- Use Cbc as CMake subproject instead of prebuilt
- Add log between each subproject
- Force gflags namespace to gflags

Or-tools:
- Rework python.cmake support
- Fix missing ortool.util in python (#558)
- Try to use static library for ortools::proto
pros: can use target_link_libraries to get includes etc...
cons: lot of symbols undefined since libortools.so will strip everything -_-
- Use add_library(XXX OBJECT) for ortools/*
- fix get version from git when using small depth copy
- Create Install rule for ortools
- Don't create export rules
note: since we use subprojects instead of Imported Target,
ortools export complained against target deps "that is not in the export set."

Update windows support
- add swig project
- Protobuf force the use of /MD instead of /MT
- or-tools use /MD by default
- Add missing ws2_32
- Add missing psapi
- Update windows disable warnings list
- Build Static or-tools on Windows
- fix windows export symbols leak issue

Signed-off-by: Corentin Le Molgat <corentinl@google.com>
2018-01-19 15:03:25 +01:00
Laurent Perron
03fccb4032 improve incrementality of glop when used in the sat solver; change more copyright dates; more documentation on the gate scheduling problem 2017-10-18 11:09:13 +02:00
Amit Prakash Ambasta
553772d03c Removed python build for cleaner patches 2017-05-31 12:00:50 +05:30
Amit Prakash Ambasta
2a12468b93 Added cmake support for C++, initial python build support 2017-05-30 12:02:56 +05:30
Laurent Perron
8c08d72260 replace hash_map and hash_set by unordered_map and unordered_set 2017-04-27 17:34:24 +02:00