在遗传学和育种中,我们通常有两个亲本基因型(可能相同也可能不同),它们可以以一定的概率产生一组后代(假设简单的孟德尔遗传)。
我正在寻找一种方法来确定给定一组父母,到达特定后代基因型的最短路径是什么(是的,我说的是在动物穿越中繁殖花朵!)。
这似乎与最短路径问题非常相似,但现在边是由两个相互交互的节点给出的。有没有办法做到这一点?
我从堆栈溢出被引导到这里。我原来的帖子是在stackoverflow上。
编辑:基因型是四组两个字符的单词。这些组可以是 xx、Xx 或 XX,其中 x = {r,b,y,w}。例如; RRbbyyWw 是一朵红色的花。
两个父母的后代继承了字母的随机组合。例如,如果亲本 A 的基因型为 RRbbyyWw,而亲本 B 的基因型为 rrBBYyww,那么后代可能是 RRBbyyWw。
如果幸运的是,后代继承了 rRBbyyWw(不允许使用 rR),那么它会被重新排序,从而变成 RrBbyyWw。
现在,问题是;给定一组父母的基因型和目标基因型,是否有一种算法可以生成配对父母的最短路径?
Edit2:我知道其他人进行的数据挖掘(例如here和here。)因此,我不是在寻找特定路径来获得特定结果,而是寻找(最短)路径的方法。