# Resource Allocation

Supported Graph Characteristics
 Unweighted edges Homogeneous vertex types Heterogeneous vertex types

Resource Allocation is used to compute the closeness of nodes based on their shared neighbors. It is computed by the following formula:

${RA(x,y)=\sum _{u\in N(x)\cap N(y)}{\frac {1} {|N(u)|}}}$

Where ${N(u)}$ is the set of nodes adjacent to u.

## Notes

This algorithm ignores edge weights.

## Specifications

``CREATE QUERY tg_resource_allocation(VERTEX v_source VERTEX v_target, SET<STRING> e_type)``

### Parameters

Name Description Data type

`VERTEX v_source`

The first vertex to compare. Provide the vertex ID and type as a tuple: `("id","type")`

N/A

`VERTEX v_target`

The second vertex to compare with the first. Provide the vertex ID and type as a tuple: `("id","type")`

N/A

`SET<STRING> e_type_set`

Edge types to traverse.

(A blank set of strings)

### Output

Returns a closeness value for two input vertices.

### Time complexity

The algorithm has a time complexity of $O(D1 + D2)$, where $D1$ and $D2$ are the degrees of the two vertices.

## Example

Suppose we have the following graph: Dan and Jenny have one shared neighbor `Tom`, who has two neighbors. Running the algorithm between Dan and Jenny with `friendship` edges returns a result of `0.5`.

• Query

• Result

``RUN QUERY resource_allocation (("Jenny", "person"), ("Dan", "person"), ["friendship"])``
``````{
"error": false,
"message": "",
"version": {
"schema": 1,
"edition": "enterprise",
"api": "v2"
},
"results": [{
"@@closeness": 0.5
}]
}``````