Yog.FSharp
Getting Started Examples API Reference GitHub

Yog Namespace

Modules Description

Centrality

Centrality measures for identifying important nodes in graphs.

Provides degree, closeness, harmonic, betweenness, PageRank, eigenvector, Katz, and alpha centrality measures. All functions return a Map mapping nodes to their centrality scores.

Connectivity

Graph connectivity analysis - finding bridges, articulation points, and strongly connected components.

This module provides algorithms for analyzing the connectivity structure of graphs, identifying critical components whose removal would disconnect the graph.

DisjointSet

Disjoint Set Union (Union-Find) data structure for efficient set operations.

The disjoint-set data structure maintains a partition of elements into disjoint (non-overlapping) sets. It provides near-constant time operations to add elements, find which set an element belongs to, and merge two sets together.

Generators

Graph generators for creating common graph structures and random network models.

This module provides both deterministic and stochastic graph generators, useful for: - Testing graph algorithms with known structures - Modeling real-world networks - Benchmarking and performance analysis - Generating synthetic datasets

Model

Core graph data structures and basic operations for the yog library.

This module defines the fundamental Graph type and provides all basic operations for creating and manipulating graphs. The graph uses an adjacency list representation with dual indexing (both outgoing and incoming edges) for efficient traversal in both directions.

Mst

Minimum Spanning Tree (MST) algorithms for finding optimal network connections.

A Minimum Spanning Tree connects all nodes in a weighted undirected graph with the minimum possible total edge weight. MSTs have applications in network design, clustering, and optimization problems.

Transform

Graph transformations and mappings - functor operations on graphs.

This module provides operations that transform graphs while preserving their structure. These are useful for adapting graph data types, creating derived graphs, and preparing graphs for specific algorithms.

Traversal

Graph traversal algorithms - systematic exploration of graph structure.

This module provides fundamental graph traversal algorithms for visiting nodes in a specific order. Traversals are the foundation for most graph algorithms including pathfinding, connectivity analysis, and cycle detection.