SciPy
or-tools
Our great sponsors
SciPy | or-tools | |
---|---|---|
50 | 57 | |
12,431 | 10,446 | |
1.7% | 2.0% | |
9.9 | 9.9 | |
6 days ago | about 12 hours ago | |
Python | C++ | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SciPy
-
What Is a Schur Decomposition?
I guess it is a rite of passage to rewrite it. I'm doing it for SciPy too together with Propack in [1]. Somebody already mentioned your repo. Thank you for your efforts.
[1]: https://github.com/scipy/scipy/issues/18566
-
Fortran codes are causing problems
Fortran codes have caused many problems for the Python package Scipy, and some of them are now being rewritten in C: e.g., https://github.com/scipy/scipy/pull/19121. Not only does R have many Fortran codes, there are also many R packages using Fortran codes: https://github.com/r-devel/r-svn, https://github.com/cran?q=&type=&language=fortran&sort=. Modern Fortran is a fine language but most legacy Fortran codes use the F77 style. When I update the R package quantreg, which uses many Fortran codes, I get a lot of warning messages. Not sure how the Fortran codes in the R ecosystem will be dealt with in the future, but they recently caused an issue in R due to the lack of compiler support for Fortran: https://blog.r-project.org/2023/08/23/will-r-work-on-64-bit-arm-windows/index.html. Some renowned packages like glmnet already have their Fortran codes rewritten in C/C++: https://cran.r-project.org/web/packages/glmnet/news/news.html
-
[D] Which BLAS library to choose for apple silicon?
There are several lessons here: a) vanilla conda-forge numpy and scipy versions come with openblas, and it works pretty well, b) do not use netlib unless your matrices are small and you need to do a lot of SVDs, or idek why c) Apple's veclib/accelerate is super fast, but it is also numerically unstable. So much so that the scipy's devs dropped any support of it back in 2018. Like dang. That said, they are apparently are bring it back in, since the 13.3 release of macOS Ventura saw some major improvements in accelerate performance.
-
SciPy: Interested in adopting PRIMA, but little appetite for more Fortran code
First, if you read through that scipy issue (https://github.com/scipy/scipy/issues/18118 ) the author was willing and able to relicense PRIMA under a 3-clause BSD license which is perfectly acceptable for scipy.
For the numerical recipes reference, there is a mention that scipy uses a slightly improved version of Powell's algorithm that is originally due to Forman Acton and presumably published in his popular book on numerical analysis, and that also happens to be described & included in numerical recipes. That is, unless the code scipy uses is copied from numerical recipes, which I presume it isn't, NR having the same algorithm doesn't mean that every other independent implementation of that algorithm falls under NR copyright.
- numerically evaluating wavelets?
- Fortran in SciPy: Get rid of linalg.interpolative Fortran code
-
Optimization Without Using Derivatives
Reading the discussions under a previous thread titled "More Descent, Less Gradient"( https://news.ycombinator.com/item?id=23004026 ), I guess people might be interested in PRIMA ( www.libprima.net ), which provides the reference implementation for Powell's renowned gradient/derivative-free (zeroth-order) optimization methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA.
PRIMA solves general nonlinear optimizaton problems without using derivatives. It implements Powell's solvers in modern Fortran, compling with the Fortran 2008 standard. The implementation is faithful, in the sense of being mathmatically equivalent to Powell's Fortran 77 implementation, but with a better numerical performance. In contrast to the 7939 lines of Fortran 77 code with 244 GOTOs, the new implementation is structured and modularized.
There is a discussion to include the PRIMA solvers into SciPy ( https://github.com/scipy/scipy/issues/18118 ), replacing the buggy and unmaintained Fortran 77 version of COBYLA, and making the other four solvers available to all SciPy users.
- What can I contribute to SciPy (or other) with my pure math skill? I’m pen and paper mathematician
-
Emerging Technologies: Rust in HPC
if that makes your eyes bleed, what do you think about this? https://github.com/scipy/scipy/blob/main/scipy/special/specfun/specfun.f (heh)
- Python
or-tools
-
or-tools VS timefold-solver - a user suggested alternative
2 projects | 4 Jan 2024
-
A* Tricks for Videogame Path Finding
Small NP-hard problems aren't actually that bad. You can usually formulate them as eg a integer programming problem or a SMT problem, and throw an off-the-shelf solver at them.
You only need to learn the solver once, and you can re-use it for all kinds of problems. (Assuming that your instances don't have to be solved with low latency. Eg only as part of your level generation process, or at most when loading a randomly generated level, but not every frame or so.)
https://developers.google.com/optimization has a decent collection of tools.
-
Ask HN: Comment here about whatever you're passionate about at the moment
Just saw that it looks like an upcoming release of OR-Tools might include reified tables: https://github.com/google/or-tools/commit/94f3d9b46870e7ea04...
-
[P] Advice needed for what tool/algorithm is appropriate
Google OR - Tried to represent a solution to be a 5 dimensional matrix with an hour granularity. Dimensions are stations, program, project manager, day and time. If matrix[station][program][project manager][day][time] = 1, then that set is assigned, otherwise not. The main issue encountered here is about time slots, as they are not necessarily on a per hour basis. We tried time slots to be in a 5-minute interval. However, constructing the constraints that would adhere to each programs duration was proven to be difficult.
- What software is used in the field these days?
-
Sudoku solver
If you are just interested in getting a solution or for having a reference solver: There is a sudoku example in the OR-Tools package that uses constraint programming.
- Matrix / 2d Array Puzzle-Like Problem
-
Linear Programming
Not sql, but check out google’s OR-Tools. Hardly ever gets mentioned but looks very capable for some applications. https://developers.google.com/optimization
-
Would anyone know how to auto schedule tasks based on certain constraints?
Then there's also the Google's solution: https://developers.google.com/optimization/
-
Assignment to at most K groups from distance matrix?
start enumerating the properties you think the solution to your problem should have. once you have this, you should be able to reformulate those properties as constraints and then you can just plug this into a combinatorial solver such as https://developers.google.com/optimization
What are some alternatives?
SymPy - A computer algebra system written in pure Python
OptaPlanner - Java Constraint Solver to solve vehicle routing, employee rostering, task assignment, maintenance scheduling, conference scheduling and other planning problems.
statsmodels - Statsmodels: statistical modeling and econometrics in Python
optapy - OptaPy is an AI constraint solver for Python to optimize planning and scheduling problems.
NumPy - The fundamental package for scientific computing with Python.
pyomo - An object-oriented algebraic modeling language in Python for structured optimization problems.
Pandas - Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
optaplanner-quickstarts - Mirror of https://github.com/apache/incubator-kie-optaplanner-quickstarts
astropy - Astronomy and astrophysics core library
SWIG - SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.
PyMC - Bayesian Modeling and Probabilistic Programming in Python
Decider - An Open Source .Net Constraint Programming Solver