All Projects → vagmcs → Optimus

vagmcs / Optimus

Licence: lgpl-3.0
Optimus is a mathematical programming library for Scala.

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Optimus

Gurobi Python
Learning how to use gurobi with python (in chinese)
Stars: ✭ 104 (-12.61%)
Mutual labels:  optimization
Optimviz
Visualize optimization algorithms in MATLAB.
Stars: ✭ 106 (-10.92%)
Mutual labels:  optimization
Optimus
Image conversion and optimization desktop app.
Stars: ✭ 111 (-6.72%)
Mutual labels:  optimization
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-11.76%)
Mutual labels:  optimization
Pg stat kcache
Gather statistics about physical disk access and CPU consumption done by backends.
Stars: ✭ 106 (-10.92%)
Mutual labels:  optimization
Typescript
Algebraic graphs implementation in TypeScript
Stars: ✭ 107 (-10.08%)
Mutual labels:  algebra
Jump.jl
Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
Stars: ✭ 1,383 (+1062.18%)
Mutual labels:  optimization
Particle Swarm Optimization
Learn about particle swarm optimization (PSO) through Python!
Stars: ✭ 117 (-1.68%)
Mutual labels:  optimization
Miniboxing Plugin
Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project:
Stars: ✭ 106 (-10.92%)
Mutual labels:  optimization
Raytracer.jl
Differentiable RayTracing in Julia
Stars: ✭ 110 (-7.56%)
Mutual labels:  optimization
Fast zlib
Heavily optimized zlib compression algorithm
Stars: ✭ 105 (-11.76%)
Mutual labels:  optimization
Strategems.jl
Quantitative systematic trading strategy development and backtesting in Julia
Stars: ✭ 106 (-10.92%)
Mutual labels:  optimization
Adcme.jl
Automatic Differentiation Library for Computational and Mathematical Engineering
Stars: ✭ 106 (-10.92%)
Mutual labels:  optimization
Yabox
Yet another black-box optimization library for Python
Stars: ✭ 103 (-13.45%)
Mutual labels:  optimization
Chocolate
A fully decentralized hyperparameter optimization framework
Stars: ✭ 112 (-5.88%)
Mutual labels:  optimization
Juniper.jl
A JuMP-based Nonlinear Integer Program Solver
Stars: ✭ 103 (-13.45%)
Mutual labels:  optimization
Functionaljava
Functional programming in Java
Stars: ✭ 1,472 (+1136.97%)
Mutual labels:  algebra
Serverless Layers
Serverless.js plugin that implements AWS Lambda Layers which reduces drastically lambda size, warm-up and deployment time.
Stars: ✭ 119 (+0%)
Mutual labels:  optimization
Node Or Tools
Node.js bindings for or-tools vehicle routing problems
Stars: ✭ 115 (-3.36%)
Mutual labels:  optimization
Stanford Cme 102 Ordinary Differential Equations
VIP cheatsheets for Stanford's CME 102 Ordinary Differential Equations for Engineers
Stars: ✭ 109 (-8.4%)
Mutual labels:  algebra

Optimus

Maven Central License: LGPL v3 Build Status javadoc

Optimus is a library for Linear and Quadratic mathematical optimization written in Scala programming language.

License

This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; See the GNU Lesser General Public License v3 for more details.

Features

  1. High level mathematical modeling in Scala using algebraic expressions
  • Linear and quadratic objective and constraint expressions.
  • Higher order expressions cannot be defined or handled by the solvers yet.
  • Addition, subtraction and multiplication operations can be performed on expressions.
  • Expression simplification produces the simpler form of the expression.
  1. Supports various optimization settings by using existing mathematical programming solvers
  • Linear programming (LP)
  • Quadratic programming (QP)
  • Quadratic constraint quadratic programming (QCQP)
  • Mixed integer programming (MIP)
  1. Available solvers:
  • Open source LpSolve can be used for LP and MIP.
  • Open source oJSolver can be used for LP, QP and MIP.
  • Proprietary solver Gurobi can be used for efficiently solving LP, QP, QCQP and MIP.
  • Proprietary solver Mosek can be used for efficiently solving LP, QP, QCQP and MIP.

How to get Optimus

Optimus is published to Maven Central for Scala 2.11, 2.12 and 2.13.

Add the following dependencies to your SBT build file in order to get started:

libraryDependencies ++= Seq(
    "com.github.vagmcs" %% "optimus" % "3.2.4",
    "com.github.vagmcs" %% "optimus-solver-oj" % "3.2.4",
    "com.github.vagmcs" %% "optimus-solver-lp" % "3.2.4"
)

Optionally, you can also add the following extra dependencies for proprietary solvers:

"com.github.vagmcs" %% "optimus-solver-gurobi" % "3.2.4",
"com.github.vagmcs" %% "optimus-solver-mosek" % "3.2.4"

For more information see Building and Linking

Documentation

Contributions

Contributions are welcome, for details see CONTRIBUTING.md.

Reference for Scientific Publications

Please use the following BibTeX entry to cite Optimus in your papers:

@misc{Optimus,
      author = {Evangelos Michelioudakis and Anastasios Skarlatidis},
      title = {Optimus: an open-source mathematical optimization library},
      url = {https://github.com/vagmcs/Optimus}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].