Solver Registry

Virne selects solvers through solver.solver_name. For example:

virne solver.solver_name=nrm_rank

How to Choose a Solver

Start with a solver that matches what you want to measure:

nrm_rank

Fast baseline. Deterministic and suitable for a first end-to-end run. Use it in the Quickstart.

random_rank

Random baseline. Useful for sanity checks and comparison context. Set experiment.seed for reproducible runs.

mip

Exact-method baseline. Best for small instances. It requires OR-Tools and uses the implementation’s current 10-second solve limit.

ppo_dual_gat+

RL pipeline example. Requires learning dependencies and training. See the RL Pipeline.

For a first comparison, run nrm_rank and random_rank on the same scenario and seed. Add mip only when the instance is small enough, and use ppo_dual_gat+ when the experiment specifically evaluates learning-based methods.

Complete Registry

The tables below are generated from SolverRegistry during the Sphinx build. They list the commands that are actually registered by the current code, including dynamically generated reinforcement-learning variants.

Exact solvers

Command

Implementation

mip

virne.solver.exact.mip.MipSolver

Rounding solvers

Command

Implementation

d_round

virne.solver.exact.d_rounding.DeterministicRoundingSolver

r_round

virne.solver.exact.r_rounding.RandomizedRoundingSolver

Heuristic solvers

Command

Implementation

ffd_joint_pr

virne.solver.heuristic.joint_pr.FFDJointPRSolver

ldg

virne.solver.heuristic.ldg.LDGSolver

order_joint_pr

virne.solver.heuristic.joint_pr.OrderJointPRSolver

order_rank_bfs

virne.solver.heuristic.bfs_trials.OrderRankBfsSolver

random_joint_pr

virne.solver.heuristic.joint_pr.RandomJointPRSolver

random_rank_bfs

virne.solver.heuristic.bfs_trials.RandomRankBfsSolver

rw_rank_bfs

virne.solver.heuristic.bfs_trials.RandomWalkRankBfsSolver

Node-ranking solvers

Command

Implementation

ffd_rank

virne.solver.heuristic.node_rank.FFDRankSolver

grc_rank

virne.solver.heuristic.node_rank.GRCRankSolver

nea_rank

virne.solver.heuristic.node_rank.NEARankSolver

nrm_rank

virne.solver.heuristic.node_rank.NRMRankSolver

order_rank

virne.solver.heuristic.node_rank.OrderRankSolver

pl_rank

virne.solver.heuristic.node_rank.PLRankSolver

random_rank

virne.solver.heuristic.node_rank.RandomRankSolver

rw_rank

virne.solver.heuristic.node_rank.RandomWalkRankSolver

Meta-heuristic solvers

Command

Implementation

aco_meta

virne.solver.meta_heuristic.ant_colony_optimization_solver.AntColonyOptimizationSolver

ga_meta

virne.solver.meta_heuristic.genetic_algorithm_solver.GeneticAlgorithmSolver

pso_meta

virne.solver.meta_heuristic.particle_swarm_optimization_solver.ParticleSwarmOptimizationSolver

sa_meta

virne.solver.meta_heuristic.simulated_annealing_solver.SimulatedAnnealingSolver

ts_meta

virne.solver.meta_heuristic.tabu_search_solver.TabuSearchSolver

Unsupervised-learning solvers

Command

Implementation

gae_clustering

virne.solver.learning.unsupervised_learning.gae_clustering.gae_clustering.GaeClusteringSolver

hopfield_network

virne.solver.learning.unsupervised_learning.hopfield_network.hopfield_network_solver.HopfieldNetworkSolver

Reinforcement-learning solvers

Command

Implementation

a2c_att+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_att+

a2c_cnn+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_cnn+

a2c_deep_edge_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_deep_edge_gat_mlp+

a2c_dual_deep_edge_gat+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_dual_deep_edge_gat+

a2c_dual_gat+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_dual_gat+

a2c_dual_gcn

virne.solver.learning.reinforcement_learning.dual_gnn_solver.A2CDualGcnSolver

a2c_dual_gcn+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_dual_gcn+

a2c_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_gat_mlp+

a2c_gcn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_gcn_mlp+

a2c_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a2c_mlp+

a3c_att+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_att+

a3c_cnn+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_cnn+

a3c_deep_edge_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_deep_edge_gat_mlp+

a3c_dual_deep_edge_gat+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_dual_deep_edge_gat+

a3c_dual_gat+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_dual_gat+

a3c_dual_gcn+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_dual_gcn+

a3c_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_gat_mlp+

a3c_gcn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_gcn_mlp+

a3c_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.a3c_mlp+

a3n_gcn_mlp

virne.solver.learning.reinforcement_learning.gnn_mlp_solver.A3cGcnSolver

conal

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.ConalSolver

conal_wo_afb

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.CONALWoAfbSolver

conal_wo_pc

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.CONALWoPcSolver

conal_wo_reach

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.CONALWoReachSolver

ddpg_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.ddpg_mlp+

double_dqn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.double_dqn_mlp+

dqn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.dqn_mlp+

mcts

virne.solver.learning.reinforcement_learning.mcts_solver.mcts.MctsSolver

pg_att+

virne.solver.learning.reinforcement_learning.solver_maker.pg_att+

pg_cnn

virne.solver.learning.reinforcement_learning.cnn_solver.PgCnnSolver

pg_cnn+

virne.solver.learning.reinforcement_learning.solver_maker.pg_cnn+

pg_cnn2

virne.solver.learning.reinforcement_learning.cnn_solver.PgCnn2Solver

pg_deep_edge_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.pg_deep_edge_gat_mlp+

pg_dual_deep_edge_gat+

virne.solver.learning.reinforcement_learning.solver_maker.pg_dual_deep_edge_gat+

pg_dual_gat+

virne.solver.learning.reinforcement_learning.solver_maker.pg_dual_gat+

pg_dual_gcn+

virne.solver.learning.reinforcement_learning.solver_maker.pg_dual_gcn+

pg_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.pg_gat_mlp+

pg_gcn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.pg_gcn_mlp+

pg_mlp

virne.solver.learning.reinforcement_learning.mlp_solver.PgMlpSolver

pg_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.pg_mlp+

pg_mlp2

virne.solver.learning.reinforcement_learning.mlp_solver.PgMlp2Solver

ppo_att

virne.solver.learning.reinforcement_learning.att_solver.PpoAttSolver

ppo_att+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_att+

ppo_cnn+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_cnn+

ppo_deep_edge_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_deep_edge_gat_mlp+

ppo_dual_deep_edge_gat+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_dual_deep_edge_gat+

ppo_dual_gat+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_dual_gat+

ppo_dual_gcn

virne.solver.learning.reinforcement_learning.dual_gnn_solver.PpoDualGcnSolver

ppo_dual_gcn+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_dual_gcn+

ppo_gat_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_gat_mlp+

ppo_gat_seq2seq+

virne.solver.learning.reinforcement_learning.gnn_seq2seq_solver.gnn_seq2seq_solver.PpoGatSeq2SeqSolver

ppo_gcn_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_gcn_mlp+

ppo_gcn_seq2seq+

virne.solver.learning.reinforcement_learning.gnn_seq2seq_solver.gnn_seq2seq_solver.PpoGcnSeq2SeqSolver

ppo_hetero_gat+

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.PpoHeteroGatSolver

ppo_hetero_gat_no_cl+

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.PpoHeteroGnnNoContrastSolver

ppo_hetero_gnn_simple_reward

virne.solver.learning.reinforcement_learning.hetero_gnn_solver.solver.SimpleRewardPpoHeteroGnnSolver

ppo_mlp+

virne.solver.learning.reinforcement_learning.solver_maker.ppo_mlp+

safe_ppo_gcn

virne.solver.learning.reinforcement_learning.safe_rl_solver.solver.SafePpoGcnSolver