【已知】

在一个屋里有很多桌和一群人

如果一桌坐3个人,就多2个人

如果一桌坐5个人,就多4个人

如果一桌坐7个人,就多6个人

如果一桌坐9个人,就多8个人

如果一桌坐11个人,就正好

【请问】

这个屋里有多少人

1求解方法:演化

■ 数据准备

我们先将案例抽象出来,其中Mod是求余数的函数,不明白函数用法见文末延伸阅读。

excel怎么弄出规划求解(3个求解方法引擎)(1)

如此,数据我们先准备好了。

excel怎么弄出规划求解(3个求解方法引擎)(2)

■ 规划求解参数准备

大家先看看这么设置对不对。

excel怎么弄出规划求解(3个求解方法引擎)(3)

■ 规划求解的求解方法

找不到有用解的原因是我们设定的求解方法为“非线性 GRG”,而他是用来处理光滑非线性规划问题的。

数学中所谓“光滑”即为连续,而Mod( )显然不是连续曲线,所以此案例我们要用“演化”求解方法。

excel怎么弄出规划求解(3个求解方法引擎)(4)

(规划求解中的帮助介绍图)

excel怎么弄出规划求解(3个求解方法引擎)(5)

(官网机器翻译的帮助材料介绍)

使用演化求解方法必须要提供变量的上下界限,否则会报错。所以我们在遵守约束中增加D2>=0、D2<=10000(当然如果这道题在1万以内数据找不到值,我们要进一步放开变量界限),如下。

目标:D2 到 最小值

可改变单元格:D2

遵守约束

B2:B6 = C2:C6

D2 = 整数

D2 >= 0

D2 <= 10000

求解方法:演化

excel怎么弄出规划求解(3个求解方法引擎)(6)

稍等1分钟,返回一个近似值2519满足我们需求。

excel怎么弄出规划求解(3个求解方法引擎)(7)

2求解方法:线性规划&GRG

实际操作的同学会发现,上面案例用演化求解的值大约近1分钟,有没快一点的方法呢?

■ 数据准备

D2设置公式 =A2*B2 C2 并填充至D6。

excel怎么弄出规划求解(3个求解方法引擎)(8)

■ 规划求解参数准备

目标:D2 到 最小值

可改变单元格:B2:B6

遵守约束

B2:B6 = 整数

D2 = D3

D3 = D4

D4 = D5

D5 = D6

求解方法:单纯线性规划

excel怎么弄出规划求解(3个求解方法引擎)(9)

点击“求解”,大约1秒钟就显示找到一解。

excel怎么弄出规划求解(3个求解方法引擎)(10)

由于公式=A2*B2 C2是线性函数,故我们选择了单纯线性规划求解方法。当然,线性函数也是光滑函数,所以使用非线性GRG求解方法也能求得,但运算速度较慢。

End.

运行人员:中国统计网小编(itongjilove)

微博ID:中国统计网

中国统计网,是国内最早的大数据学习网站,公众号:中国统计网

//www.itongji.cn

,