shortestPath: Shortest Paths and Weighted Shortest Paths

Description Usage Arguments Value See Also Examples

View source: R/shortestPath.R

Description

Retrieve the shortest path between two nodes.

Usage

1
2
shortestPath(fromNode, relType, toNode, direction = "out", max_depth = 1,
  cost_property = character())

Arguments

fromNode

A node object.

relType

A character string. The relationship type to traverse.

toNode

A node object.

direction

A character string. The relationship direction to traverse; this can be either "in", "out", or "all".

max_depth

An integer. The maximum depth of the path.

cost_property

A character string. If retrieving a weighted shortest path, the name of the relationship property that contains the weights.

Value

A path object.

See Also

allShortestPaths

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
## Not run: 
graph = startGraph("http://localhost:7474/db/data/")
clear(graph)

alice = createNode(graph, "Person", name = "Alice")
bob = createNode(graph, "Person", name = "Bob")
charles = createNode(graph, "Person", name = "Charles")
david = createNode(graph, "Person", name = "David")
elaine = createNode(graph, "Person", name = "Elaine")

r1 = createRel(alice, "KNOWS", bob, weight=1.5)
r2 = createRel(bob, "KNOWS", charles, weight=2)
r3 = createRel(bob, "KNOWS", david, weight=4)
r4 = createRel(charles, "KNOWS", david, weight=1)
r5 = createRel(alice, "KNOWS", elaine, weight=2)
r6 = createRel(elaine, "KNOWS", david, weight=2.5)

# The default max_depth of 1 will not find a path.
# There are no length-1 paths between alice and david.
p = shortestPath(alice, "KNOWS", david)
is.null(p)

# Set the max_depth to 4.
p = shortestPath(alice, "KNOWS", david, max_depth = 4)
p$length
n = nodes(p)
sapply(n, function(x) x$name)

# Setting the direction to "in" and traversing from alice to david will not find a path.
p = shortestPath(alice, "KNOWS", david, direction = "in", max_depth = 4)
is.null(p)

# Setting the direction to "in" and traversing from david to alice will find a path.
p = shortestPath(david, "KNOWS", alice, direction = "in", max_depth = 4)
p$length
n = nodes(p)
sapply(n, function(x) x$name)

# Find the weighted shortest path between Alice and David.
p = shortestPath(alice, "KNOWS", david, cost_property="weight")
p$length
p$weight
nodes(p)

## End(Not run)

RNeo4j documentation built on May 29, 2017, 4:01 p.m.