README.md
operational research
介绍
这是一个关于运筹学的计算程序,目前支持单纯形表以及对偶单纯形表
软件架构
这并非是一个全自动的计算程序,因此您必须对编程有一定的了解。您也不必过于担心,您只需调用几个计算函数,修改几个参数即可完成一个复杂的单纯形表的计算
安装教程
需安装JDK-16
使用说明
- 读取单纯形表
不支持注释,请不要输入额外的内容
min 3 3
1 2 3
-2 1 1 le 9
-3 1 2 ge 4
4 -2 -3 eq -6
le ge no
lt:<, le:<=, eq:=, le:>=, lt:>
- 读取矩阵
不支持注释,请不要输入额外的内容
3 3
7 -3 -3
-1 1 0
-1 0 1
- 计算单纯形表
当结果为无界解 / 不可解时,会自动抛出相关异常 不可解:UNS,无界解:UNB
public class Main
{
public static void main(String[] args)
{
Table table = InteractUtils.loadTable("0.txt");
Result result = table.result();
System.out.println("解的类型是:" + result.type());
if (result.type() == Type.INF || result.type() == Type.UNI) // 若为无穷多最优解 / 唯一最优解
System.out.println("解的结果是:" + result.ans());
}
}
- 计算对偶形表
当结果为无界解 / 不可解时,会自动抛出相关异常
public class Main
{
public static void main(String[] args)
{
Table table = InteractUtils.loadTable("0.txt");
Result result = table.dual().result();
System.out.println("解的类型是:" + result.type());
if (result.type() == Type.INF || result.type() == Type.UNI) // 若为无穷多最优解 / 唯一最优解
System.out.println("解的结果是:" + result.ans());
}
}
- 矩阵相关计算
当矩阵不可计算秩 / 行列式时,会自动抛出异常
public class Main
{
public static void main(String[] args)
{
Matrix matrix = InteractUtils.loadMatrix("1-1.txt");
matrix.invert(); // 矩阵的秩
matrix.determinant(); // 矩阵的行列式
matrix.transposition(); // 矩阵的转置
}
}
参与贡献
PC