Opened 15 years ago
Closed 15 years ago
#917 closed defect (fixed)
BSR ASCII Primary Import does not place parameter constraints properly
Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | BSR | Version: | |
Severity: | major | Keywords: | |
Cc: | mafernandez@… |
Description
Según parece el import de segmentos primarios de BSR no trata adecuadamente las restricciones suministradas mediante el método obligatorio Set Get.Param(Real iP)
que devuelve un conjunto de estructuras @Bsr.Param.Info
para cada parámetro.
El tercer y cuarto argumento de esta estructura son los valores inferior y superior para el parámetro.
Sin embargo el ASCII no se crea adecuadamente y el "parser" no es capaz de interpretarlo.
A diferencia de los segmentos "joint" no se crea un bloque "Defining Parameter Constraints" y las restricciones se funden con los omitidos (bloque "Defining header of Regression Missing Values").
Una parte del ASCII encontrado es:
(...) ///////////////////////////////////////////////////////////////////////////// // Defining header of Regression Missing Values ///////////////////////////////////////////////////////////////////////////// PriProRetCan1_CokLig.Ger.All__Missing.y2007m01d01 ? at row 1 for input 20 ~ TruncatedNormal(-0.4325343168769437,+0.05526265763225656,-1e+100,+1e+100); (...) PriProRetOwn_CokLig.Ger.All__Missing.y2007m01d01 ? at row 1 for input 25 ~ TruncatedNormal(-0.3993681995573155,+0.05589353169878052,-1e+100,+1e+100); +0<=+CokLig.Ger.All__AdvCopy_BreakLLL_CokLig.Ger.All__Linear.0; +100>=+CokLig.Ger.All__AdvCopy_BreakLLL_CokLig.Ger.All__Linear.0; +0<=+CokLig.Ger.All__AdvCopy_Nordic_CokLig.Ger.All__Linear.0; +100>=+CokLig.Ger.All__AdvCopy_Nordic_CokLig.Ger.All__Linear.0; (...)
donde, como se puede ver, las restricciones aparecen inmediatamente después de la información de los omitidos sin ningún separador de bloque.
Change History (3)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Intento explicar lo que expone Pedro con otras palabras.
Hasta ahora una restricción de dominio para un parámetro
lim_inf <= param <= lim_sup
era implementada llevando la información requerida al método del import Get.Constraints.Handler
. Obviamente a este método tambíen se le facilitaba la información para las restricciones más generales con combinación lineal de parámetros.
El problema surge cuando las restricciones de dominio son llevadas al método Set Get.Param(Real iP)
, este método retorna para cada párametro la siguiente estructura:
Struct Bsr.Param.Info { Text Name , // identificador único del parámetro Real InitValue , // valor inicial conocido o ? Real Prior.LowerBound , // cota inf. del intervalo de definición o -1/0 Real Prior.UpperBound // cota sup. del intervalo de definición o +1/0 };
cuando en los argumentos Prior.LowerBound
y Prior.UpperBound
se les pasa los límites deseados para la restricción de dominio y no los indefinidos -1/0 y 1/0 entonces en el ascii correspondiente a ese módulo primary se escribe lo que ha pegado Pedro más arriba. Y como podemos observar esas restricciones se escriben dentro del bloque de omitidos Defining header of Regression Missing Values
Como aparecen en ese bloque del ascii el parser no puede leer las restricciones de dominio correctamente.
comment:3 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
No entiendo muy bien el problema.
Los bloques de estos archivos deben definirse en el orden adecuado pero los epígrafes precedidos por
//
son irrelevantes para el parser.