Beispiel #1
0
 def test_iis_no_variable_values(self):
     with pyomo.opt.ReaderFactory("sol") as reader:
         if reader is None:
             raise IOError("Reader 'sol' is not registered")
         result = reader(currdir+"iis_no_variable_values.sol", suffixes=["iis"])
         soln = result.solution(0)
         self.assertEqual(len(list(soln.variable['v0'].keys())), 1)
         self.assertEqual(soln.variable['v0']['iis'], 1)
         self.assertEqual(len(list(soln.variable['v1'].keys())), 1)
         self.assertEqual(soln.variable['v1']['iis'], 1)
         self.assertEqual(len(list(soln.constraint['c0'].keys())), 1)
         self.assertEqual(soln.constraint['c0']['Iis'], 4)
         import pyomo.kernel as pmo
         m = pmo.block()
         m.v0 = pmo.variable()
         m.v1 = pmo.variable()
         m.c0 = pmo.constraint()
         m.iis = pmo.suffix(direction=pmo.suffix.IMPORT)
         from pyomo.core.expr.symbol_map import SymbolMap
         soln.symbol_map = SymbolMap()
         soln.symbol_map.addSymbol(m.v0, 'v0')
         soln.symbol_map.addSymbol(m.v1, 'v1')
         soln.symbol_map.addSymbol(m.c0, 'c0')
         m.load_solution(soln)
         pmo.pprint(m.iis)
         self.assertEqual(m.iis[m.v0], 1)
         self.assertEqual(m.iis[m.v1], 1)
         self.assertEqual(m.iis[m.c0], 4)
Beispiel #2
0
 def test_pprint(self):
     import pyomo.kernel
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     m,n = 3,2
     vlist = _create_variable_list(2)
     A = numpy.random.rand(m,n)
     ctuple = matrix_constraint(A,
                                lb=1,
                                ub=2,
                                x=vlist)
     pmo.pprint(ctuple)
     b = block()
     b.c = ctuple
     pmo.pprint(ctuple)
     pmo.pprint(b)
     m = block()
     m.b = b
     pmo.pprint(ctuple)
     pmo.pprint(b)
     pmo.pprint(m)
Beispiel #3
0
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     v = variable()
     o = objective(expr=v**2)
     pprint(o)
     b = block()
     b.o = o
     pprint(o)
     pprint(b)
     m = block()
     m.b = b
     pprint(o)
     pprint(b)
     pprint(m)
Beispiel #4
0
    def test_pprint(self):
        # Not really testing what the output is, just that
        # an error does not occur. The pprint functionality
        # is still in the early stages.
        v = variable()
        clist = constraint_list([constraint()])
        s = suffix()
        s[v] = 1
        s[clist] = None
        pprint(s)
        b = block()
        b.s = s
        pprint(s)
        pprint(b)
        m = block()
        m.b = b
        pprint(s)
        pprint(b)
        pprint(m)

        pprint({'a': 1, 'b': 2})
Beispiel #5
0
    def test_preorder_traversal_descend_check(self):
        cdict, traversal = \
            super(_TestActiveDictContainerBase, self).\
            test_preorder_traversal_descend_check()

        cdict[1].deactivate()

        def descend(x):
            self.assertTrue(x._is_container)
            descend.seen.append(x)
            return not x._is_heterogeneous_container

        descend.seen = []
        pmo.pprint(cdict)
        order = list(
            pmo.preorder_traversal(cdict, active=True, descend=descend))
        self.assertEqual([None, '[0]', '[2]'], [c.name for c in order])
        self.assertEqual(
            [id(cdict), id(cdict[0]), id(cdict[2])], [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None, '[0]', '[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict), id(cdict[0]),
                              id(cdict[2])], [id(c) for c in descend.seen])
        else:
            self.assertEqual([None], [c.name for c in descend.seen])
            self.assertEqual([id(cdict)], [id(c) for c in descend.seen])

        def descend(x):
            self.assertTrue(x._is_container)
            descend.seen.append(x)
            return x.active and (not x._is_heterogeneous_container)

        descend.seen = []
        order = list(
            pmo.preorder_traversal(cdict, active=None, descend=descend))
        self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in order])
        self.assertEqual(
            [id(cdict), id(cdict[0]),
             id(cdict[1]), id(cdict[2])], [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None, '[0]', '[1]', '[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual(
                [id(cdict),
                 id(cdict[0]),
                 id(cdict[1]),
                 id(cdict[2])], [id(c) for c in descend.seen])
        else:
            self.assertEqual([None, '[1]'], [c.name for c in descend.seen])
            self.assertEqual([id(cdict), id(cdict[1])],
                             [id(c) for c in descend.seen])

        cdict[1].deactivate(shallow=False)

        def descend(x):
            descend.seen.append(x)
            return not x._is_heterogeneous_container

        descend.seen = []
        order = list(
            pmo.preorder_traversal(cdict, active=True, descend=descend))
        self.assertEqual([c.name for c in traversal if c.active],
                         [c.name for c in order])
        self.assertEqual([id(c) for c in traversal if c.active],
                         [id(c) for c in order])
        self.assertEqual([c.name for c in traversal
                          if c.active and \
                          c._is_container],
                         [c.name for c in descend.seen])
        self.assertEqual([id(c) for c in traversal
                          if c.active and \
                          c._is_container],
                         [id(c) for c in descend.seen])

        def descend(x):
            descend.seen.append(x)
            return x.active and (not x._is_heterogeneous_container)

        descend.seen = []
        order = list(
            pmo.preorder_traversal(cdict, active=None, descend=descend))
        self.assertEqual([None, '[0]', '[1]', '[2]'], [c.name for c in order])
        self.assertEqual(
            [id(cdict), id(cdict[0]),
             id(cdict[1]), id(cdict[2])], [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None, '[0]', '[1]', '[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual(
                [id(cdict),
                 id(cdict[0]),
                 id(cdict[1]),
                 id(cdict[2])], [id(c) for c in descend.seen])
        else:
            self.assertEqual([None, '[1]'], [c.name for c in descend.seen])
            self.assertEqual([id(cdict), id(cdict[1])],
                             [id(c) for c in descend.seen])

        cdict.deactivate()

        def descend(x):
            descend.seen.append(x)
            return True

        descend.seen = []
        order = list(
            pmo.preorder_traversal(cdict, active=True, descend=descend))
        self.assertEqual(len(descend.seen), 0)
        self.assertEqual(len(list(pmo.generate_names(cdict, active=True))), 0)

        def descend(x):
            descend.seen.append(x)
            return x.active

        descend.seen = []
        order = list(
            pmo.preorder_traversal(cdict, active=None, descend=descend))
        self.assertEqual(len(descend.seen), 1)
        self.assertIs(descend.seen[0], cdict)
Beispiel #6
0
    def test_preorder_traversal_descend_check(self):
        cdict, traversal = \
            super(_TestActiveDictContainerBase, self).\
            test_preorder_traversal_descend_check()

        cdict[1].deactivate()
        def descend(x):
            self.assertTrue(x._is_container)
            descend.seen.append(x)
            return not x._is_heterogeneous_container
        descend.seen = []
        pmo.pprint(cdict)
        order = list(pmo.preorder_traversal(cdict,
                                            active=True,
                                            descend=descend))
        self.assertEqual([None, '[0]', '[2]'],
                         [c.name for c in order])
        self.assertEqual([id(cdict),id(cdict[0]),id(cdict[2])],
                         [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None, '[0]', '[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict),id(cdict[0]),id(cdict[2])],
                             [id(c) for c in descend.seen])
        else:
            self.assertEqual([None],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict)],
                             [id(c) for c in descend.seen])

        def descend(x):
            self.assertTrue(x._is_container)
            descend.seen.append(x)
            return x.active and (not x._is_heterogeneous_container)
        descend.seen = []
        order = list(pmo.preorder_traversal(cdict,
                                            active=None,
                                            descend=descend))
        self.assertEqual([None,'[0]','[1]','[2]'],
                         [c.name for c in order])
        self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])],
                         [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None,'[0]','[1]','[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])],
                             [id(c) for c in descend.seen])
        else:
            self.assertEqual([None,'[1]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict),id(cdict[1])],
                             [id(c) for c in descend.seen])

        cdict[1].deactivate(shallow=False)
        def descend(x):
            descend.seen.append(x)
            return not x._is_heterogeneous_container
        descend.seen = []
        order = list(pmo.preorder_traversal(cdict,
                                            active=True,
                                            descend=descend))
        self.assertEqual([c.name for c in traversal if c.active],
                         [c.name for c in order])
        self.assertEqual([id(c) for c in traversal if c.active],
                         [id(c) for c in order])
        self.assertEqual([c.name for c in traversal
                          if c.active and \
                          c._is_container],
                         [c.name for c in descend.seen])
        self.assertEqual([id(c) for c in traversal
                          if c.active and \
                          c._is_container],
                         [id(c) for c in descend.seen])

        def descend(x):
            descend.seen.append(x)
            return x.active and (not x._is_heterogeneous_container)
        descend.seen = []
        order = list(pmo.preorder_traversal(cdict,
                                            active=None,
                                            descend=descend))
        self.assertEqual([None,'[0]','[1]','[2]'],
                         [c.name for c in order])
        self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])],
                         [id(c) for c in order])
        if cdict.ctype._is_heterogeneous_container:
            self.assertEqual([None,'[0]','[1]','[2]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict),id(cdict[0]),id(cdict[1]),id(cdict[2])],
                             [id(c) for c in descend.seen])
        else:
            self.assertEqual([None,'[1]'],
                             [c.name for c in descend.seen])
            self.assertEqual([id(cdict),id(cdict[1])],
                             [id(c) for c in descend.seen])

        cdict.deactivate()
        def descend(x):
            descend.seen.append(x)
            return True
        descend.seen = []
        order = list(pmo.preorder_traversal(cdict,
                                            active=True,
                                            descend=descend))
        self.assertEqual(len(descend.seen), 0)
        self.assertEqual(len(list(pmo.generate_names(cdict,
                                                     active=True))),
                         0)

        def descend(x):
            descend.seen.append(x)
            return x.active
        descend.seen = []
        order = list(pmo.preorder_traversal(cdict,
                                            active=None,
                                            descend=descend))
        self.assertEqual(len(descend.seen), 1)
        self.assertIs(descend.seen[0], cdict)
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     m, n = 3, 2
     vlist = _create_variable_list(2)
     A = numpy.random.rand(m, n)
     ctuple = matrix_constraint(A, lb=1, ub=2, x=vlist)
     pmo.pprint(ctuple)
     b = block()
     b.c = ctuple
     pmo.pprint(ctuple)
     pmo.pprint(b)
     m = block()
     m.b = b
     pmo.pprint(ctuple)
     pmo.pprint(b)
     pmo.pprint(m)
Beispiel #8
0
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     p = parameter()
     pprint(p)
     b = block()
     b.p = p
     pprint(p)
     pprint(b)
     m = block()
     m.b = b
     pprint(p)
     pprint(b)
     pprint(m)
Beispiel #9
0
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     f = functional_value()
     pprint(f)
     b = block()
     b.f = f
     pprint(f)
     pprint(b)
     m = block()
     m.b = b
     pprint(f)
     pprint(b)
     pprint(m)
Beispiel #10
0
# @SOS_single
# @SOS_dict
m.sd = pmo.sos_dict()
m.sd[1] = pmo.sos1(m.vd.values())
m.sd[2] = pmo.sos1(m.vl)

# @SOS_dict
# @SOS_list
# uses 0-based indexing
m.sl = pmo.sos_list()
for i in m.s:
    m.sl.append(pmo.sos1([m.vl[i], m.vd[i]]))
# @SOS_list

# @Suffix_single
m.dual = pmo.suffix(direction=pmo.suffix.IMPORT)
# @Suffix_single
# @Suffix_dict
m.suffixes = pmo.suffix_dict()
m.suffixes['dual'] = pmo.suffix(direction=pmo.suffix.IMPORT)
# @Suffix_dict

# @Piecewise_1d
breakpoints = [1, 2, 3, 4]
values = [1, 2, 1, 2]
m.f = pmo.variable()
m.pw = pmo.piecewise(breakpoints, values, input=m.v, output=m.f, bound='eq')
# @Piecewise_1d

pmo.pprint(m)
Beispiel #11
0
 def test_pprint(self):
     # Not really testing what the output is, just that
     # an error does not occur. The pprint functionality
     # is still in the early stages.
     c = self._object_factory()
     pprint(c)
     b = block()
     b.c = c
     pprint(c)
     pprint(b)
     m = block()
     m.b = b
     pprint(c)
     pprint(b)
     pprint(m)
Beispiel #12
0


# @Suffix_single
m.dual = pmo.suffix(
    direction=pmo.suffix.IMPORT)
# @Suffix_single
# @Suffix_dict
m.suffixes = pmo.suffix_dict()
m.suffixes['dual'] = pmo.suffix(
    direction=pmo.suffix.IMPORT)
# @Suffix_dict



# @Piecewise_1d
breakpoints = [1,2,3,4]
values = [1,2,1,2]
m.f = pmo.variable()
m.pw = pmo.piecewise(
    breakpoints,
    values,
    input=m.v,
    output=m.f,
    bound='eq')
# @Piecewise_1d



pmo.pprint(m)