首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

有没有会拼图算法的人

2012-02-16 
求助 有没有会拼图算法的人那位大侠会拼图算法。就是把像俄罗斯方块那样的石头块拼满整个屏幕,那样的石头块

求助 有没有会拼图算法的人
那位大侠会拼图算法。就是把像俄罗斯方块那样的石头块   拼满整个屏幕,那样的石头块可能是很不规则的图形。这个算法我用了递归搜索算法但是由于搜索域太大,电脑算不完。现在需要有人帮我想一个优化方案。屏幕是10×10的
石头块有30种不同的形状,每种石头有20个。哪位牛人能给我一点帮助,小弟急求。


[解决办法]
你的题意还不是很清.
我这样理解,30X20共600块石头,从中选取某种组合,要能把10X10的屏幕适好填满.以下为我的思考方案。
遗传算法就是先采用一种随机的方式,建立一组尝试方案的样本,叫一组染色体,用每一个样本去测试看是否能解决问题,同时评价出问题解决的得分,一轮完后如果没有正确的解决方案,则在方案样本中随机(得分高的样本被选中的机率要设高些:适者生存)选两个样本作为父、母杂交后产生两个后代(两个后代按一个比较小的机率进行变异),重复上述过程,直到得到和父本数量一样的一组后代方案样本。再用这组方案去测试,不断重复直到获得正确的解决方案。
在你的问题中就是从600块中选出随机的N个石头组成一条染色体,每个石头相当于一个基因共有30种基因,初期比如随机选出100个有N块石头的组合,建立初始化样本。去测试样本,屏幕填充面积越大的得分越高,杂交一般是从父本母本中各取一半的基因,变异则是某个基因随机的变成30种中的一种基因。
对你的问题可能还要按某些算法进行优化处理,比如获取个体总面积和等于10X10的样本,对这类样本优先保留,它的遗传变异类似于TSP问题。
我也才看这些算法不久,可能说得还不很清,祝你能看明白。

热点排行