[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Having trouble in expressing constraints in Python

On 03/06/2014 14:44, varun7rs at gmail.com wrote:
> I have a problem in writing a constraint in Python. Firstly, I wrote the code in AMPL and it was working and I'm using Python for the reason that it is more suitable to handle large data. I managed to write the code quite fine except for one constraint(Link Mapping Constraint). I've attached pieces of code from both AMPL and Python. First part of it is the Link Capacity Constraint in AMPl followed by Python. Second part of the code is the Link Mapping Constraint and I wish to write it in a similar fashion. But, I'm not able to proceed with it. I really appreciate your help.
> subject to Link_Capacity_Constraints { (ns1, ns2) in PHY_LINKS}:
> 	sum {dns in DEMAND} ((f_eN_SGW[dns, ns1, ns2] * (MME_bdw[dns] + IMS_bdw[dns] + PoP_bdw[dns])) + (f_SGW_PGW[dns, ns1, ns2] * PoP_bdw[dns]) + (f_SGW_IMS[dns, ns1, ns2] * IMS_bdw[dns]) + (f_SGW_MME[dns, ns1, ns2] * MME_bdw[dns]) + (f_PGW_PoP[dns, ns1, ns2] * PoP_bdw[dns])) <= capacity_bdw[ns1, ns2];
>          for edge in phy_network.edges:
>              varNames = []
>              varCoeffs = []
>              for demand in demands:
>                  varNames.append("f_eN_SGW_{}_{}_{}".format(demand.demandID, edge.SourceID, edge.DestinationID))
>                  varCoeffs.append(demand.MME_bdw + demand.IMS_bdw + demand.PoP_bdw )
>                  varNames.append("f_SGW_PGW_{}_{}_{}".format(demand.demandID, edge.SourceID, edge.DestinationID))
>                  varCoeffs.append(demand.PoP_bdw)
>                  varNames.append("f_SGW_IMS_{}_{}_{}".format(demand.demandID, edge.SourceID, edge.DestinationID))
>                  varCoeffs.append(demand.IMS_bdw)
>                  varNames.append("f_SGW_MME_{}_{}_{}".format(demand.demandID, edge.SourceID, edge.DestinationID))
>                  varCoeffs.append(demand.MME_bdw)
>                  varNames.append("f_PGW_PoP_{}_{}_{}".format(demand.demandID, edge.SourceID, edge.DestinationID))
>                  varCoeffs.append(demand.PoP_bdw)
>              solver.add_constraint(varNames, varCoeffs, "L", edge.capacity_bdw, "Link_Capacity_Constraints{}_{}_{}".format(edge.SourceID, edge.DestinationID, demand.demandID))
> #Link Mapping Constraint
> subject to Link_Mapping_Constraints_1{dns in DEMAND, ns1 in PHY_NODES}: sum {(ns1,w) in PHY_LINKS} (f_eN_SGW[dns, w, ns1] - f_eN_SGW[dns, ns1, w]) = x_eN[dns, ns1] - x_SGW[dns, ns1];

Are you trying to implement your own code rather than use an existing 
library from pypi?

I also observe the gmail address which I'm assuming means google groups. 
  If that is the case, would you please use the mailing list 
https://mail.python.org/mailman/listinfo/python-list or read and action 
this https://wiki.python.org/moin/GoogleGroupsPython to prevent us 
seeing double line spacing and single line paragraphs, thanks.  If not 
please ignore this paragraph :)

My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence

This email is free from viruses and malware because avast! Antivirus protection is active.