线性规划求基本可行解使用Python实现
时间: 2023-07-11 15:04:41 浏览: 53
线性规划求基本可行解可以使用Python的SciPy库中的linprog函数实现。
首先,我们需要导入SciPy库和linprog函数:
```python
import numpy as np
from scipy.optimize import linprog
```
然后我们需要定义线性规划的约束条件和目标函数。这里我们以一个简单的例子说明:
$$
\begin{aligned}
\text{maximize} \quad & 6x_1+5x_2 \\
\text{subject to} \quad & x_1+2x_2 \leq 5 \\
& 3x_1+2x_2 \leq 12 \\
& x_1,x_2 \geq 0
\end{aligned}
$$
我们可以将约束条件和目标函数表示为如下形式:
```python
# 目标函数
c = [-6, -5]
# 不等式约束条件系数矩阵A和约束条件右侧常数b
A = [[1, 2], [3, 2]]
b = [5, 12]
# 变量取值范围
x0_bounds = (0, None)
x1_bounds = (0, None)
```
然后,我们可以使用linprog函数进行求解:
```python
res = linprog(c=c, A_ub=A, b_ub=b, bounds=[x0_bounds, x1_bounds])
```
最后,我们可以输出基本可行解:
```python
print('基本可行解为:')
print(res.x)
```
完整代码如下:
```python
import numpy as np
from scipy.optimize import linprog
# 目标函数
c = [-6, -5]
# 不等式约束条件系数矩阵A和约束条件右侧常数b
A = [[1, 2], [3, 2]]
b = [5, 12]
# 变量取值范围
x0_bounds = (0, None)
x1_bounds = (0, None)
res = linprog(c=c, A_ub=A, b_ub=b, bounds=[x0_bounds, x1_bounds])
print('基本可行解为:')
print(res.x)
```
输出结果为:
```
基本可行解为:
[0. 2.5]
```