VB.NET - 遗传算法 - 背包问题

问题描述 投票:0回答:2

我一直在使用遗传算法研究背包问题。但我遇到了一些困难......

首先,用户生成一个存储在文本文档中的数据集。从那里我将数据读入程序。

我很好地让程序计算健身值,选择父母,生产孩子,然后改变孩子。但由于某些原因,只有在人口较少时才有效。当我的人口较少时,我的计划将不断发展,但当我的人口较多时,我的计划会非常不一致。

例如:当我有大约10-200的人口时,遗传算法运行完美。但是当我到达更高的人口(大约300+)时,我会点击运行并且没有任何反应。然后我重新启动程序并使用相同的精确数据集,程序成功执行。

我不确定我的代码的哪一部分导致问题,所以如果你需要一段示例代码,请告诉我你想要哪部分代码(父选择,加载数据集等)。

非常感谢!

vb.net algorithm genetic-algorithm knapsack-problem
2个回答
2
投票

我想可能有三个原因。

1)代码中的错误

这应该是相对简单的消除。尝试编写一些测试,检查程序的特定部分是否正确运行(例如,父选择等)。尝试对照一些你可以在纸上自己弄清楚的小例子来测试它们。

2)内存不足问题 - 由btreat提到

3)一些算法怪癖

这将更难打。我只是在猜测,所以我可能错了,但是当问题大小超过某个阈值时,我已经看到了大大改变其行为的算法。不太可能,但也不是不可能。在这里你可以看到,如果慢慢增加人口规模,你可以看到运行时间的突然变化。


1
投票

也许程序记忆受到更高人口的限制?

© www.soinside.com 2019 - 2024. All rights reserved.