示例#1
0
    def execute_with_model(self, model, args):
        galini = Galini()

        if args.config:
            galini.update_configuration(args.config)

        solution = galini.solve(
            model,
            args.algorithm,
            known_optimal_objective=args.known_optimal_objective)

        status_table = OutputTable('Solution', [{
            'id': 'status',
            'name': 'Status',
            'type': 't'
        }])

        if solution is None:
            status_table.add_row({'status': 'unboundedOrInfeasible'})
            print_output_table([status_table], args)
            return

        status_table.add_row({'status': solution.status.description()})

        obj_table = OutputTable('Objectives', [
            {
                'id': 'name',
                'name': 'Objective',
                'type': 't'
            },
            {
                'id': 'value',
                'name': 'Value',
                'type': 'f'
            },
        ])

        obj_table.add_row({
            'name': 'objective',
            'value': solution.objective,
        })

        var_table = OutputTable('Variables', [
            {
                'id': 'name',
                'name': 'Variable',
                'type': 't'
            },
            {
                'id': 'value',
                'name': 'Value',
                'type': 'f'
            },
        ])
        for var in solution.variables:
            var_table.add_row({
                'name': var.name,
                'value': var.value,
            })

        counter_table = OutputTable('Counters', [
            {
                'id': 'name',
                'name': 'Name',
                'type': 't'
            },
            {
                'id': 'value',
                'name': 'Value',
                'type': 'f'
            },
        ])
        for counter in galini.telemetry.counters_values():
            counter_table.add_row(counter)

        print_output_table([status_table, obj_table, var_table, counter_table],
                           args)
示例#2
0
    m.x = pe.Var(bounds=(0, None))
    m.y = pe.Var(bounds=(0, None))
    m.z = pe.Var(bounds=(0, None))

    m.obj = pe.Objective(expr=m.x, sense=pe.maximize)

    m.lin = pe.Constraint(expr=m.x + m.y + m.z == 1)
    m.soc = pe.Constraint(expr=m.x**2 + m.y**2 <= m.z**2)
    m.rot = pe.Constraint(expr=m.x**2 <= m.y * m.z)

    return m


if __name__ == '__main__':
    from galini.galini import Galini

    galini = Galini()
    galini.update_configuration({
        'galini': {
            'timelimit': 100,
        },
        'logging': {
            'stdout': True,
        },
    })

    model = get_pyomo_model()
    solution = galini.solve(model)
    print(solution)