国足踢进世界杯 / 2025-05-10 05:03:32

参考:https://wenku.baidu.com/view/d6c2ec8502d276a200292ef0.html

一、引入

对于最大值问题:

矩阵形式为:

对于m个约束条件、n个决策变量,选取m个初始基变量

x

i

x_{i}

xi​,得到初始基可行解

(

0

,

.

.

.

,

0

,

b

1

,

b

2

,

.

.

.

,

b

m

)

T

(0,...,0,b1,b2,...,bm)^T

(0,...,0,b1,b2,...,bm)T,以及初始单纯形表。对所得的初始单纯形表,计算

σ

j

{\sigma}_j

σj​,其中

σ

j

=

c

j

z

j

\sigma _j = c_j - z_j

σj​=cj​−zj​,寻找最大的整数

σ

j

\sigma _j

σj​,将该列所对应的变量

x

j

x_j

xj​入基,该列最大的数所对应的行

x

i

x_{i}

xi​ 出基。

二、示例

本文以如下公式为例:

故初始基变量:

(

x

4

,

x

5

,

x

6

)

T

(x_4, x_5, x_6)^T

(x4​,x5​,x6​)T,因为在约束条件所对应的系数矩阵中,

x

4

,

x

5

,

x

6

x_4, x_5, x_6

x4​,x5​,x6​对应的系数向量线性无关。

故初始基可行解为:

(

0

,

0

,

0

,

10

,

8

,

4

)

(0, 0, 0, 10, 8, 4)

(0,0,0,10,8,4)

初始单纯性表:

替换基变量步骤:

1、找出最大的正数检验数

σ

j

\sigma _j

σj​,即第2列数字2;

2、找最小正数

b

x

j

=

m

i

n

{

10

1

,

4

2

}

\frac{b}{x_j} = min\{\frac{10}{1}, \frac{4}{2}\}

xj​b​=min{110​,24​} 所在行,即基变量

x

6

x_6

x6​ 出基,

x

2

x_2

x2​ 入基,得到新的基变量

(

x

4

,

x

5

,

x

2

)

T

(x_4, x_5, x_2)^T

(x4​,x5​,x2​)T,以及新的可行解:

(

0

,

2

,

0

,

8

,

10

,

0

)

(0, 2, 0, 8, 10, 0)

(0,2,0,8,10,0);

3、进行初等行变换,使

x

2

x_2

x2​ 所在的列变换到

x

6

x_6

x6​ 所在的列的形式,得到新的单纯形表:

同理:

x

3

x_3

x3​ 进基变量,

x

5

x_5

x5​ 出基变量,得到新的单纯性表:

至此,可以求得最优解:

(

0

,

12

,

5

,

8

,

0

,

0

)

T

(0, 12, 5, 8, 0, 0)^T

(0,12,5,8,0,0)T,最大值

z

=

19

z=-19

z=−19.

三、检验数

如上文,对于线性规划问题,若满足约束条件组成的可行域有界,则目标函数的最优解必定在可行域的顶点上。

当选取了一定的基变量时,如上文的

(

x

4

,

x

5

,

x

6

)

T

(x_4, x_5, x_6)^T

(x4​,x5​,x6​)T ,

x

1

,

x

2

,

x

3

x_1, x_2, x_3

x1​,x2​,x3​为0,则当前的目标函数值:

z

0

=

x

1

+

2

x

2

x

3

+

0

x

4

+

0

x

5

+

0

x

6

z_0 = - x_1+2x_2-x_3+0x_4+ 0x_5+0x_6

z0​=−x1​+2x2​−x3​+0x4​+0x5​+0x6​。

x

1

,

x

2

,

x

3

x_1, x_2, x_3

x1​,x2​,x3​中的非基变量值

x

i

x_i

xi​ 一旦增加,如上,最开始可行解确定好后,增加

x

2

x_2

x2​ 的值,

x

4

,

x

5

,

x

6

x_4, x_5, x_6

x4​,x5​,x6​的值必定可以减少,而

x

2

x_2

x2​ 的系数

c

2

=

2

>

0

c_2 = 2>0

c2​=2>0 ,显然目标函数值z增加了,故目标函数值

z

0

z_0

z0​ 不是最优解。

而对于检验数的确定:

z

=

c

1

x

1

+

c

2

x

2

+

.

.

.

+

c

n

x

n

z = c_1 x_1 + c_2 x_2 + ... + c_n x_n

z=c1​x1​+c2​x2​+...+cn​xn​,若

(

x

1

,

x

2

,

.

.

.

,

x

m

)

T

(x_1, x_2, ..., x_m)^T

(x1​,x2​,...,xm​)T 为基变量【对应上例题中的初始基变量

(

x

4

,

x

5

,

x

6

)

T

(x_4, x_5, x_6)^T

(x4​,x5​,x6​)T】,则

(

x

m

+

1

,

x

m

+

2

,

.

.

.

,

x

n

)

T

(x_{m+1}, x_{m+2}, ..., x_n)^T

(xm+1​,xm+2​,...,xn​)T 为非基变量【对应上例题中的初始基变量

(

x

1

,

x

2

,

x

3

)

T

(x_1, x_2, x_3)^T

(x1​,x2​,x3​)T】。显然,基变量根据约束条件可以使用非基变量表示出来,本文继续以上例题为例:

x

4

=

10

(

x

1

+

x

2

2

x

3

)

x

5

=

8

(

2

x

1

x

2

+

4

x

3

)

x

6

=

4

(

x

1

+

2

x

2

4

x

3

)

x_4 = 10 - (x_1 + x_2 -2x_3) \\ x_5 = 8 -(2x_1 - x_2 + 4x_3) \\ x_6 = 4 - (-x_1 + 2x_2 - 4x_3)

x4​=10−(x1​+x2​−2x3​)x5​=8−(2x1​−x2​+4x3​)x6​=4−(−x1​+2x2​−4x3​) 带入目标函数:

z

=

x

1

+

2

x

2

x

3

+

0

(

10

(

x

1

+

x

2

2

x

3

)

)

+

0

(

8

(

2

x

1

x

2

+

4

x

3

)

)

+

0

(

4

(

x

1

+

2

x

2

4

x

3

)

)

z = - x_1+2x_2-x_3+0 * (10 - (x_1 + x_2 -2x_3))+ 0*(8 -(2x_1 - x_2 + 4x_3)) +0*(4 - (-x_1 + 2x_2 - 4x_3))

z=−x1​+2x2​−x3​+0∗(10−(x1​+x2​−2x3​))+0∗(8−(2x1​−x2​+4x3​))+0∗(4−(−x1​+2x2​−4x3​))

化为一般式:

z

=

(

c

m

+

1

(

Σ

i

=

1

m

c

i

c

i

(

m

+

1

)

)

)

x

m

+

1

+

(

c

m

+

2

(

Σ

i

=

1

m

c

i

c

i

(

m

+

2

)

)

)

x

m

+

2

+

.

.

.

+

(

c

n

(

Σ

i

=

1

m

c

i

c

i

n

)

)

x

n

+

Σ

i

=

1

m

b

i

z = (c_{m+1} - (\Sigma _{i=1} ^m ci*c_{i(m+1)})) x_{m+1} + (c_{m+2}-(\Sigma _{i=1} ^m ci*c_{i(m+2)})) x_{m+2} + ... + (c_n-(\Sigma _{i=1} ^m ci*c_{in})) x_n + \Sigma _{i=1} ^m b_i

z=(cm+1​−(Σi=1m​ci∗ci(m+1)​))xm+1​+(cm+2​−(Σi=1m​ci∗ci(m+2)​))xm+2​+...+(cn​−(Σi=1m​ci∗cin​))xn​+Σi=1m​bi​ 从上式可以看出,对任意非基变量,其消除基变量后的系数若为正数,其数值越大,目标函数

z

z

z 的取值将越大。以此作为检验数。 对于本文初始目标函数:

c

i

=

0.

(

i

=

3

,

4

,

5

)

c_i = 0. (i=3,4,5)

ci​=0.(i=3,4,5) ,故初始检验数

σ

j

=

c

j

\sigma_j = c_j

σj​=cj​ 。发现

x

2

x_2

x2​的检验数为2,对目标函数的更新变化最大。

以上显然未考虑

x

i

(

i

=

1

,

.

.

.

m

)

x_i(i=1,...m)

xi​(i=1,...m) 在约束条件中系数不为1的情况。若将其考虑,则同样可得只含有非基变量的新的目标函数。同理,将检验数最大的非基变量换出,如上,换出

x

2

x_2

x2​,那换入哪一个非基变量呢?

如上文例子,若换出

x

2

x_2

x2​ ,即用其他变量来表示

x

2

x_2

x2​,但是其在约束条件中拥有两个正系数1和2,换出后,需要将系数转移到右边,即使用

b

\frac{b}{系数}

系数b​,此时换出一个

b

\frac{b}{系数}

系数b​ 更小的基变量即可。

托蒂生涯回顾
苹果6s如何关机