我想以一种有效的方式在 Prolog 中表示一个可变图。我将在图中搜索子集并用其他子集替换它们。
我已经设法使用数据库作为我的“图形存储”来工作。例如,我有:
:- dynamic step/2.
% step(Type, Name).
:- dynamic sequence/2.
% sequence(Step, NextStep).
retract
然后,我对匹配的子集使用一些规则,并使用assert
. 我真的很喜欢这种方法……它易于阅读和处理,我让 Prolog 完成了很多繁重的模式匹配工作。
我知道的另一种表示图形的方法是使用节点列表和邻接连接。我见过很多网站都使用这种方法,但我有点犹豫,因为它的开销更大。
执行时间对我来说很重要,对我来说易于开发也很重要。
这两种方法的优缺点是什么?