# 单纯形表-可逆矩阵 **Repository Path**: PC_WXF/operational-research ## Basic Information - **Project Name**: 单纯形表-可逆矩阵 - **Description**: 这是一个关于运筹学的半自动计算程序(您需要在一定程度上会一点Java编程),目前可以计算单纯形表、对偶单纯形表、矩阵的秩,并使用大M法来解决矩阵不满秩的情况 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-05-12 - **Last Updated**: 2023-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 ```java 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()); } } ``` * 计算对偶形表 > 当结果为无界解 / 不可解时,会自动抛出相关异常 ```java 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()); } } ``` * 矩阵相关计算 > 当矩阵不可计算秩 / 行列式时,会自动抛出异常 ```java public class Main { public static void main(String[] args) { Matrix matrix = InteractUtils.loadMatrix("1-1.txt"); matrix.invert(); // 矩阵的秩 matrix.determinant(); // 矩阵的行列式 matrix.transposition(); // 矩阵的转置 } } ``` #### 参与贡献 PC