楼主: tellxc
1207 2

[经济] 请教高手 关于随机算法 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2013-6-28
最后登录
2013-6-28

楼主
tellxc 发表于 2013-6-28 00:13:20 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有如下问题请教:

假设有一个群体,每个个体i的属性值为fi;要抽中其中n%的个体,个体被抽中的概率与f为线性关系。现在要写一个程序实现随机抽取个体,要采用什么样的算法呢?

由于自己概率论和随机过程方面的背景比较欠缺,希望好心人帮忙。非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:请教高手 非常感谢 随机过程 线性关系 概率论 好心人 概率论 程序

沙发
TaskShare 发表于 2013-6-29 19:12:45
我想到个办法(见一下4个步骤),希望能帮到你:
1. 将群体中的所有个体排好顺序(任意顺序,只是不要在后面计算中变化顺序就可以),按下列方式逐个算出一组数据(假设你那个群体中有m个个体)即:S(0)=0, S(1)=f1, S(2)=S(1)+f2, S(3)=S(2)+f3, ... S(m) = S(m-1)+fm,形成m+1个数S(0),...S(m)。
2. 从(0,S(m))的均匀分布中随机取出1个数,设为w;
3. 对于这个w, 找出一个对应的自然数x,x需要满足使s(x-1)<wi<=s(x),那么群体第x个个体就是被抽中的数(注意:如果你的要求群体中每个个体不能被重复抽中,那么你需要在此时判断,这抽中的第x个个体是否已被抽中过,如果没有,抽取这个数的任务完成,可进入第4步;如果已与之前抽到的数重复,就需重新回到第2步重新抽取。如果群体中每个个体可以被重复抽中,那么不必增加上述判断,抽取这个数的任务直接完成,可进入第4步)。
4.重复第2-3步,直到抽中的个体数占到群体个数的n%。
这些个选出来的个体就是你要抽取的个体。(即第i个个体被抽中的概率是fi)

如果,不知道如何实现第3步中的“从(0,S(m))的均匀分布中随机取出1个数”,可以打开EXCEL,在任意格输入函数=RAND()*xx, 这里xx是S(m)的值。如果用VBA编程,调用函数rnd()*xx (xx是S(m)的值)来取。其他软件也都有均匀分布随机数产生函数,不再一一列举。

藤椅
本人傻傻 在职认证  发表于 2013-6-29 23:01:13
你说的这个属于遗传算法中的选择问题,即根据适应度实现个体选择,其中适应度就是个体属性。发给你一个关于一元函数优化的遗传算法程序,你可以在此基础上更改。
多学习~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-26 17:15