next up previous
    Next: Data Up: Dijkstra's Algorithm Previous: Dijkstra's Algorithm

    LDL++ Source Code

    database( {
        g( From:string, To:string, Cost:integer) 
    }).
    
    d(0, (a, 0)).
    d(I+1, l_c<(Y, C)>) <- d(I, (X, C1)), g(X, Y, C2), C=C1+C2, ~solved(I,Y).
    
    solved(I+1, X) <- solved(I, X).
    solved(I, Y) <- d(I, (Y, _)).
    
    single(l_c, (Y, C), (Y, C)).
    multi(l_c, (Y1, C1), (Y2, C2), (Y2, C2)) <- C2 <C1.
    multi(l_c, (Y1, C1), (Y2, C2), (Y1, C1)) <- C2 >= C1.
    
    export d(I,X).
    


    Haixun Wang
    4/22/1998