我正在编写有趣的算法编码,以确定构建N个建筑物对象的最佳顺序。当然,每座建筑都有自己的特点(如成本,生产,施工时间......)。基于这些特征,还存在对Building对象的全部排序。以动态编程算法将集合“映射”到状态的数据结构
在我的动态规划中的某个时刻,我需要一个适应的数据结构来检索到目前为止构建k(k < = N)Building所达到的最佳结果。我需要这个数据结构以某种方式“映射”k建筑物的集合(可能排序,因为构建建筑物b1,然后是b2或b2,然后b1使我具有相同的Nk建筑物,但最有可能导致不同的状态)到“最佳状态”到目前为止。
我大概可以使用简单的HashMap,但它意味着重复包含相同元素的大量集合,而不考虑[b1,b2]是[b1,b2,b3,b4]的子集合,例如。
我希望我自己做的,一个足够清楚的,我感谢你的帮助:)
不是100%明确的问题,但可能有一个类BuildingSet可能有用,它可以包含Building和BuildingSet的对象?然后你可以让BuildingSet x = [b1,b2]和BuildingSet y = [x,b3,b4]。 – Cephron 2011-05-28 15:18:57