Changeset 9480


Ignore:
Timestamp:
Dec 14, 2014 10:57:36 AM (4 years ago)
Author:
wehart
Message:

Adding test examples for linear dualization.

Misc fixes to the linear_dual plugin

Location:
pyomo/trunk
Files:
4 added
1 edited

Legend:

Unmodified
Added
Removed
  • pyomo/trunk/pyomo/core/plugins/transform/linear_dual.py

    r9475 r9480  
    122122                    d_sense = maximize
    123123                for i in range(len(o_terms.variables)):
    124                     c_rhs[ o_terms.variables[i].component().name, o_terms.variables[i].index() ] = o_terms.linear[i]
     124                    c_rhs[ o_terms.variables[i].parent_component().name, o_terms.variables[i].index() ] = o_terms.linear[i]
    125125            # Stop after the first objective
    126126            break
     
    143143                #
    144144                for i in range(len(body_terms.variables)):
    145                     varname = body_terms.variables[i].component().name
     145                    varname = body_terms.variables[i].parent_component().name
    146146                    varndx = body_terms.variables[i].index()
    147                     A.setdefault(body_terms.variables[i].component().name, {}).setdefault(varndx,[]).append( Bunch(coef=body_terms.linear[i], var=name, ndx=ndx) )
     147                    A.setdefault(body_terms.variables[i].parent_component().name, {}).setdefault(varndx,[]).append( Bunch(coef=body_terms.linear[i], var=name, ndx=ndx) )
    148148                   
    149149                #
     
    223223                        #
    224224                        name_ = name + "_upper_"
    225                         varname = data.component().name
     225                        varname = data.parent_component().name
    226226                        varndx = data[ndx].index()
    227227                        A.setdefault(varname, {}).setdefault(varndx,[]).append( Bunch(coef=1.0, var=name_, ndx=ndx) )
     
    240240                        #
    241241                        name_ = name + "_lower_"
    242                         varname = data.component().name
     242                        varname = data.parent_component().name
    243243                        #from pyomo.core.base.component import Component
    244244                        varndx = data[ndx].index()
     
    256256                    #
    257257                    name_ = name + "_upper_"
    258                     varname = data.component().name
     258                    varname = data.parent_component().name
    259259                    varndx = data[ndx].index()
    260260                    A.setdefault(varname, {}).setdefault(varndx,[]).append( Bunch(coef=1.0, var=name_, ndx=ndx) )
     
    268268                    #
    269269                    name_ = name + "_lower_"
    270                     varname = data.component().name
     270                    varname = data.parent_component().name
    271271                    varndx = data[ndx].index()
    272272                    A.setdefault(varname, {}).setdefault(varndx,[]).append( Bunch(coef=1.0, var=name_, ndx=ndx) )
     
    286286            c = getattr(dual, cname)
    287287            c_index = getattr(dual, cname+"_Index") if c.is_indexed() else None
    288             for ndx,terms in A[cname].iteritems():
     288            for ndx,terms in iteritems(A[cname]):
    289289                if not c_index is None and not ndx in c_index:
    290290                    c_index.add(ndx)
Note: See TracChangeset for help on using the changeset viewer.