Skip to main content

Module alignment

Module alignment 

Source
Expand description

Network alignment algorithms for finding correspondences between graphs.

This module provides algorithms for aligning nodes across two different graphs, finding mappings that preserve topological structure. Applications include protein interaction network alignment, social network de-anonymization, and ontology matching.

§Algorithms

  • IsoRank (Singh et al., 2008): Spectral method using power iteration on the Kronecker product of adjacency matrices.
  • GRASP: Meta-heuristic combining greedy randomized construction with local search refinement.

§Example

use scirs2_graph::alignment::{isorank, AlignmentConfig};
use scirs2_core::ndarray::Array2;

// Create two small graphs (path graphs)
let mut adj1 = Array2::zeros((3, 3));
adj1[[0, 1]] = 1.0; adj1[[1, 0]] = 1.0;
adj1[[1, 2]] = 1.0; adj1[[2, 1]] = 1.0;

let adj2 = adj1.clone();
let config = AlignmentConfig::default();

let result = isorank(&adj1, &adj2, None, &config).expect("alignment should succeed");
assert!(!result.mapping.is_empty());

Re-exports§

pub use evaluation::edge_conservation;
pub use evaluation::induced_conserved_structure;
pub use evaluation::node_correctness;
pub use evaluation::symmetric_substructure_score;
pub use grasp::grasp_alignment;
pub use isorank::isorank;
pub use types::AlignmentConfig;
pub use types::AlignmentResult;
pub use types::SimilarityMatrix;

Modules§

evaluation
Alignment quality evaluation metrics.
grasp
GRASP (Greedy Randomized Adaptive Search Procedure) for network alignment.
isorank
IsoRank network alignment algorithm.
types
Types for network alignment algorithms.