我是VB.Net的初学者。作为我学习的一部分,我正在编写一个名为Tabu Search的迭代算法来解决优化问题。在每次迭代时,更改当前最佳解决方案的一个或多个变量以针对相同问题开发新解决方案。根据此移动所找到的解决方案的质量,我们可能希望在将来的迭代中停止重复它或促进推进它。一个名为禁忌列表的列表记录了到目前为止执行的移动质量的记录,以及应该避免或促进这些移动的未来迭代次数。
我已将禁忌列表定义为字典。我的问题是: 如何在每次迭代时更新字典时保持字典的大小?
假设我想只保留最后30个项目添加到此词典中。因此,当添加项目31时,应将项目1从字典中删除。
这是我的代码的一部分。
公共班级移动
Private mType As String
Private mTarget As DC
Property Type() As String
Get
Return mType
End Get
Set(value As String)
mType = value
End Set
End Property
Property TargetVariable() As VaiableDC
Get
Return mTarget
End Get
Set(value As VaiableDC)
mTarget = value
End Set
End Property
主要算法的一部分**
Dim MoveTabuDic As New Dictionary(Of Move, UShort)
'****removed steps****
Dim aMove as new Move
'****removed steps****
MoveTabuDic .add(aMove,IterationID)
谢谢!