2885| 22
|
[技术交流] 小练习:20171009 矩阵和 |
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-9 11:53:59
|
显示全部楼层
点评
注意审题!
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-9 19:47:14
|
显示全部楼层
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-9 23:05:20
|
显示全部楼层
点评我很赞同!: 5.0
记得先导入itertools的permutations库
而且穷举的话,你也写得太复杂了,其实只要1行就够了^_^,而且运算时间是你的一半。 maxx = 0; for each in permutations(range(9)): maxx = max(maxx, sum(g[i][each[i]] for i in range(9))); print(maxx);
我很赞同!: 5
穷举的话,是这个样子的,没上1阶几乎就是10倍的运算量,指数级递增。按照你笔记本的运算速度,算出15阶大概1个月左右。 | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 09:41:03
|
显示全部楼层
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 10:34:43
|
显示全部楼层
点评我很赞同!: 5.0
我很赞同!: 5
是要算好久,所以我只列了程序而没有执行,算10x10的矩阵还行,15x15的就太大了。 但是蒙特卡洛算法我知道可以求出某个解,但是怎么确定这个解就是最大值,如果不是全部遍历的话? | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 12:21:06
|
显示全部楼层
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 12:39:29
|
显示全部楼层
点评不,我坚决不同意楼主的看法!: 3.0
不,我坚决不同意楼主的看法!: 3
但是这个假设的前提是这个函数是单调递增或递减才有意义啊。不然最多只能说取得了局部最优解,怎么能证明是全局最优解呢? | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 13:13:15
|
显示全部楼层
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 14:16:44
|
显示全部楼层
点评我很赞同!: 5.0
我很赞同!: 5
去维基百科科普了一下,模拟退火应该是能求出全局最优解的,但是计算复杂度也不小。蒙特卡洛不能保证能求出全局最优解,但是由于有一定的运气成分(初始随机数),所以可能速度比较快。 | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-10 15:31:55
|
显示全部楼层
| ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-13 22:21:03
|
显示全部楼层
点评不,我坚决不同意楼主的看法!: 5.0
不,我坚决不同意楼主的看法!: 5
不能只从每行或每列中选择最值。比如[ [4,3], [3,1] ]这个矩阵,按照最值选的话,肯定结果选的是(4,1),而实际(3,3)才是最大值,这说明局部最优解未必是全局最优 | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
发表于 2017-10-15 20:51:28
|
显示全部楼层
点评不,我坚决不同意楼主的看法!: 5.0
不,我坚决不同意楼主的看法!: 5
不能只从每行或每列中选择最值。比如[ [4,3], [3,1] ]这个矩阵,按照最值选的话,肯定结果选的是(4,1),而实际(3,3)才是最大值,这说明局部最优解未必是全局最优 | ||
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
|
||
小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)
GMT+8, 2024-5-4 16:32
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.