Did you know ... Search Documentation:
Packs (add-ons) for SWI-Prolog

Package "graphpl"

Title:Graph data structure utilities
Rating:Not rated. Create the first rating!
Latest version:0.1.1
SHA1 sum:f9114fbc8a33663a1dda7982946edff2baf5e5e8
Author:Damiano Azzolini <damiano.azzolini@student.unife.it>
Home page:https://github.com/damianoazzolini/graphpl
Download URL:https://github.com/damianoazzolini/graphpl/releases/*.zip

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
0.188d49a7976b643fd2636756174847e2706705a2d1https://github.com/damianoazzolini/graphpl/archive/V0.1.zip
0.1.115d9eb6cde7560175d0816157c2c525de99d6abb1https://github.com/damianoazzolini/graphpl.git
15e488f23a4f4dfbeb4f003ac7225b57d72df0b62https://github.com/damianoazzolini/graphpl.git
20ff1d3aa00f8c302b38f18e0a8c9976a1cde4bc5https://github.com/damianoazzolini/graphpl.git
90e6dbfae1242bb3f9a6f3d968a789c3f6de5b185https://github.com/damianoazzolini/graphpl/archive/V0.1.1.zip
f9114fbc8a33663a1dda7982946edff2baf5e5e82https://github.com/damianoazzolini/graphpl.git

graphpl

Package for SWI prolog to manage graphs.

Basic info

A graph, in this package is represented in this way: graph(ListOfVertices,ListOfEdges) where ListOfVertices is a list of integer and ListOfEdges is a list of predicates edge/2 or edge/3 where edge/2 is used to for unweighted graphs (edge(NodeA,NodeB)) and edge/3 is used for wheighted graphs (edge(NodeA,NodeB,Cost)).

Available Predicates

  • make_undirected_unweighted_graph/2
  • make_undirected_weighted_graph/2
  • make_unweighted_graph/2
  • make_weighted_graph/2
  • find_path_unweighted/4
  • find_path_weighted/5
  • make_kn/2
  • make_kn_weighted/4
  • make_kn_from_vertices/2
  • cycle_unweighted/3
  • cycle_weighted/4
  • is_connected/1
  • node_degree/3
  • node_degree_list/2
  • empty_unweighted_graph/3
  • empty_weighted_graph/3
  • is_graph_node/2
  • is_isolated_node/2
  • is_graph_edge/2
  • get_adjacent_nodes/3
  • graph_reverse_edges/2
  • spanning_tree/2
  • mst_prim/3

Example

:- use_module(library(graph)).

test(G):-
        make_kn(4,G).

?- test(T).
T = graph([1, 2, 3, 4], [edge(1, 2), edge(1, 3), edge(1, 4), edge(2, 3), edge(2, 4), edge(3, 4)]).

Contribution

Feel free to open an issue if you found some problems or pull request if you want to contribute. Feel free also to suggest predicates that could be good to have.

Contents of pack "graphpl"

Pack contains 6 files holding a total of 15.0K bytes.