Pyomo Abstract exemplo 1

Exemplo de modelo abstrato no Pyomo.

Link para download.

A grande vantagem é que separa claramente os dados do modelo.

Uma desvantagem é que o formato de dados tem que carregar os índices das matrizes, de forma até redundante.

Portanto, creio que vale a pena para modelos grandes, onde a chance de infeasible é alta e uma organização melhor do problema se paga.

Dados do arquivo dat:

param : N : c :=
1 1
2 2;

param : M : b :=
1 1
2 2;

param a :=
1 1 3
1 2 4
2 1 2
2 2 5;

Modelo abstrato:

– coding: utf-8 –

“””
Created on Mon Jul 13 05:48:48 2020

@author: asgun
“””

from pyomo.environ import *

model = AbstractModel()

model.N = Set()
model.M = Set()
model.c = Param(model.N)
model.a = Param(model.M, model.N)
model.b = Param(model.M)

model.x = Var(model.N, within= NonNegativeReals)

def obj_rule(model):
return sum(model.c[i]*model.x[i] for i in model.N)
model.obj = Objective(rule = obj_rule)

def con_rule(model, m):
return sum(model.a[m,i]*model.x[i] for i in model.N) >= model.b[m]

model.con = Constraint (model.M, rule = con_rule)

opt = SolverFactory(‘glpk’)

instance = model.create_instance(“Abstract_data.dat”)
results = opt.solve(instance)

instance.display()

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s