代码之家  ›  专栏  ›  技术社区  ›  cala

启发式表转换为prolog facts highlight error

  •  0
  • cala  · 技术社区  · 8 年前

    Node &安培; H(n) 节点值。 prolog 事实?

    error 所有大写字母,即(A,B,C,…) 是否需要将它们改为小写才能为真?

    % Heuristic table
    
    /* Node   H(n)
     *  A     10
     *  B     5
     *  C     4
     *  D     8
     *  E     5
     *  G     0
     *  X     1
     */
    
    %Table as facts
    
    A(10).
    B(5).
    C(4).
    D(8).
    E(5).
    G(0).
    X(1).
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Valera Grishin    8 年前

    首先,事实需要从小写字母开始。

    第二,展示它们的方式取决于你将如何使用它们。 如果每个事实都将按其名称单独调用,则类似于以下内容的操作将起作用:

    a(10).
    b(5).
    c(4).
    d(8).
    e(5).
    g(0).
    x(1).
    

    但是,很可能需要分批处理它们,这意味着要么创建这些事实的列表并按名称指定每个事实,要么使用如下通用事实表单:

    hnode(a,10).
    hnode(b,5).
    hnode(c,4).
    hnode(d,8).
    hnode(e,5).
    hnode(g,0).
    hnode(x,1).
    

    根据您的需要,您可能更喜欢使用字符串而不是原子:

    hnode("A",10).
    hnode("B",5).
    hnode("C",4).
    hnode("C",8).
    hnode("E",5).
    hnode("G",0).
    hnode("X",1).
    
    推荐文章