User loginNavigation |
Aggregations (e.g., sets) in Logic ProgramsProlog and its derivatives have lacked adequate ways to compute with aggregations, e.g., sets. For example, suppose there is a ground-complete predicate Link[aNode, anotherNode, aCost] When ⊩ Path[aNode, aNode, aCost]→ // when a goal is set for a cost between aNode and itself ⊢ aCost=0▮ // assert that the cost from a node to itself is 0 The following goal-driven Logic Program works forward from start to find the cost to finish: When ⊩ Path[start, finish, aCost]→ ⊢ aCost=Minimum {nextCost + remainingCost | ⊨ Link[start, next≠start, nextCost], Path[next, finish, remainingCost]}▮ // a cost from start to finish is the minimum of the set of the sum of the // cost for the next node after start and // the cost from that node to finish The following goal-driven Logic Program works backward from finish to find the cost from start: When ⊩ Path[start, finish, aCost]→ ⊢ aCost=Minimum {remainingCost + previousCost |⊨ Link[previous≠finish, finish, previousCost], Path[start, previous, remainingCost]}▮ // the cost from start to finish is the minimum of the set of the sum of the // cost for the previous node before finish and // the cost from start to that Node Note that the above Logic Programs work together concurrently providing information to each other. For more information see Inconsistency Robustness for Logic Programs By Hewitt at 2015-07-28 19:04 | LtU Forum | previous forum topic | next forum topic | other blogs | 7839 reads
|
Browse archives
Active forum topics |
Recent comments
32 weeks 6 days ago
32 weeks 6 days ago
32 weeks 6 days ago
1 year 3 weeks ago
1 year 7 weeks ago
1 year 8 weeks ago
1 year 8 weeks ago
1 year 11 weeks ago
1 year 16 weeks ago
1 year 16 weeks ago