12 个版本

0.1.11 2020年10月18日
0.1.10 2020年5月23日
0.1.9 2019年11月22日
0.1.6 2019年10月15日
0.1.3 2019年9月13日

#26 in #线性规划

每月下载 29
用于 slp-cli

MIT 许可证

38KB
939

slp

SolHOP 线性规划求解器。

Crates.io Crates.io Crates.io Docs

目前实现了单纯形法。不久将支持ILP和MIP。

本项目不再维护。

许可证

MIT


lib.rs:

slp 是一个线性规划求解器。

要查看使用文档,请访问 此处

示例

fn main() {
    use slp::*;
    use slp::Rational64;
    use slp::Solution;
    let input = "
        vars x1>=0, x2>=0
        max 2x1+3x2
        subject to
            2x1 +  x2 <= 18,
            6x1 + 5x2 <= 60,
            2x1 + 5x2 <= 40
        ";
    let mut solver = Solver::<Rational64>::new(&input);
    let solution = solver.solve();
    assert_eq!(solution, Solution::Optimal(Rational64::from_integer(28), vec![
        Rational64::from_integer(5),
        Rational64::from_integer(6)
    ]));
    match solution {
        Solution::Infeasible => println!("INFEASIBLE"),
        Solution::Unbounded => println!("UNBOUNDED"),
        Solution::Optimal(obj, model) => {
            println!("OPTIMAL {}", obj);
            print!("SOLUTION");
            for v in model {
                print!(" {}", v);
            }
            println!();
        }
    }
}

依赖项

~6.5MB
~124K SLoC