Skip to contents

Package overview

Welcome page and pointers to the rest of the documentation.

momst momst-package
momst: Multi-Objective Minimum Spanning Tree via NSGA-II with Local Search

Main solver

Single entry point to run the NSGA-II based MO-MST solver.

run_momst()
Run the MO-MST NSGA-II Solver

Instance and lookup

Generate random complete-graph instances and pre-compute edge-weight lookup tables.

generate_instance()
Generate a Complete-Graph Instance for MO-MST
build_weight_lookup()
Pre-build Edge-Weight Lookup Matrices

Prufer encoding

Tree encoding helpers used internally by the genetic operators.

decode_prufer()
Decode a Prufer Sequence to its Spanning Tree (Linear Time)
generate_prufer_population()
Generate an Initial Prufer-Encoded Population

NSGA-II operators

Objective evaluation, ranking, and the standard NSGA-II operators.

compute_objectives()
Compute Multi-Objective Costs for a Population
non_dominated_crowding()
Assign Pareto Rank and Crowding Distance
tournament_selection()
Tournament Selection
uniform_crossover()
Uniform Crossover for Prufer Sequences
random_mutation()
Random Mutation on Prufer Sequences

Local search operators

Three local search strategies and the dispatcher used by run_momst().

apply_local_search()
Apply the Configured Local-Search Variant
path_relinking()
Path Relinking on the Current Pareto Front
pareto_local_search()
Pareto Local Search
tabu_search()
Tabu Search on the Current Pareto Front

Plotting

Convenience plots for the Pareto front and the best compromise tree.

plot_pareto_front()
Plot a Pareto Front (2-objective case)
plot_best_tree()
Plot the Best-Compromise Spanning Tree