object

# `weighted_undirected_graph(Dictionary)`

Weighted undirected graph predicates using a dictionary representation. Each edge is stored in both directions. Edge weights use a pair representation (`Vertex-Weight` in neighbor lists, `(Vertex1-Vertex2)-Weight` for edge lists). The parametric object parameter is the dictionary to use for the graph representation.

Availability:
`logtalk_load(graphs(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-02-20
Compilation flags:
`static, context_switching_calls`
Imports:
`public` weighted_graph_common(Dictionary)
`public` undirected_graph_common
Uses:
list
Remarks:
(none)
Inherited public predicates:
add_edge/5 add_edges/3 add_vertex/3 add_vertices/3 all_pairs_min_paths/2 all_pairs_min_predecessors/2 articulation_points/2 breadth_first_order/3 bridges/2 cycle/2 delete_edge/5 delete_edges/3 delete_vertex/3 delete_vertices/3 depth_first_order/3 edge/4 edges/2 empty/1 graph_coloring/3 has_cycle/1 has_negative_cycle/1 has_path/3 is_bipartite/1 is_complete/1 is_sparse/1 is_tree/1 max_path/5 maximal_cliques/2 maximum_cliques/2 min_distances/3 min_path/5 min_path_bellman_ford/5 min_predecessors/3 neighbors/3 new/1 new/2 new/3 number_of_edges/2 number_of_vertices/2 path/3 reachable/3 vertices/2 wneighbors/3

## Public predicates

### `degree/3`

Returns the degree (number of edges incident to the vertex) of `Vertex` in `Graph`.

Compilation flags:
`static`
Template:
`degree(Vertex,Graph,Degree)`
Mode and number of proofs:
`degree(+vertex,+graph,-integer)` - `zero_or_one`

### `is_connected/1`

True if `Graph` is connected (all vertices are reachable from any vertex).

Compilation flags:
`static`
Template:
`is_connected(Graph)`
Mode and number of proofs:
`is_connected(+graph)` - `zero_or_one`

### `connected_components/2`

Returns the list of connected components (each a list of vertices).

Compilation flags:
`static`
Template:
`connected_components(Graph,Components)`
Mode and number of proofs:
`connected_components(+graph,-list(list))` - `one`

### `min_tree/3`

Constructs a minimum spanning tree and returns its total weight.

Compilation flags:
`static`
Template:
`min_tree(Graph,Tree,Cost)`
Mode and number of proofs:
`min_tree(+graph,-graph,-number)` - `zero_or_one`

### `max_tree/3`

Constructs a maximum spanning tree and returns its total weight.

Compilation flags:
`static`
Template:
`max_tree(Graph,Tree,Cost)`
Mode and number of proofs:
`max_tree(+graph,-graph,-number)` - `zero_or_one`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)