很抱歉,如果之前有人问过这个问题,但我不确定我在寻找什么,而且我缺乏正确构建问题的领域知识,这使得答案很难找到!
无论如何,我正在尝试在 Python 中实现一篇论文中的模拟退火算法(IBM J. Res. Dev., 2001; 45(3/4); 545)。作者给出了他在 C++ 中实现的算法的清晰概述,但是在他的定义结束时,他陈述了以下内容
“为了避免重复和可能昂贵的内存分配,S 和 S* 被实现为单个对象,能够在不利的突变后恢复到其初始状态。”
(S 和 S* 表示正在优化的任何东西的原始状态和阶跃变化状态)。
在以前更天真的版本中,我使用两个列表来保存每个状态,但他的评论似乎表明这种方法内存效率低下。因此,我的问题是:
- 他的评论是 C++ 特定的吗?在 Python 中我可以继续使用列表而不用担心吗?
- 如果我确实需要担心它,我应该使用什么 Python 数据结构?只需定义一个具有原始和变异属性的类以及一个进行变异的方法,还是我还缺少其他东西?
- 我仍然需要这两种状态,那么将其包装在一个类中会改变内存分配方式以使类表示更紧凑吗?