注册 登录
编程论坛 VC++/MFC

用vc实现pbil算法

发布于 2010-04-27 16:39, 652 次点击
pbil(基于人口增量的学习算法)用vc++编程实现
4 回复
#2
cnfarer2010-04-27 18:34
"基于人口增量的学习算法",太笼统了吧?
#3
2010-04-27 20:46
它就是一种进化算法,类似于遗传算法,“基于人口增量的学习算法”是它的中文名字
这是它的基本原理;
设s 为表示解的长度为n 的二进制串, si (1≤i≤n) 是s 的第i 位, 在进化计算中称为第i 个
基因位, 其取值为0 或1。优化问题表示为:
minf (s)   s ∈ 可行的解空间, f 为优化目标函数
  另设P 为PBIL 的学习概率: Pi (1≤i≤n) 是与si 对应位置的学习概率。Pi 表示si 位取1
的概率(1-Pi 表示si 位取0 的概率)。进化学习过程如下:
1) 初始化学习概率P: Pi= 0.5 (1≤i≤n) ;
2) 由学习概率P 指导随机产生k 个个体;
3) 计算由2) 产生的k 个个体的目标函数值;
4) 根据3) 计算的目标函数值找出其中的一个最优解:B ;
5) 用4) 找到的最优解B 修正学习概率P。修正方法如下:
Pi = Pi + (Bi - Pi) × E (E为修正常数, 1 ≤ i ≤ n )
  6) 返回2) 循环, 直至满足一定的结束条件为止。
#4
ciweitou1632010-04-28 14:06
看懂了,不过怎么用算法来实现呢?不懂了。
#5
xuetwins2013-12-25 20:13
想看看是不是要用的
1