Changeset 1794


Ignore:
Timestamp:
Nov 3, 2009 12:09:49 PM (10 years ago)
Author:
wehart
Message:

Misc bug fixes that were introduced by the introduction of variable_map
data, which is now called symbol_map.

Note: some tests still fail, due to the fact that pico_convert does not
generate symbol mapping information. This is being resolved.

Location:
trunk
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/coopr/opt/base/convert.py

    r1779 r1794  
    9494                tmp = [s_ptype,ptype] + list(args)
    9595                tmp = tuple(tmp)
    96                 problem_files, variable_map = converter.apply(*tmp)
    97                 return problem_files, ptype, variable_map
     96                problem_files, symbol_map = converter.apply(*tmp)
     97                return problem_files, ptype, symbol_map
    9898    raise ConverterError, "No conversion possible.  Source problem type: %s.  Valid target types: %s" % (str(source_ptype[0]),map(str,valid_ptypes))
    9999
  • trunk/coopr/opt/base/solution.py

    r1772 r1794  
    215215        self.solution = SolutionSet()
    216216        self.initialize()
    217         self.variable_map = None
     217        self.symbol_map = None
    218218
    219219    def initialize(self):
     
    264264        if not flag:        # pragma:nocover
    265265           print >>ostream, "  No Info"
    266         if self.variable_map is not None:
    267            print >>ostream, "  Variable map is available"
     266        if self.symbol_map is not None:
     267           print >>ostream, "  Symbol map is available"
    268268        #
    269269        print >>ostream, "----------------------------------------------------------"
  • trunk/coopr/opt/base/solver.py

    r1772 r1794  
    116116            for key in kwds['options']:
    117117                setattr(self.options,key,kwds['options'][key])
    118         self._variable_map=None
     118        self._symbol_map=None
    119119        self._problem_format=None
    120120        self._results_format=None
     
    139139        self._apply_solver()
    140140        result = self._postsolve()
    141         result.variable_map = self._variable_map
     141        result.symbol_map = self._symbol_map
    142142        return result
    143143
     
    166166             raise ValueError, "Unknown option="+key+" for solver="+self.type
    167167
    168         (self._problem_files,self._problem_format,self._variable_map) = self._convert_problem(args, self._problem_format, self._valid_problem_formats)
     168        (self._problem_files,self._problem_format,self._symbol_map) = self._convert_problem(args, self._problem_format, self._valid_problem_formats)
    169169        if self._results_format is None:
    170170           self._results_format= self._default_results_format(self._problem_format)
     
    192192        #
    193193        if self.problem is not None:
    194            return (self.problem,ProblemFormat.colin_optproblem)
     194           return (self.problem,ProblemFormat.colin_optproblem,None)
    195195        #
    196196        # Otherwise, we try to convert the object explicitly.
  • trunk/coopr/opt/reader/sol.py

    r1772 r1794  
    9797        for i in range(0,len(x)):
    9898            #soln.variable.add("_svar["+str(i)+"]", x[i])
    99             soln.variable.add("V"+str(i), x[i])
     99            soln.variable.add("v"+str(i), x[i])
    100100        for i in range(0,len(y)):
    101101            #soln.dual.add("_scon["+str(i)+"]", y[i])
  • trunk/coopr/plugins/converter/pico.py

    r1772 r1794  
    8080            raise pyutilib.common.ApplicationError, \
    8181                    "Problem launching 'pico_convert' to create "+output_filename
    82         return (output_filename,),None # no variable map at the momoent
     82        return (output_filename,),None # no variable map at the moment
    8383
    8484
  • trunk/coopr/plugins/converter/pyomo.py

    r1772 r1794  
    6262        elif args[1] is ProblemFormat.nl:
    6363            problem_filename = pyutilib.services.TempfileManager.create_tempfile(suffix = '.pyomo.nl')
    64             (problem_filename, variable_map) = args[2].write(filename=problem_filename,format=ProblemFormat.nl)
    65             return (problem_filename,),variable_map # map file is necessary
     64            (problem_filename, symbol_map) = args[2].write(filename=problem_filename,format=ProblemFormat.nl)
     65            return (problem_filename,),symbol_map # map file is necessary
     66
  • trunk/coopr/plugins/mip/CBC.py

    r1772 r1794  
    325325    def _convert_problem(self,args,pformat,valid_pformats):
    326326        if pformat in [ProblemFormat.mps, ProblemFormat.cpxlp, ProblemFormat.nl]:
    327            return (args,pformat)
     327           return (args, pformat, None)
    328328        else:
    329            return (args,ProblemFormat.mps)
     329           return (args, ProblemFormat.mps, None)
    330330
    331331
  • trunk/coopr/plugins/mip/GLPK.py

    r1768 r1794  
    343343    def _convert_problem(self,args,pformat,valid_pformats):
    344344        if pformat in [ProblemFormat.mps,ProblemFormat.cpxlp]:
    345            return (args,pformat)
     345           return (args,pformat,None)
    346346        else:
    347            return (args,ProblemFormat.cpxlp)
     347           return (args,ProblemFormat.cpxlp,None)
    348348
    349349
  • trunk/coopr/pyomo/base/PyomoModel.py

    r1772 r1794  
    7474    def num_used_variables(self):
    7575        return len(self._var)
    76 
    77 
    78     #def variable_map(self):
    79         #return self._varmap
    8076
    8177
     
    232228              raise ValueError, "Cannot load a SolverResults object with bad status: "+str(arg.solver.status)
    233229           if len(arg.solution) > 0:
    234               self._load_solution(arg.solution(0),variable_map=arg.variable_map)
     230              self._load_solution(arg.solution(0),symbol_map=arg.symbol_map)
    235231              return True
    236232           else:
     
    288284            raise err
    289285
    290     def _load_solution(self,soln, variable_map=None):
     286    def _load_solution(self,soln, symbol_map=None):
    291287        """
    292288        Load a solution.
     
    301297          if name != "ONE_VAR_CONSTANT":
    302298             # translate the name first if there is a variable map associated with the input solution.
    303              if variable_map is not None:
    304                  name = variable_map[name]
     299             if symbol_map is not None:
     300                 name = symbol_map[name]
    305301             if name not in self._name_varmap:
    306302                names=""
     
    328324        if problem_writer is None:
    329325           raise ValueError, "Cannot write model in format \"" + str(format) + "\": no model writer registered for that format"
    330         (fname, variable_map) = problem_writer(self, filename)
     326        (fname, symbol_map) = problem_writer(self, filename)
    331327        if pyomo.debug("verbose"):
    332328           print "Writing model "+self.name+" to file '"+str(fname)+"'  with format "+str(format)
    333         return fname, variable_map
     329        return fname, symbol_map
    334330
    335331
  • trunk/coopr/pyomo/io/ampl.py

    r1772 r1794  
    2929           filename = model.name + ".nl"
    3030        OUTPUT=open(filename,"w")
    31         variable_map = self._print_model_NL(model,OUTPUT)
     31        symbol_map = self._print_model_NL(model,OUTPUT)
    3232        OUTPUT.close()
    33         return filename, variable_map
     33        return filename, symbol_map
    3434
    3535    def _get_bound(self, exp):
     
    5050        # in the NL format. however, we by convention make them go from
    5151        # x0 upward.
    52         variable_map = {}
     52        symbol_map = {}
    5353
    5454        #
     
    283283                  print >>OUTPUT, "3",
    284284                if ndx is not None:
    285                    print >>OUTPUT, " # V"+str(nv)+"  "+str(var)+"["+str(ndx)+"]"
    286                    variable_map["V"+str(nv)] = (str(var)+"["+str(ndx)+"]")                   
     285                   print >>OUTPUT, " # v"+str(nv)+"  "+str(var)+"["+str(ndx)+"]"
     286                   symbol_map["v"+str(nv)] = (str(var)+"["+str(ndx)+"]")                   
    287287                else:
    288                    print >>OUTPUT, " # V"+str(nv)+"  "+str(var)
    289                    variable_map["V"+str(nv)] = str(var)
     288                   print >>OUTPUT, " # v"+str(nv)+"  "+str(var)
     289                   symbol_map["v"+str(nv)] = str(var)
    290290
    291291                nv += 1
     
    332332                                   print >>OUTPUT, p[1].id, p[0]
    333333
    334         return variable_map
     334        return symbol_map
    335335
    336336problem.WriterRegistration(str(ProblemFormat.nl), ProblemWriter_nl)
  • trunk/test/core/base/test4_sol.txt

    r1352 r1794  
    2929  value: None
    3030  Primal Variables
    31         x4      46.6666666667
    32         x11     933.333333333
    33         x12     10000.0
    34         x13     10000.0
    35         x14     10000.0
    36         x15     10000.0
    37         x17     100.0
    38         x19     100.0
    39         x21     100.0
    40         x23     100.0
    41         x24     46.6666666667
    42         x25     53.3333333333
    43         x27     100.0
    44         x29     100.0
    45         x31     100.0
     31        v4      46.6666666667
     32        v11     933.333333333
     33        v12     10000.0
     34        v13     10000.0
     35        v14     10000.0
     36        v15     10000.0
     37        v17     100.0
     38        v19     100.0
     39        v21     100.0
     40        v23     100.0
     41        v24     46.6666666667
     42        v25     53.3333333333
     43        v27     100.0
     44        v29     100.0
     45        v31     100.0
    4646  Dual Variables
    4747        c2      0.126
  • trunk/test/core/colin/test_parallel.py

    r1768 r1794  
    105105
    106106
    107 class OptPatternSearchDebug(pyutilib.th.TestCase):
     107class Test(pyutilib.th.TestCase):
    108108
    109109
  • trunk/test/plugins/mip/test4_cbc.txt

    r1361 r1794  
    3131  value: 88.578
    3232  Primal Variables
    33         x4      46.8666666667
     33        v4      46.8666666667
    3434  Dual Variables
    3535        c2      0.126
  • trunk/test/plugins/mip/test4_cplex.txt

    r1390 r1794  
    2727  value: 88.578
    2828  Primal Variables
    29         x4      46.8666666667
     29        v4      46.8666666667
    3030  Dual Variables
    3131        cons2   0.126
  • trunk/test/plugins/mip/test4_glpk.txt

    r1361 r1794  
    2727  value: 88.578
    2828  Primal Variables
    29         x4      46.8667
     29        v4      46.8667
    3030  Dual Variables
    31         cons2   0.126
     31        c2      0.126
    3232----------------------------------------------------------
  • trunk/test/plugins/mip/test4_pico.txt

    r1370 r1794  
    3030  value: 88.578
    3131  Primal Variables
    32         x4      46.8666666667
     32        v4      46.8666666667
    3333  Dual Variables
    3434        c2      0.126
  • trunk/test/plugins/mip/test_convert.py

    r1768 r1794  
    3535
    3636    def write(self,filename="", format=None):
    37         pass
     37        return (filename,None)
    3838
    3939class MockArg2(MockArg):
     
    4949        OUTPUT.close()
    5050        INPUT.close()
     51        return (filename,None)
    5152
    5253class MockArg3(MockArg):
     
    5657
    5758    def write(self,filename="", format=None):
    58         pass
     59        return (filename,None)
    5960
    6061class MockArg4(MockArg):
     
    6768        OUTPUT.close()
    6869        INPUT.close()
     70        return (filename,None)
    6971
    7072
  • trunk/test/plugins/mip/test_glpk.py

    r1768 r1794  
    9393        self.failUnlessFileEqualsBaseline(currdir+"test_solve4.txt", currdir+"test4_glpk.txt")
    9494        os.remove(currdir+"test_solve4.log")
    95         if os.path.exists(currdir+"ipconvert.lp"):
    96            os.remove(currdir+"ipconvert.lp")
    97         os.remove(currdir+"test4.soln")
     95        #if os.path.exists(currdir+"ipconvert.lp"):
     96           #os.remove(currdir+"ipconvert.lp")
     97        #os.remove(currdir+"test4.soln")
    9898       
    9999    def Xtest_solve5(self):
Note: See TracChangeset for help on using the changeset viewer.