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 | 7557 reads
|
Browse archives
Active forum topics
|
Recent comments
9 weeks 5 days ago
14 weeks 9 hours ago
15 weeks 4 days ago
15 weeks 4 days ago
18 weeks 2 days ago
22 weeks 6 days ago
22 weeks 6 days ago
23 weeks 2 days ago
23 weeks 2 days ago
26 weeks 1 day ago