我正在解决一个搜索问题,对于这个问题,图的节点自然地被嵌套列表标记。我想使用一些方法(例如,统一成本),为此我需要将成本函数与每个节点相关联。你知道吗
我的直觉是使用一个以节点标签(=嵌套列表)为键的查找表,生成每个键的代价函数值列表。我理解为什么像list这样的不可损坏的对象不能在dict中用作键,例如Lookup table for unhashable in Python。但是节点标签应该是可变的-当我计算节点的邻居时,这是通过对节点标签的操作来完成的。你知道吗
或者,我可以创建一个Node
类,其属性是节点标签。但是,我没有一组最初定义的节点-它会在搜索过程中增长。所以我需要继续从节点列表中提取节点标签列表。你知道吗
现在我倾向于将节点标签从可变类型来回转换为不可变类型,这样我既可以(1)从标签计算节点的邻居,也可以(2)将节点标签用作dict键。但这感觉很脏。有更好的办法吗?你知道吗
虽然你的问题有点难以理解(一个简单图形的具体例子会很好),但你似乎把三个可能不同的概念混为一谈:节点标识、节点标记和节点邻接矩阵/列表。无论是在你的头脑中还是在你的代码中把这些混为一谈,都可能导致糟糕的结果。你知道吗
这可能是一个好主意,以帮助你分开这些。你知道吗
我看不出一个好的理由,为什么你不能在需要的时候创建新的节点,并为它们分配邻接列表(或更新邻接矩阵)。你知道吗
你可能想复习a existing implementation with this class structure。你知道吗
相关问题 更多 >
编程相关推荐