Skip to content

Commit

Permalink
Update README.md for JuMP documentation (#138)
Browse files Browse the repository at this point in the history
  • Loading branch information
odow authored May 23, 2023
1 parent 1021c8a commit 22cd65e
Showing 1 changed file with 16 additions and 27 deletions.
43 changes: 16 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,55 @@
# Tulip

[![DOI](https://zenodo.org/badge/131298750.svg)](https://zenodo.org/badge/latestdoi/131298750)
[![](https://github.com/ds4dm/Tulip.jl/workflows/CI/badge.svg?branch=master)](https://github.com/ds4dm/Tulip.jl/actions?query=workflow%3ACI)
[![](https://codecov.io/github/ds4dm/Tulip.jl/coverage.svg?branch=master)](https://codecov.io/github/ds4dm/Tulip.jl?branch=master)

**Documentation** | **Build Status** | **Coverage** |
|:-----------------:|:----------------:|:------------:|
| [![Docs][docs-stable-img]][docs-stable-url] [![Docs-dev][docs-dev-img]][docs-dev-url] | [![Build][build-img]][build-url] | [![Codecov][codecov-img]][codecov-url] |

[docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg
[docs-dev-img]: https://img.shields.io/badge/docs-dev-purple.svg
[docs-stable-url]: https://ds4dm.github.io/Tulip.jl/stable
[docs-dev-url]: https://ds4dm.github.io/Tulip.jl/dev/

[build-img]: https://github.com/ds4dm/Tulip.jl/workflows/CI/badge.svg?branch=master
[build-url]: https://github.com/ds4dm/Tulip.jl/actions?query=workflow%3ACI
[codecov-img]: https://codecov.io/github/ds4dm/Tulip.jl/coverage.svg?branch=master
[codecov-url]: https://codecov.io/github/ds4dm/Tulip.jl?branch=master


## Overview
Tulip is an open-source interior-point solver for linear optimization, written in pure Julia.
[Tulip](https://github.com/ds4dm/Tulip.jl) is an open-source interior-point solver for linear optimization, written in pure Julia.
It implements the homogeneous primal-dual interior-point algorithm with multiple centrality corrections, and therefore handles unbounded and infeasible problems.
Tulip’s main feature is that its algorithmic framework is disentangled from linear algebra implementations.
This allows to seamlessly integrate specialized routines for structured problems.

## License

Tulip is licensed under the [MPL 2.0 license](https://github.com/ds4dm/Tulip.jl/blob/master/LICENSE.md).

## Installation

Just install like any Julia package
Install Tulip using the Julia package manager:

```julia
] add Tulip
import Pkg
Pkg.add("Tulip")
```

## Usage

The recommended way of using Tulip is through [JuMP](https://github.com/jump-dev/JuMP.jl) and/or [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl) (MOI).
The recommended way of using Tulip is through [JuMP](https://github.com/jump-dev/JuMP.jl) or [MathOptInterface](https://github.com/jump-dev/MathOptInterface.jl) (MOI).

The low-level interface is still under development and is likely change in the future.
The MOI interface is more stable.

### Using with JuMP

Tulip follows the syntax convention `PackageName.Optimizer`:

```julia
using JuMP
import Tulip

model = Model(Tulip.Optimizer)
```

Linear objectives, linear constraints and lower/upper bounds on variables are supported.

### Using with MOI

The type `Tulip.Optimizer` is parametrized by the model's arithmetic, e.g., `Float64` or `BigFloat`.
The type `Tulip.Optimizer` is parametrized by the model's arithmetic, for example, `Float64` or `BigFloat`.
This allows to solve problem in higher numerical precision.
See the documentation for more details.

```julia
import MathOptInterface
MOI = MathOptInterface
import MathOptInterface as MOI
import Tulip

model = Tulip.Optimizer{Float64}() # Create a model in Float64 precision
model = Tulip.Optimizer() # Defaults to the above call
model = Tulip.Optimizer{BigFloat}() # Create a model in BigFloat precision
Expand All @@ -70,7 +59,7 @@ model = Tulip.Optimizer{BigFloat}() # Create a model in BigFloat precision

### Setting parameters

When using Tulip through JuMP/MOI, parameters can be set either through MOI's generic `OptimizerAttribute`s, e.g., `MOI.TimeLimitSec` and `MOI.Silent`, or by name.
When using Tulip through JuMP/MOI, parameters can be set either through MOI's generic `OptimizerAttribute`s, for example, `MOI.TimeLimitSec` and `MOI.Silent`, or by name.

* Through JuMP
```julia
Expand Down Expand Up @@ -99,7 +88,7 @@ See the [documentation](https://ds4dm.github.io/Tulip.jl/stable/reference/option

## Command-line executable

See [app building instructions](app/README.md).
See [app building instructions](https://github.com/ds4dm/Tulip.jl/blob/master/app/README.md).

## Citing `Tulip.jl`

Expand Down

0 comments on commit 22cd65e

Please sign in to comment.