PyCNP

Getting started

  • A brief introduction to the CNDPs
    • Problem formulation
    • Supported problem variants
      • Critical Node Problem (CNP)
      • Distance-based Critical Node Problem (DCNP)
  • A brief introduction to MA
  • Core concepts
    • Model
    • Reading problem instances
      • File formats
    • Problem types
    • Search strategies
    • Crossover operators
    • Stopping criteria
    • Memetic algorithm
    • Variable population sizing
    • C++ ProblemData
  • Installation instructions
    • Installing from source
      • Requirements
  • Getting Help & Citing PyCNP
    • Getting Help
    • Citing PyCNP

Examples

  • Examples
    • Example 1: A simple example
      • Results
    • Example 2: Using the modeling interface
      • Problem description
      • Building the graph
      • Configuring problem parameters
      • Configuring the memetic algorithm
      • Solving the problem
      • Results
      • Visualizing the result
      • Understanding the output
    • Example 3: Loading from a file
      • Problem description
      • Loading the instance
      • Creating the model
      • Configuring problem parameters
      • Configuring the memetic algorithm
      • Solving the problem
      • Results
      • Understanding the output
      • Visualizing the result

API reference

  • API Reference
    • Model
      • Model
        • Model.add_node()
        • Model.add_edge()
        • Model.from_data()
        • Model.problem_data
        • Model.solve()
    • Read
      • read()
      • read_adjacency_list_format()
      • read_edge_list_format()
      • File Formats
        • Adjacency List Format
        • Edge List Format
    • Algorithm
      • MemeticSearch
        • MemeticSearch.run()
    • Crossover Operators
      • double_backbone_based_crossover()
      • inherit_repair_recombination()
      • reduce_solve_combine()
    • Stopping Criteria
      • StoppingCriterion
        • StoppingCriterion.__call__()
        • StoppingCriterion.get_name()
      • MaxIterations
        • MaxIterations.__call__()
        • MaxIterations.get_name()
      • MaxRuntime
        • MaxRuntime.__call__()
        • MaxRuntime.get_name()
      • NoImprovement
        • NoImprovement.__call__()
        • NoImprovement.get_name()
    • Utilities
      • visualize_graph()
      • Statistics
        • Statistics.data
        • Statistics.num_iterations
        • Statistics.is_collecting()
        • Statistics.collect()
      • Classes
      • InvalidProblemTypeError
      • InvalidSearchStrategyError
    • Constants
      • Problem Types
      • Search Strategies
      • Crossover Operators
      • Configuration & Logging
    • C++ ProblemData
      • ProblemData
        • ProblemData.add_edge()
        • ProblemData.add_node()
        • ProblemData.create_original_graph()
        • ProblemData.get_adj_list()
        • ProblemData.get_nodes_set()
        • ProblemData.num_nodes()
        • ProblemData.read_from_adjacency_list_file()
        • ProblemData.read_from_edge_list_format()
    • C++ Graph Layer
      • Graph
      • CNP_Graph
        • CNP_Graph.add_node()
        • CNP_Graph.clone()
        • CNP_Graph.get_num_nodes()
        • CNP_Graph.get_objective_value()
        • CNP_Graph.get_reduced_graph_by_removed_nodes()
        • CNP_Graph.get_removed_nodes()
        • CNP_Graph.is_node_removed()
        • CNP_Graph.remove_node()
        • CNP_Graph.removed_nodes
        • CNP_Graph.set_node_age()
        • CNP_Graph.update_graph_by_removed_nodes()
      • DCNP_Graph
        • DCNP_Graph.add_node()
        • DCNP_Graph.build_tree()
        • DCNP_Graph.calculate_betweenness_centrality()
        • DCNP_Graph.calculate_k_hop_tree_size()
        • DCNP_Graph.clone()
        • DCNP_Graph.find_best_node_to_add()
        • DCNP_Graph.find_best_node_to_remove()
        • DCNP_Graph.get_num_nodes()
        • DCNP_Graph.get_objective_value()
        • DCNP_Graph.get_random_feasible_graph()
        • DCNP_Graph.get_reduced_graph_by_removed_nodes()
        • DCNP_Graph.get_removed_nodes()
        • DCNP_Graph.is_node_removed()
        • DCNP_Graph.remove_node()
        • DCNP_Graph.set_node_age()
        • DCNP_Graph.update_graph_by_removed_nodes()
    • C++ Population Layer
      • Population
        • Population.get_all_three_solutions()
        • Population.get_size()
        • Population.initialize()
        • Population.select()
        • Population.update()
    • C++ Search Layer
      • Search
        • Search.run()
        • Search.set_strategy()
      • SearchResult
        • SearchResult.obj_value
        • SearchResult.solution
      • SearchStrategy
        • SearchStrategy.execute()
      • Concrete Strategies
        • CBNSStrategy
        • CHNSStrategy
        • DLASStrategy
        • BCLSStrategy
    • C++ Crossover
      • double_backbone_based_crossover()
      • inherit_repair_recombination()
      • reduce_solve_combine()

Developing PyCNP

  • DEVELOPING PYCNP
    • Submitting a bug report
    • Submitting a feature request
PyCNP
  • API Reference
  • View page source

API Reference

This section provides detailed documentation for the PyCNP API.

Python API

  • Model
    • Model
  • Read
    • read()
    • read_adjacency_list_format()
    • read_edge_list_format()
    • File Formats
  • Algorithm
    • MemeticSearch
  • Crossover Operators
    • double_backbone_based_crossover()
    • inherit_repair_recombination()
    • reduce_solve_combine()
  • Stopping Criteria
    • StoppingCriterion
    • MaxIterations
    • MaxRuntime
    • NoImprovement
  • Utilities
    • visualize_graph()
    • Statistics
    • Classes
    • InvalidProblemTypeError
    • InvalidSearchStrategyError
  • Constants
    • Problem Types
    • Search Strategies
    • Crossover Operators
    • Configuration & Logging
  • C++ ProblemData
    • ProblemData

C++ API Reference

  • C++ Graph Layer
    • Graph
    • CNP_Graph
    • DCNP_Graph
  • C++ Population Layer
    • Population
  • C++ Search Layer
    • Search
    • SearchResult
    • SearchStrategy
    • Concrete Strategies
  • C++ Crossover
    • double_backbone_based_crossover()
    • inherit_repair_recombination()
    • reduce_solve_combine()
Previous Next

© Copyright 2025 - 2026, Bo Xue.

Built with Sphinx using a theme provided by Read the Docs.