Source code for pyomo.core.base.symbol_map

# ____________________________________________________________________________________
#
# Pyomo: Python Optimization Modeling Objects
# Copyright (c) 2008-2026 National Technology and Engineering Solutions of Sandia, LLC
# Under the terms of Contract DE-NA0003525 with National Technology and Engineering
# Solutions of Sandia, LLC, the U.S. Government retains certain rights in this
# software.  This software is distributed under the 3-clause BSD License.
# ____________________________________________________________________________________

from pyomo.core.expr.symbol_map import SymbolMap

from pyomo.core.base.label import TextLabeler


[docs] def symbol_map_from_instance(instance): """ Create a symbol map from an instance using name-based labelers. """ from pyomo.core.base import Var, Constraint, Objective symbol_map = SymbolMap() labeler = TextLabeler() # # Recursively iterate over all variables # for varvalue in instance.component_data_objects(Var, active=True): symbol_map.getSymbol(varvalue, labeler) # # Recursively iterate over all constraints # for constraint_data in instance.component_data_objects(Constraint, active=True): con_symbol = symbol_map.getSymbol(constraint_data, labeler) if constraint_data.equality: label = 'c_e_%s_' % con_symbol symbol_map.alias(constraint_data, label) else: if constraint_data.lower is not None: if constraint_data.upper is not None: symbol_map.alias(constraint_data, 'r_l_%s_' % con_symbol) symbol_map.alias(constraint_data, 'r_u_%s_' % con_symbol) else: label = 'c_l_%s_' % con_symbol symbol_map.alias(constraint_data, label) elif constraint_data.upper is not None: label = 'c_u_%s_' % con_symbol symbol_map.alias(constraint_data, label) # # Recursively iterate over all objectives # first = True for objective_data in instance.component_data_objects(Objective, active=True): symbol_map.getSymbol(objective_data, labeler) if first: # The first objective is the default symbol_map.alias(objective_data, "__default_objective__") first = False # # Return the symbol map # return symbol_map