作者lovewa (On my way)
看板comm_and_RF
标题Re: [问题] 用基因演算法演化不定长度的码
时间Thu Jan 16 17:51:51 2014
※ 引述《mrporing (波利先生)》之铭言:
: 基因演算法中,通常我的一群染色体都是长度一样的,不过现在我有碰到个问题是
: 我想演化可能不同长度的染色体,这个在基因演算法有方法实做吗,谢谢。
: 我的问题描述是:
: 不用十进位跟二进位去互相转换算fitness function,我基本上就是产生一组乱数
: 的二位元矩阵,里面的长度可能不尽相同,如
: A=[0 1 1 0 ; 1 0 0 ; 1 1 ]
: 各有各的发生机率,每一列长度越短的发生机率越大,而且条件还有一个是自己不
: 能是其它码的字首(跟霍夫曼编码一样)
: 当然我的A矩阵可能会很大,所以初始矩阵随机产生的一定不会很好,就必须要透过
: 各种演化去达到我的目的。
我并不是这领域的专家,所以只是说说自己的想法,随便看看就好
在不同长度的状况下,做crossover确实有点奇怪。(mutation倒是还好)
不过如果你只是要"一种做法"而已,倒也不是做不到。
譬如,假设有两个不同长度的码字要交配,令码字表示为A和B,且A的长度>B的长度
在这个情况下,你可以把A前面和B相同长度的部分作调换当作一种crossover的方法
我猜你最後的目的应该是希望能够最小化码字的平均码长吧?
如果是的话,在整个演化的过程,你或许还需要一个机制来调整码长的增减
譬如设定一个机率来做码字的truncation或extension...
整个想起来,设计的空间很大...大到有点不知道怎麽掌控才好...=.="""
--
现代人普遍的现象:
「小学而大遗」、「舍本而逐末」、「以偏而概全」、「因噎而废食」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.74.171
1F:推 mrporing:不同长度的交配我想过,我想就是会利用 1.172.124.233 01/17 00:45
2F:→ mrporing:均等交配来作演化,配合突变来保留最好的 1.172.124.233 01/17 00:47