在搜索问题中,我希望一个代理从一个初始位置开始探索一个大的状态空间,并从每个访问的状态开始探索许多选项。我还需要代理记住访问过的状态以及从一个状态到另一个状态的转换有多重要。因此,给定一个类型s(表示state),我需要一个数据结构来存储s->s->integer的许多组合,以记住从当前状态(1st s)到后续状态(2nd s)的转换(integer)有多好。
到目前为止,我使用了像hashmap<s,hashmap<s,integer>>这样的嵌套hashmap,但是我的内存太快用完了。我考虑了一个额外的Map,为每个状态分配一个标识符(hashmap<s,integer>),然后在嵌套的hashmap中使用标识符而不是s,以避免在不同的三元组中的Map中多次出现相同的状态(因为状态c可以从a、b等到达),然而,我不确定这是否有可能在理论和实践上有所改善。
在java中存储这样的三元组,什么是内存有效的方法?在额外的步骤中将状态编码为整数,我能期望任何改进吗?
暂无答案!
目前还没有任何答案,快来回答吧!