# YogEx v0.98.0 - Table of Contents

> A comprehensive pure Elixir graph algorithm library

## Pages

- Cheat Sheets
  - [Cheat Sheet](cheat_sheet.md)

- Guides
  - [YogEx 🌳](readme.md)
  - [Examples](examples_readme.md)
  - [Inductive Graphs (Experimental)](functional_readme.md)

- LIVEBOOK
  - [Getting Started](getting_started.md)
  - [Maze Generation](maze_generation.md)
  - [Traversals &amp; Pathfinding](traversals_and_pathfinding.md)
  - [Network Analysis](network_analysis.md)
  - [Network Flow](network_flow.md)
  - [Graph Properties](graph_properties.md)
  - [DAG Analysis](dag_analysis.md)
  - [Graph Gallery](graph_catalog.md)
  - [Customizing Visualizations](customizing_visualizations.md)
  - [Importing &amp; Exporting](import_export.md)
  - [Multigraphs &amp; Collapsing](multigraphs_and_collapsing.md)
  - [Mermaid Complete Guide](mermaid_complete_guide.md)

- Reference
  - [Algorithm Catalog](algorithms.md)
  - [Property-Based Testing Catalog](properties.md)

- Resources
  - [Changelog](changelog.md)

## Modules

- [Yog.Approximate](Yog.Approximate.md): Fast approximation algorithms for expensive graph properties.
- [Yog.Matching](Yog.Matching.md): Graph matching algorithms.

- Core
  - [Yog](Yog.md): Yog - A comprehensive graph algorithm library for Elixir.
  - [Yog.Graph](Yog.Graph.md): Core graph data structure.
  - [Yog.Model](Yog.Model.md): Core graph data structures and basic operations for the yog library.

- Transformers &amp; Operations
  - [Yog.Operation](Yog.Operation.md): Graph operations - Set-theoretic operations, composition, and structural comparison.
  - [Yog.Transform](Yog.Transform.md): Graph transformations and mappings - functor operations on graphs.

- Builder
  - [Yog.Builder.Grid](Yog.Builder.Grid.md): Convenience builder for 2D Grid graphs from nested lists.
  - [Yog.Builder.GridGraph](Yog.Builder.GridGraph.md): Grid graph builder result.
  - [Yog.Builder.Labeled](Yog.Builder.Labeled.md): Build graphs using arbitrary labels instead of integer IDs.
  - [Yog.Builder.Live](Yog.Builder.Live.md): A live builder for incremental graph construction with label-to-ID registry.
  - [Yog.Builder.Toroidal](Yog.Builder.Toroidal.md): Toroidal grid builder - grids where edges wrap around.
  - [Yog.Builder.ToroidalGraph](Yog.Builder.ToroidalGraph.md): A specialized grid graph result for toroidal (wrapping) grids.

- Pathfinding &amp; Traversal
  - [Yog.Pathfinding](Yog.Pathfinding.md): Unified facade for pathfinding algorithms.
  - [Yog.Pathfinding.AStar](Yog.Pathfinding.AStar.md): A* (A-Star) search algorithm for optimal pathfinding with heuristic guidance.
  - [Yog.Pathfinding.BellmanFord](Yog.Pathfinding.BellmanFord.md): Bellman-Ford algorithm for single-source shortest paths with negative weight support.
  - [Yog.Pathfinding.Bidirectional](Yog.Pathfinding.Bidirectional.md): Bidirectional search algorithms that meet in the middle for dramatic speedups.
  - [Yog.Pathfinding.Brandes](Yog.Pathfinding.Brandes.md): Ulrik Brandes' algorithm for betweenness centrality.
  - [Yog.Pathfinding.ChinesePostman](Yog.Pathfinding.ChinesePostman.md): The [Chinese Postman Problem](https://en.wikipedia.org/wiki/Route_inspection_problem)
(also known as the Route Inspection Problem).
  - [Yog.Pathfinding.Dijkstra](Yog.Pathfinding.Dijkstra.md): Dijkstra's algorithm for single-source shortest paths.
  - [Yog.Pathfinding.FloydWarshall](Yog.Pathfinding.FloydWarshall.md): [Floyd-Warshall algorithm](https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm)
for all-pairs shortest paths in weighted graphs.
  - [Yog.Pathfinding.Johnson](Yog.Pathfinding.Johnson.md): [Johnson's algorithm](https://en.wikipedia.org/wiki/Johnson%27s_algorithm) for
all-pairs shortest paths in weighted graphs with negative edge weights.
  - [Yog.Pathfinding.LCA](Yog.Pathfinding.LCA.md): Lowest Common Ancestor (LCA) queries using binary lifting.
  - [Yog.Pathfinding.LCA.State](Yog.Pathfinding.LCA.State.md): Preprocessed state for LCA queries.
  - [Yog.Pathfinding.Matrix](Yog.Pathfinding.Matrix.md): Optimized distance matrix computation for subsets of nodes.
  - [Yog.Pathfinding.Path](Yog.Pathfinding.Path.md): Result of pathfinding algorithms (Dijkstra, A*, BFS, etc.).
  - [Yog.Pathfinding.Yen](Yog.Pathfinding.Yen.md): Yen's algorithm for finding the k shortest loopless paths between two nodes.
  - [Yog.Traversal](Yog.Traversal.md): Graph traversal algorithms - systematic exploration of graph structure.
  - [Yog.Traversal.Implicit](Yog.Traversal.Implicit.md): Implicit graph traversal — BFS, DFS, Best-First, and Random on graphs defined by
successor functions rather than materialized data structures.

  - [Yog.Traversal.Sort](Yog.Traversal.Sort.md): Topological sorting algorithms for directed acyclic graphs (DAGs).
  - [Yog.Traversal.Walk](Yog.Traversal.Walk.md): Graph walking algorithms — BFS, DFS, Best-First, and Random traversals.

- Network Algorithms
  - [Yog.Connectivity](Yog.Connectivity.md): Graph connectivity analysis - finding connected components, bridges, articulation points,
strongly connected components, and k-core decomposition.
  - [Yog.Connectivity.Analysis](Yog.Connectivity.Analysis.md): Algorithms for analyzing graph connectivity (bridges, articulation points).
  - [Yog.Connectivity.Components](Yog.Connectivity.Components.md): Connected components algorithms for undirected and directed graphs.
  - [Yog.Connectivity.KCore](Yog.Connectivity.KCore.md): Algorithms for k-core decomposition.
  - [Yog.Connectivity.Reachability](Yog.Connectivity.Reachability.md): Algorithms for analyzing node reachability in directed and undirected graphs.
  - [Yog.Connectivity.SCC](Yog.Connectivity.SCC.md): Strongly Connected Components (SCC) algorithms.
  - [Yog.Flow.MaxFlow](Yog.Flow.MaxFlow.md): Maximum flow algorithms and min-cut extraction for network flow problems.
  - [Yog.Flow.MaxFlowResult](Yog.Flow.MaxFlowResult.md): Result of maximum flow computation (Edmonds-Karp, etc.).
  - [Yog.Flow.MinCut](Yog.Flow.MinCut.md): Global minimum cut algorithms for undirected graphs.
  - [Yog.Flow.MinCutResult](Yog.Flow.MinCutResult.md): Result of minimum cut computation.
  - [Yog.Flow.SuccessiveShortestPath](Yog.Flow.SuccessiveShortestPath.md): Minimum cost flow algorithms for network flow optimization.
  - [Yog.MST](Yog.MST.md): Minimum Spanning Tree (MST) algorithms for finding optimal network connections.
  - [Yog.MST.Boruvka](Yog.MST.Boruvka.md): Borůvka's algorithm for finding the Minimum Spanning Tree (MST).
  - [Yog.MST.Edmonds](Yog.MST.Edmonds.md): Chu-Liu/Edmonds' algorithm for finding the Minimum Spanning Arborescence (MSA).
  - [Yog.MST.Kruskal](Yog.MST.Kruskal.md): Kruskal's algorithm for finding the Minimum Spanning Tree (MST).
  - [Yog.MST.Prim](Yog.MST.Prim.md): Prim's algorithm for finding the Minimum Spanning Tree (MST).
  - [Yog.MST.Result](Yog.MST.Result.md): Result of a Minimum Spanning Tree computation.
  - [Yog.MST.Wilson](Yog.MST.Wilson.md): Wilson's algorithm for generating a Uniform Spanning Tree (UST).

- Network Analysis
  - [Yog.Centrality](Yog.Centrality.md): Centrality measures for identifying important nodes in graphs.
  - [Yog.Community](Yog.Community.md): Community detection and clustering algorithms.
  - [Yog.Community.CliquePercolation](Yog.Community.CliquePercolation.md): Clique Percolation Method (CPM) for detecting overlapping communities.
  - [Yog.Community.Dendrogram](Yog.Community.Dendrogram.md): Hierarchical community structure from algorithms like Louvain, Walktrap, Leiden.
  - [Yog.Community.FluidCommunities](Yog.Community.FluidCommunities.md): Asynchronous Fluid Communities detection algorithm.
  - [Yog.Community.GirvanNewman](Yog.Community.GirvanNewman.md): Girvan-Newman algorithm for hierarchical community detection.
  - [Yog.Community.Infomap](Yog.Community.Infomap.md): Infomap community detection algorithm.
  - [Yog.Community.LabelPropagation](Yog.Community.LabelPropagation.md): Label Propagation Algorithm (LPA) for community detection.
  - [Yog.Community.Leiden](Yog.Community.Leiden.md): Leiden algorithm for community detection.
  - [Yog.Community.LocalCommunity](Yog.Community.LocalCommunity.md): Local community detection using fitness maximization.
  - [Yog.Community.Louvain](Yog.Community.Louvain.md): Louvain method for community detection.
  - [Yog.Community.Metrics](Yog.Community.Metrics.md): Community quality metrics and graph statistics.
  - [Yog.Community.Overlapping](Yog.Community.Overlapping.md): Result of overlapping community detection (e.g., Clique Percolation).
  - [Yog.Community.Result](Yog.Community.Result.md): Result of community detection algorithms.
  - [Yog.Community.Walktrap](Yog.Community.Walktrap.md): Walktrap algorithm for community detection.
  - [Yog.Health](Yog.Health.md): Network health and structural quality metrics.

- Multi
  - [Yog.Multi](Yog.Multi.md): Unified facade for multigraph operations.
  - [Yog.Multi.DOT](Yog.Multi.DOT.md): DOT (Graphviz) format export for visualizing multigraphs.
  - [Yog.Multi.Eulerian](Yog.Multi.Eulerian.md): Eulerian path and circuit detection for multigraphs.
  - [Yog.Multi.Graph](Yog.Multi.Graph.md): Core multigraph data structure.
  - [Yog.Multi.Mermaid](Yog.Multi.Mermaid.md): Mermaid.js format export for visualizing multigraphs.
  - [Yog.Multi.Model](Yog.Multi.Model.md): Core multigraph type and basic operations.
  - [Yog.Multi.Traversal](Yog.Multi.Traversal.md): Traversal operations for multigraphs.

- Functional
  - [Yog.Functional.Algorithms](Yog.Functional.Algorithms.md): Classic graph algorithms using purely functional inductive decomposition.
  - [Yog.Functional.Analysis](Yog.Functional.Analysis.md): Structural analysis for inductive graphs — components, bridges, and articulation points.
  - [Yog.Functional.Model](Yog.Functional.Model.md): Inductive graph representation based on Martin Erwig's
[Functional Graph Library](https://web.engr.oregonstate.edu/~erwig/fgl/) (FGL).
  - [Yog.Functional.Model.Context](Yog.Functional.Model.Context.md): A node context containing the node's identity, label, and adjacency information.

  - [Yog.Functional.Transform](Yog.Functional.Transform.md): Higher-order transformations for inductive graphs — map, filter, and structural changes.
  - [Yog.Functional.Traversal](Yog.Functional.Traversal.md): Inductive graph traversals — BFS and DFS without explicit visited sets.

- Directed Acyclic Graphs (DAG)
  - [Yog.DAG](Yog.DAG.md): Directed Acyclic Graph (DAG) data structure.
  - [Yog.DAG.Algorithm](Yog.DAG.Algorithm.md): Algorithms for Directed Acyclic Graphs (DAGs).
  - [Yog.DAG.Model](Yog.DAG.Model.md): Core Directed Acyclic Graph (DAG) type and basic operations.

- Properties
  - [Yog.Property](Yog.Property.md): Unified facade for assessing graph structures and invariant properties.
  - [Yog.Property.Bipartite](Yog.Property.Bipartite.md): [Bipartite graph](https://en.wikipedia.org/wiki/Bipartite_graph) analysis and matching algorithms.
  - [Yog.Property.Clique](Yog.Property.Clique.md): [Clique](https://en.wikipedia.org/wiki/Clique_(graph_theory)) finding algorithms using the
[Bron-Kerbosch algorithm](https://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm).
  - [Yog.Property.Coloring](Yog.Property.Coloring.md): Graph coloring algorithms for finding valid colorings and estimating the chromatic number.
  - [Yog.Property.Cyclicity](Yog.Property.Cyclicity.md): Graph [cyclicity](https://en.wikipedia.org/wiki/Cycle_(graph_theory)) and
[Directed Acyclic Graph (DAG)](https://en.wikipedia.org/wiki/Directed_acyclic_graph) analysis.
  - [Yog.Property.Eulerian](Yog.Property.Eulerian.md): [Eulerian path](https://en.wikipedia.org/wiki/Eulerian_path) and circuit algorithms using
[Hierholzer's algorithm](https://en.wikipedia.org/wiki/Eulerian_path#Hierholzer's_algorithm).
  - [Yog.Property.Planarity](Yog.Property.Planarity.md): Planarity testing and planar embedding for undirected graphs.
  - [Yog.Property.Structure](Yog.Property.Structure.md): Structural properties of graphs.
  - [Yog.Property.TreeDecomposition](Yog.Property.TreeDecomposition.md): Represents a tree decomposition of a graph.
  - [Yog.Property.WeisfeilerLehman](Yog.Property.WeisfeilerLehman.md): Implements the Weisfeiler-Lehman (WL) graph hashing algorithm.

- Generators
  - [Yog.Generator.Classic](Yog.Generator.Classic.md): Deterministic graph generators for common graph structures.
  - [Yog.Generator.Maze](Yog.Generator.Maze.md): Maze generation algorithms for creating perfect mazes.
  - [Yog.Generator.Random](Yog.Generator.Random.md): Stochastic graph generators for random graph models.

- I/O &amp; Rendering
  - [Yog.IO.GDF](Yog.IO.GDF.md): GDF (GUESS Graph Format) serialization support.
  - [Yog.IO.GEXF](Yog.IO.GEXF.md): GEXF (Graph Exchange XML Format) serialization support.
  - [Yog.IO.GEXF.Multi](Yog.IO.GEXF.Multi.md): GEXF serialization support for **multigraphs** (`Yog.Multi.Graph`).
  - [Yog.IO.Graph6](Yog.IO.Graph6.md): Graph6 format import/export for undirected simple graphs.
  - [Yog.IO.GraphML](Yog.IO.GraphML.md): GraphML (Graph Markup Language) serialization support.
  - [Yog.IO.JSON](Yog.IO.JSON.md): JSON format import/export for graph data exchange.
  - [Yog.IO.LEDA](Yog.IO.LEDA.md): LEDA (Library of Efficient Data types and Algorithms) graph format support.
  - [Yog.IO.Libgraph](Yog.IO.Libgraph.md): Interoperability with the [libgraph](https://hex.pm/packages/libgraph) library.
  - [Yog.IO.List](Yog.IO.List.md): Adjacency list import/export for graph serialization.
  - [Yog.IO.Matrix](Yog.IO.Matrix.md): Adjacency matrix import/export for graph serialization.
  - [Yog.IO.MatrixMarket](Yog.IO.MatrixMarket.md): Matrix Market (.mtx) format serialization support.
  - [Yog.IO.Pajek](Yog.IO.Pajek.md): Pajek (.net) format serialization support.
  - [Yog.IO.Sparse6](Yog.IO.Sparse6.md): Sparse6 format import/export for undirected simple graphs.
  - [Yog.IO.TGF](Yog.IO.TGF.md): Trivial Graph Format (TGF) serialization support.
  - [Yog.Render.ASCII](Yog.Render.ASCII.md): ASCII art rendering for grid graphs - quick visualization in terminal output.
  - [Yog.Render.DOT](Yog.Render.DOT.md): DOT (Graphviz) format export for visualizing graphs.
  - [Yog.Render.Mermaid](Yog.Render.Mermaid.md): Mermaid.js format export for embedding diagrams in web pages and documents.

- Data Structures &amp; Utils
  - [Yog.DisjointSet](Yog.DisjointSet.md): Disjoint Set Union (Union-Find) data structure for efficient set operations.
  - [Yog.PairingHeap](Yog.PairingHeap.md): A [Pairing Heap](https://en.wikipedia.org/wiki/Pairing_heap) implementation of a priority queue.
  - [Yog.Utils](Yog.Utils.md): Shared utility functions used across the Yog library.

