optimus

Optimus is a mathematical programming library for Scala

License

License

GroupId

GroupId

com.github.vagmcs
ArtifactId

ArtifactId

optimus_2.12
Last Version

Last Version

3.4.1
Release Date

Release Date

Type

Type

jar
Description

Description

optimus
Optimus is a mathematical programming library for Scala
Project URL

Project URL

https://github.com/vagmcs
Project Organization

Project Organization

com.github.vagmcs
Source Code Management

Source Code Management

https://github.com/vagmcs/Optimus

Download optimus_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.vagmcs/optimus_2.12/ -->
<dependency>
    <groupId>com.github.vagmcs</groupId>
    <artifactId>optimus_2.12</artifactId>
    <version>3.4.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.vagmcs/optimus_2.12/
implementation 'com.github.vagmcs:optimus_2.12:3.4.1'
// https://jarcasting.com/artifacts/com.github.vagmcs/optimus_2.12/
implementation ("com.github.vagmcs:optimus_2.12:3.4.1")
'com.github.vagmcs:optimus_2.12:jar:3.4.1'
<dependency org="com.github.vagmcs" name="optimus_2.12" rev="3.4.1">
  <artifact name="optimus_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.vagmcs', module='optimus_2.12', version='3.4.1')
)
libraryDependencies += "com.github.vagmcs" % "optimus_2.12" % "3.4.1"
[com.github.vagmcs/optimus_2.12 "3.4.1"]

Dependencies

compile (6)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.12
ch.qos.logback : logback-classic jar 1.2.3
com.typesafe.scala-logging : scala-logging_2.12 jar 3.9.3
org.scala-lang.modules : scala-xml_2.12 jar 1.3.0
net.sf.trove4j : core jar 3.1.0
com.beachape : enumeratum_2.12 jar 1.6.1

test (3)

Group / Artifact Type Version
org.scalatest : scalatest_2.12 jar 3.2.7
org.scalatestplus : scalacheck-1-15_2.12 jar 3.2.7.0
org.scalacheck : scalacheck_2.12 jar 1.15.3

Project Modules

There are no modules declared in this project.

Optimus

License: LGPL v3 Maven Central Build Status GitHub issues 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 9 can be used for efficiently solving LP, QP, QCQP and MIP.
  • Proprietary solver Mosek 9 can be used for efficiently solving LP, QP, QCQP and MIP.

How to get Optimus

Optimus is published to Maven Central for Scala 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.4.1",
    "com.github.vagmcs" %% "optimus-solver-oj" % "3.4.1",
    "com.github.vagmcs" %% "optimus-solver-lp" % "3.4.1"
)

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

"com.github.vagmcs" %% "optimus-solver-gurobi" % "3.4.1"
"com.github.vagmcs" %% "optimus-solver-mosek" % "3.4.1"

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}
}

Versions

Version
3.4.1
3.4.0
3.2.4
3.2.2
3.2.0
3.1.2
3.1.0
3.0.0
2.1.1
2.1.0