昨天看了一个视频(http://www.tudou.com/programs/view/4QmfLMMBZBg) 讲的就是黏菌 寻找食物时候会构造一个强大的网络。
如下图
通过对黏菌行为的观察。我想通过一个分布式的群体算法来模拟黏菌的行为,来实现最优路径的寻找。
目前实现了简单的行为模拟。 主要有两个方面
1、黏菌的扩张行为。
首先定义了一个生命力值来模拟。在黏菌的位置,生命力是最强的。随着黏菌的扩张,扩张的边缘的生命力会递减。黏菌会不断的扩张。
2、食物的获取
在这里假设,黏菌的扩张部分只能吸收食物,但不能将食物转换成能量。犹如人体一样,只有胃能够消化食物,将食物转换成能量供人体吸收。
假设黏菌的核心才能将食物转换成能量,其他部分只能是吸收传递能量。
那么表现为能量的传输为从生命力低的地方传送到生命力高的地方,也就只有在黏菌的初始位置。
程序模拟
1、黏菌的各个部分只能从其周围的部分获取到信息。也只能与周围的部分进行信息交流,以及食物的传递。
目前只简单的用数组来演示。没有做界面演示。
首先说明下 数组中的含义【生命力,食物含量,食物传送数量统计】
其中黏菌的初始位置在【10,0,0】处,食物防在图中的【0,5000,0】
源代码如下
package main
import (
"fmt"
"sync"
"time"
)
func main() {
for {
select {}
}
}
var m