粒子群密码分析中的解的坐标

时间:2013-07-01 16:09:57

标签: c# optimization particle-swarm

我正在编写一个C#应用程序,它将使用粒子群算法解决单字母替换密码。

基本上我理解这个过程,并找到了更新矢量等所需的所有算法。我无法解决的是如何在问题空间中计算26个字符解决方案的位置/坐标,以便我可以在此处找到的算法中使用它:http://www.codeproject.com/Articles/42258/Particle-swarm-optimization-for-function-optimizat

这个位置只是一个与字母表中字符位置相关的整数数组吗?

任何帮助都会受到大力赞赏。

1 个答案:

答案 0 :(得分:2)

PSO基本上在连续空间中工作。当然,有离散问题的版本,似乎这个问题是离散的。

您已定义了空格。使其与边界连续(0,26)。 现在可以使用粒子位置作为统计分布的均值,或者只是得到值的最低点。 如果你有一些记忆会很好,因为会有很多重复的电话。

接下来是限制。任何字母都不能代替同一个字母。 你可以用多种方式解决它,最简单的就是修复功能: 如果您的算法遇到已经设置的值(因为多个值具有相同的楼层),请将其保留,稍后当您找出仍然可用的字母时返回。

顺便说一句,你也可以使用PSO训练一个人工神经网络,用一种语言中的字母出现统计来解决问题。

希望有所帮助。干杯!