close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Last modified 14 years ago

#499 closed enhancement

Facilidad para definir restricciones de orden — at Version 2

Reported by: atorre Owned by: Pedro Gea
Priority: major Milestone: Release 0.6
Component: Parameters Keywords: parámetros, restricciones
Cc:

Description (last modified by Pedro Gea)

Hola MMS,
sería ideal poder expresar restricciones de parámetros de la siguiente forma:

Dado un conjunto de parámetros:

Set _.parameters = SetOfAnything(
  [["Veh.Mot.Mat", "Crisis.200801", [["Linear", 0]] ]],
  [["Veh.Mot.Mat", "Crisis.200802", [["Linear", 0]] ]],
  [["Veh.Mot.Mat", "Crisis.200803", [["Linear", 0]] ]],
  [["Veh.Mot.Mat", "Crisis.200804", [["Linear", 0]] ]],
  [["Veh.Mot.Mat", "Crisis.200805", [["Linear", 0]] ]]
);

si queremos expresar que el primero es menor o igual que el segundo y el segundo que el tercero, etc, poder expresarlo igual que se hace al definir las variables calculadas. Algo así como:

º1 <= º2 <= º3 <= º4 <= º5

Change History (2)

comment:1 Changed 14 years ago by atorre

A quien le pueda interesar, subo una función para crear las restricciones de ordenación de un conjunto de parámetros:

Real CreateMConstraintOrdered(NameBlock model, Set param, Real orden)
{

Set mCons = For(1, Card(param)-1, Real(Real comb)
{

NameBlock param01 = param[comb];
NameBlock param02 = param[comb+1];
MMS::@MCombination mComb = model::CreateMCombination([[

Text _.name = "CombOrder"+ IntText(comb) +".."+ IntText(Rand(1, 1000));
Set _.parameters = SetOfAnything(

param01::GetIdentifier(?),
param02::GetIdentifier(?));

Set _.coefficients = SetOfReal(orden, -orden)
]]);

Real mComb::SetConstraint([[

Real _.inferiorValue = ?;
Real _.superiorValue = 0

]])

});
EQ(Card(mCons), SetSum(mCons))

};

está preparado para recibir un modelo, un conjunto de objetos MMS::@ParameterSigma2 y un valor 1 (ascendente) o -1 (descendente).

comment:2 Changed 14 years ago by Pedro Gea

Description: modified (diff)
Status: newaccepted
Summary: Facilidad para definir restriccionesFacilidad para definir restricciones de orden

Nota: Se recomienda encerrar el código entre triples llaves para facilitar su lectura.
Algo como:

Si está dentro de una línea de texto: {{{Real a = 1}}}
Si son nuevas líneas:
{{{
Real a = 1;
}}}
Note: See TracTickets for help on using tickets.