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

Closed 14 years ago

#604 closed defect (fixed)

Error GetParameters en mCombination

Reported by: Ines Miranda Owned by: Pedro Gea
Priority: blocker Milestone: Release 0.6
Component: General Keywords: Combination
Cc:

Description

Hola,

por favor, echadle un vistazo al modelo adjunto. Tiene definida una combinación de dos parámetros donde uno de ellos es un hiperparámetro.
Da el siguiente error al tratar de acceder a la información:

ERROR: [59] [@MCombination::GetParameters] No se encuentran algunos parámetros de: 'Comb.FerNBWD_15_LT_24'

[Call stack]
  [4] Real MMS::MMS.Error (Text message, Text context)
  [3] Set mComb_WD_15_LT_24::mCombination::mCombination::mCombination::GetParameters (Real void)
  [2] Set MMS::Layer::MDMGui::GetInfoMCombination (NameBlock comb)
  [1] Set MMS::Layer::MDMGui::GetMCombination (Text ident, Set container)

Gracias

Change History (8)

comment:1 Changed 14 years ago by Pedro Gea

El problema surge de no indicar el nombre del hiperparámetro adecuadamente.

Según veo el hiperparámetro fue indicado como:

Hie_FerNacBasWD1_WD5__Promedio

cuando su nombre es

Hie_FerNacBasWD1_WD5__Promedio__Hyper.

El nombre Hie_FerNacBasWD1_WD5__Promedio es el del término (explicativo) de la jerarquía (@HierarchyTerm). Puede ser útil para comprender esto comparar la estructura de los submodelos y de las jerarquías:

  • Submodel (SubmodelName)
    • Output -> MVariable
    • ExpTerm (SubmodelName__ExpTermName) -> Input -> MVariable
      • Parameter (SubmodelName__ExpTermName__ParameterName)
  • Hierarchy ({{{HierarchyName)
    • HyperOutput -> Parameters
    • HierarchyTerm (HierarchyName__HierarchyTermName) -> HyperInput -> Coefficients
      • ParameterHyper (HierarchyName__HierarchyTermName__ParameterName)

Véase también el diagrama de los modelos

Se mantiene el tique abierto para intentar evitar los problemas que se derivan de indicar el nombre de un parámetro que no existe.

comment:2 Changed 14 years ago by Pedro Gea

Nótese que cuando se añade un parámetro que no existe (o aún no) a una combinación de parámetros se obtiene la traza:

@MCombination::AppendParameter] Se añade el parámetro 'Hie_FerNacBasWD2_WD5__Promedio' sin hacer el enlace.

comment:3 Changed 14 years ago by Pedro Gea

(In [2476]) Se revisan los mecanismos para evitar algunos errores procedentes de indicar el nombre de un parámetro incorrectamente al crear una combinación de parámetros o una jerarquía.
Se corrige el error en la GUI al intentar editar una m-combinación en estas circunstancias, es necesario revisar aún el caso de las m-equivalencias y jerarquías.
Refs #604

comment:4 Changed 14 years ago by Ines Miranda

Hola,

con respecto al problema de no indicar el nombre del hiperparámetro adecuadamente, y el ejemplo que adjuntabas:

Según veo el hiperparámetro fue indicado como:

Hie_FerNacBasWD1_WD5__Promedio  

cuando su nombre es 

Hie_FerNacBasWD1_WD5__Promedio__Hyper.

estos nombres los genera MMS, no el usuario. Nosotros creamos un hiperparámetro con el nombre Hie_FerNacBasWD1_WD5 y lo dotamos con la información necesaria.

comment:5 Changed 14 years ago by Pedro Gea

(In [2477]) Se comenta la elección de los nombres de los parámetros.
Se crea un método para saber el tipo de parámetro (subclass) a partir de esta información.
Se evitan problemas en la GUI con las jerarquías y las equivalencias.
Refs #604

comment:6 Changed 14 years ago by Pedro Gea

No hay que confundir el término (explicativo) de la jerarquía con su parámetro: el hiperparámetro.

Si deseamos conocer el nombre del hiperparámetro de un nodo homogéneo debemos hacer:

Text hyperparameterIdentifier = <hierarchy>::GetHierarchyTerm(1)::GetParameterHyper(?)::GetIdentifier(?)

y no sólo:

Text hypertermIdentifier = <hierarchy>::GetHierarchyTerm(1)::GetIdentifier(?)

comment:7 Changed 14 years ago by Pedro Gea

Resolution: fixed
Status: newclosed

comment:8 Changed 12 years ago by (none)

Los archivos adjuntos con datos privados se han ubicado en la unidad local B.

Note: See TracTickets for help on using tickets.