Search Results for

    Show / Hide Table of Contents

    Class model::AbstractPubo

    Inheritance
    model::GraphModel
    model::AbstractPubo
    Inherited Members
    Model
    state_only_memory_estimate
    init
    get_initial_configuration_state
    calculate_cost
    estimate_min_cost_diff
    set_step_limit
    state_memory_estimate
    render
    calculate_cost_difference
    configure
    ~BaseModel
    configure
    BaseModel
    edge
    get_const_cost
    node
    rescale
    node_count
    estimate_max_cost_diff
    get_term_count
    get_scale_factor
    is_empty
    has_initial_configuration
    is_rescaled
    get_initial_configuration
    get_sweep_size
    get_benchmark_properties
    edge_count
    render
    ~Component
    Component
    get_status
    param
    get_class_name

    Constructors

    AbstractPubo()

    Declaration
    model::AbstractPubo<State_T, Cost_T>::AbstractPubo()

    Methods

    get_identifier()

    Returns the identifier string of the model type (e.g., "ising").

    Declaration
    std::string model::AbstractPubo<State_T, Cost_T>::get_identifier() const override

    get_version()

    Returns the version of the input format this implementation expects.

    Declaration
    std::string model::AbstractPubo<State_T, Cost_T>::get_version() const override

    match_version()

    Checks the string argument against the expected version.

    This can be overloaded to accept other version than the one returned by get_version().

    Declaration
    void model::AbstractPubo<State_T, Cost_T>::match_version(const std::string&version) override

    ~AbstractPubo()

    Declaration
    virtual model::AbstractPubo<State_T, Cost_T>::~AbstractPubo()

    configure()

    Populates model internals from the input json.

    Declaration
    void model::AbstractPubo<State_T, Cost_T>::configure(const utils::Json&json) override

    configure()

    Declaration
    void model::AbstractPubo<State_T, Cost_T>::configure(typename Graph::Configuration_T&configuration)

    get_random_state()

    Return a valid random state for the model.

    The various algorithms don't know how to initialize a valid state; this allows them to start with a random one. NOTE: The rng being passed should be used for randomness (as opposed to creating one for the model), as multiple threads can potentially use the same underlying model (albeit with separate rngs).

    Declaration
    State_T model::AbstractPubo<State_T, Cost_T>::get_random_state(utils::RandomGenerator&rng) const override

    get_initial_configuration_state()

    Declaration
    State_T model::AbstractPubo<State_T, Cost_T>::get_initial_configuration_state() const override

    get_random_transition()

    Return a random transition starting at state.

    The various algorithms don't know how to move throuhg markov space; this allows them to pick a random direction given a starting point.

    1. By definition, the next markov state should only depend on the current one, so only the last one is passed to this function.
    2. "random" does not necessitate equi-distributed here (you may choose a different distribution if your model dictates it). However, the the typical choise is to pick randomly from all possible moves at state with equal probability.
    Declaration
    Transition_T model::AbstractPubo<State_T, Cost_T>::get_random_transition(const State_T&, utils::RandomGenerator&rng) const override

    apply_transition()

    Apply a transition to a state.

    This changes the configuration represented by *state. Depending on the optimization algorithm, transition can either be applied conditionally or alaways (e.g., population dynamics). Separating the functionality into the three interfaces random_transition, calculate_cost_difference, apply_transition leaves control over the strategy with the optimization method.

    Declaration
    virtual void model::AbstractPubo<State_T, Cost_T>::apply_transition(const Transition_T&transition, State_T&state) const override=0

    render_state()

    Render a state of this model.

    Default implementation of how a state of this model is rendered (by' invoking the state's proper rendering mechanic). Overloading this method allows a model implementation to customize how a state is printed. This is relevant if the rendering needs to depend on model parameters in addition to the state.

    Declaration
    utils::Structure model::AbstractPubo<State_T, Cost_T>::render_state(const State_T&state) const override

    state_memory_estimate()

    Declaration
    size_t model::AbstractPubo<State_T, Cost_T>::state_memory_estimate() const override

    state_only_memory_estimate()

    Declaration
    size_t model::AbstractPubo<State_T, Cost_T>::state_only_memory_estimate() const override

    estimate_min_cost_diff()

    Declaration
    double model::AbstractPubo<State_T, Cost_T>::estimate_min_cost_diff() const override

    edges()

    Return a vector of all the edges.

    Declaration
    const std::vector<Edge>&model::GraphModel<State_T, Transition_T, Cost_T>::edges() const

    nodes()

    Return a vector of all the nodes.

    Declaration
    const std::vector<Node>&model::GraphModel<State_T, Transition_T, Cost_T>::nodes() const
    In This Article
    Back to top Generated with Doxygen and DocFX