免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: skybluehacker
打印 上一主题 下一主题

[算法] 请数学系朋友解决算法问题,1000元酬谢!! [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2005-08-11 09:07 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

大家就不要再猜了.
描述就不明确.
即使算出来也象deathbravo   所说的那样.还得考虑加工误差,冲压模具好像还要留边

既然LZ 敢接这个活 必然就有把握的了。 不至于在接之前只想着去论坛问问就能出来算法.

论坛徽章:
0
12 [报告]
发表于 2005-08-11 09:07 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

呵呵,问题答案有没有?我不是做作业的,想一下都知道,中国人的作业不会考一些未知的东西,譬如不会出:“谁能算出圆周率的精确度比当今世界上已经实现的再精确100位?”。

这个是数学问题的现实需求,还有,不能提供帮助的兄弟们不要老是中国式的无端批评与鄙视,当然是楼主本人解决不了的问题才请大家帮忙,这正是我们论坛的目的所在,还有,我也不是乱问,只是这个涉及到数学算法问题,我的确构造设计不出它的解决方案,求这方面有研究的高手指点。

无论如何,还是谢谢大家的帮助!!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2005-08-11 09:09 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

能做就做.不能做就别接.
光靠论坛 就想赚钱. 趁早打消这个念头吧.
gvim 说的没什么不对.

论坛徽章:
0
14 [报告]
发表于 2005-08-11 09:45 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

用matlab吧,偶数学系同学经常做这种题目的说,
遗传算法一用,就可以了..
这也是最优化问题嘛

论坛徽章:
0
15 [报告]
发表于 2005-08-11 09:53 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

按照最复杂的情况考虑,小零件的外形是凹多边形,这样零件分布起来会是犬牙交错的状态,这时候每放置一个新零件要计算它与旁边的零件的每一条边的距离,尽量让零件突出的部位嵌入其他零件的凹陷部位。
我是这样想的;
具体计算起来会有好多问题,一般零件摆放程序都是计算计算外包络的;

论坛徽章:
0
16 [报告]
发表于 2005-08-11 09:58 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

我也赞成用遗传算法,对于这种不好定义算法的问题,用遗传算法最合适了。

论坛徽章:
0
17 [报告]
发表于 2005-08-11 10:21 |只看该作者

请数学系朋友解决算法问题,1000元酬谢!!

matlab,遗传算法,可否详细说一下思路,还有细化过程模块?

主要是我也有研究了一下,但是不得要领,似乎不太好设计
(能力:总是在已经拥有的层面去认识积累出来的,而认知的难易度取决于已有的各种综合能力,我以后搞的共享软件的方向想涉及到图像处理,这一块我将会细化学习研究),但是,目前不知道是否已经拥有的朋友可以花点点心思指导一下


引用相关知识:

matlab遗传算法工具箱函数及实例讲解

gaotv5

核心函数:
(1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数
【输出参数】
pop--生成的初始种群
【输入参数】
num--种群中的个体数目
bounds--代表变量的上下界的矩阵
eevalFN--适应度函数
eevalOps--传递给适应度函数的参数
options--选择编码形式(浮点编码或是二进制编码)[precision F_or_B],如
    precision--变量进行二进制编码时指定的精度
    F_or_B--为1时选择浮点编码,否则为二进制编码,由precision指定精度)

(2)function [x,endPop,bPop,traceInfo] = ga(bounds,evalFN,evalOps,startPop,opts,...
         termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)--遗传算法函数
【输出参数】
    x--求得的最优解
    endPop--最终得到的种群
    bPop--最优种群的一个搜索轨迹
【输入参数】
    bounds--代表变量上下界的矩阵
    evalFN--适应度函数
    evalOps--传递给适应度函数的参数
    startPop-初始种群
    opts[epsilon prob_ops display]--opts(1:2)等同于initializega的options参数,第三个参数控制是否输出,一般为0。如[1e-6 1 0]
    termFN--终止函数的名称,如['maxGenTerm']
    termOps--传递个终止函数的参数,如[100]
    selectFN--选择函数的名称,如['normGeomSelect']
    selectOps--传递个选择函数的参数,如[0.08]
    xOverFNs--交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']
    xOverOps--传递给交叉函数的参数表,如[2 0;2 3;2 0]
    mutFNs--变异函数表,如['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']
    mutOps--传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]

注意】matlab工具箱函数必须放在工作目录下
【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95,变异概率为0.08
【程序清单】
   %编写目标函数
     function[sol,eval]=fitness(sol,options)
       x=sol(1);
       eval=x+10*sin(5*x)+7*cos(4*x);
   %把上述函数存储为fitness.m文件并放在工作目录下
   
   initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
   [x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
     [0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代

运算借过为:x =
   7.8562 24.8553(当x为7.8562时,f(x)取最大值24.8553)

注:遗传算法一般用来取得近似最优解,而不是最优解。
SirFang 该用户已被删除
18 [报告]
发表于 2005-08-11 10:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP