0.1.0 2019年11月22日

#30 in #线性规划

MIT 许可证

8KB
77

slp-cli

SolHOP 线性规划求解器。

Crates.io Crates.io Crates.io

目前,已实现了单纯形法。很快将支持ILP和MIP。

此项目仍在开发中。在第一个稳定版本v1.0.0发布之前,API可能会有很大变化。

安装和运行

安装

cargo install slp-cli

帮助

$ slp --help
slp 0.1.0
SolHOP Linear Programming Solver

USAGE:
    slp [FLAGS] <file>

FLAGS:
    -h, --help        Prints help information
    -p, --parallel    Enable data parallelism
    -r, --rat64       Use Rational64
    -V, --version     Prints version information

ARGS:
    <file>    Input file

用法

slp input.txt

其中 input.txt 包含要解决的LP实例。

如果没有提供文件,则从 stdin 获取输入。

要启用数据并行性,请使用 -p 标志。

slp input.txt -p

示例

示例 1

输入

vars       x1>=0, x2>=0
max        2x1 + 3x2
subject to 2x1 +  x2 <= 18,
           6x1 + 5x2 <= 60,
           2x1 + 5x2 <= 40

输出

OPTIMAL 28
SOLUTION 5 6

表示目标值为 28,解为 x1 = 5, x2 = 6

示例 2

输入

vars       x1>=0, x2>=0
max        2x1 + 3x2
subject to 2x1 +  x2 <= 18,
           6x1 + 5x2 <= 60,
           2x1 + 5x2 <= -40

输出

INFEASIBLE

示例 3

输入

vars x>=0, y>=0
min 6x+3y subject to x+y>=1, 2x-y>=1, 3y<=2

使用命令 slp input.txt 运行的输出

OPTIMAL -5
SOLUTION 0.6666666666666666 0.33333333333333337

要使用Rational64数字,请使用 -r 标志。使用命令 slp -r input.txt 运行的输出

OPTIMAL -5
SOLUTION 2/3 1/3

许可证

MIT

依赖项

~6MB
~110K SLoC